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 🙂

A topsy turvy year

“It’s been a ‘topsy turvy’ year” .. this was a line from a friends year-end letter I read a few months ago and it’s been stuck in my head since, indeed, this past year has been crazy for us.

A year ago today I found my job at The Jackson Laboratory would be ending in a few months. This came as quite a shock since I had no idea this was coming. There were 4 of us working as System Administrators in the Mouse Genome Informatics department and all of us were given 4 months notice about our positions ending at the end of the current grant cycle. While I realize 4 months notice is more than generous notice in todays environment, this was still devastating. I had been working at the lab for over 13 years and, frankly, never expected to just be let go. Our (my office mates and I) worst case scenario in our heads was that we might get merged into the central IT department. This is indeed what happened, just sans us (well to be fair they created one new position and one of my office mates go that position, but he had to apply and compete for it, there was no institutional respect for the years we’d put in). So, yes, I was shocked, and yes, I’m still a bit bitter in being let go from a place I had put so much into. Sigh.

But that’s just the beginning of the ‘topsy turvy’-ness. First off, while I guess I should have known better, I hadn’t even updated my résumé in over 11 years. In that time period the standards and expectations for résumés had changed so I had to redo this pretty much from scratch. This took way longer than it should have, probably cause I’m inheritently a pretty humble person. I work hard and do a good job and I expect others to recognize and respect that. Résumé and cover letter writing (and interviewing) is a decidely NON-HUMBLE experience and it just drove me nuts to have to boast about my skills and experience.

Also, since thanks to Downeast Maine’s economy and lack of IT related businesses, there were literally NO jobs in the area that I could even apply for. So not only did I lose my workplace of over 13 years, but we realized we were going to have to relocate and sell our house. What a great time to sell a house and to job hunt! WHEE! FUN!

At first I started looking elsewhere in Maine and found a lead at Maine Today Media which publishes the Portland Press Herald and several other papers in the state, as well as running a number of websites. They had recently had a large number of staff turnovers in their IT department and were looking to fill these positions. I liked the person I interviewed with there and it may have worked out but I felt like the team there was going to be too small, the possible pressure of ‘OMG fix this or we cant go to press!’ wasn’t recognized in the salary they offered.

Another friend found a job lead at the company he’d been working at just north of Boston. There was a possibility here to work from home most of the time and that sounded great. However, this job seemed pretty ‘intense’ and the they made me a job offer on Friday and wanted me there Monday morning, and to top it off I didn’t feel they offered me a fair salary. My summary of this job was “yeah I could work from home, but I’d get an ulcer from home too”

I also interviewed at the Harvard Business School and part of the Harvard Medical School but the idea of commuting into Boston from Southern NH (Where Emily has family) was not appealing.

I did get a phone interview and in person interview at the Dartmouth School of Engineering. This was really interesting and I liked the people I met there, but I guess I was choice #2 and whomever was choice number 1 selfishly took the job! So close…

So at this point it was now mid-may and all my current job leads were ones I wasn’t excited about. I had sent my résumé too dozens of places, most of which never even acknowledged receipt.

Then I got a phone interview from Williams College for a web developer position. Williams is in Williamstown, MA and is in western Mass.. like REALLY western Mass, it’s literally in the top left corner of Massachusetts, bordering NY & VT. That was further than we had hoped to have to move but… there wasn’t much else to consider at this point. So I did a phone interview for that position which went ok though they had some tough curveball questions about wordpress that I hadn’t encountered before. I think I spent a 1/2 hour after the call googling and reading up on the questions I didn’t know the answer too. However they also mentioned they had a unix sysadmin position open there and asked if I’d like to be considered for that. I am certain I hadn’t seen this posted anywhere and they said they thought there were some problems in getting it advertised, so this was just pure luck that I found out about it. I did a phone interview for that position on Friday and was invited out for an in person interview the following Monday, and had an offer from them the next Wednesday.

So in early July we moved all our junk belongings, 2 dogs and 4 cats to a college owned rental house in Williamstown and started our new life in the land of far, far away from what we considered home. We left 13 years of friends, the UU church we’d been attending the entire time we were there, Owen’s gymnastics coach & team, and Matt’s volunteer DJ & Board member position at Community Radio WERU 89.9 FM. This was fairly traumatic. While it was great to have a job, especially one that sounded exciting at a nice workplace with good benefits, we didn’t want to leave. I blogged about this last May here.

We also dropped off over 60 bags/boxes of stuff to goodwill and filled a large 18′ dumpster with over 2 tons of stuff we didn’t need/want to move.

Since then it’s been a whirlwhind of new job, new people, new area, new gymnastics team/coach for Owen, a hurricane, a snow storm in October, a cat dying, a car dying and most recently house hunting.

We made an offer on a house today that costs way more than we really should be buying but basically if we want to live here that’s the going rate for the size of house we’d fit in. It’s a great house and we have our fingers crossed it will work out though we’ll be grimacing every month when we’re paying bills, though at least we’ll be doing that in a house we love. 🙂

So here’s hoping our year of chaos and change is over and we can coast for a while with just a “normal” level of randomness and life. If not.. well I’ll blog about that next year.

-Matt