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
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
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.
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
Blogging has been light recently because I’ve been working very hard on a major GPSD release, which I just shipped. This is mostly new features, not bugfixes, and it’s probably the most new code we’ve shipped in one release since about 2009.
I’ve been working on GPSD a lot recently – we’re heading towards a 3.10 release with a lot of new features. As part of this release I’ve decided to ship a HOWTO on setting up a high-quality NTP time server using GPSD. In the course of working on that, I’ve had an idea. The idea… Continue reading Stratum 1 time server on a tiny SBC?
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.
I’ve been pounding on GPSD with the Coverity static analyzer’s self-build procedure for several days. It is my great pleasure to report that we have just reached zero defect reports in 72.8KLOC. Coverity says this code is clean. And because I think this should be an example unto others, I shall explain how I think… Continue reading Engineering zero-defect software
I got emailed summaries from a Coverity scan of the repo head version of GPSD today.
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
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
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
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
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
Four days after I got the word that Berlios is dying, I have saved GPSD from being pulled under as it sinks. A couple of observations on the project migration follow.
I just got word that berlios.de, 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…
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.
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.
I’ve gotten used to being cited in computer science and software engineering papers over the last decade, but here’s a new one. Today I read a draft in which I and the GPSD project get cited a bunch of times and it’s – er – not about open source. It’s about Marine AIS in disaster… Continue reading Broadening my Deepwater Horizons
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