Kernel, Virus and Programming

Add tabIndex to all tag incrementally

in VI, there is a command to add tabIndex to all tag incrementally :let i=200 | g/


2014/08/23 0

libelf.h has bug, it includes a missing header file

I cross compile the libel 0.8.13 on my ubuntu 12.04lts. I used the below command to configure it. The compile process is success and installed it correct. But inside the include/libelf/sys_elf.h, it includes a missing header file (elf.h). Just comment it out, and it will works. read count : 336


2014/08/23 0

Mac has no mkfs.vfat

I have to package my kernel into a fat partition and load it up using grub, but mac doesn’t has a mkfs.vfat and “mount loopback” command. So I am creating a small programing using https://github.com/waldheinz/fat32-lib/ to manipulate the fat image by myself. So far these two small program can read & write a fat image: Read…
Read more


2014/08/17 0

Adding file to newlib’s sys folder and make it compile

Adding file to newlib’s sys folder and make it compile, you need to modify the Makefile.in, see below read count : 245


2014/08/16 0

newlib sys/*.h will not be copied to output directory

All the .h file in the sys directory will be included when compiling the files in your sys/XXX. They (sys/*.h) will not be copied to the output directoy, that mean they are just used for compile only. read count : 315


2014/08/09 1

A little bit better – Showing the MBR

A little bit better – Showing the MBR Here is the java code to read MBR out: read count : 291


2014/07/28 0

We should mix 4K and 4M Page

I was fixing the PSE and PAE page table display for GKD, I found out Linux using 4M page to map large address space and it uses 4K page to map broken space. So advance OS should mix use of 4K and 4M page.   Now GKD supports PSE=1 (4M page) read count : 605


2014/07/27 0

I think i am under dns attack

I think i am under dns attack, in my /var/log/message i keep seeing these. Someone is using over 2000 ip to lookup my dns server. read count : 392


2014/07/12 1

GKD dependency tree graph

GKD dependency tree graph read count : 252


2014/07/11 0

New way to do VM migration

To migrate VMs to different compute node is easy, simply hold your ctrl key and select VMs, drag & drop them to a new compute server. But now it support more feature, when you release the mouse, it will popup a windows to select “migrate now” or “thru titan script”. If you select titan script,…
Read more


2014/07/11 0

Openstack 4th birthday party in cyberport

Openstack 4th party, i got a counter to demo Titan, thanks Cyberport. Titan language will be demo after September. People seems more interested in Titan management tool rather than the Titan portal.   read count : 446


2014/07/04 0

tightvnc java is very slow on Retina

Take a look line 170 from https://code.google.com/p/tightvncpanel/source/browse/trunk/src/main/java/com/glavsoft/viewer/swing/Surface.java This ((Graphics2D) g).setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); make g.drawImage(offscreenImage,0,0,null); runs very slow on Mac Retina. Solve: set the value to “VALUE_RENDER_SPEED” instead of  VALUE_RENDER_QUALITY   read count : 328


2014/07/01 0

a good free usenet server

a good free usenet server news.aioe.org read count : 261


2014/06/30 0

Optimize java startup speed

I spent lot of time to optimize the startup speed of my Java app from 10 seconds down to 6 seconds in my 2012 Mac air. I changed to MacBook 13″, the startup time become <=3. That proves the hard disk speed is the key to optimize the startup time. I am facing a new…
Read more


2014/06/29 0

How to use PFSBuilder

How to use PFSBuilder This tutorial work in windows/linux/mac Step 1) Download the jar https://www.dropbox.com/s/do0ygc4z9dbxlwx/PFSBuilder-20140619.jar Step 2) make sure you have java in your PC Compress directory into PFS image Step 1) Make sure PFSBuilder.jar is in your current directory Step 2) Create a folder call “input” and put some files and directories in there Step…
Read more


2014/06/28 0

Connect Peter-file-system to linux or mac

After spent 3 days to play the FUSE and macFUSE, i finally connected Peter-file-system (https://code.google.com/p/pfsbuilder) to my mac/linux machine. It is quite simple and straightforward, I write a FUSE program that create a JVM and load my PFS stub (writhed in Java), every FUSE function calls will route to the stub and manipulates the PFS…
Read more


2014/06/23 0

code crash in multithread mode of FUSE

read count : 343


2014/06/21 1

How to trace IIS error 500

The best way to trace IIS error 500 is to enable all log detail on screen, edit your web.config to read count : 245


2014/06/19 0

Latest Titan Portal progress

Need 2 more months will finish everything read count : 276


2014/06/10 0

How titan connect to kvm’s vnc through titan server via java object stream

I nearly don’t understand the code I wrote 6 months ago about the vnc connection. It is a little complex, the basic idea is : Titan server create a proxy server to the kvm’s vnc. Titan server is using java object stream to communicate with client, it wrap all the bytes from the object stream…
Read more


2014/06/10 0

Get IP of guest vm in virtualbox

VBoxManage guestproperty get “vmname” “/VirtualBox/GuestInfo/Net/0/V4/IP” | awk ‘{ print $2 }’ read count : 311


2014/06/09 0

Titan portal

Developing the titan portal, which is for hosting company’s customers. If you want to build a hosting company using openstack, you definitely need a portal for your customer to provide operations. read count : 326


2014/06/03 0

2GB ram has higher temperature than 4GB ram

Just buy one more 2nd hand server. Everything are the same including the OS, except one using 8x2GB ram and the other using 4x4GB ram. I found out 4GB ram has lower temperature than 2GB ram. I guess is because in 4GB-ram-block server, it has more space between each ram (because i only used 4…
Read more


2014/06/01 0

My new server

Just bought a 2nd hand HP server (8core + 16GB ram), cost me $2630 HKD. One 1TB 2.5″ hard disk cost me $450. Total $3080. It reboot only take 20 seconds, dell needs 5 mins (CRAZY!!!)   read count : 637


2014/05/20 0

Analyst android ELF dependency-graph by elf-dependency-walker

Someone asked me in email about using elf-dependency-walker to analyst library or executable in linux. I found out android is using ELF format for its libraries or executables too. So the rest is simple. Please download the android emulator, within the directory there is the system image, which contain the file system. You can see in…
Read more


2014/05/13 0

solved : compile error in ffmpeg “error: invalid combination of opcode and operands”‏

I am using ubuntu 12.04 64 bits and trying compile ffmpeg and got this error: libavfilter/x86/vf_pullup.asm:59: error: invalid combination of opcode and operands libavfilter/x86/vf_pullup.asm:138: error: invalid combination of opcode and operands libavfilter/x86/vf_pullup.asm:175: error: invalid combination of opcode and operands To solve this, add “–disable-mmx” to your ./configure read count : 899


2014/05/13 1

sox and ffmpeg (convert hls into live hls) usage

These are the basic usage of SOX This script will convert ffmpeg HLS into “live streaming HLS” The above script has to run with ffmpeg: /root/download/ffmpeg-2.1.4/ffmpeg -f alsa -ac 2 -i hw:0,0 -strict experimental -acodec libmp3lame -map 0 -f segment -segment_list out.m3u8 -segment_format libmp3lame -segment_time 0.5 -segment_list_flags +live ‘a%05d.mp3’ read count : 677


2014/05/08 0

newlib’s reentrant system calls will map to non-reentrant by default

newlib’s reentrant system calls will map to non-reentrant by default. The reentrant version of open() can be found in newlib-2.1.0/newlib/libc/reent/openr.c As you can see, it will call _open which is defined in newlib-2.1.0/newlib/libgloss/libnosys/open.c . So if you don’t write your reentrant functions, it will jump to non-reentrant by default. For OS developer want to implement…
Read more


2014/05/04 0

filter port in httpd.conf

  read count : 243


2014/05/03 0

gcc, binutils and newlib can all be compiled at once.

gcc, binutils and newlib can all be compiled at once. This article http://www.embecosm.com/appnotes/ean9/ean9-howto-newlib-1.0.pdf said gcc, binutils and newlib are from the same source tree. Using the following script can linkup all files into a single directory and compile all of them at once. Just put the directories (binutils-2.24 , gcc-4.9.0 , newlib-2.1.0) and the above script in the…
Read more


2014/05/03 1

Miglayout has bug? JPanel doens’t grow

Miglayout has bug? JPanel doens’t grow, but for JButton or JTextField, they can. read count : 379


2014/04/26 1

Eclipse CDT too many semantic errors

If you have too many “semantic error” in eclipse CDT, such like this   You can switch it off in project properties but unblock “Syntax and Semantic Errors” read count : 392


2014/04/22 0

Found a bug in ndisasm

Type this command, ndisasm will hang (I guess it eat up all 4GB address space, disassemble offset starts at 0xfffffff0, which is very high address). My version is “NDISASM version 2.11.02 compiled on Apr 9 2014”, running on mac mavericks. temp file : temp.bin The bug is filed here https://sourceforge.net/p/nasm/bugs/557/ read count : 347


2014/04/21 1

gdb protocol, “g” command

This is the tcpflow dump for the gdb protocol “g” command, it contains all register values. Let’s parse it: After the trace: target.c::debug_print_register gdbarch.c::gdbarch_register_name i386-tdep.c::i386_register_names The register packet can be decode by: read count : 241


2014/04/19 0

GKD progress 2014/04/14

Still working on the stub. Refactor the whole project and adding one more layer (add debugger stub to support different emulators) to the architecture, all are very hard and time consuming, even the whole project is developed by me. But this experience make be serious to the project-initial-design. Architecture is *important* !!! read count :…
Read more


2014/04/14 0

dot in mac and linux produce different kind of ortho edge

dot in mac and linux produce different kind of ortho edge. I think the dot version affected it. Here is dot version in linux: Here is dot version in mac: read count : 564


2014/04/06 1

Titan Language Rhapsody

Titan Language Rhapsody begin tran; var myCloud as Cloud var vm=myCloud.createVM(cpu=1, mem=2GB, public_ip=dhcp); vm.wait(VM.RUNNING); var trigger1 as Trigger; trigger1.addSensor(‘cpu>80%, duration>10s’); trigger1.addSensor(‘memory>80%, duration>10s’); trigger1.addAction(new Action(ACTION.SCALE_UP, 1)); vm.addTrigger(trigger1; commit; read count : 257


2014/04/06 0

VM log dialog show correct process list for windows VM

VM log dialog show correct process list for windows VM. read count : 369


2014/03/28 0

When ESXi expire, you will see this dialog

When ESXi expire, you will see this dialog, so you know what features need money read count : 329


2014/03/26 0

a java example to record from microphone and save it to wav file and playback

This is a very simple java program to record from microphone and save it to wav file and playback read count : 2047


2014/03/23 1