My favorite advertisement ever

This is totally awesome on so many levels – I’m afraid this photo doesn’t really do it justice. These are some of the more interesting “choices” made with this circular:

#1) the terrible photocopy-looking nature of the thing
#2) “Ransom-note” style lettering – someone cut and copied letters from some other advertisement to make this one.
#3) In the black bar on top – you can apparently help $ave your “Peach of Mind”
#4) Insane parenthesis “If your property is in (Foreclosure)”
#5) Good things to note – “Note: Therefore you will not have any more headaches or worries.”
#6) Phone number in the bottom is written in pen, and is misformatted – apparently in area-code (1347)

I would worry that I might arouse these people’s ire, but I’m nearly certain they’ve stayed at least 50 feet from a computer for their entire lives.

edit – also “Call ! Call ! Call !:” esp. with the colon at the end, I like that.

SuperBraydix_3.iso

more than 10 megs smaller
powers off computer when browser quits
branded home page
fixed font metrics (yay!)
runs on a machine with 256MB RAM (unless you’re Bryan)
little Grub menu thingee may help with resolution.
Linux virtual terminal support (ctrl-alt-F1,f2,f3) so you can see what’s going on

SuperBraydix

So this is the latest n’ greatest of Braydix. Ah, that rhymes, kinda.

Here.

It has bits that look ugly, and the VGA detection isn’t very good, and it only works with Ethernet, but it works for me (not for Bryan, because he did something bad in a past life) on one of my two computers, and in VirtualBox. The font metrics are screwed up for some reason, too. And you can’t actually install it, it only runs off of the CD. It would be a trivial matter to make it run off a USB thumb drive, too, but I haven’t gotten to that yet.

As I mentioned in a previous posting, this is 33 or 34 MB, it’s just got a huge initramfs, and no root filesystem. This makes things soooo much easier. I think it messes with memory usage a bit, but it ran fine on a 256MB machine with, like, a Pentium 2 or some horrible CPU like that. The browser is actually the Qt demo browser – totally untouched by me (to the point that it still boots to a trolltech.com web page).

My next steps are probably to work on making it installable from USB, get better graphics drivers loading up, maybe get some wifi going…maybe fiddle with getting it to launch from /sbin/init, and get it to shut down without complaining. Oh, and get it to load/save bookmarks from Teh IntarWebz. All in due time, perhaps.

CSS vs. Tables II – The Tables Strike Back

Read this about CSS and tables – with a really good example. Finally, someone who can make the argument I haven’t been able to verbalize. Thank you.

edit – Maybe we can say ‘OK, I may still use tables – but NO NESTED TABLES!’. Once you’re nesting them you’re doing something pretty freaky. You’re going wayyyyyy too far into the positioning realm using tables. And maintainability is going to be horrendous. So, bad. How ’bout that?

Edit 2
<table>
     <tr>
          <td>cell1</td>
          <td>cell2</td>
     </tr>
     <tr>
          <td>cell3</td>
          <td>cell4</td>
     </tr>
</table>

vs.

<div>
     <div>
          <div>cell1</div>
          <div>cell2</div>
     </div>
     <div>
          <div>cell3</div>
          <div>cell4</div>
     </div>
</div>

No real difference in the tagfulness there, so what are you saving by avoiding the table?

Mac OS X good and bad & Braydix w/WebKit

I actually had a slightly not-unpleasant experience with Mac OS X, being used as a Unix server. Since I rail on how much I hate it as a server, I thought I would balance my own bias with a report to the contrary.

I was prepping a mini to run DJB-utilties – DNS, daemontools, Ucspi-tcp. It was not very painful to get them installed. I decided to run my stuff using launchd instead of daemontools, and that worked fine too. I tested it and killed some stuff and it came right back. Also tweaked the Postfix config to use some custom transports, and stay running – easy-peasy. No problems. Found some nice stuff on the internet about how to add users using something like dscl – and that didn’t hurt much at all. The odd piece of dated documentation here and there, but no biggee. Postfix was totally painless, just my weakness with that package that might’ve affected me if only slightly. I should note – and I bet this affects my report – that this was on a regular OS X workstation. When I used to program all day on a Mac OS X workstation which ran apache and php, I also had no problems from that setup.

And now to balance my prior balancing report – I also worked on a Mac OS X Server. And it fucking sucked. Again. Within days of my previous unhappy work with an OS X server – I think it was either Tuesday or last Tuesday – I’m working on another one that’s freaking out, and I can’t tell what’s going on, and the admin tools don’t work, and smoke is pouring out of the side of it, and gear teeth are flying out with sparks. It’s a mess. I keep wanting you to not hurt me, OS X Server, and you always do. Every time. I hate you. It’s like some horrible abusive relationship. I run away, seek counseling, go to a victim-of-abuse-by-os-x-server shelter, get my life together again, and then, months later, I think, “Hey, that OS X Server, he ain’t so bad…it was probably something I did, after all. I bet I can do better.” And then I’m making excuses about how I fell down the stairs and banged my eye into a doorknob again.

I also have redeveloped Braydix (as a necessity). Instead of building it against Firefox, I built it against WebKit, and saved literally 2 or 3 months of work. Holy shit! It’s no wonder that everyone uses WebKit as their base. My God, the difference! I also used the Qt toolkit, and was finally able to get rid of Xwindows, which I am sooooo stoked about. So the latest Braydix uses the Linux framebuffer and bops open a web browser right there. It boots up fast for me on my VirtualBox, but I sent an ISO to good ole Bryan and he wasn’t able to get it to do much without it panicking and dying. So a bit more work to do. Another thing I did was I jammed everything into the ‘initramfs’ and got rid of the whole concept of a root drive. Sooooooo freeing! And the result is a 33 MB ISO (which doesn’t yet work, but shhhhhh…). I’ve been trying to get it to run on this eeePC I have handy but so far, not quite. Just getting Grub on there was enough of a challenge. We’ll see how it goes.

Acceptance…and bargaining

So I’ve been running my last-ditch effort to back up the data of my dying MacBook Pro. It’s been running for quite a while – along the lines of two weeks. I’ve been getting the sinking feeling that it’s not going to work – of course the big “I/O Error” messages I get lead me to that, but also the rate of copying bytes off the disk is dropping drastically. I assume dd (the unix command I’m using) attempts to re-read the bad data several times before giving up.

So here are my current estimates:

The problem is that the copy started really slow, then it rapidly ran through 70 some-odd gigs of data, now it’s slow again. So it’s hard to gauge what speed it’s actually running at.

If the amount of bytes/second that dd says it’s getting is accurate (76k/sec right now, but each report is slower than the last…) then it will be complete: January 23 2008.

Ow. And as I said, it’s not even likely that it will finish at that speed, unless another batch of ‘fast disk’ comes up.

And I just timed how long it took to do a single block. By *that* estimate, it’s doing closer to: 4.97 (what the hell, let’s be charitable and call it 5) bytes per second. Bytes, ladies and germs. Bytes. At that rate, it will take: 1163 years for it to complete.

So, needless to say, I don’t think I’m going to be doing *that* one. And, hell, the January 23 option isn’t looking that attractive to me right now either.

I’m not going to stop it now, but it’s starting to seem like I need to make sure my data’s affairs are in order. I may have to pull the plug soon, and get some level of closure on this horrible chapter, and onto the new.

But, see, there’s that little glimmer of hope I insist on holding on to – I haven’t cancelled the backup yet. Why am I doing that? Well, the answer is easy, I haven’t fully accepted it yet.

But if I were to wait until the January 23 timeframe – I’d be just as bad off as if I managed to recover all my data – the loss of 30 days or so. And that date is by no means assured.

So, maybe I’ll keep it running and the next time I find myself going to the shop, maybe I’ll cancel the copy and close up the laptop for good. Or maybe I’ll pointlessly cling on to this last shred of hope. I certainly hope not. I think it seems pretty obvious that it’s time to move on.

Spinning magnetic disks of terror

So I feel like I’m going through the Five Stages of Grief. My lovely, wonderful MacBook Pro’s hard drive has just completely died, all of the sudden. It’s not the lack of a computer that I have problems with – though for anyone who knows me, it’s definitely a problem – my problem is with my data.

240GB or so (plus or minus) seems to be completely gone. There, one day, fine and dandy and operating well within tolerance, one firmware update – hey, maybe that’ll fix the odd once every couplea weeks hard-freeze issue I get now and then – and kerplow. I can retrieve a mere 300 some odd megs – Megs! – of data.

I have lots of work on that thing – and of course, having been making my way to a new machine from an old one, I don’t have backups. I am a medium-strength Unix guru, and have tried everything I could, but I can see the history of my emergency dd run – every single block is failing to copy after those first 300 some odd megs. It doesn’t look good. It’s 19 gigs of the way through a 240GB disk, with a bootcamp partition which I’d also like but can totally live without. So maybe 160 GB of real disk to contend with. It’s going to be running for days. and lots and lots of effort to recover zeroes isn’t going to help that much.

So yesterday was Anger. I think today looks like it’s Bargaining – “If I can just manage to save this one VM I had a lot of stuff in, maybe I will survive.” I’ll just have to slowly but surely make my way through the rest of the stages. Depression should be one of the next ones for me to look at, but I think some of that was yesterday. Perhaps I’m crusing through the stages at more of a reasonable pace than I thought.

One thing – kinda philosophical – that terrifies me here is that, at some point, we imagine the data on these strange, spinning platters is permanent. Or that we’ve “saved” our data to them. But we might as well be skywriting, in the end – the data won’t be there forever, and in the blink of an eye everything could be completely gone. How could you trust anything you care about to such a…capricious medium? Oh, I know. Skywrite it twice. I dunno, it sounds to me like that’s doing it wrong.

Well, I’ve been able to catch a failing disk every time before now – catch it fast enough and do my emergency copy-off of data, the whole routine, and end up without losing too much. But it looks like my good luck – or good Karma – or good ninjary – has run out. I guess it was about time that I get hit, and man did I get hit hard.

It may sound silly, but I feel afraid to store anything anywhere other than The Cloud again – my gmail account and Freshbooks accounts have luckily allowed me to continue being in business without much interruption. Perhaps this is the great big flashing sign that I need to focus on some of my network storage and booting things that I’ve thought were neat. Just pick up a shitty netbook with a serial port and I’m back up and running again, right? It’s too bad, some of those really great things you can do with lots of CPU power and RAM and speedy hard drives are pretty cool…but not so cool if your data is constantly at risk. Which it is – think about it – what if you lose your laptop? What if you drop it? What if you walk through a magnetic field? What if you, say install a trivial looking firmware update and your laptop just stops working? Then what? Well, better have good backups….whoops! I didn’t. Maybe I cursed myself by repeatedly inquiring about Time Capsules and getting one for cheap. In retrospect, I should’ve bought anything at all. A few hundred bucks feels like nothing to me right now. I already bought a drive to do my recovery on – and I didn’t even notice.

I remember hearing an MP3 of a tech support call – that the tech guys must have thought was hilarious – a distraught sounding guy calls tech support and mentions that his laptop was sent out for service and in the process of describing what has transpired, completely loses it on the phone and screams profanities. I remember being of mixed feelings when I heard that call – on the one side, as a tech guy, bonehead users are a pain, especially freaked-out bonehead users. But on the other side, I felt bad – “6 years of my fucking life!” was the phrase I heard. I think I’ve gotten away far, far easier. I’ve probably lost …oh, a month or two. A month or two of important time, that it’s going to hurt trying to recreate, but only a month or two. In some ways, a fresh start is an opportunity. Or, at least, that’s how I’m selling it to myself. Is that ‘Acceptance’, or ‘Bargaining’? Not sure.

So it’s probably going to be that I can save little bits of data I don’t care about, but the bulk of my stuff is gone. And I’ll probably just go back to using my new MBP, when it comes back from The Shop. But, in the meantime, while I’m computerless and a digital vagabond with no data, I will at least ponder the deeper meaning within The Cloud…

8MB and 10 minutes – proof of a very nerdy concept

I like the idea of booting from a webserver. I’ve always thought this was a cool thing. So I made a new leeeeeetle teeny tiny version of Braydix that actually boots from The Internet. The idea sounds easy, but it’s actually really hard – and it takes forever before it finally finishes booting. I timed it by looking at the server logs and it took 10 minutes before I had a working web browser.

I guess I can go over my decisions backwards – from the end to the start of Boot. I used the latest ISO of Braydix and threw it on a Server to boot from. I used ‘httpfs’ to mount that ISO somewhere, and then mounted that file using a ‘loopback’ option. I had to build a completely custom initrd to do all this with, I started from the CentOS default one and ended up completely scrapping it and building my own from scratch, using Busybox. I grabbed all of the Networking drivers (only!) from /lib/modules and and put them into my new initrd, and I also needed ‘fuse’ (for httpfs) and a filesystem loop module. I made Busybox do the few, measly little things that I needed to get done to be able to mount an ISO – modprobe a network connection, modprobe fuse, a mini-dhcp client, a little teeny shell – it’s great. I have no idea why RedHat bothers with their Nash shell – busybox crushes it. And I used Grub for making my CD bootable – I’m still having problems having it run through the grub.conf automatically, it keeps making me specify stuff. But maybe I’ll fix it and make the ISO URL a boot-time parameter that the user has to put in? That could be interesting.

Anyways, I’ve been poking at this for a week or so, and I just booted for the first time, so I wanted to mention it.