Reviewing Gnash

Just a quick note, Reviewing the Kanji uses a little flash applet for testing/reviewing flashcards. I’m pleased to announce that it works fine with Gnash 0.7.2 on my Debian/unstable PowerPC laptop. ^_^

Things to do in Sydney while the wireless is dead

Well, now that I’m back on the ‘net fairly reliably, I can post on what I’ve been doing for the past few days.

Firstly, I was off the Internet because I was flat-out busy on Saturday, in transit on Sunday, and wireless did not arrive at International House until about 11pm Monday night. That time I did spend on the ‘net today, at the conference, was spent in a combination of processing CBIT emails since Friday, and wrestling with my wireless network card.

My local build of the d80211 version of the bcm43xx driver got signal, would even get traffic through, but when it tried to reassociate to a different AP (all the APs here are running on channel 11… Although I was sitting next to someone who saw one on channel 1, which I’m guessing was rouge… I also saw some IBSS networks on the same SSID….) it would corrupt something nasty, kick the screen brightness up to full and oops with slab errors in short order.

The 2.6.18 (2.6.18-3-powerpc Debian build) bcm43xx softmac driver didn’t crash or anything, but generally performed worse, and when the Debian miniconf’s theatre (Mathews A) was full, my connection suffered or would completely fail to dhcp. >_<

On the plus side, the presentations were great. AJ gave us a rundown of debian-devel (ie 12 months of flamewars) and other significant Debian going-ons. Keith Packard produced a whole bunch of neat X things slated for 7.3 (input hotplugging, dynamic output selection and modesetting, which is exactly what I need to get the projectors I keep plugging into to work better than 640×480…). Russell Coker talked about the various security gaps still remaining in Linux.

In non-conference goings on, I was talking to someone on IRC who’s gotten Second Life Viewer building under Linux/PowerPC (a previously unsupported platform) and I’m going to see if we can get a .deb built. I’ve already created an ELFIO package, and have the OpenJPEG source to try packaging tomorrow. I’ve also sent off an email to the person who ITP’d secondlife-client for Debian already, to see if he wants to co-operate, or if I’m just tooling about.

Speaking of tooling about, I decided it’d be a good idea to upgrade my bcm43xx-d80211 build to something more recent than mid December, but it seems the 2.6.20 workqueue changes mean I can’t compile it against 2.6.19 anymore. The rt2x00 d80211 stack has backwards compatibility macros for the workqueue stuff, but I don’t really feel like hacking those into bcm43xx, it’s already a large and unsteady beast.

BTW, cogito’s update could handle resuming better. Although it happily detected it was resuming a failed update, it had to keep refetching the packs. I eventually realised it would eventually time-out a fetch if I didn’t ^c it and happily try again, presuming I had in the meantime walked outside or reloaded the driver.

Anyway, so I’ve decided tonight (while I was still off the wireless) that I’d finally bite the bullet and build myself a custom dscape.git kernel, to see if the pain I keep suffering from the bcm43xx-d80211 driver is just my cheap-ass backport. That was still building when the wireless came up, and then barfed because KConfig happily let me include both the PCI and SoC versions of the OHCI USB host driver, which provide the same symbols. I must remember to file a bug report about that, or at least check linus’s git tree in case it’s already fixed. (Both drivers recommended yes, but are patently incompatible as they require different endianness of the host interface). I’ve restarted the make-kpkg, hopefully that’ll build overnight and I can try it in the morning.

I also put some time into my Remembering the Kanji book. I was going to do an hour, but after about a half-hour (with a break to configure and fire the kernel build off) I was yawning, and figured I’d prolly left the imaginative-memory zone. I was going to watch some Gokusen but thought I’d take a last wander over to the IH whiteboard to see if the wireless was up. Bizarrely, it was.

So I wandered onto the ‘net, checked email, volunteered myself to package Thousand Parsec for Debian, added the Kanji I studied to Reviewing the Kanji (a web site for reviewing the stuff you learn in Remembering the Kanji) and updated my blog.

Which funnily enough, is where we came in

ごくせん Vol.1ごくせん Vol.2ごくせん Vol.3

LCA 2007 Ho!

Well, it’s nearly LCA time again. This is just a quick post mainly to see if my syndication at Planet 2007 is working yet.

I’ve been working at MF (Milestones just seem to come at you faster than the calender would otherwise suggest) and particularly in the last couple of weeks getting a good vector-math workout.

I’ve also been working at picking off RC bugs to try and help Etch along a bit, since kind of hoped to be upgrading to it in the half of January that’s just passed.

I’ve also been looking for a CMS for the ANU Anime Society to try and resolve the fact that our web admins never seem to last as long as we’d like. At the moment, Joomla! is top of my list for trialling, as I’m familiar with PHP and looks to have the relevant modules (forum, calendar, eventing system that’ll need modification to work for screening scheduling). However, I’m open to other suggestions, and will see if anyone at LCA has any useful suggestions.

And of course, by adding Planet LCA 2007, I’ve had to read it. And I came across ThreatNet, which is a distributed compromised computer identification system. It’s actually really simple, you do something to identify a certain IP as a threat (the sample code scans postfix logs for “REJECT: noqueue” which usually comes from “no such user” although I noticed it also comes from greylister at CBIT) and sends that IP address to a nominated IRC channel. I dunno what’s next, actually. Presumably, sites can block that IP address as they see fit, and if the responsible parties for the machine become aware of it, they can take action. I’ll be adding this to my ever-growing list of things I need to consider implementation of at CBIT.

On the plus side, I recently installed Debian on a Slug with a 512MB USB flash stick, and I’m going to see how Nagios performs on it. If it’s up to scratch, I’ll prolly shoehorn in a wireless card and see if I can monitor two disparate networks effectively.

Confessions of a mercenary programmer

Just a quick note, in the aftermath of the vote to decide where Anthony Towns, Debian Project Leader did something good for Debian, bad for Debian or indifferent to Debian with the Dunc-Tank.

I, Paul Hampson, hereby confess that I too earnt money for doing Debian work, specifically packaging FreeRADIUS and getting it sponsored into the archive in time for Sarge to ship.

Mind you, I didn’t earn much money, since Bandwidth Unlimited (for it was they) went bust without paying me much, but they did pay me. And you might argue that I’d been looking for a package to help out with in Debian for nearly three years at that point, and I would have worked on it for free, and that when I was being paid serious money to administer an ISP, I didn’t do much FreeRADIUS work at all.

To which I’d say that I’d never have picked FreeRADIUS were I not running an ISP, and I would not have been running an ISP had I not planned to become rich and buy the world’s largest chocolate bar from the experience. And I didn’t get a lot of my job functions done when I was running an ISP, so lower-priority things (like FreeRADIUS, cleaning my desk, a full night’s sleep) were often pushed aside.

I have to say that until I recently became a professional, regularly paid, programmer, I was highly envious of people who get paid to work on Open Source stuff, let alone Debian stuff. Now I’m just envious, although that’ll prolly upgrade back to highly envious after 2007 (or as I like to think of it now,

This whole thing puts me in mind of my experience at the Sydney 2000 Olympics. I was one of the IT volunteers, and we basically picked up the less-interesting jobs the IBM-paid staffers gave us. At the time I felt a bit put out that I was there volunteering, and these guys were being paid to be there doing nothing that I couldn’t have handled. Obviously that was decidedly unfair, and from my days of “I’m as good as or better than anyone else at computers” phase. But the unfairness of my attitude isn’t actually the issue, the issue was that I really wanted to be paid to do that sort of thing, and didn’t see why others should get paid but me not be.

Now of course I want two things: To get paid, and to do the things I love. I’ve finally reached the point where I can combine them, and I no longer begrudge those who, through luck, skill or otherwise, get paid more to do the same things, or get access to cooler toys to do them on. I’m envious, obviously. How do you not envy someone who gets to bring up Linux on a 128-way Power5 machine on the quiet? But that doesn’t make me unhappy, it just makes me want to strive more, and work harder. One day I’ll be the one submitting a paper to on some stupendously cool thing I’ve done. ^_^

Anyway, my short-medium term goal is to leverage the experience of the current MicroForté work, plus finishing my Japanese studies, to go work for a games company in Japan, combining my two favorite pipe-dreams into one, and making it reachable in a little as two years. Maybe I’ll be lucky and MicroForté will open a Japanese office or something, or I’ll luck out and end up working on a Japanese MMORPG with a Linux client and a measurable dose of serious cool. Or somehow end up programming at Nintendo…. Oh, sparkley eyes! *_*

And a by-the-by, it’s two and a half months in, and I’m still totally thrilled to be working at a video games company. I mean, seriously, I’m like all, wow. I thought it was cool when I was working at TransACT, and my testing procedure involved firing up a video stream, and watching it on a TV. I had a TV on my desk, for work purposes, and that was the high-point of my career. Now I don’t have a TV on my desk, but when I’m hacking on combat-handling code, part of my procedure involves firing up a game server, and playing.

I’m learning to take my time with things a bit more. I’m now much less worried that I won’t speak six asian languages, play the piano, have my name someone in the Linux kernel that doesn’t share a sentence with “blame”, have invented an entirely new way of interacting with computers, master four different styles of martial art, earn my first dan in three different Japanese weapon styles, hold two masters degrees in disparate subject areas, earn infamy in the Debian community or even the admiration of my peers by 30. Or 40. I’ll be pushing it to get there by 50. But the advantage of youth is that you get it when you’re young, and only lose it if you let it go.

I guess on reflection, my goal has become to be a polymath ronin… For those familiar with anime, I think I want to be Kintaro Oe when I grow up…

Side-note: I’m now the secretary of the ANU Anime Society. Two days before the AGM, I wrote in an email to the then-executive committee that secretary was the one position I’d never take. Time makes fools of us all. ^_^ Congratulations to Cathy Ring on stepping up to the presidency, and to the other executives, old and new, for stepping up to what I expect (knowing Cathy) to be a hard-driven and successful year coming.

Oh, and someone asked this week about getting the GTO Live Action box set. So here’s my AmazonJP links…


Wii are excited, but stable

Two things… has gone live, along with a news release from Nintendo Japan announcing ship date and release pricing for the Wii.

For those who don’t read Japanese and can’t puzzle it out (it’s up the top, above “WiiTM”) it’ll ship on 2nd December 2006 for ¥25 000. It also says that schedule and pricing for foreign countries will come in the next few days.

Following some links from back through the Wii page at we get to see a video of the Wii software lineup, as follows:

I’ve highlighted launch titles, and indicated by-the-end-of-the-year titles as per the Wii software lineup page.

  • Wii Sports
  • Forever Blue
  • Mario Strikers Charged
  • Excite Truck
  • Dragon Quest Swords
  • Dynasty Warriors Wave (December 2006)
  • Red Steel
  • Fire Emblem
  • Swing Golf Pangya
  • Super Mario Galaxy
  • Necro-Nesia
  • Super Surgery (Card?) Chaos (Tenative name)
  • Sonic and the Secret Ring
  • Wing Island
  • Pokemon Battle Revolution (December 2006)
  • Bleach Wii (December 2006)
  • One Piece Unlimited Adventure
  • Dragon Ball Z Sparkling Neo
  • SD Gundam Revolution (Tenative name)
  • Crayon Shin-chan (December 2006)
  • Tamagocchi
  • Introduction to Wii
  • Elebits
  • Rayman (December 2006)
  • Super Monkey Ball Oook Oook Party Great Gathering
  • Fishing Master (December 2006) (Tenative name)
  • Festival Master
  • Furi Furi (December 2006)
  • Harvest Moon Wii
  • Twiilight Princess
  • Colorinpa
  • Metroid Prime 3
  • Warioware Dance
  • Super Famicon Wars W
  • Bomberman Land
  • The Dog Island
  • Wii Music
  • Wii Yawaraka Head Training
  • Road Cool Domino
  • No-miso connecting puzzle Takoron
  • Cooking Mama (December 2006)
  • Project H.A.M.M.E.R
  • Biohazard Umbrella Chronicles
  • Twiilight Princess (so good, they showed it twice!)

I count 43 titles there. ^_^

Also, NES games will be ¥500, SNES games ¥800 and N64 games ¥1000.

The Wii Preview slides are a goldmine, and include videos of the Virtual Console.

Did I mention that Zelda: Twiilight Princess is a launch title?

Along with 15 other launch titles, and another 11 titles by the end of the year.

Oh, dude, yay!

Oh, and the second thing…

17:01 <@usotsuki> Debian’s definition of “stable” is different from what most people call “stable”

17:01 <@usotsuki> that’s good and bad

17:02 < TBBle> Nope, it’s pretty much what everyone except computer users mean by “stable”. Think about it in the geological sense, for example. Or the chemical sense.

17:02 <@usotsuki> lol

17:02 < TBBle> ie “If you don’t touch it, it won’t randomly explode”


Edit: Found the Wii software lineup page, and so fixed my video listing above.

Edit: Forgot the AmazonJP link. ^_^

So you wanna be a domain-specific hero?

Wow. “Later this week” certainly took longer than I expected.

As of July 31st, I’m a (junior, for now) programmer at Micro Forté‘s Canberra studio. Two weeks in, and it’s the best job I’ve had so far. ^_^ My first task involved trying out installation of the BigWorld MMOG server system as a new user so we could see what state the documentation was in, and for those who know how pedantic I am, a four-page file called whinge.txt is actually a positive sign.

It’s an approximately eighteen-month contract, so I guess Japan and University will have to be put off at least that much longer. Still, I’ve pretty much wanted to write video games since I was six, learning Applesoft BASIC on the family //c, so no regrets. ^_^

I’m no longer working full-time at CBIT Internet, although I am still maintaining the ISP’s servers there.

In celebration, I bought Guitar Hero, which neccesitated getting my Playstation 2 back from Richard, who’d in the meantime bought a PS2 EyeToy. I haven’t tried the bundled game yet, but instructions exist to use the EyeToy as a windows webcam, and to use the EyeToy as a linux webcam.

This, plus the request of a nice young lady whom I only seem to face-to-face once every twelve months or so that I install Skype, got me playing with Skype again. Sadly, the 10 euros of credit I bought in 2004 and was unable to use (due to their system failing to transmit voice to the US at the time) have “expired”, which annoyed me enough that I was boycotting them. The boycott ended the moment someone asked me to actually use it, mind you. ^_^

Of course, this led me into an exploration of open-source alternatives. On the Skype-protcol side, there’s a paper from 2004 looking at how Skype 0.97 talked to the network as well as a recent claims from a Chinese company to have reverse-engineered the Skype protocol. Sadly, the latter is planning to commercialise their results, not publish them.

On the actual open-source side, I’ve been playing with SIP stuff again. I’ve had a SIP-based Asterisk server running here (You can try to call me via SIP although I don’t always have a SIP client running) for a while now, and I recently got a chance to test it with some overseas friends, but due to poor codec choice, it quality sucked.

On codecs, I have to say that Speex is great and iLBC is awful. Both in voice quality, and for the fact that Speex is free open-source, while iLBC comes with a “no-commercial use” license.

Anyway, with a webcam, I’ve been toying with video-supporting SIP clients. For windows, the only free one appears to be X-Lite 3 which doesn’t do Speex (although its commerical version, eyeBeam 1.5 does) but for my purposes (LAN to the Asterisk Box) I can do G.711 and let Asterisk do the Speex transcoding for me.

Under linux, Linphone has video support (although the 1.35 Debian package is compiled without, and the build-deps to build it wanted to remove texlive in favour of tetex…) which I’ve not tried yet, but which a brief glance at the source suggests supports H.263-1998. Ekiga, the successor to GnomeMeeting, also supports video, via opal, but only H.261. There’s H.263 code there, but relies on FFMpeg 0.4.7 patched to support RFC2190 for its video support. (It’s actually FFMpeg‘s libavcodec that’s being used, but very few people make the distinction it seems)

A brief aside on the video codecs at play here. H.261 is the older ITU-T video standard for ISDN, while H.263 was a newer standard which drew from H.261 as well as MPEG-1 and MPEG-2, and which was the default video standard for H.323 computer video conferencing, thanks to things like Microsoft’s NetMeeting and the open-source GnomeMeeting. However, along with MPEG technology comes murky and ill-defined MPEGLA patent issues. There’s also H.263-1998, aka H.263p or H.263+, which adds some annexes to H.263 to support some more encoding features. For moving H.263 over RTP RFC 2190 was written. However, the stream format defined in RFC2190 couldn’t support the data stream from H.263-1998, so RFC 2429 was published. Both H.263 and H.263-1998 can be carried in the RFC 2429 stream format, so in theory everyone should be using RFC 2429 streams, and we’d all be happy. Apparently, NetMeeting only support RFC 2190 and H.263 however, so that’s the version that they implemented in Ekiga too (since Opal is a refactoring of the OpenH323 library’s media interface, and Gnomemeeting’s built on OpenH323. And the OpenH323 H.263 code was submitted by the same person who did the FFMpeg patch mentioned above.) Meanwhile, X-Lite supports H.263, H.263plus, and (according to my SIP debug logs on Asterisk) RFC 2429 streaming.

I spent most of today weighing up forwardporting the RFC2190 patch to FFMpeg, or updating libopal to support RFC2429. I didn’t achieve much, but I weighed it up a lot. The final answer was wait for the current libopal refactoring (they’ve moved the video codec support out into plugins, and rewrote the H.263 code such that it’s much easier to _add_ RFC2429 support) to reach my via Debian in some way, and then have a poke at it, if they haven’t done it already. If it’s not already done, I’m sure that submitted the code to make it work would make me an Open-source Telephony Hero

So to bring us back to the story, I’ve got a nice little Windows-based SIP client which does video but not Speex and needs to register with someone, a Linux-based client that does speex but which I haven’t compiled the video for yet (Linphone), and a both linux- and win32-based client which claims to do Speex but barfs (Ekiga…) and which can’t do the current video codec with the current video stream format, and depends on a slight fork of another library to do current video with the old format.

I can see why Skype’s so popular…>_<

Incidentally, if you want a non-registrar-requiring Speex-supporting free but-without-video SIP client for Windows, I found PhonerLite seemed to work well. And frankly, if you’re going to call me without warning at home, you might not want the webcam to show you whatever my current state of dress or undress is. ^_^

Talking to Chris Smart (of Kororaa) at CLUG‘s PSIG meeting last Thursday about webcams, Ekiga and kopete inevitably led onto the GPL and the Linux Kernel (he loves to talk about it, really! ^_^) and Chris pointed me at Greg K-H’s take on Linux and Binary-only modules, which manages to draw the line between legal and illegal way way back there compared to where we all through we were. (On a sidenote, OLS looks like it would have been tremendous fun. I can hardly wait until I’m a jetsetting conference-attending Linux Kernel Hero.)

I’ve also been poking at the DeviceScape 802.11 stack for Linux. As well as happily running my laptop’s Apple Airport Extreme2 card for the past few months, its software-based Access Point support appears to have progressed to the point at which I can start poking at it for Nintendo DS Wirelss Multi-boot infrastructure, which will bypass all the card-specific hacking people’re having to do, as well as let it work on things that aren’t RT25xx cards. It seems in the six months or so since I’ve looked hard at Nifi, a dude called masscat has picked up the ball and run with it, so I’ve almost 10 pages of forum thread, and then whatever code he’s published, to catch up on. I’m pleasantly surprised, I thought with the advent of Wifi support for Nintendo DS Homebrew code interest in WMBing over Nifi would die. So here’s my chance to get the dscape port done, and become an NDS Homebrew Hero.

I’m currently reading Perl 6 and Parrot Essentials and it’s reinvigorating my love of Perl. ^_^ Shame MicroForté is a C++ and Python shop… Still, it’s a nice change from reading The C++ Programming Language, 3rd Edition which I was reading for the six weeks between my first job interview and pretty much the weekend before I started at MicroForté. Of course, this means I’m tempted to spend my free time ignoring all the above ideas, and tooling about with Perl 6 and Parrot Especially with sheer coolness like Z-Code support in Parrot.

And for one final note, the real-estate agent is coming around next Saturday to inspect my flat, so I had to clean up. Luckily, it was mainly a case of emptying all the bins, although I need to run a quick vacuum around the place, it’s a bit dusty in parts. I expect this inspection is because my lease expires in the next couple of weeks, and they want to know if they should kick me out or not. Given that I’m not working days in Watson with occasional evenings in Belconnen, I’m looking at moving anyway. Anyone know of a cheap one-bedroomer or two-bedroomer in Watson or adjoining suburbs? I’d like to be able to walk or bicycle to work. ^_^

Perl 6 And Parrot Essentials (Essentials)
The C++ Programming Language

Edit: Correct misspelling

All juiced out and nowhere to go

I’m out of juice

In other news… Finally upgraded the blog to WordPress 2.0.3 and Spam Karma 2.2r3. Also decided to celebrate with a new theme, blog.txt. It’s OK so far, apart from the title sizing… Dunno if I’ll stick with it yet.

The actual content of this post is twofold… I used CurlFtpFS (A FUSE-based filesystem) to update the site. I chose CurlFtpFS over Fuseftp because the latter consistently failed to handle vimdiff. ^_^

Happily, on Debian, it was easy to set up. m-a a-i fuse gave me the fuse kernel modules, and then grabbing the CurlFtpFS Debian package.

The main disadvantage is that you can’t see the FUSE-mounted share from my windows box over Samba… This may just be a permissions thing, as I can follow symlinks across filesystem mounts OK, although I didn’t used to be able to.

The other fold is that I finally started my exercise regime. Tonight, about a half-hour on Stepmania, for 14 three-foot songs and a four-foot song. I’m working alphabetically through the list of songs at three-feet, and then my last set of the three for the night is whatever I feel like. And tonight I was in a Bubble Bobble, そばかす and WITCH DOCTOR mood.

Most frustrating song of the night was Beyblade 2000 – Off the Chains, the BPM seemed to be tuned to the rappers, not the actual beats. On the other hand, most frustrating in a good way was Cowboy Bebop – Tank [Para Para mix], 307BPM of surprise steps. Fun. ^_^

Final good news, the author of the Top 10 posts plugins noticed my updates. I was linked from a blog that shows up in the WordPress Dashboard. ^_^

Meh, a few other things going on, I should be able to blog about them later this week. >_<

Edit: Back to Ocadia. Also, I bought juice. ^_^