Subversion (SVN) with WebSVN, DAV and Apache2 under Ubuntu

July 4th, 2009 by Leandro Del Teso

Install Subversion:

Use the following command to install Subversion and the Apache2 module:

sudo apt-get install subversion libapache2-svn

Create a repository:

Use the following command to create a repository:

sudo svnadmin create /var/svn/new-project/

Add permission to the directory for the Apache user only:

chmod -R 775 /var/svn/new-project

chown -R www-data:www-data /var/svn/new-project

Configure Apache

Open /etc/apache2/mods-available/dav_svn.conf and add a new “virtual directory”:

<location /svn>
DAV svn

SVNParentPath /var/svn

AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd

AuthzSVNAccessFile /etc/apache2/dav_svn.authz

Require valid-user

</location>

Create the users password file. Use the following command the first time only, the -c parameter will create AND override the file if it exists:

htpasswd2 -c /etc/apache2/dav_svn.passwd username

To add other users or change password use:

htpasswd2 -m /etc/apache2/dav_svn.passwd username

In /etc/apache2/dav_svn.authz, add the users permissions

[/]
me=rw

[new-project:/]
other.user=rw

Finally, restart Apache so that the changes take effect:

apache2ctl restart

Upgrading Ekiga Softphone version in Ubuntu

June 19th, 2009 by Leandro Del Teso

Ubuntu (specially 8.10 Intrepid Ibex) comes with a very old version of Ekiga Softphone. In order to solve this we have a personal site at Launchpad, the PPA for Troels Liebe Bentsen.

Just follow the instructions described in this page: http://wiki.ekiga.org/index.php/Snapshots at the bottom of the page under the title “Ubuntu”.

Beware to use the information found at the PPA for Troels Liebe Bentsen page. That is:

1) the repository information for your Ubuntu version (for Intrepid use: deb http://ppa.launchpad.net/tlbdk/ppa/ubuntu intrepid main & deb-src http://ppa.launchpad.net/tlbdk/ppa/ubuntu intrepid main)

2) the repository signature found here.

Eclipse 3.4 Show and Hide Breadcrumbs

June 18th, 2009 by Leandro Del Teso

Eclipse 3.4 Ganymede comes with a very handy Breadcrumbs Navigator which creates a breadcrumb above the source code editor. To open it, right click on the Java Editor and choose “Show in Breadcrumb”. Or simply toggle this navigator with the toolbar button:

eclipse-breadcrumb
For those of you who are unaware of what breadcrumbs do, it is navigation aid used in user interfaces. The term breadcrumbs comes from the trail of breadcrumbs left by Hansel and Gretal in the famous fairytale. It is a method for users to keep track of their locations in programs or documents. They really aid in user friendliness of a programme.


A similar tool is used on sites like Gumtree, lets say you are looking for free stuff on Gumtree, the site will uses breadcrumbs to help make it easier for you to navigate around it. It’s simpler to find where you have been and where you are going. They provide links back to each previous page the user navigated through to get to the page you are on now. Breadcrumbs provide a trail for the user to follow back to the starting or entry point.

Monkey Island is back!

June 8th, 2009 by Leandro Del Teso

Today is one of the happiest days of my (digital) life. I found out two really great news on the net. After 20 years from the premier of the game, Monkey Island is back! Not just with one game but with six!

First of all, LucasArts is re-launching “The Secret Of Monkey Island”, the first game of the saga with a completely new look. Check it out:

You can find more info at: http://www.lucasarts.com/games/monkeyisland/

Secondly, the company Telltale Games is launching a completely new 5-chapter game based on Monkey Island. It will debut July 7. Check it out at: http://www.telltalegames.com/monkeyisland

This is probably my favourite game of all time. This game was my entry-point to the computers world. And, probably, the reason I became a software developer. I always wanted to develop games, but my professional life took me in another direction. However I don’t loose my hopes on starting developing games sometime in the future! (Maybe when I retired. Hehe)

Interesting way of defining Java exceptions

May 28th, 2009 by Leandro Del Teso
java.lang
ArithmeticException You are trying to use your computer to solve a mathematical problem that you cannot solve yourself. Read up on your arithmetics and try again.
ArrayIndexOutOfBoundsException See IndexOutOfBoundsException. The difference is that this exception refers to more than one finger.
ArrayStoreException You have used all your arrays and need to buy more from the array store.
ClassCastException You need to stay in the class or caste you were born into. Java will not accept dailits acting as kshatriyas or noblemen pretending to be working class. Note the spelling mistake (of caste) that was introduced in Java 1.0 and has not been corrected for backwards compatability reasons.
ClassNotFoundException You seem to have invented your own class. There are also caste systems that are not yet implemented in Java, most notibly the balinese caste system. For example, if you are a wesia, use the indian counterpart vaishya.
CloneNotSupportedException You are a clone. Find the original you, tell him what you want to do and then kill yourself.
IllegalAccessException You are a burgler that are running a Java program during a burglery. Please finish stealing the computer, leave the premises and try again.
IllegalArgumentException You have tried to protest against a previous exception.
IllegalMonitorStateException Please turn your computer screen back on.
IllegalStateException You come from a state that is not yet recognized by the UN, possibly Kurdistan or Palestine. Get a real citizenship, recompile your java code and try again.
IllegalThreadStateException One of the screws in your computer is threaded the wrong way. Please contact your hardware vendor.
IndexOutOfBoundsException You have put your index finger in an unacceptable place. Reposition it and try again.
InstantiationException Not everything can happen instantly. Please be more patient.
InterruptedException Tell your colleagues, room-mates etc. to leave you alone while you are working.
NegativeArraySizeException You have created an array with negative size. This can cause information to be lost and in the long run the Universe will be destroyed. Be happy that Java noticed what you were doing and DON’T DO IT AGAIN.
NoSuchFieldException You are trying to have a picknick on a field that does not exist. You can also get this exception if you try to visit an airfield that in fact does exist, but has been classified as top-secret. I’d give you examples, but then I’d have to kill you.
NoSuchMethodException Don’t use that method! Please, do things like we have always done.
NullPointerException You do not own a dog. Get one, for example a brittany spaniel, and try again.
NumberFormatException You are using outdated units of measurement, for example inches or pints. Convert to SI. There is a known bug that causes this exception to be thrown if you are very short or tall.
RuntimeException You cannot run fast enough, possibly due to obesity. Turn off your computer and go out and get some exercise.
SecurityException You have been deemed a threat to nationaly security. Please sit still and wait for the authorities to come and get you.
StringIndexOutOfBoundsException Your panties have shiften out of place. Adjust them and try again. You can also get this exception if you are not wearing any panties at all.
UnsupportedOperationException You are trying to have an operation that for some reason, ethical or otherwise, is not supported by Java. Examples of this include unneeded amputations, for example circumcisions. Please stop abusing your body and do not remove pieces of you child, damn it!

See more at: http://rymden.nu/exceptions.html

SVN back-up and restore

May 22nd, 2009 by Leandro Del Teso

To back-up my SVN repository, I have the following script:


#!/bin/bash
SVNDIR=/var/svn
DATE=`date +%d-%m-%Y`
TARNAME=svn_dump_$DATE.bz2
cd $SVNDIR
rm -f *.svndump
rm -f *.bz2
for repo in $(ls -d */)
do
filename=`basename $repo | cut -d\. -f1`
svnadmin dump $repo > $SVNDIR/$filename.svndump
done
tar -cvz -f $SVNDIR/$TARNAME *.svndump
cp $TARNAME /home/yo/svn_dump

Basically, it iterates thru all my repositories in SVNDIR and dumps them (the back up process itself) with svadmin dump.... After that it tars and compress the *.svndump files in one single file TARNAME and then copies it to its final destination /home/yo/svn_dump from where I grab the tar.bz2 files and burn them in a DVD or whatever.

I also have a cron job as follows:

0 0 * * 7 /home/yo/bin/scripts/svndump.sh >/dev/null 2>&1

which runs the script above once a week.

To restore a svn dump file I have to:
1) Untar the tar.bz2 back up file.
2) With the result I run: svnadmin load /path/to/reponame < filename.svndump
3) Set the correct permissions to the restored repositories. This is needed if you restore the back-up in a different path or computer.

That's pretty much what I do. My source code is safe in several different places (I'm a little bit paranoid, I know...)

Using SVN with Subclipse

May 2nd, 2009 by Leandro Del Teso

If you want to know the basics of SVN with Subclipse there’s no need to add anymore than what this article already says.

http://www.saltycrane.com/blog/2007/03/how-to-setup-subclipse-project-to/

Was really helpful and clear to me.

Java with GUTs

April 15th, 2009 by Leandro Del Teso

This is a great article on writing unit tests. It will give you a lot of background information and further reading links, as well as different points-of-view and opinions.

Part 1: http://www.javaworld.com/javaworld/jw-03-2009/jw-03-good-unit-tests-1.html
Part 2: http://www.javaworld.com/javaworld/jw-04-2009/jw-04-good-unit-tests-2.html

Enjoy it!

Help me get Incubus to my city!

April 3rd, 2009 by Leandro Del Teso

Demand Incubus in Cordoba!
Incubus in Cordoba - Learn more about this Eventful Demand

View all Cordoba events on Eventful

Vacations

March 30th, 2009 by Leandro Del Teso

I hadn’t wrote anything lately. The reason, I was tired, I needed some vacations. So now I got them and I’m back fresh as a lettuce (as we say in Argentina. Hehe).