<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>My name is Sean McArthur, I’m a web developer at Mozilla, and enjoy JavaScript, Python, Android, writing and Star Wars.</description><title>seanmonstar</title><generator>Tumblr (3.0; @seanmonstar)</generator><link>http://seanmonstar.com/</link><item><title>Chrome for Android</title><description>&lt;a href="http://chrome.blogspot.com/2012/02/introducing-chrome-for-android.html"&gt;Chrome for Android&lt;/a&gt;: &lt;p&gt;Exciting news for Android. It’s always been a wonder why the stock Browser wasn’t Chrome, and now it is. And it really rocks. The tab interface is fun to use.&lt;/p&gt;

&lt;p&gt;However, since it uses an updated version of the webkit rendering engine, it should need to load that library upon initialization. The standard engine is always in memory, something that’s held back Firefox for Android. Yet, Chrome doesn’t seem to suffer from this.&lt;/p&gt;

&lt;p&gt;Perhaps the mobile Firefox engineers already know, but I can think of 3 possibilities:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;There’s a way to keep the new libraries in memory.&lt;/li&gt;
&lt;li&gt;There’s a way to replace the default engine&lt;/li&gt;
&lt;li&gt;Or they just handle the loading in a better way.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Whichever it is, hopefully mobile Firefox can find a way to improve their loading to be close to equivalent to Chrome’s loading.&lt;/p&gt;</description><link>http://seanmonstar.com/post/17232530088</link><guid>http://seanmonstar.com/post/17232530088</guid><pubDate>Tue, 07 Feb 2012 15:28:35 -0800</pubDate><category>android</category><category>chrome</category><category>firefox</category><category>planet</category><category>mozilla</category></item><item><title>The Invisible Hand of Super Metroid</title><description>&lt;a href="http://www.gamasutra.com/blogs/HugoBille/20120114/9236/The_Invisible_Hand_of_Super_Metroid.php"&gt;The Invisible Hand of Super Metroid&lt;/a&gt;: &lt;p&gt;Hugo Bille’s analysis of how Super Metroid guides a player while the player feels they are discovering things in the chaos on their own:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Watching him, a complete newcomer to the genre, still find his way around Zebes in pretty much the same way I’d do, almost never once getting lost or stuck for any considerable amount of time, made me question how that could be.&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://seanmonstar.com/post/16931476207</link><guid>http://seanmonstar.com/post/16931476207</guid><pubDate>Thu, 02 Feb 2012 12:01:05 -0800</pubDate><category>game design</category><category>metroid</category></item><item><title>A Broadcasting Network</title><description>&lt;a href="http://www.theverge.com/2012/1/31/2760338/twitter-ceo-dick-costolo-broadcasting-social-network?utm_source=dlvr.it&amp;utm_medium=twitter"&gt;A Broadcasting Network&lt;/a&gt;: &lt;p&gt;Dieter Bohn, over at The Verge, describing Twitter’s evolution:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The recent redesign of the Twitter web pages and its official Twitter apps that shuffled Direct Messages off to a corner is essentially a side effect of this basic attitude: Twitter isn’t a messaging company, it’s a broadcasting (social) network.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The thing is, I’ve only ever seen it as a broadcasting network. To me, it’s an extension of my blog. I can write things on Twitter that are short, and perhaps less important, because the barrier and expectation is lower. I never expect to have deep conversations over Twitter.&lt;/p&gt;

&lt;p&gt;As much as Twitter hated the term earlier, they are starting to accept that it is a micro-blogging platform.&lt;/p&gt;</description><link>http://seanmonstar.com/post/16829961021</link><guid>http://seanmonstar.com/post/16829961021</guid><pubDate>Tue, 31 Jan 2012 11:55:47 -0800</pubDate><category>twitter</category></item><item><title>A new direction for web applications</title><description>&lt;a href="http://www.mikealrogers.com/posts/a-new-direction-for-web-applications-.html"&gt;A new direction for web applications&lt;/a&gt;: &lt;p&gt;As &lt;a href="https://twitter.com/seanmonstar/status/161678251796865024"&gt;I said last night&lt;/a&gt;, I don’t see how nodejs is &lt;em&gt;the&lt;/em&gt; solution, by itself, for a web application that talks to many services. I’d still say that MVC is the best solution we have seen so far. Python has great support for long-running async tasks, talking to various databases, and the like.&lt;/p&gt;

&lt;p&gt;That said, I love my JavaScript. Here’s where I see nodejs being a win: writing JavaScript on both sides of the stack feels great, and it gains small amounts of CPU time by making file I/O asynchronous. For other long-lasting tasks, such as resizing an image, you still need to set up a task in a queue for other CPUs to crunch.&lt;/p&gt;</description><link>http://seanmonstar.com/post/16419650738</link><guid>http://seanmonstar.com/post/16419650738</guid><pubDate>Tue, 24 Jan 2012 12:10:18 -0800</pubDate><category>javascript</category><category>node</category><category>programming</category><category>planet</category></item><item><title>Cross Device Jabbering</title><description>&lt;p&gt;People love to talk to each other. Especially when they’re friends. People do so every day across SMS, Facebook, and GTalk. It would be better for everyone if companies worked together to let everyone communicate with their friends in an easier fashion. It’d be easier than you might think.&lt;/p&gt;

&lt;p&gt;GTalk comes as part of Google’s suite of apps by default on Android phones, so everyone who has one has an account. Plus, everyone who has a GMail account, is also signed up to use GTalk. Google+ Chat recently uses GTalk in the webapp, but the mobile version is some other service that can’t chat with people on a desktop computer.&lt;/p&gt;

&lt;p&gt;iPhones, iPod Touches, and iPads sold now come with iMessage, which intelligently blends SMS with a chat-like service. The way it &lt;a href="http://apple.stackexchange.com/a/27317"&gt;manages to decide which service to use&lt;/a&gt; is the model that all these companies should use for what I describe below.&lt;/p&gt;

&lt;p&gt;Even if your friends don’t have smartphones, many have a Facebook account, and use it all day long. Facebook released an app, Messenger, that does similar things as iMessage, where it tries to use its Chat service to talk to your friends before reverting to SMS.&lt;/p&gt;

&lt;p&gt;GTalk and Facebook Chat already use the Jabber protocol (or &lt;a href="http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol"&gt;XMPP&lt;/a&gt;) to communicate.
There’s reasons to believe that iMessage could be close to &lt;a href="http://www.theverge.com/2011/11/17/2569612/ios-5-code-aim-jabber-chat"&gt;supporting the Jabber protocol&lt;/a&gt;. iMessage and Facebook Messenger already intelligently pick which service to use. These 3 companies could work individually to allow their application to try to guess, based on contact information you already have of the user, if they can be reached through the Jabber protocol on one of the other services. This would cut down tremendously on the need for SMS, as well as alleviate the need for a user to have to remember the best way to contact one of their friends. &lt;a href="http://seanmonstar.com/post/4726891078/universal-communicator"&gt;The computers should figure this stuff out for us!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I understand the desire for lock-in&lt;sup id="fnref:p16361991702-1"&gt;&lt;a href="#fn:p16361991702-1" rel="footnote"&gt;1&lt;/a&gt;&lt;/sup&gt;, but at this point, each service is so big, it would be better to improve communication between them, and compete on other features. Each company needs to admit that they aren’t going to have &lt;em&gt;all&lt;/em&gt; the users, and so it would actually make their service better if it included our friends on other services.&lt;/p&gt;

&lt;div class="footnotes"&gt;
&lt;hr&gt;&lt;ol&gt;&lt;li id="fn:p16361991702-1"&gt;
&lt;p&gt;Is there anything here with saying Facebook Chat is using it’s social network advantage to require people to only contact Facebook friends through Chat? Sounds ridiculous, right? It also sounds a lot like the complaint over &lt;a href="http://seanmonstar.com/post/15645202427/antitrust"&gt;Search Plus Your World&lt;/a&gt;. &lt;a href="#fnref:p16361991702-1" rev="footnote"&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;

&lt;/ol&gt;&lt;/div&gt;</description><link>http://seanmonstar.com/post/16361991702</link><guid>http://seanmonstar.com/post/16361991702</guid><pubDate>Mon, 23 Jan 2012 12:17:42 -0800</pubDate><category>android</category><category>ios</category><category>jabber</category><category>chat</category><category>im</category><category>communication</category></item><item><title>AMD is Not the Answer</title><description>&lt;a href="http://tomdale.net/2012/01/amd-is-not-the-answer/"&gt;AMD is Not the Answer&lt;/a&gt;: &lt;p&gt;Tom Dale, reiterating why &lt;a href="http://tomdale.net/2012/01/amd-is-not-the-answer/"&gt;AMD is the wrong solution&lt;/a&gt; for JavaScript applications:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;In my opinion, having to write this out for every file sucks.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;If build tools are required anyway, a much simpler solution should fit most developers’ needs.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="http://seanmonstar.com/post/11670322838/javascript-module-syntaxes"&gt;The end.&lt;/a&gt;&lt;/p&gt;</description><link>http://seanmonstar.com/post/16021199912</link><guid>http://seanmonstar.com/post/16021199912</guid><pubDate>Tue, 17 Jan 2012 13:00:05 -0800</pubDate><category>javascript</category><category>programming</category><category>amd</category><category>planet</category></item><item><title>Antitrust+?</title><description>&lt;a href="http://parislemon.com/post/15627530949/antitrust"&gt;Antitrust+?&lt;/a&gt;: &lt;p&gt;&lt;a href="http://parislemon.com/post/15627530949/antitrust"&gt;MG Siegler&lt;/a&gt;, regarding &lt;a href="http://searchengineland.com/googles-results-get-more-personal-with-search-plus-your-world-107285"&gt;Google’s comments&lt;/a&gt; that other social networks haven’t shared their data for indexing:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Those other companies can argue that it’s not in their best business interest to open that data. In effect, Google would be forcing them to hurt their business if they were to open the data up.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So, essentially, the “other companies”, such as Twitter and Facebook, will claim it’s not fair that Google can show data from Google+ and not Facebook, when Facebook doesn’t &lt;em&gt;want&lt;/em&gt; to share its own data?&lt;/p&gt;</description><link>http://seanmonstar.com/post/15645202427</link><guid>http://seanmonstar.com/post/15645202427</guid><pubDate>Tue, 10 Jan 2012 16:56:14 -0800</pubDate><category>google</category><category>search</category></item><item><title>Personalizing Search</title><description>&lt;a href="http://googleblog.blogspot.com/2012/01/search-plus-your-world.html"&gt;Personalizing Search&lt;/a&gt;: &lt;p&gt;Personally, this really excites me. Google has always been useful for un-biased information, but when you wanted to know if a movie was good, or where to eat, you got a bunch of strangers opinions. We all know a friend’s opinion trumps 1,000 strangers.&lt;/p&gt;

&lt;p&gt;I hope it will eventually be like this: I want some some good Mexican. Oh look, John and Kevin both recommend La Cantina.&lt;sup id="fnref:p15637589516-1"&gt;&lt;a href="#fn:p15637589516-1" rel="footnote"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;

&lt;div class="footnotes"&gt;
&lt;hr&gt;&lt;ol&gt;&lt;li id="fn:p15637589516-1"&gt;
&lt;p&gt;The algorithm could analyze places that I already like, find my friends that also like those places, and see where else they enjoyed in the same category. &lt;a href="#fnref:p15637589516-1" rev="footnote"&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;

&lt;/ol&gt;&lt;/div&gt;</description><link>http://seanmonstar.com/post/15637589516</link><guid>http://seanmonstar.com/post/15637589516</guid><pubDate>Tue, 10 Jan 2012 14:40:14 -0800</pubDate><category>search</category><category>google</category></item><item><title>Samsung Will Not Upgrade Galaxy S Phones</title><description>&lt;a href="http://www.businessinsider.com/samsung-will-not-upgrade-galaxy-s-phones-2012-1"&gt;Samsung Will Not Upgrade Galaxy S Phones&lt;/a&gt;: &lt;p&gt;Samsung, regarding upgrading the Galaxy S software to Android 4:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;A full update to Android 4.0 Ice Cream Sandwich for the GALAXY Tab(7-inch) and GALAXY S is not practicable due to hardware limitations.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This, as the Nexus S (which is the same internal hardware) is running Android 4 right now.&lt;/p&gt;

&lt;p&gt;If an OEM were to release less phones a year, but provide excellent support for them for more than a year&lt;sup id="fnref:p15584706088-1"&gt;&lt;a href="#fn:p15584706088-1" rel="footnote"&gt;1&lt;/a&gt;&lt;/sup&gt;, I could strongly recommend to my friends to only buy from them. But I can’t recommend Samsung, since they don’t.&lt;/p&gt;

&lt;p&gt;I can only recommend &lt;a href="http://google.com/nexus"&gt;Google’s Nexus&lt;/a&gt; brand, now.&lt;/p&gt;

&lt;div class="footnotes"&gt;
&lt;hr&gt;&lt;ol&gt;&lt;li id="fn:p15584706088-1"&gt;
&lt;p&gt;Heck, most OEMs hardly support their devices for more than a month. &lt;a href="#fnref:p15584706088-1" rev="footnote"&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;

&lt;/ol&gt;&lt;/div&gt;</description><link>http://seanmonstar.com/post/15584706088</link><guid>http://seanmonstar.com/post/15584706088</guid><pubDate>Mon, 09 Jan 2012 14:26:00 -0800</pubDate><category>samsung</category><category>google</category><category>android</category><category>galaxy s</category><category>tech</category></item><item><title>"Dreamweaver was attempting to be helpful, but the moment it reformatted my code, I threw a fit. YOU..."</title><description>“Dreamweaver was attempting to be helpful, but the moment it reformatted my code, I threw a fit. YOU TOUCHED MY CODE. Dreamweaver never recovered from that horrendous first impression.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://www.randsinrepose.com/archives/2009/11/02/the_foamy_rules_for_rabid_tools.html"&gt;Michael Lopp&lt;/a&gt;&lt;/em&gt;</description><link>http://seanmonstar.com/post/15370067116</link><guid>http://seanmonstar.com/post/15370067116</guid><pubDate>Thu, 05 Jan 2012 16:20:41 -0800</pubDate><category>dreamweaver</category><category>programming</category></item><item><title>"Few outside the technological field even knew his name, yet his work has impacted every person who..."</title><description>“Few outside the technological field even knew his name, yet his work has impacted every person who has ever touched an electronic device. And I mean that quite literally.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://caffeinatedinoc.blogspot.com/2011/12/passing-of-legend.html"&gt;Gene Yuh&lt;/a&gt; on the death of Dennis Ritchie.&lt;/em&gt;</description><link>http://seanmonstar.com/post/14946327598</link><guid>http://seanmonstar.com/post/14946327598</guid><pubDate>Wed, 28 Dec 2011 17:05:41 -0800</pubDate><category>unix</category><category>c</category><category>dennis ritchie</category><category>tech</category></item><item><title>Or: Competition is Good</title><description>&lt;a href="http://daringfireball.net/linked/2011/12/19/flip-side"&gt;Or: Competition is Good&lt;/a&gt;: &lt;p&gt;John Gruber on the &lt;a href="http://daringfireball.net/linked/2011/12/19/flip-side"&gt;threat of Google&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;A different perspective would be that Google is the bigger threat, and that using Apple products is a way to better protect our privacy and personal information.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This was in response to Dave Winer suggesting &lt;a href="http://scripting.com/stories/2011/12/12/whyIUseAndroid.html#p11385"&gt;why he uses Android&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;If there is no alternative to iOS then Apple will have exclusive control over what makes it to market. That is a future none of us should want to live in.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I agree that both threats are very real. Which is why I hope neither wins, but that they continue to compete, forcing each other to be less evil.&lt;/p&gt;</description><link>http://seanmonstar.com/post/14521626446</link><guid>http://seanmonstar.com/post/14521626446</guid><pubDate>Tue, 20 Dec 2011 12:00:06 -0800</pubDate><category>android</category><category>ios</category><category>iphone</category><category>tech</category><category>competition</category></item><item><title>The Old Republic</title><description>&lt;a href="http://swtor.com"&gt;The Old Republic&lt;/a&gt;: &lt;p&gt;&lt;a href="http://www.amazon.com/gp/product/B001CWXAP2/?tag=seanmonstar-20"&gt;Star Wars: The Old Republic launches next week&lt;/a&gt;, and I’ve long looked forward to this game. I know what I’ll be doing as the year ends.&lt;/p&gt;</description><link>http://seanmonstar.com/post/14189424965</link><guid>http://seanmonstar.com/post/14189424965</guid><pubDate>Tue, 13 Dec 2011 16:25:12 -0800</pubDate><category>games</category><category>starwars</category><category>swtor</category></item><item><title>Ghostery</title><description>&lt;a href="http://www.ghostery.com/"&gt;Ghostery&lt;/a&gt;: &lt;p&gt;I was slowly working on an &lt;a href="https://builder.addons.mozilla.org/addon/1016653/latest/"&gt;add-on to block social buttons&lt;/a&gt; on websites, but I recently just found &lt;a href="http://www.ghostery.com/"&gt;Ghostery&lt;/a&gt;. They have an extension for Chrome and Firefox, and it rocks.&lt;/p&gt;</description><link>http://seanmonstar.com/post/13984762087</link><guid>http://seanmonstar.com/post/13984762087</guid><pubDate>Fri, 09 Dec 2011 14:37:46 -0800</pubDate><category>extension</category><category>add-on</category><category>anti-social</category><category>chrome</category><category>firefox</category></item><item><title>Widgets the Right Way</title><description>&lt;a href="http://24ways.org/2011/defending-the-perimeter-against-web-widgets"&gt;Widgets the Right Way&lt;/a&gt;: &lt;p&gt;A lot of sites are using widgets more, be it for ads, or these terrible social buttons that have emerged. Besides not wanting to spend time downloading the social buttons that I won’t use, what I hate the most is that they all have this in common: If they lag, they stall the rest of the page.&lt;/p&gt;

&lt;p&gt;That’s because they &lt;code&gt;document.write&lt;/code&gt; their contents into the page, which prevents all further rendering until they’ve loaded. Don’t do that. Read this from Rich Thornett about how to make your widgets suck less.&lt;/p&gt;</description><link>http://seanmonstar.com/post/13807757815</link><guid>http://seanmonstar.com/post/13807757815</guid><pubDate>Mon, 05 Dec 2011 18:21:03 -0800</pubDate><category>widgets</category><category>javascript</category><category>html</category><category>social buttons</category></item><item><title>Asynchronous UIs</title><description>&lt;a href="http://alexmaccaw.co.uk/posts/async_ui"&gt;Asynchronous UIs&lt;/a&gt;: &lt;p&gt;A great post by Alex McCaw, creator of the &lt;a href="https://github.com/maccman/spine"&gt;Spine&lt;/a&gt; MVC JavaScript&lt;sup id="fnref:p13564996626-1"&gt;&lt;a href="#fn:p13564996626-1" rel="footnote"&gt;1&lt;/a&gt;&lt;/sup&gt; framework, about how front-end developers do Ajax interactions wrong. Users shouldn’t be stopped because we’re waiting on the server to respond. The interface should respond immediately, and a background sync action should be kicked off.&lt;/p&gt;

&lt;p&gt;I’ve been thinking about this for the past year, and wanted to reflect these ideas in &lt;a href="https://github.com/seanmonstar/Shipyard"&gt;Shipyard&lt;/a&gt;, and make them come alive in the Add-on Builder, myself.&lt;/p&gt;

&lt;div class="footnotes"&gt;
&lt;hr&gt;&lt;ol&gt;&lt;li id="fn:p13564996626-1"&gt;
&lt;p&gt;I refuse to use CoffeeScript, so it’s off limits to me. &lt;a href="#fnref:p13564996626-1" rev="footnote"&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;

&lt;/ol&gt;&lt;/div&gt;</description><link>http://seanmonstar.com/post/13564996626</link><guid>http://seanmonstar.com/post/13564996626</guid><pubDate>Wed, 30 Nov 2011 16:11:14 -0800</pubDate><category>javascript</category><category>mvc</category><category>ui</category><category>ajax</category><category>programming</category></item><item><title>Past Month of Shipyard</title><description>&lt;p&gt;Last month I got to start working on &lt;a href="https://github.com/seanmonstar/Shipyard"&gt;Shipyard&lt;/a&gt; almost full-time, as I need it to make &lt;a href="https://builder.addons.mozilla.org"&gt;Add-on Builder&lt;/a&gt; work by the end of the quarter. I’m not ready to call Shipyard 1.0 until I’m confident with the API for Models, Controllers, and Views. Models are largely done, Views need some work, and &lt;a href="https://github.com/seanmonstar/Shipyard/issues/1"&gt;Controllers need a start&lt;/a&gt;. Besides that, though, what has happened to Shipyard in the past month?&lt;/p&gt;

&lt;p&gt;Here follows a changelog-ish list.&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Animations

&lt;ul&gt;&lt;li&gt;A merge between MooTools’ Fx.Tween and Fx.Morph classes&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Events

&lt;ul&gt;&lt;li&gt;&lt;code&gt;addListener&lt;/code&gt; returns a Listener object with &lt;code&gt;attach&lt;/code&gt; and &lt;code&gt;detach&lt;/code&gt; methods.&lt;/li&gt;
&lt;li&gt;support for &lt;code&gt;once&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;legacy API

&lt;ul&gt;&lt;li&gt;official API for EventEmitters is &lt;code&gt;addListener&lt;/code&gt;, &lt;code&gt;removeListener&lt;/code&gt;, and &lt;code&gt;emit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;previous methods will soon log a DeprecationWarning, before being removed by 1.0&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;New utils

&lt;ul&gt;&lt;li&gt;Logger

&lt;ul&gt;&lt;li&gt;Makes the console more familiar for Python users&lt;/li&gt;
&lt;li&gt;Doesn’t error if there is no console available&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Cookie

&lt;ul&gt;&lt;li&gt;Thanks to MooTools&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Color

&lt;ul&gt;&lt;li&gt;Thanks to MooTools&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;DOMEvent

&lt;ul&gt;&lt;li&gt;Thanks to MooTools&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Env

&lt;ul&gt;&lt;li&gt;provides &lt;code&gt;browser&lt;/code&gt; and &lt;code&gt;platform&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;A briefer test runner

&lt;ul&gt;&lt;li&gt;Only prints dots for successes, F for failures, and prints errors at the end&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;If commit lists are more your thing, you can &lt;a href="https://github.com/seanmonstar/Shipyard/compare/14ed52f...ab0f4bd7"&gt;look to GitHub&lt;/a&gt;. The next month should see event delegation, and more work on the &lt;a href="https://github.com/seanmonstar/Shipyard/issues/2"&gt;View/template system&lt;/a&gt;.&lt;/p&gt;</description><link>http://seanmonstar.com/post/13120286940</link><guid>http://seanmonstar.com/post/13120286940</guid><pubDate>Mon, 21 Nov 2011 11:45:32 -0800</pubDate><category>javascript</category><category>mvc</category><category>shipyard</category><category>planet</category><category>mozilla</category></item><item><title>The difference between Chrome and Firefox</title><description>&lt;a href="http://adblockplus.org/blog/google-chrome-and-pre-installed-web-apps"&gt;The difference between Chrome and Firefox&lt;/a&gt;: &lt;p&gt;When people ask me why they should use Chrome or Firefox, I tell them that feature-wise they’re pretty competitive. This sums up the difference greatly:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;This is a Google product and it has to benefit Google. It isn’t merely about making the web better, it is also about promoting Google products and giving them an advantage over competing services. […] Even if it requires violating your privacy.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Firefox wants the web to be better, and Chrome wants Google to be better.&lt;/p&gt;</description><link>http://seanmonstar.com/post/13113614765</link><guid>http://seanmonstar.com/post/13113614765</guid><pubDate>Mon, 21 Nov 2011 08:10:00 -0800</pubDate><category>browsers</category><category>chrome</category><category>firefox</category><category>google</category><category>mozilla</category><category>planet</category><category>tech</category></item><item><title>Galaxy Nexus on The Verge</title><description>&lt;a href="http://www.theverge.com/2011/11/17/2568348/galaxy-nexus-review"&gt;Galaxy Nexus on The Verge&lt;/a&gt;: &lt;p&gt;Joshua Topolsky about Ice Cream Sandwich:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I want to note that moving around all of these screens is buttery smooth. There’s no lag, no stutter. Animations are fluid, and everything feels cohesive and solid. It’s like Ice Cream Sandwich is more “there” than previous versions of Android.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I’m very excited for this new version. However, as neat as the Galaxy Nexus seems, why does it have to be almost 5-inches? I want something to fit in my pocket, not a sad attempt of tablet.&lt;/p&gt;</description><link>http://seanmonstar.com/post/12972652815</link><guid>http://seanmonstar.com/post/12972652815</guid><pubDate>Fri, 18 Nov 2011 09:42:16 -0800</pubDate><category>android</category><category>galaxy nexus</category><category>ice cream sandwich</category></item><item><title>var that = this</title><description>&lt;p&gt;I used to think say you should use &lt;code&gt;that&lt;/code&gt; in the question “What variable should I name &lt;code&gt;this&lt;/code&gt; for closures?” This was because &lt;code&gt;self&lt;/code&gt; is already a variable that points to &lt;code&gt;window&lt;/code&gt;. However, I’ve since &lt;a href="https://plus.google.com/117864091849261637847/posts/eB94v35EtEy"&gt;revised my opinion&lt;/a&gt; on what is a good variable name in this case.&lt;/p&gt;

&lt;p&gt;I now find &lt;code&gt;that&lt;/code&gt; and &lt;code&gt;self&lt;/code&gt; to be too vague.&lt;/p&gt;

&lt;p&gt;Instead, I think the variable should be named after the Class that you are currently coding in. As always, it’s easier to explain with code:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;var PackageController = new Class({

    doSomething: function() {
        var controller = this;

        someEl.addEvent('click', function(e) {
            controller.react();
        });
    }

});
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The reason is because once you start delving a couple nested functions deep&lt;sup id="fnref:p12521817761-1"&gt;&lt;a href="#fn:p12521817761-1" rel="footnote"&gt;1&lt;/a&gt;&lt;/sup&gt;, I find myself sometimes wondering if I bound &lt;code&gt;that&lt;/code&gt; to the value I wanted. This way leaves little to wonder about. And since you read code far more than you write it, best to write the most readable code you can.&lt;/p&gt;

&lt;div class="footnotes"&gt;
&lt;hr&gt;&lt;ol&gt;&lt;li id="fn:p12521817761-1"&gt;
&lt;p&gt;I know, some of that can be solved by moving the functions to named methods on other objects, but you’d be lying if you said you never happened to have a function for a &lt;code&gt;.forEach&lt;/code&gt; loop, and then another inside for an &lt;code&gt;.addEvent&lt;/code&gt;, or something similar. &lt;a href="#fnref:p12521817761-1" rev="footnote"&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;

&lt;/ol&gt;&lt;/div&gt;</description><link>http://seanmonstar.com/post/12521817761</link><guid>http://seanmonstar.com/post/12521817761</guid><pubDate>Tue, 08 Nov 2011 12:00:05 -0800</pubDate><category>javascript</category><category>programming</category><category>opinion</category><category>planet</category><category>closures</category></item></channel></rss>

