GNU & Linux

Run JRuby From Within A Jar And Package Your Own Gems Along

Jruby-in a jar already bundles rspec and rake, so the goal was to find out where it gets packaged.

Download the jruby source zip, extract it and open the build.xml file, search for “rspec” (there’s two occurences) and you’ll find that it’s passed in as an argument to the gem installer, add in another line with “cucumber”:

<target name="install-gems">
  <property name="jruby.home" value="${basedir}"/>
  <java classname="org.jruby.Main" fork="true" maxmemory="${jruby.launch.memory}" failonerror="true">
    <classpath refid="build.classpath"/>
    <classpath path="${jruby.classes.dir}"/>
    <sysproperty key="jruby.home" value="${jruby.home}"/>
    <arg value="--command"/>
    <arg value="maybe_install_gems"/>
    <arg value="rspec"/>
    <arg value="rake"/>
    <arg value="cucumber"/> <!-- add cucumber -->
    <arg value="--env-shebang"/>
  </java>
</target>

Then run ant:

$ ant jar-complete

To verify that everything is fine:

$ java -jar lib/jruby-complete.jar -S gem list

*** LOCAL GEMS ***

builder (2.1.2)
cucumber (0.2.3)
diff-lcs (1.1.2)
polyglot (0.2.5)
rake (0.8.4)
rspec (1.2.2)
sources (0.0.1)
term-ansicolor (1.0.3)
treetop (1.2.5)

Great we’ve now managed to package jruby-in-a-jar with some additional gems. Now to run cucumber on jruby in eclipse.

Flash Player on 64-bit FireFox on Linux

Here’s how to get your firefox running on a 64 bit Linux machine to work with 32 bit plugins. I’ve tried this with gentoo, it should work with ubuntu or kubuntu or any other distro of your choice.

Download and install nspluginwrapper from http://gwenole.beauchesne.info/projects/nspluginwrapper/.

For ubuntu, there are some instructions on how to do this here (http://ubuntuforums.org/showthread.php?t=341727). On gentoo I had to

 #emerge nspluginwrapper

Download the flash installer from the website here: http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_9_linux.tar.gz. Untar the installer:

$ tar -zxvf install_flash_player_9_linux.tar.gz

Step into the installer directory:

cd install_flash_player_9_linux

Edit the installer file:

vi flashplayer-installer #use nano or gedit if you like

Navigate to line 47 (this inside the function exit_cpu) and comment out the line that says exit 1.

# the architecture is not supported
exit_cpu () {
  echo ""
  echo "ERROR: Your architecture, \'$1\', is not supported by the"
  echo "       $PRODUCT installer."
  echo ""
  #exit 1   # this was line 47
}

Install the flash plugin, I used the default paths, you can choose the paths according to what you have on your computer (I used /home/ketan/.mozilla)

./flashplayer-installer

Now verify that the plugin actually got installed in the directory that you specified

$ ls /home/ketan/.mozilla/plugins

Use nspluginwrapper to create a 64-bit wrapper around this 32 bit plugin. (thanks to Lance for a typo update)

$ nspluginwrapper -i /home/ketan/.mozilla/plugins/libflashplayer.so

Now restart firefox, that should get you to run firefox with flash player.

Finding a Class in a ton of jars

This is how I do it. Create a script I call it findclass in some location on the path. /usr/local/bin is a good place, I prefer $HOME/bin. Remember to chmod this script to 755.

#!/bin/bash
find -iname "*.jar" | xargs -i unzip -l {} | less

In case you are new to less, here’s how you navigate:
1. To find a particular class say com.xyz.abc.MyClass, you type:

/com.xyz.abc.MyClass

2. To find what jar contains this class, you type:

?Archive:

CCTray in Java

Akshay and me have been pairing since a couple of days to hack together a java version of CCTray written using SWT. This version of CCTray can connect to CCNET and cc.rb.

A lot of folks use *nix and the existing CCTray is not much help.

If you wish to use this pre-alpha release, feel free to write back. It’s not all that configurable, so you have been warned :)

Oh, yes, BTW this release depends on issue #899 of CCNet dashboard, and issue #118 of CC.rb. You can vote for these issues to be resolved to see CCTray in Java released a bit earlier.

Finally a screenshot for those really interested.
CCTray in Java

Musings on installing Lotus Notes 7.0

The Important Disclaimer: ALL VIEWS POSTED IN THIS PARTICULAR ENTRY ARE THAT OF MY OWN AND DO NOT (NECESSARILY) REFLECT THE OPINIONS OF MY EMPLOYER.

That said, this is in addition to a HOWTO on installing the Lotus Notes 7.0 Client on Ubuntu.

I’d rather that a very popular lotus notes fan tell you more on why lotus notes is a great tool! What I focus here is on some inside stuff that I figured while installing the lotus notes client on my laptop. Stuff that could have possibly been done in a far better way.

I did this merely as an “educational exercise” to understand if it would be possible to fool the installer into thinking that all is fine, so that it can go ahead installing lotus notes. To give you a brief about how the installer works:
Read the rest of this entry »

HOWTO: Installing Lotus Notes 7.0 on Ubuntu

This morning I tried installing Lotus Notes 7.0 on Ubuntu Edgy-Eft.

I ran into the notoriously infamous “Could not validate mozilla version” message, that I’d seen a lot of times before. In case you also run into this problem. Here’s a howto to get you out:

Note: These steps are to be run as root

1. Install libmotif3:
sudo apt-get install libmotif3

2. Install gtk1.2:
sudo apt-get install libgtk1.2

3. Remove dash:
sudo apt-get remove dash

4. Create a location where you want to install Lotus Notes:
sudo mkdir -p "/opt/IBM/Workplace Managed Client/"

5. Make this directory writable by you:
sudo chown ketan.ketan "/opt/IBM/Workplace Managed Client/"

Note: None of these steps are to be performed as root

1. Extract the Lotus Notes package:
unzip /opt/downloads/C93D1NA.zip -d notes

2. Change into the directory where you just extracted notes:
cd notes

3. Extract the Lotus Notes installer:
unzip Personality.zip

4. Change some file permissions:
chmod 755 setuplinux.bin setup_wct_platform.bin

5. Copy the setup file to the correct location:
cp setuplinux.bin updateSite/features/com.ibm.workplace.notesinstall.linux.feature_7.0.1.0000-0900/bin/linux

6. Now we are all set up to install:
./setup_wct_platform.bin

That should be able to get you through the installer. Add a comment on this entry in case you are unable to get things done.

Update on 23rd March, 2007: Does lotus notes not work even after these instructions ?

Of Women, Technology and Open-Source

With all love and respect to my sisters in product management, marketing, sales, finance, HR, 50 years of IT history strongly suggests that technology companies will ever continue to be founded by entrepreneurs from engineering backgrounds; and if women never become engineers in sufficient numbers, they will disproportionately fail to experience the upper end of the range of IT outcomes.

Read the rest of this entry »

ECJ: The Eclipse Java Compiler

Wayne Beaton writes more on the eclipse java compiler.

Novel software drives '$100 laptop'

The page writes:

“The XO machines are still being tweaked, and [OLPC UI] Sugar isn’t expected to be tested by any kids until February. By July or so, several million are expected to reach Brazil, Argentina, Uruguay, Nigeria, Libya, Pakistan, Thailand and the Palestinian territory. Negroponte said three more African countries might sign on in the next two weeks. The Inter-American Development Bank is trying to get the laptops to multiple Central American countries.”

PS3 support on kernel 2.6

Sony has recently added PS3 support on kernel 2.6. This comes at a time when Microsoft Says PS3 Linux Not ‘Competitive’ To XNA.

Interesting… reminds me of Steve Ballmer saying:

You know who I think out biggest competitor is? Linux. Linux, Linux, Linux! Burn it on your foreheads, people: Linux!

Amen…