Thursday, October 2, 2008

Java Development on Asus Eee for two weeks.

The motherboard on my main work laptop flunked, and my replacement laptop for the last two weeks, while being on the road, has been an Asus Eee 901 netbook that i picked up for about 400 Euro. 

Specs: Windows XP Home, 1.6 ghz Single Core Intel Atom, 1gb mem, 12GB SSD, 8.9 screen, small keyboard, external mouse.

My development environment looks like this:
  • Eclipse Java IDE
  • Maven building and running Jetty server in the cmd window
  • Google Chrome for surfing
  • Firefox for development
  • MySQL Query Browser for SQL stuff, MySQL DB is running remotely
  • Java toolkits are Wicket, Guice, Hibernate++ 
  • Notepad++ for .css and HTML coding
  • Opus file manager

I did not have big expectations for getting much work done... So how did it go?

Findings:
  • Asus Eee is impressing me in areas of: 1) speed 2) battery life 3) noice 4) heating
  • When running on overclocked 1.8 ghz (change with dedicated button) I have not experienced any delays after I got Windows trimmed down... It actually feels fast...
  • Java development in Eclipse is workable. I am only showing the Package Explorer and the Java Editor views, and I often maximize the Java Editor by double-clicking the tab. Code completion and error highlighting is snappy.
  • HTML and .css editing works well in Notepad++. This gives me good syntax highlighting and more screen estate than in Eclipse, but not the code completion and error checking... Plus Notepad++ is light and fast! I really need that extra real estate for the HTML coding... Plus I would need to have some other editor than Eclipse running anyway for opening of random files not in my Java project...
  • Surfing in Chrome is nice! Have to say. Snappy and more real estate again without a need to go fullscreen. 
  • The Eee goes in and out of standby in a few seconds. Nice for battery life.
  • I get 5-6 hours of busy work done on a single charge. That is really nice. And that is without battery saving mode...
  • It does not get noicy. Never. It does not get hot. Never. Other small laptops I've had have always gotten hot and noicy unless on lowest performance setting.
  • The keyboard is small. I can touch type on it with little problems. Lucky for me that I have piano fingers.
  • The touchpad gets in the way from time to time when typing. Better after installing the touchpad driver from Elantech(why not installed by default?). Then you can turn off tapping support...
  • The screen is small. 1024*600 is not much. You must remove toolbars, statusbars as well as set the Windows taskbar to auto-hide. And all windows must be maximized... No overlapping or side-by side windows. And alt-tab is king for changing windows.
  • If you want to use your Eee for development I do think it's almost a requirement that you trim down your Windows XP installation. I did the following steps: 1) Remove all unneccesary services. If you google this you will get lot's of advice. I was surprised how many service can be turned off, about 15 I guess. 2) Uninstall all unneccesary software. You will need the disk space, especially on the OS partition. 3) Use a tool like WinPatrol to disable all unneccesary startup programs. Anything that is not a "Microsoft Corporation" program is a candidate. I disabled like 10 programs. Had to re-enable one of the touchpad programs as well as one program that enables the use of external headset.
  • It's smart to have your most used programs installed on the faster C: drive. This mainly means the browser. Everything else you install on the D: drive because space is limited on the C: drive.
  • Limit the number of open programs, as well as the number of open browser tabs. Use lightweigh programs instead of heavyweight alternatives. Don't install unneccesary plugins.
  • Turn off wi-fi, webcam and bluetooth. In fact I uninstalled bluetooth. I have most of my data in the cloud these days, so no need to connect to my phone... You can enable these programs with a single click.
  • Use remote services instead of local ones if you have a fast internet connection. I run MySQL remotely. And use web-based programs instead of local ones. I use Google Docs, Remember The Milk, Google Notepad and web based email. Then I have Twitter, Facebook and Google Reader on my iGoogle page. All of these services also have mobile versions as a bonus, no stupid syncing. (I never do syncing to PC on any computer btw, I only use services with mobile versions).
  • I haven't tested this myself but I imagine that keeping your project modules small helps on the performance in Eclipse. I guess this is not only true for the Eee. I always split my projects into several "independt" modules. I.e. web, services, utils, shared etc... Then you only keep the module you are working on open in Eclipse.
  • Don't run programs you absolutely don't need to get your job done... I.e messengers, skype etc...
  • Offload processing to your mobile phone. This is 2008. You can run your email and messenger on your phone, with excellent alert options. Then you open the program on your PC only when you need it. 
  • I use a bluetooth USB mouse when coding. For other purposes I use the touchpad.
  • I use it mostly with my 3G data card. I have a feeling it drags less battery than wi-fi?
  • Microphone and speaker works excellent. I have stopped using a head-set when using Skype as people say they can't hear the difference. 
  • My Eee starts up from scratch in 40 seconds. You see the desktop after around 35 sec.
  • I don't store anything secure on the machine (well, i hardly store anything at all, just copies of the source code). And don't visit any sites where I give away secure information. Then we can be a bit relaxed about the security, and gain some more performance...
  • www.portableapps.com is your friend. Why install programs on your machine when you don't have to? You can put these on a USB drive or in a folder on the PC. No more messed up registry...
  • I use RocketDock as a program launcher. It's just the fastest visual way to launch a program. And when it's fast to launch a program, you don't have to think twice before you shutdown programs. Remember to shutdown programs you don't use at the moment. It means more resources to the ones you have open. RocketDock and WinPatrol are the only convenience programs I have installed, that runs in the background. Both are very lightweight.
  • And: I really think you need to dedicate the machine for development purposes to keep the performance. I don't think the Eee can be both your multimedia machine, social networking hub and a development PC. You gotta cut the crap and focus on what you want to use the machine for. But then it's only 400 Euros, so buy 3 if you want it all :-)
Conclusion
  • Asus Eee 901 is a capable development machine on the road for Java, using a typical open source stack of products, as long as you take some precautions, and can live with the keyboard.
  • The raw performance of the machine is much higher than I expected. Ignore the bullshit from BestBuy etc about a netbook being a "companion" machine for web surfing, they are just protecting their laptop sales.... This is state of the art technology, with some of the best performance / battery / weight / noice/ heat characteristics of any machine this day, and if released a few years ago it would have easily set you back several grands of Euro/Dollars...
  • The main problem of the machine is the keyboard size. It takes some getting used to, and it's an advantage if you have piano fingers and/or experience with smaller keyboards. For me it is not a showstopper.
  • And if you can live with the restrictions you have a mega-cheap superportable workhorse that you can slip in the outside pocket of your bag without a need to drag a charger with you for up to 6 hours work.
  • And finally, I will never buy a PC without a SSD drive again. I credit both performance, battery life, noice, heat and weight features partly to the SSD drive. 
Happy eee'ing!


Delicious Bookmark this on Delicious

No comments: