Doxygen and Android source code

It turns out doxygen can be quite handy if you want to read android code. It supports javadoc style, so it could generate documents for the java files. It supports qt style, so the c++ code is also taken care of. Inheritance diagrams, integration with gnu global, etc. are quite useful as well.

0xlab Launch

0xlab is a innovative movement. Taiwan, our home country, has been doing IT hardware manufacture for quite a long time and is fairly successful. The thing about hardware manufacture is that it’s all about cost-down. Once your competitors know how to make the same product, it all goes down to the scale and production management.

On the other hand, the software industry in Taiwan has always been poor, as long as I can remember. The only two big local (maybe not so local) software companies here are TrendMicro and Cyberlink. Considering the fact that Taiwanese students always do great in the global programming competitions, the performance of software industry is relatively not that significant.

The involvement of FOSS here used to be in a really really bad condition. Giants like Asus has been using FOSS to create consumer products for years, but they didn’t really understand how to play nice with other kids, until suited by people like Harald Welte. It’s not like “I’ll only open up if I absolutely have to”, the involvement of FOSS is actully becoming a good business strategy now. Just think about why giants like Intel, Novell, Apple and Google are getting more and more involved in open source. There are reasons behind all these.

We should really use our advantage in hardware to join this trend. 0xlab is the first step, and I hope there are many to follow.

Google Calendar: offline mode broken?

If I access Google Calendar with Google Chrome now it will ask me to enter password again. After that it will do a brief redirect then drop me right back to the password screen. The redirect looks like below, so I would guess the “locallogin” view doesn’t work for me.

Since Google Gears is always enabled in Chrome, it means I cannot use it to access my calendar now.

Slashdotted.

So now the news is in the open. After Harald mentioned the recent status of Openmoko, Sean talked at openexpo to explain the whole thing.

In my opinion, Sean was more honest then I expected, and I admire that. It’s hard to admit so many mistakes as the CEO of a company.

Anyway, leave the past in the past. Life still needs to move on. I still got my gta02 (freerunner), and it’s still an interesting device that has all kinds of possibilities. What’s missing is just the right software. I still haven’t decided where to put my energy into, whether it should be freesmartphone based or Android. As a FOSS developer, it seems I should really support freesmartphone, but since my next job will most likely be related to Android and my time/energy is limited, maybe I will start with android.

I didn’t put this into Openmoko category by purpose so it won’t show up on planet.openmoko.org.

http://www.amd.com and .gz

There seems to be something strange about the apache server of AMD.com. If you try to wget a .tar.gz file from it, the file will be automatically unzipped. But if you try to get the same file by firefox, it won’t. The file in question is http://www.amd.com/files/connectivitysolutions/geode/geode_lx/Patches_Linux2.6.11_Common_02.03.0100.tar.gz

I guess the reason is this. The .gz files get Content-Encoding: gzip, so wget believes the data stream is compressed. The downloaded tar.gz will in fact become a tar file instead of the expected gz. Firefox actually has a workaround for this.

Maybe I should notify the webadmin of www.amd.com about it… if I can find the email address.

Portege 2000 and Ubuntu 8.10

8.10 Release Notes

BAD :(

Now I have to use this to do presentation:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
john@john-laptop:/etc/acpi$ cat videobtn.sh
#!/bin/sh
test -f /usr/share/acpi-support/key-constants || exit 0
. /usr/share/acpi-support/key-constants
acpi_fakekey $KEY_VIDEOOUT
CRT=/proc/acpi/video/VGA/CRT/state
LCD=/proc/acpi/video/VGA/LCD/state
if grep "state:.*0x0d" $CRT 1>/dev/null 2>&1
then
echo 0x80000001 > $CRT
# echo 0x80000001 > $LCD
else
echo 0x80000000 > $CRT
echo 0x80000001 > $LCD
fi

Don't work when you're tired.

I did the following things in the past few days:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
opkg_svn.bb: fix a stupid typo that ruined everyone's build...
diff --git a/packages/opkg/opkg_svn.bb b/packages/opkg/opkg_svn.bb
---


a/packages/opkg/opkg_svn.bb
+++ b/packages/opkg/opkg_svn.bb
@@ -23,8 +23,8 @@ echo "#!/bin/sh
if ! test -f /etc/.configured; then
opkg-cl configure
fi
-" > $D$/{sysconfdir}/rcS.d/S${OPKG_INIT_POSITION}configure.sh
-chmod 0755 $D$/{sysconfdir}/rcS.d/S${OPKG_INIT_POSITION}configure.sh
+" > $D/${sysconfdir}/rcS.d/S${OPKG_INIT_POSITION}configure.sh
+chmod 0755 $D/${sysconfdir}/rcS.d/S${OPKG_INIT_POSITION}configure.sh
test -f $D/${sysconfdir}/rcS.d/S${OPKG_INIT_POSITION}configure && rm -f $D/${sysconfdir}/rcS.d/S${OPKG_INIT_POSITION}configure

update-alternatives --install ${bindir}/opkg opkg ${bindir}/opkg-cl 100

and, on my own computer, I wanted to do: tar zxf openmoko-asu-image.tar.gz -C /mnt but instead I did: tar zxf openmoko-asu-image.tar.gz -C / So I have to reinstall debian…

DON’T WORK WHEN YOU’RE TIRED!

Words from the Wise

Quote from Interview with Donald Knuth

Still, I hate to duck your questions even though I also hate to offend other people’s sensibilities—given that software methodology has always been akin to religion. With the caveat that there’s no reason anybody should care about the opinions of a computer scientist/mathematician like me regarding software development, let me just say that almost everything I’ve ever heard associated with the term “extreme programming” sounds like exactly the wrong way to go…with one exception. The exception is the idea of working in teams and reading each other’s code. That idea is crucial, and it might even mask out all the terrible aspects of extreme programming that alarm me.

I also must confess to a strong bias against the fashion for reusable code. To me, “re-editable code” is much, much better than an untouchable black box or toolkit. I could go on and on about this. If you’re totally convinced that reusable code is wonderful, I probably won’t be able to sway you anyway, but you’ll never convince me that reusable code isn’t mostly a menace.