Everything my son needs to know about System Adminstration he learned from Minecraft

Last October my son, then 8 years old, asked about getting a ‘Minecraft’ (http://minecraft.net) account. I hadn’t heard of this game before this that I recall, but after a bit of searching it seemed mostly harmless (no blood or graphic violence, curse words, sneaky in game ‘If you want this item it just costs $5, click here to buy it’ traps, etc). It was also only a one time fee of $26 for an account, which seemed like a good deal compared to the ‘Pirates of Carribean Online‘ game he’d been paying $10/month for (from his own savings from gifts/allowance..it’s his money, we decided to not argue about it.. he eventually realized it wasn’t worth it).

So I signed up and installed it on one of our laptops. Soon after Marshall, our 4 year old, was interested in it too and surprisingly was able to play it fairly well since it’s all graphic based and doesn’t require reading, so we installed it on another computer, using the same account. Then Emily & I wanted to learn to play since a) it looked fun, and b) so we could answer there increasingly complicated questions of how to ‘craft’ things from other items.

This isn’t meant to be a full diary of my experience with this game, rather I’ve found it amusing that because of this game I’ve actually been able to teach the kids more about IT related terms, what I do in my workplace and how the internet and networks work. I’m going to highlight the various terms below as I explain the learning process we’ve gone through as we’ve gone further and further down the Minecraft rabbit hole.

Luckily, for years I’ve worked at a research lab and in higher ed so I’ve gotten good at explaining IT concepts to folks with PHDs, so it’s not a far stretch to expand this so a 5 year old & a 9 year old can understand it 🙂

IT TERM #1 – SERVER & CLIENT – It wasn’t long until I noticed there was a ‘server’ option on the minecraft website.. and that it was free. Setting a up server on one of our computers allowed multiple players to play on the same ‘world’. Being a Linux SysAdmin by day, it didn’t take much to get a server running in our house on our desktop mac. This was a whole new concept for the kids to grasp, up until now they had a vague idea that our house was on the internet and that they could connect to websites and online games (see pirate game reference above) that were hosted elsewhere. But we were always ‘consumers’ in that we were always connecting to some far far away computer. The fact that now the desktop mac in our bedroom was acting as a SERVER and that we were all connecting to it as CLIENTS was new concept for them to grasp.

IT TERM #2 – ACCOUNTS – By default a server can be set to allow 2 players, one with an account and one unauthenticated set as ‘Player’, to play on a server. But with 4 of us in the house playing this game, this limit was frustrating so we ended up buying a 2nd account so 3 of us could be online at any given time. Then my somewhat geeky father came to visit for Thanksgiving and he A) Bought an account for himself and B) Offered to buy another for our 4 year old. I set up our home network so my father could connect to our home server from his home in Virginia. So now we had 4 accounts we could use on our server, and could even allow a 5th guest on if someone was visiting.

IT TERM #3 – IP ADDRESSES, PORTS & URLS – There are many public Minecraft servers that anyone with a minecraft account can connect to. There isn’t a single master directory of servers, you have to seek them out and ‘add’ them to your server list manually in order to connect. Tedious, but it keeps the casual user from connecting and playing with strangers without opting into this.
So.. in order to connect you need to know that servers IP address and the port it’s running under. This was a bigger deal in the past where there wasn’t a standard minecraft port and many servers didn’t have nice human readable domain names, so folks actually had to share the 123.456.789.123 style IP address. You can now use full domains, and the port 25565 is pretty much standard for all minecraft servers (and the client defaults to check that) but the term ‘IP’ is still used by folks when referring to the server address.

Short story long, this also led to discussions about how every computer on the internet has an IP address, including our home internet connection, but there were ‘ports’ that allowed different types of communications so multiple computers could share a connection (like in our house) and not conflict with each other. I long ago learned to explain networking with a ‘plumbing’ metaphor though with kids who don’t understand even that I believe I used the idea of hoses &/or rivers and streams (and dams). Anyways.. I don’t know how much actually sank in though I’ve heard Owen explaining to his friends who give him a 192.168.x.x or 10.x.x.x. IP address that that’s an address just in there house, not their real IP so either he gets it or he parrots me well 🙂

Fast forward to this spring when he started telling his friends from school and his gymnastics team the address for our home server. First off, I had set our home server to use a domain I use a sub-domain for our e-mail addresses and immediately some of his older friends asked how I had a domain for our server instead of an IP address. They were pretty surprised to hear you could do this for under $10/year, to them it was one of those things that really geeky experts and only huge servers far-far-away could do. So.. It also actually made me and my skills look somewhat cool to kids, something I assure you is a rare occasion. 🙂

But back to the story.. so our home server address was now being shared by word of mouth and scribbles of scrap paper. Not a big deal really, it was just other kids he knew. But then one of them made a screencast video of his playing on our server and posted it youtube, along with the address. So suddenly there were occasional strangers appearing on our server… our home server. I wasn’t particularly happy about this and discussed the idea of locking it down. This was also a reminder to me that ‘Security through obscurity is neither’, something a former co-worker of mine quoted quite often and probably can’t be stated enough.

On the internet no one knows you’re a dog (playing Minecraft)

IT TERM(s) #4 – SECURITY – He recently watched a youtube video of others ‘griefing’ a server after they convinced it’s owner to trust them, so that’s made him wary of who he’s giving what privileges to. Now that he was aware there are ‘bad guys’ out there on the net, and I explained to him that even though someone says they are another kid whom he can trust, they may not be what they say. As the now classic cartoon states ‘On the internet, no one knows you’re a dog’.

We’ve talked with him before about not disclosing his real name, address, age, etc. and if anyone ever asks him for any of that info to let us know, but now he’s not just protecting his identity, he’s protecting his server. This led to discussions about what information we know about the different people connecting to his server, like the IP address they are connecting from and where it’s located.

As mentioned earlier, initially we were running our server off a computer in our house. I wasn’t happy about our home IP address being publicly advertised to the world. We eventually ended up with another solution where I’ve set up the server on a server I manage for my web hosting business, Svaha LLC (http://svaha.com/). This gets the traffic, and the address, away from our home connection. I gave it it’s own IP address and domain name (wildfiremc.com) and it has worked pretty well so far.

IT TERM #5 – WHITELIST – The minecraft server software has a built in ability to do ‘Whitelists’, where you only allow access to your server from accounts that are pre-approved. While we never actually implemented this, he now knows this term. One thing that came out of this discussion was the concept that every computer on the internet, not just servers, had an IP address and that we could also restrict just certain IP addresses from connecting.

IT TERM #6 – BLACKLIST – On Minecraft if someone is breaking someone else’s creations &/or abusing/harassing another player it’s referred to as ‘Griefing’. Typically the response by the server admins to a ‘griefer’ is to ban their account from your server, and or even ban their IP address. This results in the server keeping a list of folks you’ve blocked.

IT TERM #7 – TRUST & ACCESS LEVELS – From the get go he has had a few friends he’s been ‘running’ the server with. Over time he’s learned to trust a few others and has set up a variety of levels of access he can grant people depending how much he trusts them. This has led to discussions about hierarchy of privileges and how the higher ‘ranks’ inherit the privileges of the smaller group. Minecraft actually has some plugins that allow for a fairly complex organization of groups and privileges where you can grant or restrict individual commands and/or groups of commands. It’s not uncommon now that he understands this that he’ll ask me to restrict or grant access to a command to a different group.

IT TERM #8 – SERVER LOGS – On a number of occasions he has asked me ‘Who just did that?’ or, more often than not, ‘Who just crashed the server?’. This led to my showing him the server logs that show who connected and what commands they typed. I also showed him how I can search the logs for certain keywords. He hasn’t figured out how to do this himself yet though if this keeps up I don’t expect it will take much for him to figure out how to command line tools use vi, cat, awk, grep, and egrep -v 🙂 (translation – various commands to help search and filter text files). I’ve also showed him that several different usernames were connecting from the same IP address and thus it’s likely these are either folks that know each other, or it’s just one person with several accounts. On a few occasions we’ve banned users and their IP address (‘… and the horse you rode in on!’)

IT TERM #9 – RESPECTING USERS & UPTIME – As mentioned earlier, the minecraft server occasionally crashes. More often than not this is a direct result of someone with full privileges asking it to do too much, like changing a huge number of blocks all at once. Also, each time you install a new plugin you need to ‘reload’ the server, which results in it kicking all users off for a minute or two. He now realizes that this is a bad idea to do during prime hours and often asks if I can install something for him after he goes to bed when the server is less busy. He’s also learned to warn people before a reboot since they get upset when things happen without warning.

IT TERM #10 – PUBLIC & DEVELOPMENT SERVERS – Since not all ‘plugins’ play nice with the server, or certain commands have unexpected consequences, I’ve set up a secondary server that I’m encouraging him to test things out on first. Having a server that it doesn’t really matter that we have to reboot 4 times in an hour has been a nice feature.

IT TERM #11 – BACKUPS – As mentioned earlier, what with ‘griefers’ and crashes, it’s been necessary to restore the map from backups. Not only am I backing up the server settings & maps via tools within Minecraft, it’s also hosted under an account on my server which also has regular backups. <knock on wood> it hasn’t been that often we’ve needed to restore from backups, and he realizes, to some degree, that this isn’t an easy thing to do on a whim, but he rests easier knowing that even if someone griefs the server overnight we could restore it. Along these lines there have been times where we’ve made backups just before making any major changes.

IT TERM #12 – RTFM – I admit it didn’t take much to convince me to set up a public Minecraft server. I ran my own BBS from my room when I was a teenager and certainly understand the fun of being ‘Lord of all you survey’. I would also admit that I probably have some degree of ‘video game addiction’ in my personality. However, my time is finite and while I’m willing to help install various plugins at his request, I don’t have time to get read all the documentation and commands for each new addition. This has led to some arguments and occasional tension between us since he just wants someone to tell him what to type to ‘make it go’. More than once I’ve told him ‘Just google it yourself’. I haven’t actually said RTFM (though, thanks to his age and peers he now is well aware of the F word and it’s variations.)

I could go on, I’m sure there are easily another dozen terms and concepts that Minecraft has brought up over the past year. I’m also certain there’s more to come. Since Minecraft is all written in Java it’s not inconceivable that he might want to learn some programming. I’ve been meaning to learn more myself, and I’m certain there’s nothing that will motivate me more than having him potentially being a better coder than me 🙂

I haven’t even talked about the other educational aspects of Minecraft here, like the basic electric circuit logic from ‘redstone’ creations and all sorts of geometric shapes and concepts. I may write more about that at a later date.

I will state while I’m often frustrated by some of the limitations of Minecraft, it’s quite an impressive little game and community and I expect this will continue to grow in popularity. According to it’s website it’s already sold over 7 million copies. Both of our kids have minecraft t-shirts and whenever I’ve been with them when they’ve worn them in public inevitably other kids and families will notice it and say ‘Oh so you play that too eh?’ In fact, it’s so popular I’ve even had the idea of possibly running a minecraft day camp for a week next summer… but that’s another blog post for another day.

For now, for other parents reading this whose kids also play Minecraft, our server address is wildfiremc.com and tell them to tell JackDeezy I sent them 🙂

“When you do things right, people won’t be sure you’ve done anything at all.” – God; Futurama

futurama-god

“When you do things right, people won’t be sure you’ve done anything at all.” – God; Futurama episode ‘Godfellas’

Futurama_ep52
Bender, the god

I saw this in someone’s signature on a tech mailing list I belong to today and it immediately reminded me of some of the conversations I have had with fellow sysadmins about our jobs. When we do our job well, nobody knows we’re here at all. It’s only when things go boom that people remember we’re around. We said this so often in my former office that perhaps in the back of our mind we were realizing we were doing things ‘too well’. As it turned out grant cuts came around and they decided to merge all our responsibilities into the central IT department, quite possibly because they didn’t realize what exactly we did since we had successfully kept ourselves invisible.

I care too much about the people I worked with for 11+ years to wish them ill will, but the lesser me wants them to regret this decision.

But oh well.. moving forward and back to the subject at hand. When googling this quote I found I’m not the only sysadmin to notice this quote;

http://lonesysadmin.net/2005/08/17/when-you-do-things-right-people-wont-be-sure-youve-done-anything-at-all/