mutex , semaphore, monitor, condition variable No ratings yet.

mutex, semaphore,  monitor, condition variable are basic computer science concepts, but can easily get confused. some notes here. mutex:  thread has ownership, released by the one who acquired it.  no execution order ( motivation for semaphore’s schedule constraint) it is usually available in the libc/glibc pthread implementation. source code of pthread_mutex_lock() at:;a=blob;f=nptl/pthread_mutex_lock.c;h=493fe4377821c3e14382eeb32a6c6ef414a9289c;hb=e0043e17dfc52fe1702746543127cb4a87232bcd semaphore:  basically manipulate the • Read More »

Linux device driver: A fix for insmod invalid module format No ratings yet.

How to fix “insmod invalid module format” for a out-of-tree linux device driver or kernel module? If your kernel source tree matched your run time kernel, it turns out that it can be easily fixed by on debian 8: cp /usr/src/linux-headers-3.16.0-4-amd64/Module.symvers /usr/src/linux then make More step by step details on debian 8: (1) setup a • Read More »

C++ function overloading, name mangling, name hiding No ratings yet.

C++ function overloading, name mangling, name hiding are somehow related to the same issue: overload resolution at compile time ( note override is run-time resolution). What is C++ Function overloading: two or more functions have same name and but have different parameters/signature. The way compiler distinguishes those different functions is adding additional information about arguments to function • Read More »

ipv6 testbed at home No ratings yet.

It is quite easy to setup a ipv6 testbed at home now. (1) setup linux ipv6 router apt-get install radvd  # on a vm or real box debian and copy the sample config to /etc/radvd.conf /etc/init.d/radvd restart (2) linux workstation autconfig The linux workstation should be able to autoconfig an ipv6 address ( without ” iface br0 • Read More »

maven vs make No ratings yet.

maven basic On debian 8: apt-get install mvn  # this will install maven 3.0 mvn archetype:generate -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false it basically  mkdir -p src/main/java/  ( put your java file here), create an pom.xml 2. mvn compile #install clean Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, • Read More »

Tomcat 8, hibernate 4 and Eclipse Mars (4.5.1) No ratings yet.

On Debian 8 (1) download and install JDK 8 from oracle (2) download and install Eclipse IDE for Jave EE (3) apt-get install  tomcat8 tomcat8-admin tomcat8-examples tomcat8-user mysql-server (4) git clone it seems only hibernate 3’s format are accepted. (5) mvn install, it should generate .war file (6) mysql to create db using info from • Read More »