Sep 02

I stumbled on the Mozilla Foundation’s Drumbeat project recently:

Drumbeat gathers smart, creative people like you around big ideas, practical projects and local events that improve the open web.

It’s very well done combination of projects + community.

Drumbeat Toronto Meetup

There’s a whole slew of cool projects already one here. A small sample:





Continue reading »

Tagged with:
May 19

The Chrome Web Store was shown off at the Google I/O keynote (streaming live) today along with the other great news of open codecs, great new tools, and more.

I found myself torn about this one. For one, it seems tied into Chrome itself. The problem that Sundar stated (developers needing a good channel; users having a hard time finding things) is valid for the entire Web. We don’t need a Firefox Web Store, IE Web Store, etc etc etc. We have an opportunity to do better here.

That being said, it was great to see the early stages here and how they give developers the ability to place your Web application in to an experience where you can put a price tag on top.

I would love to get details here. How do you package the application? Do you have to upload the package to the store?

I wonder if there is room for a distributed system that allows me to put a price tag on my web application, but keep it at my URL.

What do you think? There is a session on the store… so I look forward to the deets!

Continue reading »

Tagged with:
May 18

Jacob Waller created an addictive word came in Golingo. What sets it apart?

  • Not a single line of Objective-C written, courtesy of Titanium Mobile
  • Only one (!) image ingame – the rest is CSS3 magic
  • Fluid gameplay thanks to CSS Transitions and Animations
  • All logic using pure, beautiful JavaScript
  • Multitouch draggables using iPhone Touch API
  • Logic encapsulated using Low Pro – meaning split screen mode was easy pie
  • jQuery 1.4.2 for development speed (and sanity of developer)
  • CouchDB as highscore storage, with storage logic in JavaScript
  • Predictable randomness means replayable games, all courtesy of excellent seedrandom

Jacob dives into deeper into the full tool chain that he used in his post about open sourcing the code behind the game. That’s right, he wants you to fork it and do something amazing with the game. Pretty awesome if you ask me.

His tool chain:

He then goes on to talk about the initial construction of the game:

Most of the actual game was made in a few weeks time, but from scratch to published app it took almost six weeks of part time work. A lot of this time was spent banging my head into various walls. Again, Titanium is great, but it’s a young framework with all the kinks that follows. There has been quite a few bugs, and the documentation hasn’t always been up to date – but this is much better nowadays. What more – since most other developers are as clueless as yourself, It’s been hard finding good resources and getting help. I did however get a trial for Appcelerator’s Premium Subscription, with 48-hours guaranteed response, and I must say it’s really good stuff. The developers themselves answers all your stupid questions and relieves most of the wall banging. If you can afford it, go for it!

By releasing the code for Golingo, we hope to relieve some of the headaches surrounding developing packaged HTML5 apps. I do not say that it’s not full of faults, because it is, but at least it is a working example full of faults. Please don’t hesitate to dig through the code to see what is going on. We believe we’ve solved some common problems that you too will run in to when using Titanium, for example transparently calling native functions from a webview (and vice versa) using callbacks and trickery. Here’s a quick recap of that:

  • Connecting Titanium Contexts
  • Low Pro like a low pro: $(‘<div/>’).attachAndReturn(Letter, this, letter, specialLetter);
  • Sexifying: including templating with mustasche

Thanks for the great info and resource Jacob!

Continue reading »

Tagged with:
May 07

I think we are seeing a new meme. Matt Nowack has taken the awesome HTML5 presentation app in HTML5, which is open source, and has created a presentation discussing jQuery 1.4.

It is good stuff, using the fact that you can embed the features that you want to show. Just as long as you can hit the right arrow to get through the “look at all the people who use jQuery” part (we get it! lots of people use jQuery!)

Salvador Diaz has taken things in another direction. He has ported the HTML5 app to GWT under the hood.

Maybe this presentation app can be the “Java Pet Store” of Ajax libraries :)

Continue reading »

Tagged with:
Apr 28

I remember when Dan Mills showed a first prototype of having the browser help you login. I have long wanted to login to the browser itself, and then have it handle my passwords etc. I use 1Password to do some of this, but I still have to click on buttons to do the login.

The initial work has been taken to the next level with the Account Manager Add-on by Dan and co:

How Does It Work?

The Account Manager specification proposes two small changes to Web sites:

  1. The browser needs to know how to register, sign in, and sign out of your site. You will need a static JSON document, automatically discovered by the browser, which describes what methods the site supports and how they should be executed. For example, a web site might describe their support of “connect” (sign in) like this:
    JAVASCRIPT:

    1.  
    2.   “methods”: {
    3.     “username-password-form”: {
    4.       “connect”: {
    5.         “method”: “POST”,
    6.         “path”: “/accounts/LoginAuth”,
    7.         “params”: {
    8.           “username”: “Email”,
    9.           “password”: “Passwd”
    10.       }
    11.   }
    12.  

    This example tells the browser that the site supports signing in with a form POST to /accounts/LoginAuth, and what parameter names to use for the username and password (Email and Passwd respectively).

  2. The browser needs a way to check which user (if any) is currently signed in. To do this, you need to set an HTTP header in the same code where you would set a cookie with a session ID. If you can’t set an HTTP header, you can also supply a URL the browser will ping.

    The header would look like this:

    X-Account-Management-Status: active; name="Joe User"
    

    That would tell the browser that “Joe User” is now signed in, so it can provide the appropriate UI (to switch users or sign out).

  3. Read the full specification for more.

Continue reading »

Tagged with:
Apr 13

There was a big cheer at last years Google I/O when Google Wave was demoed. It made a great demo and really showed that the Web can do a looooot more than we think.

It sounds like we will have another big cheer moment for this years Google I/O though, and it will won’t be for a demo, but for something more meaningful.

It appears that Google will open source VP8, the On2 codec at the event. Video has been painful for the Open Web crew. Many bash Theora on the grounds of quality, and then others hit back saying that it is hog-wash. H.264 has been taken up almost ubiquitously, with Mozilla holding out on religious grounds (which has created a groundswell around that decision too). The folks who make money on H.264 extended our puff on the pipe, but wouldn’t it be nice for the Open Web to have a true open video alternative?

That is what folks like the FSF begged Google for when the On2 acquisition was happening. Now we may have our wish.

This doesn’t mean that all is well. Having a codec is one thing, but getting it out there and implemented is another. Chrome and Mozilla may support it out of the gate, but what about Apple and Microsoft? At the very least though, having a truly viable open codec allows us to hold the H.264 folks feet to the fire.

Google also recently funded open video work on ARM that does use Theora. I am looking forward to IO!

Continue reading »

Tagged with:
Apr 01

This is a fun one. The Open Video Sliding Puzzle takes a running video (from the public videos project) cuts it up, and builds a sliding puzzle on the fly.

openvideoslider

How does it work? Why Canvas and HTML5 video of course:

JAVASCRIPT:

  1.  
  2.     for (var i=0;i&lt;12;i++){
  3.         var can = document.getElementById(‘c’+(i+1));
  4.         var ctx = can.getContext(’2d’);
  5.         pieces_can.push(can);
  6.         pieces_ctx.push(ctx);
  7.     }
  8.     i = setInterval(function(){
  9.         var sWidth = dWidth = 160;
  10.         var sHeight = dHeight = 120;
  11.         dx = dy = 0;
  12.         var source = document.getElementById(‘puzzle_image’);
  13.         for(var i=0;i&lt;12;i++) {
  14.             sx = (i*sWidth)%640;
  15.             sy = ((Math.floor(i/4))*sHeight);
  16.             pieces_ctx[i].drawImage(source, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);
  17.         }
  18.     }, 30);
  19.  

The bulk of the code is setting up and playing the puzzle.

Continue reading »

Tagged with:
Feb 16

Built using the open web standards you know and love, Opera Dragonfly’s source is available to view. Not only that, but it is released on a open source BSD license, meaning it is free as in freedom as well as in beer.

Opera is normally one of the few browsers that isn’t open source, but they are certainly doing more with open source itself. David Storey has announced how Opera Dragonfly has joined the open source ranks.

There is Dragonfly itself, but also the Scope protocol:

Starting today, Opera Dragonfly is a fully open source project, hosted on BitBucket. Since the previous version of Opera Dragonfly, a lot of work has gone on behind the scenes replacing the existing architecture with a modern version of the Scope Protocol – STP-1. Opera Dragonfly has been rewritten to use this faster and more efficient version of Scope. Now that we believe that the underlying protocol is stable and performant, and a public desktop build has been released with this included, it is time to put Opera Dragonfly on a public Mercurial repository.

If you have a Mercurial client you can visit the Opera Dragonfly STP-1 repository and check out the source code. We have provided initial documentation in the Wiki to get you started. This is Opera’s first full open source project, so there will be a learning curve. We ask you to bear with us while we get everything up and running and policies in place. Coming from a closed source background there are some hurdles to overcome, such as the current bug tracking system being on a closed server. We hope to migrate to an open bug tracking system as the project gets on its feet.

As well as the current and previous versions of the Opera Dragonfly source code, we have released a couple of tools to help with Opera Dragonfly development. The first is Dragonkeeper. This is a standalone proxy, which translates STP (Scope Transport Protocol) to HTTP. This can also be useful for remote debugging. The second tool is Hob. Hob is a utility to create code from Protocol Buffer descriptions. Protocol Buffers are one of the formats Scope STP-1 supports along with JSON and XML.

Nice. The question is…. will others implement on STP so we can get cross browser support.

Continue reading »

Tagged with:
Feb 08

openclosed

Steve Jobs didn’t hold back when talking about Google and Adobe. That is great. Life is so much more fun when people speak their mind. I remember hearing a story when Sir Steve was asked why mac keyboards where the way they were. He grabbed a PC keyboard and started to rip out “stupid keys” (print screen, F keys, and the like) and swore a lot.

We love to paint with broad black and white brushes these days don’t we? Whenever I hear people talking about Google being “evil” or not…. I sit back and think about how interesting it is that companies become “people”, especially in this country.

Continue reading »

Tagged with:
preload preload preload