Red Echo

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

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.

January 10, 2015

The little book about OS development, by Erik Helin and Adam Renberg, dated May 2012. 76 pages, straightforward and practical.

January 5, 2015

This is a bar made from half of an old M113 APC.

Some day, I will own a tank*.

*an APC would be sufficiently tank-like to satisfy this life goal

December 4, 2014

I am single once again

I just heard from my lawyer: fourteen months after Ava and I broke up, our divorce is finally over.

WOOT! Such a relief.

November 22, 2014


This 42″ giclee print of Echo Chernik’s “Jakouageha” is signed by the artist and numbered “1/1″. There are 50 of the 36″ prints and 20 of the 48″ version, but this is the only 42″ print of Jakouageha that was ever made. I have had it on layaway for most of a year, with a little poster version of the image standing in for it in the meantime. I’m very happy to have this beautiful piece of art over my mantel, first thing you see when you walk in the front door.

November 20, 2014

Lindi screen shot

November 19, 2014


A moment of inspiration hit just after I finished up with Mylio and had some time to act on it. I’ve had this idea brewing in the back of my head for three or four years now, and the whole thing came flying out in a nearly non-stop rush. I’m sure I’ll be tweaking it for months to come but it feels pretty good to have built a usable tool in just a couple of weeks.

I’ve posted the code on github:
Lindi, an editor shell for software development

I smashed a directory browser, a pico-inspired text editor, and a simple shell console together inside a terminal-mode window manager to create a kind of lightweight IDE where the current working directory plays the role of the project file.

The immediate problem was that I want to work on a project which has to be compiled on a Mac using Xcode, but I don’t want to be stuck at my desk all the time, and my laptop is a Thinkpad running Ubuntu. I considered VNC, but it’s hilariously insecure, tunneling it over SSL looks like a nuisance, and anyway Xcode feels cramped on the Thinkpad’s 1024×768 screen. In a classic fit of programmer laziness I decided that spending a couple of weeks building a new tool was the easiest solution.

Result: I can ssh into my Mac, run Lindi, and drive everything from a single xterm. Yay!

Lindi is unapologetically idiosyncratic and not at all configurable. Tabs are 4 columns wide, text files are 80, and control-C means “copy”, not “cancel”. The world is awash in editors, and everyone has their favorite; I just thought it’d be nice to build my own, tailored to the way I like to work.

It’s up on github now, though, and I’ll probably post a link on reddit or hackernews once I’ve knocked some more of the rough edges off; I’m curious whether anyone else happens to share my particular taste.

I’d call it maybe 75% baked, but it has enough that I’ve been using it to edit its own code. Long term plans: make the directory browser git/svn aware, beef up the console until it can run lldb/gdb, add syntax highlighting, use syntax highlighting to do project-wide identifier lookup.

November 3, 2014

Introducing Mylio

The software product I spent the last two years on has just shipped:

Mylio is Here.
The next generation photo management system is now available.
All of your photos. All of your devices. Always protected.

The press release has this fun little remark:

“We recognized a growing need for photographers and consumers to protect, access and share all their photos everywhere they go and on every device they own,” explains David Vaskevitch, CEO of MyLO, creators of Mylio. “We formed a unique team of world-class software developers, designers and photographers to build a solution that satisfies this need and allows people to enjoy their photos again.”

People seem to like it.

November 2, 2014

idea: connect a Beaglebone Black single-board Linux computer to a SM5100B GSM radio module mounted on an evaluation board.

This device runs a VPN relay (using your home internet connection as uplink) and a server which relays GSM audio and SMS messages.

Next, delete the SMS and voice-call apps on your phone, replacing them with some yet-to-be-determined app designed to work through the relay server above.

Configure your phone’s internet connection to use a VPN, routing all data traffic – which now includes all voice and SMS traffic – through the relay box at home.

This allows you to run a firewall on the relay box which can whitelist or blacklist anything you want. Worried that your apps are phoning home behind your back? Block ‘em. You could have different firewall rule sets, like “allow nothing”, “allow email only”, “allow email and these web sites”, “allow everything but block known malware sites”, etc.

Further idea: take the SIM out of your phone, put it in the relay box, and cancel your data plan. Buy a prepaid SIM with cash and put it in your phone. Now people who know your phone number and have the ability to track phones can see that your phone is sitting at your house, 24/7, but unless they know about your prepaid SIM, they can’t track your physical location. Bonus: travelling internationally? All your web sites continue to think you’re logging in from home, and you don’t have to worry about geo-restrictions.

October 28, 2014

Terminals are weird: quirks of the ways control and alt keys are represented in a standard unix style terminal.

I bought a used Thinkpad to replace my long-lived but now-dead netbook, and while it’s a much better machine in relative terms, it’s still kind of a weenie compared to the Mac on my desk. It’ll be a fine coding/email/browsing device, but I have this fantasy of remoting in to the Mac, using the Thinkpad as a dumb terminal, so I can also drive Xcode from afar. I’ve set my desk up to be as comfortable a coding station as I can manage, but there are many other places I’d like to be as well…

My question for the interwebs: is it possible to set up a VNC server on a Mac such that there is no way to log in with a password, that authentication is only possible through some pre-set key pair? I know that one can do this sort of thing with Git but I am hazy on the details. I imagine that I would generate a file, copy it onto the laptop via USB stick, set some configuration somewhere, open the relevant port on my home router, and then control my desktop machine without worrying that it is protected by something so flimsy as a password.

October 27, 2014

Fully armed and operational battle station

October 10, 2014

Now that its metacarpal bone contains a couple of screws, my thumb appears to have developed the ability to detect changes in barometric pressure. Cool! I am a human weather station!

Okay, to be honest it’s annoying and it kind of hurts, but if it’s the worst I have to deal with as a long-term consequence of last year’s motorcycle crash then I think I am OK with that.

October 2, 2014

October 1, 2014

September 29, 2014

One fire pit to rule them all.

Thorough and clever analysis of Python interop resulting in an API for asychronous I/O managed across multiple cores.

September 28, 2014

It’s funny to watch my creative outlets shift back and forth over time, since the activities themselves are about as conscious and intentional as they could be, and yet the overall course of the river seems to meander through loops I can only see in retrospect.

I did a ton of sewing last spring, but I haven’t touched a machine in months. The middle of the summer was all about organizing Floodland, which went off really well, but exhausted me. Since then I’ve been cruising through a more than usually quiet and solitary mode, spending most of my free time deep in the guts of some really enjoyable compiler hacking.

Now the weather is turning, I seem to have a resurging interest in connecting with my friends, and I’m thinking about starting up weekly Rock Star Thursday Dinners. Perhaps this also has something to do with the changing of the seasons and the approaching dark months, but I’m feeling a spark of interest in some lighting projects that have been neglected during this bright summer.

September 27, 2014

Delightful. By Mark Morford:
Burning Man is so very wrong

Here’s what you need to know about Burning Man in this fine year of our unchecked chaos, 2014: Nothing.

I mean, just forget everything, all right? Whatever you’re heard, read, seen, rumored, teased, whispered, Facebooked, Instagrammed, linked to, thought about or had muttered in your general direction in an Uber fever dream anytime in the past month. Year. Decade.

Because it’s almost certainly wrong. Delightfully, hatefully, stupidly, shamelessly, deliberately, resentfully, innocently or even inadvertently, it doesn’t matter – there’s almost nothing the slightest bit accurate in what the modern media has said recently about the famed art/camping/dance/survival festival – now in its 28th year – happening right now out in the Nevada desert.

September 25, 2014

Ready for Rain:
Why Seattleites Crave the End of Summer

It’s not simply the arrival of rain, but the transition to a different environment and way of life. The drear has a certain dark beauty; a low-contrast softness. There’s no need to squint or close the blinds. Even the sound of the rain on our house is music to my ears, a lullaby.

MailInABox: a script for setting up your own mail server on an Ubuntu 14.04 machine.

Next Page »