Tatva-Artha

meaning of "it"

Archive for July, 2009

Nice info on color-diff

without comments

Found a nice post on color diff for git/svn:

http://stefaanlippens.net/color_highlighted_diffs_with_git_svn_cvs

GIT:
$ git config –global alias.dic "diff –color"
$ git dic

CVS:
$ cvs diff -bup "$@" | colordiff | less -R

SVN:
$ svn diff –diff-cmd colordiff -x "-u -w -p" "$@" | less -R

Written by Sharad

July 21st, 2009 at 4:50 pm

Posted in All

Try denying this!

without comments

"My wife is a perpetual student, she has 2 bachelors degrees and 2 Masters. Oh, and she would be doing a Ph.D. if she hadn’t met me."

"Wow, your wife seems to like being challenge and she found a better challenge in you than Ph.D."

Written by Sharad

July 21st, 2009 at 2:33 pm

Posted in All

GUI Programming in Ruby

without comments

I am looking at exploring Linux GUI / GTK programming so I can attempt to build a decent blog client in ruby. Just found this code snippet which attempts a simple task of some network info.

In order to get it to run, I had to install ruby-gnome2 package:

$ suto apt-get install ruby-gnome2

And it worked. Simple, yet works.

Will look at the code now to figure out what it takes to build GUI in Ruby.

Any better references I can use?

Written by Sharad

July 19th, 2009 at 7:46 pm

Posted in All

Linux Blog Client: Bleezer

without comments

After trying and failing to blog successfully from Linux/Ubuntu using several clients like ScribeFire, BloGTK, Drivel, Zoundry Raven over Wine and BlogJet over Wine, I am try this blog using Java client – Bleezer.

Setting up was easy with wordpress. Just one gotcha, the default path for xml URL is /wpfolder/xmlrpc.php. It should be changed to just "/xmlrpc.php".

Just published the initial two lines and updated it. To begin with it already beats Scribefire in the fact that when updating an existing blog, it doesn’t post a new blog but updates an existing one.

Few things I don’t like about Bleezer: (already :-) )

  • After posting each post, the edit window for the blog vanishes. You have to click "get posts" to continue editting.
  • There isn’t a easy way to get to older posts without using "get posts", which sucks.
  • When drafting a blog for later posting, it doesn’t automatically give it some unique name and store it in default folder. You have to manually select folder where to save and give it a name. Plus, each time you save, you can to reselect the file where you originally saved. Why can’t it know where I saved the file … It seems it was written as a very quick and dirty alternative. And I haven’t paid for it so can’t complain. This makes it a deal breaker for drafting blogs. Still survives for quick blogs though.
  • The WYSIWYG editor is very primitive. It sometimes doesn’t understand newline very well.
  • It stores configuration in a file called Bleezer.xml in "current" folder. This is pathetic because if you happen to be in a different folder when launching, your settings are all cleared.
  • The log file prints the password in clear text! The configuration file stores the password in clear text!

Yes, it is an ugly ugly blog client. Can’t believe it still beats all the other ones out there, because it simply does the job.

Do you know any linux blog client you like?

Written by Sharad

July 19th, 2009 at 6:16 pm

Posted in All

What should a good iteration contain

without comments

Yes, by now, we all know that agile works and what an agile project feels like. It has a set of guidelines like individuals over processes, embrace change and working software. It also recommends process tools like scrum, iteration planning, retrospective. And for developers it is manifested as a set of tools like pair-programming, continuous integration, TDD etc.

I have been on about 10 different agile projects in last 2 years. As a hands on developer, the one area that is of special interest to me is what constitutes an iteration, what deliverables and progress metrics it contains? Sure they all contain a set of stories to be delivered and a working software in the end. However, the risk for over promising and under delivering or vice-versa always exists.

The goal is to promise enough (not under) and deliver on it while still taking on a few unknown. Or put it another way, minimize risk somehow. A quick search on internet couldn’t deliver a convincing set of traits that would do the same and I believe this area can use some refinement.

Here are a couple of things that, in my experience, constitutes a good mix of deliverables that minimizes risk and strives to deliver enough for a given iteration:

Deliverable user stories with varying estimates:
With experience, it is evident that delivering 5 stories worth 2 story-points (2+2+2+2+2=10) is very different from delivering 5+5=10. While 5 is usually broken into sub-stories, the crux here is to have a varying degree of complexity for stories in iteration. This allows for showing progress with long hanging fruits while dedicating more attention to relatively complex story. It also allows for shuffling items and pairs based to developers’ schedule during iteration.

Targeted research items or spikes:
Yes, the obvious here is to not take on too many research tasks. Such tasks have no promised outcomes and are hard to estimate. Here at pathfinder, we make strive to make such tasks as concrete as possible in terms of what approaches are planned and how much time we decide to dedicate for all the effort needed. The story point for such task depend on how much %age of iteration (in terms of time) such task is going to cost. A research task that takes 1 full day in a 2 week iteration will be worth 2 story points if iteration has 10 story points (assuming 10 working days in iteration). In short, identify concrete approaches and time-box such stories. And each iteration should have not more than one or two such stories.

Bug-fix and Refactoring items:
These are good low-cost items, meaning relatively more predictable in outcome. Refactoring stories are relatively easier to estimate accurately and act as filler tasks that can be performed while your pair is unavailable. Or you are sick working from home. Or can be postponed until end of iteration if things seem slipping into next iteration. Having a healthy supply of refactoring stories is not a bad thing, they can be picked up if iteration seems to be under-filled since they don’t require specifications or requirements and are targetted at improving quality of code.

Mid iteration demo and re-balancing:
Mid iteration demos are optional but we find those very helpful in showing on going progress. While scrums allow teams to be current about ongoing changes, mid-iteration demo is more for client update and re-balancing with clients. Showing progress with demo also helps with re-balancing of tasks with clients for the rest of the iteration.

Again the goal is to strive to be as concrete as possible in approach given the unknowns and minimize risk. What are some of the things in your experience that work?

Photo Credit: http://www.flickr.com/photos/27620885@N02/3018033419/

Written by Sharad

July 15th, 2009 at 4:41 pm

Posted in All,Technology

Habit

without comments

Not sure where this comes from but, a nice thought indeed.

Habit is hard to break.

Break H and you still have A BIT.

Break A, you still have BIT.

Break B, you still have IT!

Hey, even after you break the T in IT, there is still the ‘I’.

May be, that “I” the root cause of all the problems.

Written by Sharad

July 14th, 2009 at 3:19 pm

Posted in All

Tagged with

Cisco VPN client setup on ubuntu

without comments

There are a few gotchas when setting up cisco vpn client on ubuntu. For cisco vpn, you need 5 pieces of information from your server.

Host, groupId, groupPassword, Username, password

Usually these pieces of information is supplied by your company (or your vpn host) in the form of *.pcf file. This is a text file that you can open up and read. The passwords are usually stored in this file in encrypted format.

When setting up cisco vpn client on ubuntu, following steps are needed:

Read the rest of this entry »

Written by Sharad

July 3rd, 2009 at 5:39 am

Posted in All,Technology

Tagged with , ,

Detecting Ubuntu Version

without comments

The command is:

lsb_release -a

In order for this to work, you may need to install following package:

sudo apt-get install lsb-core

For any generic unix system, following commands can be used for other information such as machine, hardware, architecture, OS.

cat /proc/cpuinfo

cat /proc/version

uname -a #uname –help for more options

Enjoy!

Written by Sharad

July 3rd, 2009 at 1:26 am

Posted in All,Technology

Tagged with