Nothing can beat this

I updated my Linkedin profile to reflect that I left TRI and currently not employed. In the last four weeks I have received three offers to work on software where in person in question said he will not pay me, however as and when the first customer comes into picture money will be shared. While one of them thinks for reason best know to him, I would be an idiot not to work on his project coz it’s going to be big soon.

No that’s not what’s unsual. Honestly it isn’t. I know of ppl who have worked for free for my previous two companies/startups. So stuff like this happens. Most Entrepreneur genuinely believe in their Idea and their ability to execute it.

What’s unusual is that the third person in question is with a VC. Hell ya. To quote him he said “as part of being a VC we help people and I know a very smart 21 year old younger who needs a webapp done” … blah blah blah. I asked myself Is he testing me ? As in may be he’s building a team and wants to see if I have the startup frugal mindset.

I have worked for free in my life before to help others. I have realized that people don’t respect those who do things for free, yeah the very person whom you helped from a long term perspective. What’s worse is they also forget the promise they made, “if the application is successful we shall share the spoils with you”.

So I mailed the VC on linkedin where the conversation was happening. (No I wasn’t arrogant in my response). I told him “Once bitten Twice Shy — Sorry I like to pass on this opportunity”.

VC’s asking for free work seriously man. Aren’t you guys of all the people suppose to have money ? Nothing can beat this right ?

May 7th, 2010 · Tags rant | 2 Comments »

Decline of Desktop apps

I have developed a few desktop apps. Lately I am learning JQuery and exploring HTML5. I think people looking to create new Desktop applications will reduce with every passing day. Even more important people will start migrating their UI to web. Thanks to the super responsiveness of new javascript engines.

I just posted the screenshots of the application I developed at TRI aka Thinklabs and I think it’s possible to make the same application in HTML5 Canvas once a jquery style library is available with primitive drawing constructs. Scratch is a the most famous Visual Programming Language. Based on the interview of it’s creator they have funding in place and are now creating the next version of Scratch. Which will run in browser without any addon needed aka no flash/silverlight. It would take them a year I suppose to release the first version.

Point is I think a landslide decline of new desktop application has begun along with migration from Desktop UI to Web UI.

This cannot hold true where access to Hardware for computation is needed. Say a 2D/3D visualization application. Such types of application will be desktop based only. I am personally skeptic of Qt’s or any Libraries mass / de-facto adoption on Mobile front. I think 4-5 years down the line brower based applications will win hands down. The future Qt GUI will be a javascript based library.

May 5th, 2010 · Tags rant | No Comments »

CiMPLE

Splash Screen

CiMPLE Assemble You Bot

CiMPLE Visual Programming

May 5th, 2010 · Tags rant | 3 Comments »

heartless goodbye

I am going to say bye
for not living a lie
a lie, that it would work out
and we’ll be rid of doubts
I am going to say bye
for lack of trust
it’s must
I am going to say bye
for you evolved and I changed
I am going to say bye
for it’s not worth another try
I am going to say bye
with a heartless goodbye
April 29th, 2010 · Tags rant | 2 Comments »

Upcoming Mumbai Python User Group Meet

The Mumbai Python User Group is having it’s meet on 2nd May at IITB commencing at 3-6p.m. We have two sessions lined up

1) Introduction to Django Web Framework : By Ankur Gupta

2) Pylons : By Krishnakant

3) Deploying Django Applications : By Sanjay

We are expecting an audience of 30. You are welcome if you can come that’s.

For more details

Website : http://www.mumpy.org/wiki/May2010

April 27th, 2010 · Tags rant | No Comments »

Using redis for data caching

What is Redis ?

“Redis is an open-source, networked, in-memory, persistent, journaled, key-value data store similar to memcached.” Wikipedia .

Why and for What am I using Redis ? (Context)

Have five python (multiprocessing  module based) processes that access common system queue and fetch certain web pages then store them to db. These process loop on the queue forever and the queue is never empty. Each process timeouts after say 20 sec if unable to retrieve the webpage. I want to ensure that none of the process try to fetch a web page which was fetched in last 20 minutes.

My initial idea was to simply keep a in memory python dictionary (hash) with list of all URLs and timestamp when they were fetched.  Just then Ankit mailed me suggesting I could use redis somewhere in this software that I am making. So I did.

Installing and Running Redis on Ubuntu/Linux

$ wget http://redis.googlecode.com/files/redis-1.02.tar.gz
$ tar xzf redis-1.02.tar.gz
$ cd redis-1.02
$ make
$ ./redis-server

The above five commands and Redis is up and running.

Installing and Using the Python Client on Ubuntu/Linux

$ easy_install redis

or

get the redis client source code from here extract and

$ python setup.py build

$ sudo python setup.py install

$ python

>> import redis

>> server = redis.Redis(“localhost”)

>> server.set(“http://cnn.com”, “CNN web page data”)

>> server.get(“http://cnn.com”)

‘CNN web page data’

>> server.exists(“http://cnn.com”)

True

>> server.expire(“http://cnn.com”, 120)

True

>> #after 120 seconds the key and value pair self destruct … yeah mission impossible ;)

>> server.exists(“http://cnn.com”)

False

To sum up what happen above is we started the redis server. Opened Python interpreter and imported redis module. Connected to the redis server on local machine. Created a key value pair using the set API. Key being a url in our case, value is the content of the webpage. Fetched the value against the key using the get API. Now I wanted a caching layer. Say the HTTPWorker Process checks the cache if it gets data from the cache it doesn’t seek the same from the web. So I use the expire API. I set the key to expire after a given no of seconds. After that the key will simply not exist anymore and thus HTTP Worker will fetch from the web.

Redis is much much more than the above. It provides lot of features like ability of value to be list, set, and hash too. It allows you to treat value as a counter increment and decrement it atomically. Fetch all keys stored.

What I like about Redis

a) C code,

b) Easy API and Python Client,

c) 5 minutes and it’s deployed no config required whatsoever to boot,

d) Runs well on single machine,

e) Learning/Deployment/Usage curve is very low.

April 26th, 2010 · Tags rant | 2 Comments »

Accessing Django Model from a python script

After QT if there is a framework that absolutely rocks it’s Django.

This demonstrate that one can decouple the ORM component from Django and use it elsewhere. Intention is to feed data directly from a crawler to the database using Django ORM there by not having to write sql queries to insert and update.

import settings
import django
import django.core.management
django.core.management.setup_environ(settings)
from panel.models import News

April 24th, 2010 · Tags rant | No Comments »

Why People Are Abandon Google Reader For Twitter ?

The First time I heard this was a year back when a twitter enthusiast told me he doesn’t read off google reader anymore. I though he was bonkers, all I think of twitter is a conversation playground. Ever since I am without a job I find myself with less work and more time. I spend some of it on twitter. This week I created an alternative twitter account and subscribed to famous Programmers, Tech writers, Famous Science Websites, Twitter accounts of Book Authors, Movie Directors, Artist, Webcomics authors whose work I liked. Based on the experience

a) Most of these guys put a link on their twitter stream as and when they put a blog post, so you automatically follow their blog as well,

b) Even the most busy folks tweets in a day or two and it reveals more about them then one can know through their blog. They share link to some website, post, picture. It turn out to be much more interesting and many a times things they wouldn’t share on a blog,

c) Once in a while you ask a question and they reply back. It feels good.

The content discovery through twitter is very interesting. Well I am not abandoning my reader as of yet, but I look to unsubscribe 2/3 rd of my feeds soon.

April 24th, 2010 · Tags personal | No Comments »

When it comes to your second computer at home

I think second hand is good.

My first one back in 1999 was for 57,000 Rs. Second one was for 15,000 Rs as I assembled it myself using second hard parts. Third one was for Rs 5,000 with monitor (1 GB Ram, Celeron, 40GB HDD).   I brought it from my companies old computer sales. My laptop was the cheapest laptop available at the store 29,000. A Lenovo and well yeah it’s a Chinese brand.

I use my computers pretty rough. They refuses to run after 2-3 years. First casualty is  always the motherboard. However now that my last two second hand computers have worked beyond 2-3 years I figured it’s good to have a second hand computer @ home. Yeah the configuration is behind current times. Its very handy for usage by parents and it’s not slow for them. Plus the only software they use is the browser.

A Big Negative is you cannot get the second hand one repaired. In my case one of RAM is faulty. SDRAM cost is so high I can add a few grand and get a working computer. If the motherboard goes down, well it’s the end. That’s what I am now doing.

Checklist when buying a second hand computer

a) Install Linux on it first, see if it installs and sound, Ethernet, monitor resolution works properly,

b) Check for bad sector on HDD,

c) 1 GB Ram is must,

d) Run a task that consume 100% CPU. Some old computers trip upon persistent 100% CPU for half an hr.

e) Switch off the computer while it’s running atleast 6-7 times, (Stress testing)

f) Tell the guy who is selling you that you will pay half the amount now and if it works without issues @ your home for next 3 weeks you will pay the other half. Mostly they negotiate on %. So start with 25%, they will come to 50%.

Go out there and check people are willing to sell old computers at prices you wouldn’t imagine. When they stop working it doesn’t hurt at all.

April 19th, 2010 · Tags rant | 2 Comments »

FreeFall Webcomic

FreeFall is the first webcomic I started reading back in college. I subscribe to about 30-40 webcomics. Amongst all of them, I rate FreeFall as my favorite and also the only one which I read on the website rather than subscribe through Google Reader.

FreeFall is a sci-fi webcomic with good humor.

The story line is about a spacecraft named “Savage Chicken”. It’s owner Sam Starfall is a con artist along with his companion Helix a robot. Sam is hardcore liar/thug/con who wouldn’t miss an opportunity to make quick bucks. He believes he never steals anything from anyone he just borrows it without asking to return it in the future. Such is his influence that if anything goes wrong in the Intergalactic system it has to be Sam.  Then enters Florence Ambrose a genetically engineered Half wolf Half Human and an Engineer (That’s how I like to think of it). She is on the contrary a honest and straight forward person. (Atleast before she met sam). For some reason ends up being Sam’s ships captain.

The comic makes mentions of stuff like all robots being wirelessly to each other with ability to share information, the three laws of robotics, references to twitter, linux, operating systems of spacecraft, working of a futuristic spacecraft. More imp at the same time if someone is less interested in sci-fi you would still enjoy it thanks to Sam.

Here is the link. Enjoy it. The day iPad variants become cheap I will sit on a weekend and read it again from first strip to last.

April 18th, 2010 · Tags timepass | No Comments »