Cars (other peoples’ and mine)

Friday, June 13th, 2008

I work in downtown La Jolla, right opposite the Ferrari/Maserati dealership. AMGs, M-series, and Porsche Ses are everyday sights. Jaguars are like Toyotas. I’m tired of seeing expensive cars. But sometimes there’s something a bit more interesting than usual…

One day on the way to work I saw someone picked up in front of a particularly large house by a chauffeured Maybach. In the words of James L. (wherever you are), “Must be nice…”

Ford GT in downtown La Jolla A few weeks ago I saw a Ford GT in downtown La Jolla. Really, with gas prices up to $5/gallon, you’re driving one of these? You and Jeremy Clarkson both.


BMW Z4 with German plate \"BMW Z4\" The US Open is in town this week, at Torrey Pines. It’s practically across the street from campus. There are a lot more interesting cars here this week—somehow the AMGs and M-series are even more abundant than usual. I found this BMW Z4 with the German plate “BMW Z4″ nestled behind CVS. An odd place to park what I assume is BMW’s touring show car. As I drove out of the parking lot, I saw a brand new SL63 AMG and a DB9 Vantage.

I don’t say any of this out of envy, merely commentary. I don’t particularly want any of these cars.1 In fact, I still haven’t figured out what kind of car is right for me. Fast or a smooth ride? Four-door? Hatchback? FWD, RWD? Manual or auto? Low-slung or tall and roomy? I have only the vaguest of preferences.

My Car For now I drive my dad’s trusty old Volvo S70 T5. I say “old” because the car is well on its way to 200,000 miles, but she’s only ten years old, and she looks and feels like a young girl of only 60K.2 It’s zippy enough that I can have fun on late night jaunts to campus or wherever; but it’s a Volvo, so it’s comfortable enough that I don’t really mind the six-hour nonstop service from SAN to SBP for holidays and vacations. Plus it has five cylinders, which is just neat. It’s my car and I love it.

Then again, with gas going up and up, these may be the last days of the automobile. Maybe I was born in the wrong decade? Ah well. Bring on the public transit and high-speed rail.

  1. Except maybe a Z4M.
  2. You may note I use the female pronouns here. For some reason I never think of my car as a female, even though that’s the convention for vessels. But the turn of phrase was so nice, I couldn’t pass it up.

Going to Ralphs the night before Sun God

Friday, May 16th, 2008

One of these is not like the others…
One of These is Not Like the Others

No, these are not the ingredients of a wicked new cocktail. We just needed Drano too.

DefCamp the morning after

Sunday, May 4th, 2008

Last night Scott, DJ, and I took part in DefCamp, “BarCamp’s Little Slice of Defcon”. DefCamp is a security contest, like Defcon’s Mystery Box, masterminded by Viss with help from Billy (?). The contest had three phases: First, a set of web pages and online clues to decode. Second, a booby-trapped box to open. Third, an embedded system to build then modify.

The first task was solving the web page challenges. It was a security mish-mash: lots of binary or hex to/from ASCII conversions, rotation and substitution ciphers, some simple password breaking, QR codes, sound spectral graphs, steganography in JPEGs. All the while with other teams trying to shoulder-surf us, and us trying to overhear them. Each puzzle led to a letter that spelled out a word.

Once we got the word (it was “IZZARD” as in Eddie), we went to Viss and he gave us The Box. The box (I didn’t get any pictures but someone else probably did) was a set of physical and electronic puzzles. Rules of the game are: no tilting, cutting, drilling, or breaking the box. If you mishandle the box or cut wires incorrectly, it makes a loud alarm. The top of the box is studded with nails, sharp side up. There are a handful of wires coming out from the back of the box, with alligator clips on the end. When the wires are connected to most of the nails, they trigger the beeper briefly. When you get the right combination of wires and nails, though, a relay flips and a set of green LEDs go on. Now we can cut some of the red wires and open the box.

Inside the box (which is actually a plastic tool box with a drawer inside), the next obstacle is an old padlock, keeping the drawer in place. We all suck at picking locks, so we spent about half an hour with DJ’s lockpicks trying to get it open. We finally realized we were turning the ‘key’ the wrong way, and then we got it open with another five minutes of fiddling.

After that, we got to the final step: one of Lady Ada’s MiniPOV3 kits, ready to assemble. The mission: get it to display a custom message. Piece of cake, right? I know AVRs, this is like home turf.

Scott and I made quick work of the assembly: sorting the dozen through-hole parts, slotting them into the holes, and tag-team soldering (turns out soldering is a four-hand job). We followed the schematic to find the pins for the serial connector. At the same time, DJ and I started installing avr-gcc from MacPorts on Scott’s computer. We hit trouble though: avr-libc in MacPorts failed to configure, because it somehow kept trying to use the system’s PowerPC gcc instead of avr-gcc (oops). Apart from that, we couldn’t get avrdude on the Mac to talk to the board. DJ installed avrdude on his Linux computer, but it didn’t work either.

Turns out that when Scott and I buzzed out the PCB traces to figure out how to solder the serial connector on… the schematic we were working from didn’t match our board!. We got two wires backward! By the time we figured it out, it was too late: another group had already finished… our UCSD rivals Declan and Robert. After fixing the wires (turns out, the pad pattern on the board was a direct analog of the connector itself), we programmed it from Declan’s computer, since by then we’d figured out how to change the message and recompile. We finally claimed third place.

Our prize: Fry’s gift cards and the memories of a marvelously fun experience. Viss, you’re a mean-hearted fellow… some of those challenges were hard :D

I’m still disappointed I couldn’t bring home the top prize, an A2 Aviator. Iain, Viss says Aviators are red without exception, and to kill you for the offense against nature embodied in your green one.

Two hours till I give my talk…

I’m at BarCamp

Saturday, May 3rd, 2008

I’m at BarCamp San Diego. I’m giving a talk on Sunday at 2:30 on: Trends in Processor Design (and why you should care). The BarCamp audience seems mostly high-level folks, not bare-metal programmers, so I’m not sure how well the talk will go over…

Update: I’ve caved into the diffuse yet extremely strong peer pressure and got myself a Twitter account. We’ll see where it goes. I still don’t get Twitter but I’ll see what the fuss is about.

Update 2: Here are my slides… They’re not quite finalized. trends-in-processor-design.key.zip (2.3MB)

Photo management software that doesn’t suck?

Tuesday, April 29th, 2008

Dear Lazyweb: I’m looking for something to manage my photos. For now, I use a hierarchy of folders to divide things up by date. QuickLook and Preview are my primary viewing tools. I only have a couple gigs, spanning maybe a hundred discrete events, so I’m not a very heavy user.

iPhoto uses 80% of my CPU at idle. Just sitting there, open. It only exports web galleries to .Mac, which is worthless to me. “Events” feels like a waste of code… they could have just autosplit albums on import and let albums optionally be strongly associated with dates. And I still don’t like how iPhoto hides all the image files in its bundle in the Pictures folder, making it nigh-impossible to find the files with any other tool. Verdict: Not interested.

Aperture 1.5 crashed on launch, repeatably. I’m hovering just above the minimum system requirements anyway. Shame, it looked decent. I haven’t ruled it out… but if it’s anything like Apple’s usual products it won’t run very well on my Powerbook5,4 anyway.

So what else is out there?

I used iView Media Pro a half-dozen years ago (yipes!). It was a bit clunky but it worked. Has anybody else used it more recently?

Bridge looks worthless to anyone who’s not heavily invested in Adobe products. Right out.

From what I saw, Lightroom looks more aimed at photo editing than organization—the opposite of iPhoto—which makes it a bit less suitable for me. It also looks heavy. But I’m still very interested in it. Does anyone around here have a copy I can fiddle with?

Not interested in Photoshop Elements; Save For Web isn’t quite enough to justify the endless you-must-be-an-admin-user style nightmares.

Add an ssh key to another user on a different system without logging in

Tuesday, April 15th, 2008

Scott liked my terminal style from yesterday, so I’ll reprise it.


heian:<<<umi-misc/pubkeys$ ssh cse125@neathat.com -p 14522 sudo ls \>/dev/null
[sudo] password for cse125: (echoed, which is unfortunate)
heian:<<<umi-misc/pubkeys$ cat djc_hmac_rsa.pub | ssh cse125@neathat.com -p 14522 sudo su -c \'cat \>\> ~djc/.ssh/authorized_keys\'
heian:<<<umi-misc/pubkeys$

Now DJ can use his key on that server.

The sudo ls is to enter the password and get the sudo authorization ticket. We can’t enter the password with the cat, because ssh sees its stdin isn’t a terminal and refuses to allocate a tty. A stupid workaround would be (echo "mypassword"; cat ... ); | ssh ..., but I like the two-phase solution more, for some reason.

history meme

Monday, April 14th, 2008

I picked this up from Stephen Lau on Planet OpenSolaris, though he traces it back to Planets Mozilla and Gnome.


heian:<<<hiroi/jauricchio$ uname -a
Darwin heian.local 9.2.2 Darwin Kernel Version 9.2.2: Tue Mar  4 21:23:43 PST 2008; root:xnu-1228.4.31~1/RELEASE_PPC Power Macintosh
heian:<<<hiroi/jauricchio$ history | awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}'|sort -rn|head
95 svn
80 vi
70 make
59 cd
29 ls
18 ./build/neathat.app/Contents/MacOS/neathat
14 sudo
11 ssh
8 rm

It appears I’ve been doing a lot of CSE 125 lately. That accounts for the 18 runs of our debugging build, 95 subversion statuses, updates, and checkins, and 70 makes.

Xen and OpenVZ at the same time, and a Brief Rant about Filesystems

Tuesday, March 25th, 2008

After a grueling two days of kernel muckery, and much help from Mooneer and Mark Williamson (bless you, sir), I finally have a 2.6.24 kernel with OpenVZ and Xen domU. Things I learned along the way:

  1. Never ever make your generic server in the closet do double-duty as your internet gateway/router. For one thing, internet access is a valuable resource to help diagnose why the dang thing won’t boot. And for another, your roommates hate it when the network is down all day.
  2. Nobody should ever make kernel patches that start from vanilla (e.g., 2.6.24), add a large feature you can’t get anywhere else (e.g. OpenVZ), and along the way give you lots of unrelated things (e.g., 2.6.24.3). This breaks down the instant two people do it (e.g., Debian), because the unrelated things all conflict.
  3. The Xen merge into mainline is a good thing, but it’s only a start. I really want: ballooning, PCI sharing, and dom0 support.
  4. aptitude is actually a great thing. Anybody out there still using apt-get… change your habits. Just start using aptitude. And then, little by little, start figuring out the curses gui and how to mark packages as automatic and how to resolve conflicts and all the excellent stuff aptitude brings. I resisted at first… but it’s definitely worth it.
  5. Also debian, we really need etc-update.
  6. It’s very easy to use hilarious amounts of bandwidth when you’re building systems with debootstrap.
  7. I did something today that made my big domU extremely slow. It seems that under very heavy I/O it just grinds to a halt. I also had very constrained memory and no swap device. So I’m not sure if it just didn’t have space to cache and had to start kicking clean pages, or whether Xen event channel unnecessarily serializes I/O (I’m afraid that it does), or what. DTrace would be sweet.
  8. I need to get better discipline in system management. I’ve historically used cioppino (the Linux machine) for everything from serving web and subversion, to an irssi/shell server, to hosting my AVR cross-toolchain, to my (excessively convoluted but ultimately perfect for me) email hosting. I need to cut down on what I do with it, and I need to stop installing and building random things that seem neat. Apt makes it so easy, I know… but it becomes an N^2 problem. And I’m absolutely terrified by the number of upgrades aptitude offers… there’s just too much on this system.

Finally, a desperate plea: Can we please have a good cross-platform low-commitment network filesystem?

  • NFS is difficult to run safely, hard to expose to temporary untrusted users, and still might require shared UIDs (I think?). Sucks.
  • AFP hates symlinks and hardlinks within the shared area, and isn’t available for Windows. Sucks.
  • Coda and AFS require lots of setup and aren’t suited for “oh just connect to the server and grab it” use case, with temporary untrusted users. Sucks.
  • FTP blows.
  • sshfs requires Fuse which concerns me, and requires a shell-equivalent account on the machine. Sucks.
  • SMB is well-supported and cross-platform, and doesn’t specifically require an account on the machine. It’s pretty bad at non-FAT32 file properties, though. Permissions and symlinks ehhh sometimes work. Workable.
  • WebDAV just seems like a bad solution designed by committee. It kinda works.

Really. That’s it. SMB and WebDAV. This is sort of like the situation with disk filesystems… FAT32 or go home. The least common denominator that Windows supports just seems to win :(

My Workplace, in a Vignette

Thursday, November 8th, 2007

I work at The Dini Group, a small company in downtown La Jolla. We build FPGA boards (Xilinx and some Altera) to support logic emulation & ASIC prototyping.

Yesterday I was testing my third board design. It’s a revision of one of our older boards, generally cleaned up, and ready to go into a production environment for a contract client. The board has a security-related purpose, and it will store private keys. Consequently, one of the customer’s requirements was that to the extent possible there should be no unnecessary I/O paths, and still required paths should be disguised.

We use USB to bring up and configure the boards, but we couldn’t just put a USB plug. So instead we put in a four pin header like this one. V+, D-, D+, G, in a row.

Next challenge: We needed a cable to connect that to a computer. We could buy one for a few bucks… but Neal and I came up with a better idea.

  1. Get a USB A-to-A cable, the kind that aren’t supposed to exist. Dave had one in his drawer.
  2. Plug one side into the computer and the other side into one of the USB back-panel bracket that come with most motherboards these days. We have one in every dead computer in the Dungeon, and most folks didn’t bother installing them on our last batch of computer purchases.
  3. And those header blocks on the end of the bracket’s cable plug directly into the board header pins.

Cost: zero. Results: excellent! (Pics: soon.)

Yesterday we found ourselves in need of a second cable. This time I just took a six-foot A-to-B cable, snipped it near the B end, snipped the header block off a second bracket, and soldered the connections up. I think for version 3.0, I’ll use heatshrink instead of masking tape.

Homebrew USB cable, header end Homebrew USB cable, both ends Homebrew USB cable in use

This isn’t a particularly abnormal day.


A few more pictures of my desk:

  • Picture the First - Phone, sharpie, multimeter probe, tea cup, board under test, PCI extender to power DUT, Nalgene, keyboard for Linux machine under desk, Subway sandwich for afternoon, paper plate that used to have bagel, mouse for Linux computer, power supply for test, SMA cable, edge of main machine
  • Picture the Second - other side of main (WinXP) machine, solder sample boards, partly-assembled PSX board, post-it with a few part numbers scribbled on it, set of low-ohm resistors soldered in parallel from an old old power supply capacity test, ASUS motherboard box, some instrument that was on my desk the first day and I’ve never touched, Dave’s trashcan
  • Picture the Third - behind me: schematics, schematics, and more schematics, box with new hard drive for backup server (oops I need to install that), Gigabyte motherboard box, headphones, ethernet hub under desk, miscellaneous cbles (power, ethernet, usb, serial) along back of desk

Craziness Update

Thursday, January 11th, 2007

Current Courses (WI07)

  • CSE 131A Compiler Construction I with life-consumingly hard assignments
  • CSE 120 Principles of Operating Systems this one also
  • CSE 240A Principles of Computer Architecture graduate level!
  • CSE 240B Advanced Computer Architecture graduate! auditing
  • COGS 120 Human-Computer Interaction
  • JAPN 130B Third-Year Japanese
  • PSYC 1 i know, right? psych??? but it’s a GE. and Stuart Anstis is as amazingly cool a human being as I have ever seen from fifty feet
Just another WordPress weblog