Archive for October 2007

Missing Java 6 on Leopard – is sky really falling ?


Since the big meow on Friday, lot of unhappy people had been talking and blogging about how terrible and unacceptable is the absence of the Java 6 from the Leopard. Some post were sounding very dramatic “I would not buy Mac if I only knew …” – which is a bit silly. The Leopard’s 300 new features were posted and touted and hyped for two weeks. Some of the “great” improvements were actually fairly modest improvements – so it was OBVIOUS that Java 6 is not going to be included because it would definitely make the list. QED.

So what happened since Friday October 26th that made an extremly popular Java development platform (Mac) suddenly so awfully inadequate and such a bad choice ? I mean – when you were reading the Java related blogs during last year, majority of the screenshots from Netbeans or Eclipse were coming from the good looking and polished Tiger UI. How come that it did not matter then that it did only run Java 5 and in even lower version ?

I agree that it would be much better if Mac would contain the Java 6 and that Apple should do much better job in outlining the plans and the roadmap for supporting new Java versions. But is it really such a big deal if we have to wait few more months ? Not from my point of view – which may be shared with some more developers in enterprise world. The thing is that industry does not move as quickly as we developers do and like. Many of our clients are still on 1.4, some even on 1.3 version – and have no rush to move up. Nobody from them is really asking for Java 6, the upgrades are being performed to Java 5 in the best case. There must be a really good business case to justify the upgrade – because you cannot just recompile server side application from Java 1.3 to Java 5 or 6. Not in real world of J2EE.

Should the transition be between Java 1.4 and Java 5 and should we be prevented to use Java 5 – yes, that would be a big deal. Language enhancements between these two releases were very important from developer’s point of view. Java 5 was a great upgrade, similar in scope to jump from C# 1.0 to 2.0. But the upgrade to version 6 is much less dramatic. There are performance gains and optimizations – yes, but in most cases Java 5 or even 1.4 is fast enough, so unless you have performance issue this is not the key. It has better interoperability between .NET and Java web services – if you are in heterogeneous environment, these may come handy. There are also many improvements in version 6 that will make developer’s life easier (debugging enhancements, scripting and dynamic languages) but from application’s business owner’s point of view these are not really that important, certainly not showstoppers or must have’s. Many of these can be achieved either using tools or enhancements outside of the JDK.

It is sad that Java does not seem to be a top priority for Apple – but delivering major software creation is always a juggling act between time and resources available and final featureset – as we have seen in 5 years delay of the other major OS with same story of silent dropping of features. What makes it harder to digest for Java developers is that Apple seemingly did not have enough resources and enough time to finish Java 6 for Leopard release – even one year later after it was available on other platforms – and to add insult to injury, there somehow was time enough and resources available to get in much more recent advancements from some competitive technologies – such as Ruby on Rails.

I think that – as often before – the general perception is influenced by the loudest unhappy voices, while the more reasonable are not so articulate and less notable. I believe there will be several major Leopard updates coming in next few months – like fixing the bugs and adding read/write to ZFS functionality (which is to certain degree available now) – and hope that one of these updates will bring Java 6. In the mean time, I will happily use Java 5 knowing that it can do everything my Java projects need.

Lack of Java 6 on one of the three major client platforms can be seen from two angles: you can say “I am not going to use OS X because it does not have Java 6”. Or you can say “I am not going to use Java 6 until it is available on all major platforms”.

Or you can play an optimist and try to find something positive in lack of Java 6 on Leopard: we all know that SDK for iPhone /iPod touch is coming in February 2008. One of the reasons why the SDK is delayed is security concerns – Steve Jobs said the company is trying to do two things at once — provide an open platform to developers while protecting iPhone users from viruses, Trojans and other malware. Hmmm – does not this sound like providing a sandbox – something that Java is excellent at ? Is it too good to be true that delay of Java 6 may be a good news ?

Ordered a Macbook Pro


I have to confess, I did it :-). But no, I did NOT do it right away after Friday 6PM when Leopard became publically available. I managed to wait for whole 5 hours… partly because I was not sure whether the 6PM is local time or Cupertino time – and partly because the Apple store was stubbornly saying that my MBPro would ship with Tiger. At about 10:30 there was a “sticker” saying that all new Macs will be shipped with Leopard … and after that, you have to agree I had no choice ….

I have also purchased the Apple Developer’s Connection select subscription – aka ADC. It is sort of MSDN for OS-X platform, giving you access to interim release. It was cheaper than MSDN, but frankly – MSDN contains by order of magnitude more software therefore it is not a fair comparison. Some people I know would say it is not a fair comparison when it comes to quality of the software – but this is up to everyone to decide for himself. Unlike MSDN the ADC gives you discount for hardware purchase which in case of MacBook Pro paid for the ADC itself plus over $100 savings. The more you spend the more you save ….

I expect the Macbook Pro to arrive in 6-10 days. It is going to be my main mobile workstation, serving all Java and Ruby development needs directly – and (should there be any need) using either a remote desktop or running Windows in a virtual machine for .NET development. I have still not decided whether I will upgrade Parallels or buy VMWare Fusion. On one hand, Parallels did not impress me with their upgrade policy and reviews I have seen show that Fusion performs better – but my experience from using VMServer on Windows and running Linux inside showed pretty unimpressive user interface speed – much worse that VMWare player and close to unusable. I guess first hand experience is required to see how does Linux and Windows behave in VM under Leopard …

Great solution for offsite backup


I have been using it for over half year now and was very happy with it. After I did today hear Steve Gibson mentioning (and recommending) it on Security Now!, I want to share my experience and add my vote of confidence.

The solution is Amazon S3 service (Simple Storage Service), fantastically affordable system to store your data securely on-line. You pay as you go – the size is unlimited and you are charged only for what you store and bandwidth you consume. Fantastically affordable means 15 cents for gigabyte-month storage and 10 cents for gigabyte transfer in / 18 cents for transfer out which will drop to 13 cents if you use it more. This means that to store my approximately 30 GB collection of pictures I need to upload them first (for $3) and then pay $4.50 monthly for storage – plus the download traffic. But of course, I am not using it for the images because I really need and like the nice album user interface which SmugMug provides. But to archive documents – this is just the perfect solution.

The S3 is focusing on developers and the service is accessible via Web service. You can choose from many available implementations for their API – in Java, Python, Perl, C#, VB, Ruby – you name it. For non programmers, there are client tools available that completely abstract the storage access and make the S3 appear as just another drive. From many clients avialable, I have selected (as well as Steve and Leo did) the Jungledisk. Unlike some other services that are trying to stand between you and your storage, take over not only data flow but more importantly money flow (and often charge fat premium), the good guys at Jungledisk just want to sell you the client and let you pay directly only Amazon fees to Amazon. The price for the client is just $20 – it is no-brainer. For this price you will get client version for all three major platforms (Mac, Linux, Windows) as well as source code of the “engine” part of the solution – in case you want to access same data through UI or programmatically.

After installation, the S3 will appear as another disc under windows or network volume on OS-X (I did not try Linux – yet). Jungledisk contains scheduler and can do automatic backup of defined parts of your disc to S3 – or you can use it for manual backup, as a very reliable and somehow slower external disc.

The big issue with remote storage of sensitive documents is security: can you really trust with your precious data to a third party (even if that part is Amazon) ? I think this is up to anyone to decide – but the S3 comes pretty close to my definition of secure-enough system and Jungledisk plays along very nicely. All traffic between you and Amazon is of course encrypted (SSL) and your data is stored as encrypted as well, by default using a private key that Amazon provides you. This allows key recovery – but also allows (in theory) that someone on Amazon side could read your files. If you want however, you can generate your own key pair and use it to encrypt the data – and all you need to do is properly configure your client Jungledisk. Or if you are really paranoid you can encrypt your data even before they even get to Jungledisk and Amazon – if you want to exchange convenience and easy of use for more security. In the last two cases, nobody on the earth will be able to read your files – but if you loose your key, you will need few million years to break it :-).

Give S3/JungleDisk a try – you may like it too …
PS: If you are curious about performance and want more than my subjective feeling of “very reasonble” – read this.

PPS: The Smugmug actually *is* running on Amazon s3 – but because they use hundreds of terrabytes of space, obviously were able to get the storage for a wholesale price. The $59.95 / year membership of Smugmug would buy you on S3 about 15-25 GB storage and reasonable usage. As most people have less than 15 GB images, the Smugmug can actually make some money and employ really talented designers.

Good way how to improve your English


Audiobooks and podcasts can be an excellent way how improve your vocabulary and improve your English. If you are suffering of “written English only” syndrome, this may be an excellent remedy.

What is that funny syndrome ? Many people from information technology (including myself) actually had to learn English twice. During the late teens and university we managed to get reasonable command of written English, so that we could (and did) read the books. Mostly about computers, of course. With that, we managed to build decent vocabulary of words which we knew ONLY in written form, and for many of them have absolutely no idea how this could be pronounced. This had two consequences: we had hard time to recognize the word when we heard for the first time pronounced the way how it should be pronounced – and – which is even worse – often our own audio rendering was be a big surprise to native anglophones ๐Ÿ™‚ …

During second learning of the language, we eventually learned to recognize most of the words in spoken form and connected the two presentations – visual with spoken. What many people do to make this process faster – and what I did – is to use unabridged audio version of the book and follow along in printed book. Very efficient. You get printed copy of the book and as you listen, you can underline the words that you do not know or find worthy of of getting back to. If you are lazy enough, you can often pick a good translation of the book and look up how did the professional translator translate the word or the phrase.

Because the spoken language is quite different from the language used in books, these two sets of words will never be quite matching. There is however a good common ground between living, spoken language and the technical vocabulary of the books. It is podcast. If you had a written transcription of the podcast, you could do exactly the same thing as with audiobook. Indeed very few podcast have the transcription, because it is quite time consuming and most podcasters are barely covering the cost of producing the audio, but there is an excellent podcast that does have it: Security Now!.

And it not only has a transcription, it an excellent one – almost perfect to the word. You can even choose the format of the text: html, pdf or pure text. You can even reading from Steve’s web site and listen to the audio from the same site, all courtesy of

So if you are one of us not born in an English speaking country and want to impruv yer Engrish – go and grab the podcast, the transcript and follow along. There is nothing to loose – the only risk is that you may become very security conscious up to slightly paranoid – which may not be a bad strategy for living on-line ๐Ÿ™‚

And if you like the podcast or learn anything from Steve and Leo – whether in area of English or computers, look at Steve’s product for hard drive maintenance – Spinrite – which pays his bills and makes producing that great podcast possible.

Book review: The Dip


Subtitled “A little book that teaches you when to quit and when to stick” by Seth Godin.

So what is the dip ? It is the strange valley after you start with something, causing that after initial quick success you will get worse before you can get better. Obstacles that you either overcome – or you quit. Seth explains that these obstacles are there for a reason – they separate those who want something badly enough from those who do not. We know them in various forms. Back at the university, the first 2 years packed with math were the dip. Very little of the math we have had to learn was actually really necessary – other that learn you how to think, how to study and in addition to that, separate those who really wants to have that Computer Science degree strong enough.

Graphical rendering of the dip can look like this:

The Dip

Dip is the division between the amateur photographer and a pro, between the a coder that can write a Excel macro or a quick applescript to the guy who can write the whole system. It requires different skills, different tools and in process of acquiring them, you will experience pain and difficulties. I am still in the dip with Ruby and Rails – after initial excitement with “wow this was fast” now comes “how do I achieve this ? I can do it in J2EE and ASP.NET, but what would be the true Ruby/Rails way ?”.

The dip is not the only curve Seth is explaining. It is one of three “evolution scenarios” in pretty much any new venture: a job, school. The other two is flat curve of cul-de-sac, dead-end and the cliff – line going up to the breakpoint and then going down. With respect to quitting, there is a good point when to quit each curve: the flatline any time – the sooner the better, because it is just waste of time to stay and the cliff – any time before the breakpoint (after which is too late).

The book is not about the later two curves – it is about the dip. Seth describes various types of dips – in sales, manufacturing, education, relationships and impact of quitting in various phases. But the crucial question is when and where is it good idea to quit, what does it mean quitting and why quitting and failure can be different.

The old proverb says that “Winners never quit and quitters never win”. Seth Godin challenges this and explains which is right time to quit and right time to stick. His advice makes sense – as you know, those who never win and never quit are idiots :-).

The Dip is a very short book and has excellent content to length ratio, very little deja-moo that so often fills the business strategy books. Recommended.

Book mini-review: Breaking Windows


I’ve spent lot of time today reading. I am catching up with my reading stack. Between stuff I’ve finished was: Breaking Windows : How Bill Gates Fumbled the Future of Microsoft

The impression ? Mixed feelings. Maybe I’ve expected something different. Lot’s of details on internal politics and inner fights, not too flattering portrait of Bill G as control obsessed person with very questionable interpersonal skills. From technology perspective, very little what was both interesting and new. I can hardly tell how close to reality are the facts presented, but I often disagreed with the conclusion and analytics. Overall, it was probably worth the time spent on the book – the more you are into politics and relations, the more you may like it. If you are (as I was) expecting a view from more technology side and other stuff that matters, get another book.

Scary part was realization how every freaking email anybody ever wrote could be (and in fact, it indeed was) digged out and used to put its author into a fairly uncomfortable situation ! One should be very careful what one writes into an email, blog or even newsgroup … It does not matter that you later fix it, change it or even delete it. Google and other search engines will find it before, cache and store it for eternity …

iPod Touch eBooks reader – problem solved


As I noticed on Apple Website, the SDK for developing 3rd party applications for iPhone/Touch will be available in February. This solves the biggest problem – offline reading – because with SDK, storing a downloaded copy will be trivial. It also will most likely fix the annoying lack of updatability of calendar and add few more interesting apps.

It is only matter of time until the other eBook formats will be be readable on iPod – such as CHM or PalmDoc (non-DRM-ed version).

With only 8 days remaining to Leopard and this anouncement, it feels like Christmas is here early this year ๐Ÿ™‚

BOTD: Raganwald by Reg Braithwaite


Many good posts about programming, coding, business, aesthetics, with nice touch of wisdom, If you are into programming languages, do not miss this one, this and this. If you are more into process and management, try this and this or this. There also deeper and lighter stuff ๐Ÿ™‚
As Reg says about popular bloposts

One model for popular writing is that it panders to the reader’s prejudices. Plain and simple. People like writing that validates them and especially their ideas.

He certainly does validate mine, which is the reason why I made it blog of the day :-). Find for yourself.

Reading source code considered harmful ?


Every software developer will tell you how frustrating it is to trace problem in your application up to the point of third party library call (jar file or .dll / .so – make your choice) – and then have to resort to trial and error exploration, because you have no source code for that particular library module. For this very reason, most developers always prefer working with libraries or toolkits that comes with source code attached – if they have a choice. As a side benefit, these libraries are often free as a beer as well – but being able to understand the module is much more important as whether you have to pay license fee …

Couple of days ago there was an announcement about Microsoft publishing the source code for parts of the .NET framework 3.5. Few years ago such announcement would be a big deal. Now it was received mostly as “yet another me-too move on MS behalf” yawn – when many other really big companies are opensourcing many products, what options does Microsoft really have ? Robert Scoble calls it a “defensive move” and notes that as many times in last few years, Microsoft follows, rather then leads industry:

… this isnโ€™t open sourcing .NET, just releasing the source. Thatโ€™s even lamer cause the other two have actually open sourced and are accepting submissions from the community. Cool, but when youโ€™re last to do something does it really matter anymore?

Indeed, what was done was not really opensourcing, only publishing the source – because license under which the code is available is none of accepted open source licenses (you are e.g. not allowed to modify the source). But regardless of the legalese details about the license, it is a good thing that developers are able to read the code and use it while debugging, right ? This was my first thought after reading the news. But as several people pointed out, you should be really careful before you look at the code. Steve Vaughan -Nichols even considers this to be an deliberate, malicious attempt to trap open source development – especially the Mono project.

At first it sounds crazy – why would Microsoft want to stop the Mono that exports the .NET technology to other platforms and this way helps to remove one of its main disadvantages against Java ? The one possible explanation – sounding a bit like conspiracy theory offers Kevin Hoffman (btw, it is really readworthy blog) in this post:

Microsoft is going to shut up a lot of whining Open Source people who claim that MS is just a big closed system. At First. If you ask me, the real reason for them releasing this source code is to make it more difficult for the mono project to create replicas of WPF, WinForms, and ASP.NET. With the source code available for all to see, it is far easier for Microsoft lawyers who might potentially engage in law suits in the future to claim that the people working on the Mono project stole their WPF code or their WinForms or ASP.NET code from the public BCL instead of building it on their own.

and also

What if, let’s just say, Mono suddenly became as feature-complete as the regular .NET Framework. You think Microsoft wants to start losing server business (where it makes all of its real money…) because a bunch of .NET developers decided to run Linux .NET instead of Windows .NET?

This may sound pretty wild speculation, but unfortunately just few days after release the source code, a patent infringement lawsuit was filed against RedHat and Novel. Not directly by Microsoft, but one cannot help to suspect some involvement from Redmond, considering the remark of Steve Ballmer that

People who use Red Hat, at least with respect to our intellectual property, in a sense have an obligation to compensate us ..

Now is this really a plot to derail open source project(s) – or just a symptoms that Microsoft became so large that two groups do not coordinate their steps and while one group (“techies”) trying to evolve their platform and push .NET adoption release the source, other group (“lawyers”) at the same time goes after money and very real threat of open source competition. Is it a malice or just an exceptionally bad timing ? Should we trust that it is actually OK to look at the source code ? Should we really trust a company that claims that open source software violates 235 their patents ?

Make your own conclusions – but note that Mono development team contribution policy explicitly disallows even looking at the .NET source code.

If you have looked at Microsoft’s implementation of .NET or their shared source code, you will not be able to contribute to Mono.

That may indicate something. Even if you never plan to contribute an open source project, consider what impact would have a potential legal dispute regarding intellectual property for your company, your product or your project – should it happen – and should you or your team have been using the source code in question, even if for debugging. IP lawsuits and very hard and very expensive and guess who is better prepared for a long legal fight :-).

As for myself, I will stay away from the hot source potato and use just the .NET documentation, however bad it is.
There is, after all so much great elegant and free source code to read (even in C#) …

Book recomendations: Google Story, The Tipping Point


Thanks to sudden memory jump in my iPod (from 4GB Nano 2gen to 8 GB iPod touch) I have enough space to load some books in addition to podcasts. I normally do not like abridged versions, but the weather is getting worse so I do not get enough walking time for full versions. These two were both 3-4 disc long audio books.

The Google Story is interesting if you are into history of computing – because it describes the probably the largest transition in computing history – the evolution of World Wide Web to a platform and the evolution of the company that made the Web actually useful. I still remember how much time did it take in 1997/1998 to find anything relevant when the best way how to do this were directories (in early Yahoo! style) or AltaVista and hours and hours of paging through the irrelevant results. Then in early 1998 my friend Rajeeva (I was working in New Jersey at Merrill Lynch) made me aware of that company with funny empty looking page and strange name Google :). And now, 9 years later the shareprice of GOOG is well over $600 – just unbelievable.

The other book – The tipping point – is one of the “must reads”, often quoted on the Web. After listening to it I fully agree – it is an important book. So important that I am going to get a treeware copy of it and re-read it in full and to find out how much damage did the abridgment do. The recording was not as great as the Google story – it was read by the author, which is seldom the best option. True, an author is the person with most complete understanding of the message – but it takes different skills, a professional actor to make the message sound as good as it can. Despite of that, I am glad I listened to it and hope you will as well.