Announcement

Saturday, February 13, 2010

svnplot - one year later

About one year back (Dec 2008) I changed job. Between two jobs I had some free time. I wrote first version of svnplot during these 4-5 days. Then I released it as 'open source' project on Google Code. Soon many people started using it. I started getting the bug reports filed on the project page. To me, this was a indication that people are really using this project. 
  1. I got bug reports from developers/scientist working in places like CERN, AMD.
  2. One of the bug reports mentioned that "I'm using SVNPlot on over 100 of my users' repositories"
  3. Svnplot was mentioned in discussions on StatSVN forums
  4. StatSVN developers added the feature of  tag cloud of commonly used words in commit messages inspired from the similar feature in svnplot. So as mentioned by  Benoit "it is now a bilateral inspiration". Since initially features in svnplot were inspired from excellent StatSVN project.
Many people contributed bug fixes and improvements to svnplot.
  1. Chris Glasman added  support for repository authentication.
  2. Oscar Castaneda developed/contributed code to convert SVN logs to output files can be used in CMU's ORA and Apache Agora as as part of Google Summer of Code 2009 (GSoC09). You can read the details of his contribution here.
  3. kitpz2 contributed code for better pie-chart display of directory sizes.
I think the key advantage of  svnplot is it doesn't require a checked out copy of repository. Also it is easy to hack.

So what's next ?
 
I am now working on next version of svnplot (0.6). The key new feature will be graphs be generated on client side with javascript and HTML canvas. This will reduce the dependency on matplotlib and it will be easier for users to deploy it.  After checking few Javascript charting libraries like Flot, jquery.Visualize plugin, I decided to use jqPlot. I am planning to release Svnplot 0.6 in few weeks time.

Monday, January 11, 2010

Code Analysis and Visualization Tools

Since last few years, I am studying how improve the effective of code reviews. In my experience, every organization have its own 'code review guidelines'. However, ROI of time spent on code reviews varies a tremendously. In some project groups, it works very well. While in other groups, many code review comments are of 'naming convention' related issues and not serious code problems. I developed a program called 'Effective Code Review' to teach simple but effective techniques of analyzing code to find more defects during the code reviews.

Last one year I have been conducting this 'Effective Code Review' program in various organizations. As part of this program, I checked/discovered various opensource and freeware tools available to analyze code and/or visualize various aspects of code. I also wrote few simple tools to do that. I have released these simple tools as 'Thinking Craftsman Toolkit' on google code.

I have prepared a list of such tools and their websites and published it on my website with the hope that other will find this list useful.

Check Code Analysis and Visualization Tools on Thinking Craftsman website. If you have any good tools, please leave a comment. I will update the list based on the comments.

Sunday, November 01, 2009

Installing (K)Ubuntu as guest os in Virtualbox

So far I mainly used Windows machines as development machines as well at home. Recently I have started experimenting with Ubuntu linux. Hence I wanted to install Ubuntu as Guest os on VirtualBox.  However I faced few problems (like when maxium screen size was set to 800x600 and it took some time to figure out how enable screen size change). Hence i wrote down the steps that worked for me.

This is configuration that i used.
    Host OS : Windows Vista
    Guest OS : Kubuntu 8.1
    Virtualbox version 3.0

Install Kubutu in VirtualBox
  1. Create a new VM (lets name it 'Kubuntu') in the Virtualbox
  2. Mount CDROM drive. 3. Put the Kubuntu CD in the drive OR Mount Kubuntu ISO image as drive
  3. Start new VM (Kubuntu)
  4. Kunbuntu Install CD will be detected. Proceed with installation.
  5. Basic Kunbuntu installation is done.
  6. Now you should be able to 'boot' to Kubuntu.
Now you need to install Guest Additions for this guest OS so that we can  share files across host and guest os, change screen size etc.

Installing Guest Additions
  1. Goto 'VirtualBox->Device->Install Guest Additions'.
  2. If there is already mounted CDROM drive, this will not work. Unmount the CDROM drive.
  3. Then Goto menu 'VirtualBox->Device->Install Guest Additions' again. Select the 'VBoxGuestAdditions.iso' image and mount as device.
  4. You will get a 'device list' in the Kubuntu guest os.
  5. Select the 'virtualbox' device for installing the 'guest additions'.
  6. In the Kubuntu, run 'konsole' to start the terminal window
  7. run 'cd /media/cdrom0' (or wherever the cdrom VBoxGuestAdditions.iso is mounted to)
  8. run 'sudo sh ./VBoxLinux-x86.run'. This will install Guest Addition kernel modules.
  9. Reboot the guest os.
  10. Now guest additions are installed.
Reconfiguring Display size
  1. By default display size is set to 800x600 under VM. That is the maximum size set.
  2. Shut down the guest os and exit from Virtualbox.
  3. Goto virtualbox installation directory in the Host OS(Run 'cd ')
  4. Run 'VBoxManage setextradata global GUI/MaxGuestResolution 1200,800' from command line. Replace '1200,800' by whatever resolution supported by your computer.
  5. Start Virtual box and start the Kubuntu VM.
  6. Click 'Machine->Auto Resize Guest Display' menu
  7. Now Minimize/Maximize VM Window. Internal Kubuntu desktop window will now get resized.
  8. In Kubuntu, goto Application Laucher 'system settings->display'. Change the display size to the size you want and apply.
  9. Now next time when you start Kubuntu VM, you may just have to do the step 6 and 7.
Installing Development setup

  1. Run 'sudo apt-get install linux-kernel-headers'
  2. Now your basic compiler setup is done.
  3. You may want to download other softwares like CodeBlocks IDE.
  4. Run 'adept' package manager.
  5. Search 'Code blocks', Python etc. Click on 'Install' and then select 'Apply Changes' from Adept menu.
Now your setup is done. Create a 'Snapshot' of current VM. So that you can revert to known setup if required.

Sharing Files between windows host and linux guest.

  1. On Windows, create folder (e.g. c:\shared).
  2. Goto VirtualBox->Devices->Shared Folder and add the created folder. Give a name to the folder (e.g. 'shared')
    OR
    Run command 'vboxmanage sharedfolder add "Kubuntu" -name "shared" -hostpath "c:\shared"'  Kubuntu is VM name.
  3.  Goto Guest os and run following commands
    cd $HOME
    mkdir shared
    sudo mount -t vboxsf shared $HOME/shared

Now you can access the 'shared' folder from both windows and linux
  

If these steps help you or if you find any mistakes/want to suggest any improvements, please write a comment.