TIL There is a tool named diffstat

Right now I am working on my thesis which is “Specializing Operating System Kernels using a Scripting Language”. A part of my work is porting the LuaJIT compiler into the FreeBSD x86 kernel. When I was writing my thesis, I was asked to show modification information in the thesis. They are number of lines added, numbers of lines removed, number of lines changed. I know that diff exists. However, I need a summary of information produced by it.
Read more

Ssh to a computer inside an internal network

There are times that I want to access to my computer in my laboratory remotely. However, it is inside the lab's internal network. Luckily, There is a gateway that I make a ssh connection to. The simplified scenario is shown below.
Read more

Remap capslock to ctrl on FreeBSD

Assuming that you are using us.iso.kbd keymap, you can remap CAPSLOCK to CTRL by this simple following steps.
Read more

Seeing all pages available in section 9 on FreeBSD

When I am working with a kernel module in FreeBSD, there are times that I want to see all functions available in man 9. I know that apropos is out there but I sometimes don't know the keyword. Because of this, I decided to write a simple zsh script to list all available pages in a section, not only in section 9.
Read more

Verify OpenBSD install media from OS X

New OpenBSD 5.6 has been released. It is time to give it a try.
Read more

Digging around FreeBSD socket API tcp_send_path

When we want to send data across network, it involves either write()/writev() send()/sendto()/sendmsg() and sockets. To use write(), writev() and send(), the socket must be connected. On the other hand sendto() and sendmsg() can be used in both connected and unconnected connection. We normally can find the implementation of system calls in the kernel by adding ‘sys_’ prefix to the name of the system call except send(). In FreeBSD libc, send() is just a wrapper of sendto() with some default parameters.
Read more

Thought on learning kanji with Remembering The Kanji

First of all, I would like to apologize that I haven't updated this blog for a very long time. After I graduated in March, I took a little break and started a full-time job on April. I worked on a lot of interesting projects. I cannot share what I worked on because I feel like it is a company secret. In May, I got a notification of acceptance from the
Read more

Building Facebook home with Quartz Composer

David O Brien has produced a tutorial on using Quartz Composer to emulate Facebook Home. It is worth watching. Quartz Composer, to me, is another hidden gem that Apple provides for developers.

Offscreening and multisampling with OpenGL

It has been for a while since my last post. I was enjoying with my senior project, “Accelerating Map Rendering with GPU”. In this project, my friend and I modified Mapnik, an opensource map rendering, to utilize Nvidia's Path Rendering. Path Rendering is an OpenGL extension provided by Nvidia for vector graphic rendering. Nvidia claims that its extensions aims to reduce overhead from traditional APIs when using them to draw vector graphics.
Read more

My first kernel extension for Logitech presenter device

I do a lot of presentation particularly those class projects. To make my presentation looks more professional, I decide to buy Logitech Professional Presenter R800. It is very nice. I recommend you to have one if you have to give a lot of presentation. However, what bothers me is that not all buttons work with Apple Keynote, particularly Play button and Blank button. Well, the device is designed for Microsoft PowerPoint on Windows.
Read more