Tuesday, November 04, 2008

Java and XML

I'll scream if I read the word "pluggable" once more... I mean, seriously, how hard can you make simple things?

Don't know what I mean? Dig this:

Think about it this way: JDOM ships with the Apache Xerces parser. That parser isn't part of JDOM, but is used by JDOM, so it's included to ensure that JDOM is usable out of the box. The same principle applies for JAXP, but it isn't as clearly publicized: JAXP comes with a parser so it can be used immediately. However, many people refer to the classes included in Sun's parser as part of the JAXP API itself. For example, a common question on newsgroups used to be, "How can I use the XMLDocument class that comes with JAXP? What is its purpose?" The answer is somewhat complicated.

First, the com.sun.xml.tree.XMLDocument class is not part of JAXP. It is part of Sun's Crimson parser, packaged in earlier versions of JAXP. So the question is misleading from the start. Second, a major purpose of JAXP is to provide vendor independence when dealing with parsers. With JAXP, you can use the same code with Sun's XML parser, Apache's Xerces XML parser, and Oracle's XML parser. Using a Sun-specific class, then, violates the point of using JAXP. Are you starting to see how this subject has gotten muddied? The parser and the API in the JAXP distribution have been lumped together, and some developers mistake classes and features from one as part of the other, and vice versa.

From here.

Who does really want vendor-independence in an XML processing API?

Sunday, September 07, 2008

Wrangling with GMail

OK, here's a rant:

10 years of Google. And it's beginning to treat its customers(*) like MS. Today, I wanted to mail myself(!) a zip file as a backup. Gmail wouldn't let me, though, because the zip contained "an executable,... blah, security". Well, yes, there was a .bat in the zip. But this sure reminded me of long-gone days when my employers forced me to use Outlook (which did not not allow to open received executables unless you really really wanted to and hacked the registry). When will we see a GMail Clippy?

Btw: if you ever wondered what happened to MS's Clippy:

From: http://blogs.msdn.com/officeoffline/archive/2008/05/27/do-not-go-gentle-into-that-good-night-part-3.aspx

(*) yes, I am a paying customer. I bought storage space.

Tuesday, September 02, 2008

Social Network Application Development

Today, I gave a talk about development of applications within social networks at the Internet Briefing in Zurich. It was mostly about marketing aspects, rather than technology. Find the slides (in German) below (or download them here).

View SlideShare presentation or Upload your own.

Monday, September 01, 2008

Finally, Outlook makes sense

Ever got an email from an Outlook user only to get an "email recalled" message afterwards (cf. Eternal September)? I just found out out that this is just a elaborate way of grabbing your attention. Hmm, I should do a Thunderbird plugin that sends fake recall mails...

(this is from: http://blogs.msdn.com/officeoffline/archive/2008/08/29/rubber-necking-2-0.aspx)

Tuesday, August 26, 2008

Flex Open Source? Right...

There is a bug in the Flash player that makes it impossible to implement a RESTful architecture with a Flex or Flash backend. In essence, it is a buggy implementation of an http client - the client cannot get to the response body unless the reponse code is 200.. This is really bad. But what is an embarrassment for Adobe is that:
  1. That bug was opened more than a year ago
  2. It is marked as priority C only
  3. It was closed and had to be reopened after the community complained
  4. Adobe engineers suggested as a workaround to purchase LCDS Server
So, lessons learned (actually: lessons that proof in practice what was clear beforehand):
  1. It does not matter too much if Flex is open-sourced as long as the Flash player is not
  2. It does not matter at all if Flex or Flash are open-sourced if the community cannot apply patches and get them into the deployed player
Flex being open source is completely irrelevant.

Tuesday, August 12, 2008

Disappointed with Scriptaculous

The Autocompleter looks nice, but why the heck does it send a POST to retrieve suggestions? I had to walk away from it.

Tuesday, August 05, 2008

Hindsight is 20/20

I have a fondness for retro computers, history of computing and famous discussions (like the Torvalds/Tanenbaum debate) . In this context I just came across this W3C mailing list debate regarding REST and SOAP. Nice read.

Germany’s most anticipated Web 2.0 sites - one year later

I just came across a post about Germany's most anticipated Web2.0 sites that dates back to last August. Since this is almost exactly one year ago I decided to spend half an hour of my life and conduct a completely unscientific survey to see how many of these startups are still around. For this reason I simply looked at the web sites to see if they are still here and checked if there are recent posts in the company blog to check if the site is a zombie (if there is no blog I checked the press releases). The result is: 51% are still around, 36% are gone (or not started one year later). The rest seems shaky (last blog post 6 months ago) or unknown (state cannot be determined by looking at the blog).

If you consider that these startups were above the rest ("highly anticipated") and that checking if there are even online one year later is a very low barrier I was surprised by the low survival ratio. But one can regard this as positive: "quick failure" is a good strategy for testing ideas.

Tuesday, July 08, 2008

unlikely windows rant

i dislocated my shoulder tonight so i have one arm in a sling and the other one programming sling. haha. here's my tentative list of things that are hard for one-handed people:

hard to do
use uppercase letters when typing
dry my back with towel

very hard to do
tie one's shoes
washing hands

log in to windows (ctrl+alt+del)

Wednesday, June 11, 2008

Corporate self-sabotage

CMSWatch has pointed to such an unbelievably funny classic: the OSS Simple Sabotage Manual from 1944 (OSS is the Office of Strategic Services, predecessor to the CIA). Check it out here.

You will learn how your cooperation is sabotaged:

(1) Insist on doing everything through "channels." Never permit short-cuts to be taken in order to expedite decisions.
(2) Make "speeches." Talk as frequently as possible and at great length. Illustrate your "points" by long anecdotes and accounts of personal
experiences. Never hesitate to make a few appropriate "patriotic" comments.
(3) When possible, refer all matters to committees, for "further study and consideration."
Attempt to make the committees as large as possible — never less than five.
(4) Bring up irrelevant issues as frequently as possible.
(5) Haggle over precise wordings of communications,
minutes, resolutions.
(6) Refer back to matters decided upon at the last meeting and attempt to re-open the question of the advisability of that decision.
(7) Advocate "caution." Be "reasonable" and urge your fellow-conferees to be "reasonable" and avoid haste which might result in embarrassments or difficulties later on.
(8) Be worried about the propriety of any decision — raise the question of whether such action as is contemplated lies within the jurisdiction
of the group or whether it might conflict with the policy of some higher echelon.

The document also shows quite clearly that some allied spies must still be working for Germany's train company:

(6) Transportation: Railways
(a) Passengers
(1) Make train travel as inconvenient as possible for enemy personnel. Make mistakes in issuing train tickets, leaving portions of the journey uncovered by the ticket book; issue two tickets for the same seat in the train, so that an interesting argument will result; near train time, instead of issuing printed tickets write them out slowly by hand, prolonging the process until the train is nearly ready to leave or has left the station. On station bulletin boards announcing train arrivals and departures, see that false and misleading information is given about trains bound for enemy destinations.
(2) In trains bound for enemy destinations, attendants should make life as uncomfortable as possible for passengers. See that the food is especially bad, take up tickets after midnight, call all station stops very loudly during the night, handle baggage as noisily as possible during the night, and so on.
(3) See that the luggage of enemy personnel is mislaid or unloaded at the wrong stations. Switch address labels on enemy baggage.
(4) Engineers should see that trains run slow or make unscheduled stops for plausible reasons.

Thursday, May 29, 2008

Flex on Rails

This week I gave two talks: The first one at the German web conference webinale in the Dynamic Language World sub section. The talk was about the integration of Flex and Rails.

The second talk was given at the RIA conference of the Internet Briefing Group. It was held in German and contained the same content as the previous one plus some bits about RIAs in social networks.

Please note that for both presentations the SlideShare preview embedded in this post really sucks. Download the files if you want to have a look.

Monday, April 14, 2008

Tetris the movie

Finally! What took them so long?

btw: before you get overly excited - it's fake.
btw2: where did I leave that Gameboy?

Thursday, April 10, 2008

The future of mobile computing smells of fruity devices

Ever since WAP came around in 1999 or so I was very interested in mobile (networked) computing. From my perspective the basic ideas around WAP were not so bad - it was an open network, really. But unfortunately, the devices and the networks at the time made the user experience absolutely horrifying. Still, I would call this period the first era in mobile computing (for me, the image that symbolizes this period best is the Nokia 7110, which was Nokia's first real WAP phone, see left). So along came the next era which is best symbolized by Vodafone Life. It is all about operators' walled gardens. Obviously, that approach improved the user experience, especially because content and menus were partly stored on the device. But the big drawback was the closed nature of this approach. It resembled AOL on phones.

Since two weeks I do own a shiny new iPhone and I am convinced that this device marks the beginning of a new age in mobile computing. It combines access to the open Internet and a really good user experience. For the first time IMO the whole Internet is really in my hands wherever I go. Point in case: I switched my morning news browsing at home over to my iPhone (instead of my laptop).

Sure, there were other Internet capable devices before but they were way too cumbersome to use (smartphones) or too narrow in scope (Blackberry, Nokia 770).

I am sure that the iPhone is only the start and that other manufacturers will come up with similar devices (yesterday news broke of Nokia working on an iPhone clone). In this new age of mobile computing a power shift will take place, I believe. In the last era the operators ruled - you could not start a service or do anything useful, really, without their blessing. The next era will be ruled by the device manufacturers. It will be all about devices. That is why Android's potential success or failure is completely undetermined, yet. The software stack might be OK, but we have to see the devices, first.

Camtasia rocks

I cannot remember the last time where I advocated a PC program, but I simply have to say: Tech Smith's Camtasia, the screencast recording and editing program, is incredibly good. It does everything I could think of in a screencast recorder, yet the UI is very easy to use. It's clearly the best desktop application I looked at in a while.

The killer feature, of course, is "smart focus". In post recording phase Camtasia automatically figures out what is of interest on the screen and zooms in. See here for a cast I created with Camtasia.

It should also be said that it comes at a price (300USD), but there is also a 30 day trial version that does not cripple the produced screencasts in any way (btw: I bought it). Kudos to the Tech Smith.

Friday, April 04, 2008

Cool stuff: Day's JCR Cup 2008

Mate, looking for a new MacBook Pro? Well, just hack a little JCR-based web app. Day has just announced the JCR Cup 2008, a JCR development competition. I will not be able to enter (I'm on the jury), but I reckon I'll write some examples just for the fun of it. Subscribe to dev.day.com if you're interested.

Wednesday, April 02, 2008

TheServerSide symposium

One take-away message from the TheServerSide symposium for me was(*): multi-language development is considered to be an important change in the future. In particular, DSL are hip at the moment, but some people think that in the future there will be many languages that we develop in at the same time.

I only partly agree with that. Looking back in history there always was a dominant programming language in each of the computing decades we saw so far: Mainframes had Cobol, Client-Server had C/C++, the Internet had Java. Right now, there is all this talk about Ruby, Python, ActionScript, Javascript, Scala, you name it. I think that we are in a post-Java language confusion that exists mainly because the next big decade in computing has not started, yet. Once it starts some new computing language will become the dominant player again. It will dominate because it will be the most versatile language for that computing environment. Probably, it will also have a big company behind it (see history above: IBM, Microsoft, Sun/IBM plus Google in a way).

If I knew what the next big thing was I had better things to do than writing blog posts. But my guess is that it will be something around small connected devices. We might look back and say that the Blackberry and the iPhone were early signs. If that turns out to be true than this new language will have a portable runtime, be small in size and extensible. I also guess that it will be open source from the start.

(*) the others were: Spring is as fat as J2EE and SOAP is so dead that even its proponents stopped defending it.

Update: just saw that TSS has an April's Fool post along these lines

Thursday, February 28, 2008

A(ir) solution in search of a problem

Adobe has just released Ait, its technology supposed to merge the offline/desktop world and web applications, bring the best of both worlds, etc yadda yadda. I found it interesting to watch the comments in various forums. There was some interest, but also concerns (e.g. about security, Air being a vendor lock-in, desktop apps becoming obsolete anyway). However, what struck me most was this: some geeks seem to like Air because it is a cool technology. But hardly anyone seems to like Air because it solves a real problem that someone actually has. There was little talk about real use cases, but rather talk about that Air will create a new way of thinking and incubate apps that we do not even know about, yet. Well, maybe.

If you consider Google Gears, which can be considered a technology that solves a similar problem: who is really using it? I never heard of anyone apart from Google Reader.

To be fair, I can think of some use cases that actually make sense to me, e.g. combining your desktops contacts data or your local mp3 collection with an online app. Maybe we will see one or two of them in the months to come. But not too many.

PS: yes, I have seen this eBay Air client.
PPS: the fragmentation caused by Mozilla Prism, Gears, maybe Silverlight some day and Air won't help either.

Friday, February 08, 2008

Slashdot on XML

This comment is a classic:
XML is like violence. If it doesn't solve your problem, you're not using enough of it.

Thursday, February 07, 2008

72 characters should be enough for everyone

I just spent valuable minutes of my life wrestling with Java's classpath. One notable finding: no line in a jar file's manifest can be longer than 72 characters (at least until and including Java 5). See here:
No line may be longer than 72 bytes (not characters), in its UTF8-encoded form. If a value would make the initial line longer than this, it should be continued on extra lines (each starting with a single SPACE).
Oh, boy. And a single space at the beginning. Remember FORTRAN?

Wednesday, January 30, 2008

Java, Javascript and History

For those of us who are confused if we are currently to use Java or Javascript on the the server-side or the client-side: Dion Almaer from Ajaxian has a a historic perspective (taken from here):

Friday, January 18, 2008

Thursday, January 03, 2008

Awesome Flex tool

fxspy is like Firebug for Flex. I think in 2 days I cannot imagine the world before anymore.... (check out the demo: click the button in the upper right corner and edit property values). Installation instructions are on the wiki.

Wednesday, January 02, 2008

Whose chopper is this?

(Zed's dead, baby. Zed's dead.)

In case you follow the Rails community you must have come across this New Year's rant of Zed Shaw, creator of Mongrel. It is really tiring to read as Zed seems to be a textbook-case for ego problems. However, I find this bit really interesting:

I believe, if I could point at one thing it’s the following statement on 2007-01-20 to me by David H. creator of Rails:

(15:11:12) DHH: before fastthread we had ~400 restarts/day
(15:11:22) DHH: now we have perhaps 10
(15:11:29) Zed S.: oh nice
(15:11:33) Zed S.: and that's still fastcgi right?

Notice how it took me a few seconds to reply. This one single statement basically means that we all got duped. The main Rails application that DHH created required restarting ~400 times/day. That’s a production application that can’t stay up for more than 4 minutes on average.

Let me put this into perspective for you: I’ve ran servers that needed to be restarted once in a year. They were written in PHP, Python, Java, C, C++, you name it. Hell, I’ve got this blog on a server I’ve restarted maybe 10-20 times the whole year.

Now, DHH tells me that he’s got 400 restarts a mother fucking day. That’s 1 restart about ever 4 minutes bitches. These restarts went away after I exposed bugs in the GC and Threads which Mentalguy fixed with fastthread (like a Ninja, Mentalguy is awesome).

If anyone had known Rails was that unstable they would have laughed in his face. Think about it further, this means that the creator of Rails in his flagship products could not keep them running for longer than 4 minutes on average.

Repeat that to yourself. "He couldn’t keep his own servers running for longer than 4 minutes on average."

Assuming his statements are true (which we may never know) he basically duped us all.

If that is true it is scary.

On related gossip: the Rails community does not seem to appreciate this rant. Zed lost the top spot on WorkingWithRails's most popular list.