Play MP3 with libmpg123 and libao

24 May 2012

Category: programming. Tags: mp3, audio, libmpg123, libao.

I’m rewriting some of my python applications using C. One of them plays online mp3 audio. I used gstreamer to play mp3 and I’m considering switching to a more lightweight solution. Finally, I choose libmpg123 and libao. Libmpg123 is used to decode mp3 and libao is then used to make the sound.


Poppler vs MuPDF

15 Apr 2012

Category: programming. Tags: pdf, poppler, mupdf.

I’m looking for a lightweight and fast PDF viewer recently. I tried some Poppler based PDF viewers, but they are all very slow when opening large PDF documents. Then I found MuPDF. MuPDF is a lightweight PDF library and viewer. It amazed me that it’s extremly fast. I becomes interseted in finding out how faster MuPDF actually is than Poppler.


PDF Tools: Merging, Extracting and Cropping

13 Apr 2012

Category: utility. Tags: pdf, ghostscript, pdfcrop.

PDF manipulations such as merging, extracting and croping are the most ordinary things in eveyday life. But people feel difficult to do such jobs because of unawareness of some exordinary PDF tools. I’m gonna to introduce you a few PDF tools.


Repeat Commands on a Dozen VMs with a Single Loop

04 Mar 2012

Category: utility. Tags: ssh.

When I was playing with a dozen of identical VirtualMachines, I always need to repeat some commands on each of them. This is painful: open VNC (or SSH) of the VM, type some long and boring commands and repeat the same thing on another VM. Then I figure out a way to avoid repeat. Everybody hates REPEAT, right?


KVM Network Bridging

27 Feb 2012

Category: setup. Tags: kvm, network.

As many other hypervisors, KVM provide several types of networking. KVM use NAT in default, in which case the guest can reach the outside world (the host and all place the host can reach) but the outside world cannot reach the guest. That means, if you don’t need to access the guest through network (SSH for example), NAT is good enough for you. However, if you want more, let me introduce you the bridging way.