Profile cover photo
Profile photo
Patrick Dubroy
Programmer and interaction guy. I work at Google on the Chrome team.
Programmer and interaction guy. I work at Google on the Chrome team.

Patrick's posts

Post has shared content
Android's WebView is now powered by Chrome

The latest release of Android (KitKat) now uses a Chromium based WebView for embedded web content across the system.  The new Chromium based WebView lets you take advantage of many of the latest features inside Chrome for your applications and content, including first class support for Chrome DevTools.

Check out our docs about the latest changes to WebView 

Post has attachment
The argument that regular people won't benefit from learning to program just seems incredibly short-sighted to me. Like Marc Andreessen said, "software is eating the world." More and more of our lives and the things around us are being driven by software. I think it's incredibly valuable to understand the basics of how software works, and what it is capable of.

I don't think learning to program is about mastering the quirks of JavaScript. I see programming as a more general concept: "providing a computer or other machine with instructions for the automatic performance of a particular task" ( I don't think it's a stretch to imagine that providing instructions for automation will become increasingly important. Even today, being able to use Excel effectively is almost a prerequisite for many professions and fields of research. There are millions of people that write code on a daily basis who don't consider themselves programmers.

So, I do think it's valuable for almost anyone to learn the basics of programming. And I think that in 20 or 30 years, some amount of programming will be required in school. However, I really hope that what we call "programming" then is vastly simpler and easier than it is today – God help us if we're still writing Java.

Post has attachment
Nice follow-up on "Why mobile web apps are slow":

Post has attachment
Guy Steele and Gerald Sussman on abstraction, from The Art of the Interpreter (

Packages of common patterns are not necessarily merely abbreviations to save typing.  While a simple abbreviation has little abstraction power because a user must know what the abbreviation expands into, a good package encapsulates a higher level concept which has meaning independent of its implementation.  Once a package is constructed the programmer can use it directly, without regard for the details it contains, precisely because it corresponds to a single notion he uses in dealing with the programming problem.

Post has attachment
Great story from Donald Norman on emotional design:

Here is a product so bad that she was practically in tears as she struggled with it. [...] Still, this woman's love/hate relationship with the clock was particularly puzzling. She kept looking at it: "The price is fine if you really like it. It looks like a quality clock. But I can't figure out how to use it. I can't even tell what time it is. I don't know what the first thing to do with it."

Post has attachment
Jonathan Edwards:

To rationalize the insanity of programs that could read and write arbitrary data to any memory address, languages evolved the now ubiquitous notion of automatic memory management. We suggest that to rationalize the insanity of programs that can read and write globally at any time that languages should impose automatic time management.

Interesting stuff.

Post has attachment
This is great -- The Little Manual of API Design, by Qt developer Jasmin Blanchette.

What is a good API? [...]
• Easy to learn and memorize
• Leads to readable code
• Hard to misuse
• Easy to extend
• Complete

via +Lukas Mathis

Post has attachment
Well-chosen typography makes it more text easier to understand and more pleasant to read. The size, typeface, weight, and color are effective ways to communicate meaning and guide the reader.

Why is code different? Why is code always set in a monospace font in a fixed size? Why do we use dazzling colour schemes rather than something more subtle?

Here's a little experiment of what Python's urlparse module might look like if it was typeset in a more modern way:

Does it work? I'm not 100% sure. I think it's interesting to think about.

Post has attachment
Inspired by some aspects of #dartlang, I wrote a new blog post about the importance of separating meta-level facilities from the base functionality of a programming language.

Post has attachment
Vint Cerf: "I believe our ability to understand and predict software behavior may rest in the invention of better high-level programming languages that allow details to be suppressed and models to emerge."
Wait while more posts are being loaded