Cover photo
Ian Hickson
Works at Google
Attended Bath University


Ian Hickson

Layouts - General Discussions  - 
I finally picked a layout and built it. 40m of sidings on two tables, and a loop. Pretty boring layout to operate, but I gotta have somewhere to put the rolling stock!
Snow Andrews's profile photosoumaila traore's profile photo平手 深樹親(ALPHANEODESIGN)'s profile photoAlozie Nwosu's profile photo
Sure. Post a new post in the community and +me in.
Add a comment...

Ian Hickson

Free Pascal  - 
Sheesh, I really miss a looping construct where the condition is in the middle. Something equivalent to:

      if (condition) then break;
   until false;

...but without the ugly "until false", and ideally with "continue" jumping to the block after the condition rather than back to the top.
Ian Hickson's profile photoMario Ray Mahardhika's profile photoMichael Schindler's profile photo
If the code duplication becomes a problem, I would replace part A with a procedure, possibly inlined. Sure, this is a fix and not the most elegant way, but for many practical problems it works good enough. I also assume, that a loop without continues and breaks is easier to optimize automatically for the compiler and easier to parallelize. On the other hand, you finally made me curious about this feature in Oberon.
Add a comment...

Ian Hickson

Shared publicly  - 
The thing that's fascinating about the most recent Der Spiegel leaks about the NSA is that it makes a lot of the things that seemed unrealistic in spy TV shows and movies now seem positively mundane.

I never considered that if I bought a $2 USB cable online, I should expect the NSA to intercept the package and install a circuit board into the plug that turned the USB cable into a wifi device. Or that if I bought off-the-shelf Ethernet RJ45 plugs, they might be delivered after the NSA has installed MITM hardware in them. Or that the NSA might be illuminating my house with 1kW radar to power wireless microphones and keyboard loggers.
Fenton Travers's profile photoMichiel Scholten's profile photo

Ian Hickson

Questions  - 
Is there a way in Emacs to fill paragraphs in the way that Pine's paragraph justifier works?

Specifically, when a set of paragraph is of this form:

> > A B C
> > D E.
> Foo foo foo
> foo foo.
> Bar bar bar
> bar bar.
Baz baz baz
baz baz.

...I want four paragraphs to end up being flowed, not one mess to result from it as happens with fill-paragraph.
Ian Hickson's profile photoMathias Dahl's profile photoMark Warren's profile photoLee Rothstein's profile photo
+Ian Hickson

You're joking, right?

Starting a question about emacs: "Is there a way ... ?" The answer is always, "No!"

There is never one way to do anything in emacs. A 1000 ways. 10,000 ways. Perhaps, even, a transfinite number of ways, but never "A WAY!" ;-)
Add a comment...

Ian Hickson

Shared publicly  - 
Today we reached revision 8000 of the HTML standard. We started tracking revisions in March 2006, about two years after we started work on HTML in the WHATWG, which itself was about 6 months after we first started the work on updating HTML (when we first started, we called the work "XForms Basic", because we were trying to show that you could do much of what XForms did, by just extending plain old HTML — that work eventually made it into the forms section of the current HTML standard).

That's an average of three checkins a day, every day, for over seven years! That's what progress looks like. :-) Some checkins are trivial one-character typo fixes, some, like today's r8000, are big multi-thousand-line diffs (r8000 integrates the new <template> element into HTML, based on a proposal by Rafael (of Google) and Tony (of Microsoft), and implemented already in Chrome and Firefox).

As of right now my metrics tell me there's 1199 feedback e-mails remaining to process, and 156 bugs. So still lots of work to do.
Fred Gandt's profile photoDonald Pipowitch's profile photoAlexis Heloir's profile photoJim Cresswell's profile photo
yeah! living standard is chaos theory in action :)

Ian Hickson

Shared publicly  - 

Ian Hickson

Shared publicly  - 
Help the WHATWG by signing the patent commitment form for the URL standard!
The WHATWG is starting down the road of getting patent commitments for its standards. You can be part of this!

First, create an account with the W3C's community group system

Then, join the WHATWG community group:

Then make the patent commitment by following the instructions on this page (pick the first radio button, then click "Record my choice"):

That's all there is to it! Google, Mozilla, and Opera have already signed the patent commitment agreement. Anyone can sign up, but it's even more useful if you are an employee of a big patent-holding company and can convince your company to sign up!
Kenneth Rohde Christiansen's profile photoMichael Stuhr's profile photoJoe Johnson's profile photo

Ian Hickson

Planning a layout  - 
For now I don't have much room for a layout, so I'm stuck trying to fit all my rolling stock onto two big IKEA tables. So I'm trying to find a layout that maximises the amount of space I have for trains, at the cost of having no room for anything else. (This is not meant to be realistic. It's just temporary until I can get room for a real layout.)

Here are my goals and requirements:
• It should have lots of room for freight rolling stock storage.
• It should have room for storing a couple dozen engines.
• It should have interesting yards that are not frustrating to operate (e.g. the yard leads should be at least as big as the A/D tracks).
• It should have a mainline that goes from somewhere to somewhere. Loops are acceptable since I've got such limited space, though a long non-loop mainline might be better. Two-line mainlines are more interesting than one-line mainlines.
• Ideally, it should have room for a 2.3m passenger train, namely the TGV from the Märklin 2014 catalogue. I don't have a train that long yet, but I'd love to get that one eventually, and I can't justify getting it if I don't have anywhere to put it.
• I have one Märklin 7951 crane to place somewhere.
• The tables are 2600mm × 950mm (the lengths can be adjusted to 2180mm or 1750mm). I have room for these tables in more or less any configuration, though some of them (e.g. an L shape with both tables fully extended) are a bit awkward. I can probably figure out how to bridge between the tables if they're not touching.

I've made some attempts at designing layouts within these constraints, as shown below. In these layouts, light green track is the mainline, and the other colours are just to show what tracks are related (e.g. one yard will be one colour). When measuring storage space, I don't count switches, buffers, the mainline, tracks that lead to sidings, yard leads, A/D tracks, or run-arounds; I count everything else. So far, my longest mainline (not a loop) is 14.9m, the most storage space I've managed to pack onto one layout is 32.65m, the longest A/D track is 1.7m, the longest siding with a buffer at one end is 2.14m, and the longest station (what I call a siding that connects on both ends to the mainline) is 2.7m. (All on different layouts, sadly.)

Can anyone do better? :-)
Brad Bates's profile photoSean Selley-West's profile photoSnow Andrews's profile photoAlozie Nwosu's profile photo
I like design number 8.
Add a comment...

Ian Hickson

Shared publicly  - 
FYI, I updated Acid3 today to disable test 67, originally contributed by Sylvain Pasche, since it was testing attributes.removedNamedItemNS() which has since been removed from the DOM specification.

This change was requested by Ms2ger, who is affiliated with Mozilla.

People who are using archived versions of Acid3 can obtain an updated copy of the archive here:
JS/? To pass the test, a browser must use its default settings, the animation has to be smooth, the score has to end on 100/100, and the final page has to look exactly, pixel for pixel, like this reference rendering. Scripting must be enabled to use this test.
Mart Rootamm's profile photoPaul Henning's profile photo
To clarify a bit: I found out this April that the test worked in IE7 on early September 2011, but not soon after that.
Add a comment...

Ian Hickson

Questions  - 
I write code in FreePascal. There's a delphi-mode, which is close to FreePascal, so I tried using that. But it forces certain indentation behaviour (even once you turn off as much as you can).

So... is there some way to unbind keys like RET and tab and so forth so that they don't do anything special? Really I'd just like the delphi-like font-lock colours, and nothing else from that mode.
Artur Malabarba's profile photoIan Hickson's profile photo
I looked there long before coming here. :-)
Add a comment...

Ian Hickson

Shared publicly  - 
Discussions about DRM often land on the fundamental problem with DRM: that it doesn't work, or worse, that it is in fact mathematically impossible to make it work. The argument goes as follows:

1. The purpose of DRM is to prevent people from copying content while allowing people to view that content,

2. You can't hide something from someone while showing it to them,

3. And in any case widespread copyright violations (e.g. movies on file sharing sites) often come from sources that aren't encrypted in the first place, e.g. leaks from studios.

It turns out that this argument is fundamentally flawed. Usually the arguments from pro-DRM people are that #2 and #3 are false. But no, those are true. The problem is #1 is false.

The purpose of DRM is not to prevent copyright violations.

The purpose of DRM is to give content providers leverage against creators of playback devices.

Content providers have leverage against content distributors, because distributors can't legally distribute copyrighted content without the permission of the content's creators. But if that was the only leverage content producers had, what would happen is that users would obtain their content from those content distributors, and then use third-party content playback systems to read it, letting them do so in whatever manner they wanted.

Here are some examples:

A. Paramount make a movie. A DVD store buys the rights to distribute this movie from Paramount, and sells DVDs. You buy the DVD, and want to play it. Paramount want you to sit through some ads, so they tell the DVD store to put some ads on the DVD labeled as "unskippable".

Without DRM, you take the DVD and stick it into a DVD player that ignores "unskippable" labels, and jump straight to the movie.

With DRM, there is no licensed player that can do this, because to create the player you need to get permission from Paramount -- or rather, a licensing agent created and supported by content companies, DVD-CCA -- otherwise, you are violating some set of patents, anti-circumvention laws, or both.

B. Columbia make a movie. Netflix buys the rights to distribute this movie from Columbia, and sells access to the bits of the movie to users online. You get a Netflix subscription. Columbia want you to pay more if you want to watch it simultaneously on your TV and your phone, so they require that Netflix prevent you from doing this.

Now. You are watching the movie upstairs with your family, and you hear your cat meowing at the door downstairs.

Without DRM, you don't have to use Netflix's software, so maybe just pass the feed to some multiplexing software, which means that you can just pick up your phone, tell it to stream the same movie, continue watching it while you walk downstairs to open the door for the cat, come back upstairs, and turn your phone off, and nobody else has been inconvenienced and you haven't missed anything.

With DRM, you have to use Netflix's software, so you have to play by their rules. There is no licensed software that will let you multiplex the stream. You could watch it on your phone, but then your family misses out. They could keep watching, but then you miss out. Nobody is allowed to write software that does anything Columbia don't want you to do. Columbia want the option to charge you more when you go to let your cat in, even if they don't actually make it possible yet.

C. Fox make a movie. Apple buys the rights to sell it on iTunes. You buy it from iTunes. You want to watch it on your phone. Fox want you to buy the movie again if you use anything not made by Apple.

Without DRM, you just transfer it to your phone and watch it, since the player on any phone, whether made by Apple or anyone else, can read the video file.

With DRM, only Apple can provide a licensed player for the file. If you're using any phone other than an iPhone, you cannot watch it, because nobody else has been allowed to write software that decrypts the media files sold by Apple.

In all three cases, nobody has been stopped from violating a copyright. All three movies are probably available on file sharing sites. The only people who are stopped from doing anything are the player providers -- they are forced to provide a user experience that, rather than being optimised for the users, puts potential future revenues first (forcing people to play ads, keeping the door open to charging more for more features later, building artificial obsolescence into content so that if you change ecosystem, you have to purchase the content again).

Arguing that DRM doesn't work is, it turns out, missing the point. DRM is working really well in the video and book space. Sure, the DRM systems have all been broken, but that doesn't matter to the DRM proponents. Licensed DVD players still enforce the restrictions. Mass market providers can't create unlicensed DVD players, so they remain a black or gray market curiosity. DRM failed in the music space not because DRM is doomed, but because the content providers sold their digital content without DRM, and thus enabled all kinds of players they didn't expect (such as "MP3" players). Had CDs been encrypted, iPods would not have been able to read their content, because the content providers would have been able to use their DRM contracts as leverage to prevent it.

DRM's purpose is to give content providers control over software and hardware providers, and it is satisfying that purpose well.

As a corollary to this, look at the companies who are pushing for DRM. Of the ones who would have to implement the DRM, they are all companies over which the content providers already, without DRM, have leverage: the companies that both license content from the content providers and create software or hardware players. Because they license content, the content providers already have leverage against them: they can essentially require them to be pro-DRM if they want the content. The people against the DRM are the users, and the player creators who don't license content. In other words, the people over whom the content producers have no leverage. 
Mark Arnold's profile photoLiam Jackson's profile photoDavid Piepgrass's profile photoMhilvert Busadre's profile photo
What kind of world are you living in +Randall Arnold, in theory immaterial rights like patents (I refuse to use the weird collective term abbreviated  by IP...) would cover an implementation of a specific idea, but then came these abominations denoted "software patents" and "business model patents". Have you ever seen a software patent covering a specific method implemented in some particular language? No, it's pure monopolism on ideas!
Also when you study material patents you'll find that it's merely the idea behind a design which is patented. Then in English it's also a little confusing as "patents" can refer to "design patents" (bascially a specific pattern or shape) as well as the "idea patents" which most people associate with patents.

Ian Hickson

Shared publicly  - 
Heard about this on the Freakonomics podcast this week. If you have a decision you need to make, and you can't chose between two options, give this a try — it'll help you decide, and you contribute to science at the same time!
Fridrik Mar Jonsson's profile photoLeon Gaban's profile photo
I recommend going back to the early episodes -- it seems they're doing less of the more thorough pieces these days, but there's a lot of good stuff in there.
Ian's Collections
HTML spec editor
  • Google
    Spec Weenie, 2005 - present
  • Opera Software
    QA & Standards, 2003 - 2005
  • Netscape
    Intern (QA & Standards), 2000 - 2001
Basic Information
non-binary ally
Other names
Hixie, Hixie the Pixie
✔ Verified Geek and Cat Lover
  • Bath University
    Physics, 1998 - 2001
Contact Information
Mediocre nachos, friendly but dubious service, unconvincing kid options.
Public - 2 months ago
reviewed 2 months ago
Food is mediocre. Atmosphere is great, lots of happy activity, lots of light, good location. Friendly and helpful staff.
Public - 4 months ago
reviewed 4 months ago
Prompt, courteous, and professional
Public - a year ago
reviewed a year ago
The broccoli omelet tastes bland and watery. The home fries the same. The menu has items they don't sell. The juices are Tropicana bottles. On the plus side, the wait staff are very nice and friendly.
Public - a year ago
reviewed a year ago
29 reviews
More interactive modern art museum than interactive educational museum, bit still fun. IMAX theater could do with a good cleaning.
Public - a year ago
reviewed a year ago
Food is barely edible.
Public - a year ago
reviewed a year ago
Public - a year ago
reviewed a year ago