Friday, April 19, 2013

Death of a Hacker (From Hacker to Developer)




On 16 April, I got an e-mail from Kirsty Nathoo of YC that my application is rejected. I still remember it was 5:35 Pm and I was in the bus. I came to know about YC last Spring and ever since then getting into YC had become my dream. I did so many side projects/freelancing that I had never done in my four years of Undergrad cause I was preparing myself. After my last summer internship, I realized that instead of being a developer my traits were more aligned to be a hacker. I applied to YC last year. My application was very amateur. I was bound to get rejected. I never left hacking. I was still at school getting my M.S but after Spring of last year I took my credits in such a way that in my last semester I could do just what I wanted to, hacking, without any coursework.

Few weeks ago, precisely three weeks from the YC application deadline, I got this idea. It is something that has never happened before and it was B2B. I had nothing to show off at that time but a hope that the idea may get me in for an YC interview at least. I met my best friend since years and now co-founder and we discussed over the idea. He is a hacker but the kind of guy I guess today’s companies would die for. He has no Facebook or LinkedIn profile and both of us sleep only 5-6 hours every day.  He is a *nginx and AWS ninja. We have had countless 17 hour days and brainstorming sessions all over Skype, Google Hangouts and ScreenHero because he is in the Bay area and I am in LA. In two weeks we came to know why the idea was difficult and why no one was into it. We also realized that the customer touch points of our idea were dynamic and we would have to strategically order them to get faster users. We developed our model on AWS, decided on the backend, and bootstrapped a part of it too. YC was our hope but we failed.

I had mixed feelings about my application. I was not sure about the end result but I there was hope.  It was very important for us to get through because we are international students. We want to hack and if we would not get in this time then we would be working at some Software development firm (E-verified) waiting for our Visas. It took me a while after the rejection. Start-up is what I want to do because I think that is in our blood. I will work on this idea but I am really unsure on what our next steps would be. I guess we would have to at some point of time become developers again. 

Saturday, March 9, 2013

The Current Navigation System is Broken



                                                     
Recently, I have been reading a lot of articles about quick App development and how we can design apps and put it in the App Store or on Google Play very fast. Well today, I am going to write about an App which is years in the making. 

We all know that Navigation problems and Navigation Apps are hard. The reason being the sheer volume of data that is required to come up with a good Navigation App. We all know that Google took years to develop its Google Maps App and when Apple tried to do something similar in months they failed miserably. Even though there are so many Navigation Apps which try to solve this problem, I feel the Navigation system in place is still broken.

Now let’s dwell into the real problem with the current navigation Apps. Let’s say you want to go from A to B. The current navigation apps would take a path snapshot “at that time instant” from A to B giving you the best paths based on distance and in some Apps traffic as well. So you get a path say from A -> X -> Y ->B. This is what Google Maps or any other navigation App will give you. Now, the path from X -> Y or from Y -> B is not based on what time you reach X or Y but on the time you leave A. This is why the current Navigation system is still broken.

At Integrated Media Systems Center (IMSC) at USC, Prof.Cyrus Shahabi and Associate Director Dr. Ugur Demiryurek and the entire team at IMSC are really aimed to solve this Navigation and traffic problem. Their solution is ClearPath. ClearPath is based on years of traffic data and research. The data for Clearpath not only comes from the road networks but also from live real traffic data which are pulled from the LA Metro. So there is previous data about traffic and there is current data as well. Now when you say you want to go from A to B in ClearPath, first it takes into account the time taken to reach A -> X and X -> Y and runs spatio-temporal algorithms (based on years of research) to do pattern recognition and analysis at each X and Y to give a more accurate path which saves time. Traffic changes as you drive. It works on an algorithm that accounts for all these changes before you even start your commute. Results show that ClearPath beats all the current Navigation Apps hands down on time and accuracy of paths. Hence, ClearPath tagline reads, "The right path, all the time!".   It is featured on Android Apps, Viterbi Blog and Stevens Blog and Voanews.

ClearPath is an App which has the potential to change the future. It is a very excellent example of something which is going to be commercially successful coming out from research.   

Friday, December 14, 2012

One of my best courses @USC Geospatial Information Management



Last Spring when I took the CSCI 402 class I thought this would be the best class that I would have come to experience during my M.S. CS course at University of Southern California (USC). Come to Fall 2012 and I guess I was proved wrong. Not to undermine the CSCI 402 class under Prof. Crowley. He is a legend and his class was an epitome among all the classes I had taken so far at USC. It taught me teamwork, core programming skills and I guess one more big thing that is estimation. An estimation of how much time I would take in building some projects. I guess it is very important for a software developer to know that.

But Fall 2012 brought an another course CSCI 587, Geospatial Information Management. This course would be by far one of the best courses I took at USC. The course is taught by Prof. Cyrus Shahabi who is a veteran in the Geospatial domain and it is completely reflected in his selection of research papers, his chronological order of reviewing and teaching them to the students. The coursework for this course is by far the best ones that I have seen so far in terms of design. It is not surprising that this is one of the few courses in the US which is taught via the Distance Education Network to two schools in Vietnam. The professor teaches the course with ease and his humour is always present even while reviewing the most difficult research papers ever. That is one of the reason that he manages to deliver with such ease. With a lot of papers he gives such great research insights and technical challenges that helps you understand the world of research and academia. The professor also gave a few entrepreneurial lessons in one of his classes. For someone who is a start-up enthusiast like me those lessons were really cool.

Personally, I can now wrap my head around everything that may be non-technical with research.
The crux of the course is Geo-spatial data storage and management. Everyone today in the start-up industry says that an app in today’s world cannot be successful if it lacks one of these three things, Social, Mobile and Geo-location. I learned the Geo-location techniques and all the research behind it in this course. Looking at the evolution of research in this area also teaches you a lot of things. The professor also highlights those areas throughout the course.

Apart from this the course taught me the importance of design. Project design, brainstorm meetings, UI/UX design for my project all got me into the real development scenario at a Start-up. I learned scheduling with team members, handling deadlines and iterative development. There is so much iterative development that I did with this project that now it seemed like that is the only software development model that existed.The project in this course taught me teamwork again, but at a whole new level. Our three people team was actually time a product team where each one was responsible for one aspect of the project.

At the end of the course when my team presented our project the professor even suggested us to apply at some incubators in LA with this idea. I am going to do that soon. Well, and not to forget that we owe our TA  a 5% if this takes off. It is pretty clear that going forward I am going to miss this course but I will never forget all the lessons it taught me.

P.S I was the one to donate the maximum chocolates in the class on the day of Halloween.

Friday, November 2, 2012

Updates in Java7 (Dolphin)



Java7 update came out on July 28, 2011 but still a lot of programmers do not want to shift from the Java6 to the Java7 version. Well, extensively using Java from the last couple of months, I decided to write about the update.
Java7 also named Dolphin, is the outcome of the OpenJDK 7 project. Java7 has many new feature improvements. Many of its milestones and builds have different names like Project Coin.
Feature updates:
1.      Virtual Machine: Da Vinci Machine Project
Multiple Language support: The JVM will now have architectural support for languages other than Java. This move is done to extend the JVM and portability to different languages. This is definitely a move to expand the future JAVA ecosystem.
Strict Class file Checking: This was introduced in SE6. There are major improvements in this version like type checking verifier. Also, improvements in backward compatibility with old inferencing verifier.

2.      Lang: Project coin
Lang is one of the most extensively used Java libraries. There are a couple of small language enhancements which are significant for programmers.
-          Strings in Switch statement
-          Automatic Resource management in try statement
-          Type Interface Improvements for generic interface creation (diamond)
-          Binary integral literals and underscores in numeric literals
-          Simplified varargs method invocation
-          Precise Exception throwing for multi-catch

3.      Core:
API modifications to class loader for Deadlock fix: Custom class loaders that do not adhere to a acyclic class loader delegation model can be deadlocked by this modification.
Method to close URLClassLoader: A new method to close the files which are kept open by the URLClassLoader.
Concurrency and collection framework: A improved framework lightweight fork/join framework, flexible and reusable synchronization barriers, transfer queues, concurrent linked double-ended queues, and thread-local pseudo-random number generators. These include changes in the java.util.concurrent package with classes like ForkJoinPool, Phaser, TransferQueue, ConcurrentLinkedDeque, ThreadLocalRandom.

4.      Internationalization:
Unicode 6.0: This is upgraded support for Unicode character set to 6.0
Locale Enhancements: Locale enhancements for Chinese, Hebrew, Uzbek and Latin characters.

5.      I/O and networking
New I/O APIs: New I/O APIs for filesystem access, socket binding, configurations and multicast datagrams for NIO.2
NIO.2 filesystem provider for jar and zip extensions.
Upgrade to the networking configurations using the Windows Vista IPv6 stack.
Support for transport layer security version 1,2

6.      Security and Cryptography:
Elliptic curve cryptography: A portable Elliptic curve Cryptographic implementation for all java applications to use them directly.

7.      Database Connectivity:
One of the most important use cases of Java that is DB connectivity gets a JDBC 4.1 upgrade.

8.      Client
XRender pipeline for Java 2D: 2D graphics made easy with a new Java2D graphics pipeline based on X11 XRender extension which harnesses the power of modern GPUs
New Graphic platform APIs: New features for platform include translucent and shaped windows and heavyweight/lightweight component mixing.
New Look and feel for Swing: Nimbus like new look and fell for the Swing package.
Swing JLayer component: Addition of new SwingLabs JXLayer to decorator platform.
Grevill sound synthesizer: New and improved sound synthesizer created as a proposal for the Audio Synthesis Engine Project.

9.      Web
Crucial Update XML stack: The extensively used XML stack for the web framework gets an update here to the most stable version.

10.  Management
Enhanced MBeans; Handle your CPU loads and notifications better by enhanced MBeans. MBeans report recent CPU load of the whole system, the CPU load of the JVM process, and to send JMX notifications when GC events occur.

Apart from these there is something that you can expect from JDK8 like more enhancements to JVM for modular programming, Annotations, Language support, project Lambda, Modularization which focusses on JDK, Swing application framework and JDatePicker components.





Saturday, September 22, 2012


My Dream of Dreamforce

“Make no little plans, they have no magic to stir a man’s blood”.

When a few decades ago Google CEO Eric Schmidt and Salesforce CEO Mark Benioff talked 
about the networked supercomputer the world was on the brink of the next transformation 
in technology. Today that is known as cloud.

As Enterprises and businesses expand, technology infrastructure needs to change which 
leads to a lot of upgrades and extensions to current technology, more workforce 
requirements, scalability issues and consistency problems. The solution to all this in today’s 
scenario is called cloud. Cloud also enables small enterprises to think big as cloud leverages 
the required technology infrastructure in a hassle free manner.

Cloud has already transformed my career. I consider myself to be one of the fortunate 
people to start my career using cloud technology via Salesforce, Force.com PaaS API. My 
application will soon go for production for the largest medical device giant in the world 
Medtronic, Inc. as my intern project for summer for the diabetes division. I may be one of 
the youngest in the Salesforce ecosystem here at Medtronic, Inc. developing on the 
Force.com platform.  The application enables more than 100% ROI. It is simply productivity 
as a service. I am obliged to work on such a technology which makes me work out of the box 
and deliver the best for my team. Please visit my blog blogger.com/vimarshk for more on 
the internship journey and flavors.me/vimarshk for my online profile to know more.

Dreamforce showcases the best in cloud today. I am currently working on integrations of 
other platforms with Salesforce. I have a lot of other ideas that the platform can enable for 
enterprises. If I get a chance to attend Dreamforce I can deliver all this with the latest 
Salesforce technology more efficiently. I wish to be one of the best developers on the 
Force.com platform and Dreamforce may be my first step towards that. It would be an honor for me if I get a chance to attend Dreamforce this year.


Monday, August 6, 2012

International Business Culture




Today the world is a small place due to advanced technology and social media. As the world progresses in its time we see the birth of more and more multinational businesses. Being a global person is becoming increasingly more important because now not only clients and customers but even teams are located remotely. In such scenarios international business culture is as important as international business acumen.
I have been fortunate that I have had people of geographic diversity around me giving me an insight into different business cultures around the world. My dad has been to different countries of Europe, I am currently studying here in the US in one of the most diverse cultured Universities, University of Southern California; I have friends located in the UK and Canada too.
It is very interesting to know about the different business cultures. I will be talking about the countries one by one. I have not posted anything lately because compiling this one was taxing enough! I hope it is good enough. I will be adding further to this post though.

                  Australia
Australia is an island and kind off quite different in terms of business habits since it is an isolated island.
1.       Australians are simple and updated businessmen. They prefer business oriented presentations with tangible facts and diagrams. During meetings they prefer eye contact.
2.       They are punctual. It is important to be on time.
3.       They are formal and straight in their business deals. Hence, they do not like hype and partaking. It is not very common to handshake before/after a meeting. Women may greet with a kiss on the cheek.
4.       Emails usually have first names and they are direct and to the point. Their formal communication also reflects the same thing.
5.       Home visits are common in business. Gifts too are a part of their business culture. Australians value nature.  

                  Austria
Austria is small but one of the financially powerful countries in the world today. It’s neat and clean customs are also reflected in their business culture.
1.       Austrians hate gaudy people. They like apt business attire which is not too flashy.
2.       Like Australians they too are formal businessmen. They are direct and to the point in their business deals. Humor is not encouraged in business meetings. Respect is mutual. Email communication is direct too.
3.       They concentrate on long term relationships rather than short deals. So, it is very important not to make haste during deals.
4.       They are punctual too. Long delay or last minute cancellation my harm business relations.
5.       They like attention to detail. University degrees, time you have been in business are important. Translating your business card on one side into German would be appreciated.   
6.       Home visits may happen. It is good to have a handshake with everyone present including the kids. Gifts can include chocolates or flowers odd in number. Lilies, red carnations, chrysanthemums should be avoided since they are funeral flowers.

      Belgium
Belgium is a European country which has three major speaking languages, Dutch, French and German. Belgian businessmen are polite, subtle and well mannered.
1.       Hence, direct and confrontational approach is insolent for them.
2.       Handshake is a common gesture before/after meetings.
3.       Belgians are attached to festivals. Hence, meetings and deals should be avoided during festivals. July and August, week before Easter and between Christmas and New Year, meetings should be avoided.
4.       Presentations should be logical and reasonable as opposed to just direct up to the point.
5.       Since we have Dutch and French as the two main languages, it would be great if the business card could be translated to either one of them and handed to them with that language side up.1.       Home visits may happen in Belgium. It is customary to have a gift in the form of flowers or chocolates. Avoid Chrysanthemum as they signify death. Give odd number of flowers except 13.

Canada
Canada is a country located north of the United States of America with a pretty cold weather. Canada has many French residents and hence, French is used in certain parts of Canada.
1.       Canadians are more reserved and calm in nature. It is important to keep your body language minimum.   
2.       They expect firm handshakes and eye contact.
3.       They like to address people formally. Hence, talk with the title like Mr., Mrs. Miss until they call you by your first name.
4.       Words are important during conversations so be careful of what to say. Hence, verbal communication is very important.
5.       There is no business discussion during meals.
6.       Home visits are not often. If they do happen, due to cold weather, wine or liquor could be an apt gift. 

China
China is a super power of Asia. Manufacturing business is huge in China and is a business hub growing very rapidly in the world.
1.       Chinese culture is very rooted and is strictly followed by most of the people.  
2.       Chinese businessmen find gestures distracting. Pointing a finger is rude. Personal contact too is considered inappropriate.
3.       They are formal in their deals. They like if meetings are scheduled 2-3 months in advance and in writing. They prefer face to face meetings.
4.       They believe in knowing more about the company. Hence, it is great if you can send them company details before the meeting.
5.       Gift is a sensitive issue. Pens are considered to be good gifts. Clocks, flowers and handkerchiefs are associated with funerals. Sharp objects should be avoided as they signify you wish to severe the relationships.
6.       They believe in luck. Four is unlucky and eight is the luckiest.
7.       Seating during meals is a big deal. Reserved siting is planned for the guest of honor or seniority level. Chopsticks positioned in a bowl signify death. Dropping them is bad luck. Rubbing them indicate poor construction or quality. If you finish all your food it means you are still hungry. Drinking is not allowed during meals.

Denmark
Denmark is one of the most beautiful countries in the European Union.

1.       Danish people are direct and courteous. They expect firm handshakes and direct eye contact. If there is a woman then shake hands of the woman first as a sign of courtesy.
2.       They are punctual and up to date. Hence, prior appointments and punctuality are important. In case if you get later than a few minutes into the meeting it is important to telephone and let them know immediately.
3.       Danish people do not work in summer from June to August due to Danes vacation.
4.       They address by professional titles. You can use Herr (Mister), Fru (Misses) or Froken (Miss).
5.       Send an agenda before the meeting and do not deviate from it. Be factual and organized and use charts and diagrams.
6.       Be accommodating and consult everyone before you pass a decision.

France
France is one of the super powers of the European Union. It is known for its art and architecture
all over the world.

1.       French people are all lovers of art and architecture. They love French cuisine too. Your participation would be important in case of a conversation.
2.       They have a casual culture. They have lighter and briefer handshakes than in other cultures along with brief eye contact.
3.       Coming up unannounced or uninvited is not a good thing as they value their personal space and privacy.
4.       The French are open in their business. The same trust and openness is expected from you too. This should reflect in your actions, gestures and words. Courtesy and respect is shown by eye contact. An attempt to speak French even if you do not know it is considered as a sign of respect.
5.       French conversations are animated and heated.
6.       For business cards convert your card into French and give it with the French side up.

Germany
Germany is the most powerful economic super power of Europe. Its economy is the largest in 
the EU.

1.       Germans are conservative in business. They usually take a long time in deciding the project aspects and are detailed about work. Hence, project may take longer than expected.
2.       Germans are very punctual. Never be late. Being late is considered offensive and insulting. Also, humor is not encouraged during business. They are serious in business.
3.       Sudden changes to plans are unwelcomed. Even if sudden plan change results in profits, they do not like them.
4.       Germans have a different way of greeting. Shaking hands before and after the meeting is mandatory. It is accompanied by a bow or a slight nod. Failure to do so may send wrong signals. Have good eye contact when you do that.  Shake hands with woman if they extend their hand. They greet others with “Herr” before the title as a mark of respect. Title is very important for the Germans. Make sure that you address them by their title.
5.        They do not believe in admiration, compliments etc. Everything is considered normal and smooth unless otherwise reported.
6.       Germans drink a lot. But in a business setting drinking conservatively is suggested. You are expected to be fast and eat plenty of food.
7.       Germans are very private about their personal life. An unexpected phone call may be really a bad option.
8.       For a visiting card have one side translated in German and give it to the German counterpart with German side up.

              

More coming up!











Monday, July 2, 2012

Single Sign On (SSO) with SAML




The pace at which our number of usernames and passwords increase every year is enormous. With each new account we have a new dimension of security associated with it. On the organizations perspective, multiple accounts cause security problems and huge storage and management issues too. With cloud infrastructures increasingly becoming popular, these problems are escalated. Single Sign on (SSO) is therefore a popular infrastructure for organizations today. If you see Google, with one login, you can access Gmail, Google Drive, Youtube, Google Calendar, Blogger and other services that it offers. The latest one is the browser Google Chrome’s cool support which enables you to sync your bookmarks, extensions and even live pages all using just the same account.

Benefits of using SSO:     
1. SSO reduces password fatigue which is caused due to entering different username and password     combinations. 
2.It provides a centralized infrastructure for managing and storing of account details. This in turn reduces IT    related costs.
3.It also reduces the cost for setting up IT help desks for password losses.  It provides easier access to resources.
4.It makes security management much easier by having a single layer of security which is more generalized for each service or application.
5.Tracking users and tracking their access to resources becomes easier.

There are different single sign on configurations that exists.


   - One time Password (OTP): OTP is one of the most secure ways to do a Single Sign On. There is a two factor authentication using special OTP tokens which is one of the best practices in the industry today.
     
   - Kerberos based SSO: Kerberos has ticket granting servers. The initial sign on grants you access to the Kerberos system. Other different services are all accessed by requesting for tickets for that particular service.
     
   - Security Assertion Markup Language (SAML): SAML is a XML-based solution for exchanging user security information between your organization and a service provider. It supports W3C XML encryption and service provider initiated web single sign-on exchanges. The user is called the subject in the SAML based Single Sign On. The identity provider is the one which provides the user credentials. The service provider trusts the identity provider on the user information to provide access to its services or resources.



More on SAML:
A transaction from an identity provider to service provider is called SAML assertion. SAML assertion structure is defined using an XML schema which is specified under the OASIS SAML standard. It contains header information, the subject and attributes for the subjects which are the statements for the subject and conditions. The identity provider sends a certificate to the service provider on Login. This certificate is a proof that the data entered by the user is valid and based on this certificate the service provider grants the user access to the service. The certificate usually contains the signature of the identity provider and other attributes which were setup during setting up of the Single Sign On feature which were decided by the Service provider. Force.com uses SAML for Single Sign On.  It is a very modular way to implement SSO.