What a weekend.
Started out yesterday, Saturday night, with nothing to do. Ended up joining the 54-hour Singapore Startup Weekend Competition and becoming the 'CEO' of a product with 24 hours to go.
Just wanted to briefly go over our tech stack -- some new and exciting things for me -- and again reiterate my thoughts on the Singapore startup scene in general.
Behold heatr.com. A somewhat buggy local realtime chatroom. It shows nearby groups (ex. swsx, cs2102) and lists them based on geolocation distance and uses fb open graph for authentication. Helpful for professors in classrooms and for conferences, but the pitch is not what I'm trying to focus on here.
The Tech Stack
Javascript, javascript, javascript, javascript.
Node.js/Express.js for events, backbone.js for models, .jade for templating, socket.io for realtime magic, JQuery because JQuery, and redis & mongodb running the on the backend. Wheww.
I had only done 'Hello World' in node/backbone before but after this weekend I can safely say that I am far less intimidated by our tech stack, and am actually fairly comfortable with complex javascript libraries as a whole.
Node and socket.io are magical.
The possibilities of web apps that can be made with the two combined are truly limitless. Check out Word Squared or Doodle or Die to get a taste of the deliciousness.
Startups in Singapore
This was a very short competition. There isn't much that can be accomplished in two days.
And yet I can't help but feel a bit underwhelmed by the showcases. There was a lot of Twitter Bootstrap and JQuery Mobile which I love to see, but there wasn't much creativity in the apps.
Plenty of location based task/buying/selling services.
There simply wasn't anything that pushed the boundaries -- for better or for worse. Maybe there were too many business people in the room?
Anyways, I joined one of the best teams and had an amazing time hacking away at our app. Although we didn't win, the experience and coding with some of the best NUS CS students was invaluable.
Plenty more in store soon.
Bejing and Shanghai this Friday.
School sometime after.
I've been cramming away for exam season so I wanted to take a little breather and do some designing.
T Shirts are one of the easiest and cheapest ways to unleash creativity. It takes the same level of detail as a web/mobile UI to be done right.
Anyways these will be printed for UCSB Alpha Tau Omega's Spring Rush by the end of this March.
Too bad I'm in Singapore and won't even be able to get one till I get back in May.
Sigh... It's back to studying I suppose.
I've been watching the TechStars reality show which follows a handful of startups throughout the program. Interesting to see which ones crash & burn, and which ones succeed beyond their wildest dreams...
Below are all 5 episodes for your own viewing pleasure.
Episode 1

Episode 2

Episode 3

Episode 4

Episode 5

Somehow in the madness of this week I found a couple spare hours to throw together a site for my girlfriend for her birthday tomorrow.
I've been a little burnt out on the whole studying front and I wanted to play around with HTML5 canvas and try out some cool little jQuery/CSS3 tricks. Here are the results of that tinkering: How Long Till J Squared.

CSS3 combined with jQuery makes it so you barely even have to use images in your designs anymore. It really saves a lot of time not having to constantly switch between Photoshop and your browser.
The real awesomeness here however is the multiplying and colliding balls. Click anywhere on the page and you'll see what I mean. These balls are randomized canvas objects being created in javascript and they account for things like collision/edge detection and another lesser known HTML5 feature, accelerometer tilt (try it on a MacBook).
I wish I could take credit for these awesome bouncing balls, but it comes from an amazing chrome experiment by Mr. doob.
You'll notice as you create more and more objects the frame rate begins to drop drastically. It's merely a proof of concept but it is a great sign of things to come in HTML5.
Hopefully the girl likes it :].
3216 is over. It blew by faster than I ever could have imagined.
I still remember the first lecture - it was the first class of my Singaporean adventure actually. It'll be hard to forget that self balancing robot during show and tell.
Here I am now with three incredible projects under my belt and one offer from a Singaporean company to undertake another large contracted project. Hard to think that not even 6 months ago I was surfing back in sunny Los Angeles.
What I Learned
Let's see, I picked up Javascript, Objective-C, HTML5 practices, cloud UNIX scripting, Sencha, jQuery and the FB API just to name a few. But more importantly I learned that people, hard work and execution are what matter most in a startup.
If you put two intelligent like-minded individuals in a room with a common vision, great things will be built. Being part of a great team feels less like work and more like playing. You're always competing to one-up your teammate and show off what you've done. Hell, there were even a few nights where I cracked open a cold one or two and continued coding well into the morning. This class and startups in general shouldn't feel like mind numbing work, it's something you should enjoy doing. If it's not you're probably in the wrong line of work.
The execution bit I did not expect. Successful apps don't depend on the code. The design/UI and marketing are two equally important aspects that should not be overlooked. Users don't see the code quality. It doesn't matter.
Looking Back
I want to thank all of you so much for this past semester. I've met so many bright, funny and amazing people through this whole experience.
As far as I know I'm one of very few, if not the only exchange student that has been through this course. Most other exchange students only hang out with other exhangers, and they don't really get to be an NUS student. You guys have taught me 'lah!, 'shiok', ' can, can', and just how miserable this 'mugging' thing can be.
Please stay in touch and feel free to call/text/poke me whenever. I'm in Singapore for another semester and I'd love to continue hanging out with all of you inside and outside of school.
I hope to continue building apps and updating my blog, and I hope you all will as well.
Also, if we aren't already Facebook friends feel free to add me. Ok lah?!
So yesterday I talked about our potentially huge meeting with Premier Taxi for possibly integration with our app, CabSG.
It has been 4 days since the meeting and I'd like to follow up on how it went and how we as a team are moving forward.
The meeting was on Thursday. Unfortunately I had a final Gamelan playing test during it (Indonesian music is awesome btw), so Ryan and Deepan were there to represent CabSG. I'm sure Ryan and Deepan can (and will) tell the story of the meeting better than I can so I'll try and make it quick.
In short, Premier Cab does not have sufficient resources which is needed for our app to integrate with their systems.
BUT they did extend to us an open-ended invitation to revamp their current systems - a completely different project than the one we are currently working on. This involves creating a system to handle 100's of bookings at a single time, using routing/distance algorithms to match customers with drivers, and sending messages to the drivers with the destination to pick up a customer. This is a HUGE project.
Obviously there is no way we are going to be able to do this in the one week or so that we have left in CS3216, so we are 100% committed to finishing CabSG as originally intended.
Still, it's some food for thought.
It would most likely be a 6-month or so contract, a big commitment. It's a decision that we are going to have to collectively decide whether or not we want to undertake as a team in the coming weeks.
Things like this make me love CS3216. Sure, we may not be integrating our app with a taxi company, but the lessons I have learned over the past couple of weeks have been invaluable.
We got a huge company to listen to a couple of kids and ended up landing an offer to revamp their entire booking system.
In my mind CabSG has already been a huge success.
This is going be be a two-part post about what I've been up to the past couple weeks in building Cab.SG.
I'm no longer going to be full time developing Cab.SG.
No I don't mean I'm throwing in the towel just yet, but I have grown to realize our code is not the most important thing - it's quite the opposite actually.
I have no doubts that every groups apps will be phenomenal come demo day. It's a class of brilliant engineers. But that's the problem, everyone is focused on engineering the greatest app. There are no business heads in the class.
That is what I have begun to focus on. I want our app to have a huge user base - I want our app to be the most downloaded. To do that I have been focusing on the UI and parterships with taxi companies.
I originally started university as a business student. I only switched to Computer Science to build businesses on my own. This is what differentiates me from a lot of the students in the class and this is what I think can be the greatest asset I can bring to my team.
Anyways with regards to partnerships with taxi companies, I think it's an extremely strategic move and one that if it goes through it could pay off huge in the long run (quite literally).
How have I been trying to get a big taxi company to listen to a couple of kids?
Well, I've just been old calling them.
Over the last two weeks I have called the 5 biggest taxi companies: Comfort, SMRT, Premier, Trans-Cab and SMART everyday. I've been getting through to them as well. At SMRT and Trans-Cab I have talked to the VP of Sales about our app and possible integration.
The most promising, however, has been Premier Taxi. I instantly got the interest of one of the Assistant Marketing VP's and I have decided to pursue it.
Last Friday I went down to their offices in pouring rain completely unannounced with a pitch in hand. Premier was confused at first as to why the hell I was in their offices, but I managed to snag a meeting with their VP's. It worked eh?
Anyways our big meeting was this past Thursday, and I'll save the details of how it went down for the next post tomorrow.
I don't know how the hell, but were already done with half the semester.
It's come down to final project time in 3216 and I couldn't be more excited. The team we have is going to KILL it.
Our problem right now is our idea. We're going to do a iOS/Android/Web taxi booking application for Singapore. We originally intended to do taxi ride-sharing, which I wasn't too keen on, and I think for now we're putting that on the backburner.
So right now it's just dead simple fare calculator and booking. Easy. Were somehow planning on getting our prototype website app and native iOS/Android by Sunday and we're going to iterate off that.
Our team is great so far. I love the dynamic we have going. We've all spent hours bonding and brainstorming. We're planning our first UTown campout tomorrow night. I can tell we will almost be living together, and luckily we're getting along well.
I think that is key to developing a great app. Lots of smart people that work together well.
Time will tell on that one.
1. Usability vs Aesthetics (Is the interface attractive? Is it functional?)The UI is functional. It allows the user to access all the features that the developer wanted them to access. However, I would not say it is the most aesthetically pleasing UI. Right away on the homepage a lot of different things jump out at you. The icons for the menu navigation are large and awkwardly placed at an angle at the top of the application. Also the form and the “Who do you want to ask?” area are extremely large and make it look like those are also essential to check over before you “call for help!”. My main problems are the large, unorganized icons and the variety of colors that jump off the page. I would have wanted a sleeker look, gotten small icons that were from the same icon set and not clip art, and gave them the same B&W tones. The “I need help with..” should be modeled more like Google’s homepage, plain simple. Overall, the UI allows the user to get done what needs to be done, but it lacks a unifying, clean aesthetic look.2. Number of options / freedom given to user when posting a need.All the options you could want are right there. It’s obvious you can specify what friends your question will get sent out to and on what networks it will be sent on. This aspect is great. A user shouldn't worry about all their friends seeing posted questions, they can instead specify a group (ex. CS 3216).3. Cycle of interaction & incentives (Are the elements of the app engaging?) The gamification element is great. From the screenshots it seems that rewarding users with titles, badges, and on high score-like menus, increases user engagement dramatically. The problem with most web apps is that getting helpful responses often feels like a chore to users. I really like the menu with the “Most Helpful”, “Most Resourceful”, “Sizzling Fires”, and “Flame Makers” pages.4. Other problems you think the team might have faced The biggest problems I see with the app are getting the initial users and the initial landing screen. It’s easy to go from 100-1000 users, but going from 1-10 users is damn hard. With this app you want users that are highly engaged and take part in answering lots of questions, but it’s hard to convince them the badges mean something when no one else has a badge. Also, explaining to users exactly what the app does isn’t very clear from the homepage. In this sense, I would assume they had a problem with user retention.
Heroku and Facebook just announced integration for creating FB applications.
I have never seen a process this easy. It's literally just go to http://developers.facebook.com/apps click 'Create a New App' and click Heroku cloud services.
From there you get a choice of what language you want to use, Ruby, PHP, Python, Node.js.
I've used Heroku in the past, it's phenomenally simple, and they give you free tiers of cloud storage up until a certain amount of traffic.
It's great to be a programmer in this age. The tools are all around us. It's so easy to get started.
|