Replicate Gem Installation

I use Octopress to manage my blogs, which rely on correct ruby gem version to work. Although Octopress use Bundler to manage the gem dependencies, sometimes a simple bundle install does not work out of box. Since everything works fine on one of my machines, I decided to replicate the exact ruby/gem setup of that machine.

more ...

Print uint64_t Properly In C

stdint.h provides various machine-independent integer types that are very handy to use, especially the uint64_t family. You would assume it's something like long long unsigned int and tempted to use %llu in printf, which, however, will be reported as a warning by any decent compiler.

warning: format '%llu' expects argument of type 'long long unsigned int', but argument 4 has type 'uint64_t' [-Wformat]
more ...

Use rsync and cron to do regular backup (Part I)

Recently I do most of my work on a remote data center through a slow network connection (<100KB/sec). I usually backup my project source tree as follows. I first do make clean and also delete any unnecessary obj files to shrink the total file size, then I compress the whole source tree as a tar ball and then I use scp locally to fetch the backup tar ball to my local machine. The procedure is quite boring since I need to do this every day before I go home, otherwise the whole bandwidth will be occupied for near an hour during which I can almost do nothing.

Situation gets better when I find rsync and cron. Here is how I do automatic regular (daily) backup with them.

more ...

Line Buffered Cat

I'd like to watch the output of a UART device in Linux, and I only want to see the content when there are a whole line. So I prefer some kind of line-buffered cat such as:

more ...

ssh/scp without password

Suppose you have two machines: A and B. A is your work machine, you do most of your work on it. But B is a little special (e.g., connected to some specific hardware) that you need to ssh on it or copy some file from A to B from time to time. Here is the way that you can get rid of entering passwords every time you do ssh/scp.

more ...