Red Echo

May 28, 2015

A selection of lift kit options for the Range Rover Classic

May 19, 2015

Now that the woodshed project is done, it might be time to fix my motorcycle.

May 18, 2015

Woodshed / bench for my back deck

tmp_6607-IMG_20150518_090344403074681

Adam H. came over yesterday and we constructed this shaded storage box for all the firewood that has been cluttering up my yard. Since it abuts the firepit area I thought it would be fun to build in a new bench for more cozy seating; now the fire is ringed on three sides.

May 15, 2015

The Infinite Pixel Screen

A short, clear, and approachable adventure into notions of infinity, using high-resolution monitors as the introductory analogy.

May 9, 2015

We should organize an event called Naked Man where everyone runs around with their clothes on fire.

May 8, 2015

“SJWs” are imaginary but prejudiced jerks show up everywhere

I’ve been watching the spread of this “social justice warrior” meme with some bemusement, because it is clearly just another fantasy bogeyman for racist and/or sexist bigots – what kind of troglodyte thinks social justice is a bad thing, and how deeply enmeshed in entitlement fantasyland do you have to be in order to say so in public without embarrassment? – but the term “SJW” turns out to be very useful despite its lack of real-world referent, since it offers the “gamergate” assholes and their ilk a clear warning signal they seem happy to tattoo on their own foreheads. Nobody admits to being a racist or a sexist, but these folks don’t seem to have realized yet that ranting on about “SJWs” sends the same signal loud and clear.

May 2, 2015

Quadratic voting

This sounds a lot like an idea I was toying with for the governance structure of an LLC which would manage a piece of land serving as a community gathering space. I was using a log function rather than a quadratic, but I didn’t go to this level of rigor, either. Neat to see someone actually work out a proof.

Quadratic voting is a procedure that a group of people can use to jointly choose a collective good for themselves. Each person can buy votes for or against a proposal by paying into a fund the square of the number of votes that he or she buys. The money is then returned to voters on a per capita basis. Weyl and Lalley prove that the collective decision rapidly approximates efficiency as the number of voters increases.

April 29, 2015

Category Theory for Programmers

Bartosz Milewski has been writing a helpful series of articles explaining category theory using language intended to be familiar for computer programmers. He has recently begun Part II, which discusses declarative programming.

April 28, 2015

Used ThinkPad Buyers’ Guide, with prices, key specs, and suggestions of the best models to look for.

Antarctica from the air

Kalle Ljung filmed his Antarctica sailing trip with a drone-mounted video camera. The result is a slow, crisp, stark, beautiful eight-minute video, best viewed late in the evening with a tumbler of whiskey and a warm blanket tucked around your ears.

April 26, 2015

Light art hacking

It’s a fine grey Seattle spring afternoon and I’m sprawled out on my bed with a laptop making an array of LEDs jump through some specific hoops. The math is pouring out of my head, stuff from the previous iteration of the previous bloom lights project mixing up with old familiar tools I’ve been using since I worked on Starfish. I don’t exactly know what to call this, but it feels like my most comfortable artistic medium, and it’s really nice to be back.

April 25, 2015

Me and AJ at SEAF

IMG_20150425_235126

Thanks to Ruben Ortega for the photo.

April 22, 2015

High-mobility vehicles

An Indiana company called Startracks Trucks offers 6×6 conversions – all six wheels drive and steer. There is a tantalizing photo of the suspension layout though I don’t think that example shows steerable axles.

People have apparently converted their Land Rovers to 6-wheel drive, too.

Lockheed prototyped an 8×8 vehicle where the entire frontend operated as a separate 4-wheel walking beam suspension module. I love the photo showing a Twister prototype climbing over a wall which appears to be at least 80% of the height of its tires, but I’m linking it here because of the interesting diagrams of its suspension and drivetrain.

April 20, 2015

Remodeling finished

tmp_21621-IMG_20150420_110301698-295418920

April 19, 2015

Looks like fun. My turn?

tmp_21621-SZNuW6V-1168793939

April 6, 2015

Remodelling my house

I don’t know how it is that I have so far neglected to mention the single largest project I am likely to undertake in this calendar year, but it’s finally drawing to a close, so I feel like giving you all an update.

In a nutshell: I tore my bedroom down to the plaster and subflooring, ripped out the drop ceiling, and rebuilt it all again.

Somebody, at some point, for reasons I can only guess at, decided that the bedrooms in my house were just too spacious, and would look a lot better if their ceilings were sixteen inches lower. Various other people, at other times, have applied their opinions about the desirability of thick texturing on the plaster. The most recent owner clearly believed that cheap beige carpet was a good thing. And nobody, in the entire history of this house’s existence, appears to have taken issue with the manifest insufficiency of this bedroom’s single, solitary power outlet.

I had one month – February – between the departure of one tenant and the arrival of another, in which to move all my possessions out, tear my bedroom apart, and rebuild it in a manner more in keeping with my aesthetic priorities. I just barely accomplished this, but of course the last 10% of any project takes the other 90% of the time and so I have been living in a mostly-but-not-quite finished bedroom all month.

The ceiling is back up to its original height, and after scraping off years of texture and wallpaper, I smoothed the walls back up with a fresh coat of finishing plaster. The carpet is gone, with a new layer of sound-dampening felt under a sturdy sheet of engineered hardwood in its place. I’ve installed new door, closet, and window trim, and now the baseboards as well. Yesterday I finished painting all this new trim, and it’s starting to look almost respectable in here.

I’ve slimmed down my furniture as well, passing a couple of shelving units along to new owners after making better use of the vertical space in my closet – so there’s more open space horizontally and not just vertically.

There’s still a fair bit of work left but I am definitely easing down the home stretch. The ceiling needs crown moulding, I have a ceiling fan/light unit to install in place of the bare bulb currently illuminating the room, and my wall-mounted nightstands need to be reinstalled after I’ve finished painting the wall they live on. I should probably come up with a new closet door, too.

It’s been a ton of work, but I’m really happy with the way it’s coming together. It’s my bedroom, in my house; I’ve never had so much freedom to customize a space before, and it’s been great to take things as far as I wanted to make them go.

March 27, 2015

Antarctic heat wave

63.5°F in Antarctica: Possible Continental Record

The warmest temperature ever recorded on the continent of Antarctica may have occurred on Tuesday, March 24, 2015, when the mercury shot up to 63.5°F (17.5°C) at Argentina’s Esperanza Base on the northern tip of the Antarctic Peninsula. According to weather records researcher Maximiliano Herrera, the previous hottest temperature recorded in Antarctica was 63.3°F (17.4°C) set just one day previously at Argentina’s Marambio Base, on a small islet just off the coast of the Antarctic Peninsula. Prior to this week’s remarkable heat wave, the hottest known temperature in Antarctica was the 62.8°F (17.1°C) recorded at Esperanza Base on April 24, 1961.

Why is the “Internet of Things” supposed to be a good idea?

It was easy to understand why the Internet was awesome, right from the beginning, because you could use it for something really useful: communicating with other people. This is something every human being wants to do.

I still don’t understand how this internet of things is going to provide a service that human beings actually want. I can see why the economics of chip manufacture have made it possible to add a microcontroller to every electronic device, and a network interface to every microcontroller, but then what? Why would we want to do that?

March 24, 2015

Fixing a Chromebook Pixel

How to turn the Chromebook Pixel into a proper developer laptop and get rid of that crazy control-key-on-boot nonsense normally required if you want to run linux on a chromebook.

March 10, 2015

Self-driving cars: not for me, please

My feelings about the so-far-still-pretty-much-speculative self-driving car future range from “meh” to “please stop already”, which is odd for such a blatantly sexy application of robotics. Aside from the obvious privacy/tracking problems, which are increasingly moot given the proliferation of license plate scanners and toll pass sensors, I think the real problem is that it just sounds boring. If I’m driving, at least I have something to do with my brain. Handing the controls over to a robot leaves nothing but the tedium of sitting around waiting to arrive.

I can imagine self-driving cars as a replacement for human drivers in a service like Lyft or Uber much more easily than I can imagine individuals purchasing their own. I use Lyft a fair amount, actually – though I usually chat with the driver, and getting acquainted with somebody new is a nice way to circumvent boredom. Riding alone in a silent, empty car with nothing to do sounds… much less pleasant. It’d still be nicer than taking the bus, which is neither silent nor empty nor comfortable nor rapid, and offers little in the way of stimulation for a hungry brain.

At least there will always be motorcycles.

March 8, 2015

I want one of these for my birthday

You are all hereby notified that this is simultaneously adorable and awesome and I want one. Or maybe two.

nO6IHKd

February 26, 2015

Renaming lindi

I wrote a little code editor some twenty-odd years ago which I named “lindi”, a partial acronym for some series of words I can no longer recall. I’ve long since lost track of the code as well as the meaning, but decided to reuse the name for my new retro-style terminal-mode IDE partly from nostalgia and partly because names are hard.

After a few months of steady use, however, I’ve noticed an unfortunate consequence of this particular name: it doesn’t autocomplete well, because there are too many other programs already named “lin*”. “lind”-tab is no shorter than “lindi”, so I end up typing the program’s full name every time I want to use it – which I do many times a day.

Being a fundamentally lazy person, I have therefore decided to rename my editor. I listed out all the unused two-letter prefixes on my system, then searched for various words beginning with those letters on github and the web to make sure they weren’t already used by other projects, and the winner is “ozette”, after the lake out on the Olympic Peninsula.

And now I’ve written a long blog post about an inconsequential design decision affecting a piece of software LITERALLY ZERO PEOPLE IN THE WORLD other than me have ever used! But I am amusing myself, and this is my blog, so I guess you know what you’re getting if you read it.

February 11, 2015

My sister Carolyn has a food blog, with recipes. Mmm.

February 10, 2015

It is now possible to build and run the .NET CLR on Mac OS X, from source. This is… interesting.

Cuwire is a styled-up replacement for the (extremely simple) Arduino IDE with more of the usual features found in a professional dev tool.

February 2, 2015

Silly architecture rant: the library

After doing my best to ignore the downtown Seattle library for the last decade, I am now stuck walking past it every work day. Everyone who has taken the time to figure out which side has the entrance tells me it is very nice once you go inside, but the building is so alienating that I just don’t want to. It looks like a group of extraterrestrial cephalopoids were busy erecting a high-tech prison when an earthquake knocked its foundations over, and they simply carried on stacking up the floors without bothering to fix the damage. The place is even more unwelcoming than the Darth Vader building, and that takes some doing.

January 30, 2015

PCBmodE is a PCB design tool built sort of like a programming language. Instead of laying out a board graphically, you write a JSON description, which PCBmodE then compiles into an SVG. You can preview and even edit the layout in Inkscape, then use PCBmodE again to generate Gerber/Excellon files you can send to the fab house.

This seems like it could be a clever end-run around the complexity and generally proprietary nature of EDA tools. Using Inkscape as a viewer/graphical editor instead of writing a whole new CAD app is a great idea.

January 28, 2015

Now that I’m back in Linux for daily development work, I’ve switched to Lindi as my full-time editor. It’s not perfect, but it’s good enough to get my work done, and it is just so satisfying to use an editor whose design is tailored precisely to my own taste that forgiving the occasional hiccup comes easily.

January 22, 2015

I’m near the end of my second week at Coverity, and I feel pretty happy about the way things have gone so far. I have yet to commit any new code, but I feel like I’m ramping up reasonably well and will begin making useful contributions soon. I have a nice dev environment set up, my coworkers are friendly and intelligent, and the office has a great view of Mount Rainier whenever weather allows. I think this is going to be good.

January 15, 2015

gnome-terminal describes itself as $TERM="xterm" even though it is capable of displaying more than 8 colors. You can fix this by pasting this code into ~/.bashrc:

if [ -n "$DISPLAY" -a "$TERM" == "xterm" ]; then
export TERM=xterm-256color
fi

Verify that the fix worked by doing source ~/.bashrc, then tput colors; it should print 256.

January 14, 2015

Helpful illustrated explanation of an electric bicycle conversion. Lots of details and discussion of the reasons for each design decision.

Next Page »