Chrome Extensions for Web Hackers @ SWDC

posted June 2nd, 2010, no comments, tagged

I just gave my talk on Chrome Extensions at the Scandinavian Web Developer Conference: Chrome Extensions for Web Hackers The code for the extensions can be downloaded from http://files.11born.net/swdc/. Enjoy!

Continue reading on Supercollider.

Node.js: Evaluating code in a private context

posted May 30th, 2010, no comments, tagged

While working on hosting Dojo within Node I arrived at a neat solution to isolate the Dojo code from Node itself: evaluate it in a new context. Here’s how it’s done. var sandbox = {}; process.binding("evals").Script.runInNewContext('this["-eval-"] = function(code){ eval(code); };', sandbox); runInNewContext evaluates the code in a separate JavaScript context, sandboxed within our sandbox object. We then define [...]

Continue reading on Supercollider.

On Saturday, May 22nd the first ever dojo.beer(“Copenhagen”) will take place. We’ll start as an open space meeting in the afternoon, discussing any subject related to JavaScript development. At some point we’ll progress into the “beer” part of the program. Special guest is Dylan Schiemann, co-founder of the Dojo Toolkit project and CEO of SitePen. I’m on [...]

Continue reading on Supercollider.

In our previous installment we discussed how to create a simple extension for Chrome, using content scripts to interact with web pages visited by the user. Content scripts can be somewhat limiting however, so this time we’ll look into how we can run our extension code at all times, not just when a page is [...]

Continue reading on Supercollider.

Chrome Extensions for Web Hackers, Part Ⅰ: Introduction

posted March 28th, 2010, no comments, tagged

Earlier this year Google’s Chrome browser landed official support for extensions. This is incredibly exciting, not only because extending browsers is cool, but because Chrome’s extensions are fully based on open web standards. And who knows about open web standards? Yup, web hackers. In other words, if you can build a website, you can build a [...]

Continue reading on Supercollider.

Just a quick tip: if your login form is missing the action attribute, Chrome won’t offer to remember the user’s password. This is tracked as issue 29513 on Chromium.

Continue reading on Supercollider.

Speaking at the Scandinavian Web Developer Conference 2010

posted February 16th, 2010, no comments, tagged

On June 2nd and 3rd Stockholm will be home to the Scandinavian Web Developer Conference. Day one covers front-end & back-end development, day two covers the mobile web. I’m giving a talk titled Chrome: Browser Extensions for Web Hackers. There’s a 20% discount until the end of the month, so check out the insanely great [...]

Continue reading on Supercollider.

Calculating Chrome Extension ID from your private key

posted January 19th, 2010, no comments, tagged

Chrome Extensions files (those with the .crx extension) are, in essence, signed ZIP files. The extension data is signed with your private key, while the public key is included in the .crx. A hash of this public key is used as the extension identifier when you install the extension. This identifier is important because you [...]

Continue reading on Supercollider.

Computed Style Differences for `clip:rect()`

posted January 14th, 2010, no comments, tagged

Computed style values for clip:rect() are different in WebKit compared to Gecko and Opera. Given this test code: <div id="test" style="clip:rect(0, 50px, 50px, 0);width:100px;height:100px;position:absolute;background:red"></div> <script> window.onload = function(){ alert(window.getComputedStyle(document.getElementById("test"), null).clip); }; </script> You get: WebKit: rect(0px 50px 50px 0px) Opera: rect(0px, 50px, 50px, 0px) Gecko: rect(0px, 50px, 50px, 0px) Nothing I couldn’t fix in the regular expression I was using to split the values, [...]

Continue reading on Supercollider.

Peblingesø

posted January 13th, 2010, no comments, tagged

It’s been freezing in Copenhagen so last Sunday I went out to the lakes and took the opportunity to walk across them.

It had been a while since I stood on proper ice!