I’m going to be traveling abroad for about six weeks, so anyone who is
trying to contact me during this period should know that it may take a
while to get back to you. I’m going to the Chaos Computer Club’s
28c3, so I’ll post
updates on things that I learn there. I also
believe that I will be giving a short talk on the artificial
intelligence work I’ve been involved in.
I’ll be getting a German SIM card when I get off the plane in Berlin,
and I’ll probably not post the new number here, or maybe I will.
Normally I’m worried about people tracking me down, but hey, why not —
it’s a throwaway SIM afterall. It’s not like anyone’s going to stalk me
all across Europe.
After Germany, I’ll be in Austria, Denmark, Czech, Sweden(?), The
Netherlands, and maybe a few other countries. I want to mention that the
only reason someone as poor as I is able to go all these places is due
to a couple of amazinghackers
at Noisebridge in San
Francisco, who felt like I should be able to go, provided tons of
support, help, and encouragement. Their only request for me was that one
day I pay it forward.
One of the things I need for xqdr, the flying robot that I’m
building, is a terminal multiplexer, like screen or tmux. I use
tmux, personally, and jeepers wouldn’t it be neat to have it run
natively on my phone so that I don’t have to use ConnectBot to an
outside server and then do “tmux attach”?
Fortunately (or so I thought when starting this project), tmux is
written entirely in C. This turned out to be difficult, and so I’ll
outline how I did it.
The Android kernel uses a slimmed down version of standard C libraries
(libc.so), called bionic. This is where all the allowed calls are
stored. It’s possible to either:
It was at this point that I decided to check my phone, and I realised
that CyanogenMod7 already has a shared object library for standard C.
(It’s at /system/lib/libc.so). There is the possibility that I could use
this pre-ARM-compiled library, bundle it with tmux, and then use
AndroidNDK to compile tmux for ARM. This would also necessitate
creating a .JNI makefile for the frontend, which includes a trivial
amount of Java to wrap the native code.
I’ll update when I finish or fuck myself over, but right now I’m getting
on brutal series of international flights for Chaos Computer Club‘s
28C3 in Berlin, and my connection is slower than liberal reformist
tactics are at creating a freer society.