July 03, 2009

Jeremy Visser

Nazi Noodles

Posted by Jeremy at July 03, 2009 02:03 PM

Today, Dad brought home a bag full of Asian nibblies. Among them were some packs of ramen noodles. I found this pack to be particularly striking:

Ramen noodles with swastika on packaging

Yes, yes, I know. It’s a Hindu or Buddhist swastika, not the Nazi form. But I’m pretty sure the noodles would be banned in Germany in one way or another. And yes, I just Godwined my blog. Ah well — it was fun while it lasted.

June 26, 2009

Jeremy Visser

IPv6 over PPP over a null-modem connection

Posted by Jeremy at June 26, 2009 01:38 PM

I just did my first null-modem serial link today. And yes, I did IPv6. On each computer I ran:

# pppd nodetach noauth /dev/ttyS0 115200 ipv6 ,

Then, each computer came up with a ppp0 interface that was down by default (for some reason, pppd doesn’t like to bring it up if it’s IPv6-only). So I ran this on one machine:

# ifconfig ppp0 up
# ifconfig ppp0 add fc00:23::1
# ip route add fc00:23::2 dev ppp0

And then on the other machine, the reverse:

# ifconfig ppp0 up
# ifconfig ppp0 add fc00:23::2
# ip route add fc00:23::1 dev ppp0

Then the glorious:

$ ping6 fc00:23::2
64 bytes from fc00:23::2: icmp_seq=1 ttl=64 time=12.0 ms
64 bytes from fc00:23::2: icmp_seq=2 ttl=64 time=11.8 ms
64 bytes from fc00:23::2: icmp_seq=3 ttl=64 time=9.87 ms

Serial is cool.

June 23, 2009

Jeremy Visser

Why dynamic IPv6 subnet allocations for home users are evil

Posted by Jeremy at June 23, 2009 10:28 AM

Currently, a typical home Internet user will be assigned one IP address from their ISP, and then use NAT (Network Address Translation) to share the Internet connection among all their computers. The IP address assigned by your ISP is dynamic, and that is not a problem for the average home user, or even your typical power user.

Setting static IPs on computers is not all that uncommon, even among home users, excluding only the very most technically-illiterate ones. For example, your home router might be 10.0.0.1, and the other desktops in your house might be 10.0.0.10, 10.0.0.11, and so on. Then, if somebody drops by and wants to use your WiFi, they might be assigned an address via DHCP, such as 10.0.0.121.

This won’t work in IPv6 if, and only if, ISPs choose to make your subnet allocation dynamic. I urge ISPs to assign static IPv6 subnets to all their customers.

Why? Well, let me give my reasons. In IPv4, all the home machines in the above example are behind a NAT. This means the private IP address (10.0.0.121) gets dynamically translated to your public IP address (123.12.134.78).

Because of the absence of NAT in IPv6, this can’t happen! Your machine’s IPv6 address is tied to the subnet allocated to you by the ISP. And if your ISP changes your subnet every time you connect to the Internet as they currently do with IPv4, your static IPs will break horrendously.

I am aware of site-local and unique local addresses. These addresses are designed to be used only in a local situation, and not routed to the Internet. In theory, this could solve the problem, by allowing you to have a static local address, and a dynamic global address. In practice, this will not work because:

  • Site-local addresses have been deprecated by RFC 3879.
  • Unique local addresses are considered to be global addresses by current OSes. Wikipedia says that “despite the restricted, local usage of these addresses, they have a global address scope”, which means that your computer will assume either one can get to the Internet.
  • Thus, your source IP may be wrong, and your packet may be filtered and rejected by your ISP, or you may never get a reply, as the message won’t be able to get back to you.
  • Having both unique local and global addresses are confusing to the end-user, unlike link-local addresses, which are clearly marked as such, and are generally non-routable.

Finally, we must look at the reason why dynamic IPv4 addresses are assigned in the first place. I believe the main reason for this is to conserve space. With most of their address space used up, ISPs would have to count on all of their customers not using their Internet connections at the same time. Dynamic IP addresses means they can effectively over-subscribe their puny IP allocations.

In IPv6, this is not necessary. ISPs typically get a /32 allocation, which if you’re not familiar with CIDR notation, is bleeping huge! With a /32 allocation, an ISP could allocate more than 4 billion /64 subnets (which are suitable for a typical household) to each of their customers. I don’t think any ISP in the world has 4 billion customers, and if they did, they could get a /31 allocation, which would give them about 8 billion /64 subnets. Plenty of space for static allocations for everyone!

In conclusion, I’d like to summarise what I’ve been trying to bring out:

  • People that like to set static IPs on their machines will have them break if their subnet changes.
  • Site-local and unique local addresses only add to the problem, not solve it.
  • There is enough IPv6 address space in a /32 for everybody to have a static subnet.
  • There is no business advantage in giving out dynamic subnets. Do the best thing by your customers and go static.

So, dear ISPs of the world, please make static IPv6 subnets a part of your standard offering — not a “paid upgrade” or anything silly like that. It might work in the NAT’ed world of IPv4, but you will do your IPv6 customers a disservice.

Thanks for reading. :)

June 22, 2009

Jeremy Visser

Dodgy SSD

Posted by Jeremy at June 22, 2009 04:51 AM

This morning, on the train to TAFE, I fired up my Eee 901, resuming from standby. I was greeted by some pretty morbid messages in my tty:

[ 1589.499104] ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
[ 1589.499113] ata2.00: BMDMA stat 0x4
[ 1589.499125] ata2.00: cmd c8/00:20:00:00:00/00:00:00:00:00/e0 tag 0 dma 16384 in
[ 1589.499128]          res 51/84:00:00:00:00/00:00:00:00:00/e0 Emask 0x10 (ATA bus error)
[ 1589.499134] ata2.00: status: { DRDY ERR }
[ 1589.499139] ata2.00: error: { ICRC ABRT }
[ 1589.499180] ata2: soft resetting link
[ 1589.685741] ata2.00: configured for UDMA/66
[ 1589.692501] ata2.01: configured for UDMA/66
[ 1589.692524] ata2: EH complete

And the OS promptly crashed. I rebooted, and GRUB told me that it “Could not load operating system”. Great.

I did an fsck, and I saw the most number of errors I’ve seen in my life, seconded only by the time I mounted my Linux drive in Windows using the Ext2 IFS driver, and Windows crashed.

fsck found lots of orphaned files. My /lost+found directory was 2.5GB in size. /etc was only 8.0K in size. It didn’t boot.

So, I tried to reinstall by using my trusty Ubuntu 9.04 on my USB flash drive. I repartitioned /dev/sda, but the Ubuntu installer subsequently bombed out, complaining it couldn’t mount the drive.

I’m typing this from my live USB. Luckily Ubuntu 9.04 comes with OpenOffice.org 3.0, and I’ve been able to copy my fonts from my second SSD, which was unharmed, so I can work on my assignments.

I fear the SSD is stuffed.

June 21, 2009

Jeremy Visser

Certificate IV in Information Technology

Posted by Jeremy at June 21, 2009 03:03 AM

On Thursday, I was presented with my Certificate IV in Information Technology (General) from Campbelltown TAFE.

What does this mean? I’ll tell you what it means: fractals. The more you discover about something, the more you find out there is to learn. I’m currently doing the Diploma of Information Technology, due to be finished by the end of this month, which branches out even further into the mystical realms of network security, project management, and other crazy stuff.

Probably the most annoying thing at this point in time is the fact that the certificate is in landscape format, which means it will not look good next to my bassoon certificates, which are printed in a portrait format. I wonder if TAFE offers a certificate in document forgery so I can make a portrait version of the certificate…

New monitor

Posted by Jeremy at June 21, 2009 03:03 AM

I now have a shiny new BenQ G2220HD monitor. The resolution is 1920×1080, which means it can draw 1080p movies at their native resolution. I tried Big Buck Bunny on it, and it looks fabulous!

BenQ G2220HD

After a few minutes of use, a pixel on the right hand side went bright red, and stayed like that for a few minutes. Fortunately, pressing on it lightly made it go away. Here’s hoping it stays that way, as MSY Computers apparently tries to make it as hard as possible for you to return the device after seven days (regardless of legal requirements).

Perhaps the main reason for me getting the monitor is so I can pass my existing 17-inch HP L1740 on to Alec, who until now was stuck with a crappy Digital CRT monitor that only supports 1024×768 at 60hz, has become blurry with age, and the screen flickers off and on every few minutes.

Not only that, but multitasking will be made more awesome. At Campbelltown TAFE last year, I got to use the computers in the web design room, which were also widescreen monitors. I noticed I was far more productive being able to have a code editor and web browser on the screen at the same time, not overlapping, and at readable widths.

June 07, 2009

Jeremy Visser

Greener grass

Posted by Jeremy at June 07, 2009 04:44 AM

I’m currently working towards my Diploma, which I will hopefully finish by the end of this month. Until then, I need to get stuck into finishing assignments, including ones on network security, server design, and project management.

Some things I’d like to get around to doing when I’m finished:

  • Update Battle for Wesnoth for OLPC to the latest version of 1.6 (currently stuck at 1.4.5).
  • Get around to redesigning this blog to be a little more presentable, and a little more me.
  • Too much of my life is locked up in Twitter and Delicious. Would be nice to integrate them both into my WordPress theme nicely.
  • Finish off some Python projects, such as an ABC iView browser and my Volcano game.
  • Reading. I got given a truckload of books a couple of weeks ago — mostly Java books, but also one on UML which looks interesting.

And, of course, there’s bassoon. I’m hoping to do my LMusA (Licentiate) exam this year, although it may prove to be too much for this year, in which case I can work on it for next year.

May 02, 2009

Jeremy Visser

Volcano

Posted by Jeremy at May 02, 2009 01:57 PM

I’ve been working on a game which I’ve simply dubbed “Volcano”. It’s a simple logic game written in Python (using Pyglet) that has an erupting volcano on a grid, and you need to place pipes to make a path for the lava.

Volcano

It’s meant to be a remake of the classic Lavacap, which is an old DOS game that I loved playing when I was younger.

It’s coming along slowly but surely. The code is on Launchpad. At this stage, I’m not sure if anybody is interested in working on the game or even playing it, so I’m just throwing this out there to let people know. To try it out, first install Pyglet (package python-pyglet in Ubuntu/Debian), and then run:

$ bzr branch lp:~jeremy-visser/+junk/volcano
$ cd volcano
$ ./volcano.py

The game is not fully functional yet. You can lay out pipes, and it has some unfinished path tracing algorithms, but that’s pretty much it. To get an idea of what I’m trying to clone, run the original Lavacap in something like DOSBox..)

The game is written in Pyglet, which is not the most resource-friendly environment. However, it should be fairly easy to retrofit it onto a GTK+ GooCanvas or other application. If anybody is interested in helping out, then let me know (and bzr branch is your friend).

April 30, 2009

Jeremy Visser

Plague of mice

Posted by Jeremy at April 30, 2009 07:41 AM

While I prefer the cold weather to hot weather (it’s much easier to warm up than cool down), it seems to have two awful side-effects.

One, it’s harder to get up in the mornings. I have enough trouble with that without the cold weather.

Two, mice have been raiding our house for comfort and shelter. Two nights ago, I caught a mouse in my bedroom. I closed the door, cornered it in the corner of the room where the bed is, and proceeded to sift through every single box under the bed.

Of course, the mouse was nowhere to be found, so I left the door open so he could find his own way out. And I just found their way out: through the front door. Turns out there is a slight gap on the hinge side of the door that the mice can squeeze through. How do I know? I just caught two in the act.

Mice: just take what you want (bedding, food, supplies) for the winter and leave us alone!

April 27, 2009

Jeremy Visser

WP 2.8 Design Challenge: to free or not to free?

Posted by Jeremy at April 27, 2009 10:20 AM

I just read that WordPress is holding a design challenge for a brush-up of the current administration administration interface for the upcoming version 2.8. Here’s an mockup of what they’re looking for in a new design:

Matt T's mockup

I am very happy with the WordPress 2.7 interface, and I am even happier that it is going to be polished and made even better with 2.8.

Unfortunately, entrants to the challenge must be based on the .psd file by Matt Thomas, which in their own words is because:

We’re providing Matt’s .psd file for you to work from. Please do not create your own file and submit that, since if your design is chosen but your file isn’t in the right format, we won’t have time to let you fix it. Just edit over the layers.

The problem? .psd is the proprietary format of Adobe Photoshop, which is a proprietary program that costs hundreds of dollars that also only runs on other proprietary operating systems.

So because I choose to use free software for my day-to-day tasks which is morally better and technically superior (SVG is much better for such mockups), I and hundreds of other WordPress contributors would be unable to submit my designs for the competition because of the simple fact that they choose to be locked into a proprietary format.

Photoshop may be the most widely used mockup program among web designers out there. So what? It requires you to step into a world of proprietary non-free software that has ideals directly contrary to that which enabled WordPress to flourish in the first place, and expend hundreds of dollars that is simply unnecessary.

I don’t mean anything personal to anybody — at Automattic or Adobe — I just thought the folks at Automattic were into this whole open source thing.

Do not alienate the community that gives you your very existence.

The solution? Don’t just accept open formats created by free software; actively encourage their use — hire someone who knows how to use them.