Google’s Android is out!

Video introducing it:

http://youtube.com/watch?v=1FJHYqE0RDg

SDK is available, and all free software (or will be shortly, at least):

http://code.google.com/android/

The GUI API is not like MIDP2.0, so it’s not compatible with existing J2ME apps, like Hecl. Hrmph. Seems like Java 5 constructs are supported (I also wonder what those hex addresses are doing in there):

http://code.google.com/android/intro/hello-android.html

In any case, very interesting, and very cool. It certainly changes things a lot, though – until this becomes commonplace, it will just add to the number of platforms that need to be supported, which might actually make life tougher for a while. All things considered, though, you can’t complain about getting something that cool under an open source license!

Javascript fiddling

I’ve been playing around more with Javascript, as it seems to be increasingly important for doing interesting web applications.

I wrote this stupid hack over the weekend:

http://www.dedasys.com/pagedump.js

Which you can test here (warning: it kills the page you’re on, so if you’re reading this from a feed reader or something, becareful).

meltdown

There is, however a serious problem – the above code crashes Internet Explorer, so please use caution when running it. I can’t figure out what the problem might be, as it works ok in Firefox and Konqueror. Now I remember why I didn’t like Javascript before – “it’s the implementation(s), stupid!”. Advice appreciated.

Programming Language Popularity

My latest fun project:

http://www.langpop.com

Of course, the results aren’t very scientific, but they’re interesting, nonetheless. I’ll be adding some more charts like trends once I have data over a few months.

I ran some similar stats a few years ago, but this time I’ve geared up to automate the whole process, so results should be updated regularly, once everything is up and running.

Seinfeld on the word “blog”

Jerry Seinfeld on The Daily Show:

Is that the worst new word of the culture, blog? It’s so unattractive. It’s like something that you spit up and its, it has like, it congeals, and is, you know, and you kick dirt on it.

I couldn’t agree more. I’ve always disliked the word, although to me it sounds more like something you have to call a plumber to deal with after having drained a couple of bottles of some caustic agent down the toilet, in an unsuccessful attempt to eliminate the “blog”. It’s even worse as a verb – “I blogged it” instead of having simply written something, as people have been doing for several thousand years.

Open Source Licenses, Network Effects, and Competitive Strategy

I was recently talking with some people who develop a BSD licensed product who are a bit worried about competition. I had this to say, and I thought I would share it.

I think the concern is the “Sun Microsystems situation”, where there is a second project (B) based on open source project (A), and code only moves in one direction, towards B, a, commercial project. That can be kind of scary, especially when the commercial project has some sort of advantage. There is a real risk that as users and developers move towards project B, network effects take over, and B comes to dominate.

The GPL is one answer to this problem, that the Apache Software Foundation, and others in the “BSD camp” have chosen to eschew, in favor of another solution: 1) making the development community broad enough and strong enough to make it hard to vacuum up all the talent over to project B, and 2) moving fast enough with the project that development outstrips that of project B.

Of course, that strategy is not always possible, but that’s the direction to take, I think – make it so that it’s a big effort to ‘keep up’ with project A for the commercial guys, to the point where they don’t want to diverge very far from the main development line for fear of not being able to keep up with all the good stuff coming out of it. One of the ways this can happen with a BSD style license is to get lots of companies contributing to the common code base, something that is at times easier if they have no worries about restraints the license may place on their future directions.

Incidentally, I also think people may like the GPL because it makes things “fair”, without worrying so much about putting in the effort to “outrun” the competition in terms of code or community.

These are some of the reasons why I don’t get too worked up about there being a “best” license. It really depends on the situation, and the goals of the people involved, too much to get fixated with one license being “superior”.

Hecl Tutorial

The guys at Free Software Magazine just published a Hecl tutorial that I wrote.

They’re a pretty good outfit – you won’t get rich, but since the article is under a free license, I’ll be able to integrate it with the Hecl documentation pretty quickly, which was more important to me than a few dollars here or there.

Stuff To Do now open source

Since it’s not really my primary focus these days – there are simply too many things like it out there – I decided to release Stuff To Do as open source under the GPL. I chose that license, because as a complete application, I don’t see it being that much of an issue, as compared to, say, a library, where I find the GPL annoying. If you would like to use some portion of the code under a more liberal license, feel free to ask – I’ll almost certainly say yes, even if it’s for your own proprietary project. The code isn’t very elegant, I was in a hurry to create the whole thing, and was still learning with Rails, but it does work. It currently has zero documentation, in terms of describing the code.

If all that sounds exciting, the RubyForge project is here: http://rubyforge.org/projects/stufftodo/

Free Computer Book!

I’ve recently finished writing an article for Free Software Magazine, who, as part of sponsorship deals, are able to distribute a free book to their authors.

I thought that that would be easy enough, but on second thought, I’m actually not sure… These days I’m reticent to get books on things that are documented on the web – those sorts of books tend to get stale pretty quickly. I think I’m more in the market for a ‘classic’, but even there, I’m not really sure. I have a lot of good ones already (scroll down on this page: http://www.welton.it/freesoftware/), and as you can see from that list, “documentation” style books quickly become dated. To tell the truth, I haven’t actually bought any computer books in a while, having focused more on marketing, business, economics and the like, which aren’t “documented” online as thoroughly as most programming topics are.

So, I’m lookng for suggestions. One possibility is the recent Erlang book by Joe Armstrong, but even that is mostly covered by docs on the erlang.org web site.

Free Software Magazine’s publishing sponsors are: Apress, Addison-Wesley/Prentice Hall, O’Reilly, No Starch and Packt – and I can select any book from them, to my knowledge.

Suggestions? Thanks!

“Playing fetch” with DocBook

A while ago I wrote about the idea of “playing fetch” – meaning chasing after programming “sticks” that are basically makework. I am starting to get the feeling that the documentation system that I chose for Hecl is one such stick. I’ve been trying to document that lcdui commands that Wolfgang created last year. They’re really cool, and give you access to pretty much everything you can do from Java, but cranking out these docs is sure time-consuming. Here’s an example:

<refentry id="lcdui_date">
  <refnamediv>
<refname>lcdui.date</refname>
<refpurpose>Date/Time widget for lcdui forms</refpurpose>
  </refnamediv>
  <refsynopsisdiv>
<cmdsynopsis>
  <command>lcdui.date</command>

  <arg choice="opt">
    -date
    <replaceable>date/time in seconds</replaceable>
  </arg>

  <arg choice="opt">
    -label
    <replaceable>label</replaceable>
  </arg>

Once you finally slog through and create the documentation, it’s very flexible, because you have not created just formatting instructions, but actually described each piece of the text.

But… look at how often things get repeated. Aside from the repetitive XML tags, lcdui.date is more or less there three times. Ugh. Emacs + psgml mode helps some, but I still get the feeling I got suckered into doing something that should only be attempted by Big Corporations or at least large, well established projects that can afford to send people off to spend lots of time producing this kind of documentation.