Category Archives: Coding

IE – that is, the bane of our lives!

One of the obstacles to progress in digital is the limitations placed upon us by the tools available to users – the browsers and devices. In a perfect world all devices and browsers would use the same code base. We could write some code and we would know that every device and browser would treat it in exactly the same way. But of course we don’t live in a perfect world, instead each developer of a browser or device treats code slightly differently and this adds overheads to projects because we then have to text against each of these. This is why standards like HTML5 and CSS3 are introduced, they are supported across the board (by all the major browsers). But the other problem we have is with legacy versions of browsers. Unfortunately older versions of browsers don’t support newer versions of code, which leaves us with two choices when developing new things:

  1. Use older technologies which limit creativity and make it harder to achieve a good result
  2. Build something that has a ‘graceful fallback’ for browsers that are older

The problem with the above is you have to make a compromise either way, option 1 limits the experience and option 2 adds budget and testing. Of course the 3rd option is to ignore older browsers…which may or may not be at your own peril.

So the online world is frustrating for developers, to say the least. But one particular browser has traditionally caused a lot more problems…and for each generation there is a new version to cause issues. Of course I speak of Internet Explorer, a browser that has become synonymous with cursing developers and irritated clients, inflated budgets and frustrating user experiences. When I first started out in digital the real problem was IE6, which at the time was still used by a lot of bigger organisations despite the fact IE8 was out. Thankfully this relic browser was retired a few years ago but with the emergence of HTML5 and CSS3 IE7 then became the new 6.

We are currently in the throes of developing a new CMS system, which utilizes a lot of the real time JavaScript technology AJAX. This has not only presented us with lots of problems in IE8, but also in the latest versions as well. We are in the position where we have to test the system in Firefox, Chrome and Safari once and then basically rebuild the code just so that IE will use the technology in the same way. Frustrating doesn’t cover it!

A couple of years ago an Australian shopping site got so fed up with the overheads imposed by Microsoft’s browser that they decided to impose a tax on users of the older IE7 browser unless they switched to another browser. Obviously Microsoft weren’t impressed, but maybe they should have taken note of the reasons behind the move.

One of the reasons this has occurred is no doubt that for years Microsoft had an unchallenged share in the market. Pretty much every PC in the world came with Windows and IE installed and for the most part people didn’t know there were alternatives. For Microsoft’s part, they have time and time again chosen to interpret the standards differently to the other browsers, causing issues for developers and bad experiences for users. An example is their interpretation of multiple file uploads. Most browsers would allow you to hold down Ctrl and multi-select files by clicking on them. Microsoft decided, in their infinite wisdom, that in IE you would have to select a file, add it to the queue, then go back and browser for another file, add it, and so on. A ridiculous experience.

Microsoft’s perceived arrogance in this area is being tested now. They continue to make the same mistakes and cause the same problems as they always have done, but they are being forced to change. One of the reasons for this is that IE no longer has a vast majority stake in the browsing market. Gone are the days of dominance, now Firefox and Chrome has made massive advances and on MAC no one would contemplate using IE anyway…lest their MAC would literally shut itself down out of embarrassment. The other reason is that users are becoming more savvy. Users realise that IE isn’t a very good experience when compared to other browsers and so make a choice not to use them. Of course, the growth in the use of devices that don’t have IE as their browser has also helped here. Hopefully Microsoft will take further note and try to converge rather than diverge and let us develop better experiences more easily and cheaply than they currently do.

But a word of warning to finish with. For years Microsoft created a rod for it own back by choosing not to go with the flow and insist on their own proprietary way of doing things. Sound familiar Apple? Already in development we are seeing issues arising that are not seen in other browsers. For example, the way Safari deals with PDF downloads can cause issues without the right plugins. Apple only accept their own formats of certain file types as well. And of course, they are renowned as a company a company that rejects all other tech except their own.

Of course it is unlikely their will ever been a completely unified approach to code and with more and more devices being used this is only going to get worse. Luckily they mostly stick to the standards, but there will always be problems that we need to solve as developers and that is why the job isn’t easy!

Advertisements

iCurriculum – Next Generation Coders

Recently the government have announced their proposed new curriculum for schools, aimed at restoring the English education system to its rightful place as one of the best in the world. One of the interesting things included in this is a new focus on computer skills, specifically around the ability to program:

Computing¬†will teach pupils how to write code. Pupils aged five to seven will be expected to “understand what algorithms are” and to “create and debug simple programs”. By the age of 11, pupils will have to “design, use and evaluate computational abstractions that model the state and behaviour of real-world problems and physical systems. (Sean Coughlan, http://www.bbc.co.uk/news, 08/07/2013)

This is an interesting shift in focus in the education system and has a number of far reaching consequences. This is something that is probably long overdue, considering the impact that the internet and apps have on almost all our lives. In America coding has been a part of the curriculum for a long time. In fact, the TV series Buffy the Vampire Slayer has a scene in one of the early series which clearly shows Cordelia writing code for a program as part of her school work, which raises the question “why has it taken so long for us to catch up?”

One of the interesting things I see a lot in my job when interviewing for content managers is what we refer as ‘the myspace effect’. One of the key skills we look for is a basic understanding of HTML coding and currently the most common way people say they have gained this experience is through the short lived myspace phenomenon. Most of this occurs from the under 30 age range but it is an interesting insight into how one site has influenced a generation of people to learn the basics of coding. This is, in some way, the first step towards an acknowledgement that coding is fast becoming a common skill. Indeed, the days of ‘geeks’ being the uncool kids who spend their school break times locked away in dark rooms, tapping away at keyboards, wearing thick rimmed glasses and talking with whinny voices are long gone. Geek is the new chic, largely thanks to the Americans who has managed to make technology cool. Apple, Steve Jobs, Mark Zuckerberg, Apps, Zachary Quinto (yes, as weird as it seems, Hollywood actors being openly geeky has helped a lot) have all contributed to a shift in the way the world, and particularly young people, regard technology and coding.

So on to the new curriculum. I have my own reservations about how ambitious the government are being. If they think all 11 year olds are going to be able to write full programs then they are misguided, but if this is to be pitched at a lower level where children are taught the value in assessing a system holistically, identifying problems and solving them then this can only be a good thing. The ability to problem solve is a good one to have and exposure to technology is only going to help in a world that is increasingly filled with gadgets and devices. It used to be that if someone didn’t have typing skills then they wouldn’t be able to get a job in admin. Then it became that you needed Office Suite skills, and now you need to have internet skills and experience using mobile devices or coding skills. It is intellectual evolution in action and it won’t slow down either…Moore’s law for technological skill and understanding.

But what does this curriculum change mean for schools and more importantly for us, the digital practitioners? As a governor at my daughter’s school, which is a small school but that will be effected by this change, the major concern for me is the provision of the new curriculum. This will require schools to make investment in more technology and more importantly the skills to teach this. By the very nature of the teaching system, most teachers will not have come from a generation where they have the ability to teach coding, so new staff will be required. The interesting thing is that this will open the doors for the younger ‘myspace’ generation to potentially take some of those roles and thus that generation will help move us into the next age. Another concern is the mismatch between children from better off families against those with less money. This sort of curriculum will require extra-curricular work and those children in the less well off homes will struggle to get the opportunities to work with the technology. This will probably result in a shift towards children widely getting their own devices; the world of glass is coming.

So what about us, the digital practitioners? The most significant thing I foresee is the dilution of coding skills. Currently coders tend to work for agencies or corporations and any websites or software projects of any quality tend need to be undertaken by them. But in recent years I have noticed that a lot of our potential clients are already talking to friends they know who can put a website together for them. This is certainly the case for smaller clients and that is happening now, in a world where coding is still considered to be a specific skill set. So what will the effect be of coding skills becoming the norm in the next few generations?

Something we will need to be prepared for is that the internet will become more accessible for the majority of people. There will no doubt be many that forget their coding skills the moment they leave school, just as I can’t remember much of my algebra now. But there will also be plenty of people who are able to continue and expand their skills. The digital industry is going to have to capitalise on the specific ‘quality’ aspects it offers, such as in depth knowledge in user experience design. The bigger agencies will continue to work with the big corporations, but the smaller agencies, who rely on a succession of small and medium projects, will be the ones that will have to specialise and grow, or suffer. My prediction will be that small businesses will use ‘friends’ to produce sites rather than small agencies. The effect will be that the lower end of the market will probably stagnate. The digital industry will become more focussed on the top end of the market, with WordPress and the like being used by individuals to provide cheap and easy websites. Of course, all of this could well change when the web goes through its next evolution. Either way, we should all keep an eye on this keenly as our world will be effected by it.

Was it all just a flash in the pan?

As a freelance photographer in my spare time, one of my bug bears is photographers who have websites built in Flash. I am not entirely sure the main reason why I get so irritated by it but perhaps it is because in this day and age it seems necessary.

To be fair, I should probably start by looking at why Flash exists. Back in the dark ages there wasn’t really a code based way to make sites interactive and, dare I say it, ‘fun’. And this was necessary as more and more people began to use the internet as people needed ways to make sites look better and feel more enjoyable as an experience. Flash action scripts provided a way to make things more exciting. It meant that websites could move, be interactive and more lively. It meant that design could push new boundaries as sites could be less image and text based and start to explore interactive experiences such as tools. And another advantage of Flash is that if the plugin is installed then it will work on your browser, removing the need for completely different approaches depending on the browser you are using (well almost). Flash was in its element (if you excuse the pun).

But that in itself is a drawback. Flash is a plugin and therefore not a natural fit for browsers. Plugins require updating and versions get out of date quickly and of course the problem that we now see is that certain modern devices (names Apple) decide not to support the plugin at all and thus put pressure on us as practitioners to find alternatives. So now we get into the nitty gritty of my problem with flash…it is fundamentally flawed in terms of accessibility and more importantly search engines. Because search engine bots are designed to crawl text content anything that is built in flash is largely, if not completely, ignored.

This brings me back to my original point; if a photographer has a website built in flash and puts loads of really good SEO related content in it, so that people in their area looking for photo services can find him, none of that will be discovered by google (save for the URL and page names). That puts the photographer at a distinct disadvantage and anyone looking at the site on a device that doesn’t support Flash, which is increasingly likely in this day and age, won’t see anything at all. The same goes for any other business building a site. A good friend of mine runs a small and growing video production company. When consulting with possible suppliers for a website one quoted him a cheap price to build one in Flash and I immediately steered him away from this. Not least, besides the above, building a site in Flash with custom CMS elements means that should he choose to get someone else to change his website in the future this will make it very difficult and costly. The company were, in essence, trying to tie him in to a long term relationship which wouldn’t have been good for him.

To give Flash its due, it had a purpose and it served that purpose very well. But with the advent and improvement of more modern programming languages such as HTML5 and the improved ability of JavaScript and jQuery libraries there is not much that Flash can offer that these languages cannot achieve. The difference is that these modern languages can be accessible, they can work across devices and they don’t rely on plugins to make them work. There are also plenty of people out there who are skilled in these areas so you don’t need to employ a Flash specialist to create something for you and you can take template libraries as a start point, reducing costs and timescales.

It was very interesting that about a year ago I was present at a presentation by Adobe of one of their products. As a lead in they introduced their full suite of products and services and Flash was conspicuous in its absence from the presentation. Was this a sign that Flash is a thing of the past? I think so. The world is moving fast and very probably towards a world of integrated, cloud based technologies that will present themselves fluidly, responsively, in a number of different contexts and positions. Flash just doesn’t fit with that world. Flash is dead, long live Flexbox (or any other language you fancy!).