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!)

Let the children convince you to volunteer for code club

It’s happy Thursday today, as it’s code club day! I’m well into the Autumn term of code club at Ridgeway Primary in Croydon, but you can never talk about code club too much (as my friends who I went to dinner with last night would probably confirm!)

I’m reminded today that there are many schools both in Croydon and throughout the country that are desperate for volunteers. If you’re still wondering whether you ought to volunteer and whether you’d get something out of it, read the following feedback which are all direct quotes from the children who were in my summer class last term.

“I liked making the fish game because you can change their speed and size”

“Code club has helped me to learn to make different games and also to learn collaboratively with others”

“I like the fact that we all make a similar game but there’s loads of things you can change about how it looks”

“I learned how to make games and how they work”

“I just enjoy being on the computer. I’ve learned about how to use variables”

“I’ve enjoyed using variables in the code and making multiplayer games. It’s also been good to share on the scratch website and see everyone else’s games”

“I’ve enjoyed learning how to use the code and I’ll keep using it at home”

“I like bring able to paint new sprites, making the games using code and playing the games on the website at home with my brothers. I’m following in my father’s footsteps because he’s a programmer”

“I’ve enjoyed seeing how you make a game and how it all works”

Hopefully these comments will leave you motivated to want to get involved. The other main blocker that I find potential volunteers worried about is the technical requirements needed to be a code club volunteer. These are never as high as some people expect. I spent no more than an hour a week in preparation time and you don’t need to be a developer to teach a code club.

So get over to www.codeclub.org.uk now and sign up. Stop thinking, just do it, you’ll never look back.

Ridgeway Primary School Code Club 2013/14

I’ll be running the code club at Ridgeway Primary school Croydon again this year and we’re starting on the week after half term. Parents of year 6 have received an email this week inviting children to join the beginners level class. Hopefully later in the year we’ll also be running intermediate classes for children who have already completed term 1 with us. This will be great if we can then get multiple development level tracks started.

This is the text that the school use to advertise the class, i think it’s really well and succinctly put:

We are running a Ridgeway Code Club. Behind every app on a SmartPhone, every game that you play and every website you view, someone has spent time programming it. Code Club teaches children the basics of computer programming through fun and creative projects that also encourages problem solving skills. You can find out more at www.codeclub.org.uk

I can’t wait to get started again. Apparently the school have upgraded their IT suite during the summer, which should prove interesting. As for any event I run I’ll be sure to go into the suite beforehand to check out the equipment and ensure it all still works. It’ll be interesting to see whether they’ve upgraded to Windows 7 or not, as they were running XP when I was there before the summer.

I think I’ll probably be running with the old scratch as well again this term, depending on how the browser performance is with the new kit, and also how their new security settings are configured. I think this will be a choice for many clubs this year. I certainly love the new browser based scratch, and the web cam interaction, but many schools will either not have the hardware to support this, or would purposefully block it for security reasons.