Why is it that the person who is the center of this process is allowed to be a man who rejects consensus, actively denies issues (based on his own admitted policy) and substitutes expert advice in important areas like accessibility with analyzing data from the Google Index and parsing numbers? Numbers that we cannot have a third party confirm because every request to do just this is ignored?
There is no doubt in my mind that Ian is brilliant. However no man, no matter how brilliant, should be allowed to be so influential on a spec when he is bringing all this baggage to the table with him.
The number of grievances folks have with any standards process are legion, but wouldn’t life be more fun if they all came with comics?
(As I wrote this, Dion leaned over and said, “I used to work with Ian, I find it funny to think of anyone trying to control him.”)
John has been working on a very fun scrabble typing game called Deep Leap and although he hasn’t finished it yet, people found it (John, time to learn about .htaccess ? ;)
Just to tease him a little more and get the word out before it is finished, check it out!
SimpleGesture is a GWT (and IT Mill Toolkit) implementation of the mouse gesture recognition method described by Didier Brun at bytearray.org (as I understand it). It allows you to register easy to understand (human readable) gestures, and receive events when these occur. Additionally, SimpleGesture can record new gestures, so that you don’t have to write them by hand.
In this video demo, he’s using a Wii to show it off (this confused me at first, but he’s using the Wii as a mouse and isn’t doing anything with the Wii-specific inputs):
SimpleGesture relies on a bit of Flash to do its thing:
I have used the bytearray mouse gesture library for a Flash project before, and I love how simple the method is, and yet it works very well.
The method works by assigning a number depending on which direction the mouse moves in (moving right will produce “0″, moving down will produce “2″, and so on), and comparing the resulting string of numbers to the registered gestures. The gesture with the lowest Levenshtein distance (and below a set threshold), is considered a match.
Nicely done guys. If we ever get a sort algorithm question again not only will we be able to give the big O notation, but imagine pulling out some Canvas code to visualize ;)
Last week, we posted a story on the Metatunnel demo, a concisely-written Linux and Win32 demo that Paulo Falcão ported to JS. We looked at the pitiful performance of the JS version as evidence that, high-speed JS engines notwithstanding, the web's got a ways to go on the fx front.
We didn't dig deep enough.
Someone posted a follow-up to our story saying that the JS code was poorly optimized and that the JS version could be made to run faster. That got me wondering how efficient the desktop version was, and how apples-to-apples the versions were in terms of total calculations performed per frame. My thinking was that if the JS version could be made faster but via optimization contortions that the desktop version didn't require, that's missing the point.
It turns out the desktop source is trivial: it's an assembler bootstrap for passing OpenGL shader instructions to the system's OpenGL driver:
Shoot, passing instructions to the video card? That's not a fair fight. It turns out Firefox 3.5 has a prototype Canvas 3D plug-in, and it exposes an OpenGL API. It was quick work for one of Mozilla's graphics gurus and the plug-in's primary developer, Vlad Vukicevic, to port the Metatunnel demo to Canvas 3D. The result is quite impressive:
We should also mention that Paulo, Jacob Seidelin, and Hans Schmucker collaborated on optimizations in the JS software-rendering version that resulted in much higher FPS on "next-gen JS" browsers (Safari 4, Chrome, and Firefox 3.5). Note, on this demo you can use the Q and W keys to adjust quality.
Dion and I talk frequently about how the web platform's capabilities are approaching the desktop, which features like canvas and faster JavaScript run-times. It's great to get a piece of humble pie like this one.
Wow. Christian Effenberger pointed us to his impressive Snapfit.js project.
Snapfit takes any picture and, if the browser has support for canvas (or VML), will make it into a puzzle. Not just any puzzle, mind. A potentially wicked hard puzzle where the pieces can be mirrored in either axis. But, not to worry, if you need the puzzle solved, it will do an animated transition showing where the pieces should go, etc.
Christian sent us a few notes about performance, etc.:
The speed depends generally on picture dimension and number of puzzle pieces and particularly on browsers Javascript-Canvas-Performance.
It seems that Opera 9.x and Firefox 1.5 are to slow to be practicable, at least on my system (G4/1.25GHz).
Internet Explorer implementation in VML do not support all features and is unable to provide sub pixel precision. So don't expect to much.
It works in all the major browsers - Mozilla Firefox 1.5+, Opera 9+, IE6+ and Safari.
On older browsers, it'll degrade and your visitors won't notice a thing.
I spent some of mine free time to create this nice effect in pure Javascript. Actually I plan to make a whole libary for it. Just to show you what it might give you i prepared some cool example...
He goes on to discuss performance a touch:
Please don't blame me for performance :) I tried almost everything I could get to make it faster. I used and tested a few trick of optimalisation to give you some result of mine tests:
1. Hiding element, moving it then showing - does not increase performance. In fact it is faster to do:
…the HTML5 project is misguided… It is trying to do too much without a clear mission that defines the problems it is solving. I think the project needs a reset.
He comes back:
Where’s the glitz, though? The dazzle? What can an artist do without a canvas? We could have audio and video, and no plugin! You won’t miss my congratulatory advertisement this time. You deserve to know. And to know the joy of SQL, finally, in the browser. Forms with placeholders and validations built-in! Vectors! details! And the semantics, oh the semantics! What’s a poor old Google to do, parsing through divs and spans when it could have nav, article, and aside? Won’t somebody please think of the robots?
But let’s leave the HTML argument be, for now. We can at least agree that CSS is in a wonderful place. JSON’s little half nephew is doing all right.
And then he finishes up with the fun demo that is embedded in the video above too, else point Safari 4 or Chrome.latest.devchannel to his post.
Allan Jardine, a chap who I am a big fan of as he does great work, has a bit of Friday fun that I couldn't resist putting up on a Monday. He has created Secret "a Javascript library which provides the functions required for scanning an HTML document for certain characters, locating those characters on the rendered page and then displaying them in a rather fun Harry Potter style":
What Secret does is to take a string and then locate each individual character from that string on a rendered page. It will then duplicate each found character in place and finally display the original string in a rather fun 'magical' manner. It's really an experiment to see if I could get the location of an individual character since that kind of information isn't presented by browsers.
You can check out the code to get the fun details in how this all works:
The way Secret works is to firstly discover what HTML elements are currently displayed inside the browser viewport (it is preferable to take characters from the text which can be seen rather from any random point in the document), and read the text from each of the text nodes with in these visible elements. For each character in your message, Secret will scan through the text which has been found and randomly select one for display. If one can't be found then it would fall back to look outside the hidden areas as well, and finally fail if a suitable character can't be found.
Once a character has be found, it position in the document must be determined. Browsers don't provide a convenient method for doing this with text nodes, and specifically individual characters, so what Secret does is to wrap a 'span' tag around the target. From there the getBoundingClientRect() method can be used to determine its location.
After that, its a case of calculating where on the screen the character should be displayed, relative to the other characters in the string (line breaks etc. must be considered) and animating the element into position. The animation is provided by the YUI library, which made this animation exceptionally simple to implement (thank you to the YUI team!). The core of Secret is independent of any library so you can use that for any application you which, only the animation requires YUI.
That's right, it appears that a number of people use the first character as the version number, which means that Opera 10 is showing up as Opera 1:
So we're busy preparing the major upgrade from 9.5x and 9.6x - and what's more obvious than calling it Opera 10? What's in a name, or a version number?
Apparently a lot of trouble.
As Andrew Gregory already noticed, we're the first browser ever to release with a two-digit version number. If websites assume that version numbers always have a one-letter "major" part and look for a single digit, they are going to "detect" Opera 1!
Since we released the first preview of Opera 10, we're seeing the bug reports come in. Web sites go belly up because of their bad sniffing.
Steve Mattison let us know about a new AJAX game has been released by the makers of that old popular PHP-based village building game Travian. This one is more like Sims meets Cultures, and it is called Travians:
"Travians is a browser game in which you rise to the challenge of
everyday life as a villager. This means more than just specializing in
your occupation, building your own home or deciding whether you enjoy
games more than fighting: The most important thing is communication
within the huge village community. This is the only way to get fun
clubs and strong guilds. Become a Travian and experience a whole new
online world!
As an added twist, the game uses Digg to provide a sort of unique twist; enemies in the game are based on stories in the Digg API feed and their ratings.