18 Feb: Screaming in an Elevator

Getting on the ele­va­tor this morn­ing, it turned out I should have waited. Some woman was yelling at some­one on the ele­va­tor about how he should sup­port health-care, and some ran­dom­ness about the unnamed politi­cian who’s bumper sticker adorned his jacket was so ter­ri­ble and such.

She con­tin­ued to rant at him all the way up to my floor.

On the way out the ele­va­tor, I called back that scream­ing doesn’t solve any­thing, though after get­ting bet­ter caf­feinated, I wish I had told her to treat the man like a human being.

24 Jan: Essential Spirit

I’d like to thank all of those who voted for Scott Brown. You’ve done the coura­geous thing by mak­ing sure the rest of the coun­try can­not have a health care sys­tem roughly equiv­a­lent to the one you already enjoy in Massachusetts.

Most peo­ple — ordi­nary peo­ple — would not allow them­selves to sim­ply ignore the mon­u­men­tal shame­ful­ness of that. They would con­sider care­fully the national and inter­na­tional con­se­quences of giv­ing a Republican the 41st seat in the Senate. They would not allow a poorly ran cam­paign, or some bull­shit about a sports team to get in the way of mak­ing the moral choice. Hell, I voted for Obama — south-sider and Sox fan that he is — for that very reason…

Fortunately, nei­ther I nor most other peo­ple, live in Massachusetts.

I believe that Joseph Goebbels once said that the SS per­son­nel in the con­cen­tra­tion camps were the epit­ome of strength: they were so strong that they could keep their con­sciences and the wrong­ness of their actions from get­ting in the way of actu­ally killing the Jews. It’s good to know that essen­tial spirit is alive and well, par­tic­u­larly in the sup­posed bas­tion of coastal liberalism.

18 Jan: Ubuntu on the Dell Adamo

I went ahead and got the Adamo from Dell, so here’s my review of it, and what I did to set it up and get it work­ing the way I wanted.

Firstly, on the hard­ware: AC adapters is the weak point of this guy. For my old MacBook, I had three: one in my bag, one at home, one at the office. While it was a decent extra cost, it was one I under­took after I for­got my adapter a cou­ple times and had to go with­out for a while — some­thing that every­one with a lap­top deals with at some point.

This was par­tic­u­larly a pain since the one that Dell shipped with the lap­top died after the first charge — which meant another three days of being unable to use it after I received it. Not cool, Dell.

With the power sup­ply prob­lem fixed, I moved on to get­ting Linux on the thing. The thing ships with Windows 7, which I wanted to keep on there as an option, and there’s enough travel and sen­si­tive work stuff that I do on my lap­tops to jus­tify encrypt­ing the disk, which requires using the Ubuntu alter­na­tive installer. I also wanted to use LVM for my disks for when I start run­ning out of space and want to shrink the Windows partition.

The way to make this work is non-obvious, and it required two attempts to get going:

  1. Resize the Windows par­ti­tion to some­thing less than the full disk. I chose to give it 100G, and allo­cate the rest for Linux. This works out of the box in the installer, which is nice.
  2. Setup LVM on the remain­ing space next.
    • 200M for a /boot partition
    • 20G for swap (SSD disk means I assume that hit­ting swap is nowhere near as painful as it used to be)
    • The rest for a root partitiion.
  3. Setup encrypted vol­umes on the LVM par­ti­tions you cre­ated for root and swap (not /boot). You want to encrypt your swap as well, because Linux isn’t going to zero-out your swap vol­ume when you shut­down, mak­ing it effec­tively an on-disk mem­ory dump of what­ever your appli­ca­tions were doing…

I tried set­ting up sin­gle root/swap par­ti­tions on top of a sin­gle large encrypted vol­ume, but Ubuntu aparently requires your /boot par­ti­tion be un-encrypted, so there wasn’t an obvi­ous way to boot it after doing so…

With that issue out of the way, the rest of the instal­la­tion went smoothly and things booted just fine. I’ll note that Windows 7 boots much faster than Ubuntu 9.10, but I’ve only actu­ally booted the thing from a POST onwards a few times in the last cou­ple weeks, so who cares? The time it takes to resume from sleep is much more impor­tant for a lap­top, honestly.

With every­thing installed, I used rsync to copy my doc­u­ments and such off my old lap­top. I had enough disk to rsync my music col­lec­tion off of my world book, so I went ahead and did that too, and I’ve writ­ten a sim­ple upstart con­fig that per­forms the rsync prop­erly when the net­work comes back:

#!/bin/bash
# Script to dispatch NetworkManager events
#
# Runs rsync when WiFi or ethernet is connected.

set -x

if [ -z "$1" ]; then
    echo "$0: called with no interface" 1>&2
    exit 1;
fi

# Fake ifupdown environment
export IFACE="$1"
export ACTION="$2"
export USERNAME="me"
export REMOTE_USERNAME="me"
export REMOTE_HOST="stuff.mine.nu"

case "$ACTION" in
    up)
	if [ "$IFACE" = "eth0" -o "$IFACE" = "wlan0" ]; then
		if [ -z "$(pidof rsync)" ]; then
			sudo -n -u $USERNAME rsync -a /home/$USERNAME/Music/* $REMOTE_USERNAME@$REMOTE_HOST:/shares/internal/MUSIC
		fi
	fi
	;;
esac

I used to try and just mount the drive via SSHfs/nautilus and play via Rhythmbox, but it would skip the first 30 sec­onds of the song, requir­ing man­ual inter­ven­tion every three minutes.

After that comes the cus­tom repos­i­to­ries I’m using to add a lit­tle snazz­i­ness and breakage:

ppa:ricotz/testing
Latest and great­est GNOME Shell
ppa:telepathy/ppa
Bleeding Edge Telepathy/Empathy (my at-work XMPP server man­ages to con­sis­tently crash Empathy)
ppa:ubuntu-mozilla-daily/ppa
Nightlies of Firefox 3.6
ppa:cmsj/lifesaver
Lifesaver screen­saver, search term “#fml” ;-)
ppa:chromium-daily/ppa
Chromium Web Browser nightly builds

25 Dec: Dear Lazyweb

Does any­one have any expe­ri­ences with Karmic on the white Dell Adamo?

Update: It seems pos­i­tive, at least com­pared with the cheaper MacBook Air where you have to fuss with ker­nel boot options and whatnot.

22 Nov: Scratching The Itch

It’s been said before, but a person’s first foray into free cul­ture of any type is often to scratch an itch. For me, my first Wikipedia edit was undo­ing van­dal­ism on the Hernando de Soto Polar page con­flat­ing him with the con­quis­ta­dor of the same name — replac­ing his actual birth date with 1500-something, etc.

It’s some­what dis­ap­point­ing that real Wikipedia van­dal­ism is as point­lessly child­ish as that…

5 Oct: Customer Service Fail

One of the bad ideas cur­rently infect­ing com­pa­nies in the tech­nol­ogy field is the LivePerson “chat with a sup­port per­son now” thing. This is a bad idea for mul­ti­ple reasons:

  1. It’s a gigan­tic float­ing piece of garbage dis­tract­ing me from what­ever it is I’m try­ing to learn about your com­pany or it’s products.
  2. The rep­re­sen­ta­tives on the other side are idiots who wouldn’t know what cus­tomer ser­vice is were it [insert your preferred-gendered joke here].

Case in point: Limelight Networks. The web­site lists about 15 “Services” they offer, and none of them are imme­di­ately obvi­ous and I don’t want to spend the next hour pars­ing their mar­ketease try­ing to find the spe­cific niche prod­uct I’m look­ing for. So I (like a fool) click the stu­pid chat thing obscur­ing their page. This started at 8:30am and went on until 9:30am.

Jon: Yes what com­pany or site are you from so I can bet­ter help you?
You: [redacted]
Jon: Thank you for wait­ing. I’ll be with you in just a moment.
Jon: I’m sorry for the delay. I’ll be right with you.
Jon: I’ll be right with you.
You: Why don’t you have a sales­per­son con­tact me and just ask me if our web­site is, in fact, a blank page?
Jon: I’m sorry for the delay. I’ll be right with you.
Jon: Thank you for wait­ing. I’ll be with you in just a moment.
Jon: I’ll be right with you.
Jon: I’ll be right with you.
Jon: Thank you for wait­ing. I’ll be with you in just a moment.
You: So what’s the point of this chat, exactly? For me to wait on iHold for an hour while canned mes­sages about your immi­nent reply scroll past?
You: Until I get bored and find another vendor?

After another cou­ple min­utes I just closed the win­dow, and now I’m at Akamai’s site, look­ing at their “solu­tions finder” — which is what I was look­ing for on Limelight’s web­site to begin with.

25 Sep: Siding with the Bastards

Let me pref­ace this by stat­ing a few things: if you are going to tell me that girls are inher­ently bad at tech­nol­ogy, pro­gram­ming, or are get­ting their panties in a twist, please fuck the fuck off. I feel con­fi­dent in judg­ing you a waste of an oppor­tu­nity for a per­fectly good pair of ovary and sperm.

Secondly, I haven’t read a tran­script or seen a video, because the peo­ple rant­ing about this are seem­ingly unable to link to either, lest you judge it for yourself.

So all I have to go on is the quotes and snip­pets and attempts at con­text. It sounds like the obvi­ously poorly-delivered joke (I say so because it’s caus­ing a brou-ha-ha rather than a laugh) was meant to go some­thing like this:

  1. Have you ever tried to explain your mud­dled think­ing to some­one else?
  2. You know how it causes embar­rass­ment when the other per­son gives you that quiz­zled look, and you real­ize you’re an idiot?
  3. As a multi-millionaire and astro­naut, I find myself embar­rassed try­ing to explain how my soft­ware works to mem­bers of the gen­der to which I’m attracted, even though my soft­ware is awesome.
  4. If my soft­ware was easy to explain — thus sav­ing me the embar­rass­ment of mud­dled think­ing about design — it would also be easy for peo­ple to use.
  5. Mush the last few steps together: if my soft­ware is easy to use, it’s easy to explain how it works, and I can sell it (and by exten­sion, myself) to mem­bers of the gen­der to which I’m attracted in social situations.

This is a log­i­cal pro­gres­sion, and an attempt to appeal to evo­lu­tion­ary processes in order to make a bunch of mis­fit worka­holics socially useful.

Unfortunately for him, Mark Shuttleworth is a well-socialized het­ero­sex­ual gen­tle­men from some­where other than the sub­ur­ban United States, so he’s attracted to women, and appar­ently isn’t aware that in the US, it’s not OK in polite com­pany to refer to some­one he’s inter­ested in chat­ting up at the bar a girl. It hon­estly sounds like he’s try­ing to be cute with it, but falling on his face because some peo­ple are offended when they hear about promi­nent fig­ures talk­ing about women as girls. Either that or one advan­tage of being a astro­naut is that your world is post-gendered.

Yes, I’m jeal­ous of the money and space travel. I’m also young and ambi­tious, so not too ter­ri­bly wor­ried about it.

Regardless, part of the reac­tion is defense against the asser­tion of priv­i­lege and con­trol: dudes don’t get mad when women talk about boys in those terms in our pres­ence because the matri­archy hasn’t existed for thou­sands of years and we don’t have to worry about it. The reac­tion we (boys) have is either blush­ing or strut­ting a bit, because we rec­og­nize it as a sign of selec­tion and an asser­tion of power.

And, of course, bad-assed women are very attrac­tive to guys my age — so many video games, so lit­tle time… Our great-great-grandsons, how­ever, will curse us for our blind­ness. ;-)

Conversely, ladies may bris­tle when men talk about the girls, because it’s a term of endear­ment that is inex­orably tied back to when all women, in all cir­cum­stances, were con­sid­ered girls. There’s an extremely ugly legacy lurk­ing close enough to the col­lec­tive mem­o­ries of both women and men when it comes to a man assert­ing power and show­ing signs of selection.

That’s, I think, why Mark’s com­ments are com­pared to RMS’s. Even though — at least in my third-hand decon­struc­tion — they are log­i­cally to get the audi­ence to do the right thing because of a woman’s dom­i­nance in selec­tion sit­u­a­tions, the lan­guage he is using is loaded enough to tell a dif­fer­ent narrative.

Collective mem­o­ries!? Narrative!? Holy pre­ten­tious fuck. Fuck this, who’s play­ing at the club tonight? Yeesh!

Update: Thanks to Mackenzie for post­ing the link to the video and slides.

As noted by nukeedit, the release com­ment (in the first few min­utes), has a con­nec­tion to orgasm, but it was not gen­der spe­cific, and had no con­nec­tion to hook­ers at all. Now, I’ve read Emma Goldman, and claim to under­stand it, but iter­at­ing that pre­cise chain of logic to any­thing related to sex ends up with your pro­scrip­tions effec­tively indis­tin­guish­able from moral tra­di­tion­al­ists, and results mat­ter more than inten­tions. To put it another way: dark­mat­ter may be a tool, but sex is not the enemy.

On the “girls” com­ment… (at 36:00, slide starts at 35:00) ugh. He ends up elud­ing to the fact that he’s refer­ring to “girls” as “peo­ple who don’t care about free soft­ware.” In con­text, the com­ment is actu­ally worse than it is with­out con­text. Logically, there really isn’t a way to sal­vage his com­ments as some­how dif­fer­ent from the “teach it to your grandma”, even though I don’t think that was actu­ally what he was try­ing for.

Results do mat­ter more than inten­tions. To me, as a native-born white male engi­neer in the US, the results are this: an oth­er­wise engag­ing talk on how to make FOSS not suck, which gives voice to my own thoughts from years ago about UX and code — par­tic­u­larly the inti­mate rela­tion­ship between the APIs you’re writ­ing and the UIs that can rest atop them — is com­pletely for­got­ten, and the only thing peo­ple are talk­ing about is what a com­plete cobag Mark was for jok­ing about girls.

22 Aug: In The Clouds

I’ve spent the last cou­ple weeks mov­ing off of my exist­ing server(s) and into the cloud. Previously, I had been using my own Zimbra server, own SVN/trac install, and web­sites, albeit vir­tu­al­ized on a shared XEN server. The phys­i­cal server all this was run­ning on was some ancient second-hand single-core i386 Dell pow­eredge which never had enough RAM, cyles or bandwidth.

For this, I paid a friend of mine $30/mo. Recently, the fourth per­son in our arrange­ment dropped out and so our costs went up to $40/mo. Now, I had 768Mb worth of mem­ory on the two vir­tual machines I had, of which I was only actu­ally using one.

So I was pay­ing $40/mo for a sin­gle VM instance I ran SCM and my web­site off of, and my e-mail. That’s dumb, since you can use pri­vate repos on Github for $7/mo, use Gmail for free (all things equal, web­mail is web­mail), and get a pri­vate VM instance on Linode for $17/mo.

So that’s what I did: I cut my costs in half over the self-hosted solu­tion by putting shit online.

Now, if me and my friends had kicked in a lot more $ and got­ten a real server, and split it that 1RU up more aggres­sively, then it would have been cheaper to do that our­selves. But nobody cared enough about that to make it work, so putting it else­where is cheaper.

Which is a gen­er­al­ized con­clu­sion I’m will­ing to draw: if nobody cares, it’s cheaper to pay some­one to do it than to mud­dle through your­self. If some­one does care, then it’s invari­ably going to be cheaper to DIY.

17 Jul: Distributing Static Routes with DHCP

I’m set­ting up an iso­lated net­work for peo­ple to test inter­nal appli­ca­tions on, since the devel­op­ers all have Sun work­sta­tions with a dual-port Gigabit NIC on the moth­er­board, and we’ve got a bunch of older net­work equip­ment that we haven’t got­ten around to eBay­ing yet. What I’m doing is link­ing the sec­ond NICs together with some vir­tual machines and the older net­work equip­ment to cre­ate a sep­a­rate devel­op­ment network.

The devel­op­ment net­work is a full Layer-3 net­work run­ning an IGP between mul­ti­ple nodes with attached client boxes. This allows me to play around with a decent lab net­work, and pro­vides devel­op­ers with a way to dis­cover that Linux sets the TTL of mul­ti­cast pack­ets to “1” well before they are called to explain why their appli­ca­tion didn’t work even after loads of test­ing, spend 8 hours play­ing head-desk, and finally start ques­tion­ing me about fire­walls on our inter­nal net­work, forc­ing me to claw it out of them that they are dri­ving mul­ti­cast with­out a license and explain how to use tcpdump.

Not that I’ve had to do that a dozen times now, or any­thing…
Read the rest of this entry »

26 May: My First JBOD, Part 2: Irony

J4200 After unpack­ing, rack­ing, and mount­ing the JBOD, I waited until the week­end had started before pow­er­ing down the server and installing the RAID card. Connected it all up, rebooted into the Adaptec BIOS, and con­fig­ured the 6x 1TB dri­ves into a RAID6 array. After that, I installed the RAID StorageManager off of Sun’s web­site, and then the “Common Array Manager” soft­ware. CAM is sup­posed to pro­vide a web GUI to an organization’s worth of Sun JBODs, so you can update JBOD firmware and query sta­tus and what­not from a sin­gle inter­face. There’s client and server bits writ­ten in Java that run on the var­i­ous boxes, so the data path was going to look like this:

JBOD -> XEN dom0 run­ning remote proxy tool -> XEN domU run­ning web GUI

I say “was going” and “sup­posed to” because all the remote proxy tool in CAM ended up doing was con­sis­tently trig­ger­ing a ker­nel panic in the aacraid dri­ver when­ever it’s detec­tion code fired up.

Take a long drag off the irony of dri­ver and firmware issues, and down­load the latest-n-greatest aacraid dri­ver and firmware from Intel via Sun, and update. Same results. Repeat in var­i­ous con­fig­u­ra­tions, and before throw­ing in the towel, get a basic dump and file a bug. I didn’t put any more seri­ous thought into debug­ging it sim­ply because this whole thing has to be up and run­ning yes­ter­day, and the last time I asked for doc­u­men­ta­tion on the topic, I was rebuffed with a vari­ant of this clas­sic: “If you were smart enough to debug the ker­nel, you wouldn’t need doc­u­men­ta­tion on how to debug the kernel.”

Take a moment to stand in awe of the mas­sive poi­so­nous cobag­gery involved in that state­ment being offered to some­one who wants to help fix a crasher. I’ll wait.

That kind of shit would never fly in any GNOME venue, which is why GNOME kicks so much ass.

Update: The cobag­gery about ker­nel devel­op­ment did not come from Sun or any rep­re­sen­ta­tive of any com­pany involved in open-source, and was unre­lated to this sit­u­a­tion at all. I relate it sim­ply as it per­tains to debug­ging ker­nel issues, and why I don’t do it.