Maginnis Magee

Light in Dark Corners: My Dad wrote this, and it’s really really good. I’ve enjoyed it immensely, and highly recommend it. ^_^
Syriana: The movie was actually really good, but I felt bad after seeing it. It’s a sad and scary world we live in, and that’s over here on the easy side of it.
The AppleCare Protection Plan turns out to be good for keeping my laptop running.Since putting this into place, my laptop’s not once dropped dead from overheating… I actually suspect if I’d configured the power settings properly this wouldn’t be neccessary.

AppleCare Protection Plan 2AppleCare Protection Plan 1

That’s actually the display box. We’re an Apple reseller of some kind at CBIT, but due to lack of a front counter while the construction work happens out the back, all the display boxes are in my offfice…

Oh, the pain… I’m sitting here working on this entry at home, and the damn thing overheats. >_< I prolly should add a temperature sensor output of some kind to my desktop… Or at least bring the AppleCare Protection Plan home with me…

At least, I’ve a belly full of dairy-free pizza. Good on Dominos for publishing their list of allergens. ^_^

Edit: I forgot to give this post a clever title… I think this one’s fitting. ^_^

Edit: Fix images


Internet on Internet action: Routing around the bad to (speech-)recognise the good

Hmm, time to resurrect an old posting format…

The Internet — automatically routing around damage such as a DMCA from Apple.
Storyline patents — Everytime I think the world has dug itself to rock-bottom, someone hits me on the back of the head with a shovel.
Kotodama, a video game research prototype for teaching Japanese to anime fans — Now this is where I’d like to be taking my university education… I wonder where the project’s going, and how I can get onboard… And of course, this led me to Julius, a speech-recognition system that I wish I had time to play with.

Thanks to Hellblazer via Slashdot for the heads-up on the patent.

Slashdot is prolly also the viaduct via which I got the Kotodama link, as well as a reminder about the Linux-based GP2X portable gaming doodad, and AnoNet, like FreeNet but built from VPN and SSH tunnels which leave you in control of your own machine’s actions. I guess the difference is that on AnoNet, if someone does work out who you are and they seize your equipment, you don’t have the I didn’t know that was on there defense you get from FreeNet. There’s also the issue that, if you do something heinous enough, such that international authorities can co-operate on it, then you can be tracked down.

One of the things AnoNet’s Wikipedia entry suggests would be a good thing to protect on AnoNet is bnetd, the Server that Blizzard Entertainment had shutdown in the US. Mind you, even on the regular Internet finding bnetd source was as easy as following the link from the bnetd Wikipedia entry, once again demonstrating how the Internet routes around damage. ^_^

Things to do in your loungeroom when you're broke

Meh. There’s another weekend spent doing very little. And for a change, this didn’t involve me spending any time either playing video games, or on IRC.

I took a troll through Planet Linux Australia (and also remembered to submit my blog there again…) and came up with the following links, for your eddification and mine:

So what else have I been doing? Well, I played with Google Maps until I identifed my current home, and the CBIT offices, although the latter’s photo is slightly old now, as there’s a sort of overhang thing over the entrance now.

I finished Every Which Way But Dead by Kim Harrison. Happily, the next book in the series is due out in June… Although lord knows how long it’ll take to get here. I also this week finished The Shining City by Kate Forsyth. Sequel also due mid-year, and she’s Australian so I am more hopeful of seeing it before next summer… I prolly should go to one of those ‘enter my books’ sites and record for posterity just how many books I’ve spent my rent-money on.

Speaking of rent-money, I’m at the broke end of the week, so went last night and spent $32 on food until Wednesday. This covered four pot-noodles, five microwave paster dinners, and five bottles of Caffiene-Free Diet Coke. Also some lollies, to cover sugar-cravings. Mind you, I haven’t eaten yet today… Hmm, I’d better do that soon.

Of course, you can’t waste a weekend if you have no plans. And this weekend, I was supposed to finish the new CBIT Internet Customer Administration interface… It’s neat, and AJAXified (using the very neat xajax PHP-based setup) and the only thing I did on this this weekend was fix a problem I was having with Internet Explorer 6 on Windows. I couldn’t do this at work, because I’m developing under Linux on my PowerBook.

OK, I guess that’s not all I did. I spent a few hours screwing with wine, trying trying get IE6 going under Win2K-mode (partly for the AJAX stuff, partly so I could run QuickBooks). I’ve gotten IE6 installed, but it seems to barf when making the AJAX calls, not to mention needing to be Ctrl-C’d when presenting a username/password box.

In the end, I grabbed the IEs 4 Linux script, which installed IE6 in it’s own WINEPREFIX, like a charm. I’m well pleased with it. ^_^

I’m also gonna grab Opera to test the site against. Happily, not only do they have an Apt repository, they’ve also got a public beta program which includes Linux-PPC support. ^_^ This is really how commercial, closed-source software should be addressing the Linux community.

Also, Opera for Nintendo DS. I mean, like, wow.

Also wow, ABC’s podcasts. I wonder if they’ll do video podcasting soon? Not that I’m watching or listening to any podcasts, but…

I also wasted a few hours this weekend watching the latest episodes of TV shows from the US. Thinking about it, I watch: Battlestar Galactica, Boston Legal and House MD. I also watch Dr Who and Tripping The Rift when it’s on… I know that Apple now sells TV episodes over their iPod store, and so I feel like I should be paying something to watch these shows, but I dunno what they’re charging. I’d happily pay 50c per episode. I dunno if I’d pay more than that, though. Maybe if I had a better viewing setup, or planned on keeping the files and watching them again…

I also watched the Casanova BBC Miniseries last weekend. It was really really really good. ^_^ I was kinda iffy about the Heath Ledger movie, but Margaret and David thought it was leave-your-brain-at-the-door funny, and I’m now willing to give it a burl.

Hmm. I wish I was a large software corporation, so I could go try and do what Loki failed to do, but instead of buying the license and selling the game, I’d contract to the publishing houses to port the game for them, kind of like how many Mac-ported games seem to be done. I _really_ want to play GuildWars, but it doesn’t yet work in wine, and don’t want to reboot to Windows to do so. I _might_ give a burl to this partial success report for GuldWars on Wine…

And fun as Battle for Wesnoth is, I’m awful at it.

Quantum::Entaglement, the dream that perl is made of

Still on a bit of a Perl6 high from LCA06, I went looking for something to apply Quantum::Superpositions to. I think I’ve blogged about these before, and the fact that they’re in Perl 6 (as “Junctions“). Today I was looking for a use for them, and realise that the Sudoku booklet I was holding was perfect.

Upon actually reading the CPAN entry for Quantum::Superpositions, I realised that it wasn’t actually what I wanted. Luckily, Quantum::Entanglement also showed up when I searched CPAN for “Quantum”. Quantum::Entanglement is what I want.

The idea of Quantum::Entanglement is that you create an entanglement, which has a certain probability of being in a particular state, and a probability of 1 of being in _a_ state. You then operate upon this, and it collapses as appropriate when you actually learn something about it, producing either a result or more entanglements. I’d read the page for more information. And in fact, that’s what I did.

Sudoku on the other hand, is apparently sweeping the world by storm. It’s basically a 9×9 grid, in which you must places digits 1-9 such that each digit appears once in each row, column and each of 9 3×3 disjoint squares. You are given a couple of numbers to start, and then it’s off. If there was ever a candidate for quantum computing quite as good, I can’t imagine what it is. (OK, I can imagine. Breaking cryptography that relies on large primes…)

So the code looks like this:

#! /usr/bin/perl

use strict;
use Quantum::Entanglement;

my $easy = [
[ 0,9,0, 5,2,4, 6,0,0 ],
[ 0,0,0, 0,0,0, 0,5,4 ],
[ 0,0,0, 0,0,3, 0,7,2 ],

[ 0,6,7, 0,0,5, 0,0,0 ],
[ 3,0,4, 7,1,8, 5,9,6 ],
[ 0,0,0, 2,0,0, 3,8,0 ],

[ 5,7,0, 4,0,0, 0,0,0 ],
[ 6,1,0, 0,0,0, 0,0,0 ],
[ 0,0,2, 3,9,7, 0,6,0 ]

# Build a board of quantum entanglements.
my $board;

for my $i (0 .. 8) {
for my $j (0 .. 8) {
$board->[$i][$j] =
entangle(1=>1, 1=>2, 1=>3, 1=>4, 1=>5, 1=>6, 1=>7, 1=>8, 1=>9);
print “Initial: ($i,$j) => “,$board->[$i][$j]->show_states();

# Now entangle the variables together, without collapsing any values

for my $i (0 .. 8) {
for my $j (0 .. 7) {
for my $k (($j+1) .. 8) {
print “($i,$j) != Row ($i,$k)\n”;
p_op $board->[$i][$j], ‘!=’, $board->[$i][$k];
print “($j,$i) != Col ($k,$i)\n”;
p_op $board->[$j][$i], ‘!=’, $board->[$k][$i];
# We don’t need to entangle again a cell that is
# both in the square and shares a row or column
unless ($i-$i%3 + int($j/3) == $i-$i%3 + int($k/3)
or ($i%3)*3 + $j%3 == ($i%3)*3 + $k%3) {
printf “(%d,%d) != Sqr (%d,%d)\n”, $i-$i%3 + int($j/3),
($i%3)*3 + $j%3, $i-$i%3 + int($k/3), ($i%3)*3 + $k%3;
p_op $board->[$i-$i%3 + int($j/3)][($i%3)*3 + $j%3], ‘!=’,
$board->[$i-$i%3 + int($k/3)][($i%3)*3 + $k%3];
# print $board->[$i][$j]->show_states(),”\n”;

for my $i (0 .. 8) {
for my $j (0 .. 8) {
if ($easy->[$i][$j] != 0) {
p_op $board->[$i][$j], ‘==’, $easy->[$i][$j];

# Turn on try-for-truth mode

$Quantum::Entanglement::conform = 1;

# At this point, printing any value from the array should
# collapse the entire entanglement.

for my $i (0 .. 8) {
for my $j (0 .. 8) {
print ” “,$board->[$i][$j];
print “\n”;

And how does it work? I have absolutely no idea. My computer has 512Mb of physical RAM, which is filled within the first five p_ops. The sixth takes it to a gigabyte, and suddenly kswapd0 is doing more work than perl…

I asked on #perl, and was told that Quantum::Entanglement (and Quantum::Superpositions) are crap. >_< So I guess this will remain a thought experiment, unless someone has either a Quantum computer lying around, or a machine with multi-mega-petabytes of RAM…

The reason the RAM usage climbs so high is that entangling two things with 9 states produces 72 possible global states (every combination of 1-9 and 1-9 except equality). Each cell added to this entanglement of the first cell is another 8, so the entire entanglement of the first cell (ie the entire $k loop has run) is 9 * 8^20 or 10376293541461622784 states. That’s 10×10^18 states. Each successive cell actually removes from consideration some of the earlier states, but the multicative effect completely hides that. Which is good news for people relying on GPG to protect their data. ^_^

Of course, now I’m going to be looking for something practical I can do with Quantum::Entanglement.

For reference, this is puzzle #1 from Lovatts Super Sudoku issue 8, which I actually fell asleep doing on the plane to LCA06, due to the tonsilitis, Panedine, Strepsils, penicilin and 28 hours (including three of highway driving) of continual awakeness preceeding it.

Oh, and apt-get install libquantum-entanglement-perl is the super-final-ultimate-killer proof that Debian is the only way to Linux. ^_^