Category: Indeed
March 29, 2019
Yamanote: A software development and deployment system
I left Mozilla back in July, 2018. There are many reasons for this decision, and I’ll talk about just one here: I decided to Help People Get Jobs. The following text is from a blog post I wrote at work. I have reposted it here, edited for length and content (Internal Indeed systems are not referenced.)
At Indeed, we now use a software development and deployment system called “Yamanote.” Yamanote takes its name from the Yamanote Line (山手線) in Tokyo, Japan.
read more
Category: Internet
March 29, 2019
Yamanote: A software development and deployment system
I left Mozilla back in July, 2018. There are many reasons for this decision, and I’ll talk about just one here: I decided to Help People Get Jobs. The following text is from a blog post I wrote at work. I have reposted it here, edited for length and content (Internal Indeed systems are not referenced.)
At Indeed, we now use a software development and deployment system called “Yamanote.” Yamanote takes its name from the Yamanote Line (山手線) in Tokyo, Japan.
read more
January 9, 2018
Turning a Corner in the New Year
I’m going to start the year off with a blog post, mostly to procrastinate on replying to the many e-mails that my very productive colleagues have sent my way 🙂
2017 was quite a year beyond the socio-economic, geo-political, and bizarre. I, and many of my colleagues did what we could: find solace in work. I’ve often found that in uncertain times, making forward progress on difficult technical projects provides just enough incentive to continue for a bit longer.
read more
July 1, 2017
Why bother building a Web Layout Engine?
All of Mozilla is currently in San Francisco for the semi-annual All-Hands event. The Web Platform Layout team also meets here to discuss current work and future projects. Our team is responsible for the following browser rendering operations:
Compute Style Size Position Animate Paint …in 2D, 3D, and Virtual Reality.
Because we typically operate 7 days a week, 24 hours a day across the globe, it’s a rare opportunity to meet with everyone to share what we’ve been working on, and where we’re going next.
read more
January 26, 2017
Lighting Fires under Bugs
It’s been way too long since I posted on this blog. It seems I’ve fallen into the 140-character vortex like so many bloggers. I will endeavor to work on that in 2017.
I’m often asked “What’s up with this bug?” or some variation. This is often the case when a reported software defect is stuck in a status other than “fixed.” I then have to get in there, figure out what’s stuck, and somehow get it unstuck.
read more
August 25, 2015
Setting up for Android and Firefox OS Development
This post is a follow-up to an earlier article I wrote about setting up a FirefoxOS development environment.
I’m going to set up a Sony Z3C as the target device for Mobile OS software development. The Sony Z3C (also known as Aries or aosp_d5803 ) is a nice device for Mobile OS hacking as it’s an AOSP device with good support for building the OS binaries. I’ve set the phone up for both FirefoxOS and Android OS development, to compare and see what’s common across both environments.
read more
May 29, 2015
Firefox Platform Rendering & Current Work
I’m often asked “what are you working on?” Here’s a snapshot of some of the things currently on my teams’ front burners:
Vertical Text (CSS Writing Modes) Shumway CSS Containment Image Downscale During Decode Webkit CSS Prefix Compatibility Media Source Extensions CSS Grid Encrypted Media Extensions JS Codecs FileSystem API SVG transform-origin Fira Fonts harfbuzz text shaping Web Animations WebVR Input Method Editors Runtime Hardware Rendering Validation unicode-range HTML5 Canvas Filters Off-main-thread HTML5 Canvas Rendering HTML5 Fullscreen Rust in Gecko I’m surely forgetting a few things, but that’s a quick snapshot for now.
read more
April 13, 2015
Gaia Tips and Tricks for Gecko Hackers
I’m often assigned Firefox Rendering bugs in bugzilla. By the time a bug gets assigned to me, the reporter had usually exhausted other options and assumed (correctly) that I’m ultimately responsible for fixing Firefox rendering bugs. Of course, I often have to reassign most bugs to more capable individuals.
Some of the hardest bugs to assign are the ones reported by our own Gaia team: the team responsible for building the user experience in Firefox OS.
read more
March 17, 2015
What can SVG learn from Flash?
Regular readers of my blog know that I also worked on the Macromedia Flash Professional authoring tool and the Adobe Flash Player for many years. I learned a great deal about the design of ubiquitous platforms, and the limitations of single-vendor implementations. At a recent meeting with the W3C SVG working group, I shared some of my thoughts on how Flash was able to reach critical mass across the Web, and how SVG can leverage those lessons for the future.
read more
February 11, 2015
FirefoxOS Dev Quick Start
I’m posting the steps I took to create the FirefoxOS dev environment for the Flame device. We use the Flame as our reference device on the Platform Rendering team. I had to re-do this recently on a new computer and I figure this might help others in the same boat. These steps assume you can already build the desktop version of Firefox on your computer.
Get ADB Turn on ADB debugging on your device.
read more
October 20, 2014
The Graphical Web (conference video)
I occasionally accept invitations to speak at conferences and events. Here’s the video from my recent talk at The Graphical Web in Winchester, England. I discuss how and why I now work on Web Platform Rendering, and how disruptive innovations are enabled by seemingly mundane key technologies that bridge gaps for developers and audiences.
read more
September 10, 2014
Protect Net Neutrality
Doing my small part to support the efforts today (September 10, 2014)
https://sendto.mozilla.org/page/s/protect-net-neutrality
read more
April 27, 2014
NYC Indie Web Camp Weekend
I’m at the NYC Indie Web Camp this weekend at the beautiful New York Times office in Manhattan. Tantek Çelik joined my team at Mozilla about six months ago to work on various Web Standards initiatives that we push forward on the Firefox Platform team. Although our bread and butter is Web Platform Rendering, Tantek is also passionate about advancing user-sovereignty to enable authorship outside of proprietary corporate silos (see POSSE.
read more
July 15, 2013
Planet Mozilla Rocks!
My last two posts didn’t make it on to planet.mozilla.org due to a recent junglecode server move. I asked Robert Accettura to update the entries in the planet database so that server-side redirects aren’t necessary. This post is just testing those changes. It’s also a plug for Planet Mozilla, a most excellent public resource for the Mozilla community.
If you missed these two posts on planet, here you go:
Software Project Estimates: Go Fly a Kite!
read more
July 11, 2013
Software Project Estimates: Go Fly a Kite!
Building Open Source software presents challenges to engineers and managers that differ greatly from proprietary systems. Open Source doesn’t eliminate the need for proper estimates and the predictability of costs that accurate estimates bring. Open Specifications like the W3C web standards add additional complexity to the estimation process. How are you supposed to know how long a project will take, when the specifications are frequently modified by authors and editors who aren’t under your control?
read more
June 13, 2013
Mozilla Platform Rendering in Asia
I’ve spent the last 3 weeks traveling in Asia for Mozilla and W3C business. On May 20 to 24, my team was in Taiwan for a series of meetings on Platform Rendering (Layout, Graphics, and Media.) It’s always an enlightening experience for me when I spend time with such a talented group of people:
I’ve pasted the calendar we followed for the week, below. The links point to raw notes from the sessions (where available.
read more
November 12, 2012
The Shumway Open SWF Runtime Project
Last year, I wrote a blog post regarding Flash that generated a fair bit of discussion. Since then, the Research team at Mozilla has been working on solutions: https://blog.mozilla.org/research/2012/11/12/introducing-the-shumway-open-swf-runtime-project/
As the research blog states, “…Shumway is very experimental, is missing features, contains many defects, and is evolving rapidly.” If you’re a technical person who wants to help the current situation with Flash and the Open Web, please help us out.
read more
April 6, 2012
Graphite Smart Fonts in Firefox
The Gecko Layout Engine added Graphite Smart Fonts support starting in Firefox 11. The Mozilla Firefox documentation for Graphite is still under construction but already contains lots of useful information for Web Designers and Developers.
The number of people who will benefit from Graphite is the small subset of the population that reads and writes with lesser-known scripts that require complex ligatures and rules for glyph substitution. In other words, we expect this work will appeal to a rather small underrepresented percentage of the web who communicate using uncommon writing systems.
read more
March 18, 2012
Toggle Paint Flashing for Firefox
Paint Flashing is now in the official Release channel starting in Firefox 11. I posted a new add-on that let’s you enable Paint Flashing with one click: https://addons.mozilla.org/en-US/firefox/addon/toggle-paint-flashing/
This tool is useful for quickly inspecting how Firefox renders your web pages as it visually indicates how much screen area is being painted after the page layout is computed.The source code for the add-on is also posted.
read more
February 7, 2012
How I got started hacking on Firefox
One of the Gecko Layout & Rendering team’s main responsibilities is the continuing development of CSS in Firefox. I recently modified the CSS style system to allow nested rule parsing. This bug fix taught me a lot about the CSS parser and how styles cascade through the rest of the Layout engine. It took me a little while to set up a dev environment, understand the bug, write tests, get the code written, reviewed, and checked in.
read more
January 18, 2012
Firefox Invalidation
As promised, I’m going to call out Firefox Layout & Rendering code changes that my team has been working on. This bug fix from Bas Schouten (as reviewed by Robert O’Callahan) was one of those light-bulb code changes that have really advanced my understanding of the Gecko Layout Engine’s graphics code:
https://bugzilla.mozilla.org/attachment.cgi?id=574190&action=diff
This check-in implements “Paint Flashing”, a diagnostic tool that shows when the browser is invalidating (or repainting) a screen region that has changed.
read more
November 13, 2011
Flash: I`m not dead yet!
My last post generated a fair bit of discussion around the true fate of Flash within Adobe. The original announcement from Adobe and the associated staff reductions had caused a lot of speculation within the Flash community. I should clarify some of my statements, especially the parts about the Flash Pro authoring tool and Flash Player.
All software follows a similar life cycle from 1.0 to a final version when it effectively becomes frozen in time.
read more
November 9, 2011
Did Adobe finally kill Macromedia Flash?
Adobe announced that it is ceasing development on the Flash Player for Mobile Devices. As you may know, I was on the engineering team that brought Flash Player 10.1 to Mobile Devices back in June, 2010. This announcement is disappointing for many reasons, but not surprising given the realities of mobile web development.
While I was at Adobe, we spent a great deal of time and energy to get the Flash Player to run fast enough on the HTC Nexus One running the Android OS.
read more
October 19, 2011
Mozilla Festival, London UK
I will be in London from November 4-6 to take part in the Mozilla Festival. The festival will be at the Ravensbourne College in Greenwich (in the beginning of time—GMT.)
The organizers are actively looking for more developers and designers to add rocket fuel for the Festival’s roster of design challenges and hack sprints. More specifically, they are looking for more:
Javascript developers, HTML5 video and audio enthusiasts, front-end developers, news app developers, and other news hackers, to help build everything from data-driven journalism kits to mobile news apps to amazing browser-based video games that run right in the browser.
read more
September 28, 2011
Graphics Engines in Firefox
One of the key goals for the Firefox Layout & Rendering team is to improve performance for web applications. Web apps nowadays push the graphics rendering stack in ways that rival console games. To that end, our existing rasterizer was hitting its limits in terms of the sheer volume of data we now push through it on a a regular basis. Switching out a shipping application’s raster engine is a big deal that requires a lot of scaffolding.
read more
September 27, 2011
Shipping already? I just got here!
Firefox 7.0 shipped today. While I can’t take any credit for any of it, my team deserves all the praise. They’ve been hard at work on reducing memory all over the product. I’ve had a few people complain to me about “pork” in Firefox and we’re making some big changes to cut the fat. It’s interesting how getting a new job just means new complaints from the same cadre of “stakeholders.
read more
September 24, 2011
Interviewing in Silicon Valley
I spent a fair amount of time interviewing for jobs before landing the one I have now. Sitting in the interviewee chair was a learning experience after many years at the same company—it had been a long time since I was an external candidate. This post might help others sitting on either side of a Silicon Valley interview.
I’m a Software Developer who manages other Software Developers. This is an important point because I was interviewing for management and non-management roles at the companies I visited.
read more
September 22, 2011
New Beginnings!
I recently started working on Firefox. To be more specific, I help run the Gecko Layout Team for the Mozilla Corporation. My team is responsible for everything you can “see” in Firefox. As you can imagine, the team is very busy.
I really enjoy working on software used by hundreds of millions of people. Before I started working on Firefox full-time, I managed Software Engineering for the Adobe Flash Player. Before that, I worked on a bunch of other software used by lots of people.
read more
Category: Mozilla
March 29, 2019
Yamanote: A software development and deployment system
I left Mozilla back in July, 2018. There are many reasons for this decision, and I’ll talk about just one here: I decided to Help People Get Jobs. The following text is from a blog post I wrote at work. I have reposted it here, edited for length and content (Internal Indeed systems are not referenced.)
At Indeed, we now use a software development and deployment system called “Yamanote.” Yamanote takes its name from the Yamanote Line (山手線) in Tokyo, Japan.
read more
January 9, 2018
Turning a Corner in the New Year
I’m going to start the year off with a blog post, mostly to procrastinate on replying to the many e-mails that my very productive colleagues have sent my way 🙂
2017 was quite a year beyond the socio-economic, geo-political, and bizarre. I, and many of my colleagues did what we could: find solace in work. I’ve often found that in uncertain times, making forward progress on difficult technical projects provides just enough incentive to continue for a bit longer.
read more
July 1, 2017
Why bother building a Web Layout Engine?
All of Mozilla is currently in San Francisco for the semi-annual All-Hands event. The Web Platform Layout team also meets here to discuss current work and future projects. Our team is responsible for the following browser rendering operations:
Compute Style Size Position Animate Paint …in 2D, 3D, and Virtual Reality.
Because we typically operate 7 days a week, 24 hours a day across the globe, it’s a rare opportunity to meet with everyone to share what we’ve been working on, and where we’re going next.
read more
January 26, 2017
Lighting Fires under Bugs
It’s been way too long since I posted on this blog. It seems I’ve fallen into the 140-character vortex like so many bloggers. I will endeavor to work on that in 2017.
I’m often asked “What’s up with this bug?” or some variation. This is often the case when a reported software defect is stuck in a status other than “fixed.” I then have to get in there, figure out what’s stuck, and somehow get it unstuck.
read more
August 25, 2015
Setting up for Android and Firefox OS Development
This post is a follow-up to an earlier article I wrote about setting up a FirefoxOS development environment.
I’m going to set up a Sony Z3C as the target device for Mobile OS software development. The Sony Z3C (also known as Aries or aosp_d5803 ) is a nice device for Mobile OS hacking as it’s an AOSP device with good support for building the OS binaries. I’ve set the phone up for both FirefoxOS and Android OS development, to compare and see what’s common across both environments.
read more
May 29, 2015
Firefox Platform Rendering & Current Work
I’m often asked “what are you working on?” Here’s a snapshot of some of the things currently on my teams’ front burners:
Vertical Text (CSS Writing Modes) Shumway CSS Containment Image Downscale During Decode Webkit CSS Prefix Compatibility Media Source Extensions CSS Grid Encrypted Media Extensions JS Codecs FileSystem API SVG transform-origin Fira Fonts harfbuzz text shaping Web Animations WebVR Input Method Editors Runtime Hardware Rendering Validation unicode-range HTML5 Canvas Filters Off-main-thread HTML5 Canvas Rendering HTML5 Fullscreen Rust in Gecko I’m surely forgetting a few things, but that’s a quick snapshot for now.
read more
April 13, 2015
Gaia Tips and Tricks for Gecko Hackers
I’m often assigned Firefox Rendering bugs in bugzilla. By the time a bug gets assigned to me, the reporter had usually exhausted other options and assumed (correctly) that I’m ultimately responsible for fixing Firefox rendering bugs. Of course, I often have to reassign most bugs to more capable individuals.
Some of the hardest bugs to assign are the ones reported by our own Gaia team: the team responsible for building the user experience in Firefox OS.
read more
March 17, 2015
What can SVG learn from Flash?
Regular readers of my blog know that I also worked on the Macromedia Flash Professional authoring tool and the Adobe Flash Player for many years. I learned a great deal about the design of ubiquitous platforms, and the limitations of single-vendor implementations. At a recent meeting with the W3C SVG working group, I shared some of my thoughts on how Flash was able to reach critical mass across the Web, and how SVG can leverage those lessons for the future.
read more
February 11, 2015
FirefoxOS Dev Quick Start
I’m posting the steps I took to create the FirefoxOS dev environment for the Flame device. We use the Flame as our reference device on the Platform Rendering team. I had to re-do this recently on a new computer and I figure this might help others in the same boat. These steps assume you can already build the desktop version of Firefox on your computer.
Get ADB Turn on ADB debugging on your device.
read more
October 20, 2014
The Graphical Web (conference video)
I occasionally accept invitations to speak at conferences and events. Here’s the video from my recent talk at The Graphical Web in Winchester, England. I discuss how and why I now work on Web Platform Rendering, and how disruptive innovations are enabled by seemingly mundane key technologies that bridge gaps for developers and audiences.
read more
September 10, 2014
Protect Net Neutrality
Doing my small part to support the efforts today (September 10, 2014)
https://sendto.mozilla.org/page/s/protect-net-neutrality
read more
April 27, 2014
NYC Indie Web Camp Weekend
I’m at the NYC Indie Web Camp this weekend at the beautiful New York Times office in Manhattan. Tantek Çelik joined my team at Mozilla about six months ago to work on various Web Standards initiatives that we push forward on the Firefox Platform team. Although our bread and butter is Web Platform Rendering, Tantek is also passionate about advancing user-sovereignty to enable authorship outside of proprietary corporate silos (see POSSE.
read more
July 15, 2013
Planet Mozilla Rocks!
My last two posts didn’t make it on to planet.mozilla.org due to a recent junglecode server move. I asked Robert Accettura to update the entries in the planet database so that server-side redirects aren’t necessary. This post is just testing those changes. It’s also a plug for Planet Mozilla, a most excellent public resource for the Mozilla community.
If you missed these two posts on planet, here you go:
Software Project Estimates: Go Fly a Kite!
read more
July 11, 2013
Software Project Estimates: Go Fly a Kite!
Building Open Source software presents challenges to engineers and managers that differ greatly from proprietary systems. Open Source doesn’t eliminate the need for proper estimates and the predictability of costs that accurate estimates bring. Open Specifications like the W3C web standards add additional complexity to the estimation process. How are you supposed to know how long a project will take, when the specifications are frequently modified by authors and editors who aren’t under your control?
read more
Category: Open Source
March 29, 2019
Yamanote: A software development and deployment system
I left Mozilla back in July, 2018. There are many reasons for this decision, and I’ll talk about just one here: I decided to Help People Get Jobs. The following text is from a blog post I wrote at work. I have reposted it here, edited for length and content (Internal Indeed systems are not referenced.)
At Indeed, we now use a software development and deployment system called “Yamanote.” Yamanote takes its name from the Yamanote Line (山手線) in Tokyo, Japan.
read more
January 9, 2018
Turning a Corner in the New Year
I’m going to start the year off with a blog post, mostly to procrastinate on replying to the many e-mails that my very productive colleagues have sent my way 🙂
2017 was quite a year beyond the socio-economic, geo-political, and bizarre. I, and many of my colleagues did what we could: find solace in work. I’ve often found that in uncertain times, making forward progress on difficult technical projects provides just enough incentive to continue for a bit longer.
read more
July 1, 2017
Why bother building a Web Layout Engine?
All of Mozilla is currently in San Francisco for the semi-annual All-Hands event. The Web Platform Layout team also meets here to discuss current work and future projects. Our team is responsible for the following browser rendering operations:
Compute Style Size Position Animate Paint …in 2D, 3D, and Virtual Reality.
Because we typically operate 7 days a week, 24 hours a day across the globe, it’s a rare opportunity to meet with everyone to share what we’ve been working on, and where we’re going next.
read more
January 26, 2017
Lighting Fires under Bugs
It’s been way too long since I posted on this blog. It seems I’ve fallen into the 140-character vortex like so many bloggers. I will endeavor to work on that in 2017.
I’m often asked “What’s up with this bug?” or some variation. This is often the case when a reported software defect is stuck in a status other than “fixed.” I then have to get in there, figure out what’s stuck, and somehow get it unstuck.
read more
August 25, 2015
Setting up for Android and Firefox OS Development
This post is a follow-up to an earlier article I wrote about setting up a FirefoxOS development environment.
I’m going to set up a Sony Z3C as the target device for Mobile OS software development. The Sony Z3C (also known as Aries or aosp_d5803 ) is a nice device for Mobile OS hacking as it’s an AOSP device with good support for building the OS binaries. I’ve set the phone up for both FirefoxOS and Android OS development, to compare and see what’s common across both environments.
read more
May 29, 2015
Firefox Platform Rendering & Current Work
I’m often asked “what are you working on?” Here’s a snapshot of some of the things currently on my teams’ front burners:
Vertical Text (CSS Writing Modes) Shumway CSS Containment Image Downscale During Decode Webkit CSS Prefix Compatibility Media Source Extensions CSS Grid Encrypted Media Extensions JS Codecs FileSystem API SVG transform-origin Fira Fonts harfbuzz text shaping Web Animations WebVR Input Method Editors Runtime Hardware Rendering Validation unicode-range HTML5 Canvas Filters Off-main-thread HTML5 Canvas Rendering HTML5 Fullscreen Rust in Gecko I’m surely forgetting a few things, but that’s a quick snapshot for now.
read more
April 13, 2015
Gaia Tips and Tricks for Gecko Hackers
I’m often assigned Firefox Rendering bugs in bugzilla. By the time a bug gets assigned to me, the reporter had usually exhausted other options and assumed (correctly) that I’m ultimately responsible for fixing Firefox rendering bugs. Of course, I often have to reassign most bugs to more capable individuals.
Some of the hardest bugs to assign are the ones reported by our own Gaia team: the team responsible for building the user experience in Firefox OS.
read more
March 17, 2015
What can SVG learn from Flash?
Regular readers of my blog know that I also worked on the Macromedia Flash Professional authoring tool and the Adobe Flash Player for many years. I learned a great deal about the design of ubiquitous platforms, and the limitations of single-vendor implementations. At a recent meeting with the W3C SVG working group, I shared some of my thoughts on how Flash was able to reach critical mass across the Web, and how SVG can leverage those lessons for the future.
read more
February 11, 2015
FirefoxOS Dev Quick Start
I’m posting the steps I took to create the FirefoxOS dev environment for the Flame device. We use the Flame as our reference device on the Platform Rendering team. I had to re-do this recently on a new computer and I figure this might help others in the same boat. These steps assume you can already build the desktop version of Firefox on your computer.
Get ADB Turn on ADB debugging on your device.
read more
October 20, 2014
The Graphical Web (conference video)
I occasionally accept invitations to speak at conferences and events. Here’s the video from my recent talk at The Graphical Web in Winchester, England. I discuss how and why I now work on Web Platform Rendering, and how disruptive innovations are enabled by seemingly mundane key technologies that bridge gaps for developers and audiences.
read more
September 10, 2014
Protect Net Neutrality
Doing my small part to support the efforts today (September 10, 2014)
https://sendto.mozilla.org/page/s/protect-net-neutrality
read more
April 27, 2014
NYC Indie Web Camp Weekend
I’m at the NYC Indie Web Camp this weekend at the beautiful New York Times office in Manhattan. Tantek Çelik joined my team at Mozilla about six months ago to work on various Web Standards initiatives that we push forward on the Firefox Platform team. Although our bread and butter is Web Platform Rendering, Tantek is also passionate about advancing user-sovereignty to enable authorship outside of proprietary corporate silos (see POSSE.
read more
July 15, 2013
Planet Mozilla Rocks!
My last two posts didn’t make it on to planet.mozilla.org due to a recent junglecode server move. I asked Robert Accettura to update the entries in the planet database so that server-side redirects aren’t necessary. This post is just testing those changes. It’s also a plug for Planet Mozilla, a most excellent public resource for the Mozilla community.
If you missed these two posts on planet, here you go:
Software Project Estimates: Go Fly a Kite!
read more
July 11, 2013
Software Project Estimates: Go Fly a Kite!
Building Open Source software presents challenges to engineers and managers that differ greatly from proprietary systems. Open Source doesn’t eliminate the need for proper estimates and the predictability of costs that accurate estimates bring. Open Specifications like the W3C web standards add additional complexity to the estimation process. How are you supposed to know how long a project will take, when the specifications are frequently modified by authors and editors who aren’t under your control?
read more
Category: Software
March 29, 2019
Yamanote: A software development and deployment system
I left Mozilla back in July, 2018. There are many reasons for this decision, and I’ll talk about just one here: I decided to Help People Get Jobs. The following text is from a blog post I wrote at work. I have reposted it here, edited for length and content (Internal Indeed systems are not referenced.)
At Indeed, we now use a software development and deployment system called “Yamanote.” Yamanote takes its name from the Yamanote Line (山手線) in Tokyo, Japan.
read more
January 9, 2018
Turning a Corner in the New Year
I’m going to start the year off with a blog post, mostly to procrastinate on replying to the many e-mails that my very productive colleagues have sent my way 🙂
2017 was quite a year beyond the socio-economic, geo-political, and bizarre. I, and many of my colleagues did what we could: find solace in work. I’ve often found that in uncertain times, making forward progress on difficult technical projects provides just enough incentive to continue for a bit longer.
read more
July 1, 2017
Why bother building a Web Layout Engine?
All of Mozilla is currently in San Francisco for the semi-annual All-Hands event. The Web Platform Layout team also meets here to discuss current work and future projects. Our team is responsible for the following browser rendering operations:
Compute Style Size Position Animate Paint …in 2D, 3D, and Virtual Reality.
Because we typically operate 7 days a week, 24 hours a day across the globe, it’s a rare opportunity to meet with everyone to share what we’ve been working on, and where we’re going next.
read more
January 26, 2017
Lighting Fires under Bugs
It’s been way too long since I posted on this blog. It seems I’ve fallen into the 140-character vortex like so many bloggers. I will endeavor to work on that in 2017.
I’m often asked “What’s up with this bug?” or some variation. This is often the case when a reported software defect is stuck in a status other than “fixed.” I then have to get in there, figure out what’s stuck, and somehow get it unstuck.
read more
August 25, 2015
Setting up for Android and Firefox OS Development
This post is a follow-up to an earlier article I wrote about setting up a FirefoxOS development environment.
I’m going to set up a Sony Z3C as the target device for Mobile OS software development. The Sony Z3C (also known as Aries or aosp_d5803 ) is a nice device for Mobile OS hacking as it’s an AOSP device with good support for building the OS binaries. I’ve set the phone up for both FirefoxOS and Android OS development, to compare and see what’s common across both environments.
read more
May 29, 2015
Firefox Platform Rendering & Current Work
I’m often asked “what are you working on?” Here’s a snapshot of some of the things currently on my teams’ front burners:
Vertical Text (CSS Writing Modes) Shumway CSS Containment Image Downscale During Decode Webkit CSS Prefix Compatibility Media Source Extensions CSS Grid Encrypted Media Extensions JS Codecs FileSystem API SVG transform-origin Fira Fonts harfbuzz text shaping Web Animations WebVR Input Method Editors Runtime Hardware Rendering Validation unicode-range HTML5 Canvas Filters Off-main-thread HTML5 Canvas Rendering HTML5 Fullscreen Rust in Gecko I’m surely forgetting a few things, but that’s a quick snapshot for now.
read more
April 13, 2015
Gaia Tips and Tricks for Gecko Hackers
I’m often assigned Firefox Rendering bugs in bugzilla. By the time a bug gets assigned to me, the reporter had usually exhausted other options and assumed (correctly) that I’m ultimately responsible for fixing Firefox rendering bugs. Of course, I often have to reassign most bugs to more capable individuals.
Some of the hardest bugs to assign are the ones reported by our own Gaia team: the team responsible for building the user experience in Firefox OS.
read more
March 17, 2015
What can SVG learn from Flash?
Regular readers of my blog know that I also worked on the Macromedia Flash Professional authoring tool and the Adobe Flash Player for many years. I learned a great deal about the design of ubiquitous platforms, and the limitations of single-vendor implementations. At a recent meeting with the W3C SVG working group, I shared some of my thoughts on how Flash was able to reach critical mass across the Web, and how SVG can leverage those lessons for the future.
read more
February 11, 2015
FirefoxOS Dev Quick Start
I’m posting the steps I took to create the FirefoxOS dev environment for the Flame device. We use the Flame as our reference device on the Platform Rendering team. I had to re-do this recently on a new computer and I figure this might help others in the same boat. These steps assume you can already build the desktop version of Firefox on your computer.
Get ADB Turn on ADB debugging on your device.
read more
October 20, 2014
The Graphical Web (conference video)
I occasionally accept invitations to speak at conferences and events. Here’s the video from my recent talk at The Graphical Web in Winchester, England. I discuss how and why I now work on Web Platform Rendering, and how disruptive innovations are enabled by seemingly mundane key technologies that bridge gaps for developers and audiences.
read more
April 27, 2014
NYC Indie Web Camp Weekend
I’m at the NYC Indie Web Camp this weekend at the beautiful New York Times office in Manhattan. Tantek Çelik joined my team at Mozilla about six months ago to work on various Web Standards initiatives that we push forward on the Firefox Platform team. Although our bread and butter is Web Platform Rendering, Tantek is also passionate about advancing user-sovereignty to enable authorship outside of proprietary corporate silos (see POSSE.
read more
July 15, 2013
Planet Mozilla Rocks!
My last two posts didn’t make it on to planet.mozilla.org due to a recent junglecode server move. I asked Robert Accettura to update the entries in the planet database so that server-side redirects aren’t necessary. This post is just testing those changes. It’s also a plug for Planet Mozilla, a most excellent public resource for the Mozilla community.
If you missed these two posts on planet, here you go:
Software Project Estimates: Go Fly a Kite!
read more
July 11, 2013
Software Project Estimates: Go Fly a Kite!
Building Open Source software presents challenges to engineers and managers that differ greatly from proprietary systems. Open Source doesn’t eliminate the need for proper estimates and the predictability of costs that accurate estimates bring. Open Specifications like the W3C web standards add additional complexity to the estimation process. How are you supposed to know how long a project will take, when the specifications are frequently modified by authors and editors who aren’t under your control?
read more
June 13, 2013
Mozilla Platform Rendering in Asia
I’ve spent the last 3 weeks traveling in Asia for Mozilla and W3C business. On May 20 to 24, my team was in Taiwan for a series of meetings on Platform Rendering (Layout, Graphics, and Media.) It’s always an enlightening experience for me when I spend time with such a talented group of people:
I’ve pasted the calendar we followed for the week, below. The links point to raw notes from the sessions (where available.
read more
November 12, 2012
The Shumway Open SWF Runtime Project
Last year, I wrote a blog post regarding Flash that generated a fair bit of discussion. Since then, the Research team at Mozilla has been working on solutions: https://blog.mozilla.org/research/2012/11/12/introducing-the-shumway-open-swf-runtime-project/
As the research blog states, “…Shumway is very experimental, is missing features, contains many defects, and is evolving rapidly.” If you’re a technical person who wants to help the current situation with Flash and the Open Web, please help us out.
read more
April 6, 2012
Graphite Smart Fonts in Firefox
The Gecko Layout Engine added Graphite Smart Fonts support starting in Firefox 11. The Mozilla Firefox documentation for Graphite is still under construction but already contains lots of useful information for Web Designers and Developers.
The number of people who will benefit from Graphite is the small subset of the population that reads and writes with lesser-known scripts that require complex ligatures and rules for glyph substitution. In other words, we expect this work will appeal to a rather small underrepresented percentage of the web who communicate using uncommon writing systems.
read more
March 18, 2012
Toggle Paint Flashing for Firefox
Paint Flashing is now in the official Release channel starting in Firefox 11. I posted a new add-on that let’s you enable Paint Flashing with one click: https://addons.mozilla.org/en-US/firefox/addon/toggle-paint-flashing/
This tool is useful for quickly inspecting how Firefox renders your web pages as it visually indicates how much screen area is being painted after the page layout is computed.The source code for the add-on is also posted.
read more
February 7, 2012
How I got started hacking on Firefox
One of the Gecko Layout & Rendering team’s main responsibilities is the continuing development of CSS in Firefox. I recently modified the CSS style system to allow nested rule parsing. This bug fix taught me a lot about the CSS parser and how styles cascade through the rest of the Layout engine. It took me a little while to set up a dev environment, understand the bug, write tests, get the code written, reviewed, and checked in.
read more
January 18, 2012
Firefox Invalidation
As promised, I’m going to call out Firefox Layout & Rendering code changes that my team has been working on. This bug fix from Bas Schouten (as reviewed by Robert O’Callahan) was one of those light-bulb code changes that have really advanced my understanding of the Gecko Layout Engine’s graphics code:
https://bugzilla.mozilla.org/attachment.cgi?id=574190&action=diff
This check-in implements “Paint Flashing”, a diagnostic tool that shows when the browser is invalidating (or repainting) a screen region that has changed.
read more
November 13, 2011
Flash: I`m not dead yet!
My last post generated a fair bit of discussion around the true fate of Flash within Adobe. The original announcement from Adobe and the associated staff reductions had caused a lot of speculation within the Flash community. I should clarify some of my statements, especially the parts about the Flash Pro authoring tool and Flash Player.
All software follows a similar life cycle from 1.0 to a final version when it effectively becomes frozen in time.
read more
November 9, 2011
Did Adobe finally kill Macromedia Flash?
Adobe announced that it is ceasing development on the Flash Player for Mobile Devices. As you may know, I was on the engineering team that brought Flash Player 10.1 to Mobile Devices back in June, 2010. This announcement is disappointing for many reasons, but not surprising given the realities of mobile web development.
While I was at Adobe, we spent a great deal of time and energy to get the Flash Player to run fast enough on the HTC Nexus One running the Android OS.
read more
October 19, 2011
Mozilla Festival, London UK
I will be in London from November 4-6 to take part in the Mozilla Festival. The festival will be at the Ravensbourne College in Greenwich (in the beginning of time—GMT.)
The organizers are actively looking for more developers and designers to add rocket fuel for the Festival’s roster of design challenges and hack sprints. More specifically, they are looking for more:
Javascript developers, HTML5 video and audio enthusiasts, front-end developers, news app developers, and other news hackers, to help build everything from data-driven journalism kits to mobile news apps to amazing browser-based video games that run right in the browser.
read more
September 28, 2011
Graphics Engines in Firefox
One of the key goals for the Firefox Layout & Rendering team is to improve performance for web applications. Web apps nowadays push the graphics rendering stack in ways that rival console games. To that end, our existing rasterizer was hitting its limits in terms of the sheer volume of data we now push through it on a a regular basis. Switching out a shipping application’s raster engine is a big deal that requires a lot of scaffolding.
read more
September 27, 2011
Shipping already? I just got here!
Firefox 7.0 shipped today. While I can’t take any credit for any of it, my team deserves all the praise. They’ve been hard at work on reducing memory all over the product. I’ve had a few people complain to me about “pork” in Firefox and we’re making some big changes to cut the fat. It’s interesting how getting a new job just means new complaints from the same cadre of “stakeholders.
read more
September 24, 2011
Interviewing in Silicon Valley
I spent a fair amount of time interviewing for jobs before landing the one I have now. Sitting in the interviewee chair was a learning experience after many years at the same company—it had been a long time since I was an external candidate. This post might help others sitting on either side of a Silicon Valley interview.
I’m a Software Developer who manages other Software Developers. This is an important point because I was interviewing for management and non-management roles at the companies I visited.
read more
September 22, 2011
New Beginnings!
I recently started working on Firefox. To be more specific, I help run the Gecko Layout Team for the Mozilla Corporation. My team is responsible for everything you can “see” in Firefox. As you can imagine, the team is very busy.
I really enjoy working on software used by hundreds of millions of people. Before I started working on Firefox full-time, I managed Software Engineering for the Adobe Flash Player. Before that, I worked on a bunch of other software used by lots of people.
read more
Category: Hardware
August 25, 2015
Setting up for Android and Firefox OS Development
This post is a follow-up to an earlier article I wrote about setting up a FirefoxOS development environment.
I’m going to set up a Sony Z3C as the target device for Mobile OS software development. The Sony Z3C (also known as Aries or aosp_d5803 ) is a nice device for Mobile OS hacking as it’s an AOSP device with good support for building the OS binaries. I’ve set the phone up for both FirefoxOS and Android OS development, to compare and see what’s common across both environments.
read more
May 29, 2015
Firefox Platform Rendering & Current Work
I’m often asked “what are you working on?” Here’s a snapshot of some of the things currently on my teams’ front burners:
Vertical Text (CSS Writing Modes) Shumway CSS Containment Image Downscale During Decode Webkit CSS Prefix Compatibility Media Source Extensions CSS Grid Encrypted Media Extensions JS Codecs FileSystem API SVG transform-origin Fira Fonts harfbuzz text shaping Web Animations WebVR Input Method Editors Runtime Hardware Rendering Validation unicode-range HTML5 Canvas Filters Off-main-thread HTML5 Canvas Rendering HTML5 Fullscreen Rust in Gecko I’m surely forgetting a few things, but that’s a quick snapshot for now.
read more
February 11, 2015
FirefoxOS Dev Quick Start
I’m posting the steps I took to create the FirefoxOS dev environment for the Flame device. We use the Flame as our reference device on the Platform Rendering team. I had to re-do this recently on a new computer and I figure this might help others in the same boat. These steps assume you can already build the desktop version of Firefox on your computer.
Get ADB Turn on ADB debugging on your device.
read more
June 13, 2013
Mozilla Platform Rendering in Asia
I’ve spent the last 3 weeks traveling in Asia for Mozilla and W3C business. On May 20 to 24, my team was in Taiwan for a series of meetings on Platform Rendering (Layout, Graphics, and Media.) It’s always an enlightening experience for me when I spend time with such a talented group of people:
I’ve pasted the calendar we followed for the week, below. The links point to raw notes from the sessions (where available.
read more
Category: Uncategorized
March 21, 2014
Platform Rendering Work Weeks in Taipei
The Platform Rendering team is back in Taiwan this month. This time, we’ve split the team across 3 work weeks (Media, Layout, and Graphics.) This lets us focus on the issues specific to each team but still allow for free time to hack and socialize.
Here’s the week’s agenda for the Platform Media team:
Monday 10th March Tuesday 11th March Wednesday 12th March Thursday 13th March Friday 14th March 10:00 – 10:55 Introduction / Lightning talks Anthony Jones Platform Decoder Modules, MP4 Chris Pearce Media Stream Graph Refactoring Paul Adenot Stingray – Introduction and demo of TV Ide Content enablement session Chris / Ide 11:00 – 11:55 Beginner’s guide to <video> code Chris Pearce “MediaCodec for playback” Bruce Sun “Video Codec Resource Management” Blake Wu “Adjust priority/nice value for media playback threads” Star Cheng Testing JW Wang Stingray – Introduction of hardware Nakajima Shumway (Mozilla Flash Player) Jet Villegas Lunch 13:00 – 13:55 14:00 – 14:55 Process reflection Anthony Jones Async Decoder Changes Chris Pearce Daala Tim Terriberry Stringray – AV related achetecture Yoshioka TaskTracer Demo Shelly Lin 4th floor, Mozspace 15:00 – 15:55 Pre-Discussion about Panasonic TV Shelly Lin New Recording Features John Lin Video Recording Randy Lin Seccomp etc Paul Terriault Stringray – GFX related achetecture Ohtani Hell Kitty Chris Pearce 16:00 : 16:55 Manager Session Anthony Jones Chaos mode debugging and rr Robert O’Callahan Media Source Extensions Chris Double Our Proposals for Panasonic TV Shelly Lin SUPERFLUOUS MEETING #25 Chris Pearce 19:00 – Team dinner @ Din-Tai-Fung, Taipei 101 Here’s the week’s agenda for the Platform Layout team:
read more
Category: Random
September 22, 2011
New Beginnings!
I recently started working on Firefox. To be more specific, I help run the Gecko Layout Team for the Mozilla Corporation. My team is responsible for everything you can “see” in Firefox. As you can imagine, the team is very busy.
I really enjoy working on software used by hundreds of millions of people. Before I started working on Firefox full-time, I managed Software Engineering for the Adobe Flash Player. Before that, I worked on a bunch of other software used by lots of people.
read more