Archive of articles classified as' "memo"

Back home

open source project management tools



  1. Taiga
  2. OpenProject
  3. LibrePlan
  4. ProjectLibre
  5. Redmine
  6. Tuleap
  7. Trello

p.s.) sandstorm apps –

No Comments

About Video Streaming and Quality Test



related research papers


No Comments

Efficient String Manipulation in WebKit


I found a useful Wiki for WebKit that can manipulate String type more efficiently. Followed by this Wiki, there were two WebKit bugs that reflected this tip: and

It would perhaps improve WebKit performance, though what I didn’t clearly understand is why “parsing null string is more efficient than parsing empty string”.

No Comments

WebRTC integration with WebAudio


As part of the MediaStream Integration, the WebAudio API recently landed createMediaElementSource(). It allows you to hook up an HTML5 <audio>  element as an input source to the WebAudio API, in that you can visualise HTML5 audio, real-time sound mutation, filtering, etc where the WebAudio API normally works by loading a audio file via XHR or file input.

There are a number of examples at MediaStream Integration, among which the below code [1] appeared to be the most simplistic:


As mentioned in [1], once we hook up <audio>  element together with the WebAudio API, you can wire up navigator.webkitGetUserMedia() to to pipe audio input to an <audio>  tag, which then you could visualise them using the WebAudio APIs.


No Comments

Building WebKit Gtk+ over Ubuntu 10.04


As instructed at, it depends on unreleased versions of glib, and some other packages which I will describe how to install them in this post.

Note: This post is tested under Ubuntu 10.04 LTS, 32-bit version. You may experience different errors used with other versions of Ubuntu or Distros.

Firstly, you might want to try this command to build WebKit GTK port:

Then, it is likely you will meet a bunch of config errors, for example, shown here – it basically complains there isn’t a suitable version of libgail, in which you cannot install with aptitude. You would have to get a fresh copy of gtk+ as shown below:

Note: The official tarball can be accessed at

Okay, so far so good. However, if you try continuing to build, you may encounter another config error as shown here – it complains that you don’t have the right versions of glib, atk, pango, and gdk-pixbuf packages (or installed versions are not met). Again, these are the packages that are not available from aptitude.

First, download Glib and install it:

In doing so, it may complain about libtiff dependency if you haven’t installed it previously. In that case, you could simply install it:

Second, download atk, pango, and gdk-pixbuf, and install them:

Likewise, it may complain about libtiff – this can be installed using aptitude:

Import Note: If you have installed other versions of any of the above packages in your system previously, it is wise to run ldconfig before continuing:

In order to build GTK port, you would need to install libgeoclue as shown below:

Finally, you would need to download and install gstreamer, and gst-plugins-base from here. I have downloaded ‘gstreamer-0.10.35.tar.gz‘ and ‘gst-plugins-base-0.10.35.tar.gz‘ to build WebKit.

Import Note: WebKit Gtk build script tries to find these installation under /usr/ by default, so you may want to give proper prefix options when configuring these sources, for  example:

You would also need to install gst-plugins-good, but this time you should configure under /usr/local as WebKit GTK tries finding it there – don’t ask me why though.

You can now go on to the WebKit directory and run the build script:

,meaning GTK port (debug build) with web-audio enabled, and fullscreen-api, but w/o WebKit2 build.

No Comments

WebKit, HTML5 media, and GStreamer



1 Comment

remote pair programming using SSH, screen, and Vim


There is a convenient way to perform pair programming remotely using SSH, screen, and Vim. First of all, you need to set .screenrc file something like as shown below:

You may need to chmod if necessary:

Also, screen has to be the right mod as shown below:

Apart from screen settings, you would need to know some screen command:

  • screen -S sample: start a screen session at a server
  • screen -x <username>/sample: attach to an existing session
  • ctrl+a, F: fit screen to my terminal size
  • aclchg <userid> -w "#": make <userid> read only (he will still be able to watch you)


Useful Screen Command

Key Action Notes
Ctrl+a c new window
Ctrl+a n next window I bind F12 to this
Ctrl+a p previous window I bind F11 to this
Ctrl+a “ select window from list I have window list in the status line
Ctrl+a Ctrl+a previous window viewed
Ctrl+a S split terminal horizontally into regions Ctrl+a c to create new window there
Ctrl+a | split terminal vertically into regions Requires debian/ubuntu patched screen 4.0
Ctrl+a :resize resize region
Ctrl+a :fit fit screen size to new terminal size Ctrl+a F is the same. Do after resizing xterm
Ctrl+a :remove remove region Ctrl+a X is the same
Ctrl+a tab Move to next region
Ctrl+a d detach screen from terminal Start screen with -r option to reattach
Ctrl+a A set window title
Ctrl+a x lock session Enter user password to unlock
Ctrl+a [ enter scrollback/copy mode Enter to start and end copy region. Ctrl+a ] to leave this mode
Ctrl+a ] paste buffer Supports pasting between windows
Ctrl+a > write paste buffer to file useful for copying between screens
Ctrl+a < read paste buffer from file useful for pasting between screens
Ctrl+a ? show key bindings/command names Note unbound commands only in man page
Ctrl+a : goto screen command prompt up shows last command entered


No Comments

visualization of quick sort


We have studied the quick sort algorithm in January: When we gave an example of the algorithm, we tried visualizing the sorting algorithm. Today, I have came across an excellent video in YouTube visualizing the algorithm very well – a robot is sorting a number of colored balls.

Interestingly, here is an audio-video visualization of a number of different sorting algorithm. It has visualized of what different sorting algorithms sound like: a brilliant idea.


For your reference, this is a tutorial about the quick sort algorithm.

No Comments



Graphviz is an automatic visualization tool for a structured information in a way of diagrams, charts, and nodes. It is used widely for a paper publication in software engineering, networks, web design, and many other visual interfaces in other domains.

I’d like to copy and paste some of the useful examples along with my own sample graph. Of course, the references will be adequately cited where necessary! Note: it uses DOT language to represent the diagrams.

Let’s start with a typical “Hello World” example.

To generate a PNG file, one could execute the following command:

You could generate other formats (gif, jpg, ps, eps, svg) as well: see –

Now, we could demonstrate color in the graph.

This sample yields:

Now, we could add labels.

which generates

You can change the node shape:

which yields:

Here is my sample diagram:


There are lots of helpful tutorials and information on the web – I have linked some of them as below.



Control Theory for Networks


Recent Advances in the Application of Control Theory in Network and Service Management

No Comments

course material about P2P applications


Today, a French researcher released his course material on P2P applicationss via TCCC mailing list: here.

No Comments

rate control and h.264


a simple explanation on this topic – can be found at here.

No Comments

comprehensive R archive network


The comprehensive R archive network

No Comments

a low-level cryptographic library


Nettle is a cryptographic library that is designed to fit easily in more or less any context: In crypto toolkits for object-oriented languages (C++, Python, Pike, …), in applications like LSH or GNUPG, or even in kernel space.

For the details – Nettle

No Comments

Looping Playback with GStreamer


There was a series of postings on GStreamer mailing list describing how to loop back a video source. Among them, there was a useful answer to get it working.

(The below message is cut and paste from the above mailing thread)

It is particularly useful when conducting an experiment with the same video source.

No Comments