Replacing food stamps with boxes

I generally avoid political posts on this blog. I hope my ones of readers will forgive me this rare indulgence. And at the end, I’ll turn it into a technology post, so maybe it’s okay. At any rate, the Trump administration included a proposal to revamp the Supplemental Nutrition Assistance Program (SNAP) in the recent budget proposal. Roughly half of SNAP funding would go toward providing boxes of groceries to recipients.

The administration called it a “Blue Apron-style program”. It sounds like a good idea on the surface. I was surprised by this, since I’m inclined to distrust anything coming from this White House. But what seems like a good idea on first blush doesn’t always hold up to deeper scrutiny. The proposal falls apart in a few critical ways:

  • No fresh produce. Fresh produce makes it more expensive and the goal is ostensibly to save money. But providing healthier food can lead to indirect savings by reducing healthcare costs and increasing productivity.
  • No choice. From what I’ve read about the program, it would be difficult or impossible for recipients to select what food they receive. Food allergies? Too bad! Your kids won’t eat a particular food? Oh well. Don’t know how to cook what you’re sent? Better luck next time.
  • Big government! For a party that claims to favor small government, this is a pretty big government imposition. And while grocery shopping isn’t my idea of a good time, allowing people to select their own groceries at least gives them some degree of dignity.

It’s not clear if this is meant as a serious policy proposal or a marker to compare the actual policy proposal against. At any rate, it seems like a pretty bad idea. But it doesn’t have to be. An opt-in program that included fresh produce and the ability to select what’s in the box could be a real improvement. It might cost more, but the cost of a program can’t be the only measure of its merit.

For many low-income people, just getting to the grocery store is a challenge. If they’re in a food desert and have to rely on public transportation, going to the store can be a multi-hour ordeal. If a box of groceries arrived on their doorstep once a week, the time savings could be truly meaningful. And with more time not spent trying to get to the store, that’s time they could spend helping their kids with homework, studying for night classes, etc.

But putting aside the politics of this proposal, it seems like we’re all too quick to say “oh there’s a tech company doing this, it’s clearly the right thing to do.” Blue Apron, the leader in meal kit delivery, is trading for over 60% less than their IPO price from last year. It’s losing customers and money. It may not outlast the Trump administration. It may not be the model we want to model cost-saving efforts after.

“We made this thing and it works for us, so clearly it will work for everyone” is a mindset that the tech industry struggles to overcome. But in the meantime, this proposed change to SNAP has inspired me to increase my monthly donation to my local food bank. They let clients shop and provide education to help them make the most of what they get. It’s a better investment than piling some cans of beans into a box and calling it a day.

You don’t need to have an answer to report a problem

When Alex Hinrichs retired from Microsoft, he wrote the traditional goodbye email. It was so well received that he decided to post it to LinkedIn. In his letter, Hinrichs shares 11 lessons he learned over the years. Most of the advice he shares is good, but he also included something I strongly disagree with:

If you bring a problem to your boss, you must have a recommendation. When presenting solutions to your boss, give them a menu and tell them your recommendation. “Hey boss, choose solution a, b, c, or d… I recommend a”.

​Hinrichs is not the first person to share this advice. I see it all over the place, and I hate it. I get the intent. If nothing else, coming up with the list of options and your recommendation forces you to think through the problem. It’s good practice and it makes you look good.

But it’s also a good way to suppress red flags. This is particularly true for early career and underindexed employees. For them, reporting a problem can be intimidating enough. The pressure of having to figure out a solution means they might just stay quiet instead.

Now it may turn out that what a junior employee sees as a problem that they don’t have an answer to really isn’t a problem. On the other hand, some problems are much easier to identify than they are to fix. This is particularly true with ethical and cultural problems. If your policy is “don’t come to me until you have a solution”, you’re opening yourself up to letting bad culture take root. And you’re depriving your junior employees a chance to learn from you and your team.

If someone is constantly reporting problems but not showing any willingness to address them, that’s an issue. But saying you must have a recommendation is a good way to not learn about problems until it’s too late.

Google accounts have gravity, too

When Dave McCrory first wrote about data gravity in 2010, he described the effect data has on apps. The more data that exists in one place, the more that place will pull in applications that act on the data. This makes sense. In fact, it’s at the core of the business strategy for many as-a-Service providers. But it turns out that it’s not just data in databases and files that have gravity.

Email is kind of important sometimes

Over the past month or so, I’ve had occasional trouble with email delivery to my domain. Since my friend is gracious enough to host my site for free, I didn’t want to push too much. But I nearly missed out on an opportunity to be a technical reviewer for a forthcoming book. I worried what other messages might not be getting through.

A few quick attempts at fixing the problem didn’t work. I got the sense that I was starting to become a burden. So I decided to take my friend’s advice and get a GSuite account. This turned out to be less easy than I expected.

Okay, so creating the account and getting my DNS settings updated was easy. The hard part is what to do with all of the data.

Accounts are data, too

The biggest challenge is that – as far as I can tell – there’s no way to take a free Google account and “promote” it. I’m an organization of one, so it works out really well for me to just say “change the domain name on this account and start charging me money for it”. That doesn’t seem to be a use case that Google supports.

No matter, they have tools for transferring (some) data. Email, calendar, and contact data can be transferred. But not settings, which may end up being a pain. (Mail filters, which I use heavily, can be exported and reimported, so that’s nice.) Oh and my Google Voice number? It looks like it can be transferred, but that’s my primary number so I’m hesitant to test it out. And what about my Chome data? And my Android data? Or the sites where I use my Google account as the login?

Yes, I am heavily invested in Google. More than I realized, even. I don’t mind that. I am aware of the tradeoff I’m making and I choose to make it. But it turns out there’s a lot of pain in switching all of my accounts over.

Reaching escape velocity

For now, I POP mail from my paid account into my free account. That seems silly, but it’s a functional setup for now. Part of me thinks I should keep doing that, since it means I don’t have to change anything and it’s easy to give up the GSuite account then. But I’ll probably move everything over at some point. I’ll find some annoyance that gives me just the boost I need to reach escape velocity. In the meantime, I’ll stay stuck to the planet.

Book Review: The Woman Who Smashed Codes

Stop me if you’ve heard this before: a woman does pioneering work in a field, only to have the men end up remembered by posterity. So it was for Elizebeth Smith Friedman. But she’s starting to receive her due. Jason Fagone’s newly-published The Woman Who Smashed Codes is not the first recognition of Friedman’s work, but it’s the most recent.

Friedman and her husband William rival the Curies as the most impressive scientific couple in history. Their careers would be impressive on their own, but it is the combination that makes them incredible. Starting out on a rich man’s compound trying to provide that Francis Bacon wrote Shakespeare’s plays, they went on to essentially invent the field of cryptanalysis.

Fagone’s book is a biography, but with a narrow view. He spends little time on Elizebeth’s life prior to joining George Fabyan’s Riverbank Laboratories. Life after World War II is similarly viewed on fast forward. But the three decades in between are covered in depth.

The outbreak of World War I saved the Friedmans from work they were rapidly coming to doubt. Their work decoding enemy messages – and inventing the processes for doing so – changed their personal and professional trajectories and brought them into prominence. Between wars, Elizebeth cracked the messages of Prohibition runners. When war came again, the Coast Guard cryptanalysis unit she created worked to crack three variations of the Enigma machine and was responsible for tracking the extensive Nazi spy ring in Argentina.

Despite her incredible work, Elizebeth often took a backseat to William. She seemed to prefer it that way. The Friedmans each felt the other was the smarter and more talented of the pair. Fagone devotes little of the book to Elizebeth’s personal life, except for her relationship to William. Their mutual devotion and admiration are as inspiring as their work.

This is a thick book, but it reads much faster than you’d expect. I enjoyed reading it and came away with a deep admiration of Elizebeth Smith Friedman, a person I hadn’t heard of just a few days ago.

Other writing – January 2018

Where have I been writing when I haven’t been writing here? Not much, but did set a new monthly page view record with over 1.2 million views in the month of January.

Book review: Forge Your Future with Open Source

If you are looking for a book on open source software, you have roughly a zillion options. Operating systems, languages, frameworks, desktop applications, whatever. Publishers have cranked out books left and right to teach you all about open source. Except for one small detail: how do you get started? Yesterday, The Pragmatic Bookshelf fixed that glitch. They announced the beta release of Forge Your Future with Open Source: Build Your Skills. Build Your Network. Build the Future of Technology by VM Brasseur.

I should disclose two things at this point: 1. VM is a friend and 2. I will receive a complimentary copy of the book in exchange for a technical review I performed. Now that I have fulfilled my ethical obligations, let’s talk about this book.

This is a very good book. It’s a book I wish I had years ago when I was first starting in open source. Brasseur covers understanding your motivations for contributing, determining requirements for a project you’ll contribute to, finding a project that matches those requirements, and getting started with your first contribution.

She assumes very little knowledge on the reader’s part, which is welcome. Don’t know the difference between copyleft and permissive licenses? That’s okay! She explains them both, including the legal and cultural aspects, without nudging the reader toward her preferred paradigm. Indeed, you’ll find no judgement of license, language, tool, or operating system choices. VM has no time for that in real life, so you won’t find it in her book either.

One of the better things about this book is that it is not really a technical book. Yes, it discusses some technical concepts with regards to code repositories and the like, but it puts great emphasis on the non-technical parts of contributing. Brasseur covers communication, community structure, and collaboration.

Forge Your Future with Open Source was not quite complete when I performed my technical review, but it was complete enough to know that this is an excellent book. Newcomers to open source will benefit from reading it, as will old hands such as myself. The final version will be published in June, but you can order a beta copy now through The Pragmatic Bookshelf.

Do you need a product owner?

Do you need a product owner? Many organizations seem to think so. says a product owner is “responsible for maximizing the value of the product resulting from the work of the Development Team”. That certainly seems like an important role to fill. But Joshua Kerievsky wrote in 2016 that customer-obsessed teams don’t have product owners.

Having a formal product owner, he argues, means engineers merely implement. They are absolved of responsibility for the final product. “Massive technical debt, poor reliability, ugly UIs, bad usability and new, barely used features” are due to having product owners. Companies that produce excellent products send engineers out into the field to learn from real-life customers. This means there’s no need for a product owner because everyone is a product owner.

Kerievsky is right, in part. Putting all responsibility for the product on one person is a recipe for disaster. Customer focus is not something you can bolt on at the end. If the people building the product don’t have the customer in mind as they build it, the product will reflect that. Regardless of what the product owner does.

But responsibility and sole responsibility are not the same. Engineers need to think of the customer as they build the product. And the product owner is responsible for keeping the engineers focused. The proper role for the product owner is not setting product direction, it is setting culture direction.

As Eran Davidoff wrote, we are all product owners. Not just engineering teams, but everyone in the company. Marketing, sales, and everyone else must focus on driving impact, not completing tasks. Positive business impact means understanding the customer and meeting their needs. Sometimes the customer is an internal customer, not the end customer. But meeting the needs of internal customers can indirectly help the end customer.

Ultimately, the job of the product owner – be it an internal or external product – is to make sure the measurements match the goals and that the goals match the mission. After all: we get what we measure.

Installing Lubuntu on a Dell Mini 9

My six year old daughter has shown interest in computers. In 2016, we bought a Kano for her and she loves it. So I decided she might like to have her own laptop. We happened to have a Dell Mini 9 from 2011 or so that we’re not using anymore. I figured that would be a good Christmas present for her.

Selecting the OS

The laptop still had the Ubuntu install that shipped with it. I could have kept using that, but I wanted to start with a clean install. I use Fedora on our other machines, so I wanted to try that. Unfortunately, Fedora decided to drop 32-bit support since the community effort was not enough to sustain it.

I tried installing Kubuntu, a KDE version of Ubuntu. However, the “continue” button in the installer’s prepare step would not switch to active. Some posts on AskUbuntu suggested annoying it into submission or not pre-downloading updates. Neither of these options worked.

After a time, I gave up on Kubuntu. Given the relatively low power of the laptop, I figured KDE Plasma might be too heavy anyway. So I decided to try Lubuntu, an Ubuntu variant that uses LXDE.

Installing Lubuntu

With Lubuntu, I was able to proceed all the way through the installer. I still had the “continue” button issue, but so long as I didn’t select the download updates option, it worked. Great success! But when it rebooted after the install, the display was very, very wrong. It was not properly scaled and the text was impossible to read. Fortunately, I was not the first person to have this problem, and someone else had a solution: setting the resolution in the GRUB configuration.

I had not edited GRUB configuration in a long time. In fact, GRUB2 was still in the future, so I had to find instructions. Once again, AskUbuntu had the answer. I already knew what I needed to add, I just forgot how to update the configuration appropriately.

Up until this point, I had been using the wired Ethernet connection, but I wanted my daughter to be able to use the Wi-Fi network. So I had to install the Wi-Fi drivers for the card. Lastly, I disabled IPv6 (which I have since done at the router). Happily, the webcam and audio worked with no effort.

What I didn’t do

Because I hate myself, I still haven’t set up Ansible to manage the basics of the configuration across the four Linux machines we use at home. I had to manually create the users. Since my daughter is just beginning to explore computers, I didn’t have a lot of software I needed to install. The web browser and office suite are already there, and that’s all she needs at the moment. This summer we’ll get into programming.

All done

I really enjoyed doing this installation, despite the frustrations I had with the Kubuntu installer. When I got my new ASUS laptop a few months ago, everything worked out of the box. There was no challenge. This at least provided a little bit of an adventure.

I’m pleasantly surprised how well it runs, too. My also-very-old HP laptop, which has much better specs on paper, is much more sluggish. Even switching from KDE to LXDE on it doesn’t help much. But the Mini 9 works like a charm, and it’s a good size for a six year old’s hands.

After only a few weeks, the Wi-Fi card suddenly failed. I bought a working system on eBay for about $35 and pulled the Wi-Fi card out of that. I figure as old as the laptop is, I’ll want replacement parts again at some point. But so far, it is serving her very well.

Drawing conclusions from proxy data during extraordinary events

Note to the reader: this post refers to traffic data published by an adult video website. I do not link to that site directly, but pages linked in this post link to said website. I try to keep the content of this post safe for work, but use your own judgement.

How do people alter their behavior when they think they’re minutes from death? We got a chance to see just over a week ago when officials in Hawaii made a mistake. A very big mistake. They accidentally sent out a warning that a ballistic missile was inbound. For 38 minutes, people in Hawaii thought they were about to die in a nuclear attack.

An adult website that rhymes with “Corn Bub” found that their traffic dropped off dramatically during the time between the initial alert and the announcement that it was a false alarm. They compared traffic from Hawaii on that Saturday with the preceding two Saturdays and found at one point it was 77% below normal. After the all clear, page views spiked to 48% above normal.

One blogger used this to conclude that “nobody [engages in self-gratification] while waiting to die in a nuclear fire.” I cannot accept that conclusion without more supporting evidence. Under normal circumstances, I’d buy traffic to a mainstream adult website as a proxy for self-gratification. Not everyone uses such material, and those who do don’t all use the same website, but it’s probably a relatively stable representation of patterns. But the imminent threat of a fiery death is a (thankfully) unusual event that could drastically alter behavior.

Popular culture is rife with jokes and “sure, that totally happened’ tales of sexual activity when death looms (e.g. a crashing airliner). It’s entirely reasonable to believe that people figured “well, if I’m going to die, I might as well take care of this first” and immediately got down to business. Given the time constraints and the general stress of the situation, I would not be surprised if they didn’t partake in online content as they normally would.

Now I’m not saying that people did or did not engage in self-gratification during that time. I am saying using a particular website’s traffic as a proxy for that behavior is questionable. Even if it is reliable in normal circumstances. This is a particularly awkward example, but it’s a good lesson. If you’re not directly measuring something, don’t assume your proxies are valid in unusual situations.

Happy 10th birthday, Blog Fiasco!

When I published my first post 10 years ago today, I didn’t really have a plan in mind. I wanted to separate my personal writing and my professional writing. I didn’t expect the blog to become the sensation it has, with literally ones of viewers each day.

Kidding aside, I’m glad I’ve kept this going for so long. This blog has helped my writing. It has made me friends. It has chronicled by proxy the course of my career. Ten years ago, I was a junior systems administrator who wrote mostly about what he learned on the job. Now I work in marketing and largely write my opinions. Along the way, my technical posts have gone from “here’s this specific thing I learned” to “here’s my take on larger issues.”

I’d like to think that counts as growth of some sort. In these past 10 years, I have published 671 posts. Some of those are a few sentences to describe site updates. Some are thousand-plus word discussions of severe weather warnings. Posts have received 655 comments (plus some 1.3 million spam comments).

To my ones of readers, I offer my sincere thanks. It’s gratifying to know that I’m not just talking to myself. Here’s to another decade!