<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Disqus - Latest Comments for mbrubeck</title><link>http://disqus.com/by/mbrubeck/</link><description></description><atom:link href="http://disqus.com/mbrubeck/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Wed, 09 Oct 2019 20:54:53 -0000</lastBuildDate><item><title>Re: PredictIt | Will Hillary Clinton  run for president in 2020?</title><link>https://www.predictit.org/Contract/11451/Will-Hillary-Clinton-run-for-president-in-2020#comment-4646676828</link><description>&lt;p&gt;We're talking about the filing deadline for the primary election. Hillary won Alabama with 78% of the vote in the 2016 Democratic primary.  (44 delegates for Hillary versus 9 for Bernie.)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Wed, 09 Oct 2019 20:54:53 -0000</pubDate></item><item><title>Re: Leaving Mozilla</title><link>http://blog.margaretleibovic.com/2016/07/08/leaving-mozilla.html#comment-2774416232</link><description>&lt;p&gt;We'll miss you! Keep on doing awesome stuff. :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Sat, 09 Jul 2016 15:45:27 -0000</pubDate></item><item><title>Re: Profiling rust code with callgrind</title><link>https://shunyata.github.io/2015/10/01/profiling-rust/#comment-2285757409</link><description>&lt;p&gt;"debug = true" is already the default setting for the "dev" profile, so you don't need to add anything to your Cargo.toml to enable this for dev builds.  (However, you can add "debug = true" to the "release" profile if you want to profile optimized builds.)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Fri, 02 Oct 2015 11:11:56 -0000</pubDate></item><item><title>Re: &amp;lt;i&amp;gt;Brooklyn Nine-Nine&amp;lt;/i&amp;gt;: “Captain Peralta”</title><link>http://www.avclub.com/tvclub/brooklyn-nine-nine-captain-peralta-216264#comment-1899349370</link><description>&lt;p&gt;But you don't know if the one man is heavier or lighter than the other eleven.  Your solution assumes he is lighter.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Tue, 10 Mar 2015 13:21:19 -0000</pubDate></item><item><title>Re: Let's build a browser engine! Part 7: Painting 101</title><link>https://limpet.net/mbrubeck/2014/11/05/toy-layout-engine-7-painting.html#comment-1832917253</link><description>&lt;p&gt;Glad you're enjoying it!  I haven't started on inline layout yet, but I definitely hope to do it within the next few months.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Tue, 03 Feb 2015 13:11:11 -0000</pubDate></item><item><title>Re: Let's build a browser engine! Part 2: Parsing HTML</title><link>https://limpet.net/mbrubeck/2014/08/11/toy-layout-engine-2.html#comment-1796637245</link><description>&lt;p&gt;swap_remove is a fast way to remove and return an item from a Vec.  It moves the object out of the Vec (transferring ownership) rather than cloning it.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Fri, 16 Jan 2015 17:25:25 -0000</pubDate></item><item><title>Re: Let's build a browser engine! Part 1: Getting started</title><link>https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html#comment-1780802748</link><description>&lt;p&gt;If you have "global" data structures that live as long as your program, you can declare them in your main() function and then have other functions receive them either by reference or ownership.  There's no need to make one big structure, unless I'm missing something.  If you read the code in my blog posts, you'll find that I build my program by defining lots of little data structures, not one big one.  (Other Rust programs tend to look similar, including multi-threaded ones like Servo.)&lt;/p&gt;&lt;p&gt;You can pass mutable references however deep you like, but note that Rust requires that only one mutable reference to a given piece of data exists at any point in time.  This provides strong guarantees (memory safety, no data races) but can be inconvenient when trying to have multiple threads able to mutate the same data.  So instead of using mutable pointers directly, multi-threaded Rust programs tend to use message-passing (with the "Sender" and "Receiver" types) and/or safe shared memory (e.g. the "Arc" type).  The "Cell" and "RefCell" types are also useful for mutating data in ways that might otherwise violate Rust's borrowing rules.&lt;/p&gt;&lt;p&gt;There's not a lot of getting-started documentation on these topics yet, but you can find a little at &lt;a href="http://doc.rust-lang.org/guide-tasks.html" rel="nofollow noopener" target="_blank" title="http://doc.rust-lang.org/guide-tasks.html"&gt;http://doc.rust-lang.org/gu...&lt;/a&gt; and some more in the documentation for the std::sync module.  You can also find some real-world example code in this 3D path tracer: &lt;a href="http://ruudvanasseldonk.com/2014/09/15/writing-a-path-tracer-in-rust-part-6-multithreading" rel="nofollow noopener" target="_blank" title="http://ruudvanasseldonk.com/2014/09/15/writing-a-path-tracer-in-rust-part-6-multithreading"&gt;http://ruudvanasseldonk.com...&lt;/a&gt;&lt;/p&gt;&lt;p&gt;(Note that the std::task module was recently renamed to std::thread, and some other relevant modules have also been moved/renamed in recent months.)&lt;/p&gt;&lt;p&gt;If you have more questions, &lt;a href="http://rust.reddit.com" rel="nofollow noopener" target="_blank" title="rust.reddit.com"&gt;rust.reddit.com&lt;/a&gt; is a good place to ask them.  The people there are quite friendly to Rust newcomers!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Thu, 08 Jan 2015 19:45:21 -0000</pubDate></item><item><title>Re: Let's build a browser engine!</title><link>https://limpet.net/mbrubeck/2014/09/08/toy-layout-engine-5-boxes.html#comment-1754879727</link><description>&lt;p&gt;The code is correct (or at least, works as designed): When inserting an inline node into a block box, it generates an anonymous block box.  When inserting it into another inline node or an existing anonymous block box, it does not.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Mon, 22 Dec 2014 13:12:33 -0000</pubDate></item><item><title>Re: A little randomness for Hacker News</title><link>https://limpet.net/mbrubeck/2014/10/22/randomize-hacker-news.html#comment-1649135090</link><description>&lt;p&gt;They're currently inserted randomly, anywhere on the page.  I like the idea of putting them near the top.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Wed, 22 Oct 2014 19:31:01 -0000</pubDate></item><item><title>Re: Let's build a browser engine! Part 1: Getting started</title><link>https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html#comment-1560256543</link><description>&lt;p&gt;Fixed. Thanks!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Tue, 26 Aug 2014 13:22:20 -0000</pubDate></item><item><title>Re: Let's build a browser engine!</title><link>https://limpet.net/mbrubeck/2014/08/23/toy-layout-engine-4-style.html#comment-1558403153</link><description>&lt;p&gt;Sorry, I probably will not include JavaScript in this project.  It's complex, and I don't have enough time to add it.  Maybe someone else can try. :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Mon, 25 Aug 2014 12:44:03 -0000</pubDate></item><item><title>Re: Let's build a browser engine!</title><link>https://limpet.net/mbrubeck/2014/08/13/toy-layout-engine-3-css.html#comment-1554411250</link><description>&lt;p&gt;I do this in case there are multiple matching rules, so I can more efficiently compare their specificity.  This will be clearer in part 4, which should be ready next week.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Fri, 22 Aug 2014 10:05:58 -0000</pubDate></item><item><title>Re: Let's build a browser engine!</title><link>https://limpet.net/mbrubeck/2014/08/13/toy-layout-engine-3-css.html#comment-1545988964</link><description>&lt;p&gt;Ah, good question. I think the best way to do this would be during selector matching, which I'll cover in the next article.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Sat, 16 Aug 2014 18:06:26 -0000</pubDate></item><item><title>Re: Let's build a browser engine!</title><link>https://limpet.net/mbrubeck/2014/08/13/toy-layout-engine-3-css.html#comment-1544765290</link><description>&lt;p&gt;Normal `style` tags go in the `head` of the document and apply to the entire document, so you could support these just by keeping a list of Stylesheets in the Parser object, and appending to it each time you parse a `style` element.&lt;/p&gt;&lt;p&gt;The new `&amp;lt;style scoped=""&amp;gt;` attribute (currently supported in Firefox only) does provide a way to include a stylesheet that applies to just one element and its descendants.  If you want to support that, you'd have to add a pointer from the Stylesheet to the Node that it's scoped to.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Fri, 15 Aug 2014 18:23:17 -0000</pubDate></item><item><title>Re: Let's build a browser engine!</title><link>https://limpet.net/mbrubeck/2014/08/13/toy-layout-engine-3-css.html#comment-1541438880</link><description>&lt;p&gt;Nice!  I hadn't even tried my code on real-world web pages.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Wed, 13 Aug 2014 17:11:40 -0000</pubDate></item><item><title>Re: House of Cars: Lessons in politics from Seattle&amp;#8217;s ridesharing saga</title><link>https://www.geekwire.com/2014/house-cars-lessons-politics-seattles-recent-rideshare-decision/#comment-1274114262</link><description>&lt;p&gt;How can you say with a straight face that Microsoft at the time of the 2001 US antitrust case was a "young, innovative company" in a "new playing field"? At that time Microsoft was over 25 years old, worth billions of dollars, and had dominated multiple consumer and business markets for most of the previous two decades (starting with the release of MS-DOS for the IBM PC twenty years earlier).  It had just succeeded in using its Windows monopoly to effectively kill competition in web browsers and usher in a multi-year period of stagnation in the web as a competing platform.&lt;/p&gt;&lt;p&gt;(Calling Microsoft in 2001 a "young" company is equivalent to saying a software company founded in 1988 is "young" today.)&lt;/p&gt;&lt;p&gt;I'm not just quibbling about numbers.  United States v. Microsoft happened because of concerns that Microsoft was illegally interfering with much younger, disruptive companies and products (like Netscape, which was 1/4 the age of Microsoft).  So painting Microsoft as the "young, innovative company" that was crushed by the stodgy government is getting the case exactly backwards in some important ways.  In reality, Microsoft was the incumbent - the equivalent of Yellow Cab, not Uber.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Thu, 06 Mar 2014 19:56:57 -0000</pubDate></item><item><title>Re: A good time to try Firefox for Metro</title><link>https://limpet.net/mbrubeck/2013/11/10/try-metro-firefox.html#comment-1118814070</link><description>&lt;p&gt;The Reader Mode for Metro work is based on the desktop patches from bug 558882, and most of the code will be shared with desktop.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Mon, 11 Nov 2013 19:49:50 -0000</pubDate></item><item><title>Re: A good time to try Firefox for Metro</title><link>https://limpet.net/mbrubeck/2013/11/10/try-metro-firefox.html#comment-1118813363</link><description>&lt;p&gt;I don't have an Atom device myself, but Asa and our QA team acquired several, and some of the other Metro developers have them too.  I'll see if we can get some startup numbers.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Mon, 11 Nov 2013 19:49:03 -0000</pubDate></item><item><title>Re: Better automated detection of Firefox performance regressions</title><link>https://limpet.net/mbrubeck/2013/11/10/improving-regression-detection.html#comment-1117142340</link><description>&lt;p&gt;I don't remember exactly which window functions I tried, but I did test some smooth ones. For the small number of points in our windows (12) it didn't seem to make much difference - anything that had a gradual (rather than single step) fall-off to zero got the improvements I was after.  The linear moving average was the simplest, so that's what I checked in.&lt;/p&gt;&lt;p&gt;It's easy to swap out the window function here if you'd like to experiment:&lt;/p&gt;&lt;p&gt;&lt;a href="http://hg.mozilla.org/graphs/file/b61e7261ca4b/server/analysis/analyze.py#l6" rel="nofollow noopener" target="_blank" title="http://hg.mozilla.org/graphs/file/b61e7261ca4b/server/analysis/analyze.py#l6"&gt;http://hg.mozilla.org/graph...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Sun, 10 Nov 2013 16:49:50 -0000</pubDate></item><item><title>Re: Locked Down Endpoints</title><link>http://avc.com/2013/08/locked-down-endpoints/#comment-989415872</link><description>&lt;p&gt;Every user who has made an effort to jailbreak their phone cares about "locked-down endpoints" even if they don't use those exact words.  According to most surveys I could find, that includes around 5% to 10% of iPhone users worldwide -- much higher in some regions.  Not a majority, but much more than 0%.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Mon, 05 Aug 2013 14:09:53 -0000</pubDate></item><item><title>Re: Behemoth, Part 1</title><link>https://blog.lmorchard.com/2013/06/11/behemoth-part-1#comment-926987510</link><description>&lt;p&gt;Nice! I think I spy a fellow EVE Online player, even if this story isn't *exactly* set in New Edan. :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Tue, 11 Jun 2013 17:51:12 -0000</pubDate></item><item><title>Re: http://limpet.net/mbrubeck/2010/05/11/fennec-meta-viewport.html</title><link>https://limpet.net/mbrubeck/2010/05/11/fennec-meta-viewport.html#comment-790567959</link><description>&lt;p&gt; No, I published this blog post first (on 2010-05-11), and then I worked with our developer docs team to republish it on MDN (on 2010-05-26) and on the official Mozilla Hacks blog (on 2010-05-27).  For details, see:&lt;/p&gt;&lt;p&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=561413#c12" rel="nofollow noopener" target="_blank" title="https://bugzilla.mozilla.org/show_bug.cgi?id=561413#c12"&gt;https://bugzilla.mozilla.or...&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Mobile/Viewport_meta_tag$history" rel="nofollow noopener" target="_blank" title="https://developer.mozilla.org/en-US/docs/Mobile/Viewport_meta_tag$history"&gt;https://developer.mozilla.o...&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://hacks.mozilla.org/2010/05/upcoming-changes-to-the-viewport-meta-tag-for-firefox-mobile/" rel="nofollow noopener" target="_blank" title="https://hacks.mozilla.org/2010/05/upcoming-changes-to-the-viewport-meta-tag-for-firefox-mobile/"&gt;https://hacks.mozilla.org/2...&lt;/a&gt;&lt;br&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Wed, 06 Feb 2013 09:40:19 -0000</pubDate></item><item><title>Re: IE10 below 1% market share, Firefox back under 20%, Chrome recovers from three months of losses</title><link>https://thenextweb.com/apps/2013/01/01/ie10-below-1-market-share-firefox-back-under-20-chrome-recovers-from-three-months-of-losses/#comment-754593032</link><description>&lt;p&gt;Note that Stat Counter counts page views, while Net Applications counts unique visitors.  While the two are related, it's not exactly an apples-to-apples comparison.  We should expect browsers favored by more active users to rank higher in the Stat Counter data.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Thu, 03 Jan 2013 11:18:46 -0000</pubDate></item><item><title>Re: http://limpet.net/mbrubeck/2010/08/12/fennec-2-alpha-status.html</title><link>https://limpet.net/mbrubeck/2010/08/12/fennec-2-alpha-status.html#comment-721661394</link><description>&lt;p&gt; You can still download archived versions of Flash from Adobe's web site and use them with Firefox for Android:&lt;br&gt;&lt;a href="https://support.mozilla.org/en-US/kb/how-do-i-watch-flash-videos-firefox-android" rel="nofollow noopener" target="_blank" title="https://support.mozilla.org/en-US/kb/how-do-i-watch-flash-videos-firefox-android"&gt;https://support.mozilla.org...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Wed, 28 Nov 2012 11:44:30 -0000</pubDate></item><item><title>Re: Congratulating the IE10 team</title><link>https://limpet.net/mbrubeck/2012/10/26/mozilla-ie10-cake.html#comment-694096521</link><description>&lt;p&gt; Sorry, I don't think the hoodies are available anywhere.  They were sent as a special gift to Mozilla project members last year.  I hear that we have new Gear Store that opening sometime soon with other Firefox stuff, and sometimes we also give shirts to people who donate to the Mozilla Foundation.&lt;br&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Brubeck</dc:creator><pubDate>Sat, 27 Oct 2012 14:47:12 -0000</pubDate></item></channel></rss>