03.06.10

HTML5 Getting Closer

Posted in Programming at 2:25 pm by thomas

The HTML Working Group at the W3C has published a full set of Working Drafts for the specification of HTML5.

This is another important step to move HTML5 and its associated technologies closer to become an “official” standard and will certainly speed up the implementation of many of these features in modern browsers.

Here are the links to the various documents that have been published:

And just as a reminder, here are my examples for some of the new features of HTML5.

My latest Tweets:

02.21.10

When Hover Becomes a Drag

Posted in Programming at 12:17 am by thomas

Over at Roughly Drafted is a very interesting article about the UI issues of having Flash on a touch screen device.

I pretty much slapped my forehead when I read this, since it is actually very obvious once you think about it, but most of us haven’t had a chance yet to experience Flash on a touch screen, so the issue hasn’t been in our face enough… and the issue is that many Flash experiences on the Web use mouse hover all over the place. Now imagine trying to use that on a touchscreen. Exactly.

Now to be fair, this is not just a Flash problem, the same is true for many websites where we use hover states for additional information and easy option selectors. We will have to come to terms with the fact that there are more and more touchscreen devices with excellent web capabilities, and we will have to start designing sites accordingly.

The article implies that this is one of the main reasons that there is no Flash on the iPhone or the new iPad and I’m not so sure that’s the case, but the absence of Flash on the iPhone has definitely prolonged the detrimental behavior of all web designers and developers to assume that there is always a mouse cursor.

We will have to let go of the mouse cursor. It’s an interesting experiment – look at your most recent web project (if that’s what you do) and see if it can be used without a mouse. And if not, can you fix it?

02.19.10

On The HTML5 Train

Posted in Good Stuff, Modern Life, Programming at 1:01 am by thomas

A full month without a post! Time is truly flying right now. On the personal side, I’ve been busy with helping to prepare for our little family as the arrival of the Little One(tm) is getting closer and closer…

And work-wise I’ve spent as much time as possible reading up on the new HTML5 and CSS3 features – and there are many.

On my more experimental site – Stories In Flight – I’ve started to create a whole section with small cheatsheets and tutorials around things in HTML5 that have caught my eyes:

  • There is the master cheatsheet for HTML5 and CSS3, which gives you a good overview of some of the highlights like box shadows, rounded corners, SVG and Canvas tags.
  • I’ve created a little tutorial around the basics of Ruby Annotations and there’s also a suggestion of a practical use in language training.
  • An exploration of CSS3 multiple background images and – rather a surprise – how this can be used quite efficiently for JavaScript animations. I will revisit this feature in the near future with several interesting new ideas…
  • A quick look at the basic HTML5 audio tag, including a script solution that allows to easily create whole soundscapes with multiple channels of sound that will come in handy for JavaScript games.

The more I research all the new HTML5 features, the more excited I get for the future of interface engineering – after years of very little progress, where almost all interesting new interface developments came from the Flash side, we are now seeing a renaissance of HTML.

Yes, there will be browser incompatibilities, and yes, Flash will not go away, but I think we will be able to define a much better model where Flash will really only be used where it is necessary. No more reason to kill accessibility and SEO with Flash navigation elements.

We will see exciting new HTML websites exploding onto the scene, lightweight, accessible and kicking all kinds of visual butt.

I can’t wait.

01.16.10

The Other Ruby

Posted in Programming at 11:08 pm by thomas

The number of changes to HTML and CSS that are now showing up in browser rendering engines as part of the general push towards HTML5 are quite astonishing. If you are a web developer and you are not spending all your time right now learning new technologies, then you are probably doing something wrong.

Among the many changes there is one element that has been implemented in Internet Explorer for years, but only now has made the official cut with HTML5 and now slowly finds its way into other modern browsers: Ruby Annotations.

In short, ruby allows the addition of a short annotation, like a pronunciation guide, to a word in a text. Ruby annotations have been used in East Asian languages in print for a very long time, so this new feature will certainly improve the acceptance of standards-based browsers in Asia.

But it will be interesting to see what other uses web developers will find for these new elements – they allow for interesting layout solutions around online translation, language learning and developmental training that are certainly worth exploring.

01.13.10

The Web We Should Have

Posted in Programming at 11:45 pm by thomas

The Web as we know it is based for the most part on ten year old technology.

There are many features that web designers have been craving for since the early 2000s that have been stuck in standardization limbo for many years and still now, in 2010, the web community has to support ancient browsers that just won’t go away. Internet Explorer 6 is now nine years old. NINE YEARS!

Every time somebody builds a big commercial website, some 5-10% of the HTML development time is spent on making the site work on IE6, and there are many cool features that are still regularly cut from designs since IE6 or IE7 or even IE8 do not support them.

But there is some light at the end of the tunnel. Even with Microsoft dragging their feet on every new feature, the Web is slowly changing. HTML5 is not an official standard yet, but there are many features that have already been implemented by Firefox, Safari, Opera and Chrome – and for some of them there are adequate workarounds for IE7 & 8 that allow us finally to stretch a little bit, try something new… to experiment.

Here is a HTML5/CSS3 Cheatsheet that I’ve created mostly so that I don’t have to look up the syntax on random web sites every time I want to use one of these. There’s text shadows, box shadows, rounded corners, inline SVG and Canvas support. Many of these things will make the web a better looking place (and I’m sure we’ll also see many anti-usecases in the near future!), and if you are a web developer you may find a use for these, too!

11.28.09

TwitterFlickrHaiku

Posted in Navel Gazing, Programming at 12:16 am by thomas

#haiku is a new little experiment for my Stories In Flight site – a mashup of Twitter and Flickr: The page searches for tweets with the #haiku hashtag and then visualizes the results by searching for each word in Flickr photos.

It’s a evolutionary step from FlickrPoet, and while it removes the interactivity, it certainly adds a meditative quality to the experience: You can sit there for a while and see the words and pictures dance past, with both Twitter and Flickr delivering near inexhaustible material.

I’ll have to work a little on the code that cleans up the tweets, since there is quite a lot of variation in the formatting of the haikus, with links, hashtags and response tags freely peppered across 140 characters.

11.15.09

FlickrPoet and Stories In Flight

Posted in Navel Gazing, Programming at 5:02 pm by thomas

Since we’ve built MapSkip a few years ago now, I’ve been steadily thinking of storytelling, its influence on the web and also the influence of modern technology on storytelling itself.

A few days ago I had an idea that was simple enough to experiment with and since I needed a place for the pages, I’ve started a new site – Stories In Flight – to hold storytelling-related tech demos that I’ve had bouncing around my mind.

FlickrPoet

The first little project to see the light of day here is FlickrPoet – an exploration of adding photos to a short story or a poem by searching for the words of the text on Flickr. This came out of some random experiments with the excellent Flickr APIs, and took on a life of its own. It can be very random, but every now and then it creates a collage of sheer genius.  From what I’ve found it can work really well with poems and song lyrics. Feel free to experiment! :-)

10.17.09

Coding With Experience

Posted in Programming, Tech Nostalgia at 11:59 pm by thomas

Over at DadHacker, Landon is celebrating his 30th year of programming in C. It’s a great reminiscence across several decades of coding, ending in three golden rules that should be repeated in the first chapter of every future programming manual:

  • Leave the existing brace style in the code alone or change all of it
  • Keep your comments neat, relevant and typo-free
  • Delete all unused code – and then go back and delete some more

Approaching my very own three decades of programming pretty soon, I can only agree wholeheartedly. There are many old code examples of mine that horrify me now with how messy they are, and I can definitely tell that over the years my coding style has become ever more clean and neat. Past debugging sessions on nasty chunks of my own code have taught me some hard lessons…

It’s interesting to see in Landon’s post that he very early on fell for C and that he was lucky enough in his career to be able to return to that language that suits him best – certainly something that not many programmers can say, since we are often forced by pre-existing code or by the vagaries of a client’s wish list to use whatever language is necessary.

My own experience with C came later in my programming path, only after several flavors of Basic, an unfortunate run-in with Pascal and a deep fascination with machine code. C was fun, and later on I wrote several smaller projects with it, but it never captured my imagination.

The favorite language of my programming career was a late addition just over ten years ago – JavaScript. Certainly not everybody’s favorite, but due to many lucky circumstances now quite a powerful actor on the stage of computing. I deeply miss working closer to the hardware, as it is possible with machine code or C, but JavaScript instead fascinates me with it’s close integration with the user interface.

06.11.09

Making Waves

Posted in Programming at 7:27 am by thomas

Finally had a chance to look at the Google Wave demo from the Google I/O conference a few days ago…

Wow.

The concept starts out really easy at the beginning of the video, but by about the fifteen minute mark my jaw was on the floor and it stayed there for the next hour. The collaboration aspect of this tool (tool? concept? meta-application? lifestyle?) is mindblowing.

In an environment like the marketing agency I’m working for, Waves can replace all(!!!) other tools we are currently using for communication and documentation, starting with email and instant messenger, document repositories and Wikis, and on through to Word, Excel, and Powerpoint. I’d be worried if my name were Microsoft.

I can totally see where a company installs their very own instance of the Wave server components on their machines, creates or buys some robot and widget extensions and then uses nothing else for the daily workflow in the office. There are obvious business opportunities for Google to offer one-click install packages with a commercial support license, and also a wide open market for third-party developers to create the server-side robots and the client-side widgets.

And in addition – among many other thoughts coming out of this video – the Wave concept opens many new doors for user interactions on websites. Personally, I can see many different ways how we can use some of the collaboration ideas (especially the many-users-one-document idea) for instance for MapSkip. This is a new way for users to collaborate on web pages and now that we have Google as a prominent trail blazer, there will be many new interaction schemes popping up all over the place. I can’t wait!

05.31.09

Crashing Virtually…

Posted in Programming at 2:12 pm by thomas

After a few months of not much time (actually that’s still true, I’m just coping better!) I have dug up my unfinished emulation project.

The 68K emulation now knows maybe 75% of the instruction set and my virtual Atari ST runs through a good chunk of the early initialization code, before it currently all blows up in the MFP setup routines. This is of course where things get really hairy – up to now all I’ve done is I have created a software model of the 68000 CPU and just enough of an environment to load the original TOS roms and to step through the instructions..

Now I will have to create the virtual equivalent of the Atari hardware, and while I’m pretty sure I can ignore much of the original hardware, I will need some basics to get to a working emulation. My goal for now is to have TOS boot all the way, have the GEM desktop come up and to be able to interact with it with the mouse. For that I will really only need the keyboard 6840 ACIA chip to provide mouse and keyboard input and of course a working video system.

There are a number of uncertainties for me around the overall interrupt handling in the ST and it is surprising how deep I had to dig in some of the documentation around the ST and the CPU to figure out some of the details that I had to never even think about back when I was still actively writing machine code on the actual machine. It’s funny that in a lot of ways I am now more of an expert on the Atari ST than back when I still had the physical machine on my desk!

As a second step, once the good old green desktop comes up on the screen, I will see if there is a way to load disk images – and I would very much like to avoid having to recreate a software emulation for the Atari disk interface. The 3.5″ disk interface was spread over several chips – some of the signals were handled by the sound chip! – and all I remember from the software side was that this was a very cumbersome interface with lots of interrupt polling and register work.

It would actually be even easier to not do the floppy disk interface at all and to just provide the hard disk interface – the AHDI (Atari Hard Disk Interface) is handled by the DMA controller and it has a relatively simple command structure. We will see… first I’ve got to see some pixels on the screen!

next page >