Engineering and Minecraft

It’s been a while. I get the feeling that I’m writing to an empty room, which contributes to the lack of content. If this is not the case, please let me know. These are still nice to write sometimes though.

I’ve discovered Minecraft. It’s a sandbox game like no other. The world is a natural landscape generated out of one-meter cubes: hills, mountains, valleys, caves, forests, beaches, deserts, plains, tundra. The fact that’s it’s generated makes it not only different each time, but also incredibly huge: the maximum size of the Minecraft world is limited only by the precision of a 64-bit double. This apparently works out to eight times the surface area of the earth. There’s a lot of exploring to do. However, that’s not all that makes Minecraft different: there’s no goal. There is no objective that the player is pushed to, other than to make their own. I can easily see this being a bad thing for some people, but after playing my fair share of linear games I find it quite refreshing. The player starts out with nothing more than a pair of hands to manipulate the world and works up from there: resources can be gathered to form ever more powerful tools, which can be used to manipulate the world faster. As it’s constructed of blocks, the entire world can be removed block by block, and placed back as seen fit. This allows for the construction of huge castles, tunnels, pits, mines, houses, and highways. There’s a pride in standing inside a shelter built with one’s own virtual hands. I also found Minecraft-Overviewer, which is an application which parses Minecraft maps and renders them into Google Maps tiles so that it can be inspected from above at multiple zoom levels, which sets it apart from single-image renderers such as Cartographer, although Cartographer has many more options. If you’re interested, you can view my world, but I warn that I haven’t built much above ground and it brings the lack of upload bandwidth into sharp focus with its slowness. But it’s there. (EDIT: never mind.) Monsters spawn in the dark: nightfall is terrifying.

In my engineering course I’m part of a small group that elected to automate a small hovercraft instead of relearn programming concepts we’ve already been over multiple times. Instead of learning more coding, we’re focusing on hardware. Our current status is soldering the chips on a board so that we can attach is to the rate table without it flying apart and eventually mount it on the hovercraft. I spent a few hours with gnuplot_i and GNU Scientific Library to make these graphs. I know the value of R^2 is wrong, I’m not quite sure what it is as I’m having trouble with the statistics functions in GSL and have never taken a statistics course. I hope to get it sorted out soon.

Graph of ADC3 calibration

Graph of ADC5 calibration

Graph of ADC6 calibration

What these show is the data we collected for the channels: we fed it known voltages in 0.1v increments and recorded the count given by the ADC, then found a best fit line for each one. They’re similar, but slightly different: I hope the difference isn’t just sampling error. At the very least they all seem to dip down until around 0.4v and float up until around 1v, so we may need to make something more complicated than a straight line to account for that.

Wolverine Soft

It’s not fun when you have to scroll down to see the last link to a required piece of online homework that’s not done. That monotony aside, things are going pretty well. I’ve discovered that Wolverine Soft is great – I hadn’t really realized how much I missed sitting and coding on a game for a day.

Sound Modification and Logic Games

I found a sound tool that’s interesting. I built the SVN version, and while following the Install From Source page I ran into two problems: my ffmpeg wasn’t compiled with –enable-libmp3lame, which apparently resulted in 0-byte output, and I didn’t realize the ‘where ffmpeg’ part of the link was meant for me to fill in, although in retrospect I feel silly. If people are interested in a more in-depth tale I can put together a guide for getting it running under Debian/Ubuntu.

I also discovered via Reddit an interesting logic game called Manufactoria. My sense is that it takes a rather strange type of individual to enjoy it. My complaint is that the music is quiet and the mute button doesn’t actually stop it.

Categorized as Software


I found Synergy+! I have a Linux box set up next to my Windows one now, and I can slide my cursor between the monitors of the different machines, and control both with one keyboard and mouse! The Windows machine runs the server. I’m using a stereo Y-cable to connect both machines to the speakers. I’m concerned that it might not be good to connect two sound outputs to the same cable, although there are speakers so it’s not directly between outputs… I really need to learn about electricity!

Synergy+ was surprisingly easy to set up, and following the directions worked without issue. I set up sshd on the server using Cygwin by running ssh-host-config and following the instructions. Running ssh-keygen got me my RSA key for the client, which I copied into ~/.ssh/authorized_keys in Cygwin so that I could have passwordless login. With passwordless login, I was able to add the creation of an SSH tunnel alongside synergyc localhost.  (localhost so that it uses the tunnel.) I also have the server running as a system service.

The end result is that Synergy+ is automatically started and securely tunneled. It’s pretty fun. Perhaps next in my string of projects will be setting the second monitor up on a monitor switch so that I can change between dual-monitor on one machine and one monitor each.

At the end of this break I will have attended no less than five Christmas parties. Too much travel!

EDIT: After accidentally closing Firefox on my left screen by attempting to open a menu on the far left of my right screen, I realized I could start the transfer range between screens at 5% and end it at 95%, making a part of the top and bottom of the shared edge not transfer. Hooray configuration!

EDIT Jan 17 2010: I now use autossh to make the tunnel persistent. Combined with Synergy+’s ability to retry connections, this makes it a lot easier to keep the machines connected between reboots.


I decided to compile the latest OpenSSH, largely because I can, and partially because I was trying the throughput patch. It didn’t work out too well, which might be due to my aging hardware. I discovered that after removing Debian’s package and compiling and installing OpenSSH from source, I no longer had a running sftp-server. After some investigation, I found that although it was attempting to load the sftp-server subsystem in /etc/ssh/sshd_config, the executable was missing. I copied it from the compilation directory to the directory set in sshd_config, set the permissions, and restarted sshd. It works now!

Categorized as Software

Driving Test and CSS

I’ve been trying to learn some CSS and HTML, and in doing so I have found why people prefer PHP and MySQL for lots of pages with consistent layout: it is easy to change something on all pages. To be sure, my theme uses CSS, but if I wanted to change the footer text, CSS would be of no help. That said, I’ve found excellent resources, and I think it may prove to be useful later on. As a less resource-intensive solution, which I’ve set up with wp-cache, is to have WordPress output saved as static pages. This gives good response time and easily edited content.

I’m taking my driving test tomorrow and I’m intimidated. I read the booklet, and I hope I pass.

Cables, Infections, and More!

A few days ago I brought my desktop over from Dad’s and set it up at Mom’s, along with a switch to connect both desktops to the network. Someone accidentally bumped the switch, and the cable that brought the network connection up from the basement could not be wiggled back into working again. My hasty crimp had given out. I took my single remaining cable end, and managed to, after maybe two tries, get what seemed like a flawless crimp. Only having one end, and thus one chance at crimping to get online, was a very powerful motivating force. Upon further inspection it is not perfect, but it’s better than other crimps I’ve made. Maybe the loading bars I anticipate getting will help.

I cleaned up a machine at KI that was very badly infected. Our tools took care of the infection, but what took me a really long time to realize was that ndis.sys had been infected and deleted by the scanners. Everything was working except for networking devices, which showed up with corrupted drivers. Fresh drivers did nothing, and uninstalling the drivers did not actually seem to do so. Copying ndis.sys over from another machine fixed the problem.

My Dad sold his house, and we have now moved to Wendy’s house. At this point my room has no blinds, and my desk is in pieces. My room has the feeling of a LAN party in a metaphorical tornado – there are objects one might expect to find in a bedroom, except in strange locations and often not assembled. I hope this gets sorted out somewhat quickly.

TX Underrun

Ever since I set it up, once my pfSense box has been running for a while it seems I will plug in the monitor to find two, three, or more messages about TX underruns, such as

dc0: TX underrun -- increasing TX threshold

However, my network started being slow to respond on the 6th, going so far as to drop one packet when I pinged Google. The LAN side was just fine. Yesterday I plugged the monitor into the router to see what was up, as I was unable to find a system log of console messages. The last message was

dc0: TX underrun -- using store and forward mode

My understanding is that this is why it became slow. This machine is not screaming fast by any means. It has 504 MB of RAM and a 499 MHz Pentium 3. Looking in the WAN interface settings, I realized I had misunderstood and set the wrong MTU. I saw the size for PPPoE, and given its mention in my modem’s configuration, I had understood, incorrectly, that my router would use PPPoE. (Even though the WAN interface was visibly set to DHCP on that very page.) I now do not know why I felt the need to set this manually, and as I reread my modem’s status page I feel more and more mystified as to how I came to that understanding: PPP on the modem (Public IP for LAN device). I left the field blank as to allow pfSense to set the MTU,  and my WAN connections are speedy again.


Today I learned that the proper way to check system mail on a Linux box is not by moving or deleting files from /var/mail, but using the mail command. Imagine that! I had to read the man pages to figure out how to use it, which is to be expected for a command line utility. I’m also looking at rdiff-backup to see if I can use it for real, scheduled and incremental backups instead of the current full-backups-when-I-remember system. (Please don’t hurt me for admitting it! I’m not proud to say it!)

EDIT: Daily backups are now scheduled.

Categorized as Software