I've decided to retire this blog — I don't really see myself updating it any time soon, and haven't for over two years anyway. I intend to leave the content on-line for the forseeable future, but have converted it to a static site. As a result, dynamic things like search and comments aren't really going to work.

You can find me on Twitter or on Google+ if you like. Alternatively, I'm usually on IRC as LawnGnome on Freenode.

Thanks for reading!

Archive for the 'Tech Geekery' Category

IPv5.999999

Tuesday, January 20th, 2009

I’ve just had to push out a DNS update (damn you, tunnel brokers), so it probably won’t work automagically for a little while, but my blog is available over IPv6, if people want some IPv6 action here at the conference (great work, network team!) and can’t be bothered looking for a site that’s actually useful.

It’s also available over IPv6 Gopher, should you feel the need. (Well, regular Gopher, too, but that’s boring.) Huzzah!

The (horrible, hacky) code that drives this has also been updated to a brand new version: 0.2! (It only took 18 months.) Grab a tarball (SHA-1 sum: 044b1c5bf1a6d5fa1bd2cad3f2029bc1b2549c38) and you too could join the IPv6-driven, WordPress Gopher blog revolution!

Addendum: Google Reader is mangling the links for some reason. The direct URL for the blog on IPv6 is http://[2001:5c0:1103:3300::1]/ or gopher://[2001:5c0:1103:3300::1]/.

New Toy

Sunday, April 20th, 2008

I’ve been rather frustrated with my camera (an old Pentax point and shoot) for a while. It’s not that it’s a bad camera, but the lack of manual control over things has been irking me after spending a couple of years playing with increasingly nifty video cameras at uni. So I resolved that, once I had the money, I’d be upgrading to a digital SLR.

Well, I had the money yesterday, so I exchanged it for this:

Nikon D60

Specifically, a Nikon D60, which is one of their entry-level DSLRs, along with 18-55 and 55-200 mm lenses. Even after a brief play with it, I wish I’d done this a year or two ago.

Should be good for my upcoming trip to Latvia and parts beyond in July. More details on that soon. You know, whenever we figure out where the hell we’re actually going. Current candidates include Azerbaijan, Georgia, Turkmenistan and Uzbekistan. Should be fun.

PEAR DB 1.7.14RC1 Released

Wednesday, November 28th, 2007

I’ve pushed out a beta release of PEAR DB versioned 1.7.14RC1 with a few fixes for issues reported since 1.7.13. Nothing in there is hugely urgent or high-risk, but I’ve made it a beta rather than a stable release due to the fact that I’m still a few thousand kilometres from my testing setup, which means that I’ve only been able to test against the databases I have to hand on my laptop — MySQL, PostgreSQL and SQLite.

All being well, I’m looking to get 1.7.14 final out around Monday (along with an Informix fix that I can’t work on without my Informix testing VM). Please feel free to test this release and report any issues.

Gutsy + MacBook Pro

Sunday, November 18th, 2007

I’ve had to contend with a few little annoyances since installing Ubuntu 7.10 on my new MacBook Pro, so here’s a short list of things that might help if you find yourself with the same issues I’ve had.

Problem: The CapsLock and NumLock LEDs don’t light up. To make matters worse, the NumLock key occasionally locks on, particularly after sleep, and the keyboard becomes essentially useless.

Solution: Uninstall mouseemu. It seems to be the source of this evil.

Problem: Without mouseemu, there’s no way to use middle and right click from the keyboard.

As long as you don’t need the mouse outside of X and don’t really care whether NumLock actually results in numbers rather than mouse movements, you can solve this with xmodmap and mouse keys support. In short:

  1. Turn on mouse keys. Within Gnome, that’s under SystemPreferencesUniversal AccessKeyboard Accessibility; select Enable Keyboard Accessibility Features, then go to the Mouse Keys tab and Enable Mouse Keys.
  2. Create a file called .xmodmaprc in your home directory with the following contents:
    keycode 95 = Pointer_Button2
    keycode 96 = Pointer_Button3
    

    These keycodes correspond to F11 and F12 for me — you can change them to whatever you’d prefer for the middle and right click functions. xev will give you the keycodes for the keys you want.

  3. Ensure that the modmap is loaded when you log in. In Gnome, this can be done through the SystemPreferencesSessions dialog box. Click Add to add an additional startup program, then ensure that the command is xmodmap /home/USER/.xmodmaprc, replacing USER with your username. Give it any name and hit OK, then close the session preferences.
  4. Log out and log back in. The first time you log in, you should get a dialog box from xmodmap to confirm that you want to load the .xmodmaprc file — confirm that you do and that you don’t want to be asked each time, and from then on you should have the goodness of three mouse buttons again.

Problem: The keyboard backlight doesn’t work or I can’t change the display backlight brightness.

  1. There’s a kernel module that needs to be loaded for some of these features to work. The easiest way to do it is to edit /etc/modules and appending the line applesmc. This will ensure it’s loaded on subsequent boots.
  2. Load the applesmc module at the command line using sudo modprobe applesmc.
  3. Install pommed (available in the universe repository, so ensure that’s enabled). These things will start working. If you’d prefer to use the function key to change volume or brightness, you can do this by editing /etc/pommed.conf and changing fnmode to 2.

Most of this is pretty minor in the grand scheme of things — it was really the issue of NumLock freezing the keyboard (particularly on waking from sleep, although I’ve had it happen a couple of times in general use as well) that led me to start looking into this. I have a Rev. D MacBook Pro, so it may be that many of these things aren’t issues on the older hardware; I don’t recommend blindly doing any of this unless you know you have a problem.

public class Exam extends HttpServlet {

Monday, November 12th, 2007
        public void init() {
                findRoom();
                buyWater();
        }

        private void findRoom() {
                search(Buildings.ONE_WHICH_LOOKS_LIKE_WAGYL_THREW_UP_ON_IT);
                try {
                        regardArchitecture();
                }
                catch (VomitException e) {
                        shrug();
                }
        }

        private void buyWater() {
                try {
                        Machine.insert(0.20);
                }
                catch (MachineSwallowedCoinWithoutReasonAgainException e) {
                        System.err.println(Person.SWEAR);
                }
        }

        public void doGet(HttpServletRequest req, HttpServletResponse resp) {
                readExamPaper();
                winceAtPoorlyWrittenQuestions();
        }

        public void doPost(HttpServletRequest req, HttpServletResponse resp) {
                writeResponses();
                makeJoke(Lotus.NOTES);
                finish();
        }

        public void doDelete(HttpServletRequest req, HttpServletResponse resp) {
                leaveCampus();
                forgetEverything(java.lang);
                $var = ... oh, shit;
        }
}

I enjoyed the exam about as much as the rest of the unit (that is, not at all), but I’m pretty sure I did enough to pass. I must remember to read sample exams more closely, though — I was completely broadsided by the 15 mark question on Java GUI construction in a unit supposedly about building Java-powered Web sites. Obviously applets are back in vogue.

Now for the nervous wait for results in about six weeks.

iSight, youSight, weAllCamelCaseSight

Sunday, November 11th, 2007

My suspicion last night that ndiswrapper would cure my wireless ills appears to have been correct. It’s a bit of a step back, really, since it means (a) that I’m reliant on the Windows drivers and (b) that I had to switch to a 32-bit Ubuntu install since Apple don’t provide 64-bit drivers for the AR5418 wireless chipset on the Leopard DVD, but I’m not getting dropouts and stalls every couple of minutes now, so I guess I’ll have to grin and bear it.

Happily, everything else has worked out of the box in Ubuntu Gutsy. In fact, it’s probably all worked a bit too well — I had an afternoon of tinkering with things planned, but everything got configured much quicker than expected, which now means that I have no real excuse to avoid studying for tomorrow morning’s exam. Damn you, efficient FLOSS developers!

You heard me, uvcvideo developers. There may be blood on your hands. (In my case, the blood would be virtual, but people watching webcam missives from me may be in danger of bleeding from the eyes.)

Oh yes, the in-built webcam works, too. That promises to be… minutes of fun. Oh well, it’s still better than studying.

Eargasm

Sunday, November 11th, 2007

General catch-up post, since I haven’t blogged in a while:

  • Not dead. Just been busy.
  • Now done with uni, bar one exam and my computer science project, which is complete apart from a couple of bugfixes and some documentation which are due in Monday week. I’m looking forward to having some actual time to do things outside of uni. Who knows, I might even get Dubnium 0.2 out at some point.
  • Went and saw Muse tonight, who were good, but not quite great in the way they have been the other times I’ve seen them. In fairness, I think some of that was due to the crowd, who (at least in my area) weren’t quite into it the way I expected. Against that, they played Citizen Erased and Fury (the latter for the first time in almost three years, apparently), so I’d forgive them almost anything for that. Looking forward to seeing them in Brisbane in a couple of weeks.
  • Got my new MacBook Pro yesterday. It’s very speedy compared to the venerable G4 iBook it’s replacing (indeed, I’m pretty much certain it’s quicker than my dual core Athlon 64 desktop, too), but there’s a couple of things that irk me, most notably the fact that the Linux Atheros wireless chipset driver may actually be flakier than the Broadcom chipset in the iBook, and I never expected to say that. I suspect I’ll need to sit down with ndiswrapper at some point and look at getting that set up. On the bright side, suspend actually seems to be working, bar Atheros-related flakiness.

Hopefully it won’t be another three weeks before my next blog post. No promises, though.

Incentivised

Tuesday, October 23rd, 2007

I’ve donated in the past to Wikimedia and probably will in the future, but seriously, who decided that donation box should be added to the English Wikipedia? Two minutes of its <marquee> style antics this morning and I already have a headache.

Still, it was a great incentive to log in and kill it via a custom style sheet, which I’d never before played with on Wikipedia. If you’re logged in and using the default Monobook skin, it’s as simple as this:

  1. Go to http://en.wikipedia.org/wiki/Special:Mypage/monobook.css.
  2. Edit the page and add the following line:
    .fundraiser-box { display: none; }
    
  3. Force a reload using whatever method is appropriate for your browser.

Actually, it’s probably a good incentive to log in generally. No more anonymous edits for me when I’m lazy, and it was all down to one poorly conceived fundraising banner. Good job, Wikimedia Foundation!

Once in a Lifetime

Tuesday, October 16th, 2007

This is probably old news, as I rarely use Windows, but I was given this prompt this week after getting the notification that a new version of Java was available.

Special Offer

Of course, that’s as opposed to OpenOffice’s normal high price.

$pear->list

Saturday, October 13th, 2007

I’ve seen three people ask a variation of how can I get a list of installed PEAR packages from within my PHP script in the last few weeks on IRC, and two just in the last day. Because I’m a helpful sort, here’s a little morsel of code that will do just that:

include 'PEAR/Registry.php';

$reg = new PEAR_Registry;
foreach ($reg->listPackages() as $package) {
    print "$package\n";
}

This should work with pretty much any version of PEAR.

(Update: Ken has a nifty bit of code in the comments to check for a specific installed version of a package.)