This is the weekly thread to discuss what you have done recently and are working on this week.
Please be descriptive and don’t hesitate to champion your accomplishments or ask for help, advice or other guidance.
In my continuing sinusoidal career path, I became a manager again, so I’ll be focusing a lot on making sure my team actually feels like they have good individual-contributor career paths with real growth for them, and working with some of my other managers to make sure that people who need opportunities to grow certain skill sets actually get those opportunities.
And in my spare time, I think things have finally calmed down enough for me to return to working on Factor’s 0.98 release.
Good Engineering managers are in short supply so I applaud any engineer who can make the transition with goals like that. I’m currently trying to figure out how to work with a bad engineering manager myself .
Thanks! I think way too many engineers who become managers think that their goal is now to tell people what to do. That is not their goal. Their goal is to build an environment where engineers have the support they need to succeed. Project leads sometimes have to tell people what to do, I guess, but even there, I’d hope to goodness you’re mostly just helping the rest of the team agree on next steps. “Because I said so” is basically a tool of last resort for me.
I can probably give you some tips on managing upwards if you want to PM me. Most bad managers I’ve dealt with are well-meaning, just inept, and that usually means there are sane ways to get them to realize that what you want is in their best interest.
I’m working on a proof-of-concept my customer needed Yesterday™. Which is unfortunate because I feel I’ll need all of Tomorrow just to get comfortable with Linux-isms. As a network engineer for a decade+, I’ve been able to use Free/Open/NetBSD exclusively for servers and my personal machine. I don’t “get” Linux and simple things become beyond frustrating.
My opinion is that setting up a KVM host, and doing replicated thin provisioning of VMs should be straightforward. Or at the very least not time consuming. Yet I spent an entire work day just wrangling libvirt & friends to get automated, “pre-seeded” Debian net-installs working. And I still somehow bungled the hostnames (all ten had the same as the first one. oof)
Hopes of using Alpine for less-fat VMs or an automagic testing and regression pipeline feel more like pipe-dreams. I know accurate, up to date documentation is hard. But OpenBSD manages to do it with a sliver of developer and monetary resources…
(if this feels more like a rant that what am I working on, I apologize. currently they are one in the same)
I’m a long-time Linux user that tried OpenBSD again after almost 10 years of not having used it except to configure pf. It really is simpler, but all the inertia, performance, etc. is on Linux’s side, so I have to keep using Linux for my work machines and servers.
So, yeah, it’s not just you.
I switched my VPS from some ancient Arch image to FreeBSD, and I’m already feeling better about it. I guess I’m glad Linux exists, but more in theory than practice.
yeah, I have no choice in my line of work and interests. DPDK is supported on FreeBSD and NetBSD but they are second class citizens at best. Things like VPP/fd.io most likely will never reach either of those BSDs; and I find eBPF (and the P4 language with eBPF as a target) quite interesting.
so, I’m sort of stuck “learning” Linux. I’ve picked Debian. I want to contribute to the documentation (seriously, all these users and no one can keep things up to date?) but it feels like it’s such a moving target and I’d much rather do something to bring improvements to software I’ve been using decades.
if only there were more minutes in the day, and I was a magnitude smarter & faster…
Nope, not a rant, this is my biggest gripe with Linux in general lately. Its overly complex seemingly for complexities sake.
It does get easier, but I really feel more like I’m just suffering from stockholm syndrome.
Recently (a few months ago) moved to Malta. For my day job, I’m working on iGaming stuff, mostly. Which is, I suppose, what 80% developers do in Malta. Current stack is a simple Symfony (PHP), Postgres with a lot of caching and load balancing mechanisms (mostly to just make PHP not that slow, I’m half joking here).
The current personal project I’m working on is elsendo.io. A simple news (you could say, blogging, in a way) platform for companies and projects. So, when I’m not enjoying the sun and/or drinking coffee somewhere, I work on the thing. Most of the backend functionality is there but I still need to create some assets and at some point create a widget so users could click on an icon and see a list of news in the company’s pages.
Oh, and then there’s also German which I’m trying to teach myself using Duolingo. It’s going well considering I was not really paying that much attention to German at school and did pretty bad.
I finally bothered to jailbreak my Surface RT, which gave it a new lease on life. It’s a lovely device hardware wise; it’s got an IPS screen that’s usable outdoors, (unlike my ThinkPad) no fan (unlike my ThinkPad) and long battery life. (unlike my ThinkPad) The chassis is both aesthetically pleasing and solid, though I wish the kickstand had more incline. (The newer Surfaces solved this problem.) The catch? Microsoft, in their infinite wisdom, restricted the desktop - the only thing beyond the stock Windows programs that’s allowed is Office 2013 (a full version, for free at least) and unusually, Node.js. This is not terribly good, considering the sad state of WinRT 8.x apps, especially without UWP from Windows 10. WinRT is very strict, so things like backgrounded apps are suspended and/or killed. Not good for SSH.
So what I did was to finally install the jailbreak. I can actually run typical Win32 stuff without having to use RemoteApp to shunt it to another box instead! Of course, it needs to be recompiled for ARM. But I have PuTTY, Vim, 7zip, Python, and Node, all on a silent, lightweight, long-lasting device.
On a side note, the touch cover keyboard is surprisingly decent. I can’t use it on my lap, as it bows and misses strokes that way, but on a flat surface, it’s competent. It rarely misses keys and the feedback from both the speaker and actually feeling your fingers bounce without any tactile keys is good enough. I have considered getting either the type cover for tactile keys, or one of the new ThinkPad standalone keyboards (BT or USB) so I can use a TrackPoint.
The wife and I had our wedding on Saturday (we were married last year at the courthouse, because immigration), so the last week has been bonkers. This week, at work, I’m getting more into the details of how we’re going to distribute work in whatever new job dependency framework we end up in. I’m also working on a big ETL job on Redshift, which is sufficiently different from Postgres to make me crazy, given that I use psql to talk to it.
Final polish for my talk on Rails persisting invalid data, which I’ll be giving on Thursday at Kansas City Developer’s Conference. If anyone is there and would like to meet up, send a message/tweet. The short version: Almost every Rails database contains records that won’t pass their model validations, leading to “can’t happen” bugs months or years later. This talk is about avoiding the hidden pitfalls and diagnosing invalid data.
Bought my first motorcycle to commute and ride with friends (bought protective gear, too). It’s an ‘81 Kawasaki LTD 440-A2 - old, cheap, but in good repair.
This week I’m wrapping up work on the paper we were trying to submit to ICDM (but didn’t quite make). One of the experiments (that I wrote, oops) didn’t come out as expected and we believe it’s an implementation error.
From there, I’m going to be reading on a problem I want to work on and starting to work on a continuation of previous projects with an eye towards INFOCOM submission. Also still toying with alternate implementation languages. I’ve made some progress on a Rust implementation that is pretty exciting. Should be enough done today to actually do some performance tests!
On the personal side, I’ve set gram up as the window manager on my laptop and already run into usability issues. I wrapped the C-level hooks in Guile catch code to prevent them from causing a crash when exceptions are thrown, but it needs further improvement (doesn’t log stack traces at the moment – though that should be trivial, and doesn’t continue running other hooks in the list after the first one throws). But it’s actually surprisingly usable at this point. I need to implement some userland workspace and output handling code and then write a wrapper for either xmobar or i3bar to give a status bar, but its usable (though not recommended yet for any interested).
Figured out NAT/firewall in the global zone of my SmartOS hetzner box, but also realised that the zfs pool has entirely the wrong settings for the modern “4k” disks the server has in it. Curse past-me for not realising this (also had the same issue on my NAS box at home previously. Oh how quickly I forget things.) So I should probably reinstall before I put anything on the box, which will be oodles of fun no doubt.
Project BMW was going swimmingly, until I discovered the spare wheel well in the boot was full of water earlier today. Form the looks of it the radio aerial grommet is leaking (from the top of the rear offside wing) and filling the boot up with water. Irritatingly I have a replacement grommet arriving this week, if only it could’ve held on for a couple more days(!).
Project Boat is much further along now too, all the wooden pieces aboard have been properly cleaned off, varnished and refitted successfully. New cover arrived which is glorious, and arrived a fortnight earlier than I expected which was a lovely surprise. Away for the week with work so progress is halted on the boat for now, next weekend will be getting a new keel platform fitted to the trailer and actually going up to the club to figure out where she’s going to live there.
Work: Trying to come to grips with S&P / Legal taking a somewhat simple application and making it into a nightmare. My team produces internal applications for several other teams within the company. One of the teams we serve wants to replace an external vendor that warehouses user information with regards to event RSVP’s and mailing lists. I thought the hardest part of the app was going to be the web UI builder we’re making for them to quickly author landing pages for the events (which I am stoked about)– no; its endless meetings and phone calls about nebulous S&P / Legal stuff regarding data storage and leveraging other vendors in really awkward ways to safely store an email address for a user.
Certainly a bit of a buzz kill.
Play/Work: Tinkering with Go as well as building out some work-related CI/CD stuff for our internal deployment system. Being able to test and warehouse docker containers in our private registry, and then have other deployment systems interact with everything has been unheard of so far, and is sort of working now.
Play: Got a new mountain bike yesterday. Certainly planning on putting in some miles on it (along side my daily commuter road bike).
Update from last week’s shindig. Half of the lesson’s getting scrapped in favor of teaching the kids (middle-schoolers to boot) how to save a document. We kept getting interrupted and getting the students caught up often enough to warrant it. I thought something like this would be common computing sense judging that even my generation was taught this in elementary school (ca. 1998-2004) for writing our papers.
Either kids nowadays can’t compute further than FaceSpace and MyBook or it’s a wildly different animal than it was when I was their age. That’s enough ranting for now but sheesh it’s frustrating.
Would you mind going into some of the problems you ran into here?
Each day of the week, we’re having to take time out of the lesson to remind them how to save because if we don’t, we’ll be bombarded with “Wait, how do I save this?”. This happened each day we had the Python lesson, the Flash lesson, the Photoshop lesson, and the web dev lesson. The same goes to navigating Windows’s Explorer and the fact they hold the mouse button down when instructed to quickly click the mouse twice. I’m probably just overreacting, acting condescending, and/or subconsciously yelling at them to get off my lawn.
Maybe this week’s experience with the girls will be different than with the boys last week. Today, the girls followed directions a lot better and we didn’t have to jump on their case about going on the Web or chugging packets of salt and pepper.
I’m working on getting back into my exercise schedule after moving to Munich; which is trying to go to the gym or go bouldering every day. I’m also taking a look at Prolog, since I’ll be taking a course in it in my master’s degree next year.
I’m also starting to commute to work (I was able to borrow a bike and a light, and bought a helmet and lock). I’m not a confident cyclist, but Munich has fantastic cycle lanes so I feel relatively safe (especially if I’m cycling before rush hour).
Job: continuing to get paid to hack on a 6 year old node.js/mongodb legacy codebase. Enough said about that.
Side project: continuing to explore Pony by trying to figure out the most optimal way to implement quickcheck, which is kind of like learning building construction by starting with the disney concert hall. The type system is phenomenally good at preventing me from being clever, which is both good and bad. It looks like languages of this kind (of which Rust is for me the only other known member) that have strong type systems and a correlatedly stronger, maybe LLVM-centric? view of what a function is, are a little tougher to write a nice clean quickcheck interface for. Certainly it would be pretty nice to have functions as first class rvalues. Nevertheless, learning a lot!
Chipping away at our KANBAN board. We’re slowly migrating to AWS, and
I’m trying to ring-fence time to work on that rather than improve state
of the platform we’re moving away from. Some of that is still
necessary, so we can’t ignore it, but it will eventually go away.
Finding a balance is tricky. Probably partly because the existing
platform is what I know best, so doing AWS work would mean getting out
of the comfort zone.
On the home front, I’m hoping to finish painting my living room Real
Soon Now™. The sanding and prepping has been a lot more work than I
expected, but I’ve booked a couple mornings off work this week to
hopefully get it over the finishing line. In that respect, I’m
struggling to find an adapter that I can use to connect my Bosch sanders
to a Numatic Charles vacuum: if anybody has any tips, please share!
(I’ve been using gaffer-tape, which sorta works, but it’s annoying when
I need to swap sanders.)
Just got an offer for a new job, the pay is good but the hours are very limited.. The people in the team seem fun, but I’m worried about it being a worker’s cooperative, I still have two other interviews in tow days so I’ll see how I feel by then.
what are your concerns about the worker’s cooperative aspect?
Well the most worrying part for me is that it’s not the most organised company I’ve ever seen, I feel like this is partly the companies structures fault. But there are other aspects that worry me:
But there are portions I like:
For my day job, building some new features in our rails app. Nothing special there.
In my spare time, I’m busy with boring non-tech-related things pertaining to me moving in a month (and reading The Road to Reality), so I’ve let my rust side projects mostly drop. I was writing a parser for wavefront obj files using nom, that I will return to next.
Work: Finding patters a user leaves before they convert from a trial user to a full-time customer. (Everything in R and the Hadoop Stack + Apache Spark)
This week’s theme for me is gonna be “read stuff” I think. Started reading Level Up Your Life on Friday. I’m halfway through. I really like the concept of creating a character and making my life more fun by imagining stuff, I think I really can buy into that. I used to do that in high school. It was tons of fun. Gonna do a grown-up version of this because hey, fun.
Then I really wanna chomp through that math book. Then I want more complex math. Hey you know what, let me ask:
I am reading No-Bullshit Guide to Maths and Physics. Where do I go when I’m done? I’d like to be able to do what they call “Data Science”, and understand the maths behind that, understand the equations when I read awesome papers so I can know what I’m looking at… What do I learn for me to master that?
I’d like to be able to do what they call “Data Science”, and understand the maths behind that,
“Data science” is mostly a rebranding of statistics, particularly Bayesian statistics, so read some statistical texts. A lot of “data science” is also just regression, so you can also read books about regression. Ivan’s book should cover enough linear algebra and calculus to get you started. Hm, looks like he’s also writing a stats book for next year.
The parts of “data science” that you may not find in traditional statistics books are probably neural networks. You should be able to understand those with just linear algebra and calculus and perhaps some optimisation (just to understand gradient search).
Then I should be just fine. I’m lacking in linear algebra and calculus, but I used to rock the hell out of stats, so that shouldn’t be too hard. Also, let it be known that I loathe fancy trendy rebranding of already-cool old tools.
Interviewed for a couple Ruby Developer positions last week, things went well. Working on more initial application stages for the worst case scenario. Writing up Puppet scripts to configure my personal servers. Anticipating a contract job in which I’ll have to set up 12 + WP sites on Linode – I’m comfortable in Unix and building secure boxes, I know it’s important to separate db and app machines for security, but can I just run one big linode and have all of the virtual boxes? I don’t really know how to host that many sites in the most cost-efficient manner.
Any devops wizards apply within! I have traffic estimates and stuff, if you can help me out @kfrzcode email@example.com
I’m not working on anything personal but for work I started writing a time series DB written in C++. It hopefully has a unique feature set from other DBs. Maybe I can convince my work to make it free software….
Writing it in C++ was satisfying because I have been in the scala world for half a year.
exploring options for adding a scripting language and repl to a C++ program. ideally, i would like to compile the C++ code as a shared library and have the scripting language be the main program that calls into it. i gave cxx.jl a try, but it doesn’t do well with passing function arguments by value, which is a big use case. going to try ecl next. if all else fails i’ll manually add c wrappers to everything, and proceed from there, but i’m hoping to avoid that. suggestions welcome.
Try Lua. I’ve done this with Lua and couldn’t be happier. Lots of easy wrappers for C++ to Lua.
thanks! i’ll give that a try
This is my last week at Shyp. Not sure what’s next, yet. Working on getting a consulting contact me/about me/landing page up and running, and wrapping up gigs at work.
Been working on re-writing my reddit menu bar notifier from objc to Swift 3, while also looking at applying some of the stuff I’ve learned in the last 6 years since I wrote it. https://github.com/voidref/orangered/tree/swifty
Also updating (for swift 3), my little Onboarding class for iOS, which is aimed at making those paged onboarding screens easier to get up and running with as opposed to trying to wrangle UIPageViewController which is really ill suited for the task. https://github.com/voidref/Onboarding/tree/swift3
csv converter in node for salesforce.
Why? cause my company asked me to. Clients are weird.
Aside from my normal worky work, I’m starting on the slides for a presentation that I’m giving in a little over 24 hours. This one is on network traffic analysis and fuzzing. It only has to be 20 minutes for a “Lunch & Learn”, so I should be okay, but I am definitely in panic mode now.
When that’s over, I’m hoping to get Kubernetes set up in my lab.
Trying to figure out why a .Net application appears to be failing to load some assemblies on certain machines and not others…
Mostly pulling my hair out as a result.
I’m in the middle of moving, changing jobs, etc, but I have been working on a small micro-framework (like Slim for PHP, Flask for python) in Hack. Fun language considering my background is majority PHP.
Working on fixing bugs in my chess program (side-project): http://theos-chess-api.herokuapp.com/chess/
(it’s on github: https://github.com/theovoss/Chess and https://github.com/theovoss/ChessApi)
Getting back into work after a week and a half on vacation.