Archive for April, 2008

How do 300 svn commits feel like?

April 28th, 2008

ApnaBill.com SVN repository has seen some real hard work in past few days. We have had over 300 svn commits and 87 live bugs - 22 of which are still open (in new/assigned/lingering state).

These figures make me feel elated, happy - and confident that our release would be devoid of atleast these 87 bugs :D

Time and again, people have questioned me about these bugfixes in ApnaBill.com code - “Is your code that buggy?” - erhm, well no.

We track both bugs and new feature requests together (a skill that I picked up while working with Red Hat), thereby giving us a uniform outlook of the pending tasks. Besides, new features when tracked via bug reports produce a quality changelog. What was done, how and why - its important that these changes get documented while the feature is still in development phase. Makes future debugging a whole lot easier…

The road ahead, now has a crystal clear view of the destination!
All what we need to reach there is - “Focus“.

We are planning a special discount program for our Beta registrants (though cannot promise on that yet!) - So please signup for our Beta Launch - if you havn’t done so.

Back to squashing more bugs for now… ;)

Posted in A strong urge to blog..., ApnaBill, Life, Startups | Comments (3)

LITBox helper for Rails

April 24th, 2008

Introducing - LITBox Helper for Rails!

Disclaimer: This is a work in progress and is available on “as is” basis.

For long, I was trying to integrate Criag Ambros’s RedBox plugin into ApnaBill.com project for implementing modal dialogs but somehow, the CSS always used to get upset, rendering the lightbox in such a way that the content which is to be shown inside it, shows below it.

Then I came across Ryan J Lowe’s LITBox(The site seems to down, try Google cache)- and boy, it rocks! Just 10 seconds setup, very light weight and looks brilliant! The code is nicely written too. But the only drawback was that it was plain JS stuff - so that means no Rails helpers available.

So, once the test implementation was done with, I decided to write a small helper myself. I’ve seen how Jorge’s Prototype Window Class’s rails helper works - so decided to base my code on the same lines. And since he’s already written the Ruby->JS part for converting between optional arguments, this didn’t seemed a daunting task even for a Wednesday night :)

  1.  
  2. # Based on Prototype Window Class Helper (http://pwc-helper.xurdeonrails.com)
  3.  
  4. module LitboxHelper
  5.  
  6.     def params_for_javascript(params) #options_for_javascript doesn’t works fine
  7.         ‘{’ + params.map {|k, v| "#{k}: #{
  8.        case v
  9.          when Hash then params_for_javascript( v )
  10.          when String then "‘#{v}’"          
  11.        else v   #Isn’t neither Hash or String
  12.        end }"}.sort.join(‘, ‘) + ‘}’
  13.     end
  14.    
  15.  
  16.     # Returns a default LITBox window.
  17.     def litbox_window(link_text, href, html_options={}, params={})
  18.       prefix = "<a "
  19.       # Add all html options as key="value" pairs
  20.       html_options.each do |k, v|
  21.         prefix += "#{k}=\"#{v}\" "
  22.       end
  23.       prefix += "href=\"javascript:void(null);\" onclick=\""
  24.      
  25.       # JS Payload
  26.       payload = "new LITBox(’#{href}’, #{params_for_javascript(params)});"
  27.      
  28.       # Rest of the stuff including link text
  29.       suffix = "\">#{link_text}</a>"
  30.      
  31.       return prefix + payload + suffix
  32.     end
  33.  
  34. end

I’m trying to make it feature complete so that I can make it available for download.

Till then… happy hacking!

Posted in ApnaBill, Rails, Ruby, Web 2.0 | Comments (5)

So what is an {ab}normal day like?

April 23rd, 2008

Considering that I am more of a night person, my day starts at 9pm

So its almost 2:30am now - and guess what? Movie time ;)

Shubhu is watching Highlander off the DVD - too bad, i’ll have to plan for some other flick…

Posted in ApnaBill, Life in Pune | Comments (1)

Meeting Entrip.com guys…

April 19th, 2008

The day was very hectic… was up @ 10 AM, saw “Horton hears a who” @ 11 AM, had a quick breakfast @ 1PM, started for LCG meeting @ 3PM and then finally met the Entrip.com guys at 6PM - all as I planned yesternight :)

…and by now I am dead tired - just enough of me left to write this post ;)

The meeting with Entrip.com founders was special because we were kind’of resonating at the same frequency, the same enthusiasm and that energy. Of course, the thread which tied us all together was Rails ;)

EnTrip is an integrated travel utility which enables you to:

  • Plan or map out your entire trip, using our intuitive map-based interface
  • Capture the experiences and vivid memories that make up your trip, within their geographical context
  • Easily share your adventures with friends and family around the world, in a meaningful way

If you are interested in how it works, try out the founding team’s trip to India.

I wish them a ton of good luck for their project.

Posted in ApnaBill, GNU/Linux, Startups, Web 2.0 | Comments (1)

Back to the basics - validating HTML anyone?

April 19th, 2008

Its almost 4 AM now & past 3 hours saw a lot of commits going into ApnaBill.com code. After realizing that we were not generating (X)HTML code, the effort was targeted at containment, if not eradication ;)

Many thanks to Zundra for pointing this out to me.

Due to an open div tag, the new (& slick looking) navbar wasn’t showing up on IE. HTML cleanup frenzy atleast solved that problem…

Here is what’ve changed in the code so far (straight out of our changelog)

Phew! Thats enough work for the night… onto some hollywood flick now!

Oh yes, btw, tomorrow’s a pretty hectic day. I’m watching “Horton Hears a Who” at 11AM, then going for LCG Meet at 3PM and meeting folks from www.entrip.com at 6PM. Wow! Now thats some schedule!

Posted in ApnaBill, Rails, Startups, Web 2.0 | Comments (2)

Newton’s laws of motion for Startups!

April 18th, 2008

A quick refresher on Newton’s laws of motion

Yesterday, I was pushing Sandy to fill up some forms when it suddenly hit me that it was actually all working exactly according to Newton’s laws of motion.

Dodge this!
An idea always remains an idea until someone (or a team) pushes himself to take the pains of getting it done. In other words, the object (the idea) would remain an idea until an external force (effort) is applied to it. Once the effort comes in, the idea starts taking a shape - steadily.

The amount of effort put in by all the team members combined, can give a fair idea bout the output. This output can be a deliverable or a beta release.

Force = Mass * Acceleration
is analogous to
Release = Team * Effort

But it is to be kept in mind all the time that this force (effort) is a vector quantity - ie., it has a directional sense attached to it. If all team members work together towards the same goal, the effort would be additive - otherwise subtractive.

No market is good enough for a business which does not has a competition. More the amount of existing competition, the better product/results a new team would plan to deliver.
Market forces would then determine which one goes on to live and which one perishes.

The similarity I found between the laws and the way we work at ApnaBill.com, made me sit up and write this blog post at 2 AM in the morning…. now thats some force ;)

Posted in ApnaBill, Startups | Comments (1)

Do you feel that kick?

April 10th, 2008

The only other time I felt this big a kick… was when I first wore Red Hat’s shirt!

You had to be in that moment to feel the kick as I felt it!

Apparel printed at Rottees

Posted in ApnaBill, Startups | Comments (6)

ApnaBill.com

April 8th, 2008

Posted in A strong urge to blog..., Advertising, ApnaBill, Startups | Comments (2)

A quickie on ApnaBill.com

April 7th, 2008

Just in case, if you havn’t registered on ApnaBill.com - try it out today! Beta signups are still open :)

Posted in ApnaBill | Comments (0)

Migrating ApnaBill.com to SqlSessionStore

April 5th, 2008

Rails2’s client side sessions were starting to give us troubles as we were ‘kinda’ overshooting the 4kb limit almost every now and then. Idealists would say that thats a bad practice - and I agree - but the changes now run too deep to fix them, withought having to change/throw a lot of code.

It seemed much better to fall back to server side sessions than client side. A quick search and ActiveRecordStore is one of the chosen techniques after PStore. Another quick search and you’ll come across SqlSessionStore which is much faster than ActiveRecordStore. [Comparison of various session management techniques]

Installation and configuration was super quick (thanks to the plugin) - follow the README.

However, one issue that you’ll need to address is to get mysql-ruby installed.

The next issue that’ll stare at you in the face is to constantly keep the sessions table cleaned up. And I faced a peculiar problem solving this. The timestamps of “updated_at” were running 4 hours behind the Time.now value. So stock solutions available for this problem were not working perfectly. I had to subtract an offset of “4.hours” from XX.minutes.ago value to get the correct timeouts.

desc "Cleans up stale sessions."

task :clean_stale_sessions => :environment do

  # Determined by manual inspection.

  offset = 4.hours

  CGI::Session::ActiveRecordStore::Session.destroy_all( ['updated_at <?', YOUR_TIMEOUT.minutes.ago - offset] )

end

Hence Solved Bug #69, which solved Bug #67 and Bug #15 - wheehaa!

Posted in ApnaBill, Rails, Startups, Web 2.0 | Comments (0)

Startup Lunch - This Friday!

April 1st, 2008

Ever experienced Speed Dating?

As finding friends/partners is to Speed Dating, finding investors/future-employees is to Startup Lunch.

Startup Lunch is an initiative on the lines of (and by) Proto.in and in concept, is very similar to speed dating.

The startup founders are seated on one side and the candidates get to say hello and have a quick conversation to talk about what the background of the founder is, why he started the company and what sort of person he is looking for, while asking questions to the candidate about the reason to join a startup and what his/her passions are and ten minutes later the same process continues with the next founder. Within an hour, you would have met/spoken to most of the startups, and by the end of the day would know whom to get in touch with for your first/next job.

The event, at present is organized across India - in Bangalore, Chennai, Mumbai, Delhi, Pune and Hyderabad.

Luckily, Pune’t meet has been clubbed with Open Coffee Club Meet. More details about the startup lunch are here

Its an unique opportunity for me - I’ve never met another budding entrepreneur in person - specially when he/she has a business plan in his/her hands. It would be awesome to see what all my peer fellas are upto. And specially important to see how ApnaBill.com is received amongst them.

Oh yes, I’ll be giving a short intro about ApnaBill.com at the Startup Lunch. More about it later…

Can’t really wait till Friday! Can you? :-)

Posted in ApnaBill, Life in Pune, Startups, Technology, Web 2.0 | Comments (5)