Logo

Go get a life:

over 2 years ago | Nilesh Naik: TechnoBites

We all are amid one of the biggest economic crisis that we have seen during our life. Job cuts, companies going bankrupt have been hogging limelight for quite some time. And for those who have trying to weather this storm life for them can be quantified only in the terms of work. You better slog from dawn to dusk or be ready to face the inevitable. These are the emotions many of us are going through right now. In 2001, it was only the IT companies, but now almost every sector is reeling under recession

But while all this is happening there is an organization that wants to lead in a different way. A top private sector company has asked its employees to ‘Go get a life’ by not spending much time at workplace and asked them to leave max 2 hours after the official business working hours. But sadly organizations like these are rare. In most organizations, performance is measured, not by quality of effort put in or the output shown, but by the amount of time spent in office, which may have been spent productively or not (usually the latter)! Even more unfortunate is the practice of sticking around in office till the boss leaves and my friends from other organizations still follow this practice.

In this current scenario, more and more corporates are asking their employees to come up with ideas to beat this recession. We too have a portal which provides a platform for employees to voice their ideas. But great ideas seldom come while sitting at a desk. Employees cannot be productive if they are tied up in office all day. It is important to re-charge your batteries and that cannot happen in the confines of an office.

My organization does help in overcoming these daily office stress by organizing fun events during weekends like a trip in or around Mumbai(trek, nature walk etc.) or some social event like visiting some foundation for underprivileged children.

Happy to announce version 1.2 of my news reader application

over 2 years ago | Rohan Daxini: void TechFuels()

After much of a delay and managing time to code during weekends, I am glad to announce version 1.2 of my news aggregator application. Check out http://whiz.kiprosh.com

Current Features

  • drag and drop widgets
  • simple accordion driven ui for conveniently reading news
  • cross browser compatibility - tested on widely used 9 different browsers
  • ajax driven functionality
  • tried to made it one of the fastest rss reader
To keep it simple at this point of time, I just have very limited set of rss feed sources in the app.

Oh btw thanks to Nilesh, Alex, Matt, Biju and Sachin for feedback and appreciating the application :)


Upcoming Features (for v1.3 and higher)
  • navigation menu to have list of various feeds categorized appropriately
  • feeds source with aditional info like ranks, no of hits etc.
  • user personalized start pages and improved UI
  • ability to search particular news / information from the list of rss feeds or user selected feeds

Using Github Through Draconian Proxies (Windows And Unix)

over 2 years ago | Alex Rothenberg: Common Sense Software

I came across this great set of instructions on how to tunnel through a proxy to use github - http://returnbooleantrue.blogspot.com/2009/06/using-github-through-draconian-proxies.html

The proxy where I work is not quite so draconian that I need to follow these steps but its nice to have these instructions just in case :)

Using Github Through Draconian Proxies (Windows And Unix)

over 2 years ago | Alex Rothenberg: Common Sense Software

I came across this great set of instructions on how to tunnel through a proxy to use github - http://returnbooleantrue.blogspot.com/2009/06/using-github-through-draconian-proxies.html

The proxy where I work is not quite so draconian that I need to follow these steps but its nice to have these instructions just in case :)

Metric_fu 1.1.0 released with a patch from me

over 2 years ago | Alex Rothenberg: Common Sense Software

Metric_fu just released version 1.1.0 of their gem which I'm pleased to say includes a patch submitted by me. This is exciting as its the first time I've had my code included by someone I don't know in one of the open source projects I admire.

I was not originally going to make the patch as I thought I'd just hack around to fix the problem locally just enough to get it working but my friend Matt encouraged me to fix the root cause which turned out to be not too hard and got me into the metric_fu source. I always learn something when I read source from others I admire.

The process of submitting the patch was pretty easy and I plan to make it a habit when I run into issues with other gems. I,

  1. Experienced a problem and decided not to live with it
  2. Created a fork of metric_fu on github
  3. Cloned locally and iteratively made my changes until I had my fix complete
  4. Rebased my changes into a single commit (I wrote an article on this a few weeks ago)
  5. Pushed my patch back to github on a branch
  6. Submitted my patch back to Jake's repository as an issue

Solving the problem of gem dependencies with github names

I am using relevance-rcov instead of the rubyforge version of rcov as it has been maintained more recently and specifically fixed a segmentation fault problem I previously faced. The problem is that I couldn't install metric_fu as it put a gem dependency on 'rcov' in its gemspec. What seems broken is that there's no way to put a dependency on 'rcov' but have rubygems realize that 'relevance-rcov' is a fork of rcov so should satisfy the dependency.

I've seen a lot of talk recently about rubygems (including Why Using require ‘rubygems’ Is Wrong, RubyGems: Problems and (proposed) Solutions and Rip: A Next Generation Ruby Packaging System - Watch Out RubyGems!) but so far I haven't found a solution to the forking and naming problem emerge.

For Metric_fu I decided to change the install-time dependency to a runtime one. This solves my basic problem of not finding relevance-rcov but also allows for more flexibile use of metric_fu. If someone does not want to generate reek or rcov metrics why should they be forced to install those gems in order to use metric_fu? By defering the dependency until runtime we will never hit the dependency for those metrics we are not using.

You can look through the commit to see exactly how I did this.
  1. Deleted the install time dependencies from metric_fu.gemspec
  2. Added the runtime dependencies when a specific type of metric is instantiated by
    • Inserting a verify_dependencies! strategy step to the initialization in lib/base/generator.rb
    • Implementing verify_dependencies! in each of the subclasses for different metrics in lib/generators/*
  3. Did it with TDD writing tests around everything before implementing my changes

Should gems use install time dependencies? Should a gem author decide which fork of a gem is required? What do you think?

Metric_fu 1.1.0 released with a patch from me

over 2 years ago | Alex Rothenberg: Common Sense Software

Metric_fu just released version 1.1.0 of their gem which I'm pleased to say includes a patch submitted by me. This is exciting as its the first time I've had my code included by someone I don't know in one of the open source projects I admire.

I was not originally going to make the patch as I thought I'd just hack around to fix the problem locally just enough to get it working but my friend Matt encouraged me to fix the root cause which turned out to be not too hard and got me into the metric_fu source. I always learn something when I read source from others I admire.

The process of submitting the patch was pretty easy and I plan to make it a habit when I run into issues with other gems. I,

  1. Experienced a problem and decided not to live with it
  2. Created a fork of metric_fu on github
  3. Cloned locally and iteratively made my changes until I had my fix complete
  4. Rebased my changes into a single commit (I wrote an article on this a few weeks ago)
  5. Pushed my patch back to github on a branch
  6. Submitted my patch back to Jake's repository as an issue

Solving the problem of gem dependencies with github names

I am using relevance-rcov instead of the rubyforge version of rcov as it has been maintained more recently and specifically fixed a segmentation fault problem I previously faced. The problem is that I couldn't install metric_fu as it put a gem dependency on 'rcov' in its gemspec. What seems broken is that there's no way to put a dependency on 'rcov' but have rubygems realize that 'relevance-rcov' is a fork of rcov so should satisfy the dependency.

I've seen a lot of talk recently about rubygems (including Why Using require ‘rubygems’ Is Wrong, RubyGems: Problems and (proposed) Solutions and Rip: A Next Generation Ruby Packaging System - Watch Out RubyGems!) but so far I haven't found a solution to the forking and naming problem emerge.

For Metric_fu I decided to change the install-time dependency to a runtime one. This solves my basic problem of not finding relevance-rcov but also allows for more flexibile use of metric_fu. If someone does not want to generate reek or rcov metrics why should they be forced to install those gems in order to use metric_fu? By defering the dependency until runtime we will never hit the dependency for those metrics we are not using.

You can look through the commit to see exactly how I did this.
  1. Deleted the install time dependencies from metric_fu.gemspec
  2. Added the runtime dependencies when a specific type of metric is instantiated by
    • Inserting a verify_dependencies! strategy step to the initialization in lib/base/generator.rb
    • Implementing verify_dependencies! in each of the subclasses for different metrics in lib/generators/*
  3. Did it with TDD writing tests around everything before implementing my changes

Should gems use install time dependencies? Should a gem author decide which fork of a gem is required? What do you think?

Google Documents: Simple but effective.

over 2 years ago | Binoy Shah: Binoy Thinks

Today, I and Abhishek were discussing about uploading a document into a Blog site. All we could find is an option of adding a hyperlink into the Blog.

While exploring the Google homepage, I came across a page called Google Documents. And as I started exploring it further, I found it really really useful.It is simple yet a really effective tool to share documents over the internet. In Google Docs, one can create docs in Excel, Word or PPT format.

I could also upload in various formats like .doc, .xls, .ods, .ppt and many more. The best part that I liked about Google docs is sharing of the documents and ability to edit it online.

The tool is pretty simple to use. Yet another Google tool that is easy to use, light in framework and most importantly very effective.

Just one thing to note is it should be used with discretion and confidentiality of the content should be maintained.

Bing Search Tricks (even Google and Yahoo doesn't have these features)

over 2 years ago | Rohan Daxini: void TechFuels()

Use these cool and interesting tricks with Microsoft's new search engine Bing.com

1) Get Bing search results as RSS feeds
Neither Google nor Yahoo provide RSS feeds of their search results. We can subscribe to search pages from Bing as RSS feeds.
- Open Bing Search
- type your query, say for example "Ajax" and
- then on the results page, append “&format=rss” to the URL
in my case where i tried search query as "Ajax", the rss URL got created is http://www.bing.com/search?q=ajax&form=QBLH&format=rss
(This is one of my favorite feature as I am trying few feeds in my aggregator app :) )

2) Find Web Pages That Link to Documents, MP3s, Videos, ZIPs or other file types
The "contains:" operator in Bing search helps us find web pages that link to other online documents and multimedia files like music and video. This is different from Google’s filetype: search operator that looks for content inside PDF and Office documents.
For example, if we wish to find all pages on Wikipedia that link to MP3 files, type “site:wikipedia.org contains:mp3″

3) Limit Your Search to Websites that offer RSS Feeds
Another search operator in Bing Search is “hasfeed” - it lets you find only those web pages that link to RSS feeds. For example, you could write “ASP.NET MVC hasfeed:” to find web pages that are about “ASP.NET MVC” and also syndicate content as RSS feeds.

We can also group hasfeed: with other search operatorsLets say if we want to know about all pages related to ASP.NET MVC on MSDN.COM that have feeds, then we should just type “asp.net mvc site:msdn.com hasfeed:

4) Track Companies from the IE Favorites Bar
If we search for a company stock (e.g. GOOG or MSFT), Bing will automatically create a web slice for that company which we may then add to IE 8 and track the performance directly from the favorites bar. We need Internet Explorer 8 to try this feature.

Thanks to Facebook, Nostalgia was in abundance

over 2 years ago | Binoy Shah: Binoy Thinks

Last week, I was going through my mails in Hotmail. I came across an invite to join a group. The name of the group was A.A.B.V.V. Something immediately struck me. Its actually the name of school. Amulakh Amichand Bhimji Vividhalakshi Vidyalaya. Big name huh??

Yes it is indeed a tongue twisting name… Coming back to facebook, it took me no time to join the group and start exploring it. Here I found a few friends who had been out of touch since I left my school which was like 10 years ago. A long time. Exploring the Photos, I found some group photographs uploaded from some of my friends.

The best part was everyone was trying to find oneself in each photo. I uploaded the ones which were there with me. One of them is the one below.

4 C

Something for Nostalgia. Thanks to the person starting this group and thanks to Facebook, a superb collaborative site, I could for a short while get back those wonderful memories of my schooling days..

Windows Live Writer: A simple Blog Writer Tool

over 2 years ago | Binoy Shah: Binoy Thinks

Exploring my laptop, I just came across a simple but an effective blog writing tool named Windows Live Writer. It came with the Windows Live installation. But it was there on my laptop without being noticed.

It has lots of features like adding Hyperlinks, pictures, Photo album, Tables and many more…

It connects online to a Blog site by a simple  configuration. Its saves Drafted Blogs locally as well as on the Site. The best is it allows blogging offline in the same format as you would on a Blog site..

A nice and an easy tool to make blogging even more easier.. Not that blogging was tough anyways!!

Changing history with git rebase: How to combine several commits into one

over 2 years ago | Alex Rothenberg: Common Sense Software

When I look at commits on github I'm always impressed at how concise they are. When I read a commit I can understand the intent of the change without getting distracted by the author's journey to get there. In contrast when I look at my commits they tend to be smaller and more incremental and meandering as I work my way down some false starts until I get to the solution I want. I'm guessing that I'm not alone in the way I work and recently discovered git rebase and an helpful tutorial showing how I can continue to work in my meandering style but package my changes to hide the journey before publishing to the world on github.

Let me show you what I mean with some changes I recently made to metric_fu. Over the course of a few days I made 6 small commits as you can see below.


> git log

commit d4b18b16e982ac57741f7a0a12cb085bb9b0e840
Author: Alex Rothenberg
Date: Mon Jun 1 09:55:37 2009 -0400

reverted rakefile

commit ebda1cb67a2f0f0a85e51469d70919fa7c27d318
Author: Alex Rothenberg
Date: Mon Jun 1 09:49:05 2009 -0400

refactoring of verify_dependencies

commit 3d45903b64a772fd09ec07bf69880bdb29ae4944
Author: Alex Rothenberg
Date: Fri May 29 20:40:49 2009 -0400

runtime dependency check for all gems

commit 36e269bf8f0edccfb39cc767182406cdaa16a559
Author: Alex Rothenberg
Date: Fri May 29 20:24:16 2009 -0400

logic for checking dependencies in generator base

commit bb2ee9a983c6adf54a8c95ee5851c6f8d3bffaba
Author: Alex Rothenberg
Date: Fri May 29 19:38:21 2009 -0400

made rcov dependency figure itself out when generating rcov metrics

commit 750b000e5563e917f21eb1b7837e8001fb53f688
Author: Alex Rothenberg
Date: Fri May 29 16:42:12 2009 -0400

removed gem dependency on rcov - to allow use of relevance-rcov or other github forks

commit d6af5089adce9eeed4916a155c3bdaeb4be6771a
Author: Randy Souza
Date: Sat May 16 08:47:37 2009 +0800

Added a simple fix for cases where Saikuro results with nested information
cause metrics:all to crash

Signed-off-by: Jake Scruggs

...


I am going to combine all of these into a single commit using the incredible power of git rebase. I find the last commit I do not want to change (the one made by Randy Souza on May 16th) and issue a git rebase command with that id.


> git rebase --interactive d6af5089adce9eeed4916a155c3bdaeb4be6771a


Now my editor comes up showing the 6 changes since then giving me options of what to do. Its very powerful, I can reorder commits, combine commits, eliminate commits. I'm going back in time to change the past!


pick 750b000 removed gem dependency on rcov - to allow use of relevance-rcov or other github forks
pick bb2ee9a made rcov dependency figure itself out when generating rcov metrics
pick 36e269b logic for checking dependencies in generator base
pick 3d45903 runtime dependency check for all gems
pick ebda1cb refactoring of verify_dependencies
pick d4b18b1 reverted rakefile

# Rebase d6af508..d4b18b1 onto d6af508
#
# Commands:
# p, pick = use commit
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#


In my case I want to combine these into a single commit so I change all but the first pick command to a squash and save.


pick 750b000 removed gem dependency on rcov - to allow use of relevance-rcov or other github forks
squash bb2ee9a made rcov dependency figure itself out when generating rcov metrics
squash 36e269b logic for checking dependencies in generator base
squash 3d45903 runtime dependency check for all gems
squash ebda1cb refactoring of verify_dependencies
squash d4b18b1 reverted rakefile

# Rebase d6af508..d4b18b1 onto d6af508
#
# Commands:
# p, pick = use commit
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#


It now gives me a chance to edit the new commit message which it defaults to the original messages concatenated together. This really is a single commit so if one of the original commits changed a file and a subsequent one undid the change that file will no longer appear in the list of modified files.



# This is a combination of 6 commits.
# The first commit's message is:
removed gem dependency on rcov - to allow use of relevance-rcov or other github forks

# This is the 2nd commit message:

made rcov dependency figure itself out when generating rcov metrics

# This is the 3rd commit message:

logic for checking dependencies in generator base

# This is the 4th commit message:

runtime dependency check for all gems

# This is the 5th commit message:

refactoring of verify_dependencies

# This is the 6th commit message:

reverted rakefile

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# Explicit paths specified without -i nor -o; assuming --only paths...
# Not currently on any branch.
# Changes to be committed:
# (use "git reset HEAD ..." to unstage)
#
# modified: Rakefile
# modified: lib/base/generator.rb
# modified: lib/generators/flay.rb
# modified: lib/generators/flog.rb
# modified: lib/generators/rcov.rb
# modified: lib/generators/reek.rb
# modified: lib/generators/roodi.rb
# modified: lib/generators/saikuro.rb
# modified: metric_fu.gemspec
# modified: spec/base/generator_spec.rb
# modified: spec/generators/flay_spec.rb
# modified: spec/generators/flog_spec.rb
# modified: spec/generators/reek_spec.rb
#



Let's edit this commit message to read something like


Changed gem dependencies from install-time in gemspec to runtime when each
of the generators is loaded. This allows use of github gems (i.e.
relevance-rcov instead of rcov) and also allows you to install only the
gems for the metrics you plan on using.


# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# Explicit paths specified without -i nor -o; assuming --only paths...
# Not currently on any branch.
# Changes to be committed:
# (use "git reset HEAD ..." to unstage)
#
# modified: Rakefile
# modified: lib/base/generator.rb
# modified: lib/generators/flay.rb
# modified: lib/generators/flog.rb
# modified: lib/generators/rcov.rb
# modified: lib/generators/reek.rb
# modified: lib/generators/roodi.rb
# modified: lib/generators/saikuro.rb
# modified: metric_fu.gemspec
# modified: spec/base/generator_spec.rb
# modified: spec/generators/flay_spec.rb
# modified: spec/generators/flog_spec.rb
# modified: spec/generators/reek_spec.rb
#


And that's it! Now when we check our history we see.


> git log

commit 6f389364eb972871867d3a71677b8eb7046541a2
Author: Alex Rothenberg
Date: Fri May 29 16:42:12 2009 -0400

Changed gem dependencies from install-time in gemspec to runtime when each
of the generators is loaded. This allows use of github gems (i.e.
relevance-rcov instead of rcov) and also allows you to install only the
gems for the metrics you plan on using.

commit d6af5089adce9eeed4916a155c3bdaeb4be6771a
Author: Randy Souza
Date: Sat May 16 08:47:37 2009 +0800

Added a simple fix for cases where Saikuro results with nested information
cause metrics:all to crash

Signed-off-by: Jake Scruggs

...


And this commit is how I pushed this patch to github for all the world to see.

Changing history with git rebase: How to combine several commits into one

over 2 years ago | Alex Rothenberg: Common Sense Software

When I look at commits on github I'm always impressed at how concise they are. When I read a commit I can understand the intent of the change without getting distracted by the author's journey to get there. In contrast when I look at my commits they tend to be smaller and more incremental and meandering as I work my way down some false starts until I get to the solution I want. I'm guessing that I'm not alone in the way I work and recently discovered git rebase and an helpful tutorial showing how I can continue to work in my meandering style but package my changes to hide the journey before publishing to the world on github.

Let me show you what I mean with some changes I recently made to metric_fu. Over the course of a few days I made 6 small commits as you can see below.


> git log

commit d4b18b16e982ac57741f7a0a12cb085bb9b0e840
Author: Alex Rothenberg
Date: Mon Jun 1 09:55:37 2009 -0400

reverted rakefile

commit ebda1cb67a2f0f0a85e51469d70919fa7c27d318
Author: Alex Rothenberg
Date: Mon Jun 1 09:49:05 2009 -0400

refactoring of verify_dependencies

commit 3d45903b64a772fd09ec07bf69880bdb29ae4944
Author: Alex Rothenberg
Date: Fri May 29 20:40:49 2009 -0400

runtime dependency check for all gems

commit 36e269bf8f0edccfb39cc767182406cdaa16a559
Author: Alex Rothenberg
Date: Fri May 29 20:24:16 2009 -0400

logic for checking dependencies in generator base

commit bb2ee9a983c6adf54a8c95ee5851c6f8d3bffaba
Author: Alex Rothenberg
Date: Fri May 29 19:38:21 2009 -0400

made rcov dependency figure itself out when generating rcov metrics

commit 750b000e5563e917f21eb1b7837e8001fb53f688
Author: Alex Rothenberg
Date: Fri May 29 16:42:12 2009 -0400

removed gem dependency on rcov - to allow use of relevance-rcov or other github forks

commit d6af5089adce9eeed4916a155c3bdaeb4be6771a
Author: Randy Souza
Date: Sat May 16 08:47:37 2009 +0800

Added a simple fix for cases where Saikuro results with nested information
cause metrics:all to crash

Signed-off-by: Jake Scruggs

...


I am going to combine all of these into a single commit using the incredible power of git rebase. I find the last commit I do not want to change (the one made by Randy Souza on May 16th) and issue a git rebase command with that id.


> git rebase --interactive d6af5089adce9eeed4916a155c3bdaeb4be6771a


Now my editor comes up showing the 6 changes since then giving me options of what to do. Its very powerful, I can reorder commits, combine commits, eliminate commits. I'm going back in time to change the past!


pick 750b000 removed gem dependency on rcov - to allow use of relevance-rcov or other github forks
pick bb2ee9a made rcov dependency figure itself out when generating rcov metrics
pick 36e269b logic for checking dependencies in generator base
pick 3d45903 runtime dependency check for all gems
pick ebda1cb refactoring of verify_dependencies
pick d4b18b1 reverted rakefile

# Rebase d6af508..d4b18b1 onto d6af508
#
# Commands:
# p, pick = use commit
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#


In my case I want to combine these into a single commit so I change all but the first pick command to a squash and save.


pick 750b000 removed gem dependency on rcov - to allow use of relevance-rcov or other github forks
squash bb2ee9a made rcov dependency figure itself out when generating rcov metrics
squash 36e269b logic for checking dependencies in generator base
squash 3d45903 runtime dependency check for all gems
squash ebda1cb refactoring of verify_dependencies
squash d4b18b1 reverted rakefile

# Rebase d6af508..d4b18b1 onto d6af508
#
# Commands:
# p, pick = use commit
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#


It now gives me a chance to edit the new commit message which it defaults to the original messages concatenated together. This really is a single commit so if one of the original commits changed a file and a subsequent one undid the change that file will no longer appear in the list of modified files.



# This is a combination of 6 commits.
# The first commit's message is:
removed gem dependency on rcov - to allow use of relevance-rcov or other github forks

# This is the 2nd commit message:

made rcov dependency figure itself out when generating rcov metrics

# This is the 3rd commit message:

logic for checking dependencies in generator base

# This is the 4th commit message:

runtime dependency check for all gems

# This is the 5th commit message:

refactoring of verify_dependencies

# This is the 6th commit message:

reverted rakefile

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# Explicit paths specified without -i nor -o; assuming --only paths...
# Not currently on any branch.
# Changes to be committed:
# (use "git reset HEAD ..." to unstage)
#
# modified: Rakefile
# modified: lib/base/generator.rb
# modified: lib/generators/flay.rb
# modified: lib/generators/flog.rb
# modified: lib/generators/rcov.rb
# modified: lib/generators/reek.rb
# modified: lib/generators/roodi.rb
# modified: lib/generators/saikuro.rb
# modified: metric_fu.gemspec
# modified: spec/base/generator_spec.rb
# modified: spec/generators/flay_spec.rb
# modified: spec/generators/flog_spec.rb
# modified: spec/generators/reek_spec.rb
#



Let's edit this commit message to read something like


Changed gem dependencies from install-time in gemspec to runtime when each
of the generators is loaded. This allows use of github gems (i.e.
relevance-rcov instead of rcov) and also allows you to install only the
gems for the metrics you plan on using.


# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# Explicit paths specified without -i nor -o; assuming --only paths...
# Not currently on any branch.
# Changes to be committed:
# (use "git reset HEAD ..." to unstage)
#
# modified: Rakefile
# modified: lib/base/generator.rb
# modified: lib/generators/flay.rb
# modified: lib/generators/flog.rb
# modified: lib/generators/rcov.rb
# modified: lib/generators/reek.rb
# modified: lib/generators/roodi.rb
# modified: lib/generators/saikuro.rb
# modified: metric_fu.gemspec
# modified: spec/base/generator_spec.rb
# modified: spec/generators/flay_spec.rb
# modified: spec/generators/flog_spec.rb
# modified: spec/generators/reek_spec.rb
#


And that's it! Now when we check our history we see.


> git log

commit 6f389364eb972871867d3a71677b8eb7046541a2
Author: Alex Rothenberg
Date: Fri May 29 16:42:12 2009 -0400

Changed gem dependencies from install-time in gemspec to runtime when each
of the generators is loaded. This allows use of github gems (i.e.
relevance-rcov instead of rcov) and also allows you to install only the
gems for the metrics you plan on using.

commit d6af5089adce9eeed4916a155c3bdaeb4be6771a
Author: Randy Souza
Date: Sat May 16 08:47:37 2009 +0800

Added a simple fix for cases where Saikuro results with nested information
cause metrics:all to crash

Signed-off-by: Jake Scruggs

...


And this commit is how I pushed this patch to github for all the world to see.

Emotional Intelligence

over 2 years ago | Lalita Chandel: My View

Just finished reading "Working with Emotional Intelligence" by Daniel Goleman. It was really nice to know that the single most important factor that distinguishes a star performer from others in every field is not just high IQ, advanced degrees or technical expertise, but there is something called as "Emotional Intelligence".


Emotinal Intelligence: It refers to the capacity for recognizing our own feelings and those of others, for motivating ourselves, and for managing emotions well in ourselves and in our relationships. It describes abilities distinct from, but complementary to, academic intelligence, the purely cognitive capacities measured by IQ.

Below are five basic emotional and social competencies, defined under Emotinal Intelligence: -

Self-awareness: Knowing what we are feeling at the moment, and using these preferences to guide our decision making; having a realistic assessment of our own abilities and a well-grounded sense of self-confidence.

Self-Regulation: Handling our emotions so that they facilitate rather than interfere with the task at hand; being conscientious and delaying gratification to pursue goals; recovering well from emotional distress.

Motivation: Using our deepest preferences to move and guide us towards our goals, to help us take initiative and strive to improve, and to persevere in the face of setbacks, and frustrations.

Empathy: Sensing what people are feeling, being able to take their perspective, and cultivating rapport and attunement with a broad diversity of people.

Social skills: Handling emotions in relationships well and accurately reading social situations and networks; interacting smoothly; using these skills to persuade and lead, negotiate and settle disputes, for cooperation and teamwork.

Learning as an important part of the Project

over 2 years ago | Binoy Shah: Binoy Thinks

Since the day I joined the IT Industry, there has been one word that I have been hearing day in and day out.. “Learning”.  Especially in today’s situation, it forms an integral part of the Project.

The situation is such that we cant escape from learning saying that I have a hectic Project schedule and have no time to learn. We need to take out time from our schedule for this.

Or else, include learning as a part of the Project work. We recently had a pre project kick off and thanks to Erika, the Scrum Master of our project we decided that we would take up stories that are related to learning and also somehow inline with the Sponsors interest. But the main focus was to learn something by the end of the Project

Something that can be useful for both the Project as well personal development.

Chrome - My favourite browser these days

over 2 years ago | Rohan Daxini: void TechFuels()

I am using Google Chrome a lot these days (apart from using Firefox & IE) for my browsing and testing needs. Chrome is amazingly fast and quick. Features that make Chrome distinguish itself from other browsers like Opera, Safari, IE, Firefox etc. are simple but truly amazing.

First, every tab is an independed process. Each tab is on its own - if one tab crashes there will be no impact on other tabs. This is very useful feature. Chrome has revolutionary JavaScript engine, which is made to work even faster than in the fastest browsers. Here are the speed test results http://news.cnet.com/8301-1001_3-10030888-92.html

Another feature I like about Chrome is its built-in task manager where you can see what tab eats more memory or CPU time than others, and effectively manage your tabs to reduce unneeded memory or CPU usage.

Here are few links casting comparison between Chrome and other browsers


Oh did i forgot to mention a very cool feature - visual sampling of most visited sites, search engines, recently bookmarked pages and closed tabs on its home page.

Wanna test your website (and webpages) on 60 different browser in one shot ?

over 2 years ago | Rohan Daxini: void TechFuels()

Today I just thought to test my website (Aggregator app) across different browsers to have preliminary results. I came across this cool website http://browsershots.org/ which tests webpages on roughly 60 browser (including browsers running on Linux, Mac, Windows, BSD etc) in one shot. It took around 27 mins to test my simple site on all 60 browsers and the results were astounding and really helpful. It provides first hand impression of UI issues (i.e. various formatting, colors, tables, tabs, button spacing etc etc.) for your web pages. I found it really useful. I was testing my app only on fewer versions of Firefox, IE, Chrome etc. but thanks to Nilesh for pointing me out to try and test my app on other version of various browsers as well. We together sat down to explore few open source tools and while exploring we came across this useful site.

Here is a link to 10 useful resources for Cross Browser Testing http://designm.ag/resources/cross-browser-testing/


I do recommend to use other open souce tools and websites to perform Cross Browser Testing, but these kind of resources are really handy.


Scrum Agile - Making Sprint Reviews interesting

over 2 years ago | Binoy Shah: Binoy Thinks

AGILILITY in software development is the industry BUZZ these days.We have been "Agile" in developing BI Solutions to the Clients since past 2 years. Scrum methodology is a tool we use to become more and more "Agile"

Sprint Review meeting form one of the most improtant part of Scrum Agile. This meeting is focussed to Demo "Working Sofware" to the Business and all the other Project Stakeholders. The invite of this meeting in our case is extended to the teams ranging from the Business users, Support Team, sponsors and all the top notch IT people from the Client side. Hence these meetings like all the other Agile meetings are precise in content. The development team uses this as a great platform to demo what they have achieved in the Sprint to the end users and Sponsors. During these demos, there is no PPT or document describing the product. It is working software. This way the sponsors know what their money is doing.


In Java and UI related projects, this is a great idea. Here the UI can be shown to the users and they can give their feedback on the Product. However in Data intensive projects like BI, we might end up just analyzing the data in some Sprints when the Project starts. What can be used to Demo then??

We used some interesting tools for this. In Sprint Zero, where we had to just understand certain applications so that the stories related to those applications could be estimated, we used an Animation. It was a brainchild of our Scrum Master and Product Owner. Showing animation really was an effective way of communicating what we have done in the Sprint. The animation used was simple and most improtantly, it clicked with the users.

Even in the most recent Sprint Review meeting, we used Screencasts to demo the Data analysis story. The screencasts were designed by our Scrum master onsite and it worked really well in the Demo. The only thing which is improtant to understand is that preparing these animations should not be too time consuming.

In BI Projects that requires data analysis, we might not have working software to demo every Sprint. So these kind of animations and screencasts or any other such techniques help keep the interest of all the parties in the Sprint review meetings.

Will you Bing it, or Google it ?

over 2 years ago | Rohan Daxini: void TechFuels()

Recently I read an article on new search engine "Bing" by Microsoft and was quite impressed by its search capabilities (thanks to Nilesh for sharing this info on bing with me). Unlike Google who invented advertising-based search model which produces most popular items for each query, Microsoft is aiming to change the game by calling Bing - a decision engine which will offer more insights to users for helping them take decisions, and not necessarily throw the most popular and relevant items. Bing in Chinese language means a certain answer, or response to a query.

I tried few searches on www.bing.com and liked "Related Searches" section as well as opinion index (which rates the search results based on an algorithm developed by Microsoft.) Its quick and clean. Yeah its pretty early to say anything about its success, that the time will tell. But I think I would definitely be using bing along with google for my search and not just google alone :)