How to backup minecraft worlds on windows 10 in 2017

This post is based upon how to backup Minecraft worlds in Windows 10 Minecraft v1.11.2 @ 6th April 2017 – this post comes with no guarantees as to what the future of Minecraft backups maybe, and your mileage may vary! Do not move or delete other files inside these hidden directories as it may have cause unexpected behaviour!

My daughter *loves* to play minecraft on her windows 10 laptop (she’s not unique in that regard). She runs a fairly standard setup with a supervised browser user and the family settings of a Microsoft account enabled. Like any good technical support parent I’m encouraging her to think about backing up her data and games, and previously back in 2016 I’d backed up her entire minecraft saved worlds to her OneDrive account. To do that I’d simply googled how to do it and come up with a variety of articles like this and this. However when trying to do this for her again last month in March 2017, I noticed that all the directory paths had been moved and were no longer in the paths noted in the above articles. I couldn’t find any articles referencing the new location, so searched around for a while myself and found them. This post details that solution. The location of the saved worlds in windows 10 Minecraft in 2017 is

<user>\appdata\Roaming\.minecraft\saves

which is frankly a much better location naming convention than the previous one. If you’re not used to digging around inside of windows hidden files and folders, the above may make no sense to you, as it’s not a full path from the C drive. If you’ve not done this before, or you can’t find the appdata directory try the following.

  1. Hold down the windows key on the keyboard and then press the “R” button (a small Run dialog appears)
  2. Type %appdata% and click OK (or press enter on the keyboard)

Windows explorer will open a window to the location of your particular \appdata\ directory for that profile. This means that if you want to login and backup the files and you have a supervised family user, or an admin account on that laptop, you need to do the backup from the account used to run minecraft. If you wanted to do it with your parental / admin account then you’d need to find the full actual path. In my case it’s physical location is

c:\users\<username>\appdata\roaming

But this vares based upon your username and your specific install options (which is why it’s easier to use the %appdata% shortcut)

Each sub-directory in that “saves” directory represents one world which has been saved within the minecraft program. To backup a world simply do the following steps:

  1. Ensure that the minecraft application is shut
  2. Copy the entire directory and its contents to your backup location

That’s it! If you want to restore any directories simply reverse the process, still ensuring that the application is closed whilst you do.

In the same regard if you want to clean up the number of saved worlds at speed, rather than through the minecraft UI, you can simply delete any sub-directory and it will remove it from the start-up screen in the game. (My daughter had 256 minecraft worlds, most of which were unused and out of date, so we checked through them and then deleted loads.

There are still some issues with naming conventions in that I found the title “New World” innumerable times, and the uniqueness of the naming convention was done by appending an ever increasing number of the “-” character to the end of the directory name. This appears to be down to the fact that if the player chooses not to explicitly name the world at start-up, the game is forced to just call it New World and differentiate it with a unique naming convention. If you’re trying to backup specific worlds, this can be difficult to identity: “Do I want to backup world with 46 “-” characters or with 48? To test this, I tried going into a random New World, and renaming it with a sensible name, like “globalgoat test 20170326”. Unfortunately it appears that this is just changed within the metadata inside the directory, it doesn’t change the directory name itself, implying this is set one time at world creation. However since the contents of the directory do change, the date stamp of the directory is updated, and you can use this to distinguish between multiple directories, if you are looking to identify specific ones.

A comparison of browsers from a parental perspective

I’m a big fan of Windows 10 under certain conditions. I’ve just deployed it in our corporate environment on over 14000 machines in 55 countries. I have big designs on implementing Azure AD and EMS in the coming months, but this post it about it, and more specifically browsers running within it from a parental perspective.

I remain platform agnostic personally, and I have several different OS running in my house across a wide variety of devices. However I’m a huge Lenovo fan and my whole family runs X or T series machines (often second hand ones from ebay, to ensure that they are 220 or 420 etc and have the nice form factor and quality keyboard and are maintainable by me – but I digress) and so all of these machines now run Windows 10. I’m not going to get into a debate about auto upgrades and all that Jazz either, I ran Windows 7 for many years, I worked at Microsoft when Vista was pretending to be a decent OS (still painful memories) and I completely avoided W8. But I went all in on 10 at home, and all in all everyone’s fairly happy. The offer of free licencing was good enough for me, and I was happy to dogfood the OS before rolling it out at work as well. But then we come to parental control……

One of the main reason that I upgraded my daughters PC to W10 was to get the full Microsoft Family features, link it into my main MS account, and be able to see in detail what she was up to. In doing so MS encourage you heavily to use Edge. Unfortunately my experiences over this period have not been good. My daughter had a fairly common usage pattern, based around youtube in a browser, minecraft as a local install, and a few other browser based activities, mostly games. In simple terms the Microsoft Family reporting about this just simply doesn’t work. I’ve been through all the troubleshooters, I’ve reset and cleared all the caches and I’ve done a bit of private digging beyond that around file access and internals, but it just simply doesn’t work. The reports that turn up each week of activity are less than useless. It seems unable to even pick up Minecraft as a process (let alone other processes) and the browser reporting is even worse than that. I could be forgiving (although not that much) if there was some difficulty in picking up browser based activities with the amount of scripting going on, but not being able to record a simple process and the executable time seems beyond belief! Which brings me to scripting……

As a natural geek, and a volunteer teacher of programming to children through the Code Club charity, I’m often to be found using browser based development environments such as scratch and today I was testing the new BBC Microbit site as that’s what I plan to be teaching next term. Obviously all of these sites are quite complex JS sites with drag and drop UIs aimed at children. I’m afraid to say that Edge has let me down on continued occasions in this area as well, despite giving it fair chance on very mainstream sites over the past few months. Today I was testing MicroBit and it just wasn’t up to it, hangs, crashes, blank screens, it was driving myself and my daughter mad. So we switched back to chrome……

I’m a chrome user personally at work and at home, but I’d been prepared to give it up for the offer of all in control that Edge and Windows 10 offered. However 2 hours after switching back, I’ve got a full run down of every site and every correct time that my daughter has browsed for, and the JS IDEs are simply just working. I’ve got her running at a supervised user through my main google account, and all the information I need is accurate and simply accessible. Yes I have no monitoring of the minecraft process but I’ll have to live with that. Playing minecraft locally is still a lot less scary that the open web anyway for a parent of relatively young children, as there’s no online option. I’ll continue to monitor and see how things develop, but I’m afraid to say that I’m seriously disappointed with the Windows 10 and Edge offering, when MS had a good opportunity to make a serious statement in this space. It simply doesn’t work yet.

The next step – well maybe a Koala router in the long term so I can control traffic at the point of entry into the house. In the meantime I’ll be relying on chrome for reports of what’s going on.

Scan old logo from business card to generate new vector AI files

I had an extension built last year by DEP Building Services of Caterham. As a favour to them this year as they did a great job, a built them a wordpress site as they didn’t have one already. It was a fairly standard build about from that they already had a logo, but they didn’t have the vector / illustrator / eps original file. I think it was a classic case where someone had done some work for them (business cards with logo and some display material, boards and banners for putting up on their build sites) but they hadn’t given them the original logo files to work with again, and this company could not be contacted now.

I’m no graphic designer and I don’t have any of the Adobe licences or equivalent, and frankly I don’t want to buy or invest in anything like this as it’s not an area of interest for me, but I managed to get a really professional job done for nearly free using the following services:

  1. I used the http://vectormagic.com/ website to get a hand tracing done of the existing logo (scanned from an old grubby business card). this only cost 15 USD but was fast and excellent service. They do have a free version online, but it was worth the 15 USD to get a proper AI file fully done.
  2. I downloaded and used the https://inkscape.org/en/  freeware tool to edit the image and produce scaled transparent PNG files for the website. Even for a newbie like me this only took 10 minutes to work out. This is an excellent free tool and well recommended.

The end result being that I have the master AI file for the logo and as many scalable copies as I need for other media, for only 15 dollars.

3 years of teaching programming to primary school children

scratch makey makey

I’ve been teaching programming to primary school children (aged 9 to 11) through an after school club for nearly 3 years now and this post details some thoughts in review, some lessons learnt and things you might want to consider if you’re thinking about doing the same thing. You can read my thoughts about starting out here.

For the majority of this time I’ve been teaching scratch using the curriculum supplied by Code Club. In the past 4 months I’ve switched to teaching python (still using a Code Club curriculum), as the level of scratch skills throughout the school has grown significantly.

  1. At the beginning I was scared that I wasn’t going to be a good enough developer to teach children. My tech background was based around databases and infrastructure and I only ever wrote very average code as a sideline. This was unfounded, as the entry level required was fairly simple, especially with scratch. Don’t let this put you off.
  2. I also worried that I wouldn’t have enough time to prepare properly for the lessons (1 hour a week after school). Again this was unfounded as using the prepared curriculum from Code Club meant that I only needed a brief walk through of the project I was going to teach the night before. (This has changed a little now I’m teaching python though).
  3. I’ve been very lucky to have an extremely good teacher work with me for most of the classes I’ve run. This makes a huge difference and gives me the ability to cover more children. Our club is massively oversubscribed at school and covering as many children as possible is a big thing for us. The maximum we’ve managed is 17 students at once, but this was definitely a struggle and I felt that I couldn’t give everyone enough time. It just makes you realise what an extraordinary job teachers do, managing a class of 30 children every day.
  4. I think 10 children is an ideal number for python (last week I had only 7 due to sickness and this worked really well as I was able to really spend some time with each child and focus on them)
  5. I don’t teach any of the children python until they’ve done at least one term of scratch to get the basic theories under their belts.
  6. The difference between years 5 and 6 are really noticeable. Maybe this is obvious but at that age an extra year of age makes a huge difference in their ability to grasp the concepts, particularly in python where there is less immediacy of return on their time. In scratch we can usually get a half decent game running in the 2nd week of the first term, having started with zero knowledge. In this day and age when the children have high expectations of what represents a game, especially compared to when I was growing up in the 80’s and using ZX Spectrums, some have trouble with the text based games and routines in the early days of learning python.
  7. When teaching python, the first class is often based around teaching the children the basics of desktop management. Scratch has a very friendly IDE, but when we run python (we use IDLE) we often spend much time in the first week sizing and moving windows, switching between the lesson plans (in a browser) and getting them used to the basics of a full desktop environment. Many will consider themselves computer literate, but will often be flummoxed by moving files around the OS or running multiple windows. This is a reflection of the the devices they’ve grown up using in the past 5-7 years, and also the nature of the UK computing curriculum previously (which is now getting much better). That said I think this is very valuable learning as well
  8. As mentioned above this term I’ve switched to trying to follow the lesson plans in browser. Previously I’ve printed them all off on paper and given them to the children where they can tick off each task. This worked really well but I became dismayed using up so much paper and colour toner (even if I did recycle it at the end of the lessons), so I switched to browser based plans this term. The children have great difficulty focusing so well on instructions that are in a browser window.
  9. The speed at which the faster to learn children and the slower to learn children diverge in terms of their progress appears to be dramatically larger in python. Those that get it, really push on even after week 1 or 2, and hoover up more knowledge, searching for way to translate skills they’ve learnt in scratch, into python equivalents. Those that need more close coaching to get through the lessons can easily fall behind and become a lot more frustrated than when the equivalent situation comes up in scratch, as scratch is much easier to just play around in and get something to happen. Another reason to keep the class sizes smaller for python if you can.
  10. Running the club remains a highlight of my week just as it was when it was fresh and new at the beginning.
  11. We still get about a 50-50 mix of girls and boys as we have had all along. Very different to all my teams at work, and a good sign that things are changing. It’ll certainly take a while yet for this ratio to pass into the workplace though.

 

A visit to the Shwedagon Pagoda whilst in Yangon

Shwedagon Pagoda

In June 2015 I had the opportunity to visit the Yangon office of my current employer Save the Children. Save have a huge office in Myanmar (300 or so staff), and a huge operation across the country working with some of the most disadvantaged children in the world. IT and connectivity are a serious challenge across the country and so myself and a colleague visited for a week to see what we could do to help.

I’m not normally a city tourist type of person, always preferring to get out and about in the landscape of places that I visit. On this trip this wasn’t possible due to the increased visa requirements of going outside of Yangon, so we stayed in the city for the entire trip. There was much work to do, but I did get an opportunity on the last afternoon for a couple of hours out and about before I left for my connecting flight back to Bangkok.

All my local colleagues at Save had quite simply said that there was one thing I should do, and that was to visit the Shwedagon Pagoda which is one of the holiest sites in Buddism.

Shwedagon Pagoda

The view from my hotel restaurant

Luckily for me it happened to just around the corner from both the Save offices and my hotel. This is the view from my hotel restaurant! The first challenge when I went was the heat.

umbrella parasol

hiding my head from the sun, whilst hoping for a thunderstorm to break the heat

Following the local advice again I purchased an umbrella to use as both a parasol and to protect from the rain, as it was just entering the rainy season and there had been some medium sized storms during the week.

I strolled over to the Pagoda, paid my entry fee, removed by shoes as required and entered. I guess I planned to stay for an hour at most, as I simply am not a person who tends to love looking around cities, buildings churches etc. I just tend to get bored without some nature to enjoy, it’s not that I don’t admire or respect the sights, they’re just not my personal favourites, but this turned out to be very different. 3 hours later I was there, watching the sun go down and seeing the pagoda start to light up in the early evening. It was an utterly entrancing experience. I spent so long just sitting and breathing in the quite ambience of the temple (whilst trying not to get too hot, or to burn my feet on the red hot floor). Fortunately there is free water supplied at numerous points throughout the temple grounds, and there are even public toilets just outside the temple which means that one can stay and be refreshed and enjoy an extremely long visit should you so wish.

If you do happen to be making your way to Yangon, don’t hesitate to go to the pagoda. You’ll be richly rewarded by the experience, even if you’re not normally wowed by city sightseeing like me.

2 day walking trip on the South Downs

South Downs Way

Being as I was between jobs these past 2 weeks (by design I might add, as some people get embarrassed when you use this phrase!) I’ve been doing some things I love with the time. This has meant doing the school run, spending time with my wife, pottering around the house and other such matters, but it meant that I had a couple of days spare to go walking on the South Downs which is one of my favourite and most visited areas of the UK.

The South Downs way is a great walk for many reasons, my primary ones being:

1. Amazing jaw dropping beauty

2. Easily accessible by public transport all along the route

3. Bordered by lovely towns and villages with a great selection of accommodation and food options

4. Only 90 minutes from London

5. Easy to break up into short sections for weekend breaks

I chose to walk a 2 day route which I’ve done several times before. Here’s the itinerary:

Day 1

Train to Chichester

Grab breakfast in Chichester High Street and also a packed lunch for later

Bus number 60 to the stop before Cocking

5 hours good walking

Arrive Amberley

In Amberley there’s a great selection of food and lodging, but I often prefer to take the train one stop south to Arundel which remains one of my favourite places in the UK. If possible I always stay in the Swan Hotel in Arundel, it’s in an absolutely stunning location in the centre of town, has wonderful rooms, great food and really friendly staff. I’ve stayed there numerous times now and I’ve never been disappointed.

Day 2

I take the train back one stop to Amberley to join up with the main South Downs Way again, but you can easily walk this leg, it’s only a 90 minute stroll along the river.

From Amberley it’s another 5 hour walk to the next stop at Steyning.

At Steyning there’s lots of nice pubs and inns and restaurants and accommodation, but if you’re on a short trip like I was this time, there’s a number of frequent buses which will get you back to a variety of main line railway stations. I took the number 2 to Shoreham by Sea, and then you’ve a simple direct connection to London or elsewhere as appropriate.

If you’re lucky you’ll get weather like the above photo which I got this week (although the photo is actually one of mine from a different trip to the same location) but then you might also gets loads of wind and snow like I did last year when I was up there, so make sure you’re appropriately prepared for all weathers as you should always be when you’re out walking.

 

I’ve updated my site to a new responsive theme

I’ve spent the last 48 hours trying to convert this site from my old wordpress theme to this new fully responsive one. I did like my old design, but it was a couple of years old now and the world of devices has moved on. The old one was not responsive in any shape or form, so unfortunately it had to go. Fortunately over the past 2 years I’ve got just a tiny bit better at wordpress (although I’ll never be good at design). It’s meant to be clean and fast (subject to very cheap hosting costs of course). Let me know what you think……

I published a book for my aunt last month

My aunt, Pat Jilks, wrote a book some 15 years ago now about when she walked from John O’Groats to Land’s End. She’d just typed it all out in word and had then printed it on A4 and offered if to various members of the family to read. I’d never got round to it as much as anything else reading loads of paper sheets in a binder never feels that much fun, although I guess this is the life of an editor maybe?

It’s very much what I would call a vanity project, but you could ask who am I to judge, it’s not like I’ve ever written a book! When I read it I was pleasantly surprised though and the ending even made me cry! I guess since it’s her very personal feelings and thought across a several week trip, it’s particularly meaningful to me since I know her so well, but however you look at it, I think it’s simply great that she completed it (both the book and the walk).

Anyway, I have the highest love and respect for my aunt, I’ve always thought of her as an amazing person and admired her approach to life and many of the things that she’s done. After watching for her care for my mum in the final days of her terminal cancer (they lived together and basically she acted as her full time carer right up until the end) my respect only grew for her. I wanted to do something for her so having read about all the self-publishing revolution started by Amazon and others, I decided that I would publish her book for her.

I used CreateSpace and Kindle to do this and the process was really interesting and very intuitive even for an amateur like myself. The hardest thing to do was editing the text that my aunt had written, as she’s done it very much in her own style, and I didn’t want to detract from that. Some of it is much like a stream of consciousness and some of the formatting and layout is purposefully done in certain non-standard ways. I didn’t want to ruin what she’d tried to create but it did need formatting and better preparation so I spent most of time trying to get this right. Also it had no marked chapters or sections, but in the end I left it this way as it was her book and how she’d done it. Turns out I can always do a re-publish revision if I like later anyway.

All I can say is it’s pretty damn amazing getting a real copy of her book turn up in the post, with a glossy cover, a real ISBN and generally feeling like a “real” publication. I hope it made her happy as well.

You can check out the results here Before I grow too old: A journey from John O’Groats to Lands End

Windows Clustered MSMQ Service hangs on startup following failover

We were forced to do an unexpected failover on one of our windows 2008 R2 clusters yesterday which hosts a clustered MSMQ service. One of the nodes blue screened following a windows update and so we went over the to the other node. So far so good, but the service didn’t start on the other node, it just sat in the status of starting.

As anyone who’s ever read any of my tech blogs would know, I absolutely hate random troubleshooting where you simply try restarting the service in question multiple times, or failing back or manually starting the services outside of the cluster manager or anything like that.

Therefore I wanted to do the following “Find out why it’s actually hanging” rather than make decisions without knowing this information. I know there are those around who would just go for a quick restart or reboot, but years in deep SQL Server disasters has taught me that this often a bad first step. If you want to know what a process is doing, you simply ask it, or trace it and then you may well get the information you require.

In this case, first question is

1. Is the windows process which represents this service alive – answer yes, so it’s doing something….

2. is the process in question using CPU and memory and are these fluctuating – answer yes, so it definitely appears to be doing “something”….

3. What is it doing?

It’s at this point that pull our your diagnostic tool set of choice and monitor the actual process. There’s no hard and fast rule for how you do this, but this case Procmon from sysinternals has to be your first choice. You have a process which you know is alive, you want to know what it’s doing so you need to trace it as you have no logs. Obviously you could also take a memory dump but that’s a bit advanced for this stage.

Next you need to decide what to monitor. Monitoring can be expensive, so you might want to form a hypothesis of what you’re looking for, and try to focus your troubleshooting. This might be dangerous as you might miss to collect some data, so there’s no definitive answer here, but I definitely had a hypothesis already in my head just from experience, which was that maybe the process was scanning the message that were in the queue when the failover occurred, to ensure their integrity. I don’t claim to be an MSMQ expert, but this seemed a reasonable way to go.

Therefore we attached procmon to the process, monitored its file activity and filtered this down to the drive on which we knew the physical messages were stored. Low and behold we saw the process chewing through the messages, opening, reading and then closing one about every 150ms or so.

From this point we then wanted to know how long it was going to take, as it seemed to be doing a reasonable action for a service starting (reviewing its current queue). Again this is just a hypothesis at this stage, as maybe this is wrong behavior for an MSMQ service, but this was the train of thought.

So using cmd.exe (as opposed to the expensive and dangerous explorer (dangerous when viewing directories with potentially huge numbers of files) we counted the number of .mq files in the directory in question and dumped them to a text file. We then correlated the procmon output to the cmd output to see what files the process was reading. It was simply reading the files in date order, so again this seemed to bear out our hypothesis.

At this point it’s a simple maths calculation to work out the number of messages divided by the average open time observed in procmon, and you can approximate how long the operation will take. At this point we decided to wait for this amount of time (about 20 minutes) before doing anything else. If at the end of this period we observed that the the process was still hung and doing something else, then we might need a new hypothesis, but as it was after this amount of time, the process was started and came online.

So in the end everything was OK (apart from the backlog this caused) but it’s worth noting that in this scenario if you have thousands of messages outstanding as we had, you’ll have a delayed start.

Upon reading afterwards we found out that our hypothesis was actually slightly incorrect, in that the process needs to read all the messages into memory, and that’s it’s not checking their integrity as I had guessed, but it just goes to show that structured troubleshooting is always the way to go.

Remember – don’t guess, don’t reboot, investigate. That’s my mantra (certainly in most production enterprise systems anyway!)