maradydd: (Default)
Good hacking night last night. D came over so that we could hack on owen, my little NSLU2 box that's been on the shelf for, oh, a few years. After a few false starts (involving things like having to remember passwords I haven't used since 2005), we threw together a quick LAN off my laptop, got owen on that network, and successfully logged in. We then figured out that trying to configure a bridge between eth0 and ra0 was more trouble than it was worth, so no updating owen straight from the package server for now. I'll need to get the switch set up before I can actually drop owen on the main network, and I don't have the furniture for that right now, but owen clearly still works like a charm and now speaks DHCP, so overall I'll call that a win.

Our eventual goal is to set up pokylinux, as a "just to see if we can, since there's not a pokylinux build for this particular hardware yet" project, which will probably involve doing some compilation on the box itself. That's going to be slightly hilarious; I haven't done a multi-day toolchain build since, oh, 2001 or thereabouts. Good times.

Laterish today I'm going to pop round to the electronics store that also sells RC cars, planes and helicopters to see what my battery options are; I assume it's easier these days to supply 5V/500mA off something rechargeable than it was four years ago. (I need to be gainfully employed before I can actually buy one, as I expect sticker shock, but this is how budgets are made.)

I also dug up the little USB-to-Roomba-serial-interface circuit I was assembling some time back, and found the ostensibly Linux-compatible Bluetooth and 802.11g dongles that have been waiting ever so patiently. Yep, that's right -- after far too long on the shelf, the Evil Robot Vacuum Cleaner Army project is rolling once more.
maradydd: (Default)
This is entirely my fault. Feel free to throw tomatoes, but no rocks please.

(To the tune of "The Wild Rover". Apologies to Dennis Ritchie and people who don't like folk music. Also, the scansion and end rhyme go to hell in the third verse; sorry about that.)

Oh I've been a C coder for many an age
And I've spent all my free time on pointers and rage
But I like tail recursion much better than FOR
So I never will be a C coder no more.

And it's (cons car cdr),
Mapcar and lambda -- no more
Will I be a C coder, no never, no more.

I saw Dennis Ritchie one night in a bar
He had typedef'd his wallet to pointer to char
At last call he went to pay up for his friends
But he had no bounds checking and fell off the end

And it's (cons car cdr),
Mapcar and lambda -- no more
Will I be a C coder, no never, no more.

I first watched in silence, but I had a Scheme
So I thunked down my Visa and a small trampoline
At first no one there was quite sure what they'd seen
But the girls saw my Sexp and came home with me.

And it's (cons car cdr),
Mapcar and lambda -- no more
Will I be a C coder, no never, no more.

Feel free to add new verses.
maradydd: (Default)
Man, you take apart a monitor at a party and everyone wants to know what the hell you're doing.

I mean, L. and I had a perfectly good reason for it: it was a hacker party, we were working on hacking together a high-voltage power supply from a CFL and the flyback transformer from an elderly CRT, the setting and the task at hand seemed to go well together. Within a few minutes of arriving, we met a guy who had taken apart many, many CRTs before, and who was quite happy to hang back and give helpful tips. That was great, and I was equally happy to give the twenty or so people who wandered by in the next hour and a half a quick explanation of what we were up to. ("We're making a Jacob's Ladder, so we need a flyback transformer. Later we're going to use the power supply for another project, but a Jacob's Ladder seemed like a great way to test it.")

Where it got annoying, though was the couple or five people who basically demanded we justify our right to plunge our hands into the guts of a sacrificial monitor. "Isn't that going to release dangerous gases?" No, that's only if we break the tube, and we're not going to do that. "Those transformers can hold a lot of charge even after the monitor's off." Yes, and not only has this monitor not been turned on in two years, L. held a screwdriver across the leads to discharge any remaining charge. "But what do you need that strong of a power supply for?" A Jacob's Ladder sounded like fun, dammit.

The absolute best exchange, though, went something like this:

WELL-MEANING BUT ANNOYING PERSON: Does anyone here actually study electrical engineering?
[ profile] maradydd, grinning: Not me!
L, grinning even larger: Why yes, in fact I do.

The irony, of course, is that L. is getting his PhD in electrical engineering because that's where they decided to put the cryptographers. Me? I build radios and do the odd bit of electrical work on cars.

I'm half tempted, if I do a hardware project at one of these things again, to print out a sign that reads YES, I KNOW WHAT I AM DOING, PLEASE DO NOT INTERRUPT ME.
maradydd: (Default)
Today I went to TAP Plastics in San Francisco and they cut me the plastic pieces I will need to build my very own gel electrophoresis chamber. (Service while you wait, by the way. It took maybe ten minutes, during which time the friend who drove me and I wandered around the store looking at all the cool stuff they had on display and chilling in chairs shaped like giant hands. A+++ will shop there again, if only to spend more time browsing through their photos of neat stuff they made.)

Then I got home and checked the mail and found that my electroporation cuvettes arrived!

Oh, today is a happy happy day. Time to leave positive feedback on eBay for the guy I bought the cuvettes from, fix some lunch, then go down to SuperHappyDevHouse and start building.

*dances the dance of parts that are heeeeeeere!*
maradydd: (Default)
I ordered one of these the other day, and it showed up yesterday afternoon. Last night I went up to the roof of the physics building to test it out with the 20m dipole I built a few weeks ago. It works pretty well. I also figured out why my SWR meter apparently wasn't registering any activity but you probably don't care unless you're interested in radios ) and everything is cool now.

I also picked up one of these. In keeping with the butler theme, I have named it Edmund, as [ profile] doissetep has informed me that Edmund Blackadder was a butler in the Regency season. I'm pretty happy with it, too.
maradydd: (Default)
The PostgreSQL query analyzer -- the piece of the backend which transforms the SQL queries you write into structured information which the planner can optimize and the executor can, uh, execute -- has a number of functions which are all named vaguely like "make_op()". (Think make_op(), make_array_op(), make_scalar_array_op(), &c.) This family is, predictably, used to generate record-specialized arithmetic functions, e.g., "add column A in this row to column B in the same row". There are about six of them, and they all return a pointer to an Expr struct.

I need to create a new make_op() function, so of course I looked at the definition of this struct type. I was vaguely horrified to see
typedef struct Expr
     NodeTag type;
} Expr;
WTF, mate? Where's all that column identifier information? For that matter, where's the fucking operator?

So I took a closer look at one of the make_op() functions (make_scalar_array_op(), for those of you playing along at home) and noticed another declaration: ScalarArrayOpExpr *result;. The return statement? return (Expr *) result;.

Can you say "even more horrified"? My God. If they wanted to cast through a void*, they could have just cast through a void* and had done with it. libgdome2 at least has the decency to do that, though they're actually doing it via glib, which buries its void* casting through enough layers of typedef indirection that to the uninitiated (read: people who haven't bothered to dig through all that source) it almost looks like there's some type safety going on.

To the PGDG's credit, the comments say that this is mainly for purposes of documentation (i.e., tracking where nodes are getting generated, or something like that, I guess). But they also refer to Expr as a "superclass". BAD NAUGHTY PGDG. NO BISCUIT.

I can understand the desire to give C some kind of type checking/safety. But this is the third time I've seen it (not counting C++), and the second time I've seen it done badly. (Zend, we will let you live. This time.) "Badly," in this case, means "in a way that suggests some kind of typesafety, but is only providing an illusion."

I fear they are losing the substance for grasping at the shadow.
maradydd: (Default)
If you're a geek, then run, do not walk, to the nearest machine with a sound card and treat yourself to So Much Drama in the PhD, a computer-science gangsta rap that puts MC Hawking to shame. Check out the lyrics here, as well. /i/ is a popular terminal vowel in English, apparently.

I maintain that it is the responsibility of the CS Mafia to respond to this imminent east-coast-west-coast rivalry, since we're pretty much the Wu-Tang Clan of computer science already. We even have the names.
maradydd: (Default)
Despite some early frustration, this week has turned out really good after all. A number of people mysteriously crawled out of the woodwork on a day when I was feeling pretty lousy (this means you, [ profile] cloakedwraith and [ profile] enochsmiles), reminding me that I have good friends and that the world is a saner place than I have a tendency to give it credit for. (Yes, that was intentionally vague; it's something that I could in theory bitch about, but I've done my venting in private, and no longer feel the need to. That, in and of itself, is a great feeling.)

I've been decaffeinating over the last week. I hadn't intended to, but I've been deliberately cutting back on sugary drinks, which de facto means less caffeine unless I make coffee or tea. I like both of those, but making them requires a bit more concentration than I can usually marshal when I'm fixated on some work thing or another, and I like carbonated things far more than anyone ought to, so normally I just go to the fridge for a coke. However, in the wake of this last shopping trip, I've been going to the fridge for a sparkling water, which is probably better for me anyway, but doesn't provide that crucial headrush. Thus, by Wednesday I was miserably headachey, and spent the entire day curled up in bed hacking. Most of it was noodling around in the guts of PostgreSQL, but by late evening I decided to bite the bullet and knock out the last of the obvious bugs in Nemesis.

Which is now done, for definitions of "done" which include "going back and adding in more specific exception-handling routines and fixing the ID10T errors that my boss found today when I demoed it for him." It's interesting having a boss who's really smart but who also knows how to think like one of the people about whom Distributing Clue to Users was written. Within half an hour, he'd come up with ten different ways someone could break the software in ways I'd never intended, though I'm proud to say that I had already trapped quite a few of the bad inputs he'd come up with. :) So that'll be a few hours of shoring up the walls next week, and then we hand it over to other people in the office for alpha testing. Anyone want to help me test a site-directed mutagenesis primer generator?

Still, Andy is now very happy with me, and is even more happy with today's Nifty Advisor-Related Development. Hwanjo, my advisor, has been wanting to put together a soft-query-driven interface on GenBank1, sort of a killer app for bioinfo, but for some reason he wanted to do it as a browser plugin. For IE, no less, despite my protests that Firefox is much more readily extensible and that I would rather stab myself in the throat with a pencil than learn ActiveX. This afternoon, I finally convinced him that putting together a client-side interface to a 300GB database is just silly, particularly when one of his students (*raises hand*) has already put together a web-based frontend for annotation and data mining which is eventually supposed to be generalisable anyway. Since it had originally stalled out due to my not having had the necessary mad skillz to put together a reasonable (read: runs in some order of time that won't drive users around the bend and doesn't require huge amounts of precomputation) classification backend at the time, CHARUN is now back from the dead. This discovery immediately prompted Andy to start humming "Bela Lugosi's Dead," which suggests to me that (1) apparently every project I work on at IDT will have its own cheesy goth theme song, and (2) there are much worse things than having a boss whose musical taste overlaps yours.

After all this, I knocked off work around six and went home to await the arrival of my sysadmin, who lives in Des Moines but was coming into town for the weekend. Noises had been made about a Return of the Bride of the Nephew of Bad Movie Night, but since Nate (aka the guy who'd wanted to do the resurrecting) managed to fail to pass this on to other people and ended up with stuff he needed to do tonight, it ended up being just me and $sysadmin. Happily unencumbered by other people's schedules -- he'd been thinking about going to a party tonight, but decided to bow out after receiving notice from another friend that his ex-girlfriend would be in attendance -- we enjoyed a sumptuous repast of sushi and mochi ice cream, then headed downtown to see if we could land a pool table at College Street Billiards. Alas, the last free table in the place became nonfree moments after we walked in, so we decided to try the movie night thing after all. $sysadmin rose to the occasion with a copy of the 2002 Adam Sandler flick Mr. Deeds.

Which, beyond all my expectations, managed to not suck. I have always associated Adam Sandler movies with gratuitous fart/potty/embarrass-the-characters humour, but this one was, dare I say, quite charming. It's based on a 1936 Frank Capra film, Mr. Deeds Goes to Town, which stars Gary "Please don't remind anyone that I also played Howard Roark" Cooper. I've never seen the original, but the remake was sufficiently amusing and sweet-natured that now I want to find and watch it -- unlike the "oh God, this is so terrible I need to see the original to wash the bad taste out of my brain" reaction I had expected to have. I wouldn't say it's worth buying, but if you happen across it on cable, it's not a bad way to let an hour and a half go by.

$sysadmin and I also hatched clever schemes involving convincing IDT to set up colo servers across the country for the Grand Unified Database Project that Andy has in mind. Will it go anywhere? Well ... I've heard worse ideas, let's just put it at that.

And now I have a sleepy cat on my lap, and tentative plans to go see [ profile] saoirse_kore tomorrow. Yay! I still wish I could have been at PyCon, but there'll be time for that next year.

1 The first time I typed that, I wrote "GenGank" instead. *snicker*
maradydd: (Default)
I am generally happiest when I'm getting interesting things done. I like to be able to point at stuff I've written/coded/cooked/sewed/carpented/soldered/&c. and say "Look, I made this," whether I'm talking to somebody else or just myself. This kind of applies to coursework, but usually not all that much; unless I hit some really cool insight along the way (those who were awake and listening for the Night of Paring an Inductive Condition Down One Aggravating Step At a Time, Then Bribing an Undergrad with Food to Do the Algebra For Me are familiar with this) or it's just a cool project generally (last semester's game-theory project, as strenuous as it was, is a good example here), then it's just grunt-work that I really don't get a lot out of. I have a pretty good sense for what I need to work through in order to get a better understanding of what I'm doing.

Skip if you hate examples, or if you hate Meredith's long stories )

So, all in all, it was a fun and productive trip. (I also made a small 80m transceiver, but it's not quite finished and I don't have an antenna for it yet, so I haven't tested it and probably won't get around to that until Christmas break.) Dad and I also learned that making PCBs is hard, and that we both like driving around town not really saying much, particularly when my mom and both my sisters are home.

I got back Friday night, and dived straight into helping cryptogeekboy install the used-but-in-new-condition ICOM 2100H that I'd discovered at Houston Amateur Radio Supply and he bought over the phone. This helped to alleviate some of my paranoid fear of installing things in cars, since nobody got electrocuted, probably because we had the good sense to disconnect the battery first. This involved a lot of cutting and soldering on large wires that had previously been in the harness for his old car radio, plus adding a phono plug to the hot and ground wires for one of his car speakers, with the end result being that now he can tune anything on the 2m band in FM, powered by his alternator, with the audio coming right out of the dash. And it worked the first time, which is terribly cool, plus no one was killed, which is even cooler.

Now it's Sunday, and the kitchen is clean, and kato has Debian installed on him because the brokenness of YaST was pissing me off, and you can actually see the floor of the shop now, and I'm going to run over to Lowe's and see if I can't find a pegboard and some brackets to get all the tools off the bench and onto the wall so that we can find them more easily. Oi for making stuff work.


maradydd: (Default)

September 2010

12131415 161718
26 27282930  


RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags