Serialization Format Performance

Most of the work done in actual programming jobs is taking structured data in some particular format from one system, slightly tweaking it, and sending it off to some other system. When exchanging data between different processes, it's almost always necessary to serialize it into a series of bytes which can be sent across a dumb byte-oriented transport (such as TCP). There are hundreds upon hundreds of different serialization formats out there, but I just wanted to talk about a few of the most common that folks use with the Python programming language.

read more

2015 Election Ads - Update

A couple of weeks ago, I posted about the election spam that I'd gotten. I figured that since voting had begun, the flow of ads would taper off. Boy was I wrong! Here's my current count:

Candidate/Issue —2015-10-18 2015-11-18—2015-11-18 Total
(so far)
Yes on Aaron Peskin/No on Julie Christensen 15 13 28
Yes on Julie Christensen/No on Aaron Peskin 8 18 26
Yes on Prop A 2 3 5
Yes on Prop D 2 6 8
Yes on Prop F 1 1 2
No on Prop F 7 3 10
No on Prop I 6 3 9
Vicki Hennessy for Sheriff - 1 1
Voting Slates 5 15 20
(total) 46 63 109

In addition to all of this paper spam, I now get between one and four phone calls a day from supporters of various candidates (and, in one case, from a candidate themselves). And three times now, I've caught campaigners tailgating into my apartment building to annoy people door-to-door.

Here's the list of distinct organizations I've gotten voting voting slates from so far:

  • San Francisco Tenant's Union
  • Alice B Toklas Democratic Club
  • Harvey Milk LGBT Democratic Club
  • San Francisco Young Democrats Club
  • Affordable Housing Alliance
  • San Francisco Democratic County Central Committee
  • Sierra Club
  • FDR Democratic Club
  • District 3 Democrats Club
  • Affordable Future for San Francisco PAC / Jane Kim

Most of these have sent three or four different ads with the same slate but different artwork or highlighting different issues.

Augh.

At least there are only two more days.

2015 Election Ads

You may or may not know this, but 2015 is shaping up to be a big election year in San Francisco. Yes, it's an off-year. Yes, there are "only" nine propositions on the ballot. Nonetheless, if you believe the rhetoric, this is the year that's going to make it or break it for the city of San Francisco. How do I know all this? It's because I read through all 46 pieces of printed advertising that I've received so far this season.

Election spam

read more

Pebble Time Steel Review

In February, I Kickstarted the Pebble Time. As soon as it was announced (March 3), I upgraded my Kickstarter pledge to the Pebble Time Steel. As you might remember from last year, I had Kickstarted the original Pebble ("Pebble Classic" now) and purchased the Pebble Steel as soon as it was released, so this was a no-brainer.

Well, it took a few months longer than expected, but my Time Steel arrived about a week ago, and here's my review.

Pebble Time Steel on wrist

read more

My Honeymoon!

As most of you probably know, I got married last month! The wedding was in Claremont and went great, and it's probably worth a post of its own; however, what I've come to write for you is a description of what followed — our honeymoon in France. We visited Paris, Beaune (in Burgundy), Avignon (in the Southern Rhône Valley), and Saint-Raphaël (in Côte d'Azur). Read on for more pictures and anecdotes than you could've ever asked for!

read more

How do I email?

Here are two things about me that some people don't know:

  1. I like e-mail. I mean, nobody looks forward to going through 700 e-mails every morning (which is about how many I get that I have to at least glance at), but it's far better than 700 meetings, 700 HipChats, 700 Slack messages, or anything else that requires synchronous attention. I'm all about being able to asynchronously "serially multitask", and being able to route everything through the dumb but asynchronous pipe of email makes that a lot easier. People who try to sell you on an e-mail-less office in favor of instant messaging tools are people who hate your productivity.
  2. I despise Gmail. I hate that most of the features only work in the awful web interface. I hate that the offline features of the mobile app only sort of work, and the web app hasn't been usable offline since Google Gears shut down. I hate that the IMAP server will sometimes turn off for 10 or 15 minutes and doesn't properly support the SEARCH command. Unfortunately, tech companies seem to exclusively use either Gmail or Outlook/Exchange, and Exchange is even worse than Gmail.

As you might expect given the intersection of those two facts, I have a pretty unusual mail setup. So I thought I'd share it on the Internet!

read more

Beating the Compiler

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%.

— Donald Knuth

Measure. Don't tune for speed until you've measured, and even then don't unless one part of the code overwhelms the rest.

— Rob Pike

We spend a lot of our time in the modern, web services-driven technology industry ignoring performance issues. What's the point of micro-optimizing a 3ms function call when each request spends 8 or 9 seconds inside the SQLAlchemy ORM? Well, sometimes it's nice to practice those optimizion skills anyway, and today I'm going to walk you through micro-optimizing a simple problem and we'll see just how much better we can do than a naive solution... even though we probably normally shouldn't.

read more

"DevOps" is a dumb word

Until recently, my job was to synthesize a deep understanding of operating systems, networking, system administration, and my company's application and to use that synthesis to fix our existing systems and design better ones. A lot of folks in the technology industry (particularly in the bubble of Greater San Francisco) use the word "DevOps" when putting out job postings for roughly those tasks, and I just wanted to briefly write about why this word is somewhere between inaccurate and offensive and why you shouldn't use it.

read more

some old hardware

My fiancée persuaded me to go through my drawer of old electronics and I thought I'd post a picture of some of the (working) portable computers that we went through today:

various old electronics

Included:

  • Apple Newton MessagePad 2100
  • Apple iPhone 3G
  • Nokia 770 (running Internet Tablet OS 2006)
  • Sony Cliè PEG NX-80V
  • Handspring Visor Edge
  • HP TouchPad

Combined, they might have as much computing power as the iPhone 6 I recently acquired. Probably not, though. It certainly is interesting to look at what has and hasn't changed over the last 20 years.

Also poked at today (but not pictured)

If you're interested in any of this stuff, let me know.

iPhone 6

iPhone 6

Hello friends. As you may remember from a few years ago, I am an iPhone user. Like several million of you, I decided to upgrade to the iPhone 6 this year. I thought I'd share some really brief impressions:

  • The 6 is gigantic. I have no idea how anyone is using the 6+. The photo above shows my 5s (which was already quite large) looking dwarfed by the 6. It still doesn't have anything on the iPad, though.
  • The curved edges of the front really do feel a lot better for the forward/backward swipe gestures in iOS when compared to the flat screens of the iPhone 5s and the iPad.
  • The screen is noticably better, particularly from extreme angles. Check out this shot of the two iphones and the iPad from a very low angle and in the dark; there's no contest about the contrast:
iPhone 6 angles
  • The screen is also noticeably cooler; setting a white background on it next to my iPhone 5s or my rMBP makes the 5s look yellow, the rMBP look neutral, and the 6 look blue.
  • iTunes is terrible. It took me at least two hours to get the iPhone up and running because when I plugged it in to restore from backup (thinking that a USB2 connection would be faster than restoring from "the cloud" over my Comcast internet connection), iTunes insisted on installing the versions of all my applications which it had backed up some time in 2013. So then I had to go download updates to 70+ applications over the WiFi anyway. Blech.
  • This is more of an iOS 8 thing, but Swype is great. I remember having it on the Motorola Droid that we had to use for on-call at Yelp and liking it there, and it seems to have made the transition to iOS with aplomb.
  • The camera does indeed focus faster. Otherwise, it seems identical to the iPhone 5S camera.
  • I wish it didn't have a camera bump. I might get a case (which I never do) just to hide the camera bump. Maybe the new Karvt skins will be thick enough to be level with it?
  • Scaled-up applications are really annoying. Jason Snell does a good job of explaining why in his iPhone 6/6+ Preview; the keyboard is the wrong size on scaled-up apps. And, of course, third-party keyboards are disabled in scaled-up apps. I am very eager for Tweetbot, Hipchat, and Google's apps to update.

That's it for now.

Sorry for going so long between posts; I have some posts with actually content (instead of just commercial blathering) in them queued up, and maybe I'll put one of those up soon.

Until then, ciao.