Hikka Hack – Startups in Sri Lanka

Hikka Hack

We had been wanting to do another hackathon for a while now. The Colombo Hackathon last year was evidence that such events are needed and it created the startup culture that is much anticipated by our young entrepreneurs. This time it was initiated by Prajeeth as part of Venture Engine. Sanath, Mafaz and Jeevan were all involved. Myself and Chandika got involved as well in organising and hosting the event. However Jeevan couldn’t make it for the weekend since he was out of town.

It was called the Hikka Hack this time since it was at the exotic Hikkaduwa beaches of Sri Lanka. We managed to get Citrus Leisure onboard and the event accommodated 11 teams at the Citrus Leisure hotel.

Applying

Unlike the Colombo Hackathon this time we got only teams to apply (and not individuals) for the event. The teams who applied had to have an idea of what they were going to work on during the weekend and also had to provide sufficient information about themselves when applying. All this had to be formulated since we were able have only 10 teams of each having 3 members due to limitations in accommodating at the hotel. Of course the teams who were selected were able to enjoy the facilities free of charge.

We also had Your Story working with us on selecting one team from India who was sponsored to be part of Hikka Hack.We had 3 applications from  India and Burma who directly applied to Hikka Hack as well.

The Selection

Selecting only 10 teams out of 45 teams was not a walk in the park specially due to most of the applied teams having valid and interesting ideas/products. So we had a selection round on the 29th of  May at Orion City. During the selections we did short interviews with the teams to select the 10 teams we were going to take. Understanding a team and their idea/business/product in just 5 mins was surely not the best method to filter them, however we were short on time and the teams had to bring their best pitch if they wanted to be a part of exciting and exotic weekend  full of startup energy!

After a full round of interviews and another round of pitching by selected teams we ended up with 10 good teams for Hikka hack. One team that was selected by Your Story from India was also prepped to arrive at Hikka Hack on the weekend.

The Hikka Hack

The event was on the 1st and 2nd June weekend. The teams arrived at Citrus Leisure on 1st of June on a coach that was arranged to take them from Orion City. There began a intense weekend full of energy and awesomeness. I had my doubts as to how many would be actually hacking as opposed to kicking back on the beach sipping martinis. It was great to see all the  participants working away engaging with mentors and other teams to give life to their idea. We had many mentors visit over the weekend while some stayed over and had a good time with us. There were talks conducted by the mentors on topics realting to startups. Quite a few teams came on the 1st of June with one thing on their mind and ended up with something completely different by the end of the event. Ideas have to evolve and pivot if necessary to become a great product. I think this is a great lesson all the teams embraced. Another strong attitude that developed was the importance of revenue in a product. Even-though these startups were at their earliest stage, it was great to see how the importance of revenue was taken seriously by most of them.

At the Beach

The pictures of the event can be seen on the Colombo Hackathon facebook page

The weekend was full of hacking and conceptualising to build products that can kick off and get funded. On Sunday evening the final pitches started and each team had 10 mins to pitch to the panel. The energy and the excitement in the room was invigorating. After 2 hours of pitching it was time to decide. The decision was not difficult since the scoring was done on a rigid structure and we used google forms which calculated and sorted the score. So we had the teams in order with scores running extremely close to each other. It was very tight competition. Following is the summary of the first six teams and their products.

  1. Try b4 Buy – This is a Indian team that built a fully functional mobile application that can visualise 3D models of furniture and home-ware in a room.
  2. Omni Channel – A talented team which can build entertaining video demos to communicate your idea just in 2 mins.
  3. Timely – A crowdsourced social app for tracking trains and managing travel time.
  4. Seedz – A community driven marketplace for gardeners.
  5. U-Grow Organics – A online organic vegetable store that delivers 100% organic vegetables.
  6. Lets Eat! – An on the go food ordering site that will save you the waiting time at take-away restaurants.

The first three teams were awarded with prizes that included entry to Venture Engine, Cash prize for the first two teams by Creately and SLASSCOM, Creately licenses for online and desktop products, Office space for 6 months for the 1st team at Orion City and Web hosting packages by ITC Asian Holdings.

All in all it was another great event for the local Startup community and I am truly honoured to have been part of it. Looking forward for many more such events that will create great startups that concur the world.

Advertisements

People, Places, Moments and Music

http://compassioninpolitics.files.wordpress.com/2008/11/nashville-live-music.jpg?w=300&h=190Couple of days back I was strumming my acoustic just how I usually do on a lazy evening to relax myself. I was playing a random chord progression when suddenly in all randomness it started sounding very familiar. Even though I could not pin on the particular song that the rhythm was of, I kept feeling a place in my mind. I continued to repeat the strumming until I could remember the song but I kept remembering a place and moment instead. It was a fine evening lit up brightly by the street lights along the bay of the Singapore river. Then it hit me, the song that was coming back to me, “Ache” by James Carrington.

It’s quite amazing how you could feel a place, a person or some moment so strongly from a song. Some songs that capture you when you listen to them, bind together with your environment, the people around you and that moment when you listened to the song. How you felt when you first listened to that song, blue or euphoric you will always feel again when ever you listen again. Then again this does not seem to happen with every song. It takes the one that knock you off your socks. When I first heard “Ache” by James Carrington, I had just downloaded the song when I was in Singapore and I put on my headset while taking a walk down the street. Still remember that moment every single time I listen to this song.

Another strong moment of a song was “Love Song” by Sara Bareilles. I was on a plan to San Diago and was listening to the on flight XM radio. As the flight was on its final descend on a bright and clear afternoon, the song started playing as I stared through the little excuse of a window at the lazy San Diago. Every time I listen to the song I could feel that moment just like I could feel my friends around when I listen to “Say When” by Fray and just like I could feel the chilling water of Belihul Oya bounce of my toes when I listen to “Melt my heart to stone” by Adele and just like I can feel my girl right next to me when I listen to “Day Light” by Maroon 5.

Picture Credit – http://compassioninpolitics.wordpress.com/2008/11/02/best-places-to-see-live-music-in-nashville/

MySQL PDO for the default installation of PHP on Mac OSX

Quite a few times I have come across the problem of enabling the PDO drivers for MySQL on the Mac. I keep resolving this but every other time don’t remember how I did it. So I thought I’d write a about this so I can refer my own post when I need it 🙂

Initially the understanding that I had based on most of the posts and discussions around this topic is that the OSX does not contain the PDO drivers in it’s default PHP installation. Most solutions were talking about recompiling PHP with the PDO driver specifically for this purpose. But after much search I stumbled on this post which clearly mentions that the OSX Lion (10.7) ships with the PDO drivers by default. After playing around on Mountain Lion (10.8) I realised that this is the same case.

Initially when PHP is setup and working I was constantly getting the following PDO error

PDO::__construct(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock)

This lead me believe that the problem was actually with the PDO. However later I realised that the problem was lot simpler than it seemed. The actual sock file was missing as the error says and this can be found in your /tmp folder in the Mac (at least for the 10.7 and 10.8 versions of OSX). To resolve the issue all you have to do is

  1. Locate the php.ini file on your Mac (/etc/php.ini)
  2. Replace all instances of /var/mysql/mysql.sock to /tmp/mysql.sock
  3. Save the file and restart Apache.

Why Real-time Collaboration? – Creately

After a prolonged wait we have finally taken up the time to implement Real-time Collaboration for Creately. Right now the feature is in Beta and can be used by anyone who wishes to take it for a spin. The real question is why did we not do it all this time? and why have we finally done it?

For those who dont know what im talking about, real-time collaboration is the concept of being able to edit a document/file at the same time from multiple different computers while seeing changes from each editor in real-time.

It’s true that the buzz around real-time collaboration was really a while before. But thats all about the coolness of being able to work with people located in a different parts of the world at the same time on the same document and see the changes happen like magic. It was a big deal for application developers to get this working in their tools and specially when it is a cloud app. We felt the same way back when we started Creately. We had to have it because it was cool and it can create lots of buzz. But we were blocked by many factors.

What does the user really want?

From the early days we have prioritized the road map of the product based on what our users wanted. This is one of the key success factors of Creately. We payed lots of attention to support requests, discussion forums and user votes on features. This almost always decided what went into each release of Creately. Real-time collaboration as a feature did have lots of attention as well from our users. But it was not always the burning problem. Smooth collaboration was a burning problem but that didn’t always mean real-time is required. We learnt this as we started improving the collaboration features. Users wanted to be able to easily share to edit or view, to easily embed and interactively view the diagram, to be able to discuss and notify users on changes and work together. We built features that enabled all of these. Real-time collaboration always seemed like that “cool” feature and didn’t convince us a as a burning problem over most other requirements in the diagraming space.

Revenue does matter!

Thats right, you know it! Real-time collaboration as a feature didn’t make revenue sense as much as most other development we have done around Creately. Series of the initiatives we did were to deliver Creately to bug tracking and wiki platforms like Confluence, JIRA and FogBugz and also build a desktop version of Creately. It would only make sense to hit the numbers while building and delivering great products. This added on to the delays.

Why now?

Creately is doing GREAT! While things are going well we wanted to get this feature out, a long lasted wish. But most importantly as we improved collaboration features we realized always something was missing. Collaborating in real-time is not about seeing the changes and feeling the magic (so to speak), but getting something done fast and getting it done easy. The real utility in words doesn’t seem a big deal, but when you are really using it you feel the difference. It makes life just so much easier.

Lets think back. When we didn’t have cloud applications it was all emails going around with attached files. Soon you had multiple versions going around with different users edits on them. This was solved by collaborating online. You had one file that was being changed. But still you had to go back and forth after making the change to communicate with the team. This can lead to lots of time wastage if you are not communicating well. With real-time you are seeing what’s happening and ideas are communicated well and all in one session you get to create and communicate what you want. You really dont have to worry much. To feel the difference, it has to be experienced.

We are glad we did this and we have lots more planned for this year. Stay tuned!

Scaling BlazeDS with Servlet 3 (Concurrency)

One of the well known issues of BlazeDS is it’s limitation in scaling. To be more specific, if you are using BlazeDS for HTTP steaming using AMF, the number of concurrent streaming connections will be limited to 100s. The exact number would be dependent on multiple factors such as the capacity of the server and configuration settings on Tomcat or whatever the application server you are using. When it comes to streaming each connection would be opened and held until the client closes or the connection times out. In the case of BlazeDS this directly relates to the number of threads consumed due to how Servlets operate. Servlet consumes a thread per request and holds the thread until the request is committed. During streaming, a request is kept open throughout the streaming session which makes the servlet hold the thread through out. This particular problem cannot be solved with servlet 2.5 or before due to the limitation in Servlets itself. However Servlet 3.0 supports asynchronous requests which can be utilized efficiently to scale the same servers to support 1000s of concurrent connections.

Up to BlazeDS 4 there has not been support for endpoints that utilizes servlet 3.0. BlazeDS 4.0 turnkey ships with Tomcat 6 which uses servlet 2.5. There has been rumors that BlazeDS 4.5 will have endpoints that utilize the capability of Servlet 3.0. Still this is just a rumor and cannot be depended on. Given the current state of affairs and the growth of other frameworks and technologies I would not expect much. There have been solutions for the problem that uses various technologies and my picks are below.

  • MuleRTMP – A Google code project that uses the capabilities of Red5 streaming server and streams to AMF clients over RTMP.
  • A polling solution that uses Jetty 7 Continuations to provide an endpoint for BlazeDS
  • The Farata Systems’ solution which uses again Jetty 7 and Servelet 3 to provide a streaming endpoint for BlazeDS.
  • blazeds-servlet3-support – Another Google Code project that is a simple BlazeDS streaming endpoint that utilizes Servlet 3.

I have been personally working on the blazeds-servlet3-support project by contributing code. Right now the code looks quite messy but it works. I had to fix some of the issues and currently it is able to reliably stream messages on Tomcat 7 without causing any trouble. What this does is simply utilize the Async capability of Servlet 3 to isolate all the pushing functions into one single thread. Requests are handled and then immediately the Context of the request is handed to a the pushing thread, enabling the thread that handled the request to complete and return to the pool. This approach pretty much would allow your same server that was limited to 100s of connections to boost up to 1000s of connections. This is however not tested yet and will be done once I have completed work on the endpoint. I will run some load tests and post it up. If you wish to give this a test run here is what you need to do.

  1. Install Tomcat 7 and Blaze DS 4. The turnkey install of BlazeDS 4 is not going to work since it ships with Tomcat 6.
  2. Once you have Tomcat and BlazeDS working fine, change the Tomcat Connector configuration to use the NIO connector instead of the BIO conntector. The setting is in the server.xmland should be changed as follows.
    <!--<Connector port="8400" protocol="HTTP/1.1"
     connectionTimeout="20000" redirectPort="8443"/>-->
    <Connector connectionTimeout="20000" port="8400" 
     protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443"/>
  3. In your Tomcat BlazeDS application context change the Servlet configuration to allow asynchronous capability for the MessageBrokerServlet. This should be done in the web.xml as follows.
    <servlet>
      <servlet-name>MessageBrokerServlet</servlet-name>
      <display-name>MessageBrokerServlet</display-name>
      <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
      <init-param>
        <param-name>services.configuration.file</param-name>
        <param-value>/WEB-INF/flex/services-config.xml</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
      <async-supported>true</async-supported>
    </servlet>
    <filter>
      <filter-name>springSecurityFilterChain</filter-name>
      <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
      <async-supported>true</async-supported>
    </filter>
  4. Copy the compiled blazeds-servlet3-support jar file to the WEB-INF/lib folder of the context.
  5. Change the WEB-INF/flex/service-config endpoint as follows.
    <channel-definition id="amf-stream" class="mx.messaging.channels.StreamingAMFChannel">
      <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/streamingamf" 
         class="org.iobit.servlet3.endpoint.AMFServlet3Endpoint"/>
      <properties>
        <idle-timeout-minutes>3</idle-timeout-minutes>
        <max-streaming-clients>10000</max-streaming-clients>
        <server-to-client-heartbeat-millis>500</server-to-client-heartbeat-millis>
      </properties>
    </channel-definition>
  6. Restart Tomcat and you should be good to go!

Since I am continuing to work on this I would very much appreciate any feedback you might have. Please let me know your thoughts in the comments.

Colombo Hackathon – The startup scene in Sri Lanka!

It’s probably a bit too late to write about this because its been more than three weeks since it happend. However something like this cannot skip my blog specially because I was one of the organizers of the event. Since we (I and Chandika) came back from Startup Weekend we have been wanting to do something similar here in Sri Lanka and the first choice was naturally a Startup Weekend. However due to many constraints we weren’t able to pull it off. One of the key reasons being the financial requirement the event had on the participants. We were not sure yet if the local tech/startup community would fancy a expensive ticket to a event of this nature. When Sanath came up with the idea to do a similar event, we all gathered up for a discussion, myself, ChandikaJeevan and Sanath and followed the birth of Colombo Hackathon.

We didn’t have much time till the event and there was much to be done. However thanks for the resourceful team that came together, we were able to get everything organized in time without having to put in much effort. Special thanks to Jeevan for providing the venue and other required arrangements. When we put out the registration form we were taken by surprise to see the number of signups that occurred during the first two days. We had hit the quota of 50 by the second day. We kept the form open and by the second week there were close to 190 registrations. We had to limit the invites to 125 due to resource limitations. On the event we had close to 80 show up and around 75 participate. During the initial pitching session there were 29 ideas that came up. 14 ideas were selected to work on during the two days. 13 ideas continued to work and produce working demos. 4 pitches won and turned home as startups! It was magic to see the kind of energy and enthusiasm that went around in the room. During the initial pitches, even-though they had never planned for it, some walked up to the front to talk about their ideas – driven by the energy in the room. This is exactly what we wanted to see and this is exactly why we did Colombo Hackathon. All in all it was a massive success and we sure plan to do it again soon!

Coming back to that, why did we do this? It’s simply because we are those geeky startup guys. We love to see ideas form and come to life. We’d love to see a startup community form in Sri Lanka and we want to see a (tiny as it may be) silicon valley in this lovely island. For the past few years myself and Chandika and many others have had this discussion. Why are there not many startups in Sri Lanka? Us being a startup that created a world renowned product, we badly needed that here. We wanted to create that here and I am glad we did this! Thanks to the inspiration from Startup Weekend India and also Venture Engine which has greatly supported this. Here is an interesting article about why startups are important.

Amidst all the excitement and energy it was sad to see quite some negativity going around. It was all mostly about the worry of one’s idea being stolen and why would one talk about it in public. There was even a blog post referencing the Winklevoss twins as an example incident of a stolen idea. Taking startup advice from one who’s only startup experience was the movie “Social Network” is like taking parental advice from Britney Spears. I get it, Facebook is what everyone knows and thats what they talk about.  Ok so lets talk about Facebook then? how authentic and unique is the idea? It’s been done a 100 times before, some quite exactly the same as Facebook. But how did Facebook become so big? A startup is not about just an idea. Ideas form every other minute. Startups are about the people! If anyone other than Mark Zuckerburg had done Facebook, it would have never gotten to where it is now and thats the fact. For a startup to be successful it takes a lot… the confidence and motivation to stand up every time you fall, relentless hard work and decisive execution, sticking around with the right people and connections and letting the wrong ones go… and lots more. If you did come to the Colombo Hackathon, you’ll know. I am very happy and excited that we were able to inspire at least eight different teams to continue executing their ideas into real businesses. Until the next Colombo Hackathon… Adios!

Startups Rock!

Colombo Hackathon Facebook Page – http://www.facebook.com/cmbHack
Colombo Hackathon Twitter – https://twitter.com/#!/cmbhack

Startup Weekend – Bangalore

Its about time that I forced myself to throw in another post specially right after the Startup Weekend in Bangalore, India. Yeah, I was there. flew to Bangalore just for the event over the weekend with Chandika. I have to admit, it was worth every bit.

What is this Startup Weekend you ask? it is an intense 54 hour event which focuses on building a web or mobile application which could form the basis of a credible business over the course of a weekend. The weekend brings together people with different skill sets – primarily software developers, graphics designers and business people – to build applications and develop a commercial case around them. The Bangalore event was at the Microsoft office.

Despite the reputation Startup Weekend had, initially when myself and chandika set out to the event I was quite skeptical about if there was going to be enough participants or if the caliber of the crowd was going to make it challenging enough. I was worried if it was going to be a waste of a weekend than an eventful one. For us it was a weekend to break away from the post startup life we are in with Creately (still awesome!) and to re-experience the exuberant rush and energy produced in the early days of a startup.

So on thursday we went in and as the event started it was a promising crowed with the organizers making way to get started on a very busy weekend. I was stunned by the informality and counter-culture nature of the event. Even-though initially it all seemed unstructured and rebellious, it set the right spirit in the environment and among the participants. As the pitching session began I realized that almost everyone in the room had something they wanted to pitch. I was impressed by the quality of ideas that were being pitched. Even-though not many of them were very internet/cloud focused, I found quite a few interesting idea’s that I wanted to be involved in. I had initially gone in prepared to pitch an idea of mine, but by this time given the number of ideas that were being pitched I was convinced that I wanted slide into a much more executing/hacking role than my usual planning/managing role during this event.

Within few hours teams had formed and ideas had come together and people were already in intense conversations about their respective startups. The day had extended and I was too in a battle for balance in getting our startup towards victory. I was working with a energetic bunch lead by Jagat Iyer a smart, articulate and very passionate entrepreneur. Enjoyed every moment of being with the team working towards perfecting the idea of Shasthra (thats the product we were working on). This continued along with more planning and executing towards the five minute pitch that had to be done on Sunday evening. It was pressure blended with excitement and motivation amongst very little eating and sleeping. The next two days were spent meeting new peers and mentors talking and validating all aspects of the business at the meantime preparing for the final pitch. Having built a globally successful product, I was very familiar with the situations and problems we were coming across and was able to enjoy and work with the team on solving and overcoming all of it.

I was very impressed with the committed organizing team namely Pankaj, Chidambar, Gaurav and many others who were sticking along at all times making sure everything was taken care of in a timely fashion. There were talks about possibly having a Startup Weekend in Colombo this year as well. However there is nothing firm so far on this and we are looking forward to make it happen if Startup Weekend is willing to. All in all it was a splendid weekend full of energy and I can’t think of anything that was not right about it.

Startups forever!!