Older blog entries for sab39 (starting at number 78)

O noes, somebody I don't like did something I agree with!

I'm not sure what the psychology behind this is, but it seems to be a fairly common reaction. I noticed it today on MJ Ray's blog where - as far as I can tell - he's upset that the Conservative party, whom he doesn't support, are advocating Co-ops, which he does support. (I know that's an oversimplification of mjr's position, but hopefully it's not an outright misrepresentation of it. mjr, if you're reading this, feel free to comment to clarify and I'll update this).

I can only presume that it's the same thing that ensures that every time Microsoft does something pro Open Source / Free Software, there'll be a furious post on Groklaw about it.

Or why people who for years have hated the way the MPAA and RIAA treat their creative talent are now annoyed that the Writers Guild of America is standing up to them, because the WGA is a union and unions are baaaad.

I suspect that the temptation to react this way is similar to the temptation to flip the bozo bit on people. Instead of deciding that the person is an idiot and therefore can't possibly have anything useful to contribute - and so can be ignored - we decide that the person (or group) is evil and anything they do must be outright harmful and must be opposed.

In reality not even a single person is ever completely useless or completely "evil"; everyone will at some point have an idea that's worth considering or an opinion you agree with. And that goes double if there's more than one person involved - any large organization, in particular, will probably have some subgroups that you agree with more often than not. Recognize when you have common ground even with people you normally disagree with. That's a vindication of your ideas, not something to be upset about, surely?

Syndicated 2007-11-08 23:18:52 from sab39 ... Blog

The good, the bad and the Gutsy

So yesterday I upgraded my main work machine to Gutsy. The upgrade finished just as I was leaving last night so I've spent a limited amount of time using it so far, but enough to form some definite impressions.

The Good

  • The icons are much nicer. This is especially noticeable in Gaim, which has had a rather radical re-theming. It will take a little getting used to but I already appreciate the improved consistency.
  • Performance seems better, the display seems less glitchy, and my music (in Rhythmbox) no longer seems to cut out every time I do anything intensive like switch virtual desktops. (My video card driver can't handle the fancy bling though, so I don't have desktop effects).

The Bad

  • Not related to Gutsy as such but a longstanding pet peeve with the upgrade tool: the estimated download time remaining is based solely on the rate for the last 5 seconds or so of downloading, and this fluctuated for me between 20Kbps and 80Kbps - several times a minute. Would it really be so hard to take into account a rather longer period to get a more realistic estimate? I shouldn't be seeing the time go from 2 hours 30 minutes to just 45 minutes - and back - within a span of 30 seconds.
  • Also in the upgrade tool - there was a message saying the upgrade couldn't be cancelled once you started it, and then there was a cancel button that remained active during the download phase. I didn't want to cancel, but if I HAD, I'd have been very scared to click that button after being told I couldn't.
  • My virtual desktops no longer honor the setting that lets me arrange them in more than one row. The setting is still present in the user interface and the value is still saved - but it has no effect on the actual desktops. Since I use Brightside to enable edge-flipping, and frequently flip up and down, that's a BIG usability regression for my setup.
  • My gdm theme went rather strange. I wasn't using the default, but I was using one of the themes that are installed by default. Those shouldn't break on an upgrade!
  • I no longer get any kind of visual progress indication during login - just a blank screen until the desktop comes up.

The Ugly

  • When I arrived this morning my screensaver had activated. Good. And I like the new "leave message" button. HOWEVER, when I typed my password in (perhaps incorrectly), it went to "Checking..." and STAYED THERE. For at least ten minutes. Eventually I Ctrl+Alt+Backspace'd and as expected X died (this isn't exactly a good feature when the screen is supposed to be locked, but helpful in this situation), but it didn't come back up. Ctrl+Alt+F1 to get to a text terminal, login, sudo /etc/init.d/gdm restart ... nothing. In fact the terminal hung and things like Ctrl+C or Ctrl+Z to kill the command were ignored. Ctrl+Alt+F2, login again, sudo shutdown -r now ... same nothing, same hang. Had to hard-reboot. And now I'm rather scared about what happens next time my screensaver activates...

I really hope that at least the virtual desktop issue and the screensaver issue get solved quickly! The improved performance and nicer visuals would make this a nice and worthwhile upgrade for me, but those two issues make it a definite downgrade instead. For now.

Syndicated 2007-10-19 12:58:50 from sab39 ... Blog

You're a circle!

Usually, Alexa and Luke come over every weekend, alternating between just Saturday morning and the whole weekend from Friday night to Sunday. They really seem to enjoy their trips to "Daddy house" which of course makes me very happy. Here are some random bits of cuteness from the past few months.


Luke threw a bowl of chili on the floor when he was done eating it and got it all over the carpet. So I was rather annoyed and being all stern mean Daddy, and told him he had to sit in the chair until I was done cleaning it up, and THEN he'd go in timeout. So after ten minutes of me grumpily going over the large area of carpet that was splattered in chili, trying to get it clean, muttering under my breath (and still not close to finished) he looks at me and says in the sweetest innocentest voice - "Hey! Daddy house! Watcha doin?"

(Yes, he still went in timeout as promised. But I was a little less grumpy after that)

***

After Alexa gets done in the bath I get her big fluffy yellow towel and start drying her off. When I get to her face I make a big show of drying her face off all energetically, especially her nose. Then I start drying off the rest of her. But every 5 seconds during the process she giggles and says "Nose, please!". And I have to dry her nose again.

Or sometimes I'll just grab it and hold it until she wriggles free, just for fun :)

***

Luke was still taking a bottle at night up until a few months ago, and it got to the point where that particular battle needed to be fought. So during the day I explained to him he was a big boy and didn't need a bottle any more, and asked him to put his bottles in the trashcan, which he dutifully and happily did. Then bedtime came around and as soon as he was put into bed he started crying for a bottle. The conversation went something like this:

Luke: "Want bottle!"
Me: "You can't have a bottle, Luke, you threw them away because you're a big boy, remember?"
Luke: "No! Tiny baby!"
Me: "But tiny babies don't get to ride on the choo choo trains, do they?"
Luke: "No"
Me: "And tiny babies don't go to the playground, do they?"
Luke: "No"
Me: "And tiny babies don't get to play with cars do they?"
Luke: "No"
Me: "So you're a big boy, right?"
Luke: "Right"
Me: "And you don't need a bottle, right?"
Luke (crying again): "Want bottle!"
Me: "You don't need a bottle, cos you're a big boy!"
Luke: "No, tiny baby!"
Me: "I think this conversation is going in circles."
Luke (uber whiny): "YOU'RE a circle!"
Me (leaving the room while valiantly trying not to crack up): "Goodnight, Luke, I love you."

***

Alexa has learnt that if she hurts herself she'll get a kiss better. Of course if she ASKED for a kiss she'd also get a kiss, but she prefers to come up to you like this:
Alexa: "Hurtcha elbow"
Me: "Awww" *kiss*
Alexa: "Hurtcha leg"
Me: "You hurt your leg too? Awww" *kiss*
Alexa: "Hurtcha nose!"
Me: "I don't think you really hurt your nose, you just want kisses" *kiss*
Alexa: "Hurtcha fingers! Hurtcha feet! Hurtcha cheeks!"
Me: "Now you're just being silly." *kiss* *kiss* *kiss*

***

Me: "Luke, drink your juice."
Luke: "I can't WANT to drinka juice!" ("can't want to", I love that, as if he'd really LIKE to want to, but just can't)
Me: "Why not?" (this was one of Luke's favorite phrases at the time, I thought I might outsmart him by turning it around on him)
Luke: "Cuz... NO!"

(oh, and this also seems like the best place to mention what he says when he really DOES want to drink what he's been given. "This is very thirsty!")

***

I was reading them "Love you forever" and on one of the pages the little boy in the story has left a dirty handprint. Luke pointed at it and said "A clue!"

***

One more. Luke again (Alexa is just as adorable, but since Luke's language development has now clearly surpassed hers, she's adorable in less verbal ways, that are less bloggable). I'd been watching some Thomas the Tank Engine (or "Thomas the train!") videos with them on Youtube and then we had lunch. While I was making lunch I merrily sang the Thomas theme music.

Luke: "Stop singing!"
Me: "I can't sing? Why not?"
Luke: "Cuz... no singing!"
Me: "But I want to sing!"
Luke: "No singing Thomas the Train song!"
Me: "Ok, what can I sing? Can I sing this?" *starts singing one of the songs from OMWF*
Luke: "No singing Buffies!"
Me: "How about, can I sing this?" *starts singing some Ben Folds*
Luke: "No singing!"
Me: "Ok then, what can I sing, Luke?"
Luke (thinking hard): "Hmm... sing... Thomas the Train song!"

Syndicated 2007-09-28 23:19:23 from sab39 ... Blog

The reinvigoration of Classpath?

(Disclaimer: I'm just observing all this from the sidelines; my opinion is almost entirely derived from Planet Classpath and the Classpath mailing lists. If I'm wrong on some salient point, please comment and let me know!)

I'm very pleased to see that the Classpath project seems to be picking up some of the steam it lost on the announcement of OpenJDK. I have mixed feelings about OpenJDK itself: on the one hand, Sun did exactly the right thing by releasing the JDK under the best possible choice of license as we'd all wanted for years; on the other hand, I've seen at least two blog entries on Planet Classpath in the past week that were variations on "hooray, the trivial patch I submitted to OpenJDK the week it was released has been accepted a mere three months later!"

IcedTea appears to have picked up some of this slack and last I heard had built a mostly-working Java implementation by plugging in Classpath code to fill the holes in OpenJDK. Haven't heard much about it lately though - has development stalled or are people just not blogging about it?

However, part of me feels that IcedTea is approaching the problem from the wrong end. The code that the Classpath developers have labored over for ten years deserves a higher place than being used as filler to patch the holes in an inferior, ex-proprietary codebase. I'm not trying to argue that Sun's code is "bad" or that Classpath's code is perfect, but I do know that code developed in the bright light of public view, with no schedule pressures other than "when it's right", is invariably higher quality than code developed inside a large, bureaucratic organization with constant pressure to ship to a deadline. The fact that these things have historically affected Java's development is apparent in the public API: public members whose types are nonpublic, public RCSID fields, serialVersionUID fields defined on interfaces.

The difference is apparent in the sheer size of the codebases - the JDK is several times the size of Classpath, despite Classpath providing the vast majority of the same level of functionality. (I'm actually considering sticking with an older version of IKVM for this reason - file size matters when you're building an installer that's being shipped over the network). It's apparent in the fact that Classpath has a clean API for targeting multiple VMs including VMs for which native code is unnecessary, where the JDK's VM interface is internal and relies heavily on native code.

It seems to me that there would be a lot of value in approaching an OpenJDK / Classpath merge in the same way the libgcj and Kaffe merges were approached: compare the code on a class-by-class basis, bring in whichever implementation is best, and change it if necessary to account for things the other implementation did better. My gut instinct says a lot more Classpath code would survive that process than is surviving today in IcedTea - and the end result would be significantly smaller, cleaner, faster and bug-free-er.

I don't know whether the copyright ownership issues have been resolved yet to make it possible to actually pull OpenJDK code directly into Classpath though.

Regardless of what approach ends up being taken, though, it's good to see work happening on Classpath again, and a new release being contemplated. I guess it means I need to get those darn Japi runs happening again though!

Syndicated 2007-09-21 12:47:07 from sab39 ... Blog

Confused but Japi

The Japi runs for the last couple of days have gotten very confused. Yesterday they started believing that JDK7 had no classes in it; now they seem to believe that Classpath doesn't.

I'm not sure what's going on just yet, and I haven't yet had time to do any actual investigation. In the meantime, I killed today's run as soon as I noticed what was going on; no Harmony results today because I'm almost sure they'd have been bogus anyway.

I'll keep you posted.

Syndicated 2007-09-20 11:05:09 from sab39 ... Blog

Let's moon 'em!

I make no secret of the fact that I'm really excited about the private sector finally getting into the spaceflight business. I consider SpaceShipOne's historic flight to win the X-Prize to be one of the more significant historical events in my lifetime. Watching SpaceX's Falcon rocket almost reach orbit gave me chills. If one day I get the chance to ride Virgin Galactic to a Bigelow space hotel, I'm SO there. And mankind just bloody better have colonized Mars by the time I die or I'll be pissed.

When the rumors started about a new X-Prize I was assuming that it would be for orbit. After all, as critics were quick to point out, SpaceShipOne's achievement, while impressive, was a LONG way short of what orbit would require - and orbit is kind of a prerequisite to getting anywhere else.

But nope. With the help of Google they've gone one better - the new X-Prize will be for putting a robotic lander on the moon. Impressive! I wonder how long it'll take to be won...

Syndicated 2007-09-13 16:45:02 from sab39 ... Blog

Dawn, the Alpha Dog

One of the men I admire most in this world is my friend, Adam Dean. Despite being born with cerebral palsy, resulting in a speech impediment that limits the number of words he can actually physically say to almost single digits and a right arm he's entirely unable to use at all, Adam never thinks of himself as "disabled" and has achieved more than many "able-bodied" people even aspire to. He lives alone, doing all the day-to-day chores he needs to do for himself (just imagine doing all your chores one-handed). He has a very successful career as a lawyer, using a speech synthesis device (think Stephen Hawking) to communicate. On a personal note he's a loyal and generous friend. And now he's also a published author.

Adam's first book, "Dawn, the Alpha Dog... and Related Stories", is now available. The book is billed as a collection of short stories, but for the most part it reads as one coherent story told as a series of moment-in-time snapshots over the course of a relationship. It's well written and an engaging read, with characters that you can believe in and root for - or sometimes against.

The stories are written in the first person, and Adam gave the protagonist the same disability he has. One of my favorite aspects of the book was the inclusion of little asides that give insight into what it's really like interacting with other people when something as "simple" as speech is a significant effort. But at the same time the story is universal; the real communication issues in the story are the same ones anybody would face in Adam's character's situation.

I found the book to be strongest when it was telling a continuing story, and weaker in the occasional moments it lived up to the "collection of short stories" billing. One of the stories doesn't feature Dawn at all; it was a good story in its own right but felt out of place in the context of the book. Another focuses primarily on the protagonist's struggle against a (perceived) vice, with only a tangential connection to the relationship with Dawn. It's perhaps not fair to fault the book for the times it's exactly what it claims to be, but I can't help feeling that those pages would have been better spent fleshing out the main storyline.

My only other complaint about the book is that it's too short - I'm just greedy :)

Adam will be doing a signing of the book at Empire Books in Pullman Square, Huntington, WV, at 4pm on Saturday August 25th. I don't think my blog has many readers who happen to be in the Huntington area that don't already know Adam, but just in case...

Syndicated 2007-08-16 14:21:49 from sab39 ... Blog

Let us think the unthinkable

"Come," he said, sweeping through the door to where Miss Janice Pearce sat glaring at a pencil, "let us go. Let us leave this festering hellhole. Let us think the unthinkable, let us do the undoable. Let us prepare to grapple with the ineffable itself, and see if we may not in fact eff it after all."
-- "Dirk Gently", "Dirk Gently's Holistic Detective Agency", by Douglas Adams.

One of my favorite Adams quotes, and the reason for the new tagline on my homepage. According to Google I'm about the 14,101st person to use the phrase, but I don't think Mr. Adams will mind.

Syndicated 2007-08-07 00:44:53 from sab39 ... Blog

Curse you, thermodynamics! You win again!

It's well known that the laws of thermodynamics forbid the creation of a "perpetual motion" machine - that is, any device that can run forever without any external power source. Many attempts have been made to get around this, but they've all proven to have some fatal flaw.

Many creative thinkers believed that the problem had finally been solved for good with the design of the CBTD, or Cat Buttered Toast Device. I first heard of the CBTD at least fifteen years ago. This ingenious creation is based on two laws of nature even more inviolable than those of thermodynamics:

  • A piece of buttered toast, dropped on the floor, will always land buttered-side down.
  • A cat dropped on the floor will always land on its feet.

The CBTD consists, quite simply, of a piece of buttered toast strapped buttered-side up to the back of a cat and dropped on the floor. By the laws of the universe, it cannot land cat-side down because then the toast would be buttered-side up, but it can't land toast-side down because then the cat would not be on its feet. The CBTD must therefore hover above the floor, spinning endlessly trying to resolve the dilemma.

Many scientists have pondered the CBTD over the years and almost all have come to the conclusion that it is indeed flawless - the holy grail of a perpetual motion machine has finally been discovered. (Animal rights activists have, sadly, succeeded thus far in preventing any experimental verification).

In the past 24 hours, however, research into the matter by a new entrant in the field has led to an extraordinary breakthrough, proving indisputably once and for all that the CBTD is doomed to failure. Careful observation of many cats has led to confirmation of the radical notion that cats like the taste of butter. Therefore, when strapped to a piece of buttered toast, the cat (possessing as it does considerable flexibility and a keen sense of smell) would inevitably lick the butter off the toast. Thus, the CBTD can only spin a few dozen times in mid-air before the toast, deprived of butter, becomes free to land either way up.

Thermodynamics has foiled us again! But it will be defeated eventually. After all, it was widely believed that nothing could travel faster than light, until that was firmly disproved - to the disappointment of scientists and normal human beings alike - by the discovery of PHSVT (Paris Hilton Sex Video Theory).

Syndicated 2007-08-06 17:44:37 from sab39 ... Blog

Upgrade

My blog is now running on cmScribe 5.0. This will mean nothing to most people reading this, but it's a big deal to me, because in 5.0 I managed to achieve a whole lot of things that have been goals of mine for cmScribe since before it had a name, and before anyone else who still works at NetReach now was even employed there. Except for Will but he cheated by leaving and coming back.

The upgrade process is fairly seamless but under the hood everything's changed. As well as running on .NET 2.0 (we could run on 3.0, but since the two are identical, why bother?) we're taking full advantage of the new capabilities of the 2.0 version of the framework: every ArrayList and Hashtable in our code has been replaced by a List<> or a Dictionary<> and our custom-coded nullable type wrappers have been replaced by the framework's Nullable<>. Instead of a kludged-together build process, we integrate nicely into Visual Studio's build process using msbuild. We've moved from SourceSafe to Team Foundation internally. And taken advantage of the fact that msbuild and tf are true managed applications by replacing all our hacky vbscript, perl and bat scripts for branching, upgrading and pushing with a single C# application.

The change that's most interesting to me is that in 5.0 we've managed to make cmScribe truly modular. We had something like modules before, but everything got compiled in one go into the same assembly, so there was no way to enforce rules about what code depended on what (except for me going over to people's cubes and saying OMGWTFBBQ at them). We also had a nasty habit of adding customizations to individual customer installations of cmScribe by changing files that were part of cmScribe itself; this was expedient but always caused issues when it came time to upgrade to a newer version.

Today, each module is built separately; dependencies are declared explicitly (and circular dependencies are impossible). And we've added - and enforced the use of - mechanisms to customize the behavior of cmScribe panels by adding extensions to them, rather than changing the original. The extensions typically live in a separate module from the panel being extended, so the base cmScribe modules are used unchanged.

The end result being that cmScribe modules are strictly separated from each other, and customer customizations are strictly separated from core cmScribe code.

Next up: trying to convince the Powers that Be that building a community of developers around some of the cmScribe core modules is possible and valuable and that liberty is the best way to achieve that :)

Syndicated 2007-06-09 20:57:47 from sab39 ... Blog

69 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!