<?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>michael-mccracken.net &#187; computers</title>
	<atom:link href="http://michael-mccracken.net/category/computers/feed/" rel="self" type="application/rss+xml" />
	<link>http://michael-mccracken.net</link>
	<description>This is a weblog</description>
	<lastBuildDate>Tue, 25 May 2010 15:31:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Delight Innovation</title>
		<link>http://michael-mccracken.net/2010/04/delight-innovation/</link>
		<comments>http://michael-mccracken.net/2010/04/delight-innovation/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 15:48:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[computers]]></category>
		<category><![CDATA[delight]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[innovation]]></category>

		<guid isPermaLink="false">http://michael-mccracken.net/?p=282</guid>
		<description><![CDATA[I&#8217;ve recently seen the concept of delight in software brought up in a couple different places, and I just wanted to cheer it on.

Jesper at waffle is starting an open-source web browser project to revive the spirit of OmniWeb, called rouse. He coins the phrase &#8220;delight innovation&#8221;. I love that phrase. He&#8217;s talking about taking [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently seen the concept of <em>delight</em> in software brought up in a couple different places, and I just wanted to cheer it on.</p>

<p>Jesper at <a href="http://waffle.wootest.net">waffle</a> is starting an open-source web browser project to revive the spirit of OmniWeb, called <a href="http://waffle.wootest.net/2010/04/18/rouse-involvement/">rouse</a>. He coins the phrase &#8220;delight innovation&#8221;. I love that phrase. He&#8217;s talking about taking a browser, something that&#8217;s relatively stable, and looking for ways to make it noticeably better again. I love that impulse &#8211; it&#8217;s something I&#8217;m hoping to see in email clients too.</p>

<p>Another place that delight showed up (along with Surprise and Joy), was at <a href="http://52weeksofux.com">52 weeks of UX</a> in a post called <a href="http://52weeksofux.com/post/531355592/design-for-delight">&#8220;design for delight&#8221;</a>. That post  seemed to be a little more about the parts of design that don&#8217;t affect functionality, but do add personality. I really agree with this angle too &#8211; I like a program that has little details that are <a href="http://borkware.com/quickies/single?id=319">just for fun</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://michael-mccracken.net/2010/04/delight-innovation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Workstation is not Dead</title>
		<link>http://michael-mccracken.net/2010/04/the-workstation-is-not-dead/</link>
		<comments>http://michael-mccracken.net/2010/04/the-workstation-is-not-dead/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 16:57:57 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[computers]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[workstation]]></category>

		<guid isPermaLink="false">http://michael-mccracken.net/?p=275</guid>
		<description><![CDATA[Marco Arment wrote yesterday about mobile computing being more exciting than what he called &#8220;Desk&#8221; computing. I&#8217;m a fan of Marco&#8217;s writing, and I usually agree with him, but that post got me thinking. I can&#8217;t argue that mobile isn&#8217;t exciting, but I disagree with his assertion that desktop computing is a solved problem. He&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_278" class="wp-caption alignright" style="width: 190px"><a href="http://michael-mccracken.net/wp2/wp-content/uploads/2010/04/450px-Xerox_Alto_mit_Rechner.jpg"  class="lightview"><img src="http://michael-mccracken.net/wp2/wp-content/uploads/2010/04/450px-Xerox_Alto_mit_Rechner.jpg" alt="" title="Xerox Alto" width="180" height="240" class="size-full wp-image-278" /></a><p class="wp-caption-text">The Workstation - RIP 2010?</p></div>

<p>Marco Arment <a href="http://www.marco.org/519621380">wrote yesterday</a> about mobile computing being more exciting than what he called &#8220;Desk&#8221; computing. I&#8217;m a fan of Marco&#8217;s writing, and I usually agree with him, but that post got me thinking. I can&#8217;t argue that mobile isn&#8217;t exciting, but I disagree with his assertion that desktop computing is a solved problem. He&#8217;s right that the pace of innovation has slowed. Certainly the last couple of OS X releases have fewer and fewer compelling differences. In fact, I&#8217;m writing this on OS X 10.5 &#8212; 10.6 didn&#8217;t impress me enough to make me bother upgrading.</p>

<p>Still, when Marco asks what I want out of 10.7, I think &#8220;what <em>don&#8217;t</em> I want&#8221;?</p>

<p>I think there&#8217;s tons of room to improve on and even rethink the workstation.</p>

<p>Maybe now that the consumer train has shifted toward more custom-designed tools for browsing, games, and social apps, there&#8217;s room for workstation OSs to grow in ways that might improve them without worrying about leaving the home user behind (or boring them).</p>

<p>I&#8217;m not asking for unintuitive design. What I&#8217;m asking for is powerful tools &#8211; system and apps &#8211; for people who use computers for work every day. I certainly hope that these power tools will be built with elegance and style. I&#8217;m not asking for dual cameras and four speakers.</p>

<p>Market forces have limited development of crucial daily-use work tools to what will appeal to the home &amp; leisure market. For instance, Apple ships Mail and iCal with the OS. Both are fine programs, but are clearly trying to ride the line between work features such as meeting planning, and consumer features like stationery. Meanwhile, the market for alternatives is limited, and even some of the alternatives have taken the approach of adding consumer-related features. <a href="http//postbox-inc.com/">Postbox</a>, for instance, has added facebook and twitter support. That&#8217;s not helping me get work done &#8211; quite the opposite, really.</p>

<p>But am I really just talking about incremental improvements and a few more work-oriented features here and there? I don&#8217;t think so. To be more specific about what kind of big improvements I think are possible in desktop systems, I did a few minutes of brainstorming. Here&#8217;s what I came up with:</p>

<p>Like the personal jetpack, I&#8217;m still waiting for the system that knows what I&#8217;m trying to do and co-ordinates to help me get it done. The one that learns (even crudely!) about my habits and the time of day, my colleagues, their schedules, etc. The one with this knowledge baked in everywhere in the system. For instance, it knows which app&#8217;s notifications can be ignored for later.</p>

<p>As a start, I&#8217;d even settle for a single system that actually uses all the good ideas that have come up in the past 30 years. Let&#8217;s at least catch up to Douglas Engelbart&#8217;s vision of the <a href="http://en.wikipedia.org/wiki/On-Line_System#cite_note-3">NLS</a> system for augmenting collective knowledge work before we call it a day.</p>

<p>Good search everywhere has been a real improvement, but what about full support for smart annotations for files, events, people and other data? The BeOS file system comes to mind. Search is better when there&#8217;s better info to search for. If I push it a little, some smart background prediction of categories for documents that&#8217;d help me find them later &#8212; that couldn&#8217;t hurt. Why doesn&#8217;t a file know who emailed it to me?</p>

<p>Another blast from the past &#8211; maybe OpenDoc was a stretch, but more open document formats and easier flowing data between applications isn&#8217;t a bad idea &#8211; can we expand on that?</p>

<p>This one ties in with mobile devices &#8211; Real, honest to god multi-computer network syncing. It can be done &#8211; it should be baked in! What if your filesystem was actually an easily merge-able version-controlled document oriented database like CouchDB? Can we use some ideas from distributed version control to make sharing documents on disconnected filesystems work right automatically? I still think the best solution doesn&#8217;t depend on storing everything on servers (especially public servers).</p>

<p>That leads to the oft-repeated idea of getting rid of &#8220;saving&#8221;. I shouldn&#8217;t have to commit changes &#8211; maybe I want to tag a version, but the data should always be written to disk.</p>

<p>Every app should be able to know about communication (mail, IM, SMS, whatever) that might affect what you&#8217;re working on in it. Today&#8217;s apps have uniform access to your files &#8211; but not to your messages. This seems like a bad historical distinction &#8211; they&#8217;re both relevant data. For example, why do I have to &#8220;save attachments&#8221;? It&#8217;s already on my disk…</p>

<p>What about application and system scripting that <em>really works</em> &#8211; that&#8217;s easy enough for quick things but powerful and fast enough to grow a real program from? Let me start them as visual or spoken one-off commands but then edit and share them as text.</p>

<p>System support for Quicksilver/Launchbar/Ubiquity-style text command lines. Tie this into the scripting system. Make it feel like I tell the <em>computer</em> what to do instead of finding the right app to tell, opening it, etc.</p>

<p>System-wide hypertext &#8211; I should be able to create robust links between document parts, messages, people, and other entities. It should be fast to view an annotated list of changes across versions of a document, showing who did them and what they said about it in emails. This shouldn&#8217;t have to all reside on some central server to work.</p>

<p>Do you have any ideas to add to the list?</p>
]]></content:encoded>
			<wfw:commentRss>http://michael-mccracken.net/2010/04/the-workstation-is-not-dead/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tinkering in the Sideshow</title>
		<link>http://michael-mccracken.net/2010/02/tinkering-in-the-sideshow/</link>
		<comments>http://michael-mccracken.net/2010/02/tinkering-in-the-sideshow/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 07:31:06 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[computers]]></category>
		<category><![CDATA[me]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[melancholy]]></category>
		<category><![CDATA[tinkering]]></category>

		<guid isPermaLink="false">http://michael-mccracken.net/?p=240</guid>
		<description><![CDATA[I chime in on the reactions to the iPad as a new wave of pleasantly functional but closed computing.]]></description>
			<content:encoded><![CDATA[<p>Last week, <a href="http://al3x.net/2010/01/28/ipad.html">Alex Payne</a> and <a href="http://diveintomark.org/archives/2010/01/29/tinkerers-sunset">Mark Pilgrim</a> both made some heartfelt arguments explaining why they think the fact that Apple&#8217;s vision of the computing future as a relatively closed appliance is depressing. I agree, and I want to explain exactly why, now that I think I&#8217;ve figured it out.</p>

<p>Each post got plenty of responses. Dissenters have a wide variety of reasons for why it&#8217;s no big deal, ranging from &#8220;tomorrows tinkerers will just play with different technology, like <a href="http://diveintomark.org/archives/2010/01/29/tinkerers-sunset#comment-13600">bio-mecha</a>&#8221; (fascinating!), to a lot of people saying, essentially, &#8220;Just don&#8217;t buy the appliance if you want a computer&#8221; (obvious!).</p>

<p>Others have made a solid point that the iPad is the next big computing paradigm. Steven Frank calls it a <a href="http://stevenf.tumblr.com/post/359224392/i-need-to-talk-to-you-about-computers-ive-been">&#8220;New World&#8221;</a> device. I can&#8217;t help but agree, and of course powerful devices that empower instead of confuse the user are a good thing. Replacing most of the world&#8217;s overcomplicated, fussy laptops with focused and reliable devices is a good thing.</p>

<p>Of course, general purpose, hackable computers are not really going away, not soon. Even if everyone uses an iPad for personal stuff and a Chrome OS netbook to access private cloud services for business work, there will still be a need for workstations, and I hope the people building complete personal systems out of Free Software don&#8217;t give up.</p>

<p>However, in a response to comments on his post, <a href="http://diveintomark.org/archives/2010/01/29/tinkerers-sunset#comment-13616">Mark Pilgrim made a gloomy prediction</a>: &#8220;People haven’t figured it out yet, but Mac OS X is on its last legs. By 2015, Apple will make appliances and developer add-ons. Not general purpose computing devices.&#8221;</p>

<p>If you ask me, this is the real problem.</p>

<p>The problem is that hackable computers <em>that I want to use</em> could very well be fading out. Maybe Mark&#8217;s overstating things, but I would not be surprised to see the Mac, and OS X, as a relatively low priority for Apple in the near future. Design and development effort and creativity will naturally go increasingly toward the more profitable platform &#8211; the one making computing finally pleasant for the normal person.</p>

<p>I&#8217;m worried that this will happen for third-party developers too. <a href="http://violasong.com/2010/02/my-worst-ipad-fears">I&#8217;m not the only one.</a> Back in 2002, Brent Simmons described developing user code for the Mac as <a href="http://inessential.com/2002/09/19/why_i_develop_for_mac_os_x">&#8220;the show&#8221;</a>. Is there any doubt that Apple&#8217;s mobile OS is &#8220;the show&#8221; now?</p>

<p>Where does that leave the rest of us who still have to or want to use a more powerful platform?</p>
]]></content:encoded>
			<wfw:commentRss>http://michael-mccracken.net/2010/02/tinkering-in-the-sideshow/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tinkering</title>
		<link>http://michael-mccracken.net/2009/09/tinkering/</link>
		<comments>http://michael-mccracken.net/2009/09/tinkering/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 17:04:59 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[computers]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[computing]]></category>
		<category><![CDATA[desktopvswebapps]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[tinkering]]></category>

		<guid isPermaLink="false">http://michael-mccracken.net/wp/?p=172</guid>
		<description><![CDATA[I really liked a recent post by Alex Payne titled Switching Season.  He says he gets an itch every year or so to go try something different, and I can sympathize. What he says at the end really resonates:

It’s about computer usage as a creative act, something that becomes harder and harder to experience [...]]]></description>
			<content:encoded><![CDATA[<p>I really liked a recent post by Alex Payne titled <a href="http://al3x.net/2009/08/10/switching-season.html">Switching Season</a>.  He says he gets an itch every year or so to go try something different, and I can sympathize. What he says at the end really resonates:</p>

<blockquote><span style="font-family: 'Times New Roman', Times, fantasy; line-height: 26px; font-size: 17px; color: #222222;">It’s about computer <em>usage</em> as a creative act, something that becomes harder and harder to experience the more proficient one gets with a computer.</span></blockquote>

<p>I feel this way every once in a while too &#8211; It used to be fun just getting a computer to do something. Once you know enough about how it works and most of what you do is handled pretty smoothly, some of the fun goes out of it. The problem with high-quality free apps like Mail and Address Book is that they remove the motivation for people to tinker with new ways of using computers for the same old things.</p>

<p>This urge to tinker is pretty strong, at least for me, and I think it might be one reason why I&#8217;m not so excited about web and mobile (at least iPhone) programming. Both platforms have a lot going for them, but the barrier to tinkering with my data is high &#8211; sometimes I can&#8217;t get my data out of a service, and if I want to write scripts to combine two web apps, where do they run?</p>

<p>For example, I&#8217;ve seen a lot of great things come from the community built around BibDesk&#8217;s scripting interface, and if it were a web app, none of that would have happened.</p>
]]></content:encoded>
			<wfw:commentRss>http://michael-mccracken.net/2009/09/tinkering/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>go juggle &#8212; an attention callback</title>
		<link>http://michael-mccracken.net/2008/08/go-juggle-an-attention-callback/</link>
		<comments>http://michael-mccracken.net/2008/08/go-juggle-an-attention-callback/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 02:31:05 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[X Windows]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[script utility productivity]]></category>

		<guid isPermaLink="false">http://michael-mccracken.net/wp/?p=119</guid>
		<description><![CDATA[I talk about a script I've been using to tweak my attention scheduling.]]></description>
			<content:encoded><![CDATA[<p>Sometimes progress on a project for me consists of a few short bursts of activity in between stretches of waiting for some long-running thing to complete so I can figure out what I need to do with it next.</p>

<p>Because I always have more than one project going, I don&#8217;t actually wait much. I just switch workspaces and try to make progress on the next thing. If I can&#8217;t make progress on anything immediate, I&#8217;ll end up checking email or looking up something for a side project.</p>

<p>This kind of multitasking is inefficient, but inevitable when I might have to wait for 20 minutes or more for a compute job or a compile to finish.</p>

<p>The problem with this approach is that the things I&#8217;m waiting for often finish while I&#8217;m off doing something else, and if I get too involved, the low-priority research or emails will eat up my day while the high-priority work sits waiting for me.</p>

<p>I&#8217;ve attacked this problem in the past when using OS X with <a href="gr">growl</a>, but I can&#8217;t call growlnotify from remote systems. However, I just found <a href="dzen">dzen</a> for X Windows, a lightweight notification display utility that compiles easily on every system I&#8217;ve tried, and works remotely with ssh X forwarding.</p>

<p>I wrote a simple script called <code>go</code>, which just executes its arguments and runs <code>dzen</code> when it&#8217;s done. Now I type (for example) <code>go make</code> and I can switch over to something else, confident that I&#8217;ll see a big popup window letting me know when I can get back to working on my highest priority project.</p>

<p>Here&#8217;s basically the entire <code>go</code> script:</p>

<p><pre></pre></p>

<h1>!/bin/ksh</h1>

<p>echo $@
$@
echo $@ completed on <code>hostname</code> \
 | dzen2 -p -h 64 -bg darkblue</p>

<p></p>

<p>It&#8217;s simple but it&#8217;s working great for me. I&#8217;ve tried some improvements like randomizing window placement to avoid overlapping notifications, but the simple version above really does all I need.</p>

<p>Finally, a couple of details. zsh always seems to want to spell-check &#8216;go&#8217;, so I really named it &#8216;~/bin/executeAndNotify.sh&#8217; and just aliased &#8216;go&#8217; to that.
Also, I&#8217;ve found it can mess with shell quoting as is, so sometimes I have to do <code>'somecommand ; go echo done'</code>. If someone has a tip on getting the quoting right in the script, I&#8217;d love to hear it. The problem crops up when you try something like &#8216;go make CC=&#8221;cc -g&#8221;&#8216; &#8211; the quotes don&#8217;t make it through.</p>
]]></content:encoded>
			<wfw:commentRss>http://michael-mccracken.net/2008/08/go-juggle-an-attention-callback/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PyObjC notes</title>
		<link>http://michael-mccracken.net/2008/02/pyobjc-notes/</link>
		<comments>http://michael-mccracken.net/2008/02/pyobjc-notes/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 18:07:28 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[computers]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://michael-mccracken.net/wp/2008/02/01/pyobjc-notes/</guid>
		<description><![CDATA[Some things I've picked up from working with PyObjC recently.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been hacking around with <a href="http://pyobjc.sf.net">PyObjC</a>, the Python-ObjC/Cocoa bridge recently, and it&#8217;s quickly becoming my favorite way to write Cocoa apps. It&#8217;s really natural to mix Python idioms with Cocoa objects.</p>

<p>The latest version of PyObjC is 2.0, it&#8217;s installed by default on OS X 10.5, and XCode now includes templates for starting a PyObjC project. There&#8217;s even code autocomplete in XCode for PyObjC and IB integration, so aside from some smart-indenting issues, writing PyObjC in XCode is almost as natural as writing in ObjC.</p>

<p>I thought I&#8217;d post a few nice shortcuts and tips here.</p>

<p><br />
You can use tuples for NSRect/Range/Point, for instance, this -</p>

<pre><code>r = NSInsetRect(((0, 0) ,
                 (100, 100)),
                10, 10)
</code></pre>

<p>creates this NSRect -</p>

<pre><code>NSRect origin=&lt;nspoint x=10.0
                       y=10.0&gt;
       size=&lt;nssize width=80.0
                   height=80.0&gt;&gt;
</code></pre>

<p><br />
Passing python arrays as NSArray instances (and dictionaries as NSDictionaries) works great, but sometimes you need to pass a C array. The Python &#8216;array&#8217; module handles that nicely:</p>

<pre><code>import array
g = NSGradient.alloc().
   initWithColors_locations_colorSpace_(
    [NSColor.whiteColor(),
     NSColor.blackColor()], &lt;br/&gt;
    array.array('f', [0.0, 1.0]),
    NSColorSpace.deviceRGBColorSpace())
</code></pre>

<p><br />
ObjC selectors are just python strings in PyObjC.</p>

<pre><code>defNC.addObserver_selector_name_object_(self,
  'windowDidResize:',
  NSWindowDidResizeNotification,
  self)
# or
self.performSelectorOnMainThread_withObject_waitUntilDone_('doIt:', None, False)
# or
if o.respondsToSelector_("fun:"): return o.fun_(a)
</code></pre>

<p><br />
Finally, something that comes in handy when working with KVC, the  &#8216;_&#8217; method now defined on NSObjects in PyObjC:</p>

<pre><code>o = &lt;some ObjC object&gt;
print o._.myKey
o._.myKey = 44
# is equivalent to:
print o.valueForKey_('myKey')
o.setValue_forKey_(44, 'myKey')
</code></pre>

<p><br />
That last example is straight from the <a href="http://pyobjc.sourceforge.net/NEWS-2.0.html">NEWS page</a>, where lots of other useful info can be found.</p>
]]></content:encoded>
			<wfw:commentRss>http://michael-mccracken.net/2008/02/pyobjc-notes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is Site Reliability Engineering at Google</title>
		<link>http://michael-mccracken.net/2008/01/what-is-site-reliability-engineering-at-google/</link>
		<comments>http://michael-mccracken.net/2008/01/what-is-site-reliability-engineering-at-google/#comments</comments>
		<pubDate>Sun, 13 Jan 2008 20:58:55 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[computers]]></category>

		<guid isPermaLink="false">http://michael-mccracken.net/wp/2008/01/13/what-is-site-reliability-engineering-at-google/</guid>
		<description><![CDATA[I&#8217;ve been looking around for some more detailed information about the &#8220;Site Reliability Engineering&#8221; positions at Google.
Apparently the role is a real mix of very large-scale system administration, planning and automation.

I&#8217;ve collected some links to public info about the job.

The Google channel has a promotional video from one engineer about the role &#8211; he tells [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been looking around for some more detailed information about the &#8220;Site Reliability Engineering&#8221; positions at Google.
Apparently the role is a real mix of very large-scale system administration, planning and automation.</p>

<p>I&#8217;ve collected some links to public info about the job.</p>

<p>The Google channel has <a href="http://www.youtube.com/watch?v=y31STIrwtlk">a promotional video</a> from one engineer about the role &#8211; he tells a quick story about being on call to monitor and address problems with Google talk.</p>

<p>A set of <a href="http://www.ukuug.org/events/spring2007/programme/ThatCouldntHappenToUs.pdf">slides from a talk by James Youngman</a> at the UK Unix &amp; Open Systems User&#8217;s Group gives a good description of the general task, and dives deeper into two specific examples &#8211; powering down failed disks, and protecting data with checksums, exploring how straightforward ideas can explode at scale.
(These slides also have potentially the best proprietary-information disclaimer I&#8217;ve ever seen: &#8220;This has been written entirely in ASCII. No EBCDIC or animal fat.&#8221;)</p>

<p><a href="http://sysadmin.miniconf.org/2006/pollmann_google_lightning_talk.ppt">Here</a> is another set of slides with a quick overview, from a &#8216;lightning talk&#8217;.</p>

<p>A sampling of what Google SRE engineers put in their public resumes about their job includes quite a span &#8211; from troubleshooting mission critical services to writing automation software (in Python).</p>

<p>And finally, an <a href="http://googleresearch.blogspot.com/2006/03/hiring-lake-wobegon-strategy.html">interesting post from 2006</a> about the theory behind Google&#8217;s hiring strategy, summarized as &#8220;only hire candidates who are above the mean of your current employees&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://michael-mccracken.net/2008/01/what-is-site-reliability-engineering-at-google/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HPC blogs and news sites</title>
		<link>http://michael-mccracken.net/2007/05/hpc-blogs-and-news-sites/</link>
		<comments>http://michael-mccracken.net/2007/05/hpc-blogs-and-news-sites/#comments</comments>
		<pubDate>Fri, 04 May 2007 21:17:42 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[computers]]></category>
		<category><![CDATA[hpc]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://michael-mccracken.net/wp/2007/05/04/hpc-blogs-and-news-sites/</guid>
		<description><![CDATA[I&#8217;ve always liked the programming-languages community website Lambda the Ultimate, and recently I went looking for something similar for the High-Performance Computing community. I didn&#8217;t find exactly that*, but I did find a few great resources for news about HPC and computing research policy:

HPCWire is a well-known news source for HPC. It has daily news [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always liked the programming-languages community website <a href="http://lambda-the-ultimate.org/">Lambda the Ultimate</a>, and recently I went looking for something similar for the High-Performance Computing community. I didn&#8217;t find exactly that*, but I did find a few great resources for news about HPC and computing research policy:</p>

<p><a href="http://hpcwire.com">HPCWire</a> is a well-known news source for HPC. It has daily news updates, and occasional columns by guests from around the industry. Most of the news is press releases from companies and government labs, but it&#8217;s nice to have a single place to check for them. However, there is apparently no RSS feed, and to get email updates, you have to buy a subscription. I haven&#8217;t, but I do check back occasionally to read the columns.</p>

<p><a href="http://supercomputingonline.com">Supercomputing Online</a> is another professional news outlet, which reads a little less like a press release,
 seems to have more coverage of academic news, and does have an RSS feed.</p>

<p><a href="http://insideHPC.com/">insideHPC.com</a> is more of a weblog than either of the first two &#8211; John E. West covers news stories in brief with some added perspective and analysis. I like his approach, and <a href="http://insidehpc.com/2007/05/02/introducing-mike/">I&#8217;ve joined him</a> to help cover academic HPC issues, both computing research and issues affecting computational scientists.</p>

<p>One of many blogs at Sun is the <a href="http://blogs.sun.com/HPC/">HPC Watercooler</a>, covering Sun&#8217;s HPC products and services, as well as some non-Sun related news. I&#8217;ve found it pretty interesting already, and I&#8217;d be interested to see weblogs from other HPC vendors.</p>

<p>Finally, a couple of blogs that are less directly related to HPC but still very relevant for computing researchers, are <a href="http://www.renci.org/blog/index.php">Dan Reed&#8217;s weblog</a> at the Renaissance Computing Institute, and the <a href="http://www.cra.org/govaffairs/blog/">CRA Computing Research Policy Blog</a>, both of which cover computing research policy and funding issues that don&#8217;t often show up in news coverage of either government or computing.</p>

<p><em>* &#8211; if anyone wants to start an LTU-alike site for HPC research, or point me to one, I&#8217;ll sign up and contribute in an instant.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://michael-mccracken.net/2007/05/hpc-blogs-and-news-sites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The TRIPS processor</title>
		<link>http://michael-mccracken.net/2007/04/the-trips-processor/</link>
		<comments>http://michael-mccracken.net/2007/04/the-trips-processor/#comments</comments>
		<pubDate>Wed, 25 Apr 2007 18:01:48 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[compilers]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[hpc]]></category>
		<category><![CDATA[research]]></category>

		<guid isPermaLink="false">http://michael-mccracken.net/wp/2007/04/25/the-trips-processor/</guid>
		<description><![CDATA[The UT-Austin TRIPS project will unveil their processor next Monday, and I take a look at what it looks like.]]></description>
			<content:encoded><![CDATA[<p>The UT-Austin <a href="http://www.cs.utexas.edu/~trips/">TRIPS project</a> will be unveiling their new processor next Monday. (<a href="http://oea.cs.utexas.edu/articles/index2007/trips_unveiling07.html">event details</a>)</p>

<p>This is a pretty interesting attempt to get around the problems facing processor design today. Clock speeds have stalled, but the actual Moore&#8217;s Law &#8211; the one about transistor count, not &#8220;speed&#8221; &#8211; is still going, so we have the problem of what to do with just a lot of copies of basically the same old chip?</p>

<p>A lot of answers you hear involve pushing that complexity up to the programmer, forcing more people to become parallel programmers. This is almost certain to happen at least a little, but let&#8217;s hope we don&#8217;t have to give up on the sequential programming model completely. If you think software is bad now&#8230;</p>

<p>The TRIPS processor is an example of another approach &#8211; placing more of the burden of finding and using parallelism onto the compiler and architecture, keeping programmers&#8217; heads above water. It&#8217;s pretty exciting to see something this different make its way into actual silicon.</p>

<p>The basic idea is that instead of a single piece of control logic organizing the actions of multiple functional units, finding concurrency within a window of instructions using reordering, the TRIPS processor is distributed at the lowest level &#8211; each functional unit is a mini-processor (called a tile), and instructions executing on separate processor tiles communicate operands directly, not through a register file. Usually this is described as executing a graph of instructions instead of a single instruction at a time.</p>

<p>Current processors certainly don&#8217;t just execute one instruction at a time, and they do plenty of moving instructions around, so I tend to see this explicit-data-graph description as just the far end of a spectrum that starts with old superscalar designs, continues through out-of-order processors and multithreaded architectures, and currently seems to end here.</p>

<p>A TRIPS processor can run four thread contexts at once, with an instruction window of 1024 instructions to reorder and 256 memory operations in flight at once. For comparison, the late &#8217;90s Tera MTA ran 128 threads at once (128 different program counters), and the 2003-vintage Cray X1 processors kept track of 512 memory operations at once. Just like TRIPS, each of those architectures required extensive compiler support for good performance.</p>

<p>A particularly interesting point is the fully partitioned L1 cache &#8211; meaning that there are multiple distributed L1 caches on the chip, so where your instructions are physically executing will be important for performance &#8211; if they&#8217;re near the cache bank holding their operands, they will execute sooner.</p>

<p>The natural question when looking at a new and interesting architecture like this, especially one that promises a tera-op on a chip, is whether it will make its way to a laptop you can buy anytime soon. I have no idea if the UT team has any industry deals in the works, but I would bet against something like this becoming mainstream quickly &#8211; the fact that these architectures rely so much on a custom compiler with aggressive optimization means that a lot of dirty work is required to move existing software to it.</p>

<p>It will be interesting to follow this project and see how their actual hardware performs.</p>
]]></content:encoded>
			<wfw:commentRss>http://michael-mccracken.net/2007/04/the-trips-processor/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fran Allen to receive Turing Award</title>
		<link>http://michael-mccracken.net/2007/02/fran-allen-to-receive-turing-award/</link>
		<comments>http://michael-mccracken.net/2007/02/fran-allen-to-receive-turing-award/#comments</comments>
		<pubDate>Fri, 23 Feb 2007 19:25:04 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[compilers]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[research]]></category>

		<guid isPermaLink="false">http://michael-mccracken.net/wp/2007/02/23/fran-allen-to-receive-turing-award/</guid>
		<description><![CDATA[This is really cool: Fran Allen, a founder of the field of program optimization and compiler analysis, will be the first woman to receive the Turing Award. More info, including a description of her accomplishments, is at the ACM press release.
]]></description>
			<content:encoded><![CDATA[<p>This is really cool: Fran Allen, a founder of the field of program optimization and compiler analysis, will be the first woman to receive the Turing Award. More info, including a description of her accomplishments, is at the <a href="http://campus.acm.org/public/pressroom/press_releases/2_2007/turing2006.cfm">ACM press release</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://michael-mccracken.net/2007/02/fran-allen-to-receive-turing-award/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
