Working with Ubuntu: Infinitely Recursive Directory Structure on Windows

November 27, 2009 by ShriKant Vashishtha

If you are working in dual boot mode on Ubuntu with Windows, it might be quite tempting to use Windows drive as the shared drive to work on the same thing so that you can switch between OS based on your convenience. If you are working on a source code, you definitely would like to do that. However it creates some undesirable situations which are sometimes very hard to debug.
Read the rest of this entry »

Ubuntu 9.10: Installing RabbitVCS as Subversion Client

November 24, 2009 by ShriKant Vashishtha

As I am migrating towards Ubuntu, I felt the need of having TortoiseSVN like SVN client here also. Out of the options I searched for, RabbitVCS was the closest towards what I was looking for. However while installing it, I faced some issues. This post consolidates them along with solutions. Some of them had to do with minimal requirements of the installation but the one bugged me the most was an issue in RabbitVCS itself. When I had to restart nautilus (nautilus -q) after RabbitVCS installation , it just didn’t work. After some search I found out the same issue at here. If you apply patch mentioned in yet another related issue, it resolves the problem. After installing, I could use similar features as of TortoiseSVN in Ubuntu too and that was quite cool.

QuickTip: Springsource Tool Suite 2.2.1 on Ubuntu 9.10 – Import doesn’t work

November 22, 2009 by ShriKant Vashishtha

Today while working with latest STS on Ubuntu 9.10 I observed that it simply doesn’t work properly. While importing projects, nothing happened. Later I found out that it has to do with a bug on Eclipse 3.5 for which a workaround is available on Ubuntu and it works fine.

Set the following environment variable before you run STS.

export GDK_NATIVE_WINDOWS=1

Details of the bug are available here.

QuickTip: Postgresql DB Creation on Ubuntu

November 22, 2009 by ShriKant Vashishtha

Recently I resumed working on Ubuntu. While setting up the working environment, I had to setup Postgressql followed by creating a new database and stuff like that. In between I encountered certain problems and correspondingly found solutions also. Through this blog I thought things should be at one place for a newcomer.

From initial installation point of view https://help.ubuntu.com/community/PostgreSQL is a good resource. Though instead of using pgadmin3 I like to use SQuirreL SQL Client.

I had to create a new user which could be used to create a new database. Everything worked except postgres didn’t allow new user to enter into new database. I found a solution at http://www.cyberciti.biz/faq/psql-fatal-ident-authentication-failed-for-user and it worked like a charm.

QuickTip: Running Java with Classpath in Cygwin

November 4, 2009 by ShriKant Vashishtha

If you are running a Java program and your classpath is in UNIX separator style (‘/’ instead of ‘\’), you may be in trouble as java.exe is Windows specific executable which understands Windows separator and not UNIX style separator. To circumvent this issue in your shell script you can use the following:

java -cp `cygpath -wp $CLASSPATH`

instead of


java -cp $CLASSPATH

Working with Cygterm on Windows

October 11, 2009 by ShriKant Vashishtha

Quite a few of my colleagues use Ubuntu as OS for development purposes. For all these years, though I have been working on Linux and UNIX, I haven’t migrated to full-fledged Linux because of many reasons. As working with command line provides a lot of efficiency I use cygwin. However though cygwin works with DOS based “cmd”, I never liked using “cmd” in all these years just because it doesn’t look good compared to putty or similar softwares. With quite a few research I found puttycyg which is a putty extension of cygwin. For this to work, you should already have cygwin installed. After downloading it from http://code.google.com/p/puttycyg/ you need to create a shortcut on your desktop with following target:

$PATH_TO_PUTTYCYG\puttycyg-20090811\putty.exe -cygterm -

Invalid target release: 1.6 with mvn install

August 13, 2009 by ShriKant Vashishtha

After working for around an year in Flex, I moved back to Java platform again. While building the project I am working on, I saw the following error:

[INFO] ————————————————————————
[ERROR] BUILD FAILURE
[INFO] ————————————————————————
[INFO] Compilation failure
Failure executing javac, but could not parse the error:
javac: invalid target release: 1.6
Usage: javac
where possible options include:
-g Generate all debugging info
-g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info
-nowarn Generate no warnings
-verbose Output messages about what the compiler is doing

Logically I changed my PATH environment variable to make JDK bin folder point to JDK version 1.6. Even after making changes, it still didn’t work. It took me a quite a lot of time to figure out that maven uses JAVA_HOME variable for executing the build which was pointing to the obvious, i.e. JDK 1.5. I changed it and it worked like a glove.

Agile Maintenance Blog series

August 22, 2008 by ShriKant Vashishtha

As I have been working with a developer group responsible for maintaining softwares using Agile methodology and XP practices, I am writing some blogs at my employer’s blog site based on the experience we got while working with some maintenance projects. If you are interested, please take a look at Agile Maintenance|Xebia Blog

Cross-cultural differences in software development – Organizational patterns

June 17, 2008 by ShriKant Vashishtha

I hope it’s not any hidden fact anymore to realize the real value of Jim Coplien’s work on “Organization Patterns of Agile Software Development“. It talks about some of the very important factors other than pure technical for the software success. They are also intrinsic part of software development and we can never underestimate them. To begin with we need to accept them.
Read the rest of this entry »

Which caching algorithm to use when?

June 11, 2008 by ShriKant Vashishtha

Sometimes we really look for what kind of caching algorithm we should use in what situations. By default we use LFU. But many times we would like to know which one to use when. Here is a summary of the issues we face with different caching algorithms.

Least frequently Used (LFU) – LFU implicitly works based on the principle of number of times you access a particular key. At the face of it, it looks cool but as soon as you think about doing processing for each thread to count the number of times it is accessed, you’re implicitly inviting performance issues and handling concurrency issues. For high load, these issues really make a big difference.
Read the rest of this entry »