Category Archives: Uncategorized

Why Apache Harmony is important

I believe that a high quality open source Java implementation is important for many reasons, but there is one that overrides all others. I think that having a Java runtime deeply integrated into the Linux application stack both guarantees the future of Java on the desktop and is the only reasonable way for the Linux desktop environment to compete long term with Windows and Mac OS.

The alternative approach (Mono) is a nice technical platform. Politically it just doesn't make sense, though, because it ties Linux's future to that of its biggest competitor. Java, on the other hand is controlled by a company who is a long-term major contributor to open source projects and has committed both programmers to work on them and patent portfolios to help defend them. It is true that Sun could help by open sourcing its class libraries, but not doing that is a commerical mistake Sun has the right to make.

(Note that only neither IBM nor BEA nor any other Java vendor can solve the problem by open sourcing their JVMs, because they all sub-licence the class libaries from Sun and thus do not have the rights to open source them)

Anyway (as though I aren't already overcommitted with “projects on the side”): The Unofficial Apache Harmony Blog is something I plan to keep updated with regular status reports for those of you who don't want to deal with the mailing list traffic.

Quoted in ZDNet

Apparently I'm a “local software developers who works with open-source solutions” (Also on Builder.au).

Seriously, though – it's good that the Australian government is trying to encourage open source, but that licence is pretty extreme. For example, this clause is what made me say I wouldn't touch it in any circumstances:

You must Notify Squiz.Net within 30 days of making any Modifications even if You do not intend to distribute those Modifications. Notify is defined in Clause 4.2 below. If Your Modifications are incomplete, You must still Notify Squiz of the status of your progress not less frequently than once every 30 days.

In theory I'd prefer to just pay than put up with having to deal with crap like that – although I suspect in practice I'd just use something else.

Argos: A Search Engine API Release 0.1

Argos Release 0.1

Announcing the inital release of Argos: A Search Engine API.

This 0.1 release should be regarded as an Alpha release. The API may change
during later releases and this release may contains bugs.

About Argos

Argos is an open source (Apache licenced) Java library for accessing the search
APIs provided by internet search engines. It provides a consistent, extensible
and easy to use API, while supporting advanced features such as a paged request
model and a simultaneous search across multiple engines.

Argos currently supports the following search engines:

  • Blogdigger
  • Del.icio.us
  • Feedster
  • Google
  • Google Desktop Search
  • MSN Search
  • Technorati
  • Yahoo

For more information and downloads please vist http://argos.dev.java.net/

On "Hackers and Painters"

Paul Graham is a good writer, but many of his essays annoy me because they assume his experience is the only valid way to program. That's why I loved it when Maciej Ceglowski (who can both paint and program) called him on his Hackers and Painters essay.

I am not qualified to call bullshit on Paul Graham when he writes about programming, history, starting a business, or even growing up as a social pariah, but I do know enough about art to see when someone is just making shit up.

From Dabblers and Blowhards

Tim Bray & JXTA

Looks like Tim Bray has discovered JXTA (or at least that what I'd put money on).

While he's looking at that perhaps he could explain why Sun have two very similar technologies (Jini & JXTA), both of which are hard to get started with and neither of which has seen the adoption they deserve.

Speaking of Java P2P packages that are hard to use – it's a pity that Bamboo-DHT has gone SO overboard in its use of JDK1.5 features, in particular static imports. “Gee look Mom – now I can simulate global functions. Yay!”. Plus, it requires make and Perl to build. Oh the humanity!

BulletML

Since it is obvious that bullet barrages are a software engineering artifact that should be reused, it's good to know there is an XML dialect which describes them.

Quote:

BulletML is the Bullet Markup Language. BulletML can describe the barrage of bullets in shooting games. (The storm of Progear, Psyvariar, Gigawing2, G DARIUS, XEVIOUS, …) There are many advantages for using BulletML.

  • BulletML can describe the complicated barrage of bullets in recent shooting games easily.
  • BulletML demo applet is available. Write BulletML document, and check it on this applet.
  • BulletML is XML-based language. It offers data portability and reusability.

From http://www.asahi-net.or.jp/~cs8k-cyu/bulletml/index_e.html

Allegations that Google has jumped the shark unfound

Well that's one way to respond to shark jumping allegations (and to Yahoo finally upgrading their email to 1 Gigi).

BTW, what is it with everyone claiming that “only a few people use 1G”? My main (non-Gmail) work mail account has a few hundred meg archived already, and I've only been there since January. At my previous work I had nearly 5 Gig of mail archived (4 years of keeping everything).

I had to unsubscribe a number of mailing lists from my @apache.org address because I foward that to my GMail and it was filling up too quickly – it got to 400M before I deleted some archives. Now I've got 50M in my GMail account and I'm annoyed at how difficult it is to keep organized. (Of course it is hugely better than any other web-based mailing client, but for high volumns of mail it just is too much work)

(And since I'm talking about the jumping the shark article it's not as clear cut as it says that Yahoo's search API is better than Google's. I've been working with a number of engines APIs lately and there isn't a lot to choose between them. A REST interface to Google is the only thing it is missing – but Yahoo doesn't have the SOAP interface, so you can argue that both ways)