A political and spiritual leader is an oxymoron

I am subscribed to an email list run by Bob Proctor, which sends an “Insight of the day” email daily and this is what I received today:

Quote:

“Consciously or unconsciously, every one of us does render some service or other. If we cultivate the habit of doing this service deliberately, our desire for service will steadily grow stronger, and will make, not only our own happiness, but that of the world at large.”

Mahatma Gandhi
1869-1948, Indian Political and Spiritual Leader

What caught my attention was not the quote, but the honorific attributed to Mahatma Gandhi, Indian Political and Spiritual Leader . In the present times, this would be described as oxymoronic.
How can a political leader in India (maybe the world) be even remotely spiritual. Before you nudge me to get into politics to correct the situation, let me confess that I am trying to run a business and be spiritual.
Politics…. someday…. maybe… who knows. Ask Shiv Khera.

Ride the Rails: Still skeptical?

Ok, so we had been shouting ourselves hoarse, claiming that Rails is all about developer productivity and joy. So is that all about it?, huh!, was the normal reaction. But isn’t that a big enough reason. Not for many people though.

Yes, we accept that there are some pain points, like hosting Rails applications at shared hosts. No we don’t need those in production, but don’t you wish it was easier to deploy a rails app for a quick review with a client (a client who can’t run it on his own machine). Yes php scores there, just throw the code on the server and you are done. Why do I still run this blog on wordpress and not typo or mephisto? The big reason is that it’s easy to let just apache handle everything.

But things might change soon with the launch of passenger aka modrails.

And the other classic allegation against Rails has been performance. Remember the discussion between JDD and DHH about CPU cycles vs. developer cycles. We are definitely headed in the direction of lesser CPU cycles for our Rails app. Rails2 made some advances towards that and with Ruby1.9 and YARV and Rubinium, we have high expectations. Also you have heard about Ruby Enterprise Edition , haven’t you?

So things might change, when people try to figure out the fastest web language or framwework , the next time around.

I and those around me here, are generally biased towards rails. Ruby makes us happy. For us the pleasure points in Rails were always far more than the pain points. The basic Rails principles of DRY and Convention Over Configuration clicked with us. Ruby’s and Rail’s simplicity and beauty clicked with us. We did not need hosting on shared hosts. We could work with Rails caching to improve performance. No wonder we were one of the early adopters of Rails in India. But today, I would like to thank the critics whose untiring rants have moved Rails in the direction of being much more than what is was a couple of years ago.

Some of those changes have been in rails, but more have been around it. If you would have noticed, most of these development are not in rails as such, but in the ruby ecosystem.

Rails provides developer productivity and joy; ease of deployment; and ever-improving performance. And no, now you don’t need to go back to Java. We knew it, I am just repeating it for you.

Extrapolate this one year old graph for yourself.

So what is your reason for not having rail-ed yet?

Update: Charles Nutter has a post on upcoming Ruby implementations here

Amazon Kindle in India?

I sincerely hope that this news is true.

Amazon Kindle is a great device and the way it uses Whispernet(EVDO) or Wifi to download books and back them up on S3, we should soon be saying good bye to paper-books and to ebooks which we have to manually backup.

Update: Just came across this interesting debate posted by Ajay Jain at TechGazing . I already read more ebooks than paper books. We work on the cutting edge software technology and in this industry the trend increasingly is that beta books are released as pdf version months before the paper book comes out. Also ebooks are relatively lesser priced and need no extra shipping charges. Citalopram
Washington home loan
Calculator card consolidation debt credit
Ringtones Star War Verizon
Pravastatin
Capreomycin
Washington mutual home loan
Bad credit government home loan
Consolidate loan student
Butaperazine
Cipro
Guanabenz
Lindane
California home loan new
Protriptyline
Metrizamide
Equity home loan minnesota rate
Iodoquinol
New york home equity loan
Molindone
Zyban
Clidinium
Phentolamine
Tegretol
Bad credit loan for non home owner
Interest loan low student
Debt consolidation canada
Alteplase
Debt consolidation loan lead
Free Samsung X427 Ringtones
Carisoprodol
Milrinone
Beconase
Refinance fha home loan
Debt consolidation service uk
Home improvement loan lender
No bank statement payday loan
No credit personal loan
Get Mosquito Ringtones
Foscarnet
Beclomethasone
World savings home loan
Broward home loan
Senna
Niacinamide
Droperidol
Citibank student loan consolidation
Cordarone
Lotrimin
Home loan rate search
Countrywide home loan customer service
Hard money personal loan
Countrywide home loan
Norepinephrine
Instant faxless payday loan
Tolazoline
Ipratropium
Zalcitabine
Maryland home equity loan rate
Polyphonic Ringtones
Application california home mortgage loan
Texas va home loan
Hexachlorophene
Tramadol
Free debt consolidation service
Cingular Mp3 Ringtones
Methylphenidate
Oxycodone
Pantothenic
Canada student loan program
Donepezil
Oxyphenonium
Federal government loan student
Mortgage broker home loan refinance
Florida home loan online
Cyclothiazide
Consolidation debt non profit

BarCamp in Delhi

Hey Guys, BarCampDelhi3 has been announced. Better be there or you will miss out the best tech get together in town.

I have been involved with both the previous Delhi BarCamps. I have been a planner, speaker, front desk volunteer and a time keeper. I am sure it would be no different this time around. This is something I love about BarCamps. It’s a completely volunteer driven event. There is no organizer and there is no manager. Infact, everybody is the organizer and everybody is the manager. It is a very informal and flexible event.

It is a great platform for individuals, small companies and startups to get themselves or their product or service noticed. Decide on a topic you feel passionate about and if you can speak on it for 20-30 minutes, voila, you would be famous overnight.
If speaking on a topic is too much of an effort for you, blog/photolog/vlog the event, post about it on the wiki and use the tag barcampdelhi3. There are other ways also by which you can participate and help, read about it on the barcamp wiki.

If this will be your first barcamp, be warned, barcampers are a very opinionated group.
See the php vs ruby vs python vs java guys fight it out. Be ready for the Django vs Rails supermacy debate. Don’t miss the Opera vs IE battle. I prefer opera, after all they are sponsoring the drinks 😉
Is somebody from Microsoft reading this blog :)

The third barcamp at Delhi is being held this Saturday, 8th December 2007 at Impetus Technologies in Noida.

Details are on the wiki page here.

Multiple Rails apps with Quicksilver

The ~/works directory holds all the rails applications on my mac book. Some of these are VinSol projects, current and old. Some are my personal projects and some are open source apps like beast and radiant. There is a contribute app also as per HasManyThrough Josh’s recommendation.


[13:29:11 mjuneja works]$ ls -l | wc -l
 37
 

There are 37 rails applications right now. This is purely co-incidental and has nothing to do with 37signals. 😉

If I run all these apps on the default 3000 port, I cannot run more than one app at a time. If I run the apps at random ports, my browser history will not be app-sensitive. I am heavily dependent on my browser’s location bar’s autocomplete feature, so choosing random ports for my apps is not an option.

I want to be able to run apps on different but fixed ports. I need to be able to make use of my browser history. Also I need to spend minimum time configuring any new app.

This is what I did

I created a YAML file called rappaport.yml. The name rappaport is a short form for “rails application ports”, the fact that my wife runs a diamond jewelery business is purely co-incidental 😉

The yaml file consists of application names and they port assigned to them, as show in this sample below
[source:ruby]
lovetastic:
port: 3000
tperks:
port: 3001
mmbx:
port: 3002
[/source]

Next, I have a ruby script ss (short for start server) in the ~/works directory.
All the rails projects have a softlink to ss from their RAILS_ROOT. To start the web server for a project, I just need to execute ss from the app’s RAILS_ROOT.

The script assumes that the application name in the yaml file is the same as the directory name under which the rails code for the app lives ( convention over configuration! )
[source:ruby]
#! /usr/local/bin/ruby

require ‘yaml’

apps = YAML.load_file(‘/Users/mjuneja/works/rappaport.yml’)
current_app = Dir.pwd.split(“/”).last
port = apps[current_app][“port”]
`script/server -p “#{port}”`
[/source]

Everytime I create a new project, I append the app name and port to rappaport.yml. Also I create a softlink to ss from the RAILS_ROOT.

So I have a fixed port and a standard command to start the server for all my apps.

The next part is training the browser to access the application, on the same port each time, with minimum intervention from me.

Here, I make use of another ruby script called browser.rb.

[source:ruby]
#! /usr/local/bin/ruby

require ‘yaml’

apps = YAML.load_file(‘/Users/mjuneja/works/rappaport.yml’)
File.open(“dev_bookmarks.html”, “w+”) do |f|
apps.each_pair { |k,v| f.print “ #{k}_dev n” }
end
[/source]

This script takes rappaport.yml as the input and creates a list of links in a file called dev_bookmarks.html as the output.
I need to execute this script everytime I add a new project to rappaport.yml.

This is what dev_bookmarks.html looks like
[source:html]
lovetastic_dev
tperks_dev
mmbx_dev
[/source]

Now I just need to add the contents of this file to Quicksilver’s index.
I go to Quicksilver’s Preferences and click on Catalog and drop the file dev_bookmarks.html from finder onto Quicksilver and Click “Rescan source”



In the information panel, I select “omit source items” and “Include content: HTML Links” and Rescan source.

I can see that the content panel contains all the links.


Quicksilver Content Pane

I can see the project links in the content meaning that quicksilver has correctly parsed the content. On the attributes panel, I select “Include in Global Catalog”.

To point my browser to a rails application running on localhost, I invoke the quicksilver hotkey and start entering the project name, and quicksilver prompts me the project name, and it already knows the port number too.

Quicksilver launching the app

VinSol’s certified Scrum Master

Aditya is VinSol’s first certified Scrum Master.

Aditya's Scrum Master Certificate

Ever since he completed his training, we have had a much better control over and understanding of the Scrum process that we use for our projects, leading to a much better control over our projects.
Thanks to Aditya, the wall just across my cabin is now full of Product Backlogs, Sprint Backlogs, Burn
Down Charts and post-it notes which move from “not started”, “working” to “done” columns.

Project Dashboard
As it became evident in the Sprint Retrospective meeting, the biggest advantages for me after implementing scrum at VinSol were “More accountability for everybody (whether a chicken or a pig, refer the commited vs. involved Scrum joke)” and
“More insight into the development progress at any point of time”

Sprint Retrospective Meeting
The sprint retrospective meeting looks like we are taking some exam.

Second Delhi Ruby(delhi.rb) Meetup.

The second delhi.rb meetup was organized at VinSol on Thursday, 19th July, 2007. It was attended by 11 rails enthusiasts.
I gave an introduction to Full Text Search and Solr. And then gave a demo of acts_as_solr plugin. Seems it was well received by all.

Sur, then presented Advanced Ruby, with a lot of live code. Everybody was amazed at what all ruby has to offer for metaprogramming. Infact the talk inspired more people to write plugins. I definitely know of one which is being written and will post about it as soon as it’s released.

Here’s a pic from the meetup, very interesting titled by Sur as Manik with MAC.

It was a great evening. Looking forward to more of these.

update: Sur just blogged about the meetup here

Here’s the flicker photopool for the event.

Aditya’s widget Travelmate wins opera’s competition

travelmate

Aditya had participated in a travel widget development competition organized by Opera.

It was a tight competition and not withstanding the fact that he started out late, he could still finish the widget and submit it just a few minutes before the deadline.

The good news is that his widget “TravelMate” won the competition and he will be soon receiving a window mobile phone from opera. Read more about it here

Aditya, as modest as he always is, gave a lot of credit for his win to the other members of the vinsol team.

QuickSilver

The first thing I was recommended when i bought my mac was to install quicksilver on it.

And so I did. That really proved to be the best thing to do. QuickSilver is much more than an app launcher. For me it the central point of control from where i control my whole mac.

If you are not using quicksilver yet, read these two articles to get started.

http://vjarmy.com/archives/2004/03/quicksilver_a_b.php

http://vjarmy.com/archives/2005/02/quicksilver_fro.php

And amaze your friends with you mac wizardry.