Wednesday, May 21, 2008

Accessing External Card of Palm T5 on Windows XP

I had a weird problem with my Palm Tungsten T5. When I had plugged it into my Windows computer, only the INTERNAL drive would show up in the file explorer. The external SD card wouldn't be accessible. The KB entry 8500 from Palm support lead to the solution: The system was trying to give the card the drive letter H but that was already occupied by a network drive.

After giving the external card a different drive letter in the drive manager, everything worked as it should.

Tuesday, May 20, 2008

Monday, May 19, 2008

P2: A Lot of Pain, No Gain

If you're an Eclipse user, you probably heard of p2. There seems to be two groups of people: Those who adore it and those who hate it. I'm in the latter group. Here are my reasons:

  1. Where do I get the installer? There is no explanation on the Getting Started page. Try this link.
  2. The 3.4M7 release doesn't even start on Windows because it's broken.
  3. The installer fails if the directory to install to doesn't exist, yet. Hey, it will be fixed after the 3.4 release!
  4. When I tried a shared install, it crashed. That's supposed to be fixed but I didn't dare to try again.
  5. Not enough? Well, if any of the downloads times out, you have to delete the install directory and download everything again (Bug 231826).

So I've downloaded four (4) versions of P2, tried them and all of them failed before I could even start Eclipse.

Banana-ware: Harvested before ripe, delivered green and ripes on the customer's computer.

Thursday, May 15, 2008

Sunday, May 11, 2008

Link: "Karl Fogel explains how to herd cats"

See this post in Paul Harrison's blog.

It basically explains the biggest mistakes in leading an Open Source Software (OSS) project.

The Source of Life

Remember Conway's Game of Life?

This video from YouTube made follow a trail of pages until I ended up here. Don't bother to follow the link if you're still surfing with IE.

After playing with the page for some time, try this link. It will start Ghost Diagrams with a special set called Rule 110. According to this page, Rule 110 is actually "a cellular automaton known to be capable of universal computation."

An image says more than a thousand words (if you can't see it, you're using the wrong browser):

What does this look like? Chaotic yet orderly. The order is not only because of the shape of the tiles. When you watch it grow, you see order and chaos grow, fight with each other. For me, it looks a bit like evolution. It has a memory (the part of the shape that doesn't change), you can see parts grow up and break down, patterns emerge and vanish.

This mimics atoms and molecules which are also way to simple to "understand" what they do. They just arrange in patterns which make "sense" (for an atom). And after 14 billion years, the human who wonders how such simple rules could create something as wonderful as the spark of understanding.

Thursday, May 08, 2008

Complexity Budget

Are you a human? If not, then this is probably not for you.

If you are, then you have a "complexity budget". I define it a little bit differently than the author of the article. My definition is that you can spend only so much on understanding something. Example. What does this little C program do?


It prints the primes below 100. And it blows the complexity budget. C++ also often blows the complexity budget. A friend of mine once said: "To understand C++, you have to be a C++ compiler."

Java once was a simple language but the wise guys with a sun-burn (from being exposed too long to the sun, get it?) decided to do something about it and came up with Generics. And since they weren't sure that this would indeed make the language too complex, they added annotations on top of that. Excellent move!

But it didn't work. There are still too many people who use and understand Java. So they came up with JSR 308 which allows you to use annotations in even more places to write code like this (from this article):

@NotEmpty List<@NonNull String> strings
        = new ArrayList<@NonNull String>();

If that doesn't do it, nothing will.

On a positive side note, in Groovy, I can not only register an annotation processor (AP) in the compiler, I can even manipulate the AST from the AP, allowing to create code like this:

def load(long id) {
    return """select * from demo_table where id = ${id}""";

That doesn't return a string but an object of type DemoType filled with the data from the database. Life can be so simple.

And to the guys from Sun: Thanks a lot! We really appreciate your help! :-)

Links: Article by Michael Nygard about JSR 308

Tuesday, May 06, 2008

My First 1TB Harddisk

I just bought my first 1TB harddisk (Samsung HD103UJ).

1 Terrabyte

My first HD was a 100MB harddisk for my Amiga. That was roughly 18 years ago. 100MB was an insane amount at that time.

Today, recoding one eposide of a TV show as MPEG 2 Transport Stream takes 13.6GB. Gigabytes! At PAL resolution!

I wonder how long it will take until I can buy a 10 TB disk. My bet is 2013.