write\_intr: wrong transfer direction

I tried ripping a CD recently on my desktop machine running Debian testing. grip seemed to hang, and I kept getting this error message in the logs:

hdc: write_intr: wrong transfer direction!

Google didn't turn up much that helped, except to suggest a simpler test case (cdparanoia -d /dev/hdc 1-1). Data CDs seemed to work just fine.

Finally tried upgrading the kernel package, from kernel-image-2.6.8-2-386 (the default kernel after installation) to linux-image-2.6.18-4-686, and that did the trick nicely.

Tags: bug

Ack! Ack!

It's kinda cool when you're wearing this shirt, and someone who turns out to be the director of IT strategy jokes with you about it.

Tags:

IBM/Lenovo T60 memory upgrade

I bought a T60 for my boss a while back, and have just finished putting in another memory module. Man, I knew this was the lower end of their laptops, but I had no idea it would feel so cheap.

To get at the memory, you take out a few screws on the back, then lift off the palm guard below the keyboard. It's flimsy plastic, and it's hard to get back in the right place - doubly so, since it feels like instead of clicking into place it's going to break. And you need to remove the ribbon that connects the touch pad and fingerprint reader in order to fully remove it; when putting it back in, it looks like it's going to get crimped. That can't be right.

I had been considering getting one of these, despite having fallen in love with my other boss' Dell D420. But this just makes me think that the extra money for the D420 would be worth it. Of course, I haven't had to crack that one open yet…

Tags: hardware upgrade

Back ----

I'm back from vacation, and a relaxing time it was. We got to enjoy the hospitality of a lot of family in Ontario, and sysadmin duties were pretty minimal. Hell, I didn't even check Slashdot the whole time.

I upgraded my dad's laptop to the newest version of Ubuntu, and got him a new wireless card that'll work in Linux (though with a restricted driver) as an early Father's Day gift. (If I had been able to buy him an old Orinoco somewhere, I'd've done that instead...as it is, I'll have to cringe under the wrath of my inner RMS. :-)

I also showed him how to FTP a new Wordpress theme to the server, and I have to say I'm impressed with how easy Gnome/Nautilus makes it for him. I'm starting to understand the appeal of a nice GUI, though I'm still sticking to my xterms for now.

As a bit of reciprocation, my dad gave me a 2GB SD card for the new camera we've got -- which was nice, because the old 256MB card was filling up very quickly.

I was happy to get back to work and find that, really, there wasn't that much to clean up. Coworkers had filled in nicely for me, and the worst that had cropped up was an SQL bug in a new credit card payment form; it was failing to update the second of two places that indicate someone has paid. (Yes, redundant, but to be fixed next year.) I'm a bit irritated by this, as the bug was an SQL statement, passed to PEAR's Db module, that said:

...set updated_by="foo form" form" ...

Yes, this is my typo, but why did PHP not report this error? What happened, and why wasn't it being caught?

Anyhow. Now that I'm back, relaxed, forced by funding to put off Big Website Rewrites 'til next year and mostly done with this year's web work, I'm finally able to contemplate upgrading our Big Server(tm) to Solaris 10. That will be a bear of a job, but it'll be nice to get it done.

On the home front, I'll be switching to Uniserve's ADSL shortly. They do allow servers, and offer static IPs for a small charge; that'll be nice. We used them at my last job, and the service was fine as logn as you didn't have to contact tech support.

Surprisingly, they also have this clause in the TOS:

65. UNISERVE shall have the right, without notice, to insert advertising
data into the Internet browser used by a UNSERVE customer, and
transferred to a UNISERVE customer over UNISERVE's network, so long as
this does not involve UNISERVE establishing the identity of the
customer to whom such data is sent.

In a previous life at an ISP, we started putting in machines run by a company called Adzilla. They were, as far as I could tell, proxy servers that replaced the ads on, say, CNN's website with ones for local businesses. I thought it was scummy, but couldn't persuade the bosses of this. I'm fairly certain this is the same thing, and probably the same company too. I still don't like it, but Uniserve is the best option I've got right now. And at least they admit they're doing this.

Tags: geekdad upgrades

Bit more detail on Linode

Last week, when I figured I'd have to move servers, I figured I had three options:

  • Regular hosting: no go, since I wanted flexibility and shell access.
  • Colocation: too expensive.
  • Virtual machine: "But the one in the middle was just right!"

This Ask Slashdot gave me lots of suggestions, and after puttering around for a while I narrowed it down to either JohnCompanies or Linode. They both had lots of good references, both in the article and elsewhere, but in the end the lower cost of Linode got me.

I ordered the 384 plan -- 384MB RAM, 12GB disk space -- and within a couple hours I was set up. Static IP (coming from cable, that's ver' nice), reverse DNS however you like (w00t!), and more transfer than I figure I'll use in a year (seriously).

The Debian install took, like, four minutes, tops. It was maybe an afternoon's work to figure out all the packages I needed (including stopping an accidental upgrade to -testing). Big shout out to rsync and ssh, without whom yadda yadda. All in all, dead dead simple.

The one thing that maybe should've been a bit more prominent in Linode's advertising is their use of the IO limiter patch for UML. I found out about this in passing after I'd signed up but before I'd had a chance to log in. (There are a few details about it here, and you can read the patch here.) In fairness, though, I've run up against the limit in untarring big-ass home directories, but not since.

Anyhow…pretty damned satisfied with Linode so far. Their web management panel is slick, the console access is lovely to have, and I've no complaints about performance yet. I'll probably just stick with them for a few months, as I hope to switch ISPs once I get back from vacation...but I think it'll be very tempting to stay with them.

Tags: virtualization

Moved!

Since Shaw has apparently started to filter port 25, I've temporarily set up shop on linode.com. Gotta say I'm pretty happy so far; it's a neat setup, the Debian install took minutes, the price is right, and I get reverse DNS. Nice!

Shaw's timing could not have been worse; I found out a week before Clara, Arlo and I are heading off to Ontario. (That's the day after tomorrow, for those playing the home game.) However, Debian makes it damned easy, and anyway there were only 8 sites -- not all that much, all told, especially since no one had any terribly special requirements. I'm even more sold than I was before on Debian as a server distro.

So tired -- this was meant to be a longer entry, but I don't have the jam right now.

Tags: networks

09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0

Just doin' my part.

Tags: magicnumber politics

I will strike down upon thee with great vengeance and furious anger those who would attempt to poison and destroy my brothers.

This is how I imagine Samuel L. Jackson leading off a conversation with the writers of the PHP language (edited to be less obscene and offensive).

In the name of all that is holy and right, please explain to me why the fuck PHP's preg_replace() takes delimiters for the first argument, but not the second. IOW, Perl's

$foo =~ s/baz/bum/;

becomes

preg_replace('/baz/', 'bum', $foo);

Yes, I should've just RTFM. You're completely right. But this just bit me in the ass, after spending 10 minutes wondering WTF was going wrong, and a little fucking consistency goes a long fucking way.

Tags: php web programming rant

Why bother

...trying to report a phishing email to a bank whose website:

  • requires JavaScript for its index page, and provides no failover page, or
  • does not include an easily found link to contact their security people, or
  • gives a 404 error when clicking on the "Help" page?

Because it's The Right Thing(tm). But that doesn't make it fun.

Tags: spam

In case you hadn't read the newsletter

From Bruce Schneier's newsletter comes this blog entry suggesting that there simply aren't that many serious spammers. Interesting data.

Managed to get the Perl/PHP parser extended so that it would see nested PHP arrays and translate them to the proper hash/array references in Perl. It was good to do that, but then other problems arise — like the fact that, as the parser stands right now, it simply stops parsing if it finds something it doesn't understand. This could be something like a comment in a nested array, or something like if ($debug == 1) { $foo = "bar"; } else { … }.

Again, I'm concluding that this would all be much, much easier if it was in a database…just have PHP and Perl suck out the data and do what they want. Either that, or just start writing everything in Perl…

Update: Also, this is not what I expect to see at the top of Planet Solaris — though maybe this should've prepared me. Rockwood's coworker's post is worth reading too.

Update2: Just for completeness, I'll mention that Ben's updates and comments are also worth reading. That's it from the Obvious Dep't.

Tags: spam perl programming solaris

Dude!

One of the things I've been doing at work is writing registration forms for conferences. Natch, each one is slightly different, and I've never been quite sure I've been doing it right. Thus, WWW::Mechanize has been a fucking godsend to me.

But, as each of the forms are slightly different, each script is slightly different as well. If only my test script could parse the form's configuration file. Too bad the config file, like the form itself, is written in PHP.

Or is it? For what to my lumbering (yes, they lumber) eyes should appear, but CPAN's PHP parser and PHP::Include, which I think is more my size. Sweet!

Tags: perl web programming

Been reading:

Someone builds a Perl shell using Moose which led to a response to this article which cited this article and this response, which just made me laugh ("Mental Disorders (Can you say @_ = shift $1->Whuahahahahaha();)"), but not as much as the concept of yak shaving, which just made me laugh and cringe in recognition.

No, I don't usually just list what I've been reading lately…it's a quarterly thing.

Tags: perl reading

Nexenta: next year in Jerusalem!

I think I'm going to have to end my experiment with Nexenta.

I've been running it for a couple months now on my desktop machine, and for the most part it does everything I'd want it to do. Sound doesn't work (built-in Intel chipset, 945 I think), but I haven't really looked into it too hard; the screen resolution keeps changing back to 1400x1200 for me in IceWM, but again I haven't really looked into it too hard. Firefox runs fine, xterms work, Emacs is there, and since it's a 2.8GHz P4 (cf. the 500MHz P3 I was running before), it's all ver' fast.

But when I started using it, I had visions of helping get it released; there are 90 bugs to knock down, and I could help with that. I can — I did (a little) — but with a 9-month old kid to help take care of, my time is et up pretty damn quick. A couple of hours on the weekend is the sum of my spare time right now, and that's for everything.

Why do I mention that? Because OpenSolaris needs a lot of learning, and Nexenta/GNU/Solaris needs a lot of work to get a beta release out the door. I thought I'd learn dtrace; I thought I'd knock down a half-dozen bugs while a growing community joined in.

That turns out not to be the case. And it's a damned shame, and I'm not helping matters any by giving up. I love the idea of Solaris + Debian. I'd like to see it up and running and grabbing people's attention and all the rest, but it's just not happening right now.

And so, in a few minutes I think I'm going to install Debian on here. It has what I want and lots more. There are plenty of people involved in the project, covering for my slacking. I'll be running testing, 'cos I've been doing it so long that it seems foolish to stop now :-). When I finally get around to upgrading the server that prompted this digression, I'll make it stable. I'll probably replace SuSE at work with stable, too.

And now for teh big finish...

Tags: packagemanagement solaris

Thought I was being original...

But apparently not: this guy's blog also takes comments by email. (His links for reading or sending a comment are a lot better labelled than mine, so I might as well steal that too… :-)

In other news, I am finally getting close to being finished a new credit card payment page for work. The place that processes our CC payments has a new API, so this has been a good chance to rewrite the current page. I flatter myself that my version (helped out a lot by a simpler API) is much easier to understand than the old, and that's gratifying…but by the beard of Shuttleworth, I'm sick of web work. It feels like that's all I've been doing since January, and I'm really looking forward to being done with it.

Oh, and another thing -- don't take abstracts for mathematical pages in PDF. Everyone uses LaTeX or plain text for a reason, and that reason is that it's easy on the sysadmin. :-)

Tags: programming meta

It hurts, it hurts

The only thing I love more than a printer that does SMTP is a printer whose default address for an email alert is name@company.com, a legitimate (though spammy) domain. Did Donald E. Eastlake 3rd and Aliza R. Panitz die for our sins in vain? Hm?

Tags: spam rtfrfc

Why I Hate Blastwave's Package Manager

  • When running in upgrade mode, there's no way to turn off endless repetitions of "Do you want to remove this package?" Since I asked you to upgrade, the answer is yes.
  • Amusingly different names for packages depending on the context:
$ pkg-get foo
Can't install foo; need newer version of libbar.
$ pkg-get libbar
No such package.
$ pkg-get -a |grep bar
Barlib          The libraries of bar.


  • Hidden abilities, like the ability to upgrade selectively if you want. Whee — doesn't say so, but pkg-get -u foo does work. Supported? Who knows?

(Edit: corrected name of Blastwave's package manager. So much for the moral high ground…:-)

Tags: solaris packagemanagement

The n things sysadmins should know about development/progamming

Some rough notes...

  • Use revision control. (Don't laugh. I'm trying to convince a coworker of this.)
  • Testing: unit testing; regression testing; automated tests
  • Testing web apps (scratch db; using Perl's WWW::Mechanize to test)
  • Sufficiently important DBs need an API, rather than hand-written SQL (discuss)

I may add more stuff later on. Basically, this is all the stuff that I've tripped over because I'm not a programmer, yet in a small shop it's often part of the job. I'm sure there's more, and I wouldn't be surprised if I'm all wrong about some of these things (API for DB, for example).

But man, if someone could write a book about these things, I'd be happy to buy it.

Tags: programming

Not borked after all!

While doing some work on one of my WRT54-GL routers last night, I managed to bork OpenWRT: after a reboot, the power LED just kept flashing, and there was no response at its usual IP address. I could ping it on 192.168.1.1 (though, weirdly, I'd only get 3 reponses every 30 seconds or so), but neither telnet nor SSH was working.

Some folks suggested getting out the serial cable, or shorting pins on the flash chip, but a simple TFTP did the job.

Now to get OpenVPN going again, and this time without breaking the damn thing!

Tags: hardware

Cute pics

You have been warned.

Our baby mole.

Spoon in the eye.

I'm awake!

Couldn't be bothered to hide the ad

Tags: geekdad

No way!

Hard to believe, but OpenSSH (portable version) has finally fixed the hang on exit bug. Man, I thought that'd never go away...

Tags: bug