Profile

Cover photo
Ian Hickson
Works at Google
Attended Bath University
2,317,556 views
AboutPostsCollectionsPhotosYouTubeReviews
Ian's Collections

Stream

Ian Hickson

Shared publicly  - 
 
This article is the perfect response to those who show intolerance but demand to be themselves accepted into your community.
The title of this essay should disturb you. We have been brought up to believe that tolerating other people is one of the things you do if…
6
Carey Rasmus's profile photo
 
"We often forget (or ignore) that no right is absolute, because one person’s rights can conflict with another’s."
Add a comment...

Ian Hickson

Shared publicly  - 
 
The hardware part of my laundry home automation contraption is now done!

Next step is the software. I've written enough littlebits cloud integration scripts over the past few months that I think the first item of business here will be writing a library to abstract out the I/O. I'm getting tired of having to manage TCP sockets and HTTP traffic and so forth every time.
12
Mace Moneta's profile photoIan Hickson's profile photoChad Harris's profile photo
8 comments
 
+Ian Hickson I asked +Maytag Brand​ for this functionality a couple of years ago. I'm glad I'm not the only one!!
Add a comment...

Ian Hickson

Shared publicly  - 
 
The W3C earned a reputation, when it was first created back in the 20th century, as a place where the universal interests of Web users were held paramount. I think the time has come to revisit whether this reputation is still valid.
DRM and Web security. September 21st, 2016 by Ian Hickson in Multimedia, W3C. For a few years now, the W3C has been working on a specification that extends the HTML standard to add a feature that literally, and intentionally, does nothing but limit the potential of the Web.
21
4

Ian Hickson

Shared publicly  - 
 
The last week or so we've been working on polish issues so that our Flutter Gallery demo app looks and feels so good that anyone trying it is left with no doubt that Flutter is a serious option for writing mobile apps. This means looking at things like performance during page transitions, removing demos that aren't complete, and fixing silly trivial bugs that we've ignored for too long. In the latter category, for example, we have the bug I've been looking at today: getting the scroll friction in flings in lists to feel natural. This basically means figuring out what the magic number should be by tweaking it slowly bit by bit until it matches the platform! You can see my crazy setup in the photo below. I put two devices side by side and then do a fling gesture on both and see how close it gets.

Turns out iOS is very slippery, 0.125. Android is high friction, 0.002 if I remember correctly.
13
4
Add a comment...

Ian Hickson

Shared publicly  - 
 
The big thing we're testing in Flutter land right now is Hot Reload. This is a feature from the Dart team that's going to make Flutter development massively easier. Instead of having to restart your app each time you make a change, you just have your IDE signal your device that the source code has changed, and we load the new code straight into the actively running VM without losing any of your state! Your app could be in the middle of an animation, and boom, half-way through we upload the new code and the animation continues running but with the new settings, without interrupting the animation or anything.

I've been using this feature to write code for a few days now and it is astounding what a difference it makes. You can try it today if you're using the master branch, just use "flutter run --hot". It's still a bit buggy (we don't yet support loading assets in this mode, for example, which is obviously a bit limiting) but that should get shaken out in a few days and then we'll land it on the alpha branch.

Conveniently, our framework really fits the hot reload model well. When you trigger a hot reload, we just mark every widget as needing to be rebuilt, and the whole app gets the new code applied, without losing state. This means you can tweak build functions, theme settings, and so on, and when you reload, the code takes effect. It would have been much harder to do this if our framework used a more retained-mode model like traditional UI frameworks, where once you've described the UI it stays in memory.

In other news, we now have a real logo! We've started deploying it, you can see it on our Web site and our G+ page and so on. I've been writing a widget that renders the logo, so that you can fly our colours if you want to. The logo is a heavily stylised blue wing in the shape of a sideways F. By the way, using hot reload makes writing canvas code, like this logo drawing code, so much easier. You just edit the coordinates, hit a key to save your changes, look at the device, and repeat.

The past few weeks I've been making sure our licensing story is nice and straight, including adding an AboutDialog widget and corresponding license screen. (Nothing drives home quite how many shoulders Flutter is standing on than paging through all the licenses of third-party packages Flutter uses. It really is a testament to the power of open source development.) Anyway, that's why I'm writing a FlutterLogo widget: my plan is, by default, to include it at the top of the license screen.
21
5
Add a comment...

Ian Hickson

Shared publicly  - 
 
The second half of this statement.
9
1

Ian Hickson

Shared publicly  - 
 
I'm writing a Dart version of my Sharp LC-70UD27U TV remote control library [1]. (My TV has an ethernet port and exposes a TCP server on which you can send commands.)

I'm pretty sure I just witnessed my TV doing time-travel.

I send messages one at a time, waiting for a response. Just now, after switching channels, I sent a `VOLM?` request, waited for the answer, then followed it by a `MUTE?` request. The volume was 18, and the TV isn't muted, so the answers should have been 18 and 2 respectively.

Here's the log:

I/flutter (32367): 2016-11-27T17:40:41.485525 ==> VOLM?
I/flutter (32367): 2016-11-27T17:40:41.486862 <== 2
I/flutter (32367): 2016-11-27T17:40:41.488129 ==> MUTE?
I/flutter (32367): 2016-11-27T17:40:41.489843 <== 18

HOW DID IT KNOW WHAT I WAS GOING TO ASK BEFORE I ASKED IT??? And why did it switch the answers around??

Not three seconds later the responses made sense, as they usually do:

I/flutter (32367): 2016-11-27T17:43:11.595704 ==> VOLM?
I/flutter (32367): 2016-11-27T17:43:11.604280 <== 18
I/flutter (32367): 2016-11-27T17:43:11.607810 ==> MUTE?
I/flutter (32367): 2016-11-27T17:43:11.612080 <== 2

I'm so confused. And a little scared.

[1] https://software.hixie.ch/utilities/unix/tv/
Index of /utilities/unix/tv. Name Last modified Size Description · Parent Directory - tv.pl 21-Jun-2016 19:23 26K. tv.pl ===== tv.pl is written to control the Sharp LC-70UD27U TV. It can probably control most modern Sharp TVs to some extent or another, though it'll need work. Help!
8
Maria Zolotova's profile photoJonh Elton's profile photo
2 comments
 
noite boa
 ·  Translate
Add a comment...

Ian Hickson

Shared publicly  - 
 
DRM strikes again: apparently Amazon have decided that Windows PCs can't be trusted to play 4K content from their streaming video service.

I hate DRM so much.
30
1

Ian Hickson

Planning a layout  - 
 
This is an aspirational layout that I'm thinking of attaching to the walls and hanging from the ceiling on some plexiglass or some such. It mostly hugs the walls except for the part on the left which is basically in the middle of the kitchen's ceiling and the loop part on the right which is over the center of the living room.

Any feedback?

This is an HO-scale layout, using Marklin C track. In theory I'd try to run operations on it, but with it up near the ceiling, I'm not sure how practical that would really be... maybe I'd need to invest in tennis umpire chairs or something. The ceiling near the top right is vaulted so it's possible to reach over there. The rest of the layout would be about 20cm from the ceiling so less room to reach over.
4
Add a comment...

Ian Hickson

Shared publicly  - 
 
#makeamericabrannigan is the best thing to happen so far in this election cycle. It's so good that it redeems everything that's happened so far.

#elevenseasonsandamovie? #tenseasonsandfivemovies? I'm so confused by the episode numbering at this point.
Voiceover actor. Did my best stuff in the 31st century, and all the 21yo girls think I'm cool. billywestpodcast.com · 96 Following30.9K Followers. Billy West. Tweets; Photos; Likes. Photos. Billy West · 2h2 hours ago. Billy West @TheBillyWest. Zapp presents...Famous Quotations from Donald J ...
9
Christine Mecklenborg's profile photoFranc Schiphorst's profile photo
2 comments
 
Wait for South park :)
Add a comment...

Ian Hickson

Shared publicly  - 
 
I finally gave up and uploaded my bash scripts that make git semi-usable, so that I can use them on other machines.

https://github.com/Hixie/usable-git
usable-git - A bunch of shell scripts that make using git bearable
9
2
Add a comment...

Ian Hickson

Shared publicly  - 
 
This might amuse Littlebits nerds.

Problem: How to use littlebits as a network-enabled temperature sensor with a local display for debugging purposes.

The obvious solution is power -> temperature sensor -> number -> cloudbit. In theory, though, the power and cloudbit modules would interfere with the sensor because they get warm. The next obvious solution, then, is to go power -> wire -> temperature sensor -> wire -> number -> cloudbit.

Unfortunately, the cloudbit is super sensitive to how much power it gets, to the point where using a couple of wire modules is enough to cause the cloudbit to fail to connect to my wifi (it goes into a reboot loop instead).

Solution: bring the power in via the number "reset" line, so that it's not going through a wire, then set the cloudbit to output 1.0, and wire the temperature sensor in a loop!

As crazy as the circuit looks, it does work.

The only problem with this is that the littlebitscloud doesn't remember that I set the output to 1.0, so I'm going to have my logging script periodically remind the cloudbit that it should be sending a 1.0 output, so that if there's a brief power outage it returns to 1.0. (Or I could get a fork bit and take the 1.0 signal off that instead. That's probably simpler... won't look as funny though.)
6
2
文山鐘(癡夢情煞)'s profile photoIan Hickson's profile photo
2 comments
 
Not sure what you're asking sorry.
Add a comment...
Collections Ian is following
Work
Occupation
HTML spec editor
Employment
  • Google
    Spec Weenie, 2005 - present
  • Opera Software
    QA & Standards, 2003 - 2005
  • Netscape
    Intern (QA & Standards), 2000 - 2001
Basic Information
Gender
non-binary ally
Other names
Hixie, Hixie the Pixie
Story
Tagline
✔ Verified Geek and Cat Lover
Education
  • Bath University
    Physics, 1998 - 2001
Contact Information
Home
Email
Food is mediocre. Atmosphere is great, lots of happy activity, lots of light, good location. Friendly and helpful staff.
Public - a year ago
reviewed a year ago
Prompt, courteous, and professional
Public - 2 years ago
reviewed 2 years ago
31 reviews
Map
Map
Map
Mediocre nachos, friendly but dubious service, unconvincing kid options.
Public - a year ago
reviewed a year ago
More interactive modern art museum than interactive educational museum, bit still fun. IMAX theater could do with a good cleaning.
Public - 2 years ago
reviewed 2 years ago
Food is barely edible.
Public - 2 years ago
reviewed 2 years ago