Web/Tech

Apr 24, 2008

You've gotta love Platform Independence

It has been a rough week. Last week my MacBook Pro burned his logic board and then I managed to brick my PC. This week, though, I got a new mother board (with a decent Core 2 Duo processor) for my PC and I'm up and running.

Going back to Windows is annoying as expected. The worst annoyance comes from the difference  in the location of the Mac "Command" and the Windows "Ctrl", especially when it comes to copy/paste: in OS X it's Command-X and in Windows it's Ctrl-X, but the Command is placed where the Alt key is in Windows. I also miss Quicksilver and Exposé. I know, there are alternatives, but I just couldn't be bothered to install any.

On the upside, my environment is surprisingly the same. Here's some examples:

  • Eclipse - exactly the same. Right down to the plug-ins. The keyboard shortcuts are a bit different which takes some time to get used to.
  • Subversion - I just got my repository from my Mozy backup, installed the Subclipse Eclipse plug-in and that's it.
  • H2 database - completely cross platform. I didn't even bother to install it, just downloaded the generic package and unzipped it. Works beautifully and exactly the same (maybe faster?).
  • Firefox - yes, I have all my add-ons running. It's feels at home.
  • Open Office - I had to work on some documents. On the Mac I use NeoOffice. My very complex spreadsheet didn't even notice the platform change.
  • I use Cygwin which gives a Unix prompt, much like the one I get in OS X. Cool.

After some minor tweaking the application I'm developing was up and running. It was working beautifully. I was working fluently and almost forgot I switched the platform. I made some progress this week, but...

  • All my tasks are managed in OmniFocus - I couldn't find anything that can open my backup files on PC.
  • All my brainstorming and designs are in OmniOutliner format - again, I couldn't read it. Not even close.
  • I had some notes in xPad. I managed to partially recover the ones I needed.

Some after thoughts after this "fun" week:

  • The Mozy backup service allows downloading backups through a web clients. However, Mac backups are downloaded as DMG files. It took me time to open these on Windows. I finally used IsoBuster, which isn't free. I'm just wondering what's wrong with plain-old ZIP files.
  • I have backups of my sources and documents. I missed out on some important stuff - like Eclipse workspace settings (including launch configurations and what not), my test projects, etc. Luckily, I'm going to get my MacBook Pro early next week with the hard-disk intact.
  • It took me hours to install the Eclipse & Firefox with all the plug-ins and settings. This gave me a great idea - write a plug-in which synchronizes the settings and plug-ins. You could then download a distribution of Eclipse/Firefox with this plug-in and the plug-in will install your other plug-ins and do all the configuration for you. Sounds like a million dollar idea to me.

Finally, this is the price of going solo and not having an IT department behind you. I knew that when I "signed up". This helped reduce the anger and pain involved. I knew this is going to happen some day and I just said to myself: "well, today is the day".

Apr 21, 2008

Off the Grid

Last week, my MacBook Pro died on me, as I wrote in my previous post. I started working on my PC, which is a very old and slow machine (a Pentium 4).  After a couple of hours I realized that it won't  work without upgrading my machine's memory. However, I couldn't upgrade the memory since my machine would not accept 1 GB memory modules. They told me it has something to do with the BIOS, which needs an update. So, I got the BIOS updating software, updated my BIOS and, as you might expect, ended up bricking my PC. Later that day I got a word from the lab that my MacBook Pro has toasted its' logic board and they're sending in a new one (which will take time).

Two machines. Two totaled logic boards. Two days. I'm off the grid.

I have no problem being disconnected from the net. I usually do that when I take a vacation: no internet, no e-mail, minimal phone calls. However, sitting at home with no computer was a strange feeling. Luckily, I could browse my Gmail from my 3G cell phone, although this wasn't very satisfying. Now, I got a spare machine from my brother and I'll do my best not to trash it. I should be getting my PC back today with a revamped processor.

Happy Passover everybody.

Apr 14, 2008

Who Needs an Online IDE?

[Note: I wrote this article for EclipseZone.]

We've seen some hype lately around the next Eclipse release dubbed E4. The theme of E4 would be to take Eclipse online. This is not the first attempt (I wrote about it 6 months ago), however, now it turned from a sporadic effort to a full blown platform migration.

The Eclipse Duality

Before looking deeper into this trend, there's a much needed distinction to be made. Eclipse, as a brand, stands for two different entities: the Eclipse IDE (Integrated Development Environment) and the Eclipse RCP (Rich Client Platform). It's easy to get confused, but it's not the same thing. It's almost like the difference between Microsoft VisualStudio and the .Net platform.

The Eclipse IDE is a great tool for software development. You can use it to develop in Java, C++, Ruby and many other languages. On the other hand, the Eclipse Platform is a framework for developing Java based cross-platform desktop application. The Eclipse IDE uses the Eclipse Platform as its' base. The Eclipse IDE is the best tool for developing applications for the Eclipse platform, however, one may use any IDE which supports Java development for that purpose.

In this post, I will focus on the Eclipse IDE, looking forward to E4.

Who Needs an Online IDE?

The trend of taking desktop applications online and providing them as a service (SaaS) is not new. It was only a matter of time until it gets to the IDEs. It's taking longer for the IDE market to be affected, probably because it is a much smaller market than, let's say, word processors. The online word processors market is already saturated with products like Google Docs and Zoho Writer.

Zoho-creator-user-defined-functions

Most online IDEs are very specific (unlike generic IDEs like Eclipse), geared towards a given service or platform. The IDE is not the service being provided, but rather a tool for the user to consume other services. For example, the service can be an online database and the online IDE would allow developing solutions on top of this service: database definition, screen design, coding and even debugging. The deployment is seamless, using the provided service.

Examples for such services are Coghead, Zoho Creator, Bungee Builder, Microsoft PopFly and Yahoo Pipes. These are all proprietary services. Some use their own languages and all of these services are restricting the deployment to their servers. This is usually their underlying business model: providing the service for executing the complete application.


Heroku-code-editor

There are a few services which are more generic by nature, based on standard languages. For example, Heroku is using Ruby on Rails (RoR) and can be used develop and deploy a full RoR application. A unique feature in Heroku is the ability to export your code. Since the code is generic RoR, you can then deploy it on any server that supports RoR. Heroku is based on Amazon EC2 platform. I won't be surprised to see Python-oriented services based on Google's AppEngine soon. Another interesting example in this area is AppJet which uses JavaScript.

This online IDE roundup cannot be complete without mentioning CodeIDE and ECCO. Both provide completely generic online IDEs. They seem like perfect tools for people learning how to program, allowing the user to instantly start coding and see the results. Although these are not complete IDEs, they provide a glimpse of what a generic online IDE might look like.

All the services above have mainly two thing in common: they do not require any installation and moving from coding to execution is just a few clicks away. Usually, there are considerable overheads in IDE installation, environment configuration and server deployment and execution. This can all be avoided, saving a great deal of time (and agony, speaking from personal experience).

Nevertheless, none of these services is even close to the rich feature set you get from a true desktop IDE like Eclipse or VisualStudio. This gap is not unique to IDEs, though. People switching from Microsoft Word (or Apple Pages) to Google Docs will feel the difference. Sure, Google Docs has all the basic features. However, it is still very far from a full-fledged desktop word processor.

You can expect this to change. The following extract taken from an article in CIO magazine, quoting Gartner analyst Neil MacDonald:

The move to server-agnostic applications is still in its infancy but will soon have a major effect on enterprise computing. The legacy applications won't go away, even if the exciting stuff is being done on Internet-based apps, they said. But it won't stay that way. Today, 70 percent to 80 percent of corporate applications require Windows to run, but the Gartner analysts expect a tipping point in 2011, when the majority of these applications will be OS-agnostic, such as Web applications.

The Eclipse IDE is just joining the crowd. We're going to see an increasingly large number of online applications replacing their desktop counterparts. IDEs that won't offer an "online option" will be falling behind.

The Future

As I mentioned, there are some immediate benefits from having an online IDE, especially: no installation and instant deployment. IMHO, this is just the tip of the iceberg. Here are just a few thoughts of what we might expect:

     
  • Online IDEs open new capabilities of sharing and collaboration. Consider doing pair-programming with your colleague, which is sitting in another continent.
  •  
  • This can be even more useful when it comes to outsourcing and your coworker is an occasional developer. For example, I need the services of an expert DBA. I can find one online in elance and work together on my project immediately.
  •  
  • On-demand services open new possibilities: instead of buying a profiler for $500, maybe I'll just pay for the time which I'm using it.   
  •  
  • Mash-ups: I can use Google Page Creator to design my project's web pages and Yahoo Pipes to define a web service. All as part of the same project. Today, Eclipse is already a mash-up of OSGi services. Tomorrow, it may be a mash-up of web services or REST.
  •  
  • All the online services I mentioned in this post had to developed their own IDEs. I'm sure future vendors will be more than happy to use an existing online IDE and develop plug-ins on top of it. As the number of online services provided grow, the need becomes more imminent.

I'm just guessing here, but it does open up new directions and opportunities.


Oct 15, 2007

Eclipse Goes Online

Online applications are no longer a trend, they're a reality. The concept of SaaS, Software as a Service, started as small drops (online e-mail) and quickly became a surge. The Online Office, also known as Office 2.0, became a ruthless battleground for giants and smaller players, eating chunks from the desktop office applications market share (see this growing list of Office 2.0 applications).

The main reason is to reduce costs. The major costs are installation and maintenance (upgrades, support). In an organization, installing and maintaining individual machines, each with somewhat different software configuration, means huge costs. This can all be simplified if the only software you'll need is your browser. An upgrade is done only on the server and most client problems can be solved by cleaning the browser cache. One may say that this is the holy grail of the IT department.

It is just a matter of time until the trend reaches software development tools. There are some examples of "online IDEs", but none of them seems strong and generic enough to replace the desktop IDE. Most of the online alternatives are focused on developing specific applications for a proprietary online platform (like Coghead). The major players in the IDE world (Microsoft, Eclipse, IBM, Sun) are still investing in desktop solutions.

Two new technologies, which has been recently introduced, suggest an online direction for Eclipse. While it's possible that none of them is adequate, this is a strong indication on the future of the platform. I don't think that the desktop version will fade away in the near future, from the same reason that desktop office applications are still with us. Nevertheless, it is possible we will see a viable online alternative to the desktop IDE soon.

The first technology is RAP, Rich Ajax Platform, a new Eclipse sub-project, aimed to "enable developers to build rich, Ajax-enabled Web applications by using the Eclipse development model...". In other words, it gives you an online Eclipse-like environment, which you can use to develop your own applications. It works a bit like Google's GWT: you use a Java API, closely resembling the basic Eclipse SWT API, which produces HTML and JavaScript for you. The results are impressive, but it does require developing your plug-ins specifically for RAP, so you can't just run all the current Eclipse plug-ins you have, like the Java Development Tools.

The second technology is from IBM AlphaWorks, called EcliFox or "Eclipse on the Browser" (IBM are known for bad names :-). It's "An Eclipse plug-in that enables browser-based access to Eclipse". Instead of using HTML, this plug-in converts the SWT controls to XUL. This means it will only work with Gecko-based browsers, like Firefox. However, it holds the potential of running existing plug-ins, which brings us closer to the goal of having an online IDE. The demo is impressive as well.

These are very different technologies, but the goal is the same: to take the Eclipse platform on-line. I'm thinking of the amount of time spent of installing and troubleshooting the Eclipse installations in my previous project and it makes a lot of sense. This is something to keep an eye on.

Sep 07, 2007

Traveling again, this time to Champaign, Illinois

I'll be traveling to Champaign, Illinois, next week, to give another training. It's the second time I'm giving a training for Amdocs since I left. It's a good deal for me, it's good to have some income (allows me to extend my startup "runway") and it's also an opportunity to maintain my training skills. It's also a good break, although, last time, it was a bit long and it took me some time to get back.

I haven't been to Champaign, but people say there's not much to do there. For me it is exciting, since it is an opportunity to visit the NCSA (National Center for Supercomputing Applications) at UIUC (University of Illinois at Urbana-Champaign) For those of you not familiar with the terms, NCSA was the home of an interesting application back in the mid 90's called NCSA Mosaic. Mosaic was the first popular graphical web browser. I remember downloading the early Alpha from the NCSA site. I was a student in the Technion back then. It was a world of e-mail, FTP, Usenet and Gopher before HTTP came along. Mosaic was amazing from the very first moment, although there was only one site you could browse. It's a piece of computing history now.

BTW, while on the subject, one of the creators of Mosaic was Marc Andreessen. He has done very well with some very successful ventures, the latest is Ning. He also writes a great blog which I recommend.

See you in Champaign, Illinois.

Aug 29, 2007

Finally, a new Bloglines

I can't begin to describe the importance of RSS feeds and blogs. I spend at least half an hour every day reading RSS feeds, usually more. It's much like reading the newspaper or watching the news. In fact, I find that a growing number of RSS pieces are finding their way to the printed paper, usually a day or so later.

I have almost 150 feeds in my growing list of RSS subscriptions. If I would read them all every day, that will probably take most of the day... that's a huge issue, which is yet to be solved. But this is a topic for a different post. Today I'm focusing on the RSS reader (or aggregator).

I'm an addicted Bloglines user for more than 2 years now. I ALWAYS have a tab with Bloglines open. I believe I've tried most (if not all) the online RSS reading solutions out there and Bloglines is the best. Period. Well, the new Bloglines beta is finally here. The Bloglines team was lazy for the past two years, releasing only minor (and useless) additions. But not this one, this is a whole new interface.
Or should I say that the best just got better...

If you're using another reader, it's time to check out Bloglines. Yes, even you Google Reader users. Trust me, I've tried it switching several times and returned to Bloglines at the end of the day. If you're using Bloglines, it's time to check out the new Beta. And, if you're not using any RSS reader... it's a good opportunity to start.

Personally, I think there's a lot of untapped potential around RSS. It will be interesting to see what Bloglines has up its' sleeve for the new beta. It's something worth tracking.

Aug 24, 2007

The Sun goes down on Java?

Sun Microsystems announced yesterday that they will change their stock symbol from SUNW to JAVA. Check out the following blog post by the CEO, Jonathan Schwartz. It pretty much reminds me of the move Apple made a few months back, when Steve Jobs announced that it will change its' name form Apple Computer to Apple. It's a marketing move, no doubt. I don't see a lot of real substance behind it.

Why is it good for Sun?  As their CEO points out, the Java trademark is far more ubiquitous than Suns'. Let's face it, other than us computer geeks, who knows about Sun?  Do a quick poll, ask your mother, your father, your 60 years old aunt, do they know Sun? How about Java?  I can guess what will be the answer.

Yet, there's a sense of betrayal. One of the best things about the Java platform is the open standards. There's no Microsoft who is the main (read: sole) vendor behind the platform. You have a choice of vendors. You know that decisions regarding the future of the platforms are being made by the community and not by one company that emphasizes its' goal to make more profit.

Java is finally gathering the momentum and it is now a very successful platform.  But one of the key driver behind this success was the fact that this is an open platform. If it was just a Sun proprietary platform it would probably be as successful as Sun's NetBeans IDE (sorry for the cheap shot, I had to take it). It's true that Sun is leading Java for a long time, but it does not own Java. Java belongs to the community now and it is too late to take it back now.

But, no fear. Sun is not claiming to be Java's sole proprietor. Coming back to what I said at the beginning, this is just a marketing ploy, nothing more. Sun cannot reclaim Java even if it wanted to. But even if it could, why would it?  The community is the reason for Java's success, so why cut off the branch they're sitting on?

Now, I like to see the Java platform moving forward. Sun is constantly pushing the Java platform to new levels. Hence, in general, I appreciate Sun's efforts around Java. Hence, I would like Sun to stick around and keep stirring the Java platform. Hence, I would like Sun to be a successful company: the more profit they make the more money they invest in Java. If they lose, the platform loses. If they will perish... this could be a death blow to Java. So, I'm saying that Sun should do whatever it takes to survive. We need them. And if they need the Java flag to keep their head above the water, let them use it.

Aug 21, 2007

Did you know: there's a browser compatibility issue

A few days ago I came across a poll posted on the web site of one of the major Israeli banks. The poll was asking: "what was your browser of choice". I'm not sure exactly where the poll was posted on their site. I got the link directing me to the poll, but I couldn't find it on their main page. I'm guessing that their goal is to decide whether supporting Firefox is a requirement. Today they support only Internet Explorer.

Can they infer the results from their site statistics? Of course not. People who use Firefox on a regular basis already know that it doesn't work there, so they use their site with IE.

Can they really get a good answer from that poll? In my opinion - no, they can't.

Let me ask you a question: what browser are you using? If you answered "Firefox", "Safari", "Opera", "Internet Explorer 7" or any of these, I think you're a minority. Most of the people would say: "I'm using a web browser". I'm saying that most people are not really aware that they have a choice. They install windows and use the browser they get. They don't wonder if they can get a better browser, from the same reason they don't wonder if they can get a better operating system.

From that reason, such people won't even bother taking the poll. Firefox serves the innovators and early adopters. It is also very popular among techies, which are innovators by definition. In my blog, for example, IE users are about 15% of the population. Chances are you're now using Firefox to read this post.

So, my point is, that most people don't know and don't care. It seems like browser compatibility issues are a hot topic. But it's really just a hot topic for those who care.

Jun 10, 2007

It just works...

I've spent only a few hours with my new shiny MacBook Pro. OK, so it is very fast, the OS is one big eye-candy and everybody knows that.

I want to emphasize a number of simple issues, just for fun...

It just works. Out of the box. I turned it on and it starts with a registration process. For that you need to be online. I have a wireless network in my apartment. It immediately found it, I entered the password, and that was the last time I had to deal with my network ever since. I just remember the agonies of connecting my ThinkPad T41 to my Wifi... Sometimes it worked, sometimes not so much. But on my Mac it just works ever since. You boot it, it's up. You don't need to worry about it.

And Bluetooth... People who have PCs with Bluetooth and try to connect them to their mobile phones in order to download some pictures can share the grief. The drivers are just horrible. It's a matter of trial and error. On my ThinkPad I had to install it about 10 times until it decided to work. It worked on occasion, until one day it decided not to work anymore. On my home PC, I have a Bluetooth dongle. It worked for about 5 minutes and not it does not. On the Mac - it was just a few clicks of pairing my device and that's it.

Sharing data and a printer with my PC was a 1 minute job.

And don't get me started on FrontRow... It is just soooo cool. I connected my digital camera, it was recognized immediately. I downloaded all the pictures in a click. I took the remote that came with the machine and after two more clicks I had a slide show of my pictures with a soundtrack. And everything is just there, out of the box. No installation of setup needed.

I'm going to enjoy this machine.

Jun 09, 2007

I'm a switcher !!!

I got my MacBook Pro today. I waited for the recent update to get my hands on one. I got the stronger 2.4Ghz beast and I'm now writing this post on it. It is soooo shiny....

This fulfills a dream which began 20 years ago, when I first started working with Macs. I started with the Plus and SE when I was in high school. As a student I was working on a Quadra. This was a true power house back then. However, I never owned one. And now, I do.

It actually made a lot of sense to buy the MBP now. I had to get a new machine, my PC is 3 years old and it shows. I had to get a laptop: there's no point in working at your own schedule if you cannot relocate to your local coffee shop for a couple of hours. So, I wanted to get one machine. Which means it had to be a strong one. I spent enough time at my previous job waiting for my ThinkPad T41. But it also had to be portable. Now, all the laptops at this range start around $2000. So, overall, I probably paid a bit extra, but not a whole lot. I can run Windows on my laptop and other laptops don't ran Mac OS... (at least not legally)

As a professional, I should get the best tools for the job. My time is worth a lot more than the tool. And that's exactly why I'm here for. To build better tools in order to allow developers to waste less time and get more actual work done. Focus on creating.

PS. I truly hope that once I start recruiting developers I'll have the funds to get them Macs as well.

Mymac