Red Echo

October 31, 2012

LED board driver progress

I’ve spent the last couple of evenings working on the chandelier project driver board firmware. I rigged up some very simple demo software a couple of weeks ago to make sure the hardware worked, but it was only driving 3 bits per pixel. I haven’t introduced the 24-bit color driver yet, but I’ve gotten the scanline blit time down to 1 microsecond, which means I can theoretically do 8-bit linear PWM across all 192 LEDs at about 244 Hz. Nice. But I plan to take this further: given the STM32F103RBT6 controller’s 72 MHz clock rate, I should be able to do a full scanline update in 140 nanoseconds, which correlates to 12-bit linear PWM at 120 Hz. I’ll then apply gamma correction, yielding a perceptually linear color space, for a working resolution of 6 bits per channel, or 18 bits per pixel. That’s better than most LCD projectors, which can only do 15 bits.

It’s still not quite as good as the Groovik’s Cube drivers, which did 8-bit gamma-corrected PWM, for a perceptually linear 24-bit colorspace – but it doesn’t need to be that good, and to be quite honest neither did the cube drivers. I pushed them as hard as they could go out of personal pride; I was at a real low point in my career back then, and pushing that code as close to the limits of the hardware as it could possibly go made me feel like I still had skills that were worth something. But really, it could have run 15-bit color and I doubt I could have told the difference.

In any case, each cube driver could only manage five lights at a time; the whole cube needed eleven of them. Just one of these chandelier drivers can wrangle 192 lights at a time – so while it may only be doing 18-bit color, each one of these chandelier controllers could theoretically drive three whole cubes at once, with capacity to spare. What I’m losing in per-pixel resolution I’m more than making up in overall display resolution. It’s going to look amazing.

I sent a copy of my Bejeweled clone to the guy who developed the Gamby. He liked it and now it’s one of the standard example games. Whee.

October 29, 2012

Motorcycle jacket marker lights

That close call on Friday got me thinking about ways I could make car drivers more likely to notice me, especially if they are located to either side. I spent a couple of hours rummaging around in the parts bins at ALTSpace and made up a pair of battery-powered lights which I have attached with leather loops to the shoulder straps on my bike jacket. Each one has a yellow light forward and a red light aft. I can’t actually see how the lights point when I’m riding, of course, so I don’t really know how well the system works, but perhaps I can get someone to follow me down the street and record some video so I can see what it looks like.

Permamake is a shell script which automatically builds a source tree any time one of a list of files changes. It works on anything which has a Makefile. The author uses it as a local continuous build system.

October 26, 2012

The downside of the motorcycle commute is that car drivers, who generally don’t see you, frequently pull incredibly dangerous maneuvers which it is up to you to avoid. Today’s incident happened a block after I pulled off the freeway coming home. A car in the left lane abruptly cut across my lane, aiming for the gas station to my right. The streets were slick, so I couldn’t just grab the brake – I pulled the throttle instead and aimed for the gutter. I almost made it, but the car’s right front fender hit my muffler as I went by. It made a real bang, but I stayed upright, and it so happens that my muffler was already scraped there from the crash I had a year ago.

It only just occurred to me that I was probably supposed to stop and talk to the driver – it was a collision, after all! But I simply didn’t think of it; I was too focused on surviving, and then it just didn’t seem to matter. Huh.

Well, anyway. This sort of thing happens at least once a month, though usually there’s no actual contact between vehicles. It’s just part of the life. At least the bike gives you the speed and maneuverability you need to make up for its lack of visibility.

October 25, 2012

The commute: I think I can deal with it

The only thing that really worried me about this job with Mylo was the fact that I’d be commuting across the lake again. When I was working for Microsoft, the grueling trek across 520 was a great way to ruin any day. Doing it on a motorcycle gave me just enough of an advantage to make it bearable, most of the time, but it was still pretty bad; on days I had to drive a car, it was so frustrating that – well, I don’t even want to talk about that, really. It was not a good part of my life.

I felt good the day I freed myself from that job and went roaring west down 520 for the last time. The sun was shining and the traffic clear, and I swore I’d never ever ever do it again, no matter how much money anyone offered me – money simply can’t buy back all the time I spent feeling frustrated and unhappy on that godforsaken highway.

Four years later, here I am again, working for a company on the Eastside, but this time I’m crossing via I-90 and not SR-520. The commute is actually longer this way – 12 miles instead of 10, and it was 10.5 to Microsoft – but so far it’s not half so unpleasant. The morning ride eastward is a breeze. 90 gets a little congested right at the beginning, but it only slows to 45 mph or so, and the nearly-empty HOV lane across Mercer Island gets me going up to 85 mph, or faster if I want. Whoo!! Going to work is actually fun!

There’s always a back-up on the ramp from 90 to 405, since 405 is always thoroughly clogged, but the bike makes it easy to squeak in at the last minute and then pop back out a couple hundred yards later. A quick triple lane change on 405 gets me into the HOV lane, then I’m back up to 60 mph for two miles, where a special HOV-only offramp dumps me onto NE 4th just a couple of blocks from the office. It is fully sweet and I really cannot complain.

The ride home is much worse, and I haven’t found a satisfactory route yet. There’s only two miles of 405 between the on-ramp from NE 8th and the intersection with I-90, but traffic crawls along so slowly that my speedometer doesn’t even register it as motion. After the mile of misery, there’s a mile of HOV lane leading to the I-90 offramp, but that’s slim consolation after sitting in the rain barely moving for 15-20 minutes…. The solution might be to skip 405 altogether and go straight down Bellevue Way to the I-90 on-ramp. It has stoplights and a low speed limit, but at least it moves.

I-90 westbound is great until the HOV lane peters out halfway across Mercer Island, dumping me back in with the rest of the traffic for the last 2 miles. This seems to be obnoxious but acceptable at around 5 pm, but it was fully terrible yesterday when I left around 6. Tonight I’ll try cheating my way past it by taking the HOV-only exit at 80th Ave, then re-entering via surface streets at the Mercer Way on-ramp.

We’ll see how I feel about this whole business after a few more months of rain, but for now I feel like I can handle it.

I observe that people at Mylo feel free to work from home – there are only two other people in the office today, and one only showed up midafternoon. I should be able to take a break from the commute any time it starts to feel oppressive.

postscript: Bellevue Way is no improvement: it clogs up at the intersection with 112th Ave, and the on-ramp to I-90 is metered, with no HOV bypass. Using Mercer Island surface streets to skip past the tunnel works great though.

October 24, 2012

On the “Do you want to be a programmer at fifty?” thing is an interesting entry in the discussion that seems to be sprawling over the tech-blog-o-sphere, but what really caught my attention was this:

James went on to identify two kinds of programming

Type A “work(ing) out the solutions to difficult problems. That takes careful thought, but it’s the same kind of thought a novelist uses to organize a story or to write dialog that rings true. That kind of problem-solving is satisfying, even fun.”

Type B “what most programming is about – trying to come up with a working solution in a problem domain that you don’t fully understand and don’t have time to understand… skimming great oceans of APIs that you could spend years studying and learning, but the market will have moved on by then … reading between the lines of documentation and guessing at how edge cases are handled and whether or not your assumptions will still hold true two months or two years from now.. the constant evolutionary changes that occur in the language definition, the compiler, the libraries, the application framework, and the underlying operating system, that all snowball together and keep you in maintenance mode instead of making real improvements.”

I hardly know what to say about this but I think it helps explain why I had such an unsatisfying time at Google: it was almost all type-B work, which to my way of thinking isn’t really programming at all. It’s just…. API-twiddling. Meaningless, brainless, unsatisfying. Who cares if it works, if you don’t know why, if you don’t understand what you built?

I’m sort of startled and disturbed that this would be considered “most programming” – that sounds like a terrible world to live in.

Night skiing

Skiers at night with EL wire and headlamps. So clear! I’m curious how they recorded this, because it’s crisp and gorgeous – little or no noise in the blacks, either.

Oh yeah. Winter is coming…

October 23, 2012

After wading through the incredible heap of nonsense it takes just to download the latest Xcode, I am seriously disenchanted with Apple. I never wanted anything to do with their iTunes-centric consumer-electronics universe, but now you have to sign up for an iTunes account just to download Xcode. I can’t even write code on my own Mac anymore without jumping through their hoops. Ugh. Ugh. When did they forget that it’s my computer not theirs? What, just because they wrote the OS, that means they get to decide what I can do with my own machine? No thank you very much go away now please.

Ten or fifteen years after the first Year of the Linux Desktop, it’s still a pretty rough experience, but at least they don’t drag you through their greedy corporate agenda at every opportunity.

If you are still using Snow Leopard, don’t upgrade: it’s really not very nice in the Lion world.

October 22, 2012

New job, new computer, new commute, etc

This is my first day at Mylo, a two-month-old startup which is going to do something with digital photography workflow management. After this afternoon’s all-hands meeting I’ve learned I’m not supposed to say more than that in public, but the pitch that got me on board was significantly more interesting.

The ride in to Bellevue this morning was about as pleasant as a commute ever gets: I even touched 85 mph at one point as I crossed Mercer Island. This at 9 AM, even! Perhaps I just got lucky today, but it could get a lot worse and still be a pretty reasonable trip.

This new Macbook with the Retina display is nice. I have sharper-than-average vision and have always been able to make out individual pixels, even with anti-aliasing, but with this screen the text might as well be perfectly smooth. It feels unreal, like it’s not actually a computer screen but some faked-out Hollywood movie prop.

Mountain Lion, though – ugh. It took almost two hours to track down and turn off all the annoying iOS-derived frippery and make it act something like a reasonable desktop machine. (Check out Lion Tweaks if you are interested in doing the same.) Seriously, people, if I wanted to use iOS, I’d be using an iPad. And I don’t, so I’m not, so please stop shoving that stuff down my throat, ok?

Oh, well, there’s nothing to be done about it. I don’t love the Mac OS anymore, but at least it doesn’t suck any worse than anything else. Apple just stopped caring about people like me after their consumer electronics business took off, and the tail has obviously been wagging the dog for some time now.

There is no electric vehicle charger in this building’s parking lot but there are chargers in the two adjacent complexes, and it’s possible they may install one here too. I think my electric motorcycle project is going to move back on the “active” list as soon as I’ve finished the chandelier.

Bellevue is a strange place. The building height distribution is bizarrely bimodal: there are the old one- and two-story suburban buildings, the background level of the whole area, and then there are the twenty-plus story highrises stacked up among them; there is almost nothing in between. I would guess that there are a total of maybe three buildings greater than two but fewer than twenty stories tall in all of Bellevue.

It’s obvious that someone is trying to build a city here from scratch, that the density has not developed organically as a function of demand. I wonder if this is a little bit like people must have felt in Dubai, as a mile of skyscrapers erupted in the center of what had been a sleepy little desert town? There’s no reason for there to be a city here, except that some rich dude decided he wanted to build one, and now you have sprawled-out suburban mall style buildings laying across the street from towering glass-and-steel highrises. It makes no sense, and yet here it all is.

October 21, 2012

It looks like Washington State may be the first place in the USA to achieve a popular vote in favor of same-sex marriage. It’s been years since I was involved with marriage-equality activism, but I still feel a bit of pride that I got to be a small part of the huge effort that went into getting here.

October 15, 2012

Via Metafilter, a beautiful, moving, surprising collection of photos from a photographer named Christy Lee Rogers. Rich, intense, vivid colors and intense shadows, all thick and dreamy.

October 14, 2012

Chandelier test board works

October 13, 2012

Offroading near Cle Elum

Ava had never been out four-wheeling before, so we drove out to Cle Elum and spent the afternoon exploring old jeep trails. Most of them were blocked by fallen trees pretty early in, but the last one ran a couple miles up the mountain to an abandoned mine, and we only stopped when the road was blocked by a couple of guys working with a chainsaw. Seems a little late in the season to be doing trail maintenance, but I’m glad someone was tackling it.


October 11, 2012

Water-cooled drilling apparatus for the glass cylinders in the chandelier project

I have two projects right now; everything else is in cold-storage.

Most of my creative energy is going to the chandelier project. It is both complex and ambitious, so I’m running into a lot of obstacles; nothing is going as smoothly as I’d hoped it might. A month in, all I have to show for my effort is one test board, which sort of blinks but doesn’t really work yet, and a stack of sandblasted glass cylinders. Oh, well: part of the point was to stretch my skills, and I’m certainly doing that. This is a whole new level of electronics complexity, and there’s a lot of straight-up fabrication work, too.

I bought a drill press today: a 12-speed, heavy-duty, floor-standing drill press with a 3/4 horsepower motor. It’s a big old tank of a machine, likely as old as I am. I then built a jig out of plywood, ABS pipe, and a bucket. The goal is to bore a hole into the end of each of seven glass vases, which I can then use to hang them (upside down) and which will provide airflow to cool the electronics inside.

Once set up, I added a small fountain pump and a lot of water, for cooling. As I drill out the end of the glass, the fountain keeps fresh water circulating over the cutting area, and if I drill slowly enough the glass stays cool and doesn’t crack. It’s a slow process, but I hope I can have half of the cylinders done by the end of the day tomorrow.

The other project is my ongoing development of the Radian language. I don’t really talk about it here, because it has its own blog, but I’m still working hard and am increasingly pushing it up into “useful tool” territory. Recent work has focused on the string library, and I’m currently deep in Unicode territory building the uppercase, lowercase, and case-insensitive transformations.

I’m increasingly thinking about the human end of this problem: I’m now in the zone where advanced curious users could probably make something of the tool. In addition to all of its internal data management, it can read and write files and manipulate text – that’s a good start. Somehow I need to find the people who want this thing, and then I need to have a good experience ready when I manage to pique their curiosity: documentation, examples, a good installer. I think I need to decide what point I’m going to call “good enough”, in terms of basic built-in features, and when I reach it I should redirect my efforts toward documentation and recruitment.

I can stand to spend some time doing optimization work, anyway: there’s a lot of room for intelligence in the Radian semantic model which I have taken almost no time to exploit.

October 10, 2012

Finished Gamby

I finally figured out what was wrong with Isabella’s Gamby device: an errant solder fleck on the bus strip prevented the screen’s flex connector from seating properly. A moment with solder braid and it works fine – even runs Tetris!

October 7, 2012

This is just the way things go sometimes, isn’t it?


October 2, 2012

Bikes saved my life

When something as random as a blood vessel bursting in your brain could kill you at any time, why waste energy trying to live life more safely? Safety is a myth. Let’s embrace life with all its risks, enjoy ourselves and really feel alive.