Technically, I haven't owned a portable computer of my own until now. Sure, I've had work-issued laptops for the last few years, and I've borrowed laptops from friends from time to time. When I bought my mom's Asus EeePC, though, it was the first time I'd had one I could call mine. Everything else I own is a desktop system. :-)
For my Computer Science programming coursework at NCSU, I can easily do assignments at my desktop systems or from one of the campus computer labs. Once in a while, though, I'd like to grab a portable system and go somewhere else. I could use my work-issued MacBook, but if anything happens to it while I'm using it for something other than work, I could be held responsible for its replacement. Plus, even though it isn't but a 13" MacBook, it's still a little bigger than I want to haul around with me.
The EeePC had Xandros pre-installed, and I really like it. However, I didn't want the launcher. When I tried installing the
advanced-mode Xandros, I was excited because it had the look and feel I wanted. Unfortunately, any minor change in software bricked the system. I gave up on Xandros after about half a dozen repair installs.
Having participated in the
Foresight Linux project for some time, my next instinct was to try installing
Foresight Linux Mobile Edition. After all, I have friends and colleagues that have used the EeePC and other netbooks with FL Mobile with much success.
I loved it... but I needed to customize it to my needs as a Java programmer.
My first instinct was the fall back on my Conary system building skills and use
rBuilder Online to build a custom one-off of Foresight Mobile. However, the package structure was significantly different in some ways, and I didn't want to spend a lot of time figuring out how to make the system into a Java programmer's toolkit. So, I decided just to use my Conary system administration experience and add and remove packages until I had the system I wanted. Later, if I wanted to, I could capture this list of packages and create a "backup" system image of sorts using rBuilder Online.
For the following process, I used a combination of the Alt+F1 tty and runlevel 3 to drop to a command line as needed. I also made sure sudo was configured (in
/etc/sudoers) so I could use it without providing a password.
I started by removing the launcher, which was included as a dependency of the desktop switcher:
$> sudo conary erase desktop-switcher
$> sudo conary erase netbook-launcherThen, because I wanted to control my software at a command line instead of using the GNOME Package Kit tool, I removed the package kit:
$> sudo conary erase packagekitBecause I wanted to conserve space, I also removed some applications that I knew I would not use on this system. Most were modestly sized, so I probably could have done without removing them. (Browse the application launcher in the default GNOME install to see what GUI applications are installed, and determine which you want to keep and remove.) Here are the erase commands for the ones I removed:
$> sudo conary erase f-spot
$> sudo conary erase banshee
$> sudo conary erase pidginAt this point, I was still using 58% of the 4 GB solid state drive. I considered replacing GNOME with xfce to save even more space and further reduce processing overhead. For now, though, I'm sticking with GNOME for familiarity's sake, and it seems to be running efficiently so far.
Next, I had to add my programming tools for Java. First, I needed the JDK for Java 6 (aka 1.6), which also brings in the JRE as a dependency:
$> sudo conary update sun-jdkThe install took a few minutes on the Eee PC. Stopping to check my disk space after the update, I was up to 68% used of my 4 GB. I wasn't concerned about room for my data, since I had an 8 GB SD card mounted at
/data, ready for my programming work. However, the percentage made me doubtful I'd be able to install and use Eclipse as my IDE. I decided to give it a try, anyway.
I first tried installing just the runtime component (
eclipse-sdk:runtime), but when I launched the application, it said it was missing some necessary jar files. Then I installed the
eclipse-sdk package as shown here, which also brought in its dependencies: an earlier build of OpenSSL's library component, the Java components for Xalan and Xerces, and Python's runtime and library components:
$> sudo conary update eclipse-sdk:runtimeThis install took less time, and it bumped me to 75% of the solid state drive used. I was happy I had the tools I needed installed, and decided the next item of business was to evaluate performance of Eclipse as my Java IDE on the Eee PC with my customized Foresight Mobile.
Before I did anything, I rebooted the system and confirmed everything was still in working order. Everything was fine. Yay!
Before I launched Eclipse, I wanted to set up a workspace directory on the 8 GB SD card. I wanted to be sure my Eclipse work was stored there instead of in my home directory on the solid state drive. I changed to root, changed the owner on
/data was mounted, and made sure it was mounted correctly in
/etc/fstab. Then, I created a directory there named
eclipse-workspace-java6.
When I launched Eclipse, in the "Select a workspace" dialog, I pointed to my new
/data/eclipse-workspace-java6 directory. The splash screen since everything is set to be full screen by default (it tiled instead of expanding). The view was the same as using Eclipse on any system, but it seemed to take up a lot of space. I'm sure I'll continue customizing the look and feel from here until it's like I want it.
As I've done a little bit of sample coding, I've noticed that Eclipse seems to work great on my EeePC. I haven't pushed the limited to see how it runs alongside Firefox and other programs, but I'm confident I at least have the Java Programmer System I was looking for.