The HTML5 Diaries – Part 0 – Getting Started

Hello all! If you’re reading this, I’m going to assume you’re planning to take the Microsoft HTML5, CSS3 and Javascript certification (70-480). The next few blog posts are basically going to be a restructuring of all the notes I’ve taken whilst doing the online course, along with a few other titbits of information I think are worth sharing. But for now, I’m going to talk about registering for the course, revising and setting up your development environment.

Registering For The Exam

So, Microsoft have these new fangled Microsoft Surface tablets out. And by all accounts, they’re very pretty indeed. I must confess that I almost certainly will get one in the new year. Windows RT can only run Metro applications developed in C/C++/VB/C#/HTML5.  This means that aren’t a great deal of apps available. Naturally, Microsoft is eager to change that.

So, as of this moment (27/11/2012), Microsoft are paying for the exams of anyone who wants to get certified. That is an amazing deal, as professional IT certifications can often cost hundreds of pounds.

You’ll have to book fairly sharpish though, because there’s a limited supply of seats available. To book, register at Prometric here, using the code HTMLJMP. I’ve had friends successfully book seats in Switzerland, the UK and the US with this code, so it appears to work worldwide.

Once you’ve booked your exam, you should get an email with all the important details like where you have to go, and what time you need to show up. It’s also important to bring proof of identity with you, when you take your exams. This could be a drivers license or a passport along with a credit or debit card .

Setting Up Your Development Environment

Despite Windows 7 having the largest market share of any operating system, you cannot develop HTML5 apps for Windows 8 using it. Yep. If you want to start coding for Surface, you’re going to bid adieu to your start menu and say hello to Metro.

But, wait. Does this mean that you need to buy Windows 8? Well, no. Microsoft is kind enough to give away free copies of their new Operating System to developers and people who just want to try it out. The catch is that it expires after 90 days. Boo. Still, if you don’t mind the hassle rebuilding your development environment every 3 months, you can save a fair chunk of change.

You’re also going to have to use the latest and greatest version of Visual Studio (2012). Yes, it’s ugly as sin, but at least the express version is free. It’s probably worth pointing out that if you’re currently in higher education, you can get Visual Studio 2012 Professional for free through Microsoft’s Dreamspark program.

The Online Training

Most of the course material can be found on the Microsoft Virtual Academy or CodePlex. The course itself is delivered by video and is taught by Jeremy Foster and Michael Palermo. They are both fairly interesting, engaging guys and they clearly know their stuff.

There’s not a lot to write about here. You can watch the lessons in your browser (I watched in Chrome on Linux). You can download them as MP4 or WMV. Fairly standard stuff.

The course is split up into six modules. At the end of each module, there’s a short self-assessment quiz. Nothing too strenuous and it won’t count towards the exam you’ll eventually take at a Prometric center. It’s just there to see if you understood the module that you had just studied.

Prerequisites

The course assumes a basic knowledge of HTML4/XHTML. If you honestly have no idea how to make a web page, and have no idea how HTML works or just need a bit of a refresher, I can’t recommend HTML & CSS by Jon Duckett enough. This book is a friendly introduction to web design and is ideal for beginners. It’s also gotten some positive reviews. It’s also nothing like most technical books and is absolutely beautifully presented.

If you’re so inclined, you can pick up a copy here. And yes. That is a referral link. Judge me.

And that’s all you’ll need to get started. The next blog post will discuss the first module which covers the semantic structure of the HTML 5 language. You can read it here. 

Do you want to develop for Windows 8? Are you going to do this certification? Let me know in the comments below.

You should definitely follow me on app.net.

Breakerfaire – Tuesday 11th of December 2012

The next Breakerfaire meeting will take place at DoesLiverpool on the 11th of December, 2012 at 7pm. There will be one talk, followed by drinks and networking.

Bio:
Paul is a self-confessed security geek and enthusiastic speaker. Since graduating in Electronic Engineering at Durham University in 2009, he has worked for several security organisations and kept up a personal interest in security.

Abstract:
Title: “Beneath the surface: an introduction to Information Hiding”

In this talk, we discuss three types of information hiding; steganography, fingerprinting and covert channels. We consider the motivations behind the use of each technique, real world examples and the fundamental problems with such techniques.

 

What I learned at a Business Development Weekend

Last weekend, I was fortunate enough to attend Liverpool Does Startups; A three day event that aims to teach people about the fundamentals of business planning and startup creation. The event was a huge success and had a massive turnout. Before I carry on with this blog post, it’s probably worth noting that I wouldn’t have been able to attend without the kindness of the organizers, Francis Fish and Rosie Diver. They knew I was a crushingly poor student and they gave me a ticket to attend for free! I benefited a massive amount from attending, and I’m amazingly grateful to them.

It’s also worth noting that Rosie and Francis are both very, very competent at what they do and are both genuinely amazing human beings whom I have nothing but the highest respect for. Francis in particular is a hugely talented developer and you can read his blog here.

It’s also worth thanking all the mentors who showed up and shared their collective wisdom. They were Francis Davey, Francis Irving, Robin Cowan, Gary Smailes, Michael Hobbs and Marie Burns

So, what did I learn? Well, a few things come to mind…

Charles Holland Duell Was Wrong(er)

This guy. Wrong.

Charles Holland Duell was the head honcho of the US patent office back when cars didn’t go over thirty miles per hour and smoking was seen as medicinal. He made a prediction that could best be described as… Erm… A bit silly. To paraphrase, he said “anything that can be invented, has been invented”. Now, we all know he was totally wrong. We have cool stuff now like iPads and Google Glass and the polio vaccine. Really cool, futuristic stuff that would have been unthinkable for someone born in 1850 (like Charles Holland Duell).

At the start of the event, there was an icebreaker session where we created startup ideas by combining words from prompts and turning that into a pitch. We ended up with an idea for self cleaning floors for the disabled that used high-pressure water jets and windscreen wipers. Another idea that came from the icebreaker session was for a green burial company that used decommissioned aircraft carriers for sea based funerals. All these ideas came from two word prompts.

With a little bit of imagination and a bit of creativity, you can think up some cool stuff.

Your assumptions about everything are almost certainly wrong. 

On days two and three of the event, we broke off into small groups who worked on a single business idea. One thing that struck me constantly was that we would set off with assumptions about the product we were working on, only for them to later be proven wrong with a little bit of research.

Part of the beauty of Eric Ries’ Lean methodology is the emphasis upon getting reliable metrics and doing market research; Actually taking the time to do the research that is required for your business to be a success. Part of that was getting out of the building and going out onto the street and talking to complete strangers.

As a slightly crazy old lady once said, “study it out”.

Jules Winnfield Is Wiser Than You Realize

Pulp Fiction is one of my favorite films of all times. Perhaps the most famous line was delivered by Samuel L Jackson in the infamous “Hamburger Scene”.

Food for thought. So, at the start of the event, we could pitch ideas to anyone in attendance. I decided to pitch an app that I’m currently working on. It’s a HTML 5 based remote access tool using node.js (use ALL THE BUZZWORDS). Fairly audience specific stuff. Fairly technical. I pitched my idea, and it got absolutely no interest and enthusiasm.

I didn’t understand that the people who were listening to my pitch weren’t hardcore techies like myself. The audience was beautifully diverse. There were writers. Students. Business types. Sysadmins. Coders. And I didn’t capitalize on that.

I later spoke to one of the business mentors  about what she thought of my idea. I wanted to know why nobody seemed to share my enthusiasm for it. She said she honestly didn’t understand what it was that I was pitching. That really humbled me, and in future, I’ll definitely consider my audience and how I deliver my ideas. English, did I speak it? No.

My good friend Javvad Malik gave an excellent talk at BSides London 2012 on this very subject, and you should definitely check it out.

Liverpool Does Startups isn’t happening for another year. Still want to get your learn startup fix? Go to Lean Liverpool.

You should follow me on App.net here.

Shrimping it – Arduino Hackery On The Cheap

Arduinos are cool. Very, very cool. For those who don’t know, they’re basically little computers that you can hold in your hand that allow you to add interactivity and functionality to things that otherwise would be static and immobile. They’re used extensively in the arts and industry and they are regularly used to make amazing stuff.

Take for example, the Bubblino. A small, smiling, spherical piece of plastic that currently resides in my local hackerspace that was created by Adrian McEwen. Whenever someone posts a tweet that mentions ‘@doesliverpool‘, it shoots out a jet of soap bubbles.

Bubblino - From Flickr user 'nutted'

Bubblino – From Flickr user ‘nutted’

It’s probably worth noting that Adrian along with fellow Liverpudlian Arduino expert Hakim Cassimally, have a book coming out soon that promises to be excellent. It’s all about using creativity and embedded systems to make cool stuff. You can buy it here, if you’re so inclined!  

People have also used these Arduino devices to solve serious, real-world issues. In Oakland, California there is a startup called Kijani Grows  that aims to address the issue of world hunger by using these tiny microcontrollers alongside Aquaponic technologies in order to cheaply, intensively produce organic food. All this, whilst using far less water than conventional farming methods and no soil whatsoever.

So, what about these Shrimp things then? 

Well, whilst Arduinos are very, very cool, they’re also not particularly cheap. In Maplins (an UK electronics retailed)  an Arduino Uno (the entry-level one) costs around £25 (USD $40). If you are a school or a university and you intend to give one to each student in a computer science class, it can start to get really expensive. Likewise, if you have a project where your microcontrollers will be exposed to the elements, you might want to find an alternative to spending £25 every time it rains.

Now, the really amazing thing about Arduinos is that every layer of the platform is open source. From the Processing IDE based development tools to the schematics of the device itself. That has resulted in a deluge of Arduino compatible clones flooding the market. Now, these are fairly cheap. But what if you wanted to go even cheaper? What if you wanted to make your own Arduino?

That’s where the Shrimp project comes in. The brainchild of Cefn Hoile; it aims to teach people how to create their own Arduno clones for less than a fiver. All you need is some solderless prototyping board, a bunch of capacitors and resistors, an ATMEGA chip, an FTDI cable and a bit of patience. The recipe is available here, along with schematics and other guidance you’ll need in order to create your very own Shrimp.

Not So Harduino

If you’re wondering, I was able to construct a prima facie Arduino Uno in about five minutes and was able to write a simple program that flashed an LED light on and off. In other words, the “Hello World” of Arduino. That in itself also took me about five minutes.

An Arduino Shrimp

An Arduino Shrimp

It’s probably worth noting that there are some resistors and switches missing which are needed if you want to do anything more than flash a light on and off. Still, it’s not bad for a proof of concept.

Are you more likely to get into Arduino programming now that the cost of entry has decreased significantly? Are you put off by the extra steps involved in order to create a Shrimp? Would you buy  Let me know in the comments!

Fun with MeekroDB: Using MySQL With PHP The Right Way

So, I’ve been doing a lot of PHP work lately. A lot in the respect that it has overwhelmingly become my main day job. Whilst the language has a lot of quirks that I don’t particularly like, I appreciate the fact that it allows you to get work done very, very quickly and getting a PHP web server set up is just a matter of running “apt-get install lampserver^” which is many magnitudes easier than setting up a Rails or Django server.

One issue with PHP is that working safely with a database can be extremely hard, dangerous and cumbersome. Particularly if you’re eager to avoid having your entire database compromised with an SQLi attack.  It’s also worth noting that when it comes to working with a database it often takes many lines of code just to perform a simple query securely. Gross.

So, here’s where MeekroDB comes in. It’s a single, self-contained library written in pure PHP that makes database interactions absolutely painless. It’s also rare, in the respect that its a fairly well documented, regularly maintained PHP library and the lead developer (a chap by the name of Sergey Tsalkov) is a rather nice guy indeed who is willing to respond to emails.

One of the unique selling points of MeekroDB is that it promises that SQL Injection is 100% impossible. Now, I’ve not independently verified this claim, but I’ve not seen any posts that claim otherwise. If anyone does find a vulnerability with it, however, please email me and I will post a correction.

Anyway, enough waxing lyrical about the delights of this awesome little library. Let’s start playing around with it.

I’m going to assume that you’ve downloaded the library from the website and you’ve copied MeekroDB into your project. Start off by setting it up to communicate with your installation of MySQL To do this, open it up with your text editor of choice (I like Sublime 2) and edit lines 22 to 27 with the correct settings for your database.

Once you’ve done that, you probably want to run a query. Suppose your database has a table called “Albums” and you want to select every album by The Verve Pipe?

Simple, right?

Alright, let’s try something a little bit harder (but only marginally so). Suppose you want to insert a new album into your database? Behold.

Want to remove any trace of your deep-seated love of Nickelback from your album collection? We understand.

I’m guessing you’ve worked out by now that Meekro DB is fairly easy to use. Cool, isn’t it? You can read a lot more about how to use Meekro on their comprehensive, well written, official documentation. And I must be honest, it is rather good indeed. I’m becoming a bit of an evangelist for this useful little library. Here’s why…  At the time of writing this blog post, only one of the top five results for PHP MySQL on Google mentions the need to mitigate against SQLi.

Yes, we’re teaching newcomers to PHP development (I count myself as a one of these newcomers, by the way) to just trust whatever input our applications are given. To not be concerned with security. This is largely because people can’t be bothered to write decent documentation.

Meekro has the advantage of being incredibly easy to use and being incredibly secure. Now, if that’s not the most awesome thing ever, I don’t know what is.