17 August 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? :-) *

16 August 2014

Mutex tutorial and example

It began because of being asked to watch one of Yashwant Kanetkar's painfully boring 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.

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 
 

Note that apart from explicitly specifying lock() and unlock(), it's also possible to let the variable scope define when the unlocking happens (scoped lock).


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.

________________________________


The fact that you are here means that you use the computer a lot. So please also take some time to understand the real cure for eye strain.  Yes, it matters.


Say thank you or donate

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 :)

09 August 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.
 
 
 
 
 

02 August 2014

Conference: Funding for Startups

Today's conference was different in that the initial talk by the professor was restricted to forty 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.




Say thank you or donate

Your personal EULA Lawyer

I remember a patent lawyer joking that patents are deliberately worded with confusing text so that lawyers would have a job :-)
Dear lawyers: We'd love you if you create human-readable licenses too (like the one I did).

For  readers who didn't know, some countries have an unconscionability law which protects people from cleverly written contracts/agreements which work against the person signing it.
Eg: If someone usually does complex business transactions and boilerplate language into a contract containing terms unlikely to be understood or appreciated by the average person, the unsonscionability law can be brought into the picture.

Why bother about software licenses and EULA's?
If we were evaluating a contract on paper, we'd either go through it carefully or hire a lawyer for it (because it might have hidden clauses, escape clauses and the usual mind-numbing jargon). Strangely, most people don't seem to care, when it's a software license or a EULA. They just go ahead and click the "I Agree" button, not worrying about what clauses are hidden below.

Jeff Atwood listed out a few things some EULA's demand, which we aren't even aware of, like not being allowed to criticize the product, taking your permission to allow them to monitor you, not allowing you to use the product with other products, asking you to comply with all their future clause changes and most importantly, the one about them not being responsible if their software ruins your computer.

As far as I know, most people still wouldn't bother and would continue blindly clicking "I Agree".

EULA licenses are probably like one's wife. There's all this text that comes forth, and no matter what, you'll just have to say "I Agree" in the end :)

The solution
For those of you who are bothered, a 1.6MB software called EULAlyzer is all you need as a your personal software lawyer who will verify the EULA for you (do consider donating to them). Once you install it, whenever you encounter a window with some EULA text in it, you don't even have to copy-paste that text into EULAlyzer. Just open EULAlyzer.

Select "Scan new license agreement". You'll see a plus icon. Drag and drop it onto the EULA text which you want to analyze.

And viola! The text gets automatically copied onto the EULAlyzer window (if it doesn't, paste the text into notepad and drag the plus button onto it). Click "Analyze", and you'll be shown what level of danger you are in, for certain kinds of sentences mentioned in the EULA. These are named "interesting" words.

The image above is for the WinRAR EULA. For other EULA's, you'll find more "interesting" sections/key-words being detected. Eg: sections on advertising, promotional messages, third party, website address, the without notice clauses etc.

It basically shows you the text that you should analyze. Spares you the trouble of reading through each and every word of the license agreement.

Google Chrome's browser had a scary EULA, with more than what's shown in the below pic.



On a side-note, I even ran EULAlyzer's own EULA on it, and this is what it showed :-)


Running EULAlyzer on FOSS licenses
Tried running it on GPL v3, and this is what I got:


Definitely a useful software which helps people who want to analyze license text. So long as lawyers keep using familiar keywords, this software will continue being able to detect them :-)