Programming

Adding ceilf() to libm in uClibc for OpenWrt

OpenWrt is an embedded linux for mipsel architecture which could be flashed on recent network devices, e.g., ADSL routers and home appliances. The most popular device is WRT54 series by LinkSys and the another series from Asus called WL-500g. This linux distribution is compiled by cross compiler set called toolchain. Actually, it is a fork of that with uClibc. By default, the pre-built SDK for OpenWrt comes with a small set of uClibc to maximize free space especially lots of math library cutted off, e.g., ceilf(). It is not usual case that you would like to run application called ceilf() in such a router but I would like to do that. Below is what I did.

Patching GnuDIP 2.3.5 for IPv6

GnuDIP 2.3.5 is designed for IPv4 and it does not support IPv6 interface on the server which run inetd. Below is my patch to make it work with IPv6 interface.

Flexible BitTorrent Client for Embedded Devices

Today, I and my colleages were thinking about embedding BTQueue into a kind of Linux-based router. Well, it is not easy to do so because of the nature of Python interpreter and its slogan.

Battery included!

I found Python for OpenWRT. It looks very promising and amazing by its size about 20 MB. In short, it is only usable on any routers with big flash memory or with USB for external storage. Unfortunately, these routers are not available in Thailand. So I suppose to have an embedable version of BTQueue. How to do that? The easiest solution is to slim down Python. I found Tiny Python. Anyway, it is just for MS Windows platform. So I looked for another solution not limited to just Python. Lua might be a good candidate here as a glue to ctorrent or libtorrent. The full set of Lua is about 100 KB.

Porting multiping.module to Drupal 5

The built-in Ping module bundled with Drupal is not as good as I expect to have on my site because it only notifies Ping-o-Matic. I just want to ping to custom list of pinging services. I have also found multiping which was initially referred in a thread. Actually, I patched the built-in Ping module to support custom Ping services, both ping and extendedPing. Anyway, it is not as good as multiping provide to me. Unfortunately, multiping has not been ported to Drupal 5 yet. That's why I have to do it today.

Porting customerror.module to Drupal 5

One thing I would like to track in my sites is how many query got 404 or 403 error. Sometimes, 404 means something wrong by me. Anyway, I have my hero, customerror module.

Trying Emacs 23 on Ubuntu Edgy Eft

There are 2 editors in this world I would like to try. The first one is Vi which is my favorite editor for years. The second one is Emacs which many people suggest me to try for getting another experiences. I have tried Emacs many times with no luck. I was unable to use it as I wish. Even getting out was not easy for me. Now the time has come for my next chance. This time, I have advisors and supervisors to help me get through this trouble startup to change my life. Don't worry, Vi is still my first choice on remote connection via ssh. Thanks to all expertists at Codenone.