15/12/17 20:13

@wilto @etportis @beep @firefox @mozilla @adactio @jensimmons @keithjgrant @paulhhowells @rachelandrew @FullStack_Jimmy @brkemper @ZeeCoder @innovati @elrond25 +listening. Appreciate blogs & frankness re: momentum Retry in #WICG? →GH: https://github.com/ResponsiveImagesCG/cq-usecases/issues/44

@wilto @etportis @beep @firefox @mozilla @adactio @jensimmons @keithjgrant @paulhhowells @rachelandrew @FullStack_Jimmy @brkemper @ZeeCoder @innovati @elrond25 +listening. Appreciate blogs & frankness re: momentum
Retry in #WICG? →GH: https://github.com/ResponsiveImagesCG/cq-usecases/issues/44
15/12/17 16:46

@innovati @jensimmons @FullStack_Jimmy @ZeeCoder @keithjgrant @firefox @mozilla @paulhhowells @rachelandrew @brkemper appreciate links, updated proposal! RICG waiting on requirements proposal from March? https://github.com/ResponsiveImagesCG/cq-usecases/issues/36#issuecomment-287917442 cc @wilto @beep Important step (before syntax arguments) to capture both broader use-cases and implementation constraints. cc @davidbaron And as far as “have the ears of the browser makers”, several on this thread work at browser makers. I’m seeing high interest, but this needs more active community participation (like back & forth interactions), perhaps some wrangling.

@innovati @jensimmons @FullStack_Jimmy @ZeeCoder @keithjgrant @firefox @mozilla @paulhhowells @rachelandrew @brkemper appreciate links, updated proposal!

RICG waiting on requirements proposal from March? https://github.com/ResponsiveImagesCG/cq-usecases/issues/36#issuecomment-287917442 cc @wilto @beep

Important step (before syntax arguments) to capture both broader use-cases and implementation constraints. cc @davidbaron

And as far as “have the ears of the browser makers”, several on this thread work at browser makers.

I’m seeing high interest, but this needs more active community participation (like back & forth interactions), perhaps some wrangling.
14/12/17 22:14

@keithjgrant @jensimmons @firefox @mozilla @paulhhowells @rachelandrew @FullStack_Jimmy @brkemper @ZeeCoder @innovati container queries / element queries certainly sound powerful+useful. Yet https://github.com/ResponsiveImagesCG/container-queries/ untouched in 2+ yrs. See also comment by @davidbaron and thread: https://github.com/ResponsiveImagesCG/container-queries/issues/3#issuecomment-185951645 Perhaps worth figuring out pre-requisites.

@keithjgrant @jensimmons @firefox @mozilla @paulhhowells @rachelandrew @FullStack_Jimmy @brkemper @ZeeCoder @innovati container queries / element queries certainly sound powerful+useful.
Yet https://github.com/ResponsiveImagesCG/container-queries/ untouched in 2+ yrs.
See also comment by @davidbaron and thread: https://github.com/ResponsiveImagesCG/container-queries/issues/3#issuecomment-185951645
Perhaps worth figuring out pre-requisites.
14/12/17 21:32

@ManuelBieh @firefox @mozilla thanks — I agree better print support would be good, both in general, and with new paged features. Lots to do there and may take longer. Track our status on the #CSS Paged Media Module here for starters: https://bugzilla.mozilla.org/show_bug.cgi?id=286443

@ManuelBieh @firefox @mozilla thanks — I agree better print support would be good, both in general, and with new paged features. Lots to do there and may take longer. Track our status on the #CSS Paged Media Module here for starters: https://bugzilla.mozilla.org/show_bug.cgi?id=286443
14/12/17 20:00

The Last JSON Spec

The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.
14/12/17 16:36

@filtercake @topaxi by mixins do you mean @-apply rule as proposed by @TabAtkins: https://tabatkins.github.io/specs/css-apply-rule/ or another approach? Looks useful but quite challenging to get right. First step would be to get @CSSWG to start exploring it.

@filtercake @topaxi by mixins do you mean @-apply rule as proposed by @TabAtkins: https://tabatkins.github.io/specs/css-apply-rule/ or another approach?
Looks useful but quite challenging to get right.
First step would be to get @CSSWG to start exploring it.
14/12/17 16:20

@asinnema @kriesse @Mozilla It appears @Firefox supports hyphenation with a Dutch dictionary (among others) since Firefox8 (2011), see: https://developer.mozilla.org/en-US/docs/Web/CSS/hyphens#Browser_compatibility Is there a particular page or CSS that is not working?

@asinnema @kriesse @Mozilla It appears @Firefox supports hyphenation with a Dutch dictionary (among others) since Firefox8 (2011), see: https://developer.mozilla.org/en-US/docs/Web/CSS/hyphens#Browser_compatibility

Is there a particular page or CSS that is not working?
14/12/17 15:56

@bdc @alanstearns @firefox @mozilla thanks for the suggestion. Follow along with our progress on SVG geometry properties in CSS here: https://bugzilla.mozilla.org/show_bug.cgi?id=1383650 cc: @heycam

@bdc @alanstearns @firefox @mozilla thanks for the suggestion. Follow along with our progress on SVG geometry properties in CSS here: https://bugzilla.mozilla.org/show_bug.cgi?id=1383650
cc: @heycam
14/12/17 15:41

@octothorpe @rachelandrew @firefox @mozilla thank you for letting us know! Try out @FirefoxNightly and report back! And thanks @dietrich for the bug link. Follow along more CSS Values & Units here: https://bugzilla.mozilla.org/show_bug.cgi?id=741643

@octothorpe @rachelandrew @firefox @mozilla thank you for letting us know! Try out @FirefoxNightly and report back!
And thanks @dietrich for the bug link. Follow along more CSS Values & Units here: https://bugzilla.mozilla.org/show_bug.cgi?id=741643
06/12/17 21:23

Achieving Response Time Goals with Service Workers

Blending cache and live responses in order to achieve response time goals.

01/12/17 20:00

Dark Vegas

I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.
27/11/17 20:00

Unapocalyptic Software

The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.
19/11/17 20:00

Do You Love Any Dead People?

I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.
18/11/17 20:00

Dueling Camera Apps

I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.
04/11/17 19:00

Vintage Nauticals

We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.
26/10/17 19:00

Working at Amazon

Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?
13/10/17 19:00

Live Metal is Better

Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.
07/10/17 19:00

Macro Trends

In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.
27/09/17 19:00

Refresh Is Sacred

There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.
20/09/17 19:00

You Might Be Evil

Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.
17/09/17 19:00

Photos of the Sky

I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.
11/09/17 18:35

Converting to Vue.js

I’m in the process of converting four Whimsy applications from React.js to Vue; and I’m taking a moment to jot down a list of things I like a lot, things I find valuable, things I dislike (but can work around), and things I’m not using.

On balance, so far I like Vue better than React.js (even ignoring licensing issues) or Angular.js, and am optimistic that Vue will continue to improve.

09/09/17 19:00

Canadian Tax Wrangling

Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]
03/09/17 19:00

Murder at Adolf’s Cottage

I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.
30/08/17 19:00

Large Companies Considered Harmful

There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.
20/08/17 19:00

Enlightenment Technology

Around 1500, the lev­els of tech­nol­o­gy and pro­duc­tiv­i­ty in Europe and Asia were not dra­mat­i­cal­ly dif­fer­en­t. But by 1700, Europe had leaped ahead and, by the twen­ti­eth cen­tu­ry, most­ly come to dom­i­nate the world; the la­bels “Enlightenment” and “Industrial Revolution” are com­mon­ly ap­plied. A Cul­ture of Growth: The Ori­gins of the Modern Econ­o­my, a 2016 book by Joel Mokyr asks “Why?” and tries to an­swer.
13/08/17 19:00

Olympus TG-5 “Tough” Waterproof

I found my­self vacation-bound to Queens­land (that’s the top right cor­ner of Aus­trali­a) and the itinerary in­clud­ed beach­es and coral, specif­i­cal­ly the Great Bar­ri­er Reef, which is dy­ing. I like to pho­to­graph the places I vis­it, and the Olym­pus TG-5 is get­ting lots of buzz in waterproof-cam cir­cles, so I got one.
24/07/17 19:00

TLS Wiretap Fear

There is a hot lengthy ar­gu­ment go­ing on in the IETF’s TLS Work­ing Group which has been mak­ing me un­com­fort­able. It’s be­ing al­leged that there is an at­tempt to weak­en Web se­cu­ri­ty in a deep fun­da­men­tal way, which if true is ob­vi­ous­ly a Big Deal.
22/07/17 19:00

Android Auto

I just had my first ex­pe­ri­ence with An­droid Au­to and I sup­pose there are lots of oth­er peo­ple who haven’t been there yet, so a few words might be use­ful. Short for­m: Rough around the edges, but super-helpful.
16/07/17 19:00

On Password Managers

It has come to my at­ten­tion that peo­ple are Wrong On The In­ter­net about pass­word man­ager­s. This mat­ter­s, be­cause al­most ev­ery­body should be us­ing one. Here­with back­ground, opin­ion­s, and a de­scrip­tion of my own se­tup, which is rea­son­ably se­cure.
07/04/17 12:07

Badges? We don't need no stinkin' badges!

I found myself included in an IBM Resource Action ("RA").  I’m fine, nothing has changed.  I’m already working with a non-profit, namely the Apache Software Foundation, and find my work there to be very rewarding.
11/07/16 18:27

Service Workers - First Impressions

Cache put and match worked right the first time; cache keys not so much. Authentication is a mystery. Outline of future plans, and a call for help.
24/09/15 15:44

FacePalm

Automated Publishing with Instant Articles

<description> A summary of your article, in plain text form.

<pubDate> The date of the article’s publication, in ISO-8601 format.

Related: plaintext, May Day, June Bug, Another Month, and numerous others.

18/05/15 16:15

Brief history of the ASF Board Agenda tool

the current implementation is a lot more fun to develop and easier to maintain than prior versions.  As an example, if it were decided that the moment the secretary clicked the ‘timestamp` button on the 'Call to order’ page, all comment buttons are to be removed from all windows and all comment modal dialogs are to be closed, this could be implemented using a single if statement as the event is already propagated, and a re-render is already triggered.  All that would be required is to change the conditions under which the comment button appears.

The board agenda tool has been tested on Linux, Mac OS/X, Vagrant, and Docker.  It contains a suite of tests.

02/04/15 23:54

Spartan Test Results

I replaced IE results with Spartan results in my urltests.  Other than the user agent string, nothing changed.

Following are selected examples where three out of four of the top browsers agree, identified by the odd browser out:

01/04/15 14:26

Ruby2JS 2.0

I’ve released Ruby2JS version 2.0.  Key new features:

  • Line comment support.  More specifically, comments associated with statements are copied to the output.  Comments within statements are still omitted.
  • Source Map support.  This enables debugging of generated JavaScript using the Ruby source.

The Whimsy Agenda rewrite-in-progress (previously based on Angular.js, now being rebased on React.js) can be used to explore both of these features.

11/02/15 23:10

React.rb updates

I’ve made a number of updates to the demos.  The tutorial demo has been updated to do server side rendering.  This means that it is able to be used by clients which either don’t support or have turned off JavaScript. 

The second demo is a calendar.  Unlike the tutorial which is a single file, this application is organized in a manner more consistent with how I expect projects to be organized.

04/02/15 00:50

DSL for JavaScript

Jeremy Ashkenas: “work towards building a language that is to ES6 as CoffeeScript is to ES5”… close, but—do it for [ES6+HTML+CSS], and you’ll win ;)

It occurs to me that there is a shortcut available.  Let a library like React replace [ES6+HTML+CSS].  Then build a DSL for that library.

02/02/15 22:28

Web Components

Brian Leroux: ES6 and Web Components

My take is that this talk lumps React in with others based on when it was introduced; but that it is fundamentally different from, say Angular.js as Angular.js is from jQuery.

28/01/15 16:48

Email addresses

I have been telling all non-IBMers to not use my ibm.com email address for years, but this advice is routinely ignored.  I’ve repeated the reaons behind why I ask this enough times that it makes sense for me to post the reasons in one place so that I can point to it.
23/01/15 01:54

React.rb

Having determined that Angular.js is overkill for my blog rewrite, I started looking more closely at React.  It occurred to me that I could do better than JSX, so I wrote a Ruby2JS filter.  Compare for yourself.
17/01/15 18:55

RFC 3986bis

URL parsers consume URLs and generate URIs.  Such URIs are not RFC 3986 complaint.  I’d like to fix that.
11/01/15 14:46

URL Work Status

I have test results that show that there is much work to be done.

The most likely path forward at this point is to get representatives from browser vendors into a room and go through these results and make recommendations. This likely will happen in the spring, and in the SF Bay Area. With that in place, I can work with authors of libraries in popular programming languages to produce web-compatible versions. This work will take the form of bug reports, patches, or — when required — authoring new libraries.

08/01/15 11:55

Ununzippable Modern.IE

I’ve downloaded the multi-part zip archive for IE11 on Win10 for VirtualBox on OS/X from modern.ie.  I’ve downloaded the single-file archive on both OS/X and Linux.  I’ve verified the md5 signatures for each.  Yet each time, when I try to unzip the result, I fail.
06/01/15 19:47

New PhantomJS and Capybara fan

While I’m clearly late to the party, I’ve already become a huge fan of capybara and phantomjs.  I’m now using both with my previously mentioned blogging software rewrite.

My original intent was to aggressively prune unnecessary function with the intent of producing a more maintainable result, but with the ability to have automated acceptance tests, this is now less of a concern.

05/01/15 20:09

Apple Apostasy

Looks like Why I quit OS X struck a nerve — it is currently down (see web archive).  Also good: Apple has lost the functional high ground.

I particularly like the comment that “It just works” was never completely true.  My experience is that when working with open source codebases, doing so on an Linux operating system comes much closer to “It just works” than doing so on any other.

04/01/15 01:31

Rack broke Sinatra

Not rack’s fault, but Sinatra hasn’t released in a while.  Problem has been known since July, and a fix was merged into master in August.  One possible workaround has been posted.  An alternate workaround:

module Rack
  class ShowExceptions
    alias_method :old_pretty, :pretty
    def pretty(*args)
      result = old_pretty(*args)
      def result.join; self; end
      def result.each(&block); block.call(self); end
      result
    end
  end
end
19/12/14 14:56

Weblog Software Rewrite Underway

I’ve clearly been neglecting my little spot on the web.

It has gotten so bad that Brendan Eich had to link to a web archive copy of a page of mine.  I must say, however, that it is very ironic and amusing that it is was that particular page.  General outline of my current approach:

27/04/11 15:46

IE9 Compat Inspector

With IE9 now released, we want you to serve IE the same markup as you do for other browsers, and make sure your site works great running in IE9 standards mode. We recently blogged about preparing your site for IE9, and you can check out the Internet Explorer 9 Compatibility Cookbook for lists of changes that may impact your site or the Internet Explorer 9 Guide for Developers for a more complete list of what's changed. Today we are introducing a new resource that can help speed up the process of preparing your site: Compat Inspector.

About Compat Inspector

Compat Inspector is a JavaScript-based testing tool that analyzes your site while it runs. Compat Inspector reports patterns of interaction which cause issues in standards mode. This allows you to identify problems quickly without memorizing a bunch of documentation or searching through the entirety of your site's code. We developed Compat Inspector during the course of IE9 to speed up the process of recognizing common issues across different sites. Along the way many members of the IE team contributed to the set of test cases that make up the rules in Compat Inspector. Now we're making it all available to you. Check out the Compat Inspector Test Drive to try it out before using it on your own site.

Compat Inspector is designed to help sites migrating to IE9 Standards Mode, not those running in legacy modes. You may still need to refer to the above documentation for some issues. The best pattern is to use Compat Inspector first, then fall back to the documentation if nothing is found.

How do I use it?

To use Compat Inspector, add the following script before all other scripts on each page you want to test:

<script src="http://ie.microsoft.com/testdrive/HTML5/CompatInspector/inspector.js"></script>

Note: If you have Fiddler, you can automatically load Compat Inspector on all pages you visit by adding this snippet to your FiddlerScript (which is particularly helpful if your page uses frames). I recommend installing the FiddlerScript Editor extension if you don’t already have it.

After you have the above script in place, open your page in IE9 and start using it. Explicitly test any interactions known to be working incorrectly (only executed code is analyzed). Compat Inspector will keep a running total of all errors and warnings associated with detected issues. A summary view in the upper right hand corner of the page displays the results:

A screenshot of the Compat Inspector summary view showing one error, zero warnings, and zero info messages.

Click on this view to expand it and obtain detailed information about each detected issue with links to relevant documentation:

A screenshot of the Compat Inspector details view. The view has three tabs: "Message Log", "Tests", and "Verifiers". It also contains a link for "Help". The "Message Log" tab is focused. It contains four checkboxes labeled "Show Errors", "Show Warnings", "Show Info Messages", and "Show Duplicates". All checkboxes are checked except for "Show Duplicates". In the content area below the checkboxes one error message is displayed. The message reads "ERROR: The createElement API no longer accepts angle brackets '<>'. This is a deliberate change made in IE9 Standards Mode for interoperability with other web browsers and compliance with DOM Level 3 Core." Additionally the message contains links to resources to help resolve the issue and two unchecked checkboxes labeled "Verify" and "Debug".

Most errors and warnings also provide two additional actions for further investigation: "Verify" and "Debug."

"Verify" Workflow

Some test cases have built-in "verifiers" that emulate legacy behavior. This allows you to confirm the root cause of an issue before making any changes to your code.

Prerequisite: Compat Inspector is opened in the detailed information view and displaying an error or warning message containing a checkbox labeled "Verify."

  1. Click the "Verify" checkbox for the issue you want to confirm
    Another screenshot of the "createElement" error message. This time the checkbox labeled "Verify" is checked.
  2. Refresh the page (You'll see a notification that the verifier has been enabled)
    A screenshot of an informational message stating "INFO: The verifier The createElement API no longer accepts angle brackets '<>'. has been enabled. This message contains a single checkbox labeled "Verify" which is checked.
  3. Repeat the steps that originally triggered the error or warning
  4. If the issue still occurs
    1. If error or warning messages are still displayed, repeat steps 1-4 for each remaining message
    2. Otherwise, Compat Inspector cannot fully identify this issue. Refer to the IE9 documentation for additional help.
  5. Otherwise, you've identified the root cause of the issue
    1. Uncheck all "Verify" checkboxes
      Another screenshot of the "createElement" informational message. This time the checkbox labeled "Verify" is unchecked.
    2. Refresh the page
    3. Follow the "Debug" Workflow below to locate the source of each message in your code
    4. Follow the instructions in the displayed error/warn messages to resolve the issue
    5. Note: Also look for any "if IE" checks controlling the execution of the problematic code. IE9 typically works best when given the same code as other modern browsers.

"Debug" Workflow

Compat Inspector can also help you isolate where in your code things went wrong via the "debug" feature.

Prerequisite: Compat Inspector is opened in the detailed information view and displaying an error or warning message containing a checkbox labeled "Debug."

  1. Click the "Debug" checkbox for the issue you want to investigate
    Another screenshot of the "createElement" error message. This time the checkbox labeled "Debug" is checked.
  2. Open the F12 developer tools by pressing the F12 key
    A screenshot showing the initial view of the F12 tools.
  3. Switch to the "Script" tab
    A screenshot showing the "Script" tab as focused in the F12 tools.
  4. Click "Start debugging"
    A screenshot showing the "Start Debugging" button as focused in the F12 tools.
  5. Repeat the steps that originally triggered the error or warning (This will invoke the script debugger)
    A screenshot showing a snippet of JavaScript paused in the F12 tools. The code contains the JavaScript statement "debugger;" with a comment informing readers that the break point was triggered by Compat Inspector with instructions to look at the next item up in the call stack.
  6. Switch to the "Call stack" sub-tab located in the right half of the F12 developer tools
    A screenshot of the "Call stack" sub-tab of the "Script" tab in the F12 tools. The call stack contains two entries (from top to bottom): "inspectorFunction" and "JScript global code". The entry "inspectorFunction" is selected.
  7. Double-click the entry visually below the highlighted entry in the call stack
    Another screenshot of the "Call stack" sub-tab of the "Script" tab in the F12 tools. This time the entry "JScript global code" is selected.
  8. Look over at the left hand side of the F12 developer tools to see the code that triggered the error or warning
    A screenshot showing the JavaScript code: document.createElement("<div>").

How does it work?

Compat Inspector uses features introduced in IE9. At its core, Compat Inspector overrides native APIs using ECMAScript 5th edition getters/setters and depends on the browser to correctly expose APIs per WebIDL. Compat Inspector then uses these overrides to track interactions between the page and the native platform. This allows it to report issues at runtime as the problem code is executed.

The rest of the Compat Inspector infrastructure makes use of various other new features as needed. Some examples include DOM Level 3 Core APIs, DOM Level 3 Events APIs, and CSS3 Border Radius. Compat Inspector also depends on features introduced in IE8 such as HTML5 Local Storage, HTML5 Cross-Document Messaging, native JSON support, and Selectors API.

My site works, now what?

Remove the Compat Inspector script from all your pages before publishing. Compat Inspector is a test tool and should not be used in production. After that, keep an eye on the IE blog; we may have new test cases to share in the future.

—Tony Ross, Program Manager, Internet Explorer

27/04/11 00:00

Movie Ages

If you're 15 or younger, then just remember that it's nevertheless probably too late to be a child prodigy.