GPSD 3.12 has shipped – bulletproofed from below

I’ve been radio silent the last couple of weeks mainly because I’ve been concentrating furiously on getting a GPSD release out the door. This one is a little more noteworthy than usual because it may actually have fixed a well-hidden flaw or vulnerability of some significance. Regular readers may recall from back in 2013 that… Continue reading GPSD 3.12 has shipped – bulletproofed from below

Announcing microjson

If you’ve ever wanted a JSON parser that can unpack directly to fixed-extent C storage (look, ma, no malloc!) I’ve got the code for you. The microjson parser is tiny (less than 700LOC), fast, and very sparing of memory. It is suitable for use in small-memory embedded environments and deployments where malloc() is forbidden in… Continue reading Announcing microjson

Never let an invariant go untested

I’ve been blog-silent the last couple of days because I’ve been chasing down the bug I mentioned in Request for help – I need a statistician. I have since found and fixed it. Thereby hangs a tale, and a cautionary lesson.

Phase-of-moon-dependent bugs suck

I just had a rather hair-raising experience with a phase-of-moon-dependent bug. I released GPSD 3.11 this last Saturday (three days ago) to meet a deadline for a Debian freeze. Code tested ninety-six different ways, run through four different static analyzers, the whole works. Because it was a hurried release I deliberately deferred a bunch of… Continue reading Phase-of-moon-dependent bugs suck

No, GPSD is not the battery-killer on your Android!

Today, while doing research to answer some bug mail, I learned that all versions of Android since 4.0 (Ice Cream Sandwich) have used gpsd to read the take from the onboard GPS. Sadly, gpsd is getting blamed in some quarters for excessive battery drain. But it’s not gpsd’s fault! Here is what’s actually going on.

Falling through the cracks: why GPSD sometimes bogarts non-GPS devices

In a recent Google+ comment, H. Peter Anvin grumped about GPSD using “braindead heuristics” to determine which USB devices it should sniff as possible GPses when it gets a hotplug notification saying that one has connected. I was going to reply in a comment there, but the explanation ran too long for that. Short version:… Continue reading Falling through the cracks: why GPSD sometimes bogarts non-GPS devices

Making simple connections

About six weeks ago I asked How would you like to help fix the Internet? It was an open invitation to help develop a cheap millisecond-precision time source for instrumented routers, so we can do delay tomography on the Internet and measure the bufferbloat problem. The discussion thread on that post was lively, but eventually… Continue reading Making simple connections

Calling all open-source hardware engineers

How would you like to help fix the Internet? One of the efforts I’ve been contributing to during the last year is the Bufferbloat project, a group of experienced Internet engineers who believe that excessive buffering and poor queue-management strategies may be the real villains behind a lot of network problems commonly attributed to undercapacity.… Continue reading Calling all open-source hardware engineers

Calling all hackerspaces

This is a shout out to all hackerspaces and engineering schools within easy reach of Philadelphia. I’ve got a nice little design-and-build project that would do the world some good, but I don’t have the skills or facilities to do it myself. The problem: build a ruggedized special-purpose test enclosure to be mounted on a… Continue reading Calling all hackerspaces

You can tank me later

I have interesting friends. Two of them, who shall remain nameless because it is possible they have let slip to me information that is technically classified, recently told me the best GPSD deployment story since the robot submarine. So, Friend A says “Hey, Eric, did you know GPSD is used in the on-board nav system… Continue reading You can tank me later

Berlios is dying…

I just got word that, where I have several projects hosted including GPSD, is going to shut down at the end of the year. This is a huge pain in the ass. It means I’m going to have to bust my hump to get us to new hosting space. Moving the git repo won’t… Continue reading Berlios is dying…

GPSD 3.0 finally ships. It’s been a long epic.

Protocol transitions are hard. Yeah, I know the experienced software developers reading that are thinking “Well, duh!“. Shut up already, I’m venting here. I’ve just spent the better part of two years – actually, if you include design time and false starts it could be closer to five years – designing a new application protocol… Continue reading GPSD 3.0 finally ships. It’s been a long epic.

Configuration files and switches considered harmful

Someone on the gpsd-users list asked: I was just wondering why gpsd doesn’t have a configuration file in /etc/gpsd.conf, like most other Unix/Linux software? Because configuration files are evil, and not to be countenanced unless they become an absolutely necessary evil. Which in gpsd’s case is not yet, and I sincerely hope not ever.

Embracing the suck

This is a followup to The Rollover of Doom: a Trap for Good Programmers. That post ended “This problem is a Chinese finger-trap for careful and conscientious programmers. The better you are, the worse this problem is likely to hurt your brain. Embrace the suck.” That last phrase is a take on a military objurgation… Continue reading Embracing the suck