Setting up a Multiplayer Voxelands Server on Debian

I mentioned an intention of setting up a Voxelands server a month ago so that Macsen and I could play in the same environment, and I have now finally gotten around to doing this. The server itself is running Debian 8 and the process turned out to be surprisingly painless.

I installed the Ubuntu deb from the Voxelands download page using gdebi, because I need my dependency resolution:

wget http://www.voxelands.com/downloads/voxelands-1602.00-ubuntu-x86_64.deb
gdebi voxelands-1602.00-ubuntu-x86_64.deb

And starting the server is a simple case of typing:

voxelands-server --port 30000

And, if I was going to run this only once, this would be enough. But as I want this to be available as and when required, it’s time for Systemd.

Handily, the Voxelands site provides a sample Systemd.service, so I copied and pasted it into /lib/systemd/system/voxelands.service with just one change:

ExecStart=/usr/local/bin/voxelands-server --port 30000

Then it’s just a case of enabling it:
systemctl enable voxelands

And starting it:
systemctl start voxelands

Now all I need to do is to upgrade the client versions so that they match the server.

Flattr this!

Voxels ate my weekend

Sunrise
Sunrise

Last week Macsen expressed an interest in Minecraft. He has access to an old laptop of mine, so I spent an evening upgrading it from OpenSuse to Antergos and installing Voxelands1 on it, along with a number of other games. I also installed Voxelands on my own laptop so that I could understand the interface well enough to answer any questions that might crop up.

I didn’t intend to start playing the damn game.

I did, however, spend a bit of time poking around the wiki so that, on Friday, I was able to show Macsen how to make a crafting guide and set him going. And he was off, digging, crafting and building. So much so that we had to crowbar him away from the laptop when it was time to eat2.

On Saturday Macsen asked me how my house was going. So I opened up my laptop and showed him what I’d built while tinkering around. Macsen showed me how to build a furnace and went away to copy my house design.

The rest of the weekend was a bit of a blur of YouTubery, sharing of ideas (something in which the twins were able to become involved), digging, crafting and building. And I have to say that there is something quite magical about an eight-year-old enthusiastically describing what he’s discovered and planning his next project.

At present we are both playing in single player mode. We have talked about shared worlds and I am thinking of setting up a small local3 server, but that is a task for another weekend.

I’m not normally much of a gamer but Voxelands has me hooked. It’s immersive, expansive, endlessly entertaining and frighteningly addictive. Darkrose and the rest of the Voxelands team have done a fantastic job so far. Long may they continue.

Footnotes

1 Voxelands is a fork of Minetest which is an Open Source implementation of Minecraft. From my limited reading, my understanding is that the Minetest developers have emphasised their modding engine at the expense of playability. Voxelands has dropped the modding engine and seeks, instead, to deliver a game that is complete, playable and fun. And playable is what I was looking for.
2 Figuratively speaking, of course. But now I’m wondering if it’s possible to craft a crowbar.
3 As in local to my home network and not connected to the interwebs.

Flattr this!

Bad Facebook. No Cookie.

Facebook’s ongoing attempt to get around EU privacy legislation in Belgium has taken a turn for the semantic:

Facebook has appealed a ruling from the Court of First Instance that supported the Belgian data authority’s demand that the social media network stop tracking users.

The court’s ruling contained some English words — like cookie, homepage and browser — which could violate a Belgian law that says all rulings must be in the official languages of the country: French, Dutch and German. Facebook has said this means the whole ruling must be annulled.

Facebook’s lawyers need to get out more. They’re not fooling anyone with this.

Privacy lawyers not associated with the case told POLITICO this is a “desperate, petty and last-ditch” attempt to avoid Belgian justice.

And that’s putting it mildly.

Flattr this!

Mongo only pawn… in game of life*

About a week ago, Ben Everard on Linux Voice posted an introduction to MongoDB from issue 11 of the magazine. So I thought that now would be a good time to go and see what all the cool database kids are talking about`.

One thing that isn’t mentioned, and which came to bite me, is that Mongo needs to have 3GB available for its journal and other data. This all goes into /var/lib/mongodb and, in my case, this is in my already undersized root partition. Thank you, GParted for digging me out of that particular hole.

Installing MongoDB on my Antergos box is easy:

# pacman -S mongodb mongodb-tools

The mongodb-tools provides import, export and diagnostic capabilities and become useful later.

And then the thing that I always forget. Start the daemon:

$ systemctl start mongodb.service

After this, you can launch the MongDB shell with the mongo command, and you’re in.

Ben’s article is certainly an interesting introduction, but what I found more useful was this article: Getting Started with MongoDB (MongoDB Shell Edition). The guide provides installation instructions for various operating systems, which you can skip past by clicking here. This guide also provides a database that can be downloaded, imported and played around with.

It’s surprisingly easy to get a handle on the basics of MongoDB, and I can certainly see how the objects and methods approach to building and managing data provides a lot more flexibility than traditional relational databases. Now I just need to come up with a project to justify seeing just how much I can get out of this.

* Because whenever I see the name Mongo, I think of this guy.

Flattr this!

Facebook and the droppings of a male cow

A couple of weeks ago, I mentioned that Facebook had reacted to a Belgian privacy ruling by blocking access to any Facebook page to anyone in Belgium who isn’t signed in to their Facebook account. And now I have actually been affected by this.

We decided, for various reasons, that a takeaway would be a good idea and agreed on which takeaway to go to. Not being particularly familliar with the restaurant in question, I looked them up on Resto and clicked through to their website to see if I could find a menu.

Their “website” turned out to be a Facebook page, so what I was presented with was this.

Sorry, this content isn’t available right now. We have implemented additional security features that require you to log in to Facebook to view this page from Belgium. Learn why.

Being curious, I clicked on the Learn Why link. And here’s what I learned:

Keeping your account secure is extremely important to us.

But I don’t have a Facebook account. And the reason my access is blocked is because I don’t have a Facebook account. So to claim that this is to keep my account secure seems disingenuous at best.

Because of demands made by the Belgian Privacy Commission, we recently had to limit our use of one important security tool, the datr cookie. Please read on to learn how this tool works and why we’re no longer showing public Facebook pages and other content in Belgium to people who don’t have Facebook accounts.

I’m reading…

This cookie is a security tool we’ve used for more than 5 years around the world to help us tell the difference between legitimate visits to Facebook by real people and illegitimate ones (by spammers, hackers trying to access other people’s accounts, or other bad actors).

This cookie can help us secure Facebook by providing statistical information about a web browser’s activities, such as the volume and frequency of requests. Our security systems analyze this browser data to help us tell the difference between regular people logging into their accounts and potential attackers.

So what Facebook appears to be telling me is that they need to suck up my browser history in order to work out whether or not I’m a legitimate visitor.

And, it turns out that this is exactly what they are saying.

The Belgian Privacy Commission, however, has required that we stop using the datr cookie when people without Facebook accounts in Belgium interact with Facebook. In the absence of this tool, we have to treat any visit to our service from an unrecognized browser in Belgium as potentially dangerous and take additional steps to help keep you and other people secure on Facebook.

Really? You can’t just serve up a static page?

I believe that Facebook is written in PHP, in which case the pages are generated on the server and served as HTML. If I’m not logged in, I can’t — and wouldn’t expect to be able to — access any dynamic content and a plain old HTML file is about as secure as you can get.

We recognize that these measures unfortunately may limit and interrupt your experience on Facebook.

I’m sure you do.

Flattr this!

Search suggestions in Firefox

Firefox 43 was recently released. Once installed I noticed that when I start to type a url into the Awesome Bar it asks me if I want to improve my experience with Search Suggestions.

Many search engines (including Yahoo, Google, Bing and others) provide search suggestions, which are based on popular searches other people make that are related to a word or words that you enter. When Search Suggestions are enabled, the text you type into the search box is sent to the search engine, which analyzes the words and displays a list of related searches.

This is one of these things that is useful on a phone but probably more trouble than it’s worth on the laptop. I tend to use the Awesome Bar to quickly search my browser history (to the point that I no longer bother bookmarking anything), so adding search suggestions would probably be more confusing that enlightening for me.

Still, it’s easy enough to switch it on and off again, so there will be no problem if I change my mind.

Flattr this!

Change is the only constant

WordPress 4.4 was released yesterday and, after a bit of poking around, I found that — at first glance — I quite like the new Twenty Sixteen theme (the last theme I liked being the Twenty Twelve one).

I am still poking around a bit to see what options the theme gives me out of the box, so consider this to be a warning that the look of this blog has changed and may change further over the next few days.

Flattr this!

Happy Birthday, RPG IV

RPGPGM.com notes that 21 years ago today, RPG IV (also known as RPG ILE) was released.

The first version of RPG IV came as part of OS400 V3R1, which was released on November 25 1994. Even though the code was still constrained by columns, the new Definition specifications (D-specs) was introduced, and I could now use variable names that were up to ten characters long. It also made it possible to use Date, Time, and Timestamp data types along with operations codes to be able to easily perform math with them. And I no longer had to use indicators for reads, chains, etc.

This makes me feel a bit old as I remember when RPG ILE was the next big thing. And, without much fanfare, it has continued to evolve — in many ways more rapidly than other, more popular languages. This is both RPG’s greatest strength and its greatest weakness.

IBM have, over the years, put a great deal of effort into ensuring that, for all the new features, backward compatibility has never been broken. This means that if you are running an i on Power, you can upgrade as and when you are ready without having to worry about all of your applications breaking. There are not many reasons for not staying on a supported release, and fewer valid valid ones.

The downside of this is that there is nothing to force developers to take advantage of any of these new features. You could, if you wanted to, write programs in exactly the way you did 30 years ago. They would still compile, still run and still work as expected. And people do.

RPG today is in the somewhat unfortunate position of being a very modern language that is often perceived as being old fashioned. This is because it lets programmers get into a rut and never learn anything new.

I doubt that there is any way of squaring this particular circle. Backward compatibility is important and business critical applications shouldn’t be put at risk. But remember this: If someone claims that RPG is old, obsolete, or worse, the issue to which they are referring is not a technical one.

Flattr this!