Home / Development


Latest project releases/updates, with some useful programming rants/tutorials/code snippets here and there.
Check out Google Play, GitHub, SourceForge and Google Code for some of my works.
Video demos are usually uploaded to my YouTube channel.
Project-related photos and screenshots can be found on Flickr.
For my complete list of current/past projects, see the Projects page.

15,077 total views, 11 views today

Beats 1.7.5b and Android Fragmentation

Android: The Story of A Fragmented Platform (src) So even though I wasn’t planning on it, I just published yet another minor update to Beats 1.x as Beats 1.7.5b. Changelog? Added Amazon Fire TV support (Beats-style only), add more speed multipliers, removed AdMob, and fixed a few crashes. Interesting, not-so-obvious question: What do all these changes have in common? Answer: They are all related to the problem of Android fragmentation. Actually, so was most/all of the changes in Beats 1.7.4b and 1.7.3b. So here’s a rant about why. How fragmentation lead to Beats 1.7.5b Lets look at the root causes …

Read More »

Beats 1.7.3b + Beats2 update

Beats 1.7.3b While migrating a bunch of old projects to GitHub, I decided to check if the old Beats 1.x app still compiled with the latest SDK and work. Unsurprisingly, it didn’t, with tons of new warnings and errors. While cleaning up the errors, I decided to revisit some of the annoying bugs that people have been emailing, and the result is Beats 1.7.3b. There’s no new features in this release, but there’s a few frequently asked bug-fixes/improvements. The game also now supports hardware acceleration (new setting in the Display section), so it should run at a smooth 50+fps on …

Read More »

Beats2 Update

Beats2 Test Demo – Multiplatform Demo It’s been a while since the last website update. Beats 1.x has hit an amazing 2 million users/downloads with an average of 9-10k users daily, so I figured I might post something. I’ve been busy with a lot of non-Beats related stuff (vacation to Japan, working at my new job, moving into a new place, playing MMORPGs, catching up on anime, etc.) so there hasn’t been much solid progress, but here’s what I have… What is Beats2? Simply put, Beats2 is the spiritual successor to Beats 1.x (aka “Beats, Advanced Rhythm Game”). Tentatively, it’s …

Read More »

Beats 1.7.1b FINAL

Been super busy with school (just graduated earlier this year) and work (just started right after that), but I’ve finally got a break to come back and revisit Beats. Reinstalled eclipse and the Android SDK, updated a few libraries, fixed a few bugs here and there, and tested it on my Samsung Captivate (running CyanogenMod 10, nightly) and Galaxy Tab 10.1 (running CyanogenMod 9). No new features since I’m working on Beats2 now, but feel free to send me patches if you want! Here’s the changelog (note that r16 is based on the open-source code): Beats 1.7.1b FINAL – Changeset …

Read More »

Dancing Monkeys: Accelerated

For my CIS 565 ”GPU Programming and Architecture” (University of Pennsylvania, Spring 2012) final project, I had decided to try working an a project that would not only demonstrate a practical application of parallel computing, but also become a useful side-research for my main pet project, Beats. The project I had in mind was to apply GPU acceleration and parallel processing techniques to improve the time spent on the BPM calculation algorithm used in the simfile-pattern-generating MATLAB program, Dancing Monkeys, compatible with DDR simulators such as StepMania and, of course, Beats. Improving the BPM calculation step was of great benefit …

Read More »

Beats2 Prototypes

It’s done! For those who haven’t read the last post, “Beats2 Prototypes” is pretty much a series of demos/prototypes designed for the purpose of quantitatively comparing different user interfaces for large touch-screen devices – in this case, 7″ or larger Android tablets (you can still run it on your Android phone, but that’s not the target of the study). (Direct download) It’s also my senior design research project (i.e. not a polished final product) and an important precursor to Beats2, which will target BOTH small touch-screens (i.e. Android phones, iPhones, etc.) AND large touch-screens (i.e. Android tablets, iPads, Windows 8 …

Read More »

Linux Everywhere

When I was a teaching assistant for CIS 191 ”Linux and Unix” (University of Pennsylvania, Spring 2012), I was asked to give a guest lecture, given my involvement and contributions to the iPodLinux project. And so I decided to give a special topic lecture titled, “Linux Everywhere: A look at Linux outside the world of desktops”. Here it is: Presentation: PDF (PPTX) 3,780 total views, 1 views today

Read More »

Git for Windows with TortoiseGit and GitHub

For my Dancing Monkeys Accelerated project, we were required to use Git for version control and host code on GitHub. As a person who has always preferred SVN (for its linear/incremental nature), and have only had experience with Google Code and SourceForge, setting up a new GitHub repo was a new experience. And so, for future reference, I document the process here. In this tutorial, we install msysgit and TortoiseGit and host code on GitHub. 5,591 total views, 1 views today

Read More »

Beats2 New Years Update

A day late but oh well. Happy New Years from Keripo! Since the last update quite a bit has happened but here’s the rough plan for 2012. There will be two projects: Beats2: Prototypes and Beats2. In a nutshell, I decided to make Beats2 development a part of my senior design project for university (think “undergraduate thesis”), the result of which will be a paper entitled “Designing Rhythm Game Interfaces for Touchscreen Devices”. Prototypes will be a demo app that will be used for conducting a study comparing various rhythm game interfaces (i.e. think DDR vs Beatmania IIDX vs DJMAX …

Read More »


For my ESE 519 ”Real-time Embedded Systems” (University of Pennsylvania, Fall 2011) final project, I worked in a three-person team with Monica Lui and Faqin Zhong on a hardware project dubbed “BomberNome”. The original project requirement was to make use of the ESE lab’s stash of monome boards in a creative and fun way. It turned out, however, there weren’t enough actual monome boards lying around (i.e. boards with each grid unit also connected to a switch and LED) but there were plenty of LED boards, so we instead decided to just hook up a bunch of these LED boards …

Read More »