I want to write some custom blocks, so downloaded the source for the EspruinoWebIDE and did the following:
- Created a new file “EspruinoWebIDE\blockly\blockly_myfile.js”
- Included this file in a SCRIPT tag in the top of “EspruinoWebIDE\blockly\blockly.html”
- Proceeded to create my blocks – initially as defined using the Google BlockFactory and then added to blockly.html to present them in the UI
There are already a few files defining extra blocks – blockly_espruino.js is the main one and blockly_robots.js is a simpler one, that actually makes quite a good example to follow if you are doing your own.
Except when it isn’t. There were no obvious errors, and the ‘Send to Espruino’ always said ‘Sent’ but there was no outward sign that anything had happened.
Except in my case, no matter how it was written, generated, typed or checked, it was ignoring my code and I just could not spot what the error was. Eventually, I changed the order of the SCRIPT statements in blockly.html, wondering if there was some kind of load-order issue and it suddenly started working. Once I changed the order back again, it kept on working – so unfortunately I have no idea what was causing the problem, but just guessing some weird local caching issue or something not picking up my changes.
The only reason I’ve written this is that Googling for various hints as to what might cause the issue was failing me – even once I knew what the error was. So thought I’d write it down myself in case others have a similar issue – this might give someone else a clue.
Despite this rather irritating issue, I actually quite like Blockly.
In a future post, I’ll talk a bit more about what I’m actually doing with all this.
We got a couple of Codebugs just before Christmas and have been having quite a good time playing with them so far. You write code for them using an online IDE based on Google Blockly and the device itself has two buttons, a 5×5 grid of LEDs and 4 GPIO ports with nice croc-clip friendly contacts on it so you can straight away start playing with linking code to the physical world. It also has an expansion connector (the ‘Tail’) and when you connect it to a PC via USB it comes up as a mass storage device and you drag code across to it to run it.
We’ve done the obligatory “scroll your name” across the LEDs, hooked up fruit to create a fruit ‘touch’ keyboard and have started exploring some of the projects available via the online community.
My only slight gripe is that the mechanism for getting code on it isn’t quite as intuitive as it might be. We’ve largely got the hang of holding buttons down whilst powering it up. although, when trying out code, it tends to stay plugged in, so we use the ‘reset’ then ‘hold’ technique designed for when it is powered by battery most of the time. However sometimes the buttons aren’t held quite long enough for it to register. Also, every time it comes up in mass storage mode, the previous programme is erased. If you are not careful you end up with lots of “compiled” Codebug programmes lying around your browser’s download directory. Seeing as all projects are managed by the online IDE it would be nice if there was a neater way to send the code straight to the Codebug without copying between directories.
That aside, its a great device and has generated lots of interest with the kids and I’ve recently purchased a set of Glowbugs. These are WS2812 based RGB LEDs with simple croc-friendly (of course) contacts that you connect to the Codebug using the GPIO, configure and off you go.
For our next project however, we quite wanted to use all 4 GPIO as inputs and I know that the Glowbugs can be driven directly via the expansion header, so I set about seeing if I could create a DIY ‘tail’ connector to breakout the CS, +5v and GND connectors, as used by the Colourtail, to something that would accept croc clips.
I also have a cheap, purchased from China, 24-LED WS2812 pixel ring with the same +5, GND, DIN, DOUT interface as Neopixels and the Glowbugs that I wanted to use. I’ve already connected this up via the Codebug Tail, but again wanted something croc-clip friendly that the kids could use.
So armed with a 20x80cm prototyping board and some right-angled headers, I set about making a simple DIY tail adaptor and connector for the LED ring. Warning – massively dodgy soldering coming up.
As a major goal was to make this easy for the kids to use, I wanted the connectors to break out in the same order as the Glowbugs – so (with all boards face down) this means from left to right, GND, DIN, +5v. However the tail connectors are CS, GND, three not required for this application, and VCC, so I needed a wire link to get CS (for the data) from the left-most pin to a central spot.
With a small portion of board cut and smoothed ready for headers, I decided to use crude solder blobs as a simple way to create croc-friendly pads and connections, as can be seen via the very dodgy soldering going on in the following! In case you can’t quite make it out, the ‘circuit’ is highlighted in the last pic.
So after adding another three ‘pads’ on the other side, the final thing looks like this.
In order to be able to easily use the LED pixel ring, I decided on a similar approach to add some ‘pads’ to the ring. Once again I wanted the pads in the same order as a Glowbug. I could have added both an ‘in’ and ‘out’ connector, but decided for simplicity only to create an ‘in’ – so the ring will always be the last thing in the chain. In the following, the wires are coloured as follows: green is GND, blue is DIN and red is VCC.
The biggest problem with just connecting the pixel ring directly to the Tail connector was the poor physical connection of the wires to the ring itself, so this time to give it a degree of kid-robustness, I used a hot-glue gun to stick the pads to the ring and protect the solder links.
With a final blob of glue over the top of the solder connections to the ring, everything is ready to go.
So to use the Glowbugs connected via the DIY tail, you have to use the configuration blog to enable the ‘Colourtail’ rather than ‘Glowbug’, but otherwise, everything else is just the same. And of course, the ring is just treated as a set of additional 24 Glowbugs added on the end of the chain.
So crude, and soldering that will definitely not be winning any prizes, but it works, and passes first contact with the kids.
I read this article from TheRegister with mild interest:
“Medical Data Experiment goes horribly wrong: 950,000 records lost” – http://www.theregister.co.uk/2016/01/27/centene_loses_95000_medical_records_on_six_hard_disks/
Ok, so yet another ‘company loses personal data, warns as a precaution’ story. In this case, six hard disks apparently containing personal health information of around 950,000 people.
So my initial thought was something along the lines of “are people really misplacing whole hard disks still in 2016”?
Personally, I suspect it is more likely an accounting problem rather than a physical loss – they are probably labelled up wrong, or left in a drawer somewhere, or have been re-used and nobody noticed, that kind of thing. But it is interesting to look at the phraseology of two consecutive press releases from the company involved (no, I’m not quite why I looked them up either – but I did!).
On the data loss:
“Centene has determined the hard drives contained the personal health information of certain individuals who received laboratory services from 2009-2015 including name, address, date of birth, social security number, member ID number and health information. The hard drives do not include any financial or payment information. The total number of affected individuals is approximately 950,000.”
Fair play – they are admitting their mistake and attempting to do the right thing:
“Notification to affected individuals will include an offer of free credit and healthcare monitoring. Centene is in the process of reinforcing and reviewing its procedures related to managing its IT assets.”
Otherwise, without openness and honesty around such issues, how can lessons be learned?
But the following day, the next press release announces their financial results for the year:
“On January 25, 2016, the Company announced an ongoing comprehensive internal search for six hard drives that are unaccounted for in its inventory of approximately 26,000 information technology (IT) devices. This incident resulted from an employee not following established procedures on storing IT hardware. While we cannot estimate the impact with certainty at this time, the Company does not expect the impact of the incident to have a material effect on its future growth opportunities, financial position, cash flow or results of operations.”
Yes – they don’t expect the fact that 950,000 people’s personal health details going missing will affect their financial position now or in the future.
I guess that answers the question of why it is 2016 and companies still lose whole hard disks of personal information. If there is minimal financial impact, it is good business sense for them to keep their procedures at the minimum deemed necessary – that is just sensible business risk-management. In fact the whole ‘free credit and healthcare’ monitoring could be seen as a cost effective insurance policy against possible loss should it occur, compared to the costs of labour intensive, fault-free asset management to prevent any chance of loss up front.
These things will only change when the impact of the issue impacts the companies involved much more significantly, rather than just ending up a problem for the people whose data is lost.
In the UK, I guess we have the Information Commissioner’s Office guidelines for handling data and ability to set fines, but even this misses the point for me. A fine is after the fact and with so many charities and volunteer organisations (cough, Scout National database) storing personal details, a significant fine would end up burying an organisation and an insignificant fine is largely pointless. But either way the data will still be lost. So the answer to this one is really education – so to that end, the ICO Guide to Data Protection is great – but unless someone is actually auditing and proactively educating organisations, or perhaps more appropriately companies now selling online services to organisations, on these principles, I suspect we’ll keep seeing problems occurring.
As we see massive growth in companies providing online payment services (ParentPay, SchoolMoney, PaySchool and so on) information and content management (dbPrimary, Google for Education, etc), communications and mailing services (ParentMail, etc), biometric authentication (40% of secondary schools apparently), online learning, and so on to education and charities, more of our data ends up online regardless of the fact it might not be us putting it there! For a cash-strapped organisation, managing an offline and online database isn’t going to happen. You might not use their online system, but your data will be there as they’ll be using it themselves.
The school use of biometrics is particularly worrisome – many kids may have their biometrics compromised before they are even old enough to decide for themselves if they want to hand over their biometric signatures to any company.
Fundamentally, at present, all the risk from a company storing your data is on you, not them. Until that risk balance is addressed, I guess we will stay at the mercy of “bottom line (non-)impact” reporting. And whilst it is convenient and cost-saving for organisations to use more of these online services, our data will keep being stored who knows where and there is very little we can do to stop the tide of information uploading.
I hope all of you with children have gone out and got your free World Book Day books. World Book Day is great – I really like to see anything that encourages people to buy books – not that we need any more in our house! This year they come with something a little extra – you can download the world book day ‘Books Alive’ app (iOS and Android) and when you point your device at the book you get neat things happening.
Or maybe not so neat. The technology is called augmented reality and it has great promise, but I’m afraid the World Book Day app is a bit of a gimmick. For the four books we have, they only recognise the front page and then just play a video. For one of the books, the author reads the story, which is nice, but for the others its the author saying a little about the book. But it’s really not implemented very well – if you wiggle and it loses the book for a moment it resets. This makes the whole experience a little like trying to watch YouTube through a wired network connection that passes through a shaky hand game – one jiggle and the video resets and starts again
And I have to say that the same thing could have been achieved a lot more reliably by using a simple QR code that links to an online video that then just plays.
This is a real wasted opportunity. We could have had a short loop of Alfie and Annie Rose playing whilst sitting on the cover of our book. We could have had Horrid Henry saying ‘nah nah ne nah nah’ at an appropriate page. We could have had a scene from the Diamond Brothers or an animated Tom Gates cartoon.
Alas what we have is some cool technology that has been used to pointlessly replace the capabilities of existing technology. For many this will be their first exposure to the world of augmented reality and most will see this and consider it far more trouble than it’s worth and in this instance I have to agree with them. This example hasn’t provided any augmentation of the real world. It’s just added a pointless frustration to it. It’s a real shame. I actually think it has detracted from the experience, by raising expectations and then disappointing.
Is there a lesson here? Well I’d say don’t use a technology because you want to seem trendy or cool or because others are using it. You have to use a technology because it adds something of value. This could have added a lot. In the end I think it took away.
The only saving grace for this one is that the kids got fed up with the tech and then settled down to read the book instead. Maybe that was the real purpose of the technology all along? A secret ploy to send mobile and e-book readers back to the written, paper, word? I could live with that – I still like my books. But I hate to say technology wasted and hate even more giving a promising technology a large exposure to a new audience and then not showing it off well.
Maybe in a few years we’ll all be wearing Google Glasses and the whole thing will just be part of the background noise of everyday life. But for me, today, this really didn’t work out too well. A real shame.
Do you get fed up with today’s “the bonnet is welded shut” mentality to consumer electronics? I do.
Part of the issue, is that the drive for compactness is making the designs optimised for size rather than maintenance – so you get circuit boards shaped and interleaved around larger components, small ribbon connectors and carefully routed cables and so on. You also find that you need to know the exact order in which to unscrew things and pop them apart, and then work out if something is fixed by a clip, glue, screw or something else.
But it doesn’t need to be as hard as it is. There is also an annoying trend for hidden screws (often behind rubber feet or blanking panels that pop or stick on/off), speciality screws and one-way plastic fixings which makes the whole thing a lot more complicated than it needs to be.
But there is some hope. The excellent site ifixit.com has a massive range of guides for many popular consumer electronic devices. It is practically the haynes manual for electronics. Haynes themselves do have some computer related manuals, and a wide range of novelty manuals (sold ‘for kids’ – but they don’t say how big or small the kids have to be) – including Bob the Builder, Thomas the Tank Engine, the Millenium Falcon, Thunderbirds and a few others.
But the nice thing about the ifixit.com website is the community around it – you can see comments from fellow fixers and see how many people have rated and attempted the fix. It also lists the tools you need, and if you don’t have any you can help support the site by buying tools through them. You can also buy spare parts.
So, with a slight twist of irony, whilst my car is wide open to home mechanics, I’ve long since got fed up with getting my hands dirty, and seeing what look like simple steps in a haynes manual, which are performed on prestine, clean, non-rusted-up parts, turn into hours of frustration and finding out I’ve not got the right replacement washer or something. So today, I rely on a local, small garage round the corner and pay for their expertise and collection of tools and parts.
However with consumer electronics, I have most of the tools, already have the ‘well if its broken anyway I have nothing to lose’ mentality and enough of a background in basic electronics and computers to challenge the consumer electronics industry attempts at stopping me having a go. And the parts are rarely rusted shut or covered in oil (the odd exception being something whose last moments might have been spent left in a rainy sandpit! That tends to be fairly terminal). With a little dust to clear here and there and some basic static precautions I’m quite ready to have a go. In fact the most risky part is keeping the kids away from the carefully laid out screws and fittings as the thing comes apart – especially if something has to be taken apart and then left until a new part is sourced and delivered from some speciality online store or ebay.
And so, courtesy of a new drive from ebay. a tri-wing screwdriver, a range of small phillips screwdrivers, the ifixit.com guide for replacing the drive on a Wii, and some peace and quiet from the kids, we have a functioning Wii again and can now try out some of the new games the kids got for Christmas.
It’s not as hard as you might think but naturally you will void warrenties and everything is done at your own risk – but as I said, if its broken, you can either pay for repair (cash for someone else’s time), just buy a new one (what a waste) or at least see how complicated it will be to have a go yourself.
Sometimes it seems like everything has to be ‘just in time’ or ‘on demand’.
Businesses don’t want to keep stock longer than they have to, so want to go for ‘just in time’ delivery to still deliver products ‘on demand’. Food is getting faster, but we want more choice ‘on demand’. Television is going ‘on demand’. We use our Internet bandwidth to send us a personalised schedule of programmes to watch when with a little planning and upfront preparation we could just catch it as it streams through the air. It is (currently at least) broadcast through the airwaves regardless of if we watch it or not – doesn’t it seem a little wasteful to then get it downloaded digitally using power, bandwidth, energy on a person-by-person basis?
But then that is kind of the point – people don’t do ‘up front’ anything anymore really. We like our cars, partly because we don’t have to attempt to plan a journey up front. In fact have you tried to negotiate you way around the complex mess that is the British rail system? Fine if you want to go somewhere on the same line as your town – but just try to even work out what lines you might need to get somewhere else – its very hard work. And forget attempting to browse to see if a short car or bus journey will take you cross country to a line that gets you somewhere more direct. No, for the most part the ‘system’ will suggest a 60 mile trip into a major city to change trains to bring you back those 60 miles, but passing within 10 of your original starting point.
There is the promise of a future integrated transport system. Or intelligent transport. Or smart cities and towns and smart cars (and I don’t mean those quirky cars branded ‘smart’ – I mean cars that talk to each other and the road network). There is the promise of an intelligent alarm clock that will know that your train is delayed by 10 minutes and so let you have an extra 10 minutes in bed, telling the coffee machine and water heater for the shower to adjust their timings accordingly.
There is the idea of fully intelligent and integrated transport systems, where buses, trains and road congestion is managed such that people pass through the system as efficiently as packets traversing computer networks. Of course, when timetables are planned by computers down to the minute, what happens when a key dependent node is delayed by a minute and a half?
We talk of intelligent software agents that will know what you like to read and collect and order the day’s news for you, so your time is spent only on the things it has worked out you think are important.
So in order to have a ‘just in time’ and ‘on demand’ society, something is scheduling, planning and organising everything to a high precision at an ever increasing macro level. It just won’t be people. People are forgetting how to plan.
Or at least how to plan for themselves. We hire ‘services’ to plan parties, weddings, meals, events. We use ‘on demand’ media to stop worrying about reading TV schedules in advance. We use ‘on demand’ films to not consider if we will watch a DVD enough to warrant purchasing a disk outright. We use online shopping when we decide we need to (or want to) to not bother planning a trip to the shops.
And much of our social communication is becoming ‘on demand’ too. In an era of mobile phones, there is much more ‘last minute’ decision making. Don’t know where to meet up? Txt when you arrive. Not sure where to eat? Use location based services to find a restaurant near your current location. Want an impromptu coffee? Just pop it up on Facebook and see if anyone turns up.
And messaging is going this way too. In times of (practically for many) limitless text messages, why bother thinking too hard about what you might need to say. One-word, non-thinking, ‘it’ll do’ answers are the norm. Take communicating with your teenager these days.
The ‘thinking ahead’ conversation:
- “Are you out tonight?”
- “Yes. Can I have a lift back? I’ll be at xyz and finished around 10pm”.
The actual conversation (each taking up a txt message):
- “Are you out tonight?”
- “How are you getting home?”
- “Can I have a lift?”
- “Where are you?”
- “What time will you be finished?”
Ok – actually, I lie – this is just teenagers and has been since time eternal. I remember responding in exactly the same way myself to my parents. The difference is each prompt and sentence costs another text.
Thinking ahead? Who needs it. Messaging and communications bandwidth are plentiful.
In these days of children being online earlier and earlier, there is an increasing worry about online stranger danger and sites like Get Safe Online and organisations such as the Child Exploitation and Online Protection Centre (CEOP) and excellent resources like the ICO Youth website and Own Your Space spend quite a lot of time and effort attempting to educate the general public, and young people in particular about the issues associated with increased use of the Internet.
Well, it struck me today that there is already a very illustrative lesson of the dangers of using a mediated text-based communications environment where you easily build up trust but don’t really know who is on the other end – chapter seventeen of ‘Harry Potter and the Chamber of Secrets’.
When Harry is asking Tom Riddle how come he is standing ghost-like over the barely alive body of Ginny Weasley, he asks ‘How did Ginny get like this?’
‘ … I suppose the real reason Ginny Weasley’s like this is because she opened her heart and spilled all her secrets to an invisible stranger.’
‘My Diary. Little Ginny’s been writing in it for months and months, telling me all her pitiful worries and woes …’
‘It’s very boring, having to listen to the silly little troubles of an eleven-year-old girl … but I was patient. I wrote back, I was sympathetic, I was kind. Ginny simply loved me. No one’s ever understood me like you Tom … I’m so glad I’ve got this diary to confide in … it’s like having a friend I can carry round in my pocket …’
So what is the muggle equivalent of a ‘friend you can carry round in your pocket’? Well, a collection of connected friends in your phone’s contact list of course.
So be careful who your friends are – who recieves your words as you write them on the page and they disappear like magic. The illusion of trust is easy to come by on the Internet. Just never confuse it with the real thing. It could lead to the take over of your mind by the world’s most feared wizard …
So remember the wise words of Arthur Weasley … “Haven’t I taught you anything? What have I always told you? Never trust anything that can think for itself if you can’t see where it keeps it’s brain?”
If like us you have train mad boys in the house, but are a bit fed up with the “Th” word, then here are a couple of nice kids books about trains that you might not have heard of before.
(Note – I quite liked the original stories from the Rev W Awdry … I just don’t really like how they’ve been cartoonified since … or the theme tunes they use on the videos!)
This is one of those books that we’ve now had on the bookshelves for over 16 years (I’ve mentioned it before) … its a great story with a bit of an ecological theme. It also has great illustrations. If you’ve seen any of John Burningham‘s other books, you’ll recognise the style instantly.
One Christmas channel 4 played a half-hour animation based on the story. We have a DVD copied from a video recorded off the TV version, which isn’t perfect. I have tried to buy it, but all I could find was an American version, where they decided to rename it “The Animal Train” – goodness knows why – Oi! is such a great title.
There is an even worse copy than mine on YouTube – http://www.youtube.com/watch?v=8GTQmm9AzFE – but it does at least give you a chance to listen to the song that was written for it (and works really well). In fact the sound track is really good.
A great book with a serious message told in an interesting and sensitive way.
This book tells the story of a weekend adventure to a bridge over the railway to wait for and watch the trains as they whoosh underneath. This book actually prompted a visit to a local industrial estate in a bid to find a similar bridge. Of course, most rail bridges these days are pretty much closed in (at least the ones around me are anyway).
Apparently this is an Indian counting rhyme that Lisa Bruce has put together with Stephen Waterhouse’s very colourful illustrations to create this book.
This hasn’t been in the house quite so long, but has been a firm favourite of the boys since we’ve had it. It manages to get quite a number of key landmarks from India into the rhyme as it counts from 1 to 10.
This last one is just a simple rhyming book with large cartoon illustrations. There is a book for trains, one for rockets, diggers, and a range of other things too.
So if you would like a change from Thomas, Percy and friends, take a look at some of these.
Blast from the past this one … and in some senses, a few months too late!
I stumbled across a spectrum emulator for the ipad (can’t remember how now …) and that let me to the World of Spectrum. Whilst knowing about Spectrum emulators (I had a paid for copy of one courtesy of, was it Brian somebody? I think I still have it on a floppy disk somewhere from around 10-12 years ago!) I haven’t touched one for a very long time.
Like many, I had a Spectrum in the 80s – the Spectrum+ was my first one, followed by a Spectrum 128 at some point. I followed all the typical titles from Ultimate (Play the Game), Melbourne House, Quicksilva and the like … and whilst there are so many I could mention, for some reason one that always stuck out in my mind and that I really wanted another go on was Starquake.
Don’t really know why, other than I remember when Crash magazine published the map of the game as a centre page I spent quite a long time exploring, using the teleports and basically working on it until I had actually completed it. Back in the time when maps were hand drawn and submitted to the magazines!
I wondered about getting the iPad emulator and having another go, but looking at all the instructions of how to get custom games onto an iPad, I didn’t get further than just downloading it .. but then I noticed a Java icon and sure enough, if you feel so inclined you can run games from World of Spectrum directly in your browser – so I had a few moments nostalgia running Starquake once again.
From the opening (always tinny, this being simple Spectrum sounds) jingle, through the in-game sounds and graphics and scarily, I actually remember a lot of how to play it and actually what you need to do at specific points – where you need to ride a platform here, but get off just there to go through this passage and collect this whatsit over here …
I wonder how much of my memory is taken up with trivial paths through games from that era … only to be reawakened via a Java emulator some 30 odd years later …
Its very interesting to note how those simple graphics often hid a simple, but very addictive gameplay. Something that gets forgotten a little with some of the large franchise titles these days, but something we perhaps are seeing a bit of a return to with some of the addictive mobile and social games.
Curiously, I still have my Spectrum 128 in the loft (along with my Atari 2600) … but I would be absolutely amazed if any of those tapes (assuming I still have a few) play any more.
But that will do for now, I have to go and find Sabre Wulf (with its colourful fauna and orchids), On the Run (more colourful fauna and very distinctive sound effects and puffy graphics), Atic Atac (‘ware the ghosts, find the keys and watch that bizarre roast chicken drain down!) and a few other real classics from the time and re-live this electronic part of my teens.
Lego. Can you have too much? Possibly. It appears at least to be a question that my family is slowly attepting to answer …
Of course past a certain critical mass, you get to the point where it is almost impossible to build anything, as you have just too much to sort through to find a piece. Couple this with the trend for increasingly specialised parts in a much wider range of colours and you get to the point where you know you have the part in question, but you also know its just one or two of … well … quite a lot, so you tend to give up before you even start.
So what do to … can Google help? Hmm, maybe. Here are some examples.
This shows some promise – it sorts based on size and shape. It seems quite accurate too. But it is very slow! At this rate bricks would never be sorted faster than they were used, so this really isn’t likely to solve the issue.
This ones a little faster, but doesn’t look like it has a huge range of bricks it recognises. Still sorts on shape and colour – thats quite impressive.
Now the concept behind this one shows some promise. Its not sorting lego, just beads presumably based on colour, but it looks like the kind of design that might scale up.
This is probably the most comprehensive one I’ve seen yet – but with 7 NXTs, 28 motors and 37500 bricks … well, it still only really sorts a subset of bricks. Still its quite amazing to watch.
But you know what? This one is just a work of art. One motor. No programmable brick. Just cogs, gears, differentials and bands … its the kind of creation that one just stares at in wonderment. By far the simplest, most elegant lego creation I’ve seen in a long time. So what if it only sorts 2 by something bricks. So what that it only sorts on length. So what that you have to align bricks to load it. This is pure lego mastery.