March 2008

Mar 31, 2008

If you're a bit like me, you now have about 20 tabs open in your browser. Let's not go into the psychological reasons for that, but it probably have something to do with a very short attention span.

I found this cool Firefox extension which changed my browsing experience. It's called "Tab Tree Style" and it shows the tab headers on the left side rather than on top. The result: I can have more tabs and easily see all of them at a glance. Navigating between the tabs is easier than ever and I get full size tab headers, so if a site shows information in the header I can see it. For example, GMail shows the name of the current folder. No more cramped headers on the top of the page. The cost is screen real-estate on the left. This is not a problem for me since I use a wide screen and more web sites are designed for regular resolutions. Highly recommended.

I was so pleased with this transition, that I immediately thought about my IDE. I usually have at least 20 files open. Even on my wide 20" monitor, I see about 7 headers. In most cases, I work with two files, side by side, which means I see even less headers. Navigating the rest of the files is a pain. So, I looked for a solution.

I found an interesting plug-in called "EditorViewer". This plug-in provides a list of open editors. Since this is a separate view you can place it where you please. I placed it to the left of my editor.

It's close to what I was looking for, but not exactly. The plug-in seems to be deserted. Nobody touched it since it 2005. You can download it here (download link is missing from the site). There's no "Eclipse update site", but it does work on Eclipse 3.3.1 (and on a Mac). I think it should take less than a day to write something which fits my needs, so maybe I'll write myself, if I can find some spare time :-)

Mar 27, 2008

This week, I upgraded my MacBook Pro to 4 GB RAM. Two main reasons for doing that. First, I need to work on Windows with VMWare Fusion and I find that it could be painful with 2 GB. It works, but it does slow down the machine. The second reason was the price. Memory became incredibly cheep. The memory itself was about $110 (bought on crucial.com, in Israel you can get it directly through crg.co.il). Buying a $2500 laptop and skimping on a $100 sounds plain stupid.

I got the memory installed and started working. I had 2-3 king-sized instances of Eclipse running along with all my other applications including Firefox with over 20 tabs, Mail, Calendar, Skype, Adium, OmniFocus, OmniOutliner, etc. I had VMWare Fusion running with Windows Vista. I had 0 "Page Outs". Again, 0. Nada. No swap. The machine was running smoother than ever. Those of you who don't understand what the big fuss is about, are either not familiar with the term "Page Outs" or not using Windows. On Windows, no matter how much memory you have, you're going to swap and it will slow you down.

Mar 16, 2008

This week, EclipseCon 2008 takes place at Santa Clara, California. Not all of us are fortunate to have the means or sponsors to participate. One of the interesting sessions will be an open discussion of the future of Eclipse 4, aka "e4". Since I won't be able to participate, here's some of my opinions on the future of the platform.

The Future of Desktop Apps and Eclipse

IMHO, Eclipse RCP today is probably the best framework for cross-platform desktop apps development. It's simple: if you want true cross-platform development, Java is your best bet. If you're writing a desktop app in Java, Eclipse is your best option for a decent UI. Almost every time I see a new cross-platform desktop application written in Java but not using Eclipse, my immediate reaction is "it's so ugly, why didn't they use Eclipse?". I've seen Eclipse RCP based applications which look so good that it's hard to tell that Java is behind the scenes (e.g. XMind).

There's a bigger question: what's the future of desktop apps? I don't want to open the debate, but it is my opinion that they're not dead yet. Nevertheless, products like Microsoft Silverlight and Adobe AIR, are a big threat to Eclipse in this area. They provide the richness and ease of development of a desktop app with the deployment capabilities of an online app.

Consider this: you'll be able to use simple tools like Visual Basic to develop a rich desktop application and then deploy it over the web to your users and run it on multiple platforms. If Eclipse plans to stay in this game, this means that developing an Eclipse application should be as easy as developing a Visual Basic one. I'm talking about wizards, WYSIWYG editor, etc. It's possible that we will never get there, and that's fine. However, the focus should shift back from Eclipse as a Rich Client Platform to Eclipse as (the best) IDE.

Top Five Challenges for Eclipse 4

Performance - speed of execution, responsiveness of the platform and memory footprint. This has always been the Achilles Heal of Eclipse. It must be improved. I don't care how. Write a dedicated JVM optimized for Eclipse. Just make it work.

Easier Deployment - installation, automatic updates, plug-ins installation, configuration sharing between team members. It simply doesn't work well. No wonder there's a market for "Eclipse Distributions" like Genuitec Pulse. Take an application which works well with updates and add-ons, like Firefox, and follow its' model.

Cool UI - I want rich UI in my IDE. I want animations, fading elements and cover flow. As a plug-in developer, I want an arsenal that will enable me to quickly create an application that will dazzle my users. Spend some time on a Mac OS X and you'll quickly see my point.

Better Customization (for the end-user) - I want to change my toolbar, change my menus, record and edit scripts to automate repetitive tasks. I want these changes to apply to new workspaces that I open. I want to be able to share my scripts with teammates. Oh, I should be able to do that without reading a book about it.

Documentation - As a plugin developer, I often find myself struggling to get my hands on decent and up-to-date developer documentation. Code should not be allowed into production without proper documentation. This includes not only Javadoc, but also proper online help, tutorials and reference. Moreover, the information should be easily accessible from the IDE. I think about how easy it was to get this information in Visual Studio. Follow this model.

This is from the top of my head. What's on your list? the comments are open.

Mar 13, 2008

I read a number of Microsoft related articles in the passing weeks that really surprised me. It seems that there's a different wind blowing from Redmond. The best way I can describe it is that Microsoft is trying to fit in the Web ecosystem rather than reinvent it. They do innovate, but they finally understand that they're not operating in a vacuum. When it comes to the web, they're not the biggest player out there.

Two major developments that we've seen:

IE8 will finally be based on standards and will render pages by the standards as a default. True, the first thing that all the nonstandard sites will do would be to tell IE8 to use "IE7 standards". So, it's not that big of a deal, bug it's a step in the right direction.

The battle for Silverlight dominance is not going to be easy. The main opponent is Adobe AIR. The tools are racing to become mainstream by getting an increasingly large sites be based a particular platform. Adobe got a head-start with Flash and they will not give up without a fight.

There are two aspects here: technology and marketing. I'm not a marketing person, so I'll focus on the technology. Even I can see that, to market their product, they need all the right answers to the technical questions. Back in the 90s, when ActiveX was introduced, when you asked: "Will my ActiveX-based site support Mac/Unix?", the answer was: "Dude, we are Microsoft". These type of answers just don't cut it anymore. Even Microsoft realized it and they offer broad support for a wide range of end users.

There's still a question of the development tools. There are many web designers and developers using different platforms. Mac OS X is very popular among creative professionals and freelancers with no corporate obligations (like myself). Adobe is providing all the right answers with cross-platform development tools: Dreamweaver CS3 and Aptana StudioAdobe Air Eclipse Plugin, which is free (at least in the base version) and open-source.

Mar 02, 2008

It's no secret that I love apple products. One of the great things about them is that using them is pure joy. If you laid your hands on an iPod, iPhone ar a Mac, you know what I mean. Steve Jobs defines Apple as a software company. It's true that they sell hardware, but only to support their great software.

However, even the best has its' worse moments. I have an Apple Wireless Mighty Mouse. I find it to be a good mouse. I know that many people don't agree, but I enjoy using it. There is one annoyance, though. Once the mouse batteries reach 30% two things happen: the blue-tooth icon in the menu bar starts blinking and I start getting the following frightening messages every time the machine wakes up (and even more often).

The blinking icon is the worse. It is incredibly distracting. Everybody knows that blinking text and icons is a big no-no in user interface design. I would prefer a different color, perhaps. You can remove it, but it will come back to haunt me after a short while. Now, just to make it clear: 30% batteries means you have about 2 weeks of usage left with the simple batteries that I use. Get better batteries, and you'll be using it for a month with that blinking icon. Besides, look at the message above: "please replaces the batteries as soon as possible". Why? You still have 30% left. It's not a very "green" thing to do. Just a waste of energy and money.

Come on. There's nothing critical here. I have a stock of spare batteries at my disposal. Besides, even if I don't, I can still use the track-pad. Just for comparison, when the laptop battery is at critical level, there's nothing blinking, the battery icon in the menu-bar just changes color. You get one dialog box, 10 minutes before it dies.

I'm still using Tiger (Mac OS X 10.4) and I hope this has changed in Leopard. I should be migrating soon.