McNealy's comment in the WSJ, read it at sun.com as a pdf. http://www.sun.com/aboutsun/media/features/McNealy_Oped-WSJ_3-3-06.pdf
(or - if you like to pay for content thats otherwise free - purchase it at the WSJ here.)
Tuesday, March 28, 2006
Monday, March 27, 2006
Thunderbird vs XUL
or should I rather say Thundberbird and XUL vs documentation:
Current score:
Thunderbird 5 : 0 documentation
Current score:
Thunderbird 5 : 0 documentation
Sunday, March 26, 2006
more java puzzlers
very interesting article/inverview with Joshua Bloch to go with the Java Puzzlers book.
Friday, March 24, 2006
Java Puzzlers

The ultimate java reading: Java Puzzlers by Joshua Bloch:
Top companion to Effective Java, by the same author.
Read it, learn it, live it.
Wednesday, March 22, 2006
iCal - finally
Ok, so I finally found a good Java iCal parser and got it working on most of the .ics files I have:
iCal4J at sourceforge
It does have problems with CHARSET properties, because it doesn't know them.
Which is actually in line with RFC2445... however, they do exist.
To work around this you have to write your own content handler, but it works.
iCal4J at sourceforge
It does have problems with CHARSET properties, because it doesn't know them.
Which is actually in line with RFC2445... however, they do exist.
To work around this you have to write your own content handler, but it works.
Tuesday, March 21, 2006
Calendars - again
So I've been complaining about timezones recently.
There is something worse: charsets.
(Yes, we knew that already).
More specifically, charsets within iCal "documents".
I'm not really sure whether anything above ascii 127 is actually allowed by RFC2445 or not.
The RFC doesn't seem to be too clear about it.
More importantly - and annoyingly - I just started working with an iCal parser that believes they are not.
So everything abvoe 127 terminates e.g. a description or summary.
German invitations/events tend to have äöüß in them (especially the ß in the location component), yet they don't parse correctly...
Sigh - again.
There is something worse: charsets.
(Yes, we knew that already).
More specifically, charsets within iCal "documents".
I'm not really sure whether anything above ascii 127 is actually allowed by RFC2445 or not.
The RFC doesn't seem to be too clear about it.
More importantly - and annoyingly - I just started working with an iCal parser that believes they are not.
So everything abvoe 127 terminates e.g. a description or summary.
German invitations/events tend to have äöüß in them (especially the ß in the location component), yet they don't parse correctly...
Sigh - again.
Monday, March 20, 2006
Calendars - sigh
There are many problems as the industry tried to establish a calendaring/scheduling standard.
Less technical.
Technially speaking everything seems to be solved (for me).
The problem is rather – I think – in the plethora of ways people (in real life) work with calendars, and how their understanding of scheduling is.
One of the problems is e.g. with the understanding of recurring events (not covered today). The other is with time zones, and how people ignore them.
Yes - time zones.
We thought, that the problems of specifying a local time were actually solved with the invention of time zones.
Still, what do you do (programmatically, not as a human being), when you receive an calendar event without any time zone information.
Not even a UTC marker (as in the generally accepted ISO8601 standard).
Which time zone does this event fall into?
In real life you say “The time zone of the organizer or the person you received the invitation from (i.e. the sender)”, and you are usually able to resolve this, because in real life you at least have a hint what their time zone might be.
As a program, how do you tell – in the absence of any TZ information?
Which TZ do you pick?
Is it fair to assume that then sender has the same TZ as you (the receiver) has?
Or should you just shoot programmers who do not include TZ information in their events?
Or is it the standard ? ISO8601 allows for empty TZ information and simply declares those as being "local". Local to what?
The voting is open ... :-)
Less technical.
Technially speaking everything seems to be solved (for me).
The problem is rather – I think – in the plethora of ways people (in real life) work with calendars, and how their understanding of scheduling is.
One of the problems is e.g. with the understanding of recurring events (not covered today). The other is with time zones, and how people ignore them.
Yes - time zones.
We thought, that the problems of specifying a local time were actually solved with the invention of time zones.
Still, what do you do (programmatically, not as a human being), when you receive an calendar event without any time zone information.
Not even a UTC marker (as in the generally accepted ISO8601 standard).
Which time zone does this event fall into?
In real life you say “The time zone of the organizer or the person you received the invitation from (i.e. the sender)”, and you are usually able to resolve this, because in real life you at least have a hint what their time zone might be.
As a program, how do you tell – in the absence of any TZ information?
Which TZ do you pick?
Is it fair to assume that then sender has the same TZ as you (the receiver) has?
Or should you just shoot programmers who do not include TZ information in their events?
Or is it the standard ? ISO8601 allows for empty TZ information and simply declares those as being "local". Local to what?
The voting is open ... :-)
Tuesday, March 14, 2006
online music, its price & DRM
Isn't the problem of music download rather in the old business model of the recording industry?
Their model was built on charging for the media, i.e. the carrier of the (copyright protected) song/music. If you bought the same song a second time (e.g. on a sampler LP, or you broke the record and had to buy it again), did they step up to you and said, “No wait, you already paid for that; we'll just take some cent for the vinyl this time”?
Well, they didn't come knocking on my door.
Quite the contrary, by changing from vinyl to CDs, they built an entire industry around charging a second time for the very same content.
Again: The whole business model was built around charging for the physical carrier.
But know, since they lost control over the distribution channel, it's suddenly all about the (protected) rights of the artist and their royalties. (... and they do have a right to receive royalties).
In Austria and Germany (and probably some other countries as well), there was (and still is) a surcharge on each and every blank (!) MC, CD, DVD, ... just because you might copy something on it, that is royalty afflicted. Doesn't that actually imply that I can freely download (or copy) from whatever source, because I already paid some royalty? Or can I then get a refund for the surcharge on the blank CD...
Was there any limitation on a vinyl that kept me from playing “my” (in a DRM sense) record on my friends record player? No.
The only limitation was that I didn't give away my records, I couldn't “share” them. I could only lend them to a friend, and I wanted to get them back – preferably without a scratch.
And, because everything was analog, a copy had less quality than the original.
And this model of sharing formed the base for the average price of a song or LP.
Meaning: the recording industry and the artists knew that some people gave away their LPs, and their friends copied them to MCs... This limited sharing/copying was already calculated into the price of every LP/CD/...
Divide the price of a LP/CD - about 15 US$ for a new release - by the number of tracks it features, say 12.
What do you get (apart from 1.25$) ? The price per track/song.
To me, this is the price per song including the rights to give a copy to friends and/or play it on their player. Because the model is still the same as in the days of vinyl, where it was OK to do so.
So, for a “this-is-the-song-you-may-only-play-it-on-your-MP3/CD-player-and-not-give-it-away-to-friends”-copy of a song, you should pay less, because you are limited in how you use it.
The difference between the average street price per song on a CD (as given above) and the personal-use-only-price has to be the value of sharing that song.
Either that value is small, then what's the industry complaining about?
Or the value is large, then personal-use-no-copy-option-included tracks have to become cheaper... substantially cheaper.
Their model was built on charging for the media, i.e. the carrier of the (copyright protected) song/music. If you bought the same song a second time (e.g. on a sampler LP, or you broke the record and had to buy it again), did they step up to you and said, “No wait, you already paid for that; we'll just take some cent for the vinyl this time”?
Well, they didn't come knocking on my door.
Quite the contrary, by changing from vinyl to CDs, they built an entire industry around charging a second time for the very same content.
Again: The whole business model was built around charging for the physical carrier.
But know, since they lost control over the distribution channel, it's suddenly all about the (protected) rights of the artist and their royalties. (... and they do have a right to receive royalties).
In Austria and Germany (and probably some other countries as well), there was (and still is) a surcharge on each and every blank (!) MC, CD, DVD, ... just because you might copy something on it, that is royalty afflicted. Doesn't that actually imply that I can freely download (or copy) from whatever source, because I already paid some royalty? Or can I then get a refund for the surcharge on the blank CD...
Was there any limitation on a vinyl that kept me from playing “my” (in a DRM sense) record on my friends record player? No.
The only limitation was that I didn't give away my records, I couldn't “share” them. I could only lend them to a friend, and I wanted to get them back – preferably without a scratch.
And, because everything was analog, a copy had less quality than the original.
And this model of sharing formed the base for the average price of a song or LP.
Meaning: the recording industry and the artists knew that some people gave away their LPs, and their friends copied them to MCs... This limited sharing/copying was already calculated into the price of every LP/CD/...
Divide the price of a LP/CD - about 15 US$ for a new release - by the number of tracks it features, say 12.
What do you get (apart from 1.25$) ? The price per track/song.
To me, this is the price per song including the rights to give a copy to friends and/or play it on their player. Because the model is still the same as in the days of vinyl, where it was OK to do so.
So, for a “this-is-the-song-you-may-only-play-it-on-your-MP3/CD-player-and-not-give-it-away-to-friends”-copy of a song, you should pay less, because you are limited in how you use it.
The difference between the average street price per song on a CD (as given above) and the personal-use-only-price has to be the value of sharing that song.
Either that value is small, then what's the industry complaining about?
Or the value is large, then personal-use-no-copy-option-included tracks have to become cheaper... substantially cheaper.
Monday, March 13, 2006
Weird world
So while Google wastes our time with google mars, Microsoft - of all - surprises us with some new (AJAX?) features on search interfaces with live.com:


- a slider to dynamically de-/increase the level of details
- a ajax(?) scrollbar... Not sure if this really helps, but you get less dependent on the browser and how it reacts to large lists/documents.
Sunday, March 12, 2006
Microsoft iPod
No, I'm not talking about origami, but about this little piece of video art here at youtube.
Watch it... and learn whats so cool about Apple.
Watch it... and learn whats so cool about Apple.
mozdev before coding
You could also call this piece: "Don't re-invent mozdev!"...
and it generally applies to every SW "issue".
This very instance of this insight has its origin in me no longer wanting to manually switch the FireFox proxy, whenever I switched from my home directy internet connectivity (wifi+dsl) to the company VPN, where I have to use a proxy.
Actually I wanted to do some little hack to automatically determine, if the VPN was on, and then magically using the company proxy...

...but this here is quite sufficient: the ProxyButton extension.
Gives you a little button on the toolbar to switch from direct to proxy...
Read the FAQ style intro here once you installed it.
PS: if anyone feels the vpn-autodetect-thingy feels worthwhile (or has already been done), just leave a comment...
and it generally applies to every SW "issue".
Before sitting down and starting a project/hack, check if it does not yet exist.
This very instance of this insight has its origin in me no longer wanting to manually switch the FireFox proxy, whenever I switched from my home directy internet connectivity (wifi+dsl) to the company VPN, where I have to use a proxy.
Actually I wanted to do some little hack to automatically determine, if the VPN was on, and then magically using the company proxy...

...but this here is quite sufficient: the ProxyButton extension.
Gives you a little button on the toolbar to switch from direct to proxy...
Read the FAQ style intro here once you installed it.
PS: if anyone feels the vpn-autodetect-thingy feels worthwhile (or has already been done), just leave a comment...
Saturday, March 04, 2006
The wordprocessor has been replaced
Very interesting (and true) thought by Dan Bricklin on one of the recent Gillmor Gang podcasts:
Somewhere around 60'30, but as usual its worth listening to the whole show.
paper used to be the form we use to publish [...]
The wordprocessor - to most people - has been replaced by the e-mail product.
Somewhere around 60'30, but as usual its worth listening to the whole show.
Googlisms
Why doesn't Google Desktop also search in (Google) Picasa ???
Beats me.
But wouldn't it be nice, it the picasa tags/labels and the pictures' captions would also appear the (desktop) index?
Beats me.
But wouldn't it be nice, it the picasa tags/labels and the pictures' captions would also appear the (desktop) index?
Thursday, March 02, 2006
Sunday, February 26, 2006
Thunderbird Fcc extension
Finally I found a Thunderbird extension that allows me to select the Fcc folder on the compose/reply panel.
Not only can you control which folder the mail (once sent) should be filed into, but also

The latter option simply shows that whoever wrote this extension, knows what (s)he is doing. This is just awesome.
Not only can you control which folder the mail (once sent) should be filed into, but also
- not to save it at all (no fcc)
- on a reply to also move the original email to the same folder

The latter option simply shows that whoever wrote this extension, knows what (s)he is doing. This is just awesome.
Wednesday, February 22, 2006
SOA vs The Architects
With SOA and/or the concept of composite applications we will see an increase in ready-to-use business-services as well as technical-services.
This is the promise of SOA and a pre-requisite for composite applications.
What makes me wonder is, who will control access to those ready-to-use services? Just the term ready-to-use makes me panic.
And I don't mean just security wise? But rather from a logical level ?
Let's say I'm a developer and working on a composite application, or just in need of a service, that others already did and were friendly enough to provide to the whole enterprise.
Let's say - as in almost all examples - a credit check.
Let's say this is some in-house customer-service task I'm automating that from time-to-time needs to check the credit of a customer or prospect, e.g. 100 times a day.
With the help of the service registry I will be able to discover the credit check service and use it from my application (think UDDI/WSDL if that helps, but those are just protocols and formats to facilitate that).
So I'm happy, I found the service and I'm going to use that service.
There will probably some security restrictions as to which user is allowed to connect to the credit check. Good.
So I contact the supplier/owner of said service, tell him why and how I need access to it, and I will be granted access.
I finish my development/testing/whatever task and deploy my application to production. Everything runs smoothly, everybody is happy.
Half a year later, I'm working on a different application, and again need the credit check. I again look to the service registry, find the credit check service I'm famliar with (or I just remember it), and start using it for the new application.
This time, however, I'm working on a web application that issues quotes to prospective customers, and I have to include a credit check for the final calculation of the quote. The estimated number of quotes is several thousands a day (because I'm just a bit smaller then Amazon but still huge... ok).
Who will tell me, that using the (same) credit check service is still OK for me? Where can I find which load the credit check service is able to absorb? And at which load it is already running? There might be already 10 applications that use the credit check that comprise 90% of the whole capacity it was designed for, and now I'm adding another 70%? Who will keep me from doing so ?
Who will be able to do impact analysis on all the other 10 applications?
The only person/organisation that comes to mind is either the enterprise architects or some newly established integration architects/specialist.
But those guys need to have a more operational role than in the past. They need to know the general state of their services quite will. For the past, today and the months to come.
Isn't this a major shift in expectations from those groups?
Are they ready? Are the operatoin departments ready to let others, i.e. architects, etc, look into their system on a level usually reserverd to operators & andministrators ?
This is the promise of SOA and a pre-requisite for composite applications.
What makes me wonder is, who will control access to those ready-to-use services? Just the term ready-to-use makes me panic.
And I don't mean just security wise? But rather from a logical level ?
Let's say I'm a developer and working on a composite application, or just in need of a service, that others already did and were friendly enough to provide to the whole enterprise.
Let's say - as in almost all examples - a credit check.
Let's say this is some in-house customer-service task I'm automating that from time-to-time needs to check the credit of a customer or prospect, e.g. 100 times a day.
With the help of the service registry I will be able to discover the credit check service and use it from my application (think UDDI/WSDL if that helps, but those are just protocols and formats to facilitate that).
So I'm happy, I found the service and I'm going to use that service.
There will probably some security restrictions as to which user is allowed to connect to the credit check. Good.
So I contact the supplier/owner of said service, tell him why and how I need access to it, and I will be granted access.
I finish my development/testing/whatever task and deploy my application to production. Everything runs smoothly, everybody is happy.
Half a year later, I'm working on a different application, and again need the credit check. I again look to the service registry, find the credit check service I'm famliar with (or I just remember it), and start using it for the new application.
This time, however, I'm working on a web application that issues quotes to prospective customers, and I have to include a credit check for the final calculation of the quote. The estimated number of quotes is several thousands a day (because I'm just a bit smaller then Amazon but still huge... ok).
Who will tell me, that using the (same) credit check service is still OK for me? Where can I find which load the credit check service is able to absorb? And at which load it is already running? There might be already 10 applications that use the credit check that comprise 90% of the whole capacity it was designed for, and now I'm adding another 70%? Who will keep me from doing so ?
Who will be able to do impact analysis on all the other 10 applications?
The only person/organisation that comes to mind is either the enterprise architects or some newly established integration architects/specialist.
But those guys need to have a more operational role than in the past. They need to know the general state of their services quite will. For the past, today and the months to come.
Isn't this a major shift in expectations from those groups?
Are they ready? Are the operatoin departments ready to let others, i.e. architects, etc, look into their system on a level usually reserverd to operators & andministrators ?
Saturday, February 18, 2006
wikiCalc
wikiCalc (by softwaregarden) is a cool AJAX application that combines the "public" or rather collaborative editing approach of a wiki with the more traditional way of (structured?) data entry in a spread-sheet like this one here.
I've only tried this out myself (i.e. alone), but I have this feeling that this might really help in collaborative calc-like effort, e.g. when a group of people work on a business case or some other calculation with more than just one input.
I've only tried this out myself (i.e. alone), but I have this feeling that this might really help in collaborative calc-like effort, e.g. when a group of people work on a business case or some other calculation with more than just one input.
Friday, February 17, 2006
AJAX again
well since everyone talks about AJAX all the time, I might as well do so, too.
Here's a good resource (hub) for it: ajaxian
Here's a good resource (hub) for it: ajaxian
Tuesday, February 14, 2006
Loosely coupled monitoring
In the world of SOA, webservices and (generally) loosely coupling systems and applications, monitoring gets a new quality. And I really mean not just "more important" but a new quality.
I still can't say what it will have to look like, but the current (system/server centric) approach, with monitoring more or less single system (from a building block perspective) performance, availability, capacity, etc, etc will not be able to cover SOA et al.
I guess it will become more important to measure and know where a certain instance or class of message (or document) is using what kind of resources (or blocking them).
Won't monitoring "probes" become actual attributes or tags of the messages that traverse through the various buses and systems, being updated at each (logical) hop and at the same time updating some performance counters on those hops?
To me this looks like really orthogonal to today's approach.
I still can't say what it will have to look like, but the current (system/server centric) approach, with monitoring more or less single system (from a building block perspective) performance, availability, capacity, etc, etc will not be able to cover SOA et al.
I guess it will become more important to measure and know where a certain instance or class of message (or document) is using what kind of resources (or blocking them).
Won't monitoring "probes" become actual attributes or tags of the messages that traverse through the various buses and systems, being updated at each (logical) hop and at the same time updating some performance counters on those hops?
To me this looks like really orthogonal to today's approach.
Sunday, February 12, 2006
Tim Bray on Java vs LAMP
First of all, I don't think there is a real "vs." there, but anyway, its a catchy title.
Look here at what Tim actually has to say on this, I really love it.
Look here at what Tim actually has to say on this, I really love it.
Subscribe to:
Posts (Atom)