I spent a lot of time in my undergrad years in hackathons and building open source software. Here’s a list of random projects from that period of my life.
Carnegie Mellon University
I’ve recently wrote a program for solving sentence-based hangman game automatically. Here’s a post explaining my approach using the British National Corpus, srilm language model and hidden Markov model.
The Hangman Game
Last week, my friend Zero Cho was asked to write a program that solves the game of hangman automatically. The rules are simple: the questions are short sentences or phrases with their characters concealed, i.e. replaced with an underscore, while spaces and punctuations are revealed. The solving process is an interactive process in which the solver program will guess a letter, and the question system will reveal its locations. If you guessed 3 letters that are not in the sentence, you fail the question.
For example, the initial hint for the answer
it's a sunny day is
__'_ _ _____ ___,
if a solver program guesses
y, the system will respond with
__'_ _ ____y __y.
A lot of times we use
git commit --amend to add the files that we have forgotten to the last
commit (usually HEAD), or simply to fix typos in its commit message. However, you can’t remove, or un-add,
committed files from the latest commit with
git commit --amend. Here’s how:
This is post continues my previous post on Kernel Debugging with gdb, and explain how to do the same for debugging kernel modules.
This post explains how to add, or override, system calls by loading custom kernel modules using system call hooking techniques. This is sometimes called system call hijacking, and is used by viruses and rootkits.
This post is my study note from the past few days. It includes 1) Configuring and installing Debian on the QEMU virtual machine. 2) Compiling a Linux kernel that supports KGDB and initrd. 3) Using gdb and KGDB for real-time kernel debugging.
Today (Aug 14) we are announcing the release of 0xBench, an open source Android benchmarking app developed by 0xlab.
0xBench comes with several built-in benchmarks including Linpack, Scimark2, LibMicro, …, etc. 0xBench can also be extended. Developers can add their own benchmarks (either in native C or Java) to suit their needs.
Eclipse is slow, especially on Macs. Plus, I’ve never really like IDEs very much. I’ve always prefer to write my Android projects in the terminal with Vim. Here are some of the basics stuff about developing Android using CLI.