Red Echo

August 15, 2012

Extremely minimal JSON parser written in C89, suitable for small embedded systems. A delightfully basic mechanism.

August 14, 2012

Spent the evening with seven-year-old Isabella at one of the Hackers on a Train 2012 soldering workshops. She chose one of the more ambitious kits, which will be no surprise to anyone who knows her, and we got about halfway through a Gamby video-game kit incorporating an LCD screen, joystick, speaker, and the like. This is after she completed the Diavolino kit which will provide the computational horsepower. (The Diavolino is an Arduino-clone, and the Gamby is a daughterboard.)

I’m awfully tired now, and I made her do almost all of the soldering at that. She’s a very intense and intently focused girl who wants to know everything about everything, and while it is very rewarding to help her figure things out it is also a lot of work! Oh, well, somebody has to train up the next generation, and this way I get to “pay forward” all the time people spent helping me learn when I was her age. It’s also deeply satisfying to get to see the little gears in her head turn and watch her put things together and learn how to make her world work.

How to make your own custom concrete countertops, and part 2. It can be pretty stuff.

August 10, 2012

Ornamental leather pauldron for Burning Man

I needed something to protect my shoulder from sunburn, so I went to MacPherson Leather and picked up $10 worth of leather scraps and miscellaneous hardware. Three hours later I have this buckled, contoured, flexible bit of shoulder armor. The contouring is not great, but leather stretches so it’ll work fine.

Some day I’ll make that white-leather-and-faux-fur armored laser rave angel costume. Maybe I’ll tackle that this fall when I get back from the burn. Blue lasers are cheap now, so I can simplify the backpack optics and just use two of them.

August 9, 2012

Carry ALL the things!

The Grey Ghost, newly rack-equipped, stands ready for summer adventure.

August 7, 2012

I spent a couple of hours working on Radian this afternoon and have absolutely nothing to show for it. All I did was restructure code and move it around. I really like the freedom this project affords me to clean things up as I go: the codebase stays tidy, and new features don’t generate excess complexity. Refactoring just feels good.

August 4, 2012

I got my bike back from the mechanic today with a new valve cover gasket and a new clutch cover gasket. No more leaking oil, and now I can reasonably consider taking a long trip with it! I had thought I might spend some time scrubbing the engine down after getting the leaks fixed, but it was way too hot today to do anything outside. When it cools off, I’ll install highway pegs on the bike’s much-abused crash bars and rework the headlight mount so it doesn’t wobble. I’m still thinking about mounting a couple of ammo cases as panniers, too.

I had this random idea for a new kind of flashlight: like a headlamp, but for your hands. I was thinking about how at Burning Man there’s often this awkward moment where you meet someone and both blind each other before remembering to point your headlamp some other direction. What if instead you strapped the light on your hands, so it would point at whatever you were pointing at? I picked up some webbing and elastic and dug through the parts bin, and this is what I’ve got so far. I’ll cover the electronics and battery holder with a little swatch of canvas once it’s wired up.

August 3, 2012

Bedside table is finished

August 2, 2012

It’s just shy of midnight on a Thursday, and there are six people working at ALTSpace, none of whom were among the original group of members. I’m still surprised at how far this project has gone and how quickly it has gotten there. Where will it go next? We’ve taken all the space we can get in the current building, and I don’t think it would be realistic to try to move anywhere else. Perhaps we’ll help start new hackerspaces around the city instead – sort of a chain of ALTSpace franchises…

August 1, 2012

Here’s an editorial by some guy who runs a couple of tech startups about the importance of correct grammar and its effect on his hiring decisions. I’m not sure I necessarily agree with this, but it makes me feel warm and fuzzy inside all the same:

If you think an apostrophe was one of the 12 disciples of Jesus, you will never work for me. If you think a semicolon is a regular colon with an identity crisis, I will not hire you. If you scatter commas into a sentence with all the discrimination of a shotgun, you might make it to the foyer before we politely escort you from the building.

Some might call my approach to grammar extreme, but I prefer Lynne Truss’s more cuddly phraseology: I am a grammar “stickler.” And, like Truss—author of Eats, Shoots & Leaves—I have a “zero tolerance approach” to grammar mistakes that make people look stupid.

In the same vein, programmers who pay attention to how they construct written language also tend to pay a lot more attention to how they code. You see, at its core, code is prose. Great programmers are more than just code monkeys; according to Stanford programming legend Donald Knuth they are “essayists who work with traditional aesthetic and literary forms.” The point: programming should be easily understood by real human beings—not just computers.

July 30, 2012

Flexible and Economical UTF-8 Decoder

A UTF-8 decoder in C99, implemented in 27 lines of code:

Systems with elaborate Unicode support usually confront programmers with a multitude of different functions and macros to process UTF-8 encoded strings, often with different ideas on handling buffer boundaries, state between calls, error conditions, and performance characteristics, making them difficult to use correctly and efficiently. Implementations also tend to be very long and complicated; one popular library has over 500 lines of code just for one version of the decoder. This page presents one that is very easy to use correctly, short, small, fast, and free.

Traditional joinery is hard work

The latest bedroom reorg replaced the small dresser next to my side of the bed with a much taller one, thus depriving me of my nightstand. Taking advantage of my copious free time, I decided to build a little table which could fit in between bed and dresser and provide a home for wallet, keys, phone, and current book. For no particular reason I decided to go all old-school and use no fasteners, just wood and glue. It’s time-consuming but so far very satisfying.

Thermite video

Here’s Adam’s recording of the thermite sculpture project on Saturday.

July 28, 2012

Metal sculpture with thermite

One pound of thermite set alight atop a stack of thrift-store pot lids: a cascade of molten metal. First experiment toward a kind of performance-art sculpture concept.

July 27, 2012

Progress on the playa scrambler


Adam checks out the careful engineering and meticulous workmanship in evidence throughout our project

Ava and I spent four or five hours working on the playa scrambler today. We finished welding the frame together, and took turns pushing each other up and down the street. The suspension is amazing, totally springy – all three wheels are independently suspended, and with two deep-cycle batteries on board the sprung to unsprung mass ratio is high.

Next task is the steering linkage. It’s possible to control the machine as it is, with one handle for each front wheel, but it’s a lot of work keeping the wheels pointed in the right directions. A tie rod and some Ackermann geometry will help.

It’s much easier to push this thing along than I had feared – despite its weight, it rolls smoothly. I think our little 350-watt motor will have no trouble getting us up to the Black Rock City speed limit.

July 26, 2012

Radian’s async generators are finally done and shipped, as of yesterday. The project took much longer and proved substantially more difficult than I had expected it would, but now it’s done, and it was the last big piece of engineering work on my to-do list. What’s at the end of the to-do list? Not “Radian 1”, probably, but a version of Radian that can actually do more than just demonstrate how the language works.

Yes, it’s true, I’ve spent years building a programming tool that cannot yet do any useful work. I’ve been reluctant to push this thing out into the public eye, in part because there were simply too many unanswered questions about how all these ideas would work in practice. I wanted to preserve my freedom to revise the language without having to maintain compatibility with code people had already written.

The very next change I’m going to make would have broken every existing Radian program, if there were any. Now that the async task system is in place, I’m going to tear out the whole IO system and write one based on the ‘sync’ operator. It will be dramatically more readable, a lot easier for people to figure out – it’s one new thing to add instead of a whole different way to think about it.

Isabella examines the shiny new wristwatch she just finished soldering together, using SparkFun’s BigTime kit. This was the third electronics project we’ve worked on together, and she seems to be very happy with the results.

July 24, 2012

My birthday

July 22, 2012

Melanie M.’s birthday

 

July 18, 2012

BT Moto Club meetup at Smarty-Pants

In the week since I was ejected from Google I have been spending a lot of time working on Radian. I had intended to put in the equivalent of full-time hours, but somewhat to my surprise I find it only takes 3-4 hours before I run out of code to write. There’s still a lot of thinking to do, and some of that thinking is best done as a background task while I focus my attention elsewhere. I can’t just power through it by thinking hard. I’ve been fitting the coding work into spare hours during evenings and weekends, but how much further would I have gotten if I had whole work-days available for this project? In terms of hours invested, there’s probably not more than half a year’s equivalent of full-time labor in the project, but there’s no way I could have solved my way through all these problems in that short a time even if it were the only thing I was doing.

July 17, 2012

Odroid-X is a quad-core 1.4GHz Cortex-A9 board with 1GB onboard memory. It runs Android or standard Linux, sports an exciting array of microcontroller-type interfaces, and costs all of $129.

July 16, 2012

Motorcycle trip concept route

I spent a while roughing out a cross-country loop route for the motorcycle trip I mentioned the other day. I want to avoid the South, since it’s summer time, and avoid the plains states as much as possible, since they are boring. The route also prefers two-lane minor highways over the big interstates, and I routed it through parks and other less-developed areas whenever possible.

The result is a 6500 mile loop spread over twelve riding days.

My bike has practically-new tires, chain, and sprockets, so it’s in good shape for a long trip. I’d have to get the valve cover gasket replaced and add on a pair of highway pegs. It might also be a good idea to add on a set of panniers, instead of bungee-cording a backpack onto the seat rest – maybe .50-cal ammo boxes?

July 14, 2012

I’ve been half-seriously toying with the idea of riding my motorcycle across the country to visit my sister MJ in New York. Three thousand miles on two-lane highways sounds like a lot of beautiful scenery. I rode six hundred miles each way to Mike and Alissa’s wedding, and rode about 650 miles on my way back from Burning Man in 2009, so I was figuring I could do this trip in five days each way, with a few days in the middle to visit.

I mentioned this idea to my friend Joe P., an accomplished motorcyclist who once rode his KLR650 from Seattle all the way to Tierra del Fuego. His response – “HOW many miles per day? That’s…. insane.” … Oh. Hm.

July 12, 2012

movin’ on

I’ve spent significant portions of the last two-and-a-half days working on Radian. I’ve made no new breakthroughs – just doing cleanup work and fixing one major bug – but it feels good to be able to dig in and sustain my focus on the project for more than an hour or two at a time. I wonder how far along I can get in the next month or two? Perhaps I’ll finally be able to push past the threshold where it goes from being a hacker’s curiosity to a sparsely outfitted but usable tool; the list of missing pieces grows steadily shorter.

July 10, 2012

job verdict: finished

I was fired this afternoon – first time ever! It’s not the outcome I was hoping for, but it’s a relief to be done with the job. The pay was good and the cafeteria was excellent, but the work was tedious and uninspiring, difficult in the bad ways and not the interesting ones. I stuck it out in hopes that I could eventually establish myself and move on, to a project I could actually care about, but was never able to get out from under the grind of the “starter” project.

I’ll probably never work for another large company. I can’t identify what exactly it is that makes big companies such ill-fitting environments for me, but the pattern is clear. Every time I’ve worked for a small company, I’ve rocked the house; every time I’ve worked for a big one, it’s been a disaster.

Well, it’s their loss. I’ll find something else to do. For now I’ll hack on Radian, maybe do some more backpacking, enjoy the summer. I might still tinker with the electric motorcycle, even though the commute it was designed for is no longer happening…

July 6, 2012

Climbing Clouds Rest

   

July 5, 2012

Hiking along the Cathedral Lakes trail

   

July 4, 2012

Independence Day

« Previous PageNext Page »