Archive for the 'miscellaneous' Category

Code Club – inspiring a new generation of programmers

code clubYesterday I, and fellow software developer Oliver Balmer, ran the first session of our new programming club at the school our children attend. We weren’t sure what to expect, but it went very well. The children really enjoyed it and so did we. I am just putting a few notes here in the hope that it piques the interest of other software developers.

  • Code Club is a United Kingdom based network of volunteer-led, after-school coding clubs for children aged 9-11.
  • scratchThe first 2 terms are based on the free Scratch programming language developed by MIT. This is an excellent tool for teaching children programming. Programs are constructed by snapping together colour coded blocks – there is no syntax to learn and very little typing. Within an hour all 9 children went from nothing to having created a simple example game with graphics and sound.
  • Later terms progress on to HTML/CSS and Python.
  • If you want to set up a Code Club you need to get a DBS criminal records check (previously called a CRB). We did it through STEMnet. It was free and painless. We had to attend an evening course, but this gave us some useful information about the education system and dealing with children.
  • Code Club provides all the teaching materials, including print-out worksheets for each session.
  • There must be a qualified teacher in the room at all times with the volunteers, so you need to get buy-in from the school staff.
  • The process we went through was:
    • Registered with the Code Club website
    • Discussed it with the school
    • Wrote a proposal to the Headmaster
    • Got our criminal record checks
    • Went into the school and did a presentation to recruit interested children
    • Ran a competition for any children who wanted to join
    • Liased with the school IT co-ordinator to get Scatch on the school PCs.
  • The school has been very supportive and helpful throughout.
  • The proposal isn’t required by Code Club, but we thought it was a good idea to make sure everyone understood exactly what we wanted to do. One of the school governors (who is also a Deputy Headmaster at another school) helped us to write it. It was only a couple of pages long.
  • We showed a 3 minute video about Scratch in the presentation to the children. That had a much bigger impact than 2 middle aged programmers talking about how cool programming is. When we asked how many kids wanted to join, about 40 hands out of 60 shot up!
  • We took care to emphasize that programming isn’t just for boys.
  • We required any child who wanted to join our club to enter a competition to design their own computer game (on paper). This allowed us to restrict the intake to a manageable number, if too many wanted to join. Also it created an entry barrier to the less interested ones. We don’t want to act as a free baby sitting service for children who aren’t really interested. In the event we got 10 competition entries and we accepted them all.
  • 9 out of the 10 children turned up for the first session (6 boys and 3 girls).
  • We created a certificate for the best competition entry and handed that out at the first session.
  • Our club sessions are an hour and 15 minutes. We added the extra 15 minutes to allow some time to get everyone settled. The children were very engaged and had no problems concentrating for that long.
  • There is no fee to attend our Code Club sessions (unlike many of the other after school clubs).
  • You need to run the club at a time that suits the school/children. This isn’t a problem for me as I have my own business and can set my own work hours. If you are employed 9-5, you may have to negotiate with your employer.
  • Our school’s IT suite is well set up, with a projector and enough PCs for each child to have their own. This makes life easier.
  • It was slightly chaotic, but fun!
  • You may be able to join an existing Code Club rather than having to start a new one. Check the Code Club website for existing clubs.

I went to a secondary school a few months back and talked to some 80 teenagers about what it was like to be a software engineer. When I asked how many of them had done any programming at all, only one of them had. One! We are teaching a generation how to use Excel, Powerpoint and Facebook, but not how to create their own software. What a wasted opportunity. Of course, we don’t need or want everyone to be programmers. But I think it is such an important skill that every child should at least have an opportunity to try it. I believe Code Club can go a long way towards filling this gap. Currently over 700 schools in the UK have Code Clubs.

To find out more go to the  Code Club website at:

http://www.codeclub.org.uk/

I believe there are similar initiatives to Code Club in other countries, but I don’t know anything about them. Please comment below if you do.

The imminent demise of Google Reader

Sadly, Google is killing Google Reader on 01-July-2013. If you are reading this blog using the RSS feed via Google Reader, I suggest you start looking for another RSS reader. I have been trying feedly. It is ok, but so far I prefer Google reader. What is your favourite Google Reader alternative?

The world’s fastest Rubik cube solver is made from Lego!

CubeStormer II is the fastest Rubik cube solving robot in the world. It set a Guinness World Record of 5.270s for the fastest robot solving of a Rubik’s Cube in November 2011. I saw it in action on Saturday at the Swindon Lego show. Click the image below to watch a video I took.

(there is also a .mov version on screencast.com)

The project was commissioned by ARM Holdings and designed and built by Mike Dobson (who built the Lego robot) and David Gilday (who wrote the software). A custom Android app on a Samsung mobile phone images the cube and instructs the Lego robot what turns to make. The robot is made from 4 Lego Mindstorm NXT kits.

I got to speak briefly with David Gilday and he told me that the software is optimized for the robot’s capabilities, so it computes the quickest sequence for the robot, rather than the minimum number of moves. The software uses pre-computed look up tables of moves for speed. Apparently the limiting factor on the speed is the power of the motors. CubeStormer II can manage about 5 moves per second, whereas the best humans can manage 9 moves per second.

It didn’t work every time. But it is an impressive achievement. Especially considering the software was written by a hardware engineer! ;0)

(there is also a .mov version on screencast.com)

More details over at Wired.

The microISV test

Ok, so you’ve set yourself up as a one man software company and you’ve made some sales. But are you a real microISV/micropreneur/indie/startup? Take the test below and find out.

  1. You checked the number of sales you made overnight before you had your breakfast this morning.
  2. You measure the price of desirable objects (cars, houses, Xboxes) in terms of the number of licences you need to sell.
  3. You’ve outsourced some work to someone with no idea what they look like and only a vague idea where they live.
  4. When booking a hotel you are more interested in how good the Internet connection is than how good the restaurant is.
  5. Your product has at least 20 five star awards from download sites.
  6. You know what CTR, CPC and CPM mean.
  7. You have begged all your friends and family to ‘like’ your product’s Facebook page.
  8. You set up your computer or phone so it makes a special noise each time you get a sale.
  9. Your software has been cracked at least once.
  10. You have suggested to a particularly problematic customer that one of your competitors might have a more suitable product.
  11. You’ve done technical support while wearing a dressing gown/bathrobe (or less).
  12. You have Google alerts and Twitter searches set up for your product name.
  13. You start to get anxious after not checking your email for more than half a day.
  14. The last time you set an alarm clock it was because you were going on holiday and didn’t want to miss the flight.
  15. Your relatives think you don’t have a ‘real job’.
  16. You own at least 10 domain names.
  17. You have had to fix problems with your software or website while on holiday.
  18. You have had a least one chargeback.
  19. Your software has been flagged as malware by at least one anti-virus package.
  20. You use at least 3 different email addresses in the course of a day.
  21. You have explained what you do to someone and they said “And you make a living from that???”.
  22. You have used Google translate to answer a support email in a language you don’t understand.
  23. You use “we” when talking about your company, even though its really only you.
  24. Someone told you a half-baked idea they had in the shower that morning and said they would be willing to give you 50% of the profit if you did 100% of the work to  implement it.
  25. The last time you wore a suit and tie was to a wedding or a funeral.

I scored 25/25, of course (it’s my test). How did you do? Are there any other questions I should have added? Let me know in the comments.

Thanks to fellow microISVs Steph, Oliver, Terrell, Clay and Ian for suggesting some of the above.

Ka-ching!

I have my email client set up so that it makes a cash register ‘ka-ching!’ noise every time I make a sale. I found this a real morale booster in the early days of Perfect Table Plan. Even now, several years later and with considerably higher sales volumes, I still haven’t grown tired of it. I particularly enjoy hearing ‘ka-ching!’s coming from my laptop while I am not working – it is wonderful to be able to earn money while drinking a glass of wine in front of the television.

If you are running Mozilla Thunderbird you can set this up quite easily with a message filter and the Mailbox Alert add-on:

  1. Install the Mailbox Alert add-on.
  2. Create a Thunderbird message filter to send emails denoting incoming sales to a specific folder (‘Tools’>’Message filters…’).
  3. Set the Mailbox Alert add-on to play an appropriate sound whenever a new email arrives in this folder (select this folder, then select ‘Tools’>’Mailbox Alert Preferences’).

You shouldn’t have too much problem finding an appropriate .wav file to play. I use C:\Program Files\Microsoft Office\Office12\MEDIA\CASHREG.WAV.You can also find some online here.

Thank you to whoever wrote Mailbox Alert and to Nick Hebb of FlowBreeze Flowchart software for pointing me at it originally.

Eventcountdown.com

I have just launched at new website at eventcountdown.com.  This website contains free countdown clocks,  for both Windows and web, to allow you to count down the days, hours, minutes and seconds to any event. It can be a wedding, a birthday or a major cultural or sporting event. Are your children wondering how many days, hours, minutes and seconds it is to Christmas ? Wonder no more! You can also use it to count up from an event e.g. giving up smoking or Perl.

web countdown clockweb countdown clock for Mac, iPad, iPhone and Android

windows countdown clockWindows countdown clock

The hope is that a significant number of people interested in planning events will go to evencountdown.com for a free clock and a small percentage will click through to PerfectTablePlan.com and buy my software. I have no idea how successful this will be. I certainly don’t expect a quick payback on the investment. But hopefully it will pay for itself in a few years, and then anything after that is pure profit.

This project has also been a small scale experiment in outsourcing that might lead on to greater things.

  • The web design and CSS/HTML coding was done by Sergey Pozhilov of μISVStyle.
  • The Windows countdown clock was done by Milan Marusinec of VectorGraphica.
  • The Javascript for the web countdown clock was done by Paul Kossowski of Dolphin Futures.

They all did a great job and the total cost was less than I would have paid for a couple of ads in event industry newsletters (which I tried recently, with fairly miserable results).

I have quite a few ideas about how I can improve eventcountdown.com, but I wanted to get something out there ASAP. After all if you aren’t embarassed by v1.0 you didn’t release it early enough. I would be interested to hear any feedback. Backlinks to eventcountdown.com would also be very welcome. ;0)

milan@crossgl.com

Hacker Monthly

Issue #3 of Hacker Monthly leads with the Lessons learned from 13 failed software products article that I posted here in May. They even put my face on the front cover, despite my warnings about the effect this might have on sales.

Hacker Monthly is an interesting experiment. It takes the most popular articles on the Hacker News site each month and repackages them in an attractive magazine format. This makes for some very varied content, with articles ranging from business topics to advanced programming techniques. It is available both as a paper magazine from MagCloud ($9.95+shipping) and a downloadable PDF (free) and is supported by advertising revenue and donations. I wish them every success with it.

Unskilled and unaware of it

Unskilled and unaware of itHave you ever noticed that you rarely (if ever) meet someone who admits to having below average driving skills? My Grandfather started driving a car before UK driving tests became compulsory in 1935. So he never had to take a driving test. This was lucky for him, because he was a terrible driver. He would get distracted and cross the line into oncoming traffic, veering back at the last second when his passenger started shouting. He claimed he had never been in accident, but I expect he would have seen quite a few if he had ever thought to look in his mirrors. Few people would accept a lift from him a second time. Even as a young boy, I realised that I was in mortal danger getting into his car. I would make an excuse and make my own way by bicycle. And yet, he considered himself a good driver. After having read the excellent book Bad science by Doctor, journalist and blogger Ben Goldacre, I think I know why.

The book contains this startling graph from the paper ‘Unskilled and Unaware of It: How Difficulties in Recognizing One’s Own Incompetence Lead to Inflated Self-Assessments’ by Kruger and Dunning :

Dunning-KrugerGraphics courtesy of explorativeapproach.com (click to enlarge)

The graph shows how good subjects were at logical reasoning as measured by a test (blue), how good they thought they were  (green) and how well they thought they did at the test (red). Apart from the top quartile, there was actually an inverse relationship between how skilled people thought they were and how skilled they actually were. The study also showed that the least competent individuals were also the least capable at recognizing the skill levels of others. This is the abstract from the paper:

People tend to hold overly favorable views of their abilities in many social and intellectual domains. The authors suggest that this overestimation occurs, in part, because people who are unskilled in these domains suffer a dual burden: Not only do these people reach erroneous conclusions and make unfortunate choices, but their incompetence robs them of the metacognitive ability to realize it. Across 4 studies, the authors found that participants scoring in the bottom quartile on tests of humor, grammar, and logic grossly overestimated their test performance and ability. Although their test scores put them in the 12th percentile, they estimated themselves to be in the 62nd. Several analyses linked this miscalibration to deficits in metacognitive skill, or the capacity to distinguish accuracy from error. Paradoxically, improving the skills of participants, and thus increasing their metacognitive competence, helped them recognize the limitations of their abilities.

Or, more succinctly:

Ignorance more frequently begets confidence than does knowledge. Charles Darwin

The findings fit in with the concept of ‘unconsciously incompetent’ in Maslow’s four stages of learning:

  1. Unconscious Incompetence:  The individual neither understands nor knows how to do something, nor recognizes the deficit, nor has a desire to address it.
  2. Conscious Incompetence:  Though the individual does not understand or know how to do something, he or she does recognize the deficit, without yet addressing it.
  3. Conscious Competence: The individual understands or knows how to do something. However, demonstrating the skill or knowledge requires a great deal of consciousness or concentration.
  4. Unconscious Competence: The individual has had so much practice with a skill that it becomes “second nature” and can be performed easily (often without concentrating too deeply). He or she may or may not be able to teach it to others, depending upon how and when it was learned.

The Dunning-Kruger effect might explain why every crank and barstool scientist appears to think they understand global warming better than the world’s top climate scientists. I am also reminded of my own experiences learning ju-jitsu. After a year or two of training, having reached the exalted rank of green belt, I thought I was pretty good. It was only some years later, as a black belt, that I realised how much I still had to learn.

What has this got to do with software? Well, it might explain some of the very poor website design, GUI design, graphics and copywriting I see from time to time. The perpetrators may be sufficiently unskilled, that they don’t even realise how unskilled they really are. It is a thorny problem. Firstly you don’t realise you have the problem. Secondly, even if someone convinces you to delegate or outsource that type of work, you are unable to accurately assess the work of others. It is particularly worrying for one man software companies (such as myself) who have to perform or oversee a very wide range of  skills including: website design, user interface design, programming, testing, copyrighting, marketing, PR, documentation, support and systems admin.

By the same token,  many customers with poor IT skills might not have any insight into the extent of their deficit. Below are the results of a survey I did with some of my own customers a couple of years ago:

skill survey

Note how skewed the results are and bear in mind that relatively few of my customers are IT professionals. Similarly skewed results were reported recently by Patrick McKenzie in his blog:

Surprisingly many of my customers self-evaluate as comfortable with computers.  50% were “very comfortable”, and 30% were “mostly comfortable”.  These numbers are, candidly speaking, not what I would have assigned on the basis of reading support requests for three years.

I don’t have any easy solutions for this problem. All you can do is:

  • accept that you might not be the best judge of your own competence in all areas
  • actively solicit feedback from your customers and your peers and listen carefully
  • be a bit more tolerant of newb@aol.com when they blame your software for problems arising from their lack of basic IT knowledge
  • console yourself that, whatever your IT shortcomings, at least you are a good driver

Haiti disaster relief

David Trump of the ASP is offering free software licences to people who contribute to Haiti disaster relief. This seems like a great idea to me, so I am copying it for PerfectTablePlan. I am going to try it for 24 hours and see how it goes. I am blogging about it here in case other software vendors are inspired to try it.

Brain teaser

Amongst my Christmas presents was a book, “Einstein’s riddle, paradoxes, puzzles and conundrums” by Jeremy Stangroom. One of the first puzzles in the book is this logic problem, attributed (almost certainly incorrectly) to a young Einstein:

There are 5 houses painted in 5 different colours. A person with a different nationality lives in each house. The 5 owners each drink a certain type of beverage, play a certain sport and keep a certain pet. No owners have the same pet, play the same sport or drink the same beverage.

  1. The Briton lives in the red house.
  2. The Swede keeps dogs as pets.
  3. The Dane drinks tea.
  4. The green house is immediately[1] on the left of the white house.
  5. The owner of the green house drinks coffee.
  6. The person who plays football rears birds.
  7. The owner of the yellow house plays baseball.
  8. The man living in the centre house drinks milk.
  9. The Norwegian lives in the first house.
  10. The man who plays volleyball lives next to the one who keeps cats.
  11. The man who keeps the horse lives next to the man who plays baseball.
  12. The owner who plays tennis drinks beer.
  13. The German plays hockey.
  14. The Norwegian lives next to the blue house.
  15. The man who plays volleyball has a neighbour who drinks water.

Who owns the fish?

Whatever its origins, it is a cracking puzzle. It took me the best part of an hour to solve it. If your brain is under-stimulated from Christmas TV but you are forbidden from programming, I recommend you give it a go. The answer is here (no peeking!).

Normal service will be resumed on this blog soon.

[1] See Atul’s comment below.


Enter your email address to follow this blog and receive notifications of new posts by email.

Join 751 other followers

Blog Stats

  • 1,706,997 hits
When you are developing a software product it can be hard to
"see the forest for the trees"
see the forest for the trees
Do you need some affordable, independent advice on where to go next with your product?

Categories

Creative Commons License
This work is licenced under a Creative Commons Licence.

Follow

Get every new post delivered to your Inbox.

Join 751 other followers

%d bloggers like this: