another year, another update

Well, it’s been an exciting year. One of my dearest friends passed away. I was diagnosed with diabetes not long after restarting prednisone post-transplant. Since last December, the cool startup job I got went away when we encountered funding difficulties in the second half of this year; I’ve taken a new job with a good team at a much larger and older enterprise (their cool startup days were in the mid-90s). We sold our awesome house and are in advanced stages of emigrating to the UK. Things are never quite what we’d planned or hoped for at the outset, but the journey continues and things are always better than we feared.

saying no

One of the harder things I’ve had to do since taking on leadership roles is learn how to say no. This doesn’t seem like it would be hard, but trust me, if you’ve lived a life of wanting to say yes (to make someone happy, to make something new, etc.) it isn’t easy. Saying no comes in many more forms than simply “no.” itself. Maybe you have to tell someone that what they did is not acceptable work (“This is not good, and here is why: …”). Maybe you have to tell someone that the plan they’ve come up with is unrealistic (“We don’t have the resources to do that, and what you want is not higher priority than any of the N things we are doing now.”). Maybe you have to tell a customer that no, what they want not being part of the product is not a defect but rather a request for custom work that will cost extra.

Maybe you have to tell someone that no, they no longer have a job on your team, effective immediately. The person who can do that without losing sleep the night before is not someone I’d like to meet. I’m thankful that I haven’t yet had to cross that managerial Rubicon, though I have come close a few times.

But there’s a reason that economics is called the dismal science; its conclusions are as inescapable as they are uncomfortable at times. When you operate in the real world of resource constraints, where time is not unlimited, budgets are not infinite, and you have finite staff, your choices are always on some level OR, not AND. OR means that for every X you say yes to, there are N >= 1 Ys that you must say no to. (OK, to satisfy the pedantry brigade preemptively technically this is XOR not OR, but you lot can go back to reading assembly language manuals now.) That you don’t have a choice about saying no in some way doesn’t make the process feel any better; loss aversion is a powerful thing when what you are losing is the potential of having said yes to something. I can only hope that with practice I’ve gotten better about doing it both more efficiently and more politely.

parenthood and life since 2013

Not that I was doing a great job of keeping this blog updated to begin with, but the birth of our youngest in 2013 essentially turned over every apple cart in our lives. :) It’s odd how parenthood changes you very little in some ways (your eyes still open the next morning and you are still you, provided your name isn’t Gregor Samsa), but completely changes everything in your life at the same time. Perhaps marriage is the same thing, it is on some level whatever you dedicate yourself to putting into it. While I am reluctant to make generalizations about an experience as varied as the human race itself, I feel safe asserting that it is one of the life events which have a clear demarcation of Before and After, regardless of what a person’s particular lived experience might be under that top-level heading. As we’re expecting our second later this year, this blog will probably return to deep hibernation until early 2017.

For myself, I find my life is filled at once with more worries and more hope. I worry every day about whether I’m doing the best thing I can for my family, but at the same time I see our youngest growing and learning and squealing with glee for the joy of being alive (“What’s this? A ‘dog’? DOGS ARE AWESOME!”), and I have hope that things will be OK. I don’t think anything could have possibly prepared me beforehand for the tsunamis of emotion I’ve felt being a parent.

On other fronts, I have a new job leading up the technical organization for the enterprise code/document review platform, Collaborator, made by SmartBear Software. We’ve certainly undergone quite a bit of organizational turmoil since I started in the fall of 2013 (~70% layoff in the spring of 2014, for starters), but we’re still shipping on a relatively regular release schedule, delivering new things to our customers, and all things considered doing much better than I had expected on some of the darkest early days. Being the-buck-stops-here for dev, docs, ops, qa and interfacing with marketing and sales is enough to keep any three people busy and it’s all on my plate. I probably shouldn’t even be writing this but I’m waiting for a really long build process to finish.

With parenting and a very full dance card at work, I haven’t much to share from an academic standpoint. I took a Coursera course on Automata taught by Ullman at Stanford and did well enough to get a pass certificate, for whatever that’s worth, and made an A in Algorithm Analysis from Oregon State’s eCampus (<3 online programs, for all their flaws). I think I presently have the minimal set of pre-reqs to apply to most graduate programs (maybe modulo an upper-level hardware class, depending on the school), but haven't made any real steps in that direction as it seems foolish to embark on that until the second child is at least into toddlerhood.

ditching google reader

I’m a huge fan of google reader for keeping up with news (not just headlines a la NYT; it’s also incredibly handy to consolidate security update notices). Unfortunately, they’re spinning it down on July 1st of this year (if somehow you haven’t paid attention to the internets at all this week). Perhaps the best tense to use then is that I was a google reader fan.

Having a cloud-based solution is nice, and there are a few out there that offer RSS/Atom/etc. aggregation as a service (I’ve heard about Feedly a fair amount, for example). Since I already have a host, though, and a fair amount of willingness to wrench on things if need be, I thought I’d look into running my own web-based feed viewer. Two options jumped out immediately, Selfoss and Tiny Tiny RSS (aka tt-rss). Notably, both support OPML import so that it is not difficult to get your feeds imported from Google.

Selfoss is probably the simpler of the two, and has had more attention paid to visual design. I noticed that as it stood, the project supported mysql and sqlite as storage engines. So I forked it on github, worked in a first cut at postgresql support, and sent the author a pull request. It’s the first time I can recall doing that via github, and he sent me a nice note thanking me for the additional DB engine support after he merged it in. It’s a good feeling to contribute to something! Selfoss is pretty cool in that by design it would allow you to aggregate more than RSS/Atom (e.g. I saw IMAP support), and adding more “spouts” (source types) looked fairly modular. The drawback, in as much as it is one, is that the system presently only seems to support single user mode. You may also have to do some fiddling with .htaccess and similar to get it stood up. But if you have a reasonable amount of savvy and want something for yourself alone, it’s a decent option.

TT-RSS is a larger and more complicated beast that is a bit more plain in design, but it is also more feature-ful. Postgres is supported out of the box, and there is an Android client that can sync with your tt-rss install as well. The big selling point is that it supports multi-user mode. I have an install of it working on this host; if you are a fellow greader refugee and want to give it a spin let me know. My only real gripe with it at the moment is that it presents a three-pane interface (at least by default, I have not looked too hard into changing it) similar to Outlook Web Access if you’ve used that. I’d prefer a more consolidated two-pane layout (similar to greader) but I’ll live. I probably spend more time reading RSS et al. via my phone anyway, and the Android client is nice. Note that if you wish to use it with a tt-rss install, you have to set the external API access preference in your user preferences to true.

All of this does make me think about what it would take to replace google entirely with things I host. Mail is not an issue. Calendaring is something that I probably could figure out, but haven’t felt the need to just yet (maybe I ought to, if this trend continues). Reader is already replaced. GDocs, or Drive, or whatever they’re calling it this week would be hard to replace in the sense of seamless concurrent editing, but it’s not like LibreOffice+git/svn or a wiki couldn’t serve in a pinch. Search and maps seem like the real boogers to replace with entirely self-sufficient infrastructure. If it came to it, I suppose a standalone GPS device would serve for most of what I need maps for, or I could look into OpenStreetMaps I guess (similarly to what Craigslist has done). Search is something that would be hard to replace as an individual simply due to the storage requirements of the data involved in a whole-web crawl I imagine. The tools are there with something like Nutch, but… yikes. I’ll likely continue to use Google products when they are convenient, and will have to hope they don’t decide to axe anything else I use routinely.

another semi-annual update, heh

The big news is that Kirsti and I are expecting our first child in August of this year. :D Getting to where we are now and guaranteeing that our child won’t have to deal with the genetic condition that I carry has been quite a story, a far more lengthy one than probably serves to tell in a random blog post. It’s been a real roller coaster, but things are smooth now and we’re both terribly excited for August to arrive. Getting a reasonable (not too big, not too small) tax refund this year courtesy of work-related courses being tax advantaged has helped considerably to defray some of the start up expenses of having a kid.

Compilers last fall was crazy awesome. Great professor, exciting material, ended up doing very well. My only regret is that we didn’t get farther into things like implementing GC, interpreters, VMs, etc. I guess that’s what an advanced or graduate course would serve for. Operating systems this spring is a little less enthralling. I’m still enjoying learning new things, but the book isn’t quite as good and the professor has never taught a course before. So far I’m doing well regardless, but I also haven’t had many grades come back yet so I’m not counting my chickens just yet.

Kirsti is working as an adjunct professor at the local community college, teaching two classes. Thankfully the commute is trivial, less than a mile, and her pay will serve to cover her dissertation tuition for the fall and spring as she will likely not be working. Her students sound like the usual mix; some are promising and some … are special. Naturally due to the applicable regulations I don’t know personal details about the kids in question, but some suitably anonymous stories are too ridiculous not to share I suppose. The one who thought continental drift was responsible for climate changes during human history was noteworthy.

I’m tackling a new project at work which is fairly interesting; it almost reminds me of the java I was working on for the ibank back in the day, but in a completely different domain and using a fairly radically different technology stack (Akka, Play, etc. vs. J2EE). I’ve also been learning a bit about Hadoop and its related ecosystem with a possible eye towards offering that as a service from our consultancy as well, which is pretty awesome. Sometimes I feel like there’s just not enough hours in the day to cram everything I want to learn into my head, but I realize that as problems go, that’s a good one to have.

semi-annual update, heh

I seem to be badly neglecting this blog. Mostly I’ve been posting random short things on facebook or twitter (mostly fb); it’s been such a busy year that I haven’t really had time to think up anything longer form that would go here. I’m afraid this update might be pretty boring too. :) Since January, eh… work is about the same. Kirsti passed her PhD comprehensive exams so she is now effectively done with everything except the dissertation. I’ve made two more As, one in computer organization (low-level programming, basically) this spring and one in programming languages (design, theory, etc.) this summer; really looking forward to compiler design this fall and the second part of the Roughgarden-taught algorithms course on Coursera (oh, made a 90% in the first part of that one too, in as much as that counts as grade). We moved to a new place in Columbia, MD that is nicer than our old apartment in almost every conceivable way; the only downside is that the hot water heater is smaller so the shower goes cold faster than I’d like.

ah, recovery

It’s pouring down rain outside. We have the patio sliding door open so we can listen to it and feel the cool breeze as we sit at our desks here in the office-room of our apartment. For once I don’t have any extra work or school-work to attend to and can simply enjoy the evening. Recovery is delicious. :)

vaguely recalled dystopian killbots

I have vague recollections of leafing through a comic book as a kid about a dystopian killbot committing page upon page of gory atrocities on behalf of his grotesquely corrupt controllers, dragging himself through broken glass and barbed wire while on fire, his artificial skin becoming increasingly tattered and torn, artificial blood soaking every page amidst the real.

His personality module was programmed (perhaps his consciousness was an accident?) so that in his mind, he was just John Smith, living some 1950’s grey suit existence as a tax collector, so that nothing going on penetrated his consciousness. He kept repeating it to himself like a mantra: “My name is John Smith. I’m a tax collector.”

He was always just about to get home from a long day at work, looking forward to seeing his wife and kids, telling himself that his nightmares weren’t real. “My name. Is John Smith. I’m. a. tax. collector.” Naturally, he’d suffer some sort of catastrophic system failure due to mounting damage before that would happen, so every iteration was his freshly restored from backup mind in a new chassis being sent out for another cycle of longing dreamtime. Looking back on it now, it reminds me of a scene in Mad Men deconstructing “utopia” as two words for “the good place” and “the place that can not be.”

Joy Division — Twenty Four Hours (piano cover)

The original song’s lyrics have resonated strongly with me at many points throughout my life; I don’t know that I’d call it my very most favorite Joy Div song, but it’d definitely be close to the top of that list:

~~
So this is permanence, love’s shattered pride
What once was innocence, turned on its side
A cloud hangs over me, marks every move
Deep in the memory, of what once was love

Oh how I realised how I wanted time
Put into perspective, tried so hard to find
Just for one moment, thought I’d found my way
Destiny unfolded, I watched it slip away

Excessive flashpoints, beyond all reach
Solitary demands for all I’d like to keep
Let’s take a ride out, see what we can find
A valueless collection of hopes and past desires

I never realised the lengths I’d have to go
All the darkest corners of a sense I didn’t know
Just for one moment, I heard somebody call
Looked beyond the day in hand, there’s nothing there at all

Now that I’ve realised how it’s all gone wrong
Gotta find some therapy, this treatment takes too long
Deep in the heart of where sympathy held sway
Gotta find my destiny, before it gets too late
~~

A few months ago I found this piano cover of the song and I’ve really enjoyed listening to it, so I thought I’d share: vkgoeswild’s rendition of 24 hrs

the social network / facebook

Thinking of Boston (see last post), I received our copy of The Social Network on DVD a few days ago. Highly recommend this for anyone who enjoyed the film in the theaters, it’s only $13 on Amazon and the extras DVD is packed with some fairly interesting content, e.g. a long-making of vignette, lengthy interviews with Reznor, Ross and other people critical to the look and feel of the film, and so forth.

Thinking of Facebook itself, I’m kind of creeped out by them opening up home address and phone number info to third parties. I put that stuff up there to help out friends who happened to lose my contact info, but at this rate I’m thinking some of that needs to come off for security reasons. I’ll handle keeping friends updated via other channels. Increasingly glad I have this blog set up as an alternative to Facebook as insurance against them going completely into the shitter regards privacy and security.