Review of Das Keyboard Professional S for Mac


I recently bought a Das Keyboard Professional S for Mac keyboard, to use at work. There are already many blog posts and articles about mechanical keyboards, keyboard switches, and the Das Keyboard product line. I won't re-hash all that here. Let's get right to my opinions. tl;drI give it an A-. I'm very happy I … Continue reading Review of Das Keyboard Professional S for Mac

Mobile phone international data plans are moronic


My spouse traveled to Canada for a few days. She just went a few miles over the border into Vancouver, BC. She neglected to add an international data plan to her mobile number before she left. Because of this, she racked up $300 of data charges in 24 hours. Every wireless carrier has at least … Continue reading Mobile phone international data plans are moronic

Our Python 3 migration status


IP Street's application runs on Python 2.7. Earlier this week, I evaluated all our Python packages for Python 3 support, as the first step in deciding when to migrate our codebase. Although this was the time I've checked our packages for Python 3 support, I expected Django to be the only one that didn't officially … Continue reading Our Python 3 migration status

IP Street is looking to hire a Senior Developer! (Seattle)


If you know someone who fits the bill, send them this post! ———————————— Title: Senior Developer Reports to: VP Engineering About IP Street Founded in 2009, IP Street develops and markets software to help corporations, law firms, and financial analysts better analyze patent-related information. We make IP data easy to get, use, and understand! Summary … Continue reading IP Street is looking to hire a Senior Developer! (Seattle)

Useless entrepreneurial and business advice


Jeff Bezos was in the news this week. Our local tech news site, GeekWire, published five posts about him. What are the most important traits of innovators? Have a willingness to fail. Bezos believes that truth shakes out when ideas and perspectives are banged against each other. Think long-term. Etc. Some of the commentary was a … Continue reading Useless entrepreneurial and business advice

Giving up on Pyrax


An update to an earlier post... I'm replacing pyrax with something else in our system. The authentication errors and oddball failures still occur, and I've lost confidence that Rackspace will fix them in any reasonable amount of time. This is extremely frustrating. Python-cloudfiles was way more stable, even though it wasn't and still isn't in … Continue reading Giving up on Pyrax

Tripped up by Python string comparison


Thursday, I was irked by a bug. I had modified a background task so it could import a range of documents from another subsystem into our datastore, instead of only one. Its parameters had included one "document id", which identified the patent document to import. Now, it could be given that, or two document ids … Continue reading Tripped up by Python string comparison

Context managers and unforced errors


tl;dr: Think about exceptions when writing a context manager. I made a huge unforced error with a context manager at work. We use Redis distributed locks for system synchronization. I wanted a context manager that acquired n locks, executed protected code, and then released the n locks in reverse order. It would be simple to … Continue reading Context managers and unforced errors