WorldPainter: Myst Island
Recently, I've been playing around with WorldPainter. It's a tool for creating custom maps for Minecraft, where you can just paint on your mountains, valleys, lakes, biomes, trees, and other details about your map, and then export it as a new Minecraft map to play on.
It also has a feature to import a heightmap file, which is a grayscale image where brighter shades of white represent higher mountains, and lower shades are the lower elevations of the map. With this, you could design a terrain in a variety of different tools, export a heightmap of your terrain, and through WorldPainter, convert it into a Minecraft map. You can paint in the biomes and other features first in WorldPainter, of course.
The image is 500x500 pixels, and the brightest shade of white is about 253, so if we imported this into WorldPainter as-is, half the island would be flooded (with the default water level of 62), and that mountain would reach higher than the clouds. So, first, I adjusted the levels in GIMP (Photoshop or something could've been used instead) to raise the lowest shade of black to just below the water level and lower the brightest shade to something more reasonable.
Because the heightmap included some underwater hilly structures, I brought the lowest level up to 52 instead of 0, and lowered the highest level down to 120 from ~255. This resulted in the following image:
After importing it into WorldPainter (via File->Import->Height map), this is how the map looked:
I exported the map immediately to see how it would look in-game. I found that the original scale of the heightmap made the island a little bit too large, so I tried again but scaled it down to 50% when importing the heightmap. Here you can see the difference (click for larger versions):
It's all a trial-and-error kind of thing. I had to tweak the levels of the heightmap a handful of times to get it to look just right, and scaling it down to 50% might not even be the perfect scale either (but you wouldn't know until you started trying to build on it). This is a pretty neat tool anyway. I'd probably recommend making your own terrains rather than trying to use someone else's (for example Myst Island), because then you'll get a lot fewer headaches when trying to build on the map and trying to get the scale just right and everything.
My ISP in Los Angeles is Time Warner Cable, and I'm pretty sure they're cheating on my speed tests. I pay about $39 a month for either 15 Mbps down or 20 (I don't remember which), and when I run speed tests on sites such as speedtest.net, I always get a download speed between 15 and 20, usually around 17 on average.
But, the entire rest of the Internet totally sucks. I'm using Google's DNS (because Time Warner Cable's have been absolutely useless, like making me wait several minutes just to resolve a domain name), so that's not part of the problem either. It seems also that on the general Internet, the entire network drops in pulses every 30 seconds for 5 seconds at a time. So if I'm on Reddit, and click to expand a dozen imgur links with my RES extension... all of the links take a while to load, and then all of a sudden they all load at the exact same time.
I was reasonably sure that Time Warner Cable was using traffic shaping to "put on a good show" for Speedtest.net, and throttling my network speeds for all the other sites. So that if I called and complained about my slow Internet, they'd say "go to Speedtest.net and see for yourself that you're getting your 15-20 megs down that you're paying for" when instead, they're cheating on speed tests and slowing me down on every other site in the world.
I just had to find a way to prove it. The idea I came up with was to proxy my speed test through a fast web server. My web server, though, wouldn't cut it. My server got 900 megs down, but only like 12 megs up... which I thought was absurd, because a web server's entire purpose in life is to upload web content to the end users. A server's upload speed is the bottleneck that controls your maximum download speed when downloading data off of it.
I migrated to a new web server that gets much better results on speed tests, and its upload speed is higher than my quoted download from my ISP. So, I used it to try and test whether my ISP is cheating on me.
The tools I used: speedtest-cli, a command line Speedtest.net client (so I don't have to worry about trying to proxy Adobe Flash traffic, which is notoriously difficult to do), and proxychains, a Unix tool that lets you force any other program through a proxy regardless if the program wants it or not. This way I could proxy
speedtest-cli to run through my web server instead of directly hitting up Speedtest.net.
My web server is hosted in Kansas City, MO, which is a bit of a drive away from Los Angeles, so to remove any geographical bias from the equation, when I ran my speed tests from my web server, I selected Speedtest servers here in Los Angeles. This showed me that my web server was able to download and upload reasonably fast from Kansas City to LA, and that the opposite should be true as well.
I'll let the results speak for themselves (note: I'm hosting these images here locally because I'm not sure speedtest.net hosts the results on their server forever. Clicking the images though will take you to the link that speedtest.net gave me). I did two rounds of tests for redundancy.
|PC Speedtest||Server to LA||Proxychains|
wgetinitially spiked to about 500 some entire kilobytes per second (about 4,000 kilobits or 3.9 megabits) before quickly dropping to between 100 and 200 KB/s (or 800-1600 kilobits/s) for the remainder of the file transfer. Overall it took 22 minutes, 46 seconds to download. Given my quoted download speed of ~17 Mbps, and my server's upload speed of 35 Mbps upload to Los Angeles, this is inexcusable.
For those who like the dirty details, I copy/pasted my terminal outputs from speedtest-cli and you can see them here: speedtest-cli.txt. So you understand what you're looking at:
aerelonis my local PC.
debianis my web server.
proxychains ./speedtest-cli --shareis me running the proxy through my web server.
[kirsle@aerelon ~]$ cat .proxychains/proxychains.conf | grep -v '^#' strict_chain quiet_mode proxy_dns tcp_read_time_out 15000 tcp_connect_time_out 8000 [ProxyList] socks5 127.0.0.1 8080Where
127.0.0.1:8080is a SOCKS5 proxy over SSH to the web server.
I've migrated Kirsle.net and all my other websites and MineCraft servers to a new home. They're now on a beefier dedicated server (8GB RAM instead of the old 4GB) which is actually 50% less expensive than the old server.
My Minecraft servers are being rearranged as well. This new machine has 5 IPv4 addresses, and each of my MC servers will get its own IP and hostname instead of having to juggle port numbers.
I'm writing this blog post from Pidora 18, a build of Fedora Linux for the Raspberry Pi ARM computer.
I'm going to compare it to Raspbian, which is the usual OS that people install on their Raspberry Pi's.
As far as speed goes, Fedora 18 runs pretty well on this device. I haven't directly compared it side-by-side with Raspbian, but I haven't noticed any real annoying slow-downs at all. They've optimized Fedora 18 to run well and take full advantage of the floating point unit on the Pi, which previous versions of Fedora didn't do.
One huge plus with Fedora over Raspbian is that the NetworkManager applet comes installed and set up by default (as it does on all Fedora OS's). It was super easy to connect to my wifi network with it. Under Raspbian, there's only the
wpa_gui, and it doesn't work very well for me and I have to click the "Connect" button a dozen times before it finally connects. The NetworkManager applet is a huge improvement.
The Pidora distro comes with the XFCE desktop environment, as opposed to Raspbian's LXDE desktop (on my Raspbian, I had gone ahead and installed XFCE anyway). On my setup, audio was working how I want it to out-of-the-box. I have my Pi connected to a DVI monitor, using an HDMI to DVI adapter. In Raspbian, I had to uninstall Pulse and hack ALSA up to make it send audio out the analog jack instead of HDMI, so that I could connect it to some proper speakers. In Pidora, Pulse wasn't even installed by default, and ALSA already knew to send the audio through the analog jack.
I also managed to get Minecraft: Pi Edition to run on Pidora. I just needed to install
SDL, and fix the permissions on the vchiq device (using instructions I found on the Raspbian Quake3 page), and I was good to go.
The biggest downside to Pidora is that there is no RPMFusion for it. They rebuilt pretty much all of the standard Fedora packages for the ARMv6 architecture, but upstream Fedora doesn't include anything non-free, like MP3 support, and so Pidora doesn't have that available in their repos either. Raspbian is a better bet if you need MP3 and video codec support, unless you want to compile the software yourself.
I think I'll stick with Pidora though. It's a lot more familiar since I run Fedora on all my other computers, and pretty much everything about Fedora is exactly the same in Pidora.
Here's some info on installing Windows 8 Pro on a Samsung Series 5 Ultrabook, in case anybody else has one and they wanna reinstall Windows from scratch.
To get the basics out of the way first:
My particular laptop (the 13.3" variety) includes a 500GB hard drive and a 32GB SSD drive, which apparently is the ExpressCache drive. This is important.
So first, how to get Windows 8 to actually attempt to install. You can't just boot a vanilla DVD or USB, because the installer will see the OEM product key baked into the BIOS, and complain because it's for Core Edition and you're trying to install Pro Edition.
You need to make a USB installer for Windows 8 using the "Windows 7 DVD/USB Tool" (Google it). This is because you have to add a text file to the USB. You might be able to modify an ISO to add the text file to it, but you're on your own there.
Open Notepad, and create a text file named "PID.txt", and put this in as its contents:
[PID] Value=XXXXX-XXXXX-XXXXX-XXXXX-XXXXXSubstitute the X's for your Windows 8 Pro product key. Place the text file in the Win8 USB under the "sources" directory, for example
Now when you boot from the USB, Windows will use that product key instead of looking in the BIOS. And the installation will continue as normal.
But, it won't boot from disk after the installation is done. This is because the Windows Installer saw the 32GB ExpressCache disk, and it installed its bootloader onto that disk instead of onto the primary hard drive. The problem with this is that the BIOS on the laptop can't see the ExpressCache disk, and so it can't boot Windows from it.
I saw a couple solutions floating around the Internet for this. One solution said to format the ExpressCache disk with a Mac OS X file system, so that Windows wouldn't make use of it for its bootloader. You could probably format it with a Linux filesystem as well and get the same result. In this case, Windows 8 would've installed the bootloader directly onto the primary hard drive, and the BIOS would be able to boot it. This isn't much help to you, though, if you don't already have Windows installed to be able to format this partition.
What I did instead when I got to this point was... go ahead and install Linux. When I installed Windows 8, I gave it a 128GB partition on the hard drive. I gave Linux the remaining space to partition up as it pleases. When Linux installs the GRUB bootloader, it installs it onto the primary hard drive. This means the BIOS is able to boot GRUB... and, GRUB is able to see the Windows 8 Bootloader on the ExpressCache disk. Score! So now you can boot either Linux or Windows from GRUB.
This is what worked for me, anyway. If you don't wish to dual-boot Linux on your laptop, you may want to just boot a Linux LiveCD/USB, format the ExpressCache disk (/dev/sdb, probably) with a Linux filesystem like ext4, and then run the Windows installer again. Theoretically, Windows won't touch the ExpressCache disk to install its bootloader, and will install it on the primary disk. No guarantees that will work, though, as I haven't tested it.