Sunday, August 31, 2014

Brain to brain communication

I have long held the belief that any technology that you can imagine, is actually possible to create. As for wives who expect their husbands to read their minds, the appropriate tech is on it's way :) Something like the ideal UI which I wrote about.

Researchers and technologists from the University of Barcelona, Neurodynamics lab, Starlab, Axilum robotics, Neuroelectrics Barcelona, Cognition and brain plasticity unit, Berenson Allen center for non invasive brain stimulation and Havard medical school, Boston, have successfully transmitted a message directly from one human brain in Kerala to another human brain in France. Check it out!



This is done "non-invasively". Which means, that there are no wires inserted into your brain. All machines are outside (and it took more than 15 years of research to bring it to this stage).

The Brain to Computer Interface (BCI)
Uses an ElectroEncephaloGram (EEG) connected to the internet. The volunteer imagines moving his feet to stimulate the motor cortex of the brain which is captured by the EEG at a certain spectral power (voltage/frequency) and translated into the number 0. The volunteer imagines moving his hands and that's translated into the number 1.

To accomplish this, the volunteer was shown the sequence of 0's and 1's as a 0 on the bottom-right corner of the screen or a 1 on the top-right corner. When the volunteer saw the number, he had to imagine a leg movement or a hand movement so that the EEG picks up the signal.

They confirmed the correctness of whether to transmit the imagined data or not, using a ball which moves from left to right on the screen, at constant speed. Only if the number shown on the screen matches with what the volunteer imagines, will the ball hit the rectangular target on the right of the screen. Othewise, the ball moves vertically.


The Computer to Brain Interface (CBI)
Uses a Transcranial Magnetic Stimulation (TMS) that receives BCI data transmitted through the internet. The TMS machine stimulates bi-phasic pulses on the cortex area in the occipital lobe of the brains of three volunteers. They had to separately identify the phosphene (the feeling of seeing light although no light enters the eye. I wonder if this is the 'light' that NDE people see) producing area in the right visual occipital cortex area of each volunteer's brain.


The visual occipital cortex area of the brain

The intensity of the pulses can be adjusted such that the induced electric field can be oriented in two different angles; one angle representing the number 1 and the other perpendicular angle representing the number 0. Only the angle representing 1, produced phosphenes in the brain.

Sending and receiving
Using these techniques, on March 28th 2014, 140 numbers (called bits) were sent from Thiruvananthapuram by the BCI machine which used email to transmit the data, and were received by the CBI at Stratsbourg. The message was "hola" which was translated into bits. The second message sent was "ciao" (many people misspell it as 'chao').

The words were encoded using a 5 bit Bacon cipher and replicated for redundancy 7 times, randomized with random ciphers selected to produce balanced pseudo-random sequences of 0's and 1's. These were transmitted by the BCI at 3 bits per minute. The CBI received it at 2 bits per minute and the bits were de-cyphered and majority voting from the 3 volunteers was used to decode the message. For "hola", the transmission error rates were 6%, 5% and 11% for each volunteer. For "ciao", it was 2%, 1% and 4%.

Ensuring that the volunteers weren't guessing
Since these were 0's and 1's being transmitted, it's pretty-much like a coin being tossed. This technique of randomizing had to be used to ensure that the volunteers weren't guessing which bits were being received by the CBI. The probability of guessing 140 random bits with an error rate of 20% (28 errors out of 140) is very low (similar to the probability of ending up with 112 Heads for 140 coin tosses. The probability of it being 0.0000000000001).

The code
MATLAB was used for the programming. The code is from the plosone website.

Cipher used for word transmission:
To encode the 4-letter words we used a Bacon cipher (Matlab code follows):
%% First we encode the letters using the Bacon cypher:
h = [0 0 1 1 1];
o = [0 1 1 0 1];
l = [0 1 0 1 0];
a = [0 0 0 0 0];
% now we form the word bit string:
word=[ h o l a ];
% and the resulting strings repeated 7 times,
Reps=7;
repword=repmat(word,1,Reps);
%% Encrypting and balancing (for later stat analysis)
% Repeat this block till you get a sum of 50% of the length for the sum.
% First, create the randomizing cipher
cypher = round(rand(length(repword),1)');
% Encrypt the word
transmit= mod(cypher+repword,2);
% check that we have 50% 1s and 0s:
sum(transmit) % should be 70=?10/2
%check we can decode after reception! This shoudl be zero:
sum(repword - mod(transmit+cypher,2))
%% Summarizing.
% Message to transmit:
transmit
% decoding cipher
cypher

E.g, the second 140 string transmitted was

transmit= [1 1 0 0 1 0 1 1 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0 0 0 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 1 0 11 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 1 1].

Decoding was done again by addition of the cipher mod 2. The resulting 140 bit string was then split into 7 blocks, and each block into 4 letters of 5 bits each. Majority voting from each block was used to fix the final bit value for the 20 bit encoded word.


Possibilities
Awesome! Isn't it? We're still a very long way to being able to use a device on our head which will allow us to communicate with others without even having to talk.

Just imagine:
  • You'll be able to transmit an image of a movie scene you watched (but forgot the name), into your friend's brain and ask your friend what the name of the movie was.
  • You'll be able to communicate with people who don't know your language.
  • You might even be able to communicate with animals (if mosquitoes could be made to wear the device, you could warn them to stop buzzing in your ear :) just kidding)
  • You'd be able to control devices just by imagining it!
  • People might eventually be able to read into other's thoughts (hacking), but by then there would be ways to block that too.

The internet would have to change significantly to adapt to this kind of a technology. A nice future is in store for human-kind.

The research paper which shares this technology, is here.


Friday, August 22, 2014

Applying for a passport

My first suggestion to a person who asked me about applying for a passport was, "Google it" :) Turns out that the info on the internet is out-dated, so here's my help page:

The process of applying for a passport was a very tedious process earlier. Thankfully, now a lot seems to have changed. You can fill in your details online, make your payment online, you'll be given the option to choose which passport center you want to go to and on what date (long back, people had to go through a funny process of typing a captcha, clicking a button on the website at 6pm and hoping the server registers their request before the days quota expired; it usually expired within a few minutes) and simply turn up at the Passport Seva Kendra (the Passport Office) with the application form printout, the necessary documents in original and photocopies of those documents (they give you the option of scanning and uploading the documents, but that's not compulsory). Once you enter, you'll be out of the passport office in about four and a half hours. There's absolutely no need of getting it done through an agent.



Make sure you type the full expansion of your name in the application form. For references, you'd be better off giving references of your neighbours instead of your relatives (although relatives references are also accepted).

Here's a checklist and guideline for anyone going to the passport office:

Checklist
  • Take a printout of the application form submitted online (if you end up with a very wide web page form which is difficult to print, you can use one of Mozilla Firefox's add-on's to convert the web page into a PDF file which will be easy to print).
  • Read the instructions given at the end of the application form.
  • The originals of the documents which provide your date of birth proof, address proof etc. (register yourself on the passport website and login. You'll be shown the list of documents you can produce)
  • Two photocopies of all those documents (put your signature on all the photocopies. That's what self-attested means)
  • A file or two for holding all those documents.
  • A bottle of water (you'll surely feel thirsty while waiting)
  • A sandwich or two (the food counter there is over-priced and not necessarily good)
  • A book or video-games or a movie on your smartphone (cameras aren't allowed, but smartphones with cameras seem to be allowed. Just don't click photos of the place or you might get into trouble) or something to keep you occupied while waiting for hours.
  • A comb (a webcam will capture your photo for the passport, and you'd want to look good :-) )
  • A pen (not really necessary, but can come in handy)

If you're going to the Marathalli passport office at Sai Arcade, Bangalore, there's ample parking space, and if you prefer bus, you'll get bus number 500D from under the Hebbal flyover and from Silkboard junction (near the bridge). You'll have to disembark near Bangalore Central mall (just ask the bus conductor where to disembark).


What happens in the passport office:
You'll have to show a printout of the application form submitted online, to the guard standing outside. Only then you'll be let in. It has to look exactly like the printout page that's shown online (when I went to apply, there was a person with a printout of the application with the GMail logo; which means he emailed it to himself and printed the email. He wasn't allowed into the passport office).
The passport office is actually quite a small place, btw.

Initial counter: Once you're in, search for the queue for new passport applications. The person at the counter will check the documents you brought and the photo-copy, and put it into a file and hand it over to you. They also give you a printout of a token number.

Then you move into a waiting area with just enough chairs to seat 80% of the applicants, and wait until your token number is called out (the numbers will appear on a display screen too). Moving to counter A happens within around 15 min.

Counter A: For every such so-called-counter, there are a bunch of 'cubicles' where officers process your documents.  At counter A, a person scans the necessary documents, scans your signature, takes your fingerprints and takes a photo of you with a webcam. Then you have to go back with your file, to the same waiting room and wait for around 1.5 to 2 hours until your name is called out again for your trip to counter B (that's when it's shown on the display).

Counter B: An officer verifies all your documents. If your documents are ok, this process won't even take two minutes. After this, you have to go to a separate waiting section near the C counters. You may have to wait here for another hour. When your name is called and displayed on another TV screen, you go to the C counter.

Counter C: Another officer has a look at your documents. This process doesn't even take 30 seconds if your documents are ok.

That's it. Once you're out of the C counter, there's a printer near the exit, where you'll be given a printout of an acknowledgement and you'll be given a feedback form which you can fill if you wish. Then you can walk out of the passport office.

Now, the process of sending applications from the passport office to the police station is no longer done by manually dispatching the physical files. It's instantly sent to the police station online, so you can get a call from the police station within 24 hours, with a policeman asking when he can visit for a verification (and an email stating that the police verification is pending. You won't receive an email about when the verification is completed though. I guess the reports are sent to the passport office manually).

Once the police verification is done, you'll receive an email and an sms on the 10th day, stating that your passport is printed and has been dispatched by speed-post. The next day you'll receive your passport. You have to be there to collect it. It won't be handed over to your family members. If you don't collect it, it'll go back to the post office and if not collected in 5 days, it'll go back to the passport office from where you will have to collect it.



I've heard of some people waiting for months to get their passport. Now it takes just eleven days! All the best!

Sunday, August 17, 2014

The Ugly Indian. Underground Festival

If you're an employed citizen, you're already doing your bit for society by contributing your skills to an industry. But what would you have to do to be a more responsible citizen? A citizen who actually improves situations, rather than just complain about it and say that nothing is going to improve?

Three years back, a little group of people took things into their hands and started cleaning up filthy areas with a simple motto "Mooh bandh. Kaam chalu" (meaning mouth shut; begin work). They did no activism, no awareness drives. Just a humble cleanup activity. Today, people across the world are asking them about their technique (I heard that news has even reached Canada). They're the Ugly Indians.

I wrote to them sometime ago about my views on volunteering and got a simple reply 
"Kaam chalu mooh bandh is the motto. Just come and work on a spotfix sometime. There is no talking in this initiative."
Makes sense. It speaks a lot about how they were able to move forward. Debating about things causes a lot of politics. Here, you just join in and clean up your city. Simple! 


How they do it

What we get to hear and see through the newspapers and social networking sites, is just the cream of the cake. There's a lot of hard-work and planning that goes into a spotfixing activity.
Where does the money come from? Once the garbage is collected, where is it dumped? Who supervises the cleaning and painting when it's clear that it's a bunch of amateurs who are painting?
Firstly, as a citizen, you can't simply start a spotfixing activity. You might accidentally cut a wire or break a water pipe. Every activity takes place with the permission of the BBMP and help from the BBMP people who help you to clear the garbage. I hear that the BBMP has issued an official circular across Bangalore, stating that they're working with TUI. Every new person is free to pay Rs.200 (or more) to financially assist a spotfixing activity. To know more, register for a spotfixing with this form (if you're in Bangalore) and this form if you're outside Bangalore. There's more info in the book.





The Underground Festival today: Heritage Walk


The objective was to make the subways around K.R.Circle worth walking through. Basically, it's possible to go all across K.R.Circle without once having to face the traffic on the road, because there are subways you can use. 
After a walk from Victoria statue, Mr. Arun Pai took us on a Bangalore Walk around K.R.Circle. I was amazed at the historic information he shared. King Krishna Raja Wadiyar's 25th year of reign (he ruled for 40 years) was when they built the K.R.Market, the K.R.Circle and the K.R. institutions. We owe a lot to the king, as he encouraged the advancement of Mysore and Bangalore.
K.R.Circle, the roads there and the buildings there were designed and built in the 1930's by visionaries. No building there was built after 1940. When India became independent, we built the largest building in Independent India - The Vidhana Soudha. Construction began in 1952 and took just 4 years to complete (now-a-days even flyovers take more time than that). Thousands of workers including prisoners worked on it. At this point our mayor mentioned that it was Mr. Kengal Hanumanthaiah who contributed to the construction of the Vidhana Soudha (double road is named after him, and is called double road because that's when the first concept of a road-divider came). It is said that the dome and the arch of the Vidhana Soudha are an Islamic structure, the pavilions are like those of the Hindu temples and the emblem is a Buddhist icon. It created a representative building of India. At that time, they didn't know where to build it, as there was so much land. So they said, Mr.Cubbon has a big house (Raj Bhavan), so let's build it in the back-yard of his house.

Did you know that there was a time when all watches that India used, were manufactured by HMT in Bangalore? In the 1950's every telephone made in India was manufactured in Bangalore (ITI). India got BEL and BEML. Asia's biggest hydroelectric plant was created with the help of GE engineers, and Bangalore was one of the first cities in India to get electrified. KEB and BESCOM are historic centers for Bangalore. 

HAL is the biggest aerospace complex in Asia. It was setup with the encouragement of the Mysore king. Sea planes used to land on Bellandur lake. That's the kind of technology we had at that time! In 1945 the world war ended and Mr.Nehru said that India would be non-aligned, so the British took all their planes and left ; except for a few planes, the engines of which they put sugar into so that the engine corrodes and it becomes unusable. Some very smart engineers from Bangalore reverse-engineered and repaired those planes in Kanpur, and flew them from Kanpur to Bangalore. A German man Kurt Tank, came to help us. He became an employee of HAL and in 1953, India's first fighter jet was made in Bangalore and we had air-power which prevented us from possibly being swallowed up by another country. One of those first fighter jets made in Bangalore is still visible at the Airforce mess at Trinity circle.
The space-race began when Russia launched the Sputnik. We built ISRO in Bangalore just three years after that.

As we kept walking in and out of the sub-ways, Mr.Arun told us more. The IISc was setup because of Mr.Jamshedji Tata. At that time the British opposed it saying that India was a land of superstitions and there was no place for scientific research. But Mr.Tata had kept aside some money which was meant only for the creation of a research institute, and although many cities were evaluated for the creation of the institute, eventually Bangalore was chosen. With the setting up of so many industries, came the need for educated individuals. Colleges were setup for this. Bangalore has the most number of Engineering colleges. UVCE was one of the earliest such colleges.

During the days of the Perl Harbour attack, something many don't know, is that Madras and Calcutta were also bombed by the Japanese. Bangalore was one of the safe havens for the British, and they quickly used HAL as their air force base. Fighter pilots used to relax in Cubbon Park while their planes were being serviced at HAL. Cubbon park was created in the 1860's at approximately the same time the grand central park was created in New York, and with the same objective. For citizens to have a place of leisure.

Bangalore had almost all of the firsts in industrialization in the country, and that too before World War I. Only a nuclear plant couldn't be setup in Bangalore because it required sea water. Else, Bangalore would have had that too :)


The Underground Festival today: Walk through the subways at K.R.Circle


It was amazing to see how the filthy subways were cleaned up (by 300 people) and setup as art centers. You could stroll along and look at photographs and paintings and even pose for photographs which would be emailed to you for free. Have a look!

Even our dear Mayor was present (white shirt). He himself had participated in painting some of the walls! Way to go Mr.Mayor!






This subway was one foot underwater just a few days ago. Was also used as a urinal. The Ugly Indians put in two weeks of work to get it cleaned and pumped out all the water.



Some lovely abstract paintings

The pic on the right is what it looked like. The left shows the Ugly Indians doing the cleaning

Art on display at the subway. They plan to hope to retain it like the boulevard at M.G.Road




All the hard-work





Three cheers!

Pose for a free portrait


Aaaandddd Cheese!


The Underground Festival today: The music, mime and painting

We had some nice bands play music to entertain the audience. Personally, I felt the percussion instruments and Beatboxing were the best! I've even recorded some of the sound.



Some sweet songs

Awesome percussion!
 


These rappers sang to the beat of 50 cent

Some awesome beatboxing

Some of the paintings created on the walls by volunteers (including me) today










It definitely beats sitting at home, strolling in a mall or going for a movie on a Sunday. You get to meet new people, learn something new and expand your skills. I learnt something new about wall painting.

I also noticed how people tend to get demotivated easily when they see somebody else making a much better piece of work. A person painting with me simply gave up because our painting didn't seem as good as the one opposite us. I continued and made our painting look good.

But remember, the event you see here is the cream of the cake. If you want to replicate it, don't just replicate the parts that look nice. Make sure you do all the necessary hard-work that makes such an activity the real success that it is.

There were no snacks, juice or water (there were free brushes, paint, masks and turpentine though). Everyone who came, came with the intention to volunteer, and that was the best part of it. Only the most genuine people come forward to volunteer when there's no other incentive.

After returning from the event, a person asked me "So they didn't give any food in the end?"
Me thinking: * Oh man! You just don't get the point, do you? :-) *

Saturday, August 16, 2014

Mutex tutorial and example

It began while being asked to watch one of Yashwant Kanetkar's slow video tutorials at my workplace. He explained every concurrency concept with an example, but for mutexes, he said "I leave it to you as an assignment". *groan*. To add to the difficulty, there weren't any decent tutorials on the internet either.

So one day when a lightbulb lit up in my head, I decided to create my own mutex example. For more than two and a half years, it ranked highest for anyone who Googled for "mutex tutorial".

And here it is:
A lot of people run to a lone phone booth (no mobiles) to talk to their loved ones. The first person to catch the door-handle of the booth, is the one who is allowed to use the phone. He has to keep holding on to the handle of the door as long as he uses the phone, otherwise someone else will catch hold of the handle, throw him out and talk to his wife :) There's no queue system as such. When the person finishes his call, comes out of the booth and leaves the door handle, the next person to get hold of the door handle will be allowed to use the phone.
A thread is : Each person
The mutex is : The door handle
The lock is : The person's hand
The resource is : The phone
Any thread which has to execute some lines of code which should not be modified by other threads at the same time (using the phone to talk to his wife), has to first acquire a lock on a mutex (clutching the door handle of the booth). Only then will a thread be able to run those lines of code (making the phone call).
Once the thread has executed that code, it should release the lock on the mutex so that another thread can acquire a lock on the mutex (other people being able to access the phone booth).

Blue is the protected area of code.
Red is where the locking happens.
Green is where the unlocking happens.

#include <iostream>
#include <thread>
#include <mutex>

std::mutex m;//you can use std::lock_guard if you want to be exception safe 
int i = 0; 
void makeACallFromPhoneBooth() 
{
    //The other men wait outside 
    m.lock();// one man gets a hold of the phone booth door and locks it. 
      //man happily talks to his wife from now....
      std::cout << i << " Hello Wife" << std::endl;
      i++;//no other thread can access variable i until m.unlock() is called
      //...until now, with no interruption from other men
    m.unlock();//man unlocks the phone booth door 
}

int main() 
{
    //This is the main crowd of people uninterested in making a phone call

    //man1 leaves the crowd to go to the phone booth
    std::thread man1(makeACallFromPhoneBooth);
    //Although man2 appears to start second, there's a good chance he might
    //reach the phone booth before man1
    std::thread man2(makeACallFromPhoneBooth);
    //And hey, man3 also joined the race to the booth
    std::thread man3(makeACallFromPhoneBooth);

    man1.join();//man1 finished his phone call and joins the crowd
    man2.join();//man2 finished his phone call and joins the crowd
    man3.join();//man3 finished his phone call and joins the crowd
    return 0;
}
 
Compile and run it using  
g++ -std=c++0x -pthread -o thread thread.cpp
./thread 


Memory fencing
Do you know that while processing instructions, threads recognize that an area of code is protected by a mutex, through the concept of memory fencing.
A memory barrier, also known as a membar, memory fence or fence instruction, is a type of barrier instruction which causes a central processing unit (CPU) or compiler to enforce an ordering constraint on memory operations issued before and after the barrier instruction. This typically means that operations issued prior to the barrier are guaranteed to be performed before operations issued after the barrier.

It's basically some CPU instructions that inform a CPU that a region of code should not be accessed for a while.

Lockless programming
Did you also know that it's possible to design your algorithm in a way that it might use shared memory, and yet not need to use mutexes? Typically, such instructions are processed in such a way that a group of load and store instructions are executed atomically (transactional memory). This is achieved by using hardware intrinsic atomic operations.
An algorithm is lock-free if there's a system-wide progress regardless of scheduling, and an algorithm is wait-free if there's also a per-thread progress.



Some people have emailed me asking if they could thank me for having given them knowledge. The best way to thank me is by contributing to Open Source. Being a sweetheart if you'd like to give a more personal thank you, then I don't really like the idea of monetary donations, but  maybe a wishlist wouldn't be that bad.





Calculating perspective projection

All those motivational talks and sayings about one being able to achieve what they really want, is actually true. You just have to know how. While programming my games, I had for a very long time wanted to create a game in 3D. Whenever a vehicle would move through a tunnel or narrow area, I'd observe carefully, how every point moved with respect to each other. The 3D feeling!

As I learnt trigonometry and geometry, my ability to understand dimensions got better, and I tried plotting points on paper, imagining 3D situations and using the laws of geometry to try and derive an equation which would be able to plot and erase (creating the effect of an animation) on a 2D screen, the points I observed in the tunnel.

All this was long before I had internet access or access to a good library.

The first attempt ended up in a long equation which didn't work when I wrote a program to plot points in 3D:




I guess I was just about crazy enough to derive these when in twelfth standard :-)
And then I tried again:


and again and again until I finally, I decided that it was far simpler if I didn't consider all four quadrants, and instead considered the computer screen to be a single quadrant where x and y were positive. That simplified the calculation and I also got it right!


And when used in a C program like Unipar, would look like this:
(note how the function is declared first and the datatypes are declared in the next two lines. This is legal C)

void perspective(x,y,z,x2,y2,z2,tx,ty,tz)
int x,y,z,x2,y2,z2;
float tx,ty,tz;
{
int Z=500,XC=240,YC=250;
float i,j,k;
float r,c,X,Y;
if (z>=Z) {printf("move the observation point farther");getch();return(0);}
i=x;j=-y;k=z;
rot3d(&i,&j,&k,tx,1);
rot3d(&i,&j,&k,ty,2);
rot3d(&i,&j,&k,tz,3);
if (beam.perspective==1)
{
r=(Z*j)/(Z-k)+YC;
c=(Z*i)/(Z-k)+XC;
}
else {r=j+YC;c=i+XC;}
i=x2;j=-y2;k=z2;
rot3d(&i,&j,&k,tx,1);
rot3d(&i,&j,&k,ty,2);
rot3d(&i,&j,&k,tz,3);
if (beam.perspective==1)
{
Y=(Z*j)/(Z-k)+YC;
X=(Z*i)/(Z-k)+XC;
}
else {X=i+XC;Y=j+YC;}
line(c,r,X,Y);
}/*perspective*/

/*to rotate in 3D*/
void rot3d(a,b,c,T,axis)
float *a,*b,*c,T;
int axis;
{
float x,y,z;
x=*a;y=*b;z=*c;
T=T*RADIAN;
switch(axis)
{
case 1: /*-- x axis rotn --*/
*a=x;
*b=y*cos(T)-z*sin(T);
*c=y*sin(T)+z*cos(T);
break;
case 2: /*-- y axis rotn --*/
*a=z*sin(T)+x*cos(T);
*b=y;
*c=z*cos(T)-x*sin(T);
break;
case 3: /*-- z axis rotn --*/
default:
*a=x*cos(T)-y*sin(T);
*b=x*sin(T)+y*cos(T);
*c=z;
break;
}
}/* end of 3d rotn */


Had found these derivations in one of my old notebooks, and I thought I'd put it up here for my own reference and perhaps even in case it inspires any bright kid to try some brain-work magic of their own :)

Saturday, August 9, 2014

LOL

Continued from the previous LOL page.


Turning left
share with this link



Store bills
share with this link


Continued in the next LOL page.

Saturday, August 2, 2014

Conference: Funding for Startups

Today's conference was different in that the initial talk by the professor was restricted to 40 minutes and the panel discussion was planned for two hours, with many more panelists than usual. Professor G Sabarinathan moderated and gave the starting lecture.


The Panel
  • Sharda Balaji (Founder of NovoJuris, legal counselors)
  • Neelam Chhiber (Co-Founder, Mother Earth)
  • Sanjay Anandaram (mentor to CEO's of entrepreneurial companies on strategy and growth. Mentor to RedBus too)
  • Nagaraja (Naga) Prakasam (Angel investor)
  • Vivek Prabhakar (Founder of Chumbak and responsible for the good turnaround at Tanishq)
  • Srikanth (Head of Veda's Bangalore. Experienced in investment banking and private equity)
  • Parag Dhol (MD at Inventus Capital Partners, a venture firm)

Professor Sabarinathan began his talk saying the funding is about doing; not talking, which gave me the impression he'd be cutting short his lecture and conduct an exercise/game where we'd have to pretend to raise funds right there. That didn't happen though :) He also spoke of how you can't have canned solutions for a funding problem. Every situation is unique.

Funding alternatives
Some terms:
  • Equity: Most people think that equity funding is the only or best way to get funding. That's not necessarily true
  • Formal debt: The situation where you use your savings etc. for funding
  • Informal debt: When you're trying to run a business on a shoe-string budget
  • Spontaneous liability: A funding need that arises in the course of business and you have to pay for it even though you didn't forecast that it'd come up.
  • Grants: Money from government agencies. This is called social enterprising.
  • In-kind: For example, when you get to use cloud servers for free.
  • Service fee contract: As the name says.

Funding hierarchy
Funding, actually has a cost hierarchy. Depending on where you get your funds from, there's a cost you have to incur.
Normally, people have well articulated expenses. They're advised to raise money with the least cost. This cost is the direct cost which is very visible.
What entrepreneurs also have to be aware of is the cost of control. Popular literature says equity funding is free. It's actually the most costly way of raising funds. Once you receive funding, you lose a little control over the organization. You forgo many of the fundamental rights and control you have in your own company because of investors permissions, you can't appoint a CEO etc.

Money gives an investor the power to ask questions.

Personal money (anecdotally, your own funds are best unless the money belongs to your spouse or father-in-law) and OPM (Other People's Money ie: relatives/friends) are the least costly. Grants are also good, but you have to report to the person offering the grant, but that's more manageable than equity.

What the level of funding does
  • Too less funding: Saps the energy of a business, there are delays in capturing market space and affects early hiring.
  • Too much funding: Distracts the entrepreneur from the main area of focus, penury leads to parsimony, reduces sense of urgency to go to the customer early and there's a lack of market validation (Palm took it's device to the customer earlier than Apple and failed, but they got faster market validation and were able to quickly improve their product). Too much funding also dilutes equity and reduces the initiative of the investor to invest.
 The professor also introduced us to the approach of an MVP (Minimum Value Product), where we first slowly validate the product with users and then go big.

Planning for funding
Some pieces of advice for an entrepreneur planning for funding.
  • A funding plan is only as good as a business forecast
  • Meticulousness isn't risk aversion
  • Systematic thinking isn't rigidity
  • Know the difference between 'must-haves' and 'luxury'.
  • Revisit the funding plans once a month
  • Use specialist intermediaries because they carry market intelligence, know funders and the funding pitch. They know how to modulate the investment pitch and they do the followup for you.
Equity as a funding investment
Sources of equity funding can be from founders, friends, family, incubators, accelerators (Microsoft accelerator is one), angel networks (like the ones at Mumbai, Bangalore and Chennai), seed stage investors, early stage VC investors.
The ability to raise equity depends on location. Entrepreneurs in Bangalore are said to be very lucky in this respect (one of the panelists in the conference on analytics had also said the same. He spoke of how entrepreneurs stand to get a lot of free advice in Bangalore). People in Belgaum though, are said to have a tough time finding equity investors.

Considerations to be aware of for equity
  • How much funds to raise
  • Terms of funding
  • Dilution
  • Availability and time

Conclusion
  • There is no universal truth to funding. You have to figure it out yourself.
  • Anecdotally, funding choices can significantly affect sleep levels :) The professor narrated the case of a person who invested in a software services company (which is highly risky and takes two years to give a return) and had sleepless nights because he thought he was investing in a traditional business like the timber business.
  • Talking a lot can help avoid costly mistakes. The most successful people in fund-raising are those who talk to many people and gather opinions.
  • Also important, is to raise money from the right people. The professor spoke of a company with a Rs.4 crore turnover which was in danger of closing down in the next 48 hours because they took money from the wrong people.
  • Don't let down your guard during conversations. Don't reveal too much.
  • Define clearly what you want from your investor to avoid falling into a trap.

The panel discussion
Some of the important points that came forward when the audience posed questions to the panel.


What are the basic rules for equity funding?
  1. The team, balance, chemistry in the team, domain experience
  2. The size of the market and how fast it's growing
  3. The competitive advantage, ability to make good or extraordinary returns from the investment.
How do investors evaluate the market share/survey? Is there a standard referred to?
  • If it appears on the Gartners chart, it's already too late. It's more important to be directionally correct than precisely wrong. You should also have no idea of the market size and know it can scale.
  • Search for someone who wants to grow with you rather than think about the exit.
  • As per data Sharada had, a new startup which is around 6 months old is more likely to be funded than a 2 year old startup. Another panel member later said that it was not necessarily true.
  • Mr. Sanjay said that five years ago just an idea could get you money. Three years ago a proof of concept could. But now, you're asked about what have you yourself put into the game.
  • Mr.Srikanth advised that entrepreneurs spend the first stages of creating their company, in creating the business model instead of keeping the focus on capital. If they're just working for capital, investors won't fund them.
About accepting money from an investor?
You have to be ready to be answerable to them. Are you open to dilution? Such a situation also has some amount of good. It brings discipline and rigor. You know you're being watched and have to perform. As an entrepreneur, think about whether you want to be in 100% control of a 1 crore company or 1% in control of a 100 crore company?

If a similar company as mine got funded, are my chances bleak?
Don't look at what got funded. Look at the market need. Investors will understand. Eg: A person put forward a proposal quite simply with the fact that India requires 5 lakh welders. The supply is 1 lakh. The investor was convinced.
You need to have patience. Is your product going to be better, faster, cheaper? Look at whether the market can support another vendor? It doesn't really matter if a similar idea/company has already been funded. Another example is how new e-commerce businesses are being funded. It's because the market can support multiple vendors.
You should have the passion and conviction to go after it as the capital.

As an investor, how do you assess the team of entrepreneurs?
Investors don't look to see if you have an MBA. They don't look at educational qualifications. They see if you have the people who can deliver. Eg: If you're a technology person, you very likely don't know how to do sales. If you get a co-founder who is good at sales, then you're on the right track. Find the complimentary co-founder who has the skill necessary to take the business forward. The investors will see that and be more open to investing in your venture.

How to decide whether to go for debt funding or equity?
Mr. Srikanth answered this simply by saying: "If you prefer kabbaddi, go for debt. If poker, go for equity". The entire audience was in splits.

What does a Venture Capitalist (VC) invest in?
Just because you're generating orders/money, it doesn't mean a VC will fund you. VC's invest in fast growth. High knowledge intense businesses where there is fast growth. Spend time learning the different funds available. Each has different merits and demerits.

How important is your prior knowledge of the business?
Spend years getting experience. You should know your field. Showcase the business model and the profitability and ambition.

One common question posed by investors is "do you have any traction". What does it mean?
One panelist said that it's the polite term investors use, to say "we don't like you. Get out" :)
Mr. Parag tried answering it saying that traction also implies your connection with the market. Ask the VC what he means by traction.
Your business idea matters. People should say Wow! That's a fantastic idea. Go do it!

Is it more difficult for a sole proprietorship to get funding than a private limited company?
Yes. Because no institutional VC will invest in anything other than a private limited company. The Pvt. Ltd. tag gives the investor a small part of the ownership. You don't get that in a sole proprietorship.

How does a VC evaluate the team? Do they fund hiring too?
The team is very important. They look at the person. The vision and ability to execute the vision. Many tech people are bad sales people. They have a halo and refuse to bring in a co-founder. They don't get funding.
About the question on funding hiring, the job of the VC is not to run the business. Hiring is the job of the entrepreneur.

What kind of companies get funded?
Ms.Neelam said that it takes time to build a business without investors. They need to be deeply interested in you.
Mr. Srikanth added to that saying that in the history of Indian VC, service-based companies have been much more likely to be funded than product companies. Although rather than focus on that, the entrepreneur should focus on doing what is right for the market.

How do the VC's look at a companies revenue as a measure for investment?
Erratic revenues are scary to an investor. Zero revenues are still ok, because you may be building your business for a period of months without any revenue, and that's understandable; but erratic revenues are bad.

If I want to create a model which supports the surrounding ethnic community and uses tourism as revenue?
Ms.Neelam asked the person to refer the Dasara social impact program.

Misc points
  • Mr.Sanjay mentioned that many entrepreneurs, at the end of their presentation, have a slide on "exit valuation". He asked that people remove such a slide, because it's again the case of the entrepreneur doing the job of the VC. Let the VC decide the exit valuation.
  • Investors are very afraid of the single founder getting hit by a bus. It's better if there's at least one co-founder.
  • When preparing or receiving a term sheet, make sure you get a really good lawyer because the investors always have better lawyers on their side.

Most importantly, as a team, if the chemistry is not right, the arithmetic never works.