Monday, January 23, 2012

Minecraft: Best Doorbell Ever

Now they just need to let us pimp our minecarts.

Tuesday, January 17, 2012

Minecraft: FreeBSD

I've been running a Minecraft SMP server on FreeBSD for the better part of a year now, initially on FreeBSD 8.2 and, for the past several weeks, on a custom build of FreeBSD 9-RC3 (named 9-FUZZYKERNEL), with only two process crashes. Getting the Minecraft client to run consistently on FreeBSD can be another story, though.

Now, Java on FreeBSD is a wonky thing. It was never officially supported by Sun and/or Oracle. There are two native ports, but neither works 100% of the time, and the official Linux JDK/JRE can be run in compat mode, but it's also problematic. Now, I seem to recall that when I started playing well over a year ago, I could play on my old FreeBSD 8.x desktop, even though it was graphically unpleasant, but I could be wrong. The client now won't work with either the diablo-jdk1.6, diablo-jre1.6, or jdk1.6 Java ports. The launcher will start, but after logging in, the window shows the error "Failed to launch / Fatal error occurred (2): null" and nothing further happens. (Someone running PC-BSD 9 has the same issue, so it's not just me and not just vanilla FreeBSD.) I don't know enough about Java to know if that's a bug on the FreeBSD JDK1.6 end or on the Minecraft end, but either way, there's no game-playing joy.

Now, I don't really care, since I mostly play Minecraft on my linux craptop, but that academic curiosity kicked in. There's still the Linux JDK, which is a bigger pain in the ass to set up, but I finally got around to it, and it seems to work.1

How to Run the Minecraft Client on FreeBSD

(This should also work on PC-BSD 9, although (a) I haven't tested it, but (b) you will need to take additional steps to set up the traditional FreeBSD ports tree.)

  1. Install the following ports. (Make sure you /usr/ports tree is up to date! You've run cvsup with a good ports config, right!?2) I'm hardcore and eschew installing the pre-compiled packages in general, but since Sun's Java has specific licensing terms, you can't install it as a package anyway, so just bite the bullet, set up the ports tree, and have at it.
    • linux_base-f10
    • linux-f10-dri -- May be optional in some environments, I'm not sure, but install it if you get libGL not found errors
    • linux-sun-jdk1.6.0
  2. Make sure the linux kernel module is loaded. As root: "kldload linux"
  3. Make sure the linux proc filesystem is mounted. As root: "mount -t linprocfs linprocfs /compat/linux/proc"
  4. Since you need to set up a couple environmental variables that you won't normally want set, I suggest making a dinky startup script:
    $ cat runmc
    export JAVA_HOME=/usr/local/linux-sun-jdk1.6.0
    export LD_LIBRARY_PATH=/compat/linux/lib:/compat/linux/usr/lib:/usr/local/linux-sun-jdk1.6.0/jre/lib/i386
    java -cp minecraft.jar net.minecraft.LauncherFrame
  5. Get the Linux minecraft client jar file from and then have at it.
P.S. The game does seem to crash whenever I quit (at least the timing is convenient), but it freezes instead of dying. It likes to leave around a lot of java processes, too, so you may want to check and kill them as necessary.

1When I tried to run the client on my FreeBSD 9 desk top, which I had logged into over ssh with X11 forwarding on from my linux laptop, the client started, but after I logged in (the point where it starts the game launcher), I'd get the error "org.lwjgl.LWJGLException: Could not choose GLX13 config" However, if I try to play Minecraft on the FreeBSD box's local display, it works, and since I can also run Minecraft locally on the linux craptop, I assume it's some issue with X11 forwarding. Since I don't plan on playing remotely normally, it's not an issue for me.
2This is the ports-supfile I use, sans comments:
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=.
*default delete use-rel-suffix
*default compress

News: January 18 Will Be National We R St00p1d Day

Don't ask me any questions outside of my normal expertise tomorrow, because Wikipedia is going to black out its English-language sites to protest the SOPA/PIPA bills working their way through Congress right now.

SOPA and PIPA (one is going through the House and the other through the Senate; if each passed their house they would have to be reconciled and then signed by President Obama, who has said he would not veto, to become law) would, according to pretty much all of the major Internet technology experts, break the Internet as we know it, requiring Internet service providers to blacklist websites accused (not legally convicted) of copyright infringement, and it could easily be abused beyond its prima facie purpose of restricting copyright infringement. The laws are technologically, constitutionally, commercially, and fundamentally dangerous and flawed, and could break the Internet not just philosophically, but technically.

Look, I respect copyright holders' rights. However, the main bill sponsors are the big media companies who still haven't figured out a way to deliver the content consumers want and, in the vast majority of cases, are willing to pay for if it could be delivered in a technically user-friendly, reliable, and affordable way. And the movie studios and music companies haven't figured out how to do that. These companies are literally acting like Luddites; trying to smash the technology they can't control, which they blame (in this case, wrongly) for lost revenues, by trying to stifle innovation since they can't find a business model that keeps up.

Plus, to me, the proposed government-maintained blacklist smacks of hypocrisy. We've seen revolutions in places like Egypt where the government responded by trying to block the Internet, and where our government said, and I'm quoting Secretary of State Hillary Clinton here, "For the United States, the choice is clear. On the spectrum of internet freedom, we place ourselves on the side of openness." It becomes much more difficult to condemn the Great Firewall of China when our own country starts altering basic Internet addressing and routing to block sites.

Now is a good time for Americans who are concerned about protecting the innovation and freedom of the Internet as we know it to let your elected officials know that you are concerned about SOPA and PIPA. An easy way to do so is by using the Electronic Frontier Foundation's Action Center.

I will now get off my non-partisan political soapbox and return this blog to its regularly-scheduled barrage of lolcats and bad knitting puns.

Saturday, January 14, 2012

Spoonerisms: Spooner-Man

To the theme of the 60s Spider-Man cartoon series:
Spooner-Man! Spooner-Man!
Doing the things a Spooner can!
Spoons a lot! He's so sweet
He's got chubby kitty feet
Look out! Here comes a Spooner-Man!
I came down with a head cold yesterday, and I'm somewhat sleep-deprived since it wouldn't let me get much sleep last night, so I'm a little loopy.

P.S. I've been singing that song to Spoon for years.

Thursday, January 5, 2012

Knittin' Crap: To Boldly Go Where I Probably Shouldn't

I just signed up for enlisted in the Starfleet Fiber Arts Corp on Ravelry. I'm probably opening myself up for a world of hurt, but at least I picked the gold uniform!

What is this madness, you say? I'm not sure, either. But according to the group page:
Welcome to the 24th century! As members of Starfleet, all players will begin the game as ensigns and be assigned to a starship. Complete monthly missions, advance in rank, earn medals and commendations and more!
Where, of course, missions involve making yarny stuff.

If you don't hear from me, you may need to check the casualty rosters for my name.