<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Coffee on the Keyboard</title>
	<atom:link href="http://coffeeonthekeyboard.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://coffeeonthekeyboard.com</link>
	<description>by James Socol</description>
	<lastBuildDate>Mon, 20 Feb 2012 00:06:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/>		<item>
		<title>Better</title>
		<link>http://coffeeonthekeyboard.com/better-632/</link>
		<comments>http://coffeeonthekeyboard.com/better-632/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 00:06:31 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Articles]]></category>

		<guid isPermaLink="false">http://coffeeonthekeyboard.com/?p=632</guid>
		<description><![CDATA[A week or so ago, I needed to say that I wasn&#8217;t OK. Thanks to everyone who offered support and kind words, and especially my cousin Jono who drank beer and talked about Star Wars and other things that don&#8217;t matter at all. That all helped. So did saying I wasn&#8217;t OK. I still think [...]]]></description>
			<content:encoded><![CDATA[<p>A week or so ago, I needed to say that <a title="Not OK" href="http://coffeeonthekeyboard.com/not-ok-627/">I wasn&#8217;t OK</a>. Thanks to everyone who offered support and kind words, and especially my cousin Jono who drank beer and talked about Star Wars and other things that don&#8217;t matter at all. That all helped.</p>
<p>So did saying I wasn&#8217;t OK. I still think that needs to be acceptable. People need to know it&#8217;s OK to feel bad and need help or a hug or whatever.</p>
<p>I was reading about the <a href="http://en.wikipedia.org/wiki/Online_disinhibition_effect">online disinhibition effect</a> (the polite name for the <a href="http://www.penny-arcade.com/comic/2004/03/19">Greater Internet Fuckwad Theory</a>) and two things struck me.</p>
<ul>
<li>&#8220;Solipsistic introjection&#8221; may win the title for scientific-term-furthest-from-lay-term, which would be &#8220;It&#8217;s all in my head.&#8221;</li>
<li>Many of the same things that enable GIFT behavior (in particular solipsistic introjection and asynchronicity) give writing on a blog a great opportunity for emotional catharsis.</li>
</ul>
<p>If I write in a diary or journal, I know exactly who my audience is: no one, ever. Text goes in and even I don&#8217;t read it again.</p>
<p>But if I write on this blog, the audience is entirely unknown. It might be just me, or a hundred people, or whatever, in my head, I really need it to be. Since it&#8217;s asynchronous, there&#8217;s no expectation of a response, anyway, so it&#8217;s easy to unconsciously make everything work out.</p>
<p>And saying I wasn&#8217;t OK helped. So I hope that saying things are better will also help.</p>
<p>Not fantastic, rainbow and sparkle wonderful, but better. This is a challenging quarter, but a few things on my plate have sorted themselves—I sorted some of them, and I should take credit for and pride in that—one way or another. I&#8217;m taking this upcoming week off to decompress, relax, and charge my batteries for the rest of it. This will be a &#8220;take care of myself&#8221; week.</p>
<p>The past few weeks has made me realize that my anxiety is back, and has been for a while. I mentioned panic attacks: they were bad, near daily, toward the end of college. It&#8217;s not nearly that bad right now, but I&#8217;d like to change direction before it gets there. It puts an unpleasant edge, a tenseness on everything.</p>
<p>I got a recommendation for a shrink, making that appointment is part of take-care-of-myself-week.</p>
<p>The trajectory is good. Things are settling down and I feel way better than the other day—that was a particularly tough day and a real nadir. Not as good as I think I&#8217;d like to, though, so it&#8217;s time to be proactive about staying on a path toward better.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeeonthekeyboard.com/better-632/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Not OK</title>
		<link>http://coffeeonthekeyboard.com/not-ok-627/</link>
		<comments>http://coffeeonthekeyboard.com/not-ok-627/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 23:33:42 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Articles]]></category>

		<guid isPermaLink="false">http://coffeeonthekeyboard.com/?p=627</guid>
		<description><![CDATA[I&#8217;m not doing OK right now. Why is that so hard to admit? It&#8217;s nothing big, it&#8217;s just a hundred small things and they all happened at the same time and it feels like I can&#8217;t win right now. It feels like if 12 hours could go by without something getting a wrench stuck in [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not doing OK right now.</p>
<p>Why is that so hard to admit?</p>
<p>It&#8217;s nothing big, it&#8217;s just a hundred small things and they all happened at the same time and it feels like I can&#8217;t win right now. It feels like if 12 hours could go by without something getting a wrench stuck in it, that would count as a victory right now. It feels like I&#8217;m losing Tetris: there&#8217;s just not enough time to figure out what to do and the wrong piece is on deck.</p>
<p>I had a panic attack this morning. I haven&#8217;t had one of those in years.</p>
<p>But you can&#8217;t just <em>say</em>, &#8220;I&#8217;m not doing OK.&#8221; On Twitter it&#8217;s an emotweet. On Facebook it&#8217;s the sort of thing that gets posted to reddit as being ridiculous. It&#8217;s First World Problems. It&#8217;s whining. Everyone else has problems, too. Men don&#8217;t whine about it, they just get it done.</p>
<p>I don&#8217;t need advice, and I don&#8217;t even necessarily need help. I think if I had an emotional reset button I could start over and handle everything.</p>
<p>I really just want a hug and someone to listen and tell me it will be OK.</p>
<p>There aren&#8217;t a lot of places you can say &#8220;I&#8217;m not doing OK.&#8221; But this is my blog, and I can say whatever I damn well please.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeeonthekeyboard.com/not-ok-627/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Performance is a Feature</title>
		<link>http://coffeeonthekeyboard.com/performance-is-a-feature-623/</link>
		<comments>http://coffeeonthekeyboard.com/performance-is-a-feature-623/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 16:00:05 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://coffeeonthekeyboard.com/?p=623</guid>
		<description><![CDATA[What do I mean when I say &#8220;performance  is a feature?&#8221; For a long time, I got this wrong. When I explained myself, I&#8217;d say that performance was as important as any other feature and worth spending as much time on as any other feature, and you shouldn&#8217;t trade it lightly, like you wouldn&#8217;t trade [...]]]></description>
			<content:encoded><![CDATA[<p>What do I mean when I say &#8220;<em>performance  is a feature</em>?&#8221;</p>
<p>For a long time, I got this wrong. When I explained myself, I&#8217;d say that performance was as important as any other feature and worth spending as much time on as any other feature, and you shouldn&#8217;t trade it lightly, like you wouldn&#8217;t trade any other feature lightly.</p>
<p>The thing is, especially on a small team, you might not come back to any particular feature for a few months. So, would this mean you only come back to performance every few months?</p>
<p>Thanks to <a href="https://twitter.com/mikebrittain">Mike Brittain</a> at <a href="http://codeascraft.etsy.com/">Etsy</a>, I&#8217;ve figured out just how wrong I was.</p>
<p><em>Performance is a feature</em>, and just like any other feature, it must be <em>continuously monitored and tested</em>. What happens when a test breaks or a regression is found in any other feature? Regressions are usually considered top-priority bugs. The same must be true for performance regressions. Just because your small development team isn&#8217;t focusing on a particular feature at the moment doesn&#8217;t mean it&#8217;s OK to break it.</p>
<p>Performance testing isn&#8217;t exactly like most feature testing, but that doesn&#8217;t matter. One of my favorite statements from a QA lead boiled down to &#8220;don&#8217;t get hung up on the tool, focus on what you&#8217;re assuring.&#8221; Use the tools—like <a href="https://github.com/jsocol/pystatsd">graphs</a>, external and <a href="https://github.com/andymckay/django-statsd">on-site performance monitoring</a>—you need to use to make sure performance doesn&#8217;t regress.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeeonthekeyboard.com/performance-is-a-feature-623/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Thank You, Steve</title>
		<link>http://coffeeonthekeyboard.com/thank-you-steve-614/</link>
		<comments>http://coffeeonthekeyboard.com/thank-you-steve-614/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 05:17:12 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://coffeeonthekeyboard.com/?p=614</guid>
		<description><![CDATA[Thank you, Steve. I didn&#8217;t really realize until today exactly what I owe to Steve Jobs&#8217; vision and dedication. So much of my life and career has been influenced and guided by an interest in screwing about with computers that goes back to the first Mac Plus I had—with its whole 1 megabyte of RAM [...]]]></description>
			<content:encoded><![CDATA[<p>Thank you, <a href="http://www.apple.com/stevejobs/">Steve</a>.</p>
<p>I didn&#8217;t really realize until today exactly what I owe to Steve Jobs&#8217; vision and dedication. So much of my life and career has been influenced and guided by an interest in screwing about with computers that goes back to the first Mac Plus I had—with its whole 1 megabyte of RAM and 40-megabyte SCSI hard drive—and my dad&#8217;s Macintosh II at work.</p>
<p>It&#8217;s a long, meandering story and probably not terribly interesting, but it really starts in 1993 or so, with Macintosh, and leads inexorably to my entire life now.</p>
<p>Thank you, Steve.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeeonthekeyboard.com/thank-you-steve-614/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>So You Want Me to Hire You</title>
		<link>http://coffeeonthekeyboard.com/so-you-want-me-to-hire-you-606/</link>
		<comments>http://coffeeonthekeyboard.com/so-you-want-me-to-hire-you-606/#comments</comments>
		<pubDate>Tue, 23 Aug 2011 14:00:54 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[hiring]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://coffeeonthekeyboard.com/?p=606</guid>
		<description><![CDATA[I vacillated quite a bit on the title of this post. It is, after all, not me that is hiring you. Nor do I have the power to hire folks at will: it&#8217;s a team decision. But I also don&#8217;t want to claim to speak for anyone else, least of all for Mozilla—my excellent employer [...]]]></description>
			<content:encoded><![CDATA[<p>I vacillated quite a bit on the title of this post. It is, after all, not <em>me</em> that is hiring you. Nor do I have the power to hire folks at will: it&#8217;s a team decision. But I also don&#8217;t want to claim to speak for anyone else, least of all for Mozilla—my excellent employer and we are, indeed, <strong><a href="http://www.mozilla.com/careers">hiring</a></strong>—since this is really just the things that I know matter to me.</p>
<p>I suspect they matter to a lot of people.</p>
<p>Since I&#8217;ve been doing a lot of interviews lately, I&#8217;ve been thinking about how candidates can help themselves, the things that I need to know, and how someone starts themselves off on the right foot.</p>
<ul>
<li><strong>Have a resume or CV.</strong> I know it feels archaic and yes, <a href="https://github.com">Github</a> weighs more in my decision-making, but there&#8217;s a reason these documents have existed for so long: I need to know <strong>where you&#8217;ve worked</strong> and <strong>what your job was</strong>. This stuff matters. You don&#8217;t even need the fancy PDF (please, no .doc or .docx, though .rtf is fine) just have a thorough, up-to-date LinkedIn account. And put in details! Brag! What were your roles, your responsibilities? What new processes or tools did you introduce and how did they help? <strong>How did you kick ass?</strong></li>
<li><strong>Have a Github account</strong>. I will accept <a href="https://bitbucket.org/">BitBucket</a>, but the UI isn&#8217;t as nice. (Also, I use git, we use git. Learning git is a good idea.) Put <strong>your website on Github</strong>. No one is going to steal your personal site and make millions, and it gives me some guaranteed code to browse. But way more importantly&#8230;</li>
<li><strong>Contribute to open source projects!</strong> This isn&#8217;t just &#8220;Mozilla likes Open Source,&#8221; though we do (and I do). This is about <strong>code samples</strong>. Often when we have to ask for code samples, we get contrived projects that don&#8217;t solve any real problems. Contributions to real projects <strong>show me how you write real code</strong> and, at the same time, <strong>how you work with others</strong>. Open source projects are communities, teams. Do you communicate well in pull requests or bugs? Do you revise patches based on feedback? Or, as a maintainer, how do you treat contributions from others?</li>
<li><strong>Have a blog</strong>. The cool thing is that<strong> I don&#8217;t even care if you write about code</strong>. In fact, I&#8217;d love to see that you write about other interests! But because it&#8217;s another website (I am looking for web developers, after all) and it&#8217;s yet another form of communication for me to think about. This is especially if you know you get nervous and don&#8217;t interview well.</li>
</ul>
<p>And that&#8217;s it! Well, OK, that&#8217;s not really it, not even close. But these are mechanical things, things that are easy to do, for various values of &#8220;easy.&#8221; <strong>I notice the absence</strong> of these things<em>.</em></p>
<p>Obviously there&#8217;s a lot more involved, but this is basic information that helps me, and helps me <strong>before we even talk</strong>. That&#8217;s a great place to start an interview.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeeonthekeyboard.com/so-you-want-me-to-hire-you-606/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Acronyms you should know: MTTD and MTTR</title>
		<link>http://coffeeonthekeyboard.com/acronyms-you-should-know-mttd-and-mttr-597/</link>
		<comments>http://coffeeonthekeyboard.com/acronyms-you-should-know-mttd-and-mttr-597/#comments</comments>
		<pubDate>Tue, 10 May 2011 19:32:47 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[continuous deployment]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[sumo]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://coffeeonthekeyboard.com/?p=597</guid>
		<description><![CDATA[If you&#8217;re a SUMO contributor, there are two acronyms you will start to hear more often from us developers: MTTD and MTTR. They mean &#8220;mean time to detect&#8221; and &#8220;mean time to resolve,&#8221; respectively, and they refer to how long it takes to detect an issue in production, and how long it takes to resolve that [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re a <a href="https://support.mozilla.com/">SUMO</a> contributor, there are two acronyms you will start to hear more often from us developers: <strong>MTTD</strong> and <strong>MTTR</strong>.</p>
<p>They mean &#8220;<strong>mean time to detect</strong>&#8221; and &#8220;<strong>mean time to resolve</strong>,&#8221; respectively, and they refer to how long it takes to <strong>detect</strong> an issue in production, and how long it takes to <strong>resolve</strong> that issue once it&#8217;s detected.</p>
<p>As we move toward <strong><a href="http://coffeeonthekeyboard.com/the-future-of-sumo-development-511/">continuous deployment</a></strong>, these are two of the metrics we&#8217;ll be using to gauge the effectiveness of our tools and processes.</p>
<p>For major production issues, <strong>our MTTR is actually fairly good</strong> right now—if it&#8217;s something that cannot wait until the next scheduled release, it takes us 60-90 minutes from becoming aware of an issue to pushing a fix. I think we can do better with better release processes, but we&#8217;re starting off pretty good and going to <strong>get better</strong>, which is great.</p>
<p>Our <strong>MTTD</strong>, on the other hand, needs work. <a href="http://moxie.jamessocol.com/bugstats/sumo/2.8.1">SUMO 2.8.1</a> upgraded <a href="http://www.djangoproject.com/">Django</a> and included a sweeping change to our CSRF protection—this necessarily affected every form on the site. We discovered three related issues that warranted immediate hotfixes, but we didn&#8217;t discover two of them for <strong>almost two days</strong> when our contributors brought them to our attention.</p>
<p>It&#8217;s <strong>great</strong> that our contributors pointed out these issues to us. Our <strong>community is a critical part</strong> of &#8220;detection&#8221; and I want to encourage everyone to point out issues in the <a href="https://support.mozilla.com/forums/contributors">forums</a> or <a href="irc://irc.mozilla.org/sumodev">IRC</a>. It&#8217;s extremely helpful!</p>
<p>But there are things we can do, too, to <strong>notice things faster</strong>. One thing we are working to add is <a href="http://codeascraft.etsy.com/2010/12/08/track-every-release/"><strong>business metric graphs</strong></a>. We have useful data in <a href="http://ganglia.sourceforge.net/">Ganglia</a> right now, but we will be using <a href="http://graphite.wikidot.com/">Graphite</a> and <a href="http://codeascraft.etsy.com/">Etsy</a>&#8216;s <a href="https://github.com/etsy/statsd">StatsD</a> to peer into <strong>what our users are doing</strong>. If we deploy a change and notice that no one is <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=654827">previewing articles</a>, for example, we know immediately that we have an issue and can <strong>start diagnosing and fixing it</strong>.</p>
<p>If you follow SUMO development, you&#8217;ll hear us start using terms like MTTD, MTTR, &#8220;detection,&#8221; more, and talking about how to reduce them. We welcome your input and ideas as we start working on these challenges. And of course, keep telling us when things are broken!</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeeonthekeyboard.com/acronyms-you-should-know-mttd-and-mttr-597/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Say hi to Scottbot</title>
		<link>http://coffeeonthekeyboard.com/say-hi-to-scottbot-594/</link>
		<comments>http://coffeeonthekeyboard.com/say-hi-to-scottbot-594/#comments</comments>
		<pubDate>Thu, 28 Apr 2011 21:21:00 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Articles]]></category>

		<guid isPermaLink="false">http://coffeeonthekeyboard.com/?p=594</guid>
		<description><![CDATA[After talking about it with Fred for a couple of weeks, I sat down this morning and started scottbot, an IRC bot that will learn how to make good &#8220;that&#8217;s what she said&#8221; jokes. It&#8217;s built in Node.js on two libraries by the inimitable Harth Vader, more commonly known as Heather Arthur: nomnom, an excellent [...]]]></description>
			<content:encoded><![CDATA[<p>After talking about it with <a href="http://fredericiana.com/">Fred</a> for a couple of weeks, I sat down this morning and started <a href="https://github.com/jsocol/scottbot">scottbot</a>, an IRC bot that will learn how to make good &#8220;<a href="http://en.wikipedia.org/wiki/Said_the_actress_to_the_bishop#.22That.27s_What_She_Said.22">that&#8217;s what she said</a>&#8221; jokes.</p>
<p>It&#8217;s built in <a href="http://nodejs.org">Node.js</a> on two libraries by the inimitable <a href="http://twitter.com/harthvader">Harth Vader</a>, more commonly known as <a href="https://github.com/harthur/">Heather Arthur</a>: <a href="https://github.com/harthur/nomnomargs">nomnom</a>, an excellent argparse/optparse implementation for node, and <a href="https://github.com/harthur/brain">brain</a>, a machine learning library with neural net and Bayesian classifier support. So thanks, Heather!</p>
<p>I&#8217;m also using a slightly hacked <a href="https://github.com/martynsmith/node-irc">node-irc</a> from Martyn Smith.</p>
<p>Right now it&#8217;s a pretty simple Bayesian method. It&#8217;s been learning all day on <a href="http://irc.mozilla.org/">Moznet</a> and has made one or two pretty-good jokes, and a couple of stinkers. I think it&#8217;s already better than our other TWSS bot.</p>
<p>There&#8217;s plenty of things to do to improve it. I don&#8217;t know a whole lot about machine learning or anything Bayesian beyond what I can recollect from my old stats-for-math-majors class, so if you&#8217;ve got any suggestions, I&#8217;d love to hear them (especially in the form of pull requests)! I want to learn, too.</p>
<p>If you&#8217;ve got node and <a href="http://redis.io/">Redis</a>, you, too, can have your very own scottbot.</p>
<p>Scottbot, and it&#8217;s default IRC nick, &#8220;mscott,&#8221; is named affectionately after <a href="http://www.youtube.com/watch?v=SAAi_42uIkQ">Michael Scott</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeeonthekeyboard.com/say-hi-to-scottbot-594/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pride and Joy: Firefox 4 is Out!</title>
		<link>http://coffeeonthekeyboard.com/pride-and-joy-firefox-4-is-out-589/</link>
		<comments>http://coffeeonthekeyboard.com/pride-and-joy-firefox-4-is-out-589/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 20:03:06 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[damnproud]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://coffeeonthekeyboard.com/?p=589</guid>
		<description><![CDATA[Since it was officially released around 7 hours ago, Firefox 4 has been downloaded nearly 2.4 million times. I feel many things today. I&#8217;m deeply proud and humbled to be a part of the Mozilla community and contribute in my own small way to what I honestly believe is a fantastic product and the best [...]]]></description>
			<content:encoded><![CDATA[<p>Since it was officially released around 7 hours ago, <a href="http://www.mozilla.com/">Firefox 4</a> has been downloaded nearly <a href="http://glow.mozilla.org/">2.4 million times</a>.</p>
<p>I feel many things today. I&#8217;m deeply <strong>proud</strong> and <strong>humbled</strong> to be a part of the <strong>Mozilla community</strong> and contribute in my own small way to what I honestly believe is a fantastic product and the <strong>best choice in web browsers</strong> right now.</p>
<p>I&#8217;m filled with <strong>joy</strong> at seeing a product so many people have worked so hard on finally get released to everyone.</p>
<p>And I&#8217;m a little bit <strong>sad</strong> that I&#8217;m not in Mountain View for the release.</p>
<p>Finally, I&#8217;m <strong>excited</strong>, because just in the time I&#8217;ve been at Mozilla, the <strong>web has gotten so much better</strong>.</p>
<ul>
<li>All the <strong>modern browsers are <a href="http://arewefastyet.com/">fast</a></strong>.</li>
<li>Browsers quickly<strong> <a href="http://blog.mozilla.com/security/2010/08/27/http-strict-transport-security/">getting</a> <a href="http://blog.mozilla.com/security/2010/03/31/plugging-the-css-history-leak/">more</a> <a href="http://engineering.twitter.com/2011/03/improving-browser-security-with-csp.html">secure</a></strong>.</li>
<li>Modern browsers <a href="http://caniuse.com/">are</a> <strong><a href="http://fractal.io/">so</a> <a href="https://demos.mozilla.org/en-US/">much</a> <a href="http://diveintohtml5.org/">more capable</a></strong>.</li>
</ul>
<p>The future of the web is <strong>bright</strong>. There are challenges—not just for Firefox but for the web itself—but I&#8217;m confident we have the <strong>ingenuity</strong> and <strong>passion</strong> to overcome them.</p>
<p>So if you haven&#8217;t tried it yet, go get <a href="http://www.mozilla.com/"><strong>Firefox 4</strong></a>, and <strong>experience a better web</strong>!</p>
<p>Here are my favorite parts:</p>
<ul>
<li>App tabs.</li>
<li>Panorama.</li>
<li>WebGL.</li>
<li>Developer console.</li>
<li>Fast, fast, fast!</li>
<li>Tabs on top.</li>
<li>Switch to Tab.</li>
<li>Sync.</li>
<li>Restartless Add-ons.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://coffeeonthekeyboard.com/pride-and-joy-firefox-4-is-out-589/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Thing About Twitter</title>
		<link>http://coffeeonthekeyboard.com/the-thing-about-twitter-585/</link>
		<comments>http://coffeeonthekeyboard.com/the-thing-about-twitter-585/#comments</comments>
		<pubDate>Mon, 14 Mar 2011 00:29:11 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://coffeeonthekeyboard.com/?p=585</guid>
		<description><![CDATA[The thing that bothers me most about Twitter&#8217;s API announcement is that very few of the most useful features of Twitter were actually their ideas. Hashtags. Retweets. Location. Search. Lists. Conversation view. Inline images and links. Short URLs. The entire mobile user experience. All of these appeared in user behavior or other clients or other [...]]]></description>
			<content:encoded><![CDATA[<p>The thing that bothers me most about <a href="http://groups.google.com/group/twitter-api-announce/browse_thread/thread/c82cd59c7a87216a?pli=1">Twitter&#8217;s API announcement</a> is that very few of the most useful features of Twitter were actually their ideas.</p>
<ul>
<li>Hashtags.</li>
<li>Retweets.</li>
<li>Location.</li>
<li>Search.</li>
<li>Lists.</li>
<li>Conversation view.</li>
<li>Inline images and links.</li>
<li>Short URLs.</li>
<li>The <em>entire mobile user experience</em>.</li>
</ul>
<p>All of these appeared in user behavior or other clients or other apps first, and Twitter picked them up into their clients, or bought the client outright.</p>
<p>I&#8217;m <em>for</em> picking up features from clients. I think it&#8217;s fantastic: a feature can be effectively tested among a small group via a niche client and if it&#8217;s compelling and popular, well, you may want to steal it for the whole userbase—or not, of course.</p>
<p>The comparison that sprang to mind was the <a href="https://addons.mozilla.org/firefox/">Firefox add-ons ecosystem</a>. Something can start as an add-on (say, <a href="http://www.azarask.in/blog/post/tabcandy/">Tab Candy</a> or <a href="https://addons.mozilla.org/firefox/addon/personas-plus/">Personas</a>) and if it&#8217;s popular and a compelling feature, sometimes it gets picked up into the product (<a href="http://support.mozilla.com/en-US/kb/what-are-tab-groups">Panorama</a>, <a href="http://www.getpersonas.com/">Personas</a>). Other times (<a href="http://getfirebug.com/">Firebug</a>, <a href="https://addons.mozilla.org/firefox/addon/adblock-plus/">Adblock Plus</a>) it is incredibly compelling but not for everyone, and it doesn&#8217;t. (Or, in the case of Firebug, some of the ideas, if not the implementation, were <a href="https://developer.mozilla.org/en/Using_the_Web_Console">picked up</a>.)</p>
<p>The point of all that, to borrow a phrase from <a href="http://twitter.com/JeffChausse">Jeff Chausse</a>, is that thinking you will &#8220;inevitably make better apps [is] <a href="http://twitter.com/JeffChausse/status/47088363081179136">epic hubris</a>.&#8221;</p>
<p>If 90% of user access to Twitter is through official clients, like they claim, then they are overstating the threat of &#8220;fragmentation&#8221; of the user experience, and doing so in a way which discourages anyone else from trying to do better, or simply different. (Unless, of course, they aren&#8217;t putting any technical teeth behind it, but in that case why say anything at all?)</p>
<p>Considering how much of the current Twitter experience was invented outside the company, it seems like this is indeed epic hubris.</p>
<p><em>NB: As all content on this blog, this post is my personal opinion and should in no way be construed as representing my employer.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://coffeeonthekeyboard.com/the-thing-about-twitter-585/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>A brief SumoDev update</title>
		<link>http://coffeeonthekeyboard.com/a-brief-sumodev-update-578/</link>
		<comments>http://coffeeonthekeyboard.com/a-brief-sumodev-update-578/#comments</comments>
		<pubDate>Sat, 12 Mar 2011 18:54:52 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[continuous deployment]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[sumo]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://coffeeonthekeyboard.com/?p=578</guid>
		<description><![CDATA[A little while ago, I said that I thought we got a B in Q1, but we could move up to an A with a little more work. (This is my favorite grading system: everyone starts at 0 and works up.) Well, we landed two things: Initial JavaScript tests. (And for showfor.) Stuck a crontab [...]]]></description>
			<content:encoded><![CDATA[<p>A <a title="SUMO in Q2" href="http://coffeeonthekeyboard.com/sumo-in-q2-563/">little while ago</a>, I said that I thought we got a B in Q1, but we could move up to an A with a little more work. (This is my favorite grading system: everyone starts at 0 and works up.)</p>
<p>Well, we landed two things:</p>
<ul>
<li>Initial <a href="https://github.com/jsocol/kitsune/commit/1b03a4de5">JavaScript tests</a>. (And for <a href="https://github.com/jsocol/kitsune/commit/c28ee79bfc0">showfor</a>.)</li>
<li>Stuck a <a href="https://github.com/jsocol/kitsune/commit/bb98aede2">crontab</a> in git.</li>
</ul>
<p>I said these two things would bring us up to an A, so, way to go team!</p>
<p>We entered this quarter with 5 goals around <a href="https://wiki.mozilla.org/Support:Sumodev/Continuous_Deployment#Q1_2011">Continuous Deployment</a>. We&#8217;ve hit three. The other two were stretch goals, and it looks like we&#8217;ll miss them. It&#8217;s been a particularly busy quarter for IT, and there&#8217;s just a bunch of work left to get the JS tests into CI. We&#8217;ll carry those forward into Q2 along with our goals of releasing every week and dropping the &#8216;next&#8217; branch.</p>
<p>I&#8217;m really proud of my team and the work we&#8217;ve done this quarter. We&#8217;ve not only done great work improving the user experience across the site—especially for mobile users—we&#8217;ve also made significant progress toward simplifying and streamlining our releases, which will be crucial to CD.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeeonthekeyboard.com/a-brief-sumodev-update-578/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

