Older blog entries for pjones (starting at number 145)

It's that time again.

Every once in a while, I have to note that the Tropical Fish Song does not have enough representation on the Internet.

To help correct this problem, I have also posted a link on my people page.

previously

Syndicated 2008-04-09 06:41:25 from THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE

Hrmms. Am I the only one who thinks that Goats is setting up the Bartender to pose as the archvillain vis-à-vis Jon?

Syndicated 2008-04-09 05:52:59 from THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE

22222222222222222222222222222

So, this month's adderall prescriptions...

... they're script numbers N222223 and N222224. So close, and yet so far away.

Also, CVS has changed their script labels this month. It's one single printed label now, without any unnecessary add-ons to remind you to be careful about this, that, or the other. For the first time ever, I received no "DO NOT USE WHILE BREAST FEEDING. CONSULT YOUR DOCTOR OR RPH." label.

I really, really hope I never have to breast feed anybody.

Syndicated 2007-03-14 05:54:12 from THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE

thinkpaddy goodness


thinkpaddy goodness, originally uploaded by atbash.

So, I finally "fixed" my laptop ;)

Syndicated 2007-03-02 21:16:15 from THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE

Somebody, I forget who, posted a link to this article. For the most part it's pretty good. I just find one thing really weird.

Just the first line, really.

A new computer-based technique could eliminate hours of manual adjustment associated with a popular cancer treatment.
Hey man, check out the new cancer treatment I'm getting. It's so hot.

Syndicated 2007-02-07 06:19:22 from THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE

OK, seriously, wtf does BLK600SMPAK10 mean?

This is not the best table ever:

Syndicated 2007-01-18 04:57:12 from THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE

I could not forsee this thing happening to you

It's time again for another edition of "songs I never would have expected to work together, but were totally proven to work through random ordering".

  1. Sabbath - A Bit of Finger/Sleeping Village/Warning
  2. Stones - Paint It Black
  3. Cure - Three Imaginary Boys
Yeah, I never would have figured it.

Syndicated 2006-12-07 07:10:30 from THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE

This is not 'Nam. This is C. There are rules.

I was going about my day earlier, when [info]spot sent me an IM asking for help with one of my favorite programs. Apparently, it was failing quite spectacularly on sparc, and he was having some trouble making the machine give useful debug data.

After a bit of hacking on it, I found this wonderful nugget:

int label_read(struct device *dev, struct label **result)
{
        char buf[LABEL_SIZE];
        struct labeller *l;
...
        if (!(l = _find_labeller(dev, buf, &sector)))
                goto_out;       
...
}
...
static struct labeller *_find_labeller(struct device *dev, char *buf,
                                       uint64_t *label_sector)
{
...
        struct label_header *lh;
...
        uint64_t sector;
        int found = 0;
        char readbuf[LABEL_SCAN_SIZE];

        if (!dev_read(dev, UINT64_C(0), LABEL_SCAN_SIZE, readbuf)) {
                log_debug("%s: Failed to read label area", dev_name(dev));
                goto out;
        }

        /* Scan first few sectors for a valid label */
        for (sector = 0; sector < LABEL_SCAN_SECTORS;
             sector += LABEL_SIZE >> SECTOR_SHIFT) {
                lh = (struct label_header *) (readbuf +
                                              (sector << SECTOR_SHIFT));
...
                list_iterate_items(li, &_labellers) {
                        if (li->l->ops->can_handle(li->l, (char *) lh, sector)) {
...
}
Where li->l->ops->can_handle() winds up being...
static int _pool_read(struct labeller *l, struct device *dev, char *buf,
                 struct label **label)
{
        struct pool_list pl;

        return read_pool_label(&pl, l, dev, buf, label);
}
...
int read_pool_label(struct pool_list *pl, struct labeller *l,
                    struct device *dev, char *buf, struct label **label)
{               
...
        struct pool_disk *pd = &pl->pd;

        pool_label_in(pd, buf);
...
}
And elsewhere we find:
struct pool_disk {
        uint64_t pl_magic;      /* Pool magic number */
        uint64_t pl_pool_id;    /* Unique pool identifier */
        char pl_pool_name[POOL_NAME_SIZE];      /* Name of pool */
...
}
...
#define CPIN_64(x, y) {(x) = xlate64_be((y));}
...
void pool_label_in(struct pool_disk *pl, char *buf)
{
        struct pool_disk *bufpl = (struct pool_disk *) buf;

        CPIN_64(pl->pl_magic, bufpl->pl_magic);
        CPIN_64(pl->pl_pool_id, bufpl->pl_pool_id);
        CPIN_8(pl->pl_pool_name, bufpl->pl_pool_name, POOL_NAME_SIZE);
        CPIN_32(pl->pl_version, bufpl->pl_version);
...
}

Who wants to play "hunt the SIGBUS"?

Just think. Somebody was paid real money to write this. The mind boggles.

Syndicated 2006-11-29 21:42:13 from THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE

My moment of Zen.

So, reading through some code today, I came across this bit:

pvh_dlocn_xl->offset = xlate64(UINT64_C(0));
pvh_dlocn_xl->size = xlate64(UINT64_C(0));

That is all.

Syndicated 2006-11-22 22:02:30 from THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE

136 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!