I am not dead. It's been a rough week or two here. Rough enough I got an EEG this morning (and CT friday). As far as I can tell, it looked pretty normal, but then, I'm not a neurologist. If you want additional details, you know how to reach me.
In other news, there seems to have been a spike in the rifle market. The Army is expecting to spend $16k on each of them. I mean, that number could include disposing of the busted ones, but the soldier's trained. So there's no salary or anything in there. Schoomaker actually said that they really needed to replace all their M16's with the M4 (which is really the M16A4 Carbine). Presumably the SDM-R will retain the longer barrel, and here's to hoping that the XM107 and the M1 are still in the field. There are just some things that a 5.56 can't do.
09 July, 2007
03 July, 2007
Video games
Since my Xbox 360 died, I haven't been much on video games. But we bought a used PS2 to play Katamari Domacy, and as an impulse buy, I picked up Final Fantasy X. Now, ages and ages ago, I wasted hours on this game, in its first or second iteration, on an original Gameboy. I find now, literally two decades later, that Square and the FF games are still the black-hole of time and productivity they've always been. Ick.
02 July, 2007
TDMA status
Progress on Net::TDMA (although I suspect this is not the right place for it) was interrupted of late by paying customers. Paying for perl, even. Well... paying for data, I chose the perl part of it. I suppose I could have done all the munging and scraping in ruby, but I don't know enough about (or whether there is) ruby's LWP I also chose XML::Dumper for storing and transferring the data. This way, I figure, the customer has the data and can do with it what they want, or I can take the same data, xml2pl it, and stuff it into MySQL or something else sufficiently facile.
So, work on the TDMA stuff resumes today, along with interviews.
So, work on the TDMA stuff resumes today, along with interviews.
30 June, 2007
Learned a new perl trick today
So I was parsing html, which is always kind of an icky job. But perl has this great regex engine I can employ to do the parsing for me. The problem with the regex engine is it's very difficult to debug a bad expression. I remember being confounded for hours by them in the past.
Luckily, perl gives us the /x modifier to regexes. So in this case you can see a very simple expression, but I'm sure you can imagine much more complicated expressions. If we want to see where the expression is broken, we can just do this:
and run it each time, opening up another little piece of the expression each time. This way we can "walk" down the expression finding where we goofed. In the case above, there was just a line that needed a \s* (which is easy to forget about when using /x!).
@bottle{qw{ upc_code year name varietal size }} = $bottling =~ m{
(\d+)</a></td> # this is the UPC code
<td>([^<]+)</td> # this is the year
<td>([^<]+)</td> # this should be the name
<td>([^<]+)</td> # this is the varietal
<td>([^<]+)</td> # bottle size
}x;
Luckily, perl gives us the /x modifier to regexes. So in this case you can see a very simple expression, but I'm sure you can imagine much more complicated expressions. If we want to see where the expression is broken, we can just do this:
@bottle{qw{ upc_code year name varietal size }} = $bottling =~ m{
(\d+)</a></td> # this is the UPC code
# <td>([^<]+)</td> # this is the year
# <td>([^<]+)</td> # this should be the name
# <td>([^<]+)</td> # this is the varietal
# <td>([^<]+)</td> # bottle size
}x;
and run it each time, opening up another little piece of the expression each time. This way we can "walk" down the expression finding where we goofed. In the case above, there was just a line that needed a \s* (which is easy to forget about when using /x!).
28 June, 2007
Just for the record
Trusting companies to do anything decent is a bad idea. Their entire purpose is to make you do as much work as humanly possible while simultaneously paying you the least amount they can before you will leave or otherwise stop working.
I can't believe I did it again. Why did I forget that? This time, we got really burned. This time it wasn't just fucking around with my income, it was affecting my marriage, my friends, and even my cars. So I come home to everything being a complete wreck after a month of being locked in a cell and working sixty+ hour weeks. Now I get to put my life back in order, one piece at a time.
I can't believe I did it again. Why did I forget that? This time, we got really burned. This time it wasn't just fucking around with my income, it was affecting my marriage, my friends, and even my cars. So I come home to everything being a complete wreck after a month of being locked in a cell and working sixty+ hour weeks. Now I get to put my life back in order, one piece at a time.
27 June, 2007
Internet backup solutions
An internet backup provider, whose name rhymes with "posie" (the 'pocket full of posies' line in the children's nursery rhyme refers to the scabs associated with the black plague, so it fits), has spammed this site.
That doesn't really bother me. The first one was actually helpful, but was posted from a misleading address. It suggested that I use this posie service to back up my stuff. Well, that's fine for a gig, or a few hundred megs, or whatever. But what we're talking about here is the transport of several hundreds of gigs of data across the fancy interweb to posie.
This might work if I had SDSL still, and had a T1 to the house. This would also work if I took my personal computers to work and used the giant pipe at work to upload my data to posie. But I don't have a T1 or an OC3. I have cable – that I am borrowing from a neighbor and is thus intermittent. So that means I get about 600kbyte/s down, but we're locked at 384bits (note I said bits) on the way out.
But the marketing drone doesn't really understand these sorts of things. First, don't spam. Second, don't spam twice. Third, think and understand the situation before you start talking. Lastly, if you're going to use a pseudonym, like bonnie, for some marketing firm, please let me know that you are with a marketing form so that I may become aware of the fact that you're trying to sell me something, and you might not always be telling the truth.
So, bonnie, you are the first comments I've deleted in a long time. Unmoderated comments I think are the way to, but it's shit like this that tempts me the the other way.
By the by, I'm not going to link to the remote storage company, because that would contribute to their google page rank. My wife will also never recommend their service to a customer again (she works on the retail side of Apple).
The name of the advertising firm, however, for those who wish to blacklist or whichever, is Starline Marketing. These are the sorts of people I put on black lists for spam and the like. Perhaps google should implement procmail in blogger for comments (or mail for gmail, or...)
26 June, 2007
Data migration on a small, but big, scale.

We had kept most of our iTunes data on a 250GB LaCie disk that I've been worrying about. We had no backup for it, but what do you do with 200gb of data? This isn't some enterprise migration (which I've done a bunch of), it's moving 250GB to a new disk (640GB).
So, I got a little wacky. I told disk copy to make a 400GB "empty" image. I then proceeded to copy all my data over to it. The finder, as per usual, barfed on the operation. Ditto(1) to the rescue.
Now, this is adding a level of abstraction, which is almost never a good thing (as both Sergei and Doug would tell me). My justification is thus:
- I'm not going to be surprised when I hit that 400GB mark, and with the 640GB drive, it means that there's 240GB for "the rest of the stuff."
- When I move it again, all I have to do is move one file. I'll probably use cp instead of the Finder to move it.
- It's easily mountable and unmountable. With disks, this can be a pain. Sometimes they unmount and won't come back.
- Apple's disk images have internal checksumming so I can ask the disk to "verify" or "repair" it.
So, this is real wacky. Totally against what I've been taught as a programmer, sysadmin, etc. But, this is a Mac. and Mac's Not Unix so ymmv.
By the way, if you have anything bigger than a gig, use ditto. You see that output up there? I can grep through it for errors. Try doing that in Finder. Here, I'll help. Finder, cmd-u, t. That's all there is to it