Wednesday, March 2, 2011

Using web skills to create product catalog / brochure

update : Brochure we created using below discussed points, for Postoz - SaaS hosted business process system is accessible at https://s3.amazonaws.com/postoz/postoz-brochure.pdf

In this blog we discusses about creating professional looking product catalog / brochure by leveraging web development skills.

You need,
To outline steps involved, we will create simple brochure.

Create brochure layout with Blue print CSS

if you haven't used Blue print CSS before, have a look at this tutorial




Apply necessary styles

Download and apply Cufon fonts

For this demo, i used vanilla font from Cufon fonts.


Export your webpage as pdf


You can download files associated with this blog entry at github repo : https://github.com/selvan/sample-brochure

update : Brochure we created using above discussed points, for Postoz - SaaS hosted business process system is accessible at https://s3.amazonaws.com/postoz/postoz-brochure.pdf

Monday, January 10, 2011

Good Team + Interesting Technology + Great Vision = Investment

Few weeks ago, on my way to office, noticed advertising hoardings from VBHC for 1BHK apartments at $13,500 (5500000 INR) & 2BHK apartments at $27,000 (1250000). Price tag of these apartments was big surprise and as an entrepreneur i started wondering about their business model.

I decided to spend some time & understand their business & economics behind it. Here is my analysis.

1) Builders.

Like in many cities, real estate business in bangalore too has strong links with not so good people (Unethical, Greed etc). So first thing i looked at was,
who is the promotor of VBHC ?. I found that "Jerry Rao" is the promotor and HDFC investment arm holds minority stake in VBHC. As i work in the software industry, i knew that jerry rao was the founder of Mphasis (He sold Mphasis to EDS) and he was also served as chairman of NASSCOM. VBHC project was launched by HDFC chairman "Deepak Parekh". When multi billion dollar satyam scam emerged, Minister for Corporate Affairs constituted new board for satyam and "Deepak Parekh" was one of the three board members. I am convinced that i am dealing with good builders.

2) Business & economics.

Lets understand how typical real estate business works in India.

  • Builder purchases land - With his own money or via loan.
  • Builder starts construction using conventional methods - Most builders take loan for construction to mitigate their execution/business risk.
  • Builder completes 60% of construction. - Interest incurred on the loan during this period will be passed on to consumers.
  • Builder starts marketing. - Interest incurred on the loan during this period will be passed on to consumers.
  • Builder couldn't sell (as the market is competitive) or Builder didn't want to sell (expects demands will be high) - More interest incurred on the loan, again it will be passed on to consumers.

Based on various parameters (number of units being constructed, capital strength of the builder, market demand etc) typical construction duration is between 2 to 3 years.

Lets look at how VBHC is building,

  • VBHC purchases land.
  • Constructs model houses, starts marketing.
  • Completes more than 95% booking before actual construction starts. Construction cost is paied by consumer in chunks along with progress of the construction. VBHC completely avoided their major business risk - "selling to consumer", even before the construction started.
  • Construction completes within a year.

In their current project, VBHC is building ~1800 units. This large volume of units allows them to bargain more from their raw material suppliers. VBHC is clearly trying to distrupt conventional housing business with "Build large number of units & Build quickly."

3) Technology

When VBHC told me that they will construct all ~1800 units with a year & 3 months, i was surprised as i thought it is nearly impossible with conventional construction method (It is equivalent to thinking "5 ladies together can deliver a baby in just 2 months"). They showed interesting method for construction - "Western Forms". As i wan't aware "Western Forms" way of construction elsewhere, I questioned about usage of the same technology elsewhere. The sales guy replied that the technology provider has successfully used the same construction methodology on multiple hosuing projects in mexico and many commercial projects in NA.




VBHC is targeting urban middle class with their vision of "a million homes in 10 years". Affordable 2BHK flats along with in-campus CBSE school, grocery shops & primary health center, certainly the valuation (based on location of the project, price tag, team, amenities, safety, community living, return on investment) of VBHC Vaibhava project looks attractive.

Saturday, January 8, 2011

Salary structure - multiple options

Instead of having single salary structure, we started offering multiple options to our new employees,

  1. Pure stock option => X number of company shares.
  2. Stock option (Major portion) + Cash amount (Minor portion) => X number of company shares + Y amount of cash.
  3. Cash amount (Major portion) + Stock option (Minor portion) => Y amount of cash + X number of company shares.
  4. Pure cash amount => Y amount of cash.
We also allowed him to switch to other option within three month from the joining date.

Primay key look up : NOSQL vs SQL

To demonstrate this usecase, we retrieve bunch of columns for a primary key. Typical SQL would be,

"SELECT COLUMN1, COLUMN2, COLUMN3 FROM TABLE WHERE PRIMARY_KEY={X}".

Lets analyze what happens when we execute above SQL,

1) Query passes through SQL engine.
a) Lexical analysis & Parsing of SQL statement (Exception will be raised if any syntax error found).
b) SQL optimization to choose optimal execution path for the statement.

2) Searching the index for primary key
Most databses store table indexs on tree structure. B+ tree is most commonly and widely used indexing structure. Even with, highly optimized B+ index structure, some form of tree search is required to locate the primary key.
3) Primary key is located, perform data retrieval.
Primary key is located, corresponding row is returned for that primary key.
Is SQL way of retrieving data based on primary key effective?. Lets see how we implement same usecase with NOSQL,

"GET [TABLE][PRIMARY_KEY]"

In NOSQL, primary key and corresponding columns are stored as Hash (key => primarykey, value => column values as string/jason). With NOSQL, looking up primary key is performed in constant time and there is no need for lexical analysis, parsing and optimization. Does this pattern sound familer?. Many large websites use MySQL with Memcached. Memcached will serve as in-memory NOSQL.

NOSQL is better for fast retrieval of data using primary key. MySQL + Memcached combination could be used to achieve the same.



Wednesday, December 29, 2010

Startup Quants

As an entrepreneur, one aspect that i enjoy quite often is quantification of various aspect of our business.

  • What is the current valuation of our venture?
  • How much money should we raise in this round?
  • Should i go for fixed size equity round or convertible debt round?
  • How much options should i grant to person 'x'?
  • What does it take to recruit this interesting guy?
  • Why do customer think product 'x' is better than product 'y'?
  • How to price our products?
  • Is it worth pursuing idea 'x'?
  • ....... ........ .......
It is very unlikely that one will find optimal answer to these questions. Certainly there would be very subjective answers to few of these questions.

To find near optimal answers, you may take advise from peers, read about experience of others but it will be your own experiments that will give satisfying answers. My approach has been "Experiment at smaller scale, amplify if the experiment is successful, re-experiment incase of failure" (You should be shameless about your failures, iterate quickly & fail fast).

Beware, when things are incomprehensible, you will treat them as cheap or flout them or think they are magical.

Tuesday, December 28, 2010

Welcome aboard

Most corporates have some form of induction program to on-board new employees. Startup doesn't have time, energy & man power for such programs.

In corporate environment such program can't be avoided for various reasons,

1) In corporates, it is not uncommon to on-board large group ( > 5 employees) at a time, but in startups it is always cherry picking.

2) Corporates do recruitment based on profile matching and (try to) mould employees to their culture but startups put lot of emphasis on culture & passion while recruiting itself.

3) During induction program, corporates will show what makes their company a unique place to work. But startups count on new employee(s) to make their company unique.

4) In corporates, one should understand structure of the company to escalate issues and get things done. But in startups, things & structure would be fluid.

5) Corporates trust their process more than people, whereas startups trust their people most.

I have also seen backlash from employees when a company transform from startup stage to corporate stage (Things were not like this before, Do we really need a position to take care certain things? etc).

In our startup bitstat technologies, we have introduced "self-experiment-and-use-your-freetime" induction process for new employees. In this process they will execute their own idea, create a simple software product, try to market it and will share their experience with others.

Someday, our startup would be a corporate. But till that time, our experiments will continue.

Monday, August 3, 2009

Open Source Calendar Server

I was looking for open source calender server with CalDev support. I finally decided to go with "Darwin Calendar Server", that is being developed and maintained by Apple. Darwin calendar server is developed with Python. Here are the instructions to build darwin calendar server on ubuntu,

a) apt-get install following components, if you don't have it,

build-essential
python-openssl
python-xattr
python-zopeinterface
python-xml
ibkrb5-dev
krb5-config

b) Create empty directory, check out CalendarServer inside empty directory (while building, system will download number of other necessary libs inside empty directory you have created),

svn checkout http://svn.calendarserver.org/repository/calendarserver/CalendarServer/trunk CalendarServer

c) Enable extended attributes for the filesystem (CalendarServer expects extended attribute enabled file system for storing calendar data),

edit, /etc/fstab and add user_xattr

Here is how my "/etc/fstab" looks after adding user_xattr,

UUID=2594fb7b-cb60-490c-8d08-1fbee11f1e5f / ext3 relatime,errors=remount-ro,user_xattr 0 1

d) Activate fstab changes, with 'mount -o remount /<mountpoint>'

e) To build CalendarServer, follow the instructions listed at,
http://trac.calendarserver.org/wiki/QuickStart

f) If everything goes fine, open browser with http://localhost:8008/calendars/users/admin/calendar (If you are challenged by security realm, enter admin for both username and password). You should see admin's calendar listing

g) You may use any calendar client that supports "CalDev" to access your calendar. If you plan to use sunbird as your client, follow the instructions at
http://trac.calendarserver.org/wiki/Sunbird