Juiz is a novelty PaaS-like shipped as a desktop application. Web developers can import their project, add API key for Amazon Web Services or DigitalOcean and start deploying in one click without preparing any server-side system.

Juiz works by using libcloud to spawn new cloud machine, then install Heroku Buildpack and user application using Ansible. The interface use WxWidget and could be run on both OS X and Linux.

Juiz was placed third place at National Software Competition 2015. No team won the second and first place.

Keepass2Android USB Keyboard Plugin allow users to send password in Keepass2Android to a connected PC with no additional hardware.

The application use USB HID kernel API to allow phones to act as a keyboard to computers. It then convert password string from Keepass2Android to keyboard scancodes and send it to the kernel.

Barcamp Bangkhen is an annual unconference event held by the students' club at Department of Computer Engineering, Kasetsart University.

I wrote the entire website of Barcamp Bangkhen 5 with web design from Chonnipa, a friend of mine at Software and Knowledge Engineering.

The website is designed with open data in mind. Every dynamic data are fetched by open, documented API. All dynamic content are rendered by AngularJS on the frontend. The site is also marked with schema.org markup and email communication has iCalendar event file.

During the event the website ran smoothly with no downtime even with over 2,000 visitors.

This untitled online programming judging system (grader) was used in SOSCamp 3, the introduction to programming camp for new SKE students held by their senior. It support various programming languages such as C, C#, PHP, Python, Java and Ruby.

The frontend interface is written in AngularJS and has two versions, one is designed for simple of use and supports only one programming language and another one is designed to be similar to Google Code Jam's.

The backend use a job queue to allow distribution of grading job over several machines (over 5 are used during SOSCamp). Each grading job spawns new Docker container to run untrusted code so that users may submit code using fork that some variants of grading sandbox disallowed such system calls.

Snake Run is a class project for Individual Software Process. It use Cocos2d-html5 for the engine, AngularJS for UI and Primus for near real time communication.

Snake Run features realtime online multiplayer in synchronized lock step model with deterministic simulation and offline play with A* bots. The game is a clone of the famous snake game featured in old Nokia phones, but with several things added on top; you compete with other players for highest score achieved when others rammed into you and there will be items that, when collected, cause special effects to your snake or other snakes such as inverting controls or being able to bite other snakes temporary.

Created by Department of Civil Engineering, Kasetsart University, KUSmartBus project aims to help students to travel in the campus more efficiently by providing real time service bus location.

There are two user-visible parts I created in this project: the Android application which is available on the Play Store and the bus information display which is installed on 3 locations on campus.

The bus information display is powered by CentOS and Chromium. 24x7 operation is one of requirements for this task which the system maintained for months.

Twitter people often discuss live TV shows together, which inspired me to create this application in 2012.

The application use HTML5 video tag and sync its state with master application using WebSocket with Socket.IO. The chat effects was inspired by Nico Nico Douga and Summer Wars. The application used menome API to authenticate, then later switched to Facebook.

In 2015 the application now ships with a Dockerfile for ease of installation

project Kyou NSC15 winnerAPICTA 2013 Merit

Kyou is a HTML5 ebook editor. Kyou is used to create the entire of CoreAnime 2.

The goal of Kyou is to create an easy to use e-book editor that make books adapt to how we use the computers, instead of imitating paper books. No coding is nessesary to use Kyou.

Kyou won the first prize, H.R.H. Maha Chakri Sirindhorn's cup at National Software Competition 2012, Best in Edutainment at ICT Princess Awards, Runner-up at Thailand ICT Awards 2013 and Merit award at Asia-Pacific ICT Awards 2013, Hong Kong.

Kyou was open sourced in 2015.

menome started in 2011 from the idea that there's no anime database in available in Thai. Created under the concept "Social + Anime", menome brings socializing to anime by letting you know whenever your friends watched anime.

The backend is written with PHP, JavaScript (with Node.js backend) and Python. It use MongoDB and Redis as storage.

One notable part of the site is the forum. The forum is reinvented using realtime technology so that topics now feels like a combination of chat and conventional topic. New posts appears in realtime just like chatting, and posts can be seeked backwards like conventional forum.

menome is a product of Sunburn Group consisting of 3 programmers and a handful writers who take part in CoreAnime project and menome site content. I wrote all the code of the site and nearly the entire design.

Twitica Desktop started life in 2010. It was an attempt to clone thaiWitter with identi.ca support. The first version ran on my personal server using an API proxy. It is one of the first Twitter client to support the User Stream feature. Later, an optional extension was created named Twitica Desktop+ that removed the need for API proxy. The extension was then merged to the main application and now Twitica Desktop is completely self-supporting using JavaScript only.

Twitica Desktop use many HTML5 features, such as CSS3 Animations, CSS 3D Transformation, Web Worker, XMLHttpRequest 2, HTML5 File Drag & Drop.

Twitica Desktop is now being used by over 200 users and being rewritten from scratch to be more optimized and customizable. The concept behind this is to bring mobile Twitter client experience to the desktop, and become configurable and programmable.

bd2.in.th was created by @ntklp in 2009. The first version was named Dek-BD2 and the forum ran on my personal server at my home. In 2010, we rebranded the site to bd2.in.th. The site was powered by WordPress and Simple Machines Forum. Later, WordPress was changed to Drupal with custom theme.

Major site redesign took place in summer 2011. The CMS was changed back to WordPress and the forum to Vanilla Forum. The site features a prominent top bar that links to multiple section of the sites:

  • Front page: WordPress news site. User can also login with their Facebook account.
  • Blue Wave: Our most popular section. A 24 hours internet radio. I wrote the custom DJ bot that handles this section when no DJ is online. Any user can request song in bot's database and it will be enqueued. When DJ is active, the request system can be viewed by DJ. The permission system is backed by WordPress'
  • Webboard: Vanilla Forum powered site. Vanilla was chosen for its simplicity and modernness. When a thread has new reply, people who subscribed will receive a site-wide notification which will appear in all section of the site, not just the webboard. Vanilla use WordPress as its one-click sign in provider.
  • Playback: Videos of classes for self-learning. Use a custom built system backed with WordPress authentication

@ntklp asked me to create a site to preorder the year book for the class of 2012 (my senior). I used Django to accomplish this and hosted it on Heroku. The application can be access standalone, or accessed from Facebook Page Tab. It also features responsive design that adapts to desktop, tablets and phones.

Later, my guidance teacher asked me to create a site for students to register their university. I built it as another Django module to the same site. The site was completely success and guidance teachers in my school was happy with its analytical system that reduced manual labour.

In my year (class of 2013) the whole system was rewritten using PHP and MongoDB to be more faster and more complex analytics can be performed using MongoDB's powerful MapReduce system.

Marketing the launch of a highly anticipated game Portal 2, Valve cooperated with indie game developers to create an ARG. (Alternate Reality Game) The ARG starts on 1 April 2011. On that day, various indie games have been updated. Players found that new, out of place stuff have been added to the games that could form cryptic clues that ultimately leads to GLaDOS@Home.

During the ARG, events were recorded in the ValveARG wiki. After the ARG have ended, one of the key player decided to ask the community to create a thank you page. Few days have passed with no news from the team. On April 22nd 2011, a countdown appeared on ValveARG.com. Press guessed it was a countdown to a DLC. After the countdown ended, people start flooding the message board with thank you messages to Valve. Over 1,722 people have shown their gratitude on the message board. The thank you messages were read by the indie developers and Valve.

OvzCP NSC13 2nd prizeTICTA 2011 Runner up

OvzCP is a web-based control panel for OpenVZ, a virtualization system for Linux. OvzCP is aimed to be user friendly by supporting internationalization and visualizations. OvzCP does not reinvent the wheels, but integrate many existing services such as Munin and Varnish.

OvzCP features a mobile site that users can change their Varnish configuration and restart their container. Users also can access to their data using OvzCP API.

OvzCP won the second prize from 13th National Software Competition and runner-up in Thailand ICT Award 2011

My school wanted to show students' exam score as soon as possible as they're already using machines to process the answer cards. This application have evolved from the first version that used MooTools and supported only Internet Explorer (as Internet Explorer is the only browser that can read AJAX data in the correct encoding) to the second version, using jQuery UI and the character encoding is handled server-side.

In 2009, Minprasat Wittaya school's teachers visited my school and asked for the source code of the system. They're using it to show their students' grades online.

In 2013, I rewrote the entire system due to security breach and load problems. The new system use only static JSON files. It also have Facebook share and Twitter post features. I also documented its API for future teachers and students.

Source code is lost

CDPB enable you to upload your package to a server and the server would compile the source to Debian package. It then put the package in a Debian repository. This software passed to the final round of National Software Competition 2009.