Skip to main content

How To Predict The Solid Web

Developers from both Opera and Mozilla have recently blogged about 3D rendering contexts for the canvas element, confirming my year-old predictions. Of course, the news is a bit saddened by the decision from Opera to support a new, non-GL-based API. I understand the desire for something more high level, but putting well known GL functions underneath is a perfectly acceptable idea. One side or a third party needs to provide a compatibility layer, or they need to decide on one of these APIs. I really hope OpenGL ES makes the win here. This also ties into the OpenGL APIs on Android, accessable through WebKit, so it only makes sense that Firefox, Opera, and all the WebKit-based browsers should standardize, before Redmond releases DirectX 1.0 Web Edition Premium.

For Users This Means...

We're going to see some fun web applications taking advantage of this, but there isn't a lot we'll see that we didn't have with Flash, for years now. I think some of the most interesting effects will come when we can use a canvas as a 3D texture and can render DOM elements into the canvas. When we reach this, we'll see lots of page effects, from folding elements to crumpled elements being deleted to rotating text and interface units.

We're going to see a lot of ugly abuse.

For Developers This Means...

Just one more thing to wait years before specialists are expected, and again you need to be a jack of all trades. Now you need to understand some code, a little database theory, CSS styling, artistic design, business layout, and 3D modeling and texturing. Have fun with it.

Comments

Popular posts from this blog

CARDIAC: The Cardboard Computer

I am just so excited about this. CARDIAC. The Cardboard Computer. How cool is that? This piece of history is amazing and better than that: it is extremely accessible. This fantastic design was built in 1969 by David Hagelbarger at Bell Labs to explain what computers were to those who would otherwise have no exposure to them. Miraculously, the CARDIAC (CARDboard Interactive Aid to Computation) was able to actually function as a slow and rudimentary computer.  One of the most fascinating aspects of this gem is that at the time of its publication the scope it was able to demonstrate was actually useful in explaining what a computer was. Could you imagine trying to explain computers today with anything close to the CARDIAC? It had 100 memory locations and only ten instructions. The memory held signed 3-digit numbers (-999 through 999) and instructions could be encoded such that the first digit was the instruction and the second two digits were the address of memory to operat...

Announcing Feet, a Python Runner

I've been working on a problem that's bugged me for about as long as I've used Python and I want to announce my stab at a solution, finally! I've been working on the problem of "How do i get this little thing I made to my friend so they can try it out?" Python is great. Python is especially a great language to get started in, when you don't know a lot about software development, and probably don't even know a lot about computers in general. Yes, Python has a lot of options for tackling some of these distribution problems for games and apps. Py2EXE was an early option, PyInstaller is very popular now, and PyOxide is an interesting recent entry. These can be great options, but they didn't fit the kind of use case and experience that made sense to me. I'd never really been about to put my finger on it, until earlier this year: Python needs LÖVE . LÖVE, also known as "Love 2D", is a game engine that makes it super easy to build ...

Using a React Context as a Dispatch Replacement

React Contexts are the pretty little bows of the React world. Here's a really quick example of the kind of messy code you can cleanup by using contexts, without dragging in a larger dependency like Redux or even Flux. Starting backwards with a diff showing lines of code I was able to remove: All the properties I was able to remove were just pass-through. The Carousel component didn't care about any of them, but it had to pass through these callbacks so the multiple TaskList components inside the carousel could invoke actions. They were removed from the Component class itself, too, since it no longer needed to pass them through. Where did they all go? My ActionContext removed all the need for these passthroughs by providing a single simple helper method, action(), that components rendered under it can access.   I really enjoy the pattern of passing a single callback through a context and removing what used to be lots of callback properties. Of course, I cou...