Learning from My Hackaton Mistakes

Disclaimer: I have won some and lost some

I won something in my first three hackathons, and then I did not win a thing in the next two hackathons. These losses made me deeply thinking on why I lost. We made a very decent app, functional, decent UI, and solve a real problem, but it did not even made the preliminary round in those losses. So here are my opinions on why we losses:

1. Think Big but Failed to Make Other Understand the Idea
A hack is an innovation. You made something possible when it’s not even possible before. And when you think big and have a great idea, oftentimes it’s not easily understandable by people. So the problem is how we deliver the idea. Role playing is a good way to do this, but choosing the right words and the right sentence is the key. One of the main reasons I lost was I could have done better in delivering these ideas IMO.

2. Fancy but Not Clear Design
Great UI is a boost in judging, but we need to remember to design it so people could easily understand. Hackathons have a strict time limit, vary from 90 seconds to five minutes, so we need to design the app as clearly as possible. I mean, people and the judge would only see the app in a glimpse, so a good and clear design will help them understand what your app does in those limited time. In those losses I think our app design is quite good, but hardly understandable by people at the first look.

3. Do Not Use an API Just for the Sake of Using the API
In hackathons, there might be multiple APIs and challenges, and to boost the percentage of winning, we might think we should use more API so we might apply for more challenges. Well, it is not a wrong thinking. But we need to remind ourselves that the sponsors expect their API to be used in something extraordinary and fundamental. So make sure that we use those API to solve something fundamental, not an additional feature which is hardly needed by people. Once again, I have experienced this pitfall.

4. Preparation IS not the only KING
Better preparation results in better execution. This matters when you have very limited time in building an app. But this could be utterly useless compared to Big Ideas. So make sure you have a very Big Idea combined with a good preparation. Well, this is arguable since I have seen lesser ideas won, but better idea combined with good idea presenting will make the judge have no other choice to make you a winner. In every hackathons I always prepare and organize so it is feasible to finish the app. Mockups, database designs, API designs, Task Delegations, we always prepare for that. Heck, I even made my API cleaner and more robust along each hackathons. The thing is the judge don’t give a shit about that. Their main concern is your idea, how can you make an innovation to make life better.

Hope this post helps and feel free to discuss.

Why Basing Your Success Without Evaluating is Bad

You might have read this quote:

Success is a lousy teacher. It seduces smart people into thinking they can’t lose.
– Bill Gates

When you succeed on something, the first thing you feel is a joy. This joy could lead into arrogance or laziness. But when you failed, the first thing you feel should have been a disappointment. And when you are disappointed, the questions that should have popped up in your head are “why”, “what”, and “how”.

  • Why did you fail?
  • What went wrong and what should have been done?
  • And, How can you do better next time?

Well, a success is not a bad thing and we should aim for success actually. But when you succeeded something before, do not jump into conclusions on why you were successful. You might think that the reason you succeeded is “A”, but you should challenge that idea. Is “A” really the reason that you were successful before? You need to be careful in evaluating your success so that you could you use it to gain more success next time. In the end, failing itself is not really a bad thing, but failing and giving up without evaluating is the worst.

Don’t Play A Game If the Game Master Can Not Protect You

Dua bulan terakhir saya sedang giat bermain sebuah game strategi perang web-based berjudul SengokuIxa. Game ini dibawa ke Indonesia oleh SquareEnix dengan joint venture bersama perusahaan game lokal, Agate. Awalnya saya hanya diajak oleh Devon, teman se-SMA saya yang jadi salah satu punggawa Agate, tapi lama-lama saya justru keasyikan main game, bahkan lebih maniak dibanding Devon.

Tepat 2 hari yang lalu ketika sedang war, saya mendapat pengalaman tidak enak. Ada pemain yang satu klan dengan saya melakukan Kill Steal (KS), atau istilah populernya “nyampah”, terhadap saya. Poin hasil sampahan dia cukup besar. Mau saya war 5x juga ga akan dapet poin segitu (5x war itu setara dengan periode 25 hari). Kontan saya melaporkan langsung ke Devon dan Arif (bosnya Agate, tapi juga pemain aktif karena sesama gamer) disertai skrinsut-skrinsut yang membuktikan bahwa ada yang melakukan KS ke saya. Oleh Devon, email saya diteruskan ke mungkin istilahnya Product Manager (PM) dari game Ixa.

Emailpun disampaikan, dan respon dari sang PM juga diteruskan ke saya. Singkat kata, menurut sang PM tsb, tim operasional Ixa tidak mengatur etika dalam peperangan dan menyerahkan semua etika ke pemain-pemain yang ada di dalam game ini. Oke, ketika membaca saya langsung kecewa. Saya pemain aktif, didzalimi, tapi tidak ada tindakan proteksi terhadap saya. Oke, mungkin etika memang dibentuk oleh komunitas, tapi apa iya tidak ada tindakan yang bisa dilakukan untuk bisa menyetir hal tsb sehingga permainan menjadi lebih fun dan fair untuk dimainkan.

Saya ambil contoh misalnya game Dota 2. Ketika ada pemain yang bertindak buruk, dia punya mekanisme report. Bila seorang player mendapat report, dia akan terkena sanksi berupa salah satunya low priority dalam matchmaking. Hal ini tentu akan membuat seorang player akan pikir-pikir bila akan bertindak tidak menyenangkan, walau tidak sepenuhnya menghilangkan hal tsb.

Well, mungkin Ixa beda dengan Dota 2. Tapi setahu saya, keduanya game multiplayer, ada interaksi antar pemain, ada kesempatan buat Kill Steal juga, akan tetapi beda sekali masalah pengendalian etika pemain ini. Akhirnya, saya pun memutuskan pensiun dari game ini, biar kalo dongkol ya cukup sekali aja. Saya email ke PM tadi, isinya juga kira2 sama dengan poin di atas. Untungnya saya baru mengeluarkan sekitar 400-500rb untuk game ini. Entah kenapa kecewanya lumayan berat, karena mungkin saya salah satu paying customer, salah satu loyal customer (sebelumnya pernah main game Agate lain dan mengeluarkan lebih banyak uang lagi), teman dengan beberapa anak Agate, tapi in the end tidak dapat perlindungan apa-apa.

Don’t Ask Me to Google It!

Oftentimes your friends ask you about things you might find them too trivial or too complex to answer. And oftentimes you will tell them “Google it!”. I’ll tell you three reasons why you need to stop doing that.

1. It is RUDE
I know that googling is easy. I know that Google is a fucking source of information, and I most certainly know that you think that your friends is just too lazy to search it themselves. But many people will find it offensive if you tell them to google it. Why?

Because nobody doesn’t know Google, for God sake. Well, perhaps there is! But the probability someone don’t know how to google is very little. Especially when you live a college or professional life. And if I were told to search on google on the first answer, I will know that you are most probably: (a) too lazy to explain, (b) do not know the answer, or (c) think you’re a retard or ignorant and intentionally want to mock me.

2. Need curated information or opinion instead
Sometimes you ask some things you might have heard of or know a little about. Your response if you were replied “Google It!”? Duh, of course I can google it, but then I will need to find the right information among rubbish on the internet. If only you can just sums it up, I will be very grateful and can save probably 5-15 mins of my time!

And more importantly, sometimes you will need an extra information called opinion. Besides, a friend’s opinion left a stronger remark than things you read.

3. Conversation please?
Yeah sure, I can google it and then we will have no conversation because I would be playing with Google on my gadget instead of having more conversation with you. Yeah I can chat with you later, don’t worry. Oh wait, we barely converse, don’t we?

So do you still want to answer “Google It!”?
What if you just answer it briefly and as far as you know?
For example:
X is bla bla, you can search it on Google to get more information“,
or “I think Y is about bla bla, I might be wrong, you should search it on Google“,
or if you don’t have a fucking clue about it, just answer “I’m sorry I really don’t know about it. Let me look it up on the internet later” (even if you never did).

With this you will have no pissed friends and live happily after lol

Open Source Is Free, but Not Free

Sebelum membahas tentang bagaimana perusahaan dengan produk open source mendapatkan revenue, kita bahas sejenak apa itu produk open source. Kebanyakan software sebelum awal milenium ke-3 sifatnya adalah berbayar dan isi codenya tidak dapat dilihat apalagi diutak-atik orang lain. Pada tahun 1983 muncullah faham open source, namun pergerakan ini baru mulai terasa getol sejak akhir milenium ke-2. Software open source adalah software yang source code-nya (kalo untuk kacamata awam mungkin bisa dianalogikan bahan baku kali ya) dilisensikan dengan open source license dan pemiliknya dapat mendistribusikan source code software tsb ke siapa saja untuk dilihat, dikembangkan, dan digunakan. Hal ini tentu sangat berdampak pada perkembangan software, terlebih pada komunitas developer (programmer) since open source is free. For more info, just read the wiki http://en.wikipedia.org/wiki/Open-source_software

Kembali ke bahasan utama.

Sebenarnya dulu saya heran, kok ada ya orang baik yang udah capek-capek nulis code lalu disebar-sebar tanpa meminta sepeser uang pun. Gile baik bener ya ūüėÄ Yang lebih mengherankan lagi adalah adanya perusahaan yang produknya open source, gimana dapet uangnya tuh?

Ok, so let me clarify. Free, in English, dapat berarti bebas atau gratis. Dalam context Open Source Software (OSS), free yang dimaksud adalah bebas, bebas diapa-apain, bukan gratis. Hampir semua software open source memang gratis (not sure, let me know kalo ada yang berbayar), tapi idenya di sini adalah code softwarenya terbuka untuk semua orang sehingga orang-orang bebas untuk menggunakan dan mengembangkannya.

Business model untuk OSS yaitu dengan mengambil untung dari biaya pelatihan, support, maupun maintenance, bukan dari penjualan atau pemakaian software tersebut. Let’s take an example.

Misal kita menggunakan database MongoDB untuk perusahaan kita. Seiring dengan berkembangnya perusahaan kita, tentu makin kompleks kebutuhan yang kita perlukan serta makin besar data yang kita handle. Ketika perusahaan menjadi besar, suatu saat akan tiba titik dimana kita tidak bisa hanya menggunakan produk open source tsb dan kita harus punya kerjasama dengan pengembang produk tsb. Kenapa? Agar bila tiba-tiba shit happens kita dapat meminta bantuan dari pihak pengembang produk dengan cepat, supaya masalah teratasi. Kecepatan dan security inilah yang kita perlukan. Tentu kita dapat mengakali dengan memiliki tim rockstar developers, tapi tidak semua perusahaan mau atau merasa perlu memiliki developer rockstar (super jago).

Jadi intinya, open source is free (bebas), not free (gratis)

Don’t Let the Bozos Grind You Down

Note: I got the title from a point in Guy Kawasaki’s presentation in 2006 (the video can be watched at¬†http://www.youtube.com/watch?v=jSlwuafyUUo)

 

Jadi, menurut Kawasaki, there are two types of bozos who would say that your business will not succeed:

1. Losers

2. Orang dengan kapasitas lebih tinggi dari kita (contoh: direktur PT. X, founder from a bigger startup, investor, dll)

 

Tipe pertama tentu tidak berbahaya. Kenapa kita harus percaya dengan losers?

Tipe yang berbahaya adalah tipe kedua. Why? Karena ketika orang dengan kapasitas lebih tinggi dari kita bilang bahwa bisnis kita tidak akan berhasil, kita mungkin tempted untuk percaya dengan perkataannya dan ultimately quit startup kita.

So let me tell you my stories.

November 2011, saya mengikuti Telkomsel Startup Bootcamp dengan Camok. Banyak orang-orang yang lebih berpengalaman di situ, baik startup founders, investors, dll. Ide kita saat itu bernama Share & Bid, sebuah situs dimana brand bisa menawarkan barangnya untuk dilelang dengan maksimum harga senilai harga jual asli. Konsepnya mungkin sedikit mirip dengan daily deals, bedanya kalo daily deals mengubah bentuk promosi suatu brand dengan harga miring, Share & Bid mengubahnya dengan bentuk permainan lelang.

When we told people about our idea, we got pessimistic feedback. Particularly, I remembered that Anthony Liem said that the idea seems like outdated product and he thinks that bidding will not be accepted in Indonesian people culture. Okay, got it. Tentu saya respek dengan opini orang lain tapi yang saya sayangkan adalah feedback tersebut demoralize us dan let us drop the idea. Padahal, given the trend at that time, sangat masuk akal untuk masuk ke market tsb. Ini adalah contoh bozo tipe kedua yang berhasil “grind us down”.

 

Oktober 2012, ada expo Colosseum yang diadakan HMIF di ITB. Saat itu saya mengisi stand dan menunjukkan produk kami hasil pivot dari Share & Bid yang telah kami rilis 3 bulan sebelumnya, Dissee. Dissee adalah sebuah marketplace untuk produk kreatif semacam aksesoris, tas, dan stationery.

As I had expected, pengunjungnya kebanyakan mahasiswa. I remembered there was one guy who came to our stand and were trying the product. Dari nada dan pertanyaan yang dia lontarkan, saya dapat kesan bahwa yang dia pikirkan most likely seperti ini “Situs eCommerce kan udah banyak? Buat apa bikin lagi? Apa bedanya ini sama yang lain?”. Oh dear fellow, I could explain it to you in million ways but you will not grasp it firmly anyway since you were being cynical. Ini adalah contoh bozo tipe pertama. Impresi yang kita terima adalah “why should I listen to this guy?”.

 

Masih di Oktober 2012. Saat itu kami habis menang Hackathon Sparxup dengan Taxify, sebuah aplikasi mobile pemesanan taxi. Ada salah satu partner dari sebuah VC, CyberAgent Venture. Saya ingat mereka bilang bahwa Taxify ini sangat potensial, tapi challenge terbesarnya adalah membutuhkan bukti untuk bisa diaktualisasi dengan bekerjasama dengan perusahaan-perusahaan taxi. Few months later, Bluebird bikin aplikasi yang mirip. Another type-2 bozo.

 

Maret 2013, saya mengikuti konferens WebInTravel sebagai finalis idea pitch dengan produk kami, Tripboard. Tripboard, adalah sebuah sebuah collab tools yang bisa membantu orang merencanakan trip mereka dengan teman-teman secara online. Unfortunately, we lost to some guy with a meta-search engine product from Malaysia. Setelah acara, saya bertanya pada VP Marketing Agoda, Timothy Hughes. Dia bilang, produk kita solve a real problem, tapi kendalanya adalah seberapa sering orang plan a trip? Mungkin hanya sekitar sekali dalam setahun. More importantly, he is pessimistic with how we can reach the user. Ads? No way, since it will burn lots of money, and we cannot compete with those big guys in term of promotion. Sekali lagi, feedback itu membuat moral kita turun dan pengembangan aplikasi pun terhambat.

 

Dari video yang sudah saya sebutkan di atas, Kawasaki berkata bahwa anyone can became a bozo. Bahkan dia sendiri pernah menolak tawaran menjadi Yahoo CEO ketika Yahoo masih startup karena mengira Yahoo tidak akan sukses. Contoh lain misalnya direktur IBM percaya kala itu hanya ada lima komputer yang dibutuhkan pada pasar komputer. Now? everyone has one or more computers.

Hal yang penting adalah, dan terutama meninggalkan kesan yang dalam pada diri saya, kita tidak usah patah arang ketika orang bilang produk kita jelek, bisnis kita tidak akan berhasil. Selama kita melihat bahwa produk kita memang berpeluang, dan memang ada kebutuhan orang akan hal itu, kita harus tetap maju dan tidak mengacuhkan opini miring orang lain. In the end, kalau kita berhasil maka kita sukses membuktikan diri kita, tapi bila kita tidak berhasil juga no harm done anyway. So it’s better to keep moving forward.

Cheers!

 

Mudahnya Suatu Ide Ditiru dan Entry Barrier

Jadi kemarin teman saya, Puja, bertanya ke saya.

Puja: “Pan, lu tau startupnya si Arif?”

Gw: “Tau. Yang travel. Kenapa?”

Puja: “Mirip bukan sih sama SocialTrip?”
[Note] SocialTrip ini produk yang lagi mau kita kembangin untuk ikutan lomba Evernote DevCup)

Gw: “Beda ah. (mikir sejenak) Ya sama2 tentang travel sih, emang direct competitor tapi produknya beda”

 

Dari situ, gw jadi inget tentang betapa mudahnya punya ide yang mirip. Gw juga inget di salah satu talkshow Guy Kawasaki, seorang audience pernah bertanya mengenai paten miliknya yang ditiru oleh temannya. Di akhir jawabannya, Kawasaki berkata “Kalau produk atau idemu bisa ditiru dengan hanya mendengarkan atau melihat sekali, mungkin produk atau idemu bukan produk atau ide yang bagus”.

Tidak sekali saya mendengar perkataan “Idea is worthless. Execution is gold”. Saya sepakat sekali dengan perkataan itu. Semua orang bisa bermimpi, bisa punya ide yang sama, tapi apakah mereka mampu melakukan eksekusinya dengan lancar? Tentu hanya segelintir orang yang bisa melakukannya.

Sedikit cerita dari pengalaman saya. Bulan Oktober tahun lalu saya dan tim PvJ (Puja, Tito, Aqsath) menang hackathon Sparxup dengan sebuah produk pemesanan taxi bernama Taxify. Saat kami mengikuti kompetisi, nama Uber sama sekali belum pernah saya dengar sebelumnya. Uber ini adalah sebuah aplikasi pemesanan taxi juga yang sangat besar di US. Dan ternyata ide produk kami itu sangat mirip dengan Uber (walaupun business modelnya berbeda).

Poin saya adalah: Ide atau mimpi itu sangat tidak mustahil bahwa ada saingan ide lain yang mirip. Jika ada yang dengan mudah meniru ide atau produkmu, berarti entry barriernya yang terlalu rendah. Produk harus kita kembangkan jauh lebih advanced agar kompetitor juga susah meniru atau mengejar kita. Coba sekarang lihat Google, males kan kalau disuruh bersaing dengan mereka yang teknologinya sudah jauh di depan? You need to create a great entry barrier for your products so competitors cannot easily emulate you.

By the way, beberapa saat yang lalu, Bluebird merilis aplikasi pemesanan mobile untuk armadanya. Beberapa alurnya sangat mirip dengan Taxify. Walaupun sangat mirip tentu masih berbeda. Bedanya kalo di Taxify: tidak terikat pada satu taxi, bisa memesan langsung ke driver, driver menggunakan smartphone instead of mesin GPS, ada paperless receipt. Our idea is more advanced in a way if I could say so.

Teknologi dan Lapangan Kerja

Beberapa waktu yang lalu saya ngobrol dengan teman saya sesama mahasiswa S2 Teknik Industri ITB. Teman saya ini punya bisnis di bidang logistik dan akomodasi. Dari hasil perbincangan itu saya menangkap kesan bahwa usaha di bidang Non IT dapat dengan mudah menyerap tenaga kerja yang tidak memiliki kemampuan spesifik pada suatu bidang.  Banyak contoh kasusnya, namun coba saya contohkan dari penelitian teman saya ini saja. 

Jadi teman saya ini meneliti tentang biodiesel mobile dari bahan baku biji karet di Indonesia. Kenapa mobile? Karena logistik di Indonesia sangat buruk, sehingga daripada membuat pabrik ke tempat-tempat terpencil, lebih baik pabriknya (menggunakan sebuah vehicle yang dapat memproduksi biodiesel) saja yang dibawa ke sana. Dia mencoba mengembangkan model bisnis supaya masyarakat tempat bahan baku biodiesel tersebut juga dapat diserap tenaga kerjanya sehingga sama-sama dapat menikmati untungnya. Tenaga kerja yang dibutuhkan sederhana, cukup bapat mengumpulkan biji karet yang tersebar pada kebun karet.

Sepintas saya berpikir, usaha di bidang IT justru mencoba mengurangi pekerjaan yang semula perlu dikerjakan manusia. Bukannya menyerap tenaga kerja, malah mengurangi lapangan kerja. Namun setelah berpikir beberapa saat kemudian, pikiran tersebut dapat dipentalkan. 

IT bukan mengurangi pekerjaan yang dikerjakan manusia, namun membantu meringankan beban pekerjaan manusia. Tentu dengan adanya otomatisasi ada beberapa pekerjaan yang dapat dihilangkan, namun orang-orang yang semula didelegasikan mengerjakan pekerjaan tersebut sekarang dapat mengerjakan pekerjaan yang lain. Instead of hiring 2 people to do task A & B, we can automate task A and let those 2 people do task B and task C (another potential task) to elevate the business.

Saat menulis tulisan ini, saya kemudian teringat satu sesi pada acara Web In Travel ketika terdapat pertanyaan dari murid akademi kepariwisataan yang mempertanyakan bahwa industri online travel dapat mematikan usaha offline sehingga mengurangi lapangan kerja mereka. Saya ingat Gaery dari Tiket.com menjabarkan kepada murid akademi tersebut bahwa mereka tetap membutuhkan orang-orang yang memiliki keahlian di bidang pariwisata. Dari sana dapat dilihat bahwa teknologi itu selalu mengubah dunia dan makin banyak pekerjaan yang lama digantikan pekerjaan baru tanpa mengurangi lapangan kerja.

Web In Travel Indonesia 2013 – A Great Experience

So last Wednesday, March 27th 2013, there was an event held by Web In Travel and its local partner in Indonesia, Kibar Kreasi. Web In Travel (WIT) itself is an Asian Pacific community who regularly hold a worldwide conference in Singapore. For the first time, this year WIT came to Indonesia and held a little conference plus startup competition. More info about WIT can be read at their site http://www.webintravel.com/

Few days before the event, we only got a complimentary ticket for the event, since our submission was rejected says the notification email I received. But one night before the event, Leonard from Kibar Kreasi called me and said that there was a misunderstanding and Tripboard should have been one of the finalists. He asked me to send him a presentation that night, which I have not prepared. In the end, after 3-4 hours, I barely made the presentation and sent it to him.¬†By the way, Tripboard is one of Paris Van Java team’s products which was originally created for Startup Asia Bandung Hackathon (Yeah, we won some of the challenges). You can read more about it at http://startupasia.techinasia.com/bandung2012/startup-asia-bandung-hackathon-the-winners/

The event was held at Pullman Hotel, Jakarta, and only a small numbers of people came, mostly foreigners, which gives an exclusive aura (the ticket was actually quite pricey, 2.5 Р3.5 millions IDR). There were several discussion panels and presentations. The first panel was consisted of Amit Saberwal, Chief Business Officer of MakeMyTrip; Peter Lee, Senior Director of Market Management Asia Pacific of Expedia; Timothy Hughes, Vice President Marketing of Agoda; and Venkat Chandramoleshwar, Business Development Manager-APAC of Google. The discussion was about the general overview of online travel space.

The second panel was about the condition in Indonesian. The panelist were Marc Steinmeyer, President Director & Founder of TAUZIA Hotel Management; Adi Satria, Regional Director of Sales, Marketing & Distribution of Accor; Brata Rafly, Commercial Director of Mandala; and Prih Harwadi, AVP Product Development, Cards Business Division of PT Bank Negara Indonesia (Persero)Tbk. This discussion gave us insight about the condition of travel industry in Indonesia and customer behaviors regarding the credit cards usage for tourism. One thing to note is that the market for online travel in Indonesia was still in infancy stage, and only about to take off right now.

Afterwards,¬†Henky Prihatna,¬†Head of Travel of Google Indonesia¬†presented about the digital habits of Indonesian customers. He explained that, in his version, there is five stages of travels: dreaming, planning, booking, experiencing, and sharing. He shared lots of numbers, like percentage of media used for planning, how many Indonesian shares on social media (8 of 10 Indonesians share their trip on social media), etc. It is too bad I couldn’t quite get them. He also told that over one billions query is searched per month by Indonesian people using Google.

Next panel was about the trends how Indonesian searching, planning, and booking travel. The panelists were Eric Tjetjep, CEO of Eztravel.co.id; Yusuf Ijsseldijk, CEO & Managing Director of Go Indonesia; William Newley, CEO of Rajakamar International Group/ Rajakamar.com; and Graham Hills, Managing Director of Wego Indonesia. It was followed with a conversation with Andy Zain, Founder of Mobile Monday and Director of Founder Institute about startup scene and overview in digital opportunities in Indonesia. Since I decided to visit my friend, Aqsath, who was hospitalized the night before because of scarlet fever, I missed these sessions.

When I returned, there was a presentation from Kei Shibata, CEO of Venture Republic, Japan, about the impact of mobile. Kei, who owns meta search engines hotel.jp and travel.jp, said that now more that 30% of the traffic comes from mobile devices. It was then followed by a presentation from Gaery Undarsa, Co-founder & Managing Director of Tiket.com, who talks about his company and how mobile traffic is getting higher but the actual transactions are still done in desktops. 

Next panel was discussed by¬†Morris Sim,¬†CEO & Co-founder of Circos Brand Karma and¬†Aaron Hung, Director of Partnerships, APAC of TripAdvisor.¬†They talked about digital marketing to grow hotel business. One of the methods is using TripAdvisor who can provide reviews for the hotel’s sites. Later, I talked with Circos General Manager, Ivan Lam,¬†who explained that Circos is providing their hotels clients social media analysis along with strategies. Besides hotels, airplanes companies like AirAsia is supported by them.

Next panel was about using social media and community to shape travel. The panelists were Marischka Prudence, Travel Blogger; Kristupa Saragih, fotografer.net; Dennis Adishwara, Layaria; Amalla Vesta, Liburan Lokal. It was then followed by a panel about Activities and Rentals opportunities in travel. The panelists were Ken Frohling, Vice President, Business Development of Viator andTurochas Fuad, CEO, Travelmob. Viator is one of the market leader in activity space, while Travelmob is a Singapore startup which focus on short-term rentals like AirBnB. Turochas or called T, is actually an Indonesian who then studied at Singapore.

Before the startup pitch, there was a panels about distribution drivers discussed by Chris Gribble, Vice President & General Manager, APAC & ME Hospitality Solutions of INFOR; Agnes YH Tan, Regional Director, Direct Sales & Loyalty of Accor Asia; Roland Jegge, Satria Pinandhita, Director of Business Development, South-east Asia of Sabre Hospitality Solutions,  followed by a presentation by Fritz Demopoulos, CEO of Queen’s Road Capital.

The last event is The WIT Indonesia Start-Up Pitch¬†where six startups presented their ideas to the judges. Panel of judges is consisted of¬†Andy Zain, Director of Founder Institute;¬†Brett Henry, Vice President Commercial of Abacus International;¬†Fritz Demopoulos, CEO of Queen’s Road Capital;¬†Morris Sim, CEO of Circos Brand Karma;¬†Kei Shibata, CEO of Venture Republic, Japan;¬†Timothy Hughes, Vice President Marketing of Agoda; and¬†Turochas Fuad, CEO of Travelmob.¬†Competing with us were: 5mile, Explorind, Ikut-ikut, SatuLagi, and Ulin Ulin.¬†

In the end, the winner was LagiSatu.com which is a Malaysian startup who focuses on meta search engine, specifically with Halal filters. You can read more about it at http://www.webintravel.com/news/halal-metasearch-lagisatu-wins-wit-indonesias-startup-pitch_3669

Buffer Files Mysql Insert

Recently, we were faced with a problem with mysql insertion performance. Basically, the problem is we need to insert lots of data in a short period time repeatedly. The data inserted must not be a duplicate, moreover, when we insert a data which is already existed in the database, we need to update it. For instance, we want to insert a tweet object which has a retweet count property. When we first inserted the tweet, it has X retweet count. Later, when we want to insert a more updated data, it has Y retweet count. When we met these cases, we need to update older data in database, instead of inserting new data. 

No brainer way would be every time we want to insert a data, we have to search the database to find if it is already in the database. If it is found, then update; if not, then insert. This method would be very costly since every time we need to insert a data we need to select the table to check. So here we will use a trick using “ON DUPLICATE KEY UPDATE” clause.

Inserting with “ON DUPLICATE KEY UPDATE” clause would force the database insert a data, and when it found a conflict due to unique key constraint, it would delete the newer data and update the older data. Let’s see below example:

Table “Tweet” has properties like this:

id INT PK AUTO INCREMENT,

tweet_id VARCHAR(50) UNIQUE,

content TEXT,

retweet_count INT

 

It has already one row:

id:1; ¬†tweet_id: “1000001”; ¬†content: “This is a tweet”; retweet_count: “1”;

 

Now we want to insert some tweets like these:

tweet_id : “1000001”; ¬†content: “This is a tweet”; retweet_count: “9”;

tweet_id : “1000002”; ¬†content: “I love twitter”; retweet_count: “0”;

tweet_id : “1000003”; ¬†content: “I like facebook better”; retweet_count: “0”;

 

Notice that we have a new record with the same unique key (tweet_id “1000001”). If we insert the data using clause “ON DUPLICATE KEY UPDATE retweet_count=VALUES(retweet_count)”, the data in the table would be like this:

 

id:1; ¬†tweet_id : “1000001”; ¬†content: “This is a tweet”; retweet_count: “9”;

id:3; ¬†tweet_id : “1000002”; ¬†content: “I love twitter”; retweet_count: “0”;

id:4; ¬†tweet_id : “1000003”; ¬†content: “I like facebook better”; retweet_count: “0”;

 

Notice that the auto increment `id` jumped from 1 to 3. It means, the query make the database insert a new data first then when it notices that there is a duplicate key constraint, it triggers the “ON DUPLICATE KEY UPDATE” clause, which are updating the older data, then delete the new data. Using this method, we tried inserting 1000 record and benchmark it with no brainer way. The result is we get around 40% performance improvement.

 

Now, we use another trick to improve it further. This time we use a buffer file to collect the data, then insert them to the database. The tricky part is, instead of building one query per data, we build one query containing all the data in the buffer. It is similar when you dump a database including its data.

To be simple, we collect our data until it reach a certain limit, then when it reach the limit, build one insert query and commit the database. If successful, we empty the buffer file. In our case, we collect the data and write it to a csv file while keeping track of how many records in there.

The one query approach I mentioned before, would generate a query like this for the case above:

INSERT INTO `tweet` (`tweet_id`,`content`,`retweet_count`) VALUES

(‘1000001′,’This is a tweet’,’9′),

(‘1000002′,’I love twitter’,’0′),

(‘1000003′,’I like facebook better’,’0′)

ON DUPLICATE KEY UPDATE `retweet_count` = VALUES(`retweet_count`);

 

instead of the usual queries of:

 

INSERT INTO `tweet` (`tweet_id`,`content`,`retweet_count`) VALUES

(‘1000001′,’This is a tweet’,’9′);

INSERT INTO `tweet` (`tweet_id`,`content`,`retweet_count`) VALUES

(‘1000002′,’I love twitter’,’0′);

INSERT INTO `tweet` (`tweet_id`,`content`,`retweet_count`) VALUES

(‘1000003′,’I like facebook better’,’0′);

 

Using this method, we get a whooping 2000% performance improvement. This is of course harder to develop and maintain, so you might want to study your case better before implementing it.