Skip to main content

WOWZAPP 2012 Post-moterm

So I participated in WOWZAPP 2012 hackathon event in Hanoi, failed to win but nonetheless had fun. Below are some tips, writing down for the next time I go to a hackathon:

  1. If you have the chance to join a hackathon, do it! Big plus if you are young (not to say the events are not for old people).
  2. Project choice: do not build something that relies heavy on network connection. It's okie if the product uses a server but during development you should be able to put in some stub data for it to work. No matter how many wifi APs, the connection at a hackathon will be slow and troublesome, expect a lot of lost packets. Yesterday our team built a collaboration drawing app -- big mistake! We have to repeatedly perform this routine: find an available network, join it (do this at least 2 times for one client machine and one server machine), run "ifconfig en1" to get server address, put the new address in client config, run. Drove us crazy! If you have to, BYO router. We planned to bring ours but overlooked the problem and didn't do that.
  3. Planning: make as many preparations as possible. I'm not sure about other hackathon events but at WOWZAPP, they allow teams to implement server/service at home, prepare all the graphics, etc. The teams which do that won hand down. We didn't do any proper planning with the exception of discussing the product idea. I was blown away how well prepared other teams are.
  4. Eat and drink: I have no scientific data to back this up but I felt pretty good during the 36-hour hackathon. I don't eat much (only at meal time, no junk food). I don't drink anything heavy (coffee, etc., I did drink some energy drink but not much). I just consumed a lot of water. It also helps in keeping me awake (because I have to visit the toilet every so often I guess).
  5. Sleep: Our team didn't sleep much. Each member has 2-3 hours I think. We took turn to sleep too. I heard nothing about lost properties but it seems to be a good practice. Some other teams brought blanket and pillow, they may comfort you better but for just a couple of hours it may be not worth it.
That's it. 

Talking about our app a bit:
  • Idea: Collaboration Board. People can join a (drawing) board and do stuff together
    • Drawing
    • Sharing images (files or captured with a webcam)
    • Posting videos (YouTube)
    • Sharing location (Bing Maps -- it's a Microsoft event after all)
  • Implementation
    • Server: node.js
    • Connection: Socket.IO (Websocket or polling)
    • Client: Windows 8 Javascript/HTML5 app
  • What we have done
    • Server: all features
    • Client:
      • Collections view (a collection can hold many boards)
      • Boards view
      • Board view
        • Sharing images (files + webcam)
  • Repo (my forks)

Comments

Popular posts from this blog

Flutter: Fixing Firebase header not found with Notification Service Extension

If you follow the FCM tutorial Send an image in the notification payload and encountered this error message: 'FirebaseMessaging/FirebaseMessaging.h' file not found You are on the right place, I'm going to show you how to fix it. My app was working fine but one day it stopped compiling. Apparently Flutter 1.20 changed the way it uses CocoaPod so the service extension no longer has the proper library configured. After some tinkering, I came up with this pod config, it has to be added to ios/Podfile below the main Runner target. target 'FcmImage' do use_frameworks! use_modular_headers! require File.expand_path('../.symlinks/plugins/firebase_core/ios/firebase_sdk_version.rb', __FILE__) firebase_sdk_version = firebase_sdk_version! pod 'Firebase/Messaging', "~> #{firebase_sdk_version}" end FcmImage is my extension name, replace it with yours We can use a hardcoded version for Firebase/Messaging pod but doing so m...

OAuth with Google, Twitter and... Facebook!

This is sick! Just a few days ago, I ran into OAuth as I want to get my GMail feed based on Google Data API . I succeeded. With a little help of an OAuth open source ( here , available in several programming languages). Then I remember that I once heard that Twitter also uses OAuth as an authentication option so I turned into Twitter and had a good read. Finally, I found out that they are basically the same (hehe, it's obvious since OAuth 1.0 is a worldwide standard). I had an idea of writing a universal class which can handle both Google and Twitter OAuth functionalities. It's not too hard. I took most of the idea from the PHP example ( here , PHP only). I also made a small script which accepts URI to send and intercept response from Google & Twitter servers. At that moment, I was so excited with all the ideas but actually it has no real world benefit so I just left it there... Until today, in the F8 (says "fate") conference of Facebook, I was stunned fin...

Replacing GCP with Railway for faster cold start

TL;DR I switched a Dart API from Cloud Run to Railway for a 300% faster cold start, simplified DevOps, and a straightforward fee structure. Problem I'm working on this project github.com/daohoangson/flutter_widget_from_html . It is a pub.dev package that's super handy for Flutter developers who want to seamlessly render HTML in their apps. Now, when it comes to HTML, it can get pretty dynamic, right? That's why having a playground to showcase features, troubleshoot issues, and tackle bugs is crucial. The Google team has this fantastic tool called dartpad.dev , which is just perfect for this kind of thing. However, there's a little catch - third-party packages like mine usually can't be used there (unless you have thousands of likes, as explained on  Medium ). So I decided to take matters into my own hands, forked it, then deployed try.fwfh.dev with additional package support. Initial idea since 2019 First deployment  in 2021 Cl...