Many programmers make mistakes at times by writing “=” instead of “==” in equality test. A good habit of programming is to write the constant first. For example, if we want to test if the length of a string is equal to 0. Instead of writing
strlen(x) == 0
We can
write 0 == [...]
Finally, it’s done!
Work full-time and study part-time can be touch sometimes. But after 2 years of hard working, I’ve made it through.
My thesis is about selective decoding. As the name suggests, decoding video selectively. Zoom interface has been available for photos, web pages and maps, but few players support zoomable video. [...]
0. A Stupid Mistake
I wrote shell script from time to time, but never learned it seriously. So I wrote a script contains lines as below,
#!/bin/bash
PATH=”/”
ls -l $PATH
And then I got this error,
./test.sh: line 3: ls: command not found
I struggled a little bit and suddenly realized long time [...]
grep is a great tool to search strings. I often use grep to check if a specific process is running or not. For example, we want to check if sshd is running, the command would be,
ps -ax | grep sshd
In my computer, this gives the following output,
755 ? Ss 0:00 [...]
I was setting up a distributed monitoring system recently. At local machine, I has a program named “proga”, trying to access a remote server named “remote” at port 5667. However, the port is blocked by the enterprise firewall.
This is easy to solve by SSH tunneling.
ssh -f roman10@remote -L 5668:remote:5667 –N
This [...]
I’ve been working on a project that enables caching on mobile devices. Two different approaches are studied, explored and implemented.
The first approach is to implement a transparent caching system. The caching system will behave like a transparent proxy, and the traffic for user specified apps will be intercepted and examined. If the content [...]
This was a ancient Chinese story regarding Zeng guofan (曾国藩). Zeng is a military general and Confucian scholar in Qing Dynasty. He has a large group of counselors working for him. But one thing bothers him is that a lot of people leaves after working for a short period. One day, he asked one of [...]
There’re times developers want to deploy a NDK library in a separate APK. A typical use case is your library is big and it has different versions for different CPUs/phones. A naive strategy is to put all those libraries in a single huge apk and get lots of user complains. A better approach is [...]
40% Discount on My Book — Android NDK Cookbook
Android NDK Cookbook ebook 40% discount with promotion code MREANC40 at Packt Publishing The promotion code is valid until 15th June.Categories
- Android Apps (18)
- Android Audio Editor (1)
- TS 2 (3)
- Video Converter Android (8)
- Video2Gif (1)
- Android Tutorial (27)
- Android Dev Tools (1)
- API illustrated (8)
- Multimedia API (3)
- ffmpeg on Android (4)
- NDK (6)
- UI (6)
- Animation (2)
- Code Snippet (2)
- Coding Beyond Technique (18)
- a word, a world (4)
- Bug Rectified (4)
- Programming Habit (1)
- Software as a Career (1)
- Software as User Experience (1)
- Compilers and Related (2)
- ELF (2)
- Computer Languages (31)
- C/C++ (13)
- Java (9)
- JavaScript (2)
- PHP (1)
- Python (8)
- Data Structure & Algorithms (29)
- Bits (1)
- Data Structure (5)
- Integers (10)
- BigInteger (1)
- Prime (4)
- Search (3)
- Sorting (5)
- Strings (5)
- Database (1)
- SQLite (1)
- Digital Signal Processing (33)
- Distributed Systems (17)
- Apache Cassandra (6)
- Apache Hadoop (8)
- Apache Avro (3)
- Apache Nutch (3)
- Apache Solr (1)
- Linux Study Notes (40)
- crontab (1)
- Linux Kernel Programming (8)
- Linux Programming (12)
- IPC (2)
- Linux Network Programming (5)
- Linux Signals (2)
- Linux Shell Scripting (1)
- ssh (3)
- Machinery (30)
- misc (1)
- My Ideas (1)
- My Project (3)
- Mobile Caching (1)
- Selective Decoding (2)
- My Publication (1)
- My Readings (1)
- Networking (15)
- Program for Performance (8)
- Uncategorized (1)
- Virtual Machine (2)
- Web Dev (8)
- web components (3)
- Android Apps (18)
Recent Comments
Archives
- May 2013 (2)
- April 2013 (1)
- March 2013 (4)
- December 2012 (2)
- November 2012 (6)
- October 2012 (6)
- September 2012 (3)
- August 2012 (13)
- July 2012 (15)
- June 2012 (3)
- May 2012 (8)
- April 2012 (4)
- March 2012 (13)
- February 2012 (19)
- January 2012 (9)
- December 2011 (11)
- November 2011 (12)
- October 2011 (4)
- September 2011 (12)
- August 2011 (16)
- July 2011 (15)
- June 2011 (6)
- May 2011 (10)
- April 2011 (13)
- March 2011 (20)
- February 2011 (4)
- November 2010 (2)
- May 2010 (1)
- April 2010 (1)
- February 2010 (1)
