Archive for the 'reviews' Category

Review: Build Mobile Websites by Castledine, Eftos, Wheeler

I got this book free in lieu of payment for my Sitepoint article Notes on Designing Websites for the Asian Market. When it arrived, I looked in the index for “Opera” and found no entry at all. As this is a book is called “Build Mobile Websites and Apps for Smart Devices” and is about designing mobile websites (not just apps), I decided that the book would be another iOS wankathon, and put it immediately in my recycling pile. (“iOS wankathon” is the technical term employed by medical professionals to describe articles/ books/ conference talks that stupidly assume all mobile users have iPhones or other webkit-based browsers.)

Luckily, I decided to give it a go and picked it up just before getting a flight. It’s actually a really good book, with only one webkit wank (a very low number when “apps for smart devices” is in the title).

There’s good information on responsive web design, although it doesn’t replace Ethan Marcotte’s book, it summarises well. The second edition should add information on CSS Device Adaptation (“CSS viewport”) now that IE10 and Opera support it.

I found the chapter on design for mobile very useful with its different patterns for organising information. The chapter “markup for mobile” was less so, probably because I know more about markup than design.

One slight niggle – in an example app, the use of ellipsis is shown by including the name of a person “I am a celebrity with an incredibly long name for some unfathomable reason”. Long names seem quite common in Thailand, Sri Lanka, Russia, Greece etc; it’s only “unfathomable” if you think in the context of English names.

The only example of webkit wanking comes in the “Mobile web apps” chapter. In order to navigate from page to page, -webkit-animation is used with no other vendor prefixes. The authors have ensured that a simplified page swap is available on other browsers, but that tests WebKitTransitionEvent in JavaScript. Why not just use all the vendor prefixes and the non-prefixed version, and only then fallback to a “simplified” page swap? It’s particularly remiss when Firefox supported Animations from May 2011, while the book was published in June 2011.

Better still would be to ensure that vital functionality like navigation is available everywhere and only then progressively enhanced.

In conclusion, this is a decent book. Client-pleasing stuff such as touch, accelerometer, geolocation is covered. But while it was languishing on my shelf more cutting-edge features have become available. You can still learn from this book now, especially if you’re interested in sites that work well on mobile rather than all-singing all-dancing applications, but it would be good to see a second edition that addresses getUserMedia and proper cross-browser vendor prefixing.

Creative JavaScript with Seb Lee-DeLisle

One of the many joys of going to Fronteers 2011 (even more than seeing Jake Archibald in a mankini) was Seb Lee-DeLisle’s presentation “CreativeJS – beauty in the browser”. Watching sexy particle systems, using mobile phones as pixels and playing NyanCatch was fun and exciting.

I’m a JavaScipt n00b, but an old hand at programming, which I taught myself in the 80s by coding visual games like space invaders and lunar lander. So when I heard that Seb was giving a two-day workshop in Leeds on how to code creative visual effects and games, I decided to go along.

Seb didn’t start at the very beginning; it’s assumed that we have a text editor, a web inspector (I was using Opera Dragonfly, of course) and that we know what variables and loops are. There wasn’t much talk of prototyping and inheritance either – the emphasis was on the making rather than the theory.

We looked at canvas, how to make simple shapes and simple animations. Then we used Seb’s simple library to add drag, velocity, gravity and randomness to particles, all the while building pretty effects that responded to the mouse. We learned canvas rotations and transforms (which I hadn’t really bellyfelt before) by making a generated tree (which I topped off with random cherry blossom).

We learned how to code the game Asteroids, with a reminder of trigonometry that shocked me: who knew I’d ever need SOHCAHTOA or the Pythagorean theorem in real life? This also helped us learn how to make natural-seeming physics.

We all had a brief foray in webGL, albeit abstracting away most of the horrors via Mr Doob’s THREE.js.

It was a great fun course. Seb’s an engaging and effective teacher and I feel much more confident with my JavaScript now (I even suggested an optimisation to Seb’s collision detection code!). Thanks to Seb, Clare who co-organised it, and my fellow attendees.

If you’re looking for an “in” to JavaScript, and you learn by mucking about and seeing what comes out the other end, sign up to Seb’s next course.

Full Frontal 2011 notes

Full Frontal is organised by my co-author, Remy Sharp and his wife Julie (who both juggled recent parenthood with conference running – respect!). I’ve been unable to attend in previous years due to being out of the country but was looking forward to this one, even though I was a little worried that the JavaScript content would be well over my head.

I needn’t have been too scared. The first talk was on CoffeeScript which seemed to me quite intriguing as it (seems to) encourage you to continue thinking of JS as JS (rather than turning it into Java or some such horror) but smooths away some of the syntactical gotchas that get on my moobs. (See Mike Davis’ write-up.) However, I’m a great believer in not cheating until you know the rules properly, so I’ll be delaying CoffeeScript until I’m more confident in my JS.

The second talk was Phil Hawksworth “Excessive Enhancement – Are we taking proper care of the Web?”, which wittily harangued developers to ensure there is proper semantics underneath the JS shizzle and CSS bling – a subject dear to my heart recently. (And he even quoted me, which is nice!)

I skipped talk #3 “Respectable code-editing in the browser” for some synergy-leveraging as I thought it would be too advanced for me. Only afterwards did I realise that the talk was by Marijn Haverbeke, the author of Eloquent JavaScript that I was greatly enjoying on the train coming down on the recommendation of Noo Yoik JS lovegod Mike Taylor.

The talk on Cloud9 IDE by Rik Arends was a bit of a product pitch, but interesting. I wonder if it works across all browsers?

“Scalable JavaScript Application Architecture” by Nicholas Zakas was the tech highlight for me. He discussed a method of structuring an application so that everything was controlled by a main control app with messages passed into it and back out, with everything else being a black box to everything else. This means the programmer must spend a lot of time at the start of the project, designing the sandbox, controller and APIs. This may not be revelatory to most JS coders (or it may be, I don’t know) but it reminded me of learning Jackson Structured Programming in the late 80s when a systems analyst at AT&T. I’d like to see Zakas do a follow-up talk on how to design the sandbox and controller.

Glenn Jones’ “Beyond the Page” talk discussed – and demoed – techniques and emerging standards/ idioms to make Web sites less separated from other apps. We saw Drag and Drop, Web Intents etc. Some evil hackery, too!

Brendan Dawes always scrubs up nice and today was no exception. Although he’s a quivering Flash-lovin’ aesthete (albeit with a Northern accent), he had the techy crowd warming to him and then in stitches with a stream-of-consciousness talk about creativity, new interfaces and expensive pencils.

Last on was Marcin Wichary from Google, who talked of Google Doodles. Who knews that they user-test them? It was a fascinating talk and the good news is that he’ll be blogging about them in the future.

FullFrontal was a super day. The after party had lavish quantities of free grog. The venue was quirky and fun, with free coffee all day. Each talk was handpicked – in fact, everything about the event was curated by Remy and Julie. I’ll be going next year (although not staying in the Travelodge, Preston Road, which was a dump, and nothing to do with the event).

Review: Interact with Web Standards

(Disclosure: several authors of this book and its technical reviewer are personal friends of mine.)

Once upon a time there was a grassroots group of Web designers and developers called the Web Standards Project (WaSP) that pressured companies such as Microsoft and Adobe to ensure that those companies’ products were more standards-compliant.

They were largely successful; although some companies occasionally relapse, most of the time standards are given more than mere lip-service.

The WaSP then sought to educate Web developers to code to standards, not to browsers. Again, it was broadly successful. While there are many, many developers out there testing only in IE (or doing the 2010 equivalent of testing only in WebKit) it’s easy to find other standards-aware developers out there in the world, and standards are generally understood by professional developers to be the ideal—even if that ideal is not always achievable in a particular project.

The WaSP finally ran out of steam and with Interact became its successor in taking the Standards gospel to the next generation, because learning the right way is so much better than unlearning bad habits. Interact with Web Standards is subtitled “a holistic approach to Web design”: it’s a curriculum to learn from or to teach.

The state of Web education in universities is utterly out-of-step with industry best practice (with some notable and welcome exceptions). Students go into courses in good faith, believing that they’re going to emerge ready to work in the Web industry. Employers, however, find that most graduates are ill-prepared. When I was interviewing for a new member of a team in 2007, I found no candidates whose portfolio sites used valid HTML or which worked cross-browser.

Another employer told me “For the first time ever, this spring we grabbed a couple grads with some solid standards skills”. This means spending time and money training so-called graduates in the discipline that they should already be experts in. “Almost every comp. sci. peep I’ve ever worked with has been around 3 years behind on current tech / standards” says tomnomnom.

The reason is that University Computer Science courses treat the Web as something of an afterthought, and pay no attention to Standards. “I’m a 2004 graduate, and I was actively marked down for using web standards over tables and Java widgets” says Steve Marshall. “We weren’t taught standards in college – it was more ‘here’s dreamweaver, best of luck with it'” adds onepixelout.

The Interact book fulfills a vital need. Like Opera’s complementary Web Standards Curriculum, it is a course textbook, a self-study primer, an on-the-job training manual. Its aim is to equip new entrants to the industry with skills that today’s employers really need: the ability to develop accessible, usable, good-looking web sites that are based on Web Standards so that they work across all browsers, operating systems and across devices.

The pedigree of the book’s authors is excellent: educators, highly-rated conference speakers, industry stalwarts, designers and coders combine to give the reader a well-integrated series of lessons that progresses through project planning, content development, information architecture, HTML, CSS and accessibility. (See table of contents.) The book is also pleasant to read, with attractively designed layout, full colour illustrations and guided “try it out” sections.

Gripes? Not many. There’s little on JavaScript in the book, which is an increasingly important part of Web development (volume 2 perhaps?). There are a couple of minor proofing errors, and I’m not completely convinced that writing for the Web is as different from writing for print as the chapters seem to suggest.

All in all, the book is an very good primer for those beginning their education in Web development, and provides an excellent framework upon which to build knowledge.

Of course, you don’t need to know the contents of this book to find a job in the Web. But if you want to rise above the badly-coded, thrown-together sites that plague much of the Web and join the top tier of Web professionals, you need to know the information this book covers.

Arabian Nights, Royal Shakespeare Company

Last night, a whole house load of Lawsons, my mum and stepdad, my half-sister and her kids went to Stratford to watch Arabian Nights by the RSC as a pre-Christmas treat.

Arabian Nights is the story of a storytelling Queen, Shahrazad, who will be executed by the King unless she can think up new stories to tell. Like the Canterbury Tales or Decameron, it’s basically a framing story for a disparate collection of folk tales; some are high and courtly like The Knight’s Tale and The Story of the Envious Sisters, others bawdy like The Miller’s Tale and How Abu Hassan Broke Wind.

The latter had such a triumphantly staged megafart that every child in the audience (and juvenile adults) were laughing hysterically for minutes. The cast used puppets, slapstick, and mime to tell the stories in a manner that consistently held our attention (as did the gorgeousness of lead actress Ayesha Dharker).

The show was quite long—over three hours—but it rarely dragged. Perhaps the final story could have been pacier if there had only been one brother to fail in the quest, rather than a second who repeats the first’s failure. Once or twice, some of the dialogue jarred for me; most of the dialogue was in a high narrative style so Shahrazad’s reponse to a request with “I’ll see what I can do” sounded clichéd and lazily written.

But those are small criticisms of an otherwise excellent production.

Dear KLM

As sent to their customer service people. Bet I don’t get a reply.

Dear KLM, I travel regularly around Europe for work and our corporate travel agency books me flights with KLM. For leisure I usually fly to Asia, and go by Emirates.

I was sent to work for 2 weeks in Jakarta and was given the choice between KLM and Emirates. I chose KLM. The flight KL810 is the worst flight I’ve taken in a long time (it reminded me of Aeroflot in the 90s).

Firstly, at my seat (39G) the light wouldn’t operate–preventing me from either reading or using my laptop to do some work. I could not watch the in-flight entertainment, as the sound was stuck at maximum volume and was therefore unintelligble and painful to listen to.

I asked the stewardess for another aisle seat (I have a medical condition which means I must get up and walk regularly) but there were none left. I asked to move to business class, but was told that was impossible.

A stewardess apologised, saying that it was an old plane and some things don’t work properly. Travelling at 500 miles per hour, 4 miles above the Bay of Bengal, this was not very reassuring.

So the only thing to for the flight was have some drinks and sleep. Unfortunately, no-one ever responded to my armrest call button (my colleague in a nearby row had the same problem) so I had to get up and search for water in the dark by myself.

Therefore, instead of a relaxing flight that allowed me to do a couple of hours work and then rest, I had 12 hours of extreme boredom, unable to read, work or watch TV and must now work when I get home to catch up with the work I hoped to do on the plane.

My future trips to Jakarta, Bangkok and the like will be by Emirates.

Samsung Omnia review

I didn’t have a phone and needed one to demo Opera Mobile and Opera Mini, so decided to get the sexy Samsung Omnia.

I took a while to get hold of; they’d all been sent back to Samsung, one operator said, because of software problems. I perservered, and eventually got one. It costs £35 a month with 600 minutes of talk, 250 texts, free landline calls, and free data (fair-use policy applies). The shop promised me free satnav, but Vodafone then told me that wasn’t the case.

It’s a nice shape; it feels robust and sturdy. The screen is nice and big, responsive to the touch and sound quality is good. But despite its excellent specs, I haven’t been able to get 100% comfortable with using it. I don’t hate it; it’s a very useful and versatile beast, but I can’t get to love it. Elliott Kember (of Carsonified) showed me what the problems were: basically, the problems are down to Windows Mobile.

I’ve never owned a Smartphone before, so Elliott put his iPhone and my Omina next to each other and we compared them. Now, I wouldn’t have an iPhone; the price, the low specs and the fact that I can’t have the browser I want rule it out for me. But it’s undeniably a much better user interface than the Omina.

For example, when entering a new contact, the iPhone switches automatically to the numeric keypad for entering a number, and to the text keypad when you enter a name. This is obviously the correct behaviour, whereas the Omnia defaults to the text keypad, meaning there’s an entirely spurious step of selecting the numeric keypad. What a waste of time.

There’s also the annoyance that when you’re speaking, the keyboard locks and if you need access to the keypad during a conversation (to select a menu item on an automated “triage” phone system, for example) you have two keystrokes to make before you enter your selection. I know that this can be changed using some options, but proper testing with real people would have resulted in better defaults.

Opera is great on the Omnia; it’s responsive and renders perfectly. But the rest of the machine doesn’t feel 100% right to me—and I’m a Windows user.

The user experience of the iPhone is very good, and applications like AirMe, which upload straight from your camera to Flickr are just the way I think software should be (although that one isn’t made by Apple, ironically). But the fact that you can’t choose a wallpaper, a ring tone, a carrier or a browser spoil it.

So there still isn’t a phone perfect for me. Perhaps I should have done as Stuart Langridge suggested and wait for a phone that can run Opera Mini on Android.

Castingwords for audio transcription

Recently, Opera sponsored Geek in The Park 2008 by picking up the tab for audio transcription of the talks. It’s one thing that often gets overlooked by conferences and it’s something that Opera takes very seriously. Equally, you can’t expect speakers and organisers of a grassroots event to pay for it when they’re giving their time for free.

The company I used is called Casting Words, and I want to recommend them to you. After cleaning up the audio, I uploaded it to their site and selected their six-day turnaround service at $1.50 per minute. Four days later the transcripts were returned, with very few errors, particularly when you consider the technical nature of the content. You get them returned as text, RTF and HTML, and the markup is not bad: it’s set out as blockquotes with speakers’ names in cite elements.

The only problem is that multiple paragraphs inside blockquotes are marked up with double br elements rather than wrapped in p elements, so I emailed their support to ask them if it would be possible to amend their publishing system accordingly. Rachel wrote back “Thanks for letting us know about this, we will make that change.”

Now that’s service.

And when a 45 minute conference talk only costs £30 to transcribe, it’s difficult to imagine why organisers of for-profit conferences wouldn’t provide a transcript of their events.

(The transcriptions are being checked by the speakers and will be published when they’re proofed.)

Review: HP Photosmart C5180 All-in-one printer

This is consumer-level printer which cost me £70.

It’s quite a nice machine, but the software that powers it is abominable. On a brand new Vista install, it regularly loses knowledge of the network and has to be reinstalled (a process which takes at least 15 minutes of whirring).

On a clean XP install, the software for one some unwanted Photo Gallery package regularly pops up an error message. The modules aren’t installed a separate programs, so I can’t just delete that module in Control Panel. So now I have to continually get the task manager to nuke the process that pops up this consumer-friendly error message:

System.NullReferenceException: Object reference not set to an instance
of an object.
at HP.CUE.Video.PlaybackControl.UpdateProgressBar()
at HP.CUE.Video.PlaybackControl._ProgressTimer_Tick(Object sender,
EventArgs e)
at System.Windows.Forms.Timer.OnTick(EventArgs e)
at System.Windows.Forms.Timer.Callback(IntPtr hWnd, Int32 msg,
IntPtr idEvent, IntPtr dwTime)

For all I know, every HP printer uses this software. Buyer beware.

Life’s too short for crap software—particularly dull utility software like printer drivers.

Hamlet with David Tennant, Patrick Stewart

When I go and see a Shakespeare play, it usually takes me between five and ten minutes to get my ear attuned to the language, and a little longer to get accustomed to the non-naturalistic acting. Particularly with the tragedies, there is a possibility for histrionics but David Tennant managed to resist them. In fact, sometimes his acting was so understated it was almost TV acting, with its reliance on close-ups rather than the larger-than-life movements and voices required at the theatre. His was a witty, self-aware Hamlet, driven by anger rather than grief. His reserve only broke in the scene in which he and Gertrude have their showdown in her chamber, when you could have heard a pin drop in the full Stratford house. That was a bravura performance.

The whole cast was very strong. Patrick Stewart played the ghost of Hamlet’s father, and the murdering uncle. His was also an impressive performance, but I find him too theatrical, too self-consciously thespian. Penny Downie was excellent as Gertrude, Mark Hadfield supplied welcome comic relief as the gravedigger, but for me the best supporting actor was Oliver Ford Davis as Polonius, played as a pompous forgetful windbag.

This was a cracking production by Greg Doran, directed with verve and an eye for humour, but it was David Tennant’s show—after all, Hamlet speaks 1,507 of the play’s 4,042 lines. I don’t know whether his will be considered an all-time great Hamlet, but it was energetic and enjoyable and showed that he’s far more than just a sexy TV personality (although he is that too of course). Overheard on the way out: a fourteen year old girl breathlessly telling her mother, “Wow! In the second curtain call, he was definitely looking and waving at me!”