Articles Tagged ‘LWS’

Sketchnotes from #LWS3D – A 50-line WebGL app

After a summer break, London Web Standards was back with an evening of WebGL with Ilmari Heikkenen from Google and a short demo from Carlos Ulloa of HelloEnjoy. Sketchnotes are below

Carlos Ulloa of Brighton-based HelloEnjoy showed off two demos that he made using Three.js and WebGL. The first was HelloRacer, an interactive look at the 2010 Ferrari F1 car that you can even drive and do handbrake turns in. The second demo got it premiere at LWS, an interactive music video for Ellie Goulding’s “Lights”. Honestly, it was extremely cool, on a Ro.me “3 dreams of black” scale. It’ll appear at the linked URL in the next week or so. There’s a great Q&A session on the London Web Standards blog of the event for more detail on how they did it.

Ilmari Heikkenen showed the gathered crowd how to make a basic WebGL app using Three.js in about 50 lines. He showed off all of the components that you need: a renderer, scene, camera, mesh and lights (and shadows). He went into more depth about vertex shaders and fragment shaders, the GPU effects that make everything look a lot more real.

Ilmari gave examples of a few uses, including games, 3D bar charts and scatter graphs. He then started animating all of these, including a 10,000 point scattergraph that moved in real-time. Finally, he demonstrated a loader for Collada meshes (supported by Maya) and brought in a monster that with a few lines of code started walking around the screen.

Overall, it was a great introduction to the subject, one worth a lot more of your time.

Ilmari’s slides can be found on his blog.

HTML5 Video and Audio at #lwsdeep

This month at London Web Standards, two in-depth HTML5 talks, covering bits which aren’t in common usage at the moment, and what you can do with the bits that are. This is part two, Opera’s Patrick Lauke (@patrick_h_lauke) on <video> and <audio>. Part one has Google’s Michael Mahemoff (@mahemoff) on 8 HTML5 features you haven’t seen before. Below are my notes and write-up. Enjoy!

Sketchnotes from HTML5 Video and Audio

Sketchnotes from HTML5 Video and Audio

First off, Patrick had a cold, hence the poorly drawn tissue in the top-left corner.

<video> and <audio> are some of the most important  elements in HTML5. Steve Jobs thought so much of these new elements and HTML5′s potential, that Flash was dropped from iOS devices and everyone was encouraged to make the transition. Even Microsoft has recognised their importance, adding native support for the elements in IE9.

The basic idea behind <video> and <audio> was to do for these media types what had been done for images. Instead of using messy <object> and <embed> tags to make Flash work properly, create something simple that doesn’t rely on proprietary technology. Therefore, <video> is now a native object in the browser, which allows you to treat it just like any other object, including styling it with CSS and even using CSS transforms on the video.

There’s an important aside around video formats which I’ll cover briefly here. There are three codecs:

  1. MP4/H.264 – implemented by Chrome, Safari and IE9, encumbered with potential royalty payments, whatever the MPEG association try to say.
  2. Ogg Theora – implemented by Chrome, Firefox and Opera, open source but not very good as a codec
  3. WebM – implemented by Chrome, Firefox, Opera and IE9 (with downloaded codec) it’s made for the web and will be the de-facto standard going forward. Apple have yet to commit to using the format

Thankfully, you can use multiple sources in your videos which will fall back to one another. You can even fall back all the way to Flash to give older browsers a fighting chance.

Each browser gets to implement their own controls for the video player, but these can be overridden and the whole video controlled by JavaScript. There are events which fire at different times and  theoretically it’s possible to time-match subtitle tracks, which WhatWG are looking into for future versions of the HTML spec.

<audio> is very similar in implementation to <video>, with the same format fight, this time between MP3 and Ogg Vorbis. Interestingly you can remove the controls from the page and run the whole thing from JavaScript, allowing for such horrible interactions as a whoosh sound when hovering over a button.

Best yet, is that Patrick officially certified these techniques ready for use. Their is sufficient support and fallback options to support all browsers, take YouTube for example, running HTML5 video for nearly a year now. However, he asks that you use feature detection rather than browser sniffing when making these fallbacks. There are a few tools out at the moment which do all this for you, such as SublimeVideo and videoJS.

And that’s it. Hope you enjoyed it. You can read Part one of #lwsdeep here.

8 HTML5 Features You Haven’t Seen Before at #lwsdeep

This month at London Web Standards, two in-depth HTML5 talks, covering bits which aren’t in common usage at the moment, and what you can do with the bits that are. This is part one, Google’s Michael Mahemoff (@mahemoff) on 8 HTML5 features you haven’t seen before, and part two, Opera’s Patrick Lauke (@patrick_h_lauke) on <video> and <audio>. Below are my notes and write-up. Enjoy!

Sketchnotes for 8 HTML5 Features You Haven't Seen Before

Sketchnotes for 8 HTML5 Features You Haven't Seen Before

This talk focused on 8 less-commonly used features of HTML5. Whether they’re all actually part of HTML5 is up for debate, but they’re all specifications being worked on for implementation in browsers, so that’s enough.

Firstly, Michael had made his slides using HTML5, which worked really quite well, nice flashy transitions and all that and was a good example of some of the features he showed off (notably the history API) .

1. App Caching
App caching is making web sites work offline: it tells browsers which files they should keep cached and re-load when the URL is requested. Whole apps can be cached like this and the iPhone and Android make good use of this. This is not the same as…

2. Client-side Storage
Which is data storage accessed from JavaScript. You used to do this with cookies, but now you’ve got access to simple storage arrays, and WebSQL and IndexedDBs are coming. Both of these together replace services like Google Gears which was a stop-gap for this.

3. Cross Origin Resource Sharing
One big problem with AJAX is that the XHR request can’t request something on another domain. The work-around for this is JSONP which is a hack if there ever was one. CORS allows people to do this in an open way… which to me, is simply dangerous. However, it will have some uses, unlike…

4. Ping
Which, apart from being a new social network, adds a bit of header information basically pinging a web site when a link is clicked. It’s designed to replace redirects but I didn’t really understand a good use case for it. If anyone wants to explain it, please drop me a line.

5. Web Sockets
Web sockets allow for a connection to a server to be kept alive and events received, much like sockets created in any other programming language. Web sites like Facebook (for chat) and Swoopo currently use Comet for doing this and web sockets will allow them to get updates pushed to the page from the server without the ugly hacks.

6. History API
I’m looking forward to this one: it allows for JavaScript inspection and manipulation of the browser’s history stack (or array, whatever it is) without changing the URL to use the # technique. It’s going to be very powerful for making applications where you don’t change the page but lots of things change state and users use the back button a lot. I made  a note that it’s quite a bit like a view state, making an ASP.NET comparison, but that’s a bit unfair.

7. Workers
Web workers enables multi-threading in JavaScript. Finally! I hear you cry. It’s not widely supported at the moment and it is about 25% slower than running the process in the main thread, but means you can do all sorts of things whilst the UI keeps updating.

8. Geo-location
Used to be done by IP with big expensive databases, but can now be done with hooks into device hardware. Useful for a load of different applications, this will be one of the most widely-used of the HTML5 APIs.

And that’s it. They’re all under-the-hood improvements, and the browser makers are making it easier to do the cool stuff, which will bring in a lot of innovative web apps as people discover the power of these new tools.

Part two of #lwsdeep can be found here

Update: here’s a picture of what’s in HTML5 and what isn’t by Bruce Lawson (Flickr)

What's in HTMl5

What's in HTML5 and What isn't, created by Bruce Lawson

UX Questions with Andy Budd

Last night was London Web Standards‘ UX Questions with Andy Budd  (of CSS Mastery and Clearleft fame)

My sketchnotes for this are at the bottom of the page. This is only a brief write-up, hopefully the LWS guys will put the video up soon. Much of this is para-phrased. Andy, if you do read this, let me know if you want any of these answers changed.

Q: Good UX vs Good design? (the actual question was a lot more wordy than that)

UX is a quality attribute, it can be good and bad. An aspect of good design takes UX into account, though there are exceptions i.e. the Phillips Juicer. Good design does not imply ease of use, UX is a design philosophy or style. A good UI designer understands HCI, social, environmental and cognitive psychology .

Q: User-Centric Design or Persuasive Design?

Both together please.

Q: How do you manage difficult clients?

Clearleft tend not to get them thanks to their reputation. Basically, just manage expectations all the way through.

Q: What should you do if you’re told to design “for IE 6″ or “inaccessibly”

Ignore the request. You’re a professional (dammit) and you need to use the right tools for the job. Don’t just keep patching a crumbling building, i.e. if you have an intranet made for IE6, don’t just patch it up, start again.

Q: What tools couldn’t you live without?

Pen and paper. Oh, and sticky notes.

Q: What makes a good UX designer?

  • Empathy
  • Inquisitive
  • Unsatisfied with life (want to make things better)
  • Desire to fix the world

Q: How do you get clients to invest in UX even if they have a small budget?

Design on paper to reduce costs. Too many designers just go straight into photoshop. This will allow for more iterations and less money in the long term. Remember that you’re also in a facilitation role so its up to you to guide the process.

Q: Is any testing better than no testing?

Yes.

Generally there’s lots of low-hanging fruit (if doing a re-design) so take that! You only need to do the deep level of thought if you’re solving a very specific problem.

Q: Are there any design patterns you use regularly? Should you make new ones?

Real-world patterns work very well, i.e. tabs. Most people don’t know that a site logo takes you to the home page, so always have a home link. If you’re making a new pattern, test test test, then think, would something else be better.

Q: Where do you get your inspiration from?

The real world. Architecture, a book called “Why people buy” (but not the section on the internet), the Disney Imagineers. Overall, it’s about how it functions, not how it looks.

Q: Is the user wrong? When does the designer know better?

Generally, the user isn’t wrong. It’s very rare that their opinion doesn’t count, so swallow your pride.

Q: How do you establish credibility in an organisation?

It’s difficult, very hard to do internally. You need to play the office politics game. Build a level of knowledge and use references as much as you can, so it’s not only you saying these things. Have confidence in you and what you are doing. Visualise it in your client’s language if possible.

Q: What should you do if a business objective creates a disjointed experience?

Andy can’t help on this one, this is an answer from the LWS crowd.

Switch it around, get buy-in from people and sell ti to them. Do it in the pub, many people are much more open there. With regard to “Dark Patterns” i.e. hiding a company’s phone number or directing through certain channels, read Dan Lockton’s post.

Finally, if you’re not happy in your job, there are loads of UX jobs out there at the moment. Clearleft is hiring a world-class interaction designer.

That’s it. Sketchnotes below. Hope you enjoyed it

UX Questions Sketchnotes

UX Questions Sketchnote - apologies to Andy Budd