Important Books

When I was a kid, learning how to program, I would spend pretty much every dollar I made on computer books. It was the only way to get the absurdly specific kind of stuff I was trying to learn.

Several of those books I consider “formative” for everything I’ve done since then, and I still have them. I’ve been carrying them around for around 30 years and it’s time to say goodbye.

I can’t bring myself to just get rid of them, because I know that at some point in the future I will be like “What was that DOS book that I learned about interrupts and BIOS from?!” and I won’t be able to find it. So, instead of keeping them and moving them from house to house, I’m going to post pictures of them and call it good.

So, without further ado, here are the most important books I’ve read in my life…
































Two books that are missing from this list, until I find them, are:

* Applied Cryptography
* A book about the Sound Blaster audio card that I can’t remember the title of. The Sound Blaster parts of the book weren’t that useful, but from that book I learned about DMA, interrupts, and low level device interfaces.

China and Kansas City

I realized today that I never actually wrote about why I was in China. I don’t really write here anymore, but it is a sort of history of my life, and that’s a pretty important thing to leave out, so I better write. I’ve also moved back to Kansas City, and that’s kind of a big deal too. So…

Back in June of 2015 I was asked by a company called Tin Whiskers to join them in Shenzhen, China for 3.5 months as part of their participation in the HAX Hardware Accelerator program, batch 7.

Tin Whiskers was a pick and place startup run by my friend Neil. They were building a delta pick and place system and wanted to use my OpenPnP software to run it. I had shared a booth with Neil at Maker Faire in 2015 and I was excited about what he was doing, and we got along pretty well, and this was a huge opportunity to go to the electronics capitol of the world, so I jumped on board.

If you’ve read my other posts on Shenzhen, you probably have the impression things didn’t go very well. It actually went a lot less well than it sounds, but there were some good things too.

The goal of the project was to have a working prototype after 90 days, demo it in San Francisco on day 111 and then to launch a Kickstarter to sell it. Unfortunately, for a lot of complex reasons, it turned out that the prototype wasn’t going to work. This caused a lot of strife within the company  and due to a lot of other unrelated strife the company imploded about two weeks before the end of the program. I won’t go into details about what happened. It was pretty ugly and a lot of feelings and friendships got hurt. I had a very minor nervous breakdown at one point, which is something I hope to never repeat.

The end result is that at day 111, when we should have been demoing at HAX Demo Day Batch 7 in San Francisco, those of us still with the company instead stood around watching our friends from other companies demoing while we all got pretty drunk.

Aside from that, my other posts on Shenzhen basically sum it up. Since then I’ve kind of softened on Shenzhen and I’d even like to go back – on my own terms and with my own resources. Less 1 star, a little more 3 star, maybe.

So that was 2015.

2016 had two stories. The first was that I took OpenPnP back to Maker Faire again and had an absolute blast. This time I invited two of my friends from HAX, Dan and Will, to come help out and it made the entire experience so much better. Courtney and I were able to take some breaks and enjoy the show while Will and Dan manned the booth. They quickly came up to speed with answering questions about OpenPnP and we were able to talk to a lot more people than usual. It was awesome!

The other big story is that Courtney and I finally got fed up with our too big for us house in the suburbs and put it on the market. We knew we wanted to live somewhere else but we didn’t really know where. We also knew we wanted to sell our house while the market was hot so we put it up and hoped for the best.

The best turned out to be a sale in 8 days and then we needed to find a new place to live. We looked all over Seattle and quite a ways outside of Seattle even. We really wanted to stay in Seattle, or near it, but a few things made it hard:

  1. It’s expensive as fuck.
  2. The traffic is a nightmare.
  3. The traffic. God.

In July we were in Kansas City for a concert and a quick visit. It was Sunday, and we were blowing time until our flight home. We were driving around the Crossroads area and drove past an open  house in a cool old brick building and since we didn’t have anything better to do, we went in.

We had found a 3000 sq ft loft in a 100 year old popcorn machine factory, zoned for residential and business, with a huge amount of space for all our hobbies. We suddenly realized we were moving back to Kansas City.

And that’s what happened. We put an offer in 2 days later, it was accepted, we packed all our shit and we moved back to Kansas City! We’ve been here since September and we’re loving it. We have family and friends nearby, a much more busy social life, the ability to walk to everything we need and tons and tons of space. The only thing missing is a back yard but Flux doesn’t seem to mind. She loves picking up the morning sniffs every day and is getting more walks than she ever imagined.

Buying a 100 year old brick building comes with it’s own interesting set of problems, and we’re working through those. It’s 4 months later and a lot of our stuff is still in boxes but it’s slowly taking shape. It’s been a lot of fun so far.

Now it’s on to 2017 and whatever that brings!

Github Thinks I’m a Robot

Update: I’ve asked Github Support to please consider sending an email to users who get flagged and they’ve said they will raise the issue internally. That’s good enough for me. Overall I think Github handled this very well, but it doesn’t hurt to ask for improvements.


This morning I woke up, went to check on one of my Github Repos and got this unwelcome surprise:

Screen Shot 2016-06-04 at 10.38.57 AM

I immediately sent a message to support asking what was going on and within about 15 minutes it had been restored. During the time it was “hidden”, my public profile and all my public repos returned 404 errors from Github. Basically erasing me from Github. I don’t know how long my profile was blocked, or why it happened.

I have over 5 years of history on Github. Thousands of commits to my projects and other people’s projects, active Wikis and Issues lists, hundreds of stars, etc. I am on Github, as a human, typing things every single day without fail.

This is pretty upsetting. For a short period of time everything I’ve done on Github, which is where I do all my Open Source work, was erased from the Internet. Even my code and repositories, which I thought were as safe as could be, were just gone. 404 Not Found.

This has really shaken my trust in Github, which is quite embarrassing since not two weeks ago I was publicly defending my decision to use it.

I don’t relish the thought of moving all my work off Github, but now I don’t know what to do. I feel like they can just erase me at any time.


Github has responded to my message and is not willing to offer any kind of explanation. Here’s the full transcript:

Nadia J (GitHub Staff) to me
11:00 AM
Hey Jason,

You certainly seem human to me! Sorry about our bots getting a little overzealous with the spam filter.

I’ve cleared that flag now, so your account should be back to normal.




Can you please explain to me how this happened? I have over 5 years of history on Github. I commit almost every day. I just filed two new issues for an open source project yesterday (through the web interface, typed by hand) and in my day job I commit nearly every day to a private repo. I’m active on Github every single day. I’m the owner of repos with hundreds of stars and many forks.
This is hugely upsetting. Github basically erased my developer resume for a period of time. I have no idea how long my profile and repos were returning 404 and I have no idea if it will happen again and when. Can you please give me some details here?
Hey Jason,Sorry, but we have to keep our spam-detecting tactics hush-hush. If I were to share that information and word got out, it would be like releasing access to some of our security protocols into the big, wide world. I hope you understand.

That all being said, none of your data was ever erased, and you were always able to access your account and keep working. A flag like this simply hides an account from public view.

As you probably know, there is also a banner placed on the top of your screen whenever a user signs in and this flag exists on an account. This is placed immediately at the time of the flag being placed. Additionally, the inquiries we receive from users who were caught in the spam filter take top priority in our Support inbox. We respond to these messages as quickly as possible.

I understand that this is not ideal, but it’s a very rare side effect to keeping all our users’ accounts as safe as possible. It’s very likely you won’t see this happen on your account again.

Let me know if you have any other questions or if I can help with anything else.



I can barely express my frustration with this situation. I can understand maybe placing a warning banner or something to let users know that you suspect me of spamming, but Github hid all of my public repos and all the work I’ve done for 5 years. I am an open source developer and Github effectively took all of my projects offline without even a warning. Why couldn’t you have emailed me to check? Or show me a captcha or any of the many other ways that companies check for automated access?

This may just sound like venting, but it’s not. I am very seriously concerned about keeping my data with Github now when it can just be “hidden” at a moment’s notice with no explanation or notification.

I really hope you will consider changing this policy. I’ve been a huge proponent of Github for many years and now you’ve completely lost my trust.

Still Here

[slickr-flickr tag=”blog-post-2015-09-21″ autoplay=”off” sort=”date” direction=”ascending” size=”large”]


I’m still in Shenzhen, China. I wish I wasn’t.

I’m on day two of recovering from a massive, massive hangover. I guess I’ll get to why a few paragraphs down.

So, it’s been almost exactly two months since I last posted. A lot has happened, but also a lot hasn’t happened. It’s mostly just living and working, but harder.

In the time since I’ve posted I’ve moved into a new hotel, settled into a routine, found some hobbies and have continued to be amazed by how gross China is. It pains me to say that, because I feel like you should try to understand other cultures and not compare them to your own… but damn man, it’s fucking nasty here.

Anyway, I live in Shenya Business Hotel now. It’s a Business Hotel because they decided to call it a Business Hotel, presumably to attract Business People. There is nothing Business like about it. My room smells like sewage most of the time. Not, like, a little bit. Like a huge fucking open sewer.

I’ve had to install mosquito poison in my room because I was getting eaten alive every night. I still have no idea where they were coming from. The drain, I think. My windows and doors are closed.

In the pictures above you will see a cool picture of a sanitized glass! Awesome! Except that little paper slip that says it’s sanitized just comes out of a stack on the maid’s cart. When you use one and throw it away she just rinses the glass out in the toilet (I assume) and puts a new slip on.

There is poop in the hallways. Often.

Last night someone threw up in the hallway so the manager came and yelled at people and beat on doors for 30 minutes. At 3am.

There is a machine across the street that we call the Squonk Machine, because that’s the sound it makes. It makes it night and day, loud as fuck, and has been since we got here. It’s part of some construction thing and they honestly run it almost 24/7. It’s awful.

On the upside, I mentioned hobbies. It’s really just one. I love wandering the electronics markets and documenting what I find there. Every Saturday I get up fairly early, have a healthy breakfast at McDonalds and then go wander the markets for 6 or 12 hours. When I find something neat, or rare, or that might help me in my projects I take a picture of it, take a business card and then document it in this spreadsheet.

I would love to just make it my life to create the Google of Huaqiang Bei but I am pretty tired of the smell of poop.

One of the good things is that we’ve discovered a great pizza place called NYPD. We go every Saturday to absolutely pig out on pizza and pretty decent beer. That’s the cause of the absurd hangover I mentioned. We’ve gotten to know the owner pretty well and he kinda expects us every Saturday and usually rolls out the red carpet for us. Well, this week we get there and they are out of draft beer! THE NERVE! We give him a little bit of gentle ribbing and then get on with emptying the bottle fridge.

So we’re waiting, and waiting, and waiting for our pizza and it’s taking forever to show up. Thompson, the owner, comes up and sees we don’t have pizza or draft beer and decides to just dump a ton of beer into a box with ice and give it to us. For free. So that basically turned the night into a shit show. We drank all that beer, ate all that pizza and then went back to the office and started drinking whiskey straight from a bottle we found. At some point I got in a punching contest with an Alaskan hockey player and that’s about all I remember.

That puts us at today, which has been fairly crappy. Just recovering and wishing it was tomorrow.

I know I sound pretty down on China, but that’s only because it’s awful. Seriously, don’t go.


Five Days: A Summary


I’ve been in China now for five days. It’s been a crazy whirlwind and I’ve written many pages on the subject in a draft but after re-reading it I realized it was boring as fuck. So here is a brief summary of my adventures so far, and some pictures! Not enough pictures, I know. I am going to remember to take more.

Day 1, Friday: One of my roommates blew the power in our hotel room, causing to have to get moved and we ate all kinds of weird things on sticks in the hotel restaurant.

Day 2, Saturday: Found our offices, found the subway, had really good curry, had miserable jetlag, starting getting our work organized. Visited the first (and second, third and fourth) of many electronics markets. More power shenanigans.

Day 3, Sunday: Even worse jetlag, a couple trips to Walmart to start buying some of the basics I will need while living here and some actual work. Dinner with some other folks involved in the same thing we are and had our first experience with everyone wanting to take pictures with us. Power adventures related to blowing out my brand new power strip tower thingy.

Day 4, Monday: By most accounts it was basically just a work day. I came to work in the morning, got some dumplings for breakfast off a street vendor, had some great coffee from a Kopi Luwak coffee place downstairs and basically just programmed all day. More trips to Walmart.

Day 5, Tuesday: An almost completely boring (but wonderful) workday. Met some new folks here for similar reasons as us and had dinner with them. The waitress had the best fucking time of her life laughing and telling us no when we tried to order things. No idea if they were out of stock or what.

Day 6, Wednesday: That’s today. Today was the official kickoff of what I am here for, so I met a TON of new people, learned a lot and got very little work done. It’s 7:48pm now and I’m still at the office, typing this.

I’ve had brutal jetlag since I got here and last night was my first full night’s sleep. I’m hoping tonight will be the second but for that to happen I need to stay up till at least midnight, so I am just sitting here doing this and will do a little more work.

There are some things I really like about China so far:

* Food is delicious and cheap as hell. You can get a great huge plate of all kinds of stuff for $5 or less, in a nice restaurant, very quickly and without having to tip.

* Since there’s no tipping, the service is weird but cool. The wait staff pretty much leaves you alone. If you want help you yell. Often you pay as soon as you order, and then the food comes out amazingly fast. Like, strangely fast. Like… there’s no way you had time to cook that fast. But it’s all been great and no sickness so far.

* Since you pay when you order, when you are done you just get up and leave. Awesome.

* The subway is clean, fast, cool and wonderful. It’s honestly the best subway I’ve been on anywhere. Not even very crowded.

* Other stuff is cheap too. Beer is almost free, water (which you need to buy and not take from the tap) is just a few cents.

* People are generally nice and helpful. Not many people know any English but they are very willing to try to help you and understand you.

* The electronics markets are like something out of a nerd wet dream. They are endless and you can buy ANYTHING. I mean it. Anything you can think of in the technology, electronics, mechanical or consumer market and there is at least one stall full of it. There are probably 500 stalls full of it. There are entire stalls dedicated to stepper motor cables. It’s like my crimper died and went to heaven.

There are also some things I don’t like about China so far:

* Everyone smokes. It’s everywhere and completely unavoidable.

* People hack and spit CONSTANTLY. On the street, in buildings, in elevators, everywhere. It’s gross.

* There’s a lot that is just gross. No better way to describe it. Trash, dead things, slime, grease, human refuse, just gross. Lots of it.

* There is no personal space. People will just rub up against you in line. Bump you with their shit. Push you (gently) out of the way.

* There are no rules. Traffic goes anywhere it wants (more on this later), people smoke while standing right in front of the no smoking signs with the people who put the signs up standing right there not caring. People butt in line. Last night we were at a corner store buying beer and I guess two girls behind us decided we were taking too long and just pushed past us, walked in front of us and had the clerk ring them up first. We just kinda stood there stunned.

The traffic is incredible. There are cars and electric bikes everywhere by the thousands. They go whatever fucking way they want. Traffic moving too slow in one direction on a two way street? Drive up the other side of the street, honking at the cars who DARE come at you. Too many cars on the street? Ride your motorcycle on the sidewalk, dodging old ladies and children. Honk always.

If Shenzhen had a slogan it would be Always Be Honking. People honk to get you out of their way, to say thanks for getting out of the way, to let you know they are coming at you, to let you know they are going to ignore the traffic signals, to let you know they are going to drive their electric bike right into the fucking store, to say Hi or just because it’s a nice day and why not do some honking?

We’ve taken to just saying “Honk!” while walking around, just to fit in a little better.

I had a mini breakdown the third night. I was tired from jetlag, my back has been hurting, I had no privacy and nowhere to just relax and suddenly couldn’t figure out why the fuck I agreed to this. I fell asleep and in the morning I was over it, and I am excited now, but it was a low point.

So that’s the first five days. I know I should say more, but honestly it’s just been about trying to survive and set up some kind of normalcy. This isn’t like a normal trip where you are just living out of a bag until you leave. I have to make a life here for a quarter of a year and the transition has been difficult.

And finally, pictures! In that one of the very tall building, the thing hanging from the crane is a full size shipping container. It’s a very, very tall building.

[slickr-flickr tag=”shenzhen_day_1_through_5″ autoplay=”off” sort=”date” direction=”ascending” size=”large”]


Looking East

I suppose it’s fitting to follow an end with a beginning.

In the time since my previous post, I have healed. I didn’t think I would, but it happened. I can think about Sonja, and talk about her in the past tense and not cry.

That seems better.

Being busy has helped, and busy tends to multiply, which brings us to a new adventure.

Tomorrow I will pack a bag. Not a very big one, considering. And I’ll board a jet and I will move to China for 3.5 busy months. I’ll be working, and I can’t yet say what on, but it’s going to be stressful, and challenging, and exciting, and scary, and probably awesome.

Within the next few weeks, I hope, I’ll be able to talk more about what I am doing there. At the very least I will be posting about my travels, even if I am not talking about the work. I don’t know if you are still reading- I know it’s been a while, but I hope you will follow along.

Saying Goodbye to Sonja

Last night Courtney and I said goodbye to Sonja. She had been in pretty rough shape for quite a while and she had some bad breathing trouble last night and I knew it was time. We took her to the vet and laid on the floor with her while she went to sleep. She went very peacefully and I am so glad that I could be there with her.

The first picture I ever posted to this blog was of Sonja, in a laundry basket, just being Sonja.


I’ve known this was coming for a long time. She’s been on a downhill slope for a few years now and this past year was very rough. Even though I thought I was prepared, nothing could have prepared me for this pain. I miss her so incredibly much. I can’t fit a world into my mind where she isn’t with me. It’s so easy to slip into a train of thought where I’ll see her again and it hurts so much.

I want to write more, but I can’t find the words. Maybe when the pain has dulled a bit. I know it will, although right now it doesn’t feel like it.

For now, goodbye my sweet girl. I love you, I miss you and I’m so glad I got to spend all the time I did with you. You were everything to me, and I will never be whole again.


Hey guys, remember when we were all so excited that blogs were gonna replace the lame ol’ newspapers and all those silly reporters? We were right! Except then all those hard fought freedoms, and all that integrity that those old reporters and newspapers had went with the reporters and newspapers and now news is vapid entertainment and we’re pretty much fucked.

Annoying USBank Website Bug

USBank’s online banking site has a really annoying little bug that has been there for as long as I’ve been using the site. Which is, like, years. Years and years.

Here is a video showing the problem:

What happens is that if you have previously logged in to the site and then left the site but kept your browser open, when you try to log in again it tells you that your session has expired and that you must login again. Expiring the session is good security and makes lots of sense, but taking me to a page to tell me it happens is a bug.

If I am typing my username in and hitting login then I am interested in starting a new session. It doesn’t matter if my old session has timed out. I’m already trying to start a new one. What most websites do in this case is clear any state remaining from the old session and immediately just start a new one. Telling me about that process just wastes my time. No other website, including every financial one I can think of, does this.

It’s a bug. Please, please fix it.