<?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"
	>

<channel>
	<title>Michael Tsai's Weblog</title>
	<atom:link href="http://mjtsai.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://mjtsai.com/blog</link>
	<description></description>
	<pubDate>Tue, 13 May 2008 18:31:08 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Safari Link Exposer</title>
		<link>http://mjtsai.com/blog/2008/05/13/safari-link-exposer/</link>
		<comments>http://mjtsai.com/blog/2008/05/13/safari-link-exposer/#comments</comments>
		<pubDate>Tue, 13 May 2008 18:30:27 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=1724</guid>
		<description><![CDATA[For quicker referral skimming, Daniel Jalkut uses FastScripts to run an AppleScript that runs a JavaScript that tells Safari to highlight links in the current window that point to his Web site.]]></description>
			<content:encoded><![CDATA[<p>For quicker referral skimming, <a href="http://www.red-sweater.com/blog/498/safari-link-exposer">Daniel Jalkut</a> uses FastScripts to run an AppleScript that runs a JavaScript that tells Safari to highlight links in the current window that point to his Web site.</p>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2008/05/13/safari-link-exposer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Saying Hello (Again) to Visual Basic</title>
		<link>http://mjtsai.com/blog/2008/05/13/visual-basic/</link>
		<comments>http://mjtsai.com/blog/2008/05/13/visual-basic/#comments</comments>
		<pubDate>Tue, 13 May 2008 13:10:06 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=1723</guid>
		<description><![CDATA[Erik Schwiebert:

Almost two years ago, back at WWDC in August 2006, the MacBU announced that Office 2008 would not have support for Visual Basic.  I blogged about it at the time, and that one post has proven to be my 15 minutes of Internet fame.  It continues to be the most popular post [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.schwieb.com/blog/2008/05/13/saying-hello-again-to-visual-basic/">Erik Schwiebert</a>:</p>
<blockquote cite="http://www.schwieb.com/blog/2008/05/13/saying-hello-again-to-visual-basic/">
<p>Almost two years ago, back at WWDC in August 2006, the MacBU announced that Office 2008 would not have support for Visual Basic.  I <a href="http://schwieb.com/blog/2006/08/08/saying-goodbye-to-visual-basic/">blogged about it</a> at the time, and that one post has proven to be my 15 minutes of Internet fame.  It continues to be the most popular post on my site &#8212; 21 months later, it still accounts for almost half of all the hits I get each week.  A section of the Mac community spoke out very vocally against our decision, and I still hear echos of it to this day.</p></blockquote>
<blockquote cite="http://www.schwieb.com/blog/2008/05/13/saying-hello-again-to-visual-basic/">
<p>This isn&rsquo;t a done deed yet, but I&rsquo;ve got a new commitment for you.&#8230;VB is (well, will be) back, baby! When we came to the realization in 2006 that there was no way for us to keep VB in the product and still ship Office 2008 on any semblance of the schedule we wanted, we announced its removal, but kept looking at how to bring it back into the suite even before we shipped. Many of the technical challenges I wrote about then still remain, but for a while now I and several others have been working with a group of people who know a heck of a lot about the internals of VB, and once we determined that we could achieve the revival VB in the new schedule for the next version of Mac Office, we locked it into place on the feature list.
</p></blockquote>
<p>Update: <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=395D1487-A3A6-4106-A0F8-4D6E1D6D89D2&#038;displaylang=en">Office 2008 SP1</a> is now available, and it has <a href="http://support.microsoft.com/kb/952331/en-us">release notes</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2008/05/13/visual-basic/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Dynamic Languages Strike Back</title>
		<link>http://mjtsai.com/blog/2008/05/12/dynamic-languages-strike-back/</link>
		<comments>http://mjtsai.com/blog/2008/05/12/dynamic-languages-strike-back/#comments</comments>
		<pubDate>Mon, 12 May 2008 15:30:20 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=1722</guid>
		<description><![CDATA[Steve Yegge gave a talk at Stanford with lots of interesting information and links about dynamic languages and performance:

Java inlines polymorphic methods!  Now the simplest way to do it was actually invented here at Stanford by Googler Urs Hoelzle, who&#8217;s, you know, like VP and Fellow there, and it&#8217;s called, it&#8217;s now called Polymorphic [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://steve-yegge.blogspot.com/2008/05/dynamic-languages-strike-back.html">Steve Yegge</a> gave a talk at Stanford with lots of interesting information and links about dynamic languages and performance:</p>
<blockquote cite="http://steve-yegge.blogspot.com/2008/05/dynamic-languages-strike-back.html">
<p>Java inlines polymorphic methods!  Now the simplest way to do it was actually invented here at Stanford by Googler Urs Hoelzle, who&rsquo;s, you know, like VP and Fellow there, and it&rsquo;s called, it&rsquo;s now called Polymorphic Inline Caching.  He called it, uh, <a href="http://research.sun.com/self/papers/pldi94.ps.gz">type-feedback compilation</a>, I believe is what he called it.  Great paper.  And it scared everybody, apparently.  The rumors on the mailing lists were that people were terrified of it, I mean it seems too hard.  And if you look at it now, you&rsquo;re like, dang, that was a good idea.
</p></blockquote>
<blockquote cite="http://steve-yegge.blogspot.com/2008/05/dynamic-languages-strike-back.html">
<p>
So when we talk about performance, it&rsquo;s all crap. The most important thing is that you have a small system. And then the performance will just fall out of it naturally.
</p></blockquote>
<blockquote cite="http://steve-yegge.blogspot.com/2008/05/dynamic-languages-strike-back.html">
<p>
What&rsquo;s happening is: as of this Ajax revolution, the industry shifted to trying to optimize JavaScript. And that has triggered what is going to be a landslide of research in optimizing dynamic languages.</p></blockquote>
<p>Update: Avi Bryant <a href="http://www.avibryant.com/2008/05/those-who-misre.html">responds</a>:</p>
<blockquote cite="http://www.avibryant.com/2008/05/those-who-misre.html"><p>The following two statements are true:</p>
</p><ol>
<li>Strongtalk has an optional static type system.
<li>Strongtalk is 15-20x faster than most other Smalltalk systems.
</ol>
<p>What&rsquo;s false is the causal link Steve is claiming between them.</blockquote>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2008/05/12/dynamic-languages-strike-back/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Bye Matlab, Hello Python, Thanks Sage</title>
		<link>http://mjtsai.com/blog/2008/05/03/bye-matlab-hello-python-thanks-sage/</link>
		<comments>http://mjtsai.com/blog/2008/05/03/bye-matlab-hello-python-thanks-sage/#comments</comments>
		<pubDate>Sat, 03 May 2008 19:16:15 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=1721</guid>
		<description><![CDATA[Vincent Noel:
[SAGE] is basically a wrapper around Python with tons of scientific packages added, all nicely pre-compiled into tasty binaries just for you by very nice people (which involves tons of work, not as simple as it sounds). These goodies come in gzipped tarballs that you dump into your $HOME. You can then launch the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://vnoel.wordpress.com/2008/05/03/bye-matlab-hello-python-thanks-sage/">Vincent Noel</a>:</p>
<blockquote cite="http://vnoel.wordpress.com/2008/05/03/bye-matlab-hello-python-thanks-sage/"><p>[<a href="http://www.sagemath.org/">SAGE</a>] is basically a wrapper around Python with tons of scientific packages added, all nicely pre-compiled into tasty binaries just for you by very nice people (which involves tons of work, not as simple as it sounds). These goodies come in gzipped tarballs that you dump into your $HOME. You can then launch the sage program, which handles regular Python just fine and includes all the modules I was longing for: <a href="http://numpy.scipy.org">NumPy</a> (easy, efficient handling of huge numerical array with slicing and dicing), <a href="http://www.scipy.org">SciPy</a> (input/output and scientific functions), <a href="http://matplotlib.sourceforge.net/">Matplotlib</a> (lots of plotting tools with <a href="http://matplotlib.sourceforge.net/screenshots.html">lickable, anti-aliased output</a> and a syntax almost identical to Matlab)! Even <a href="http://ipython.scipy.org/moin/">IPython</a> is there, meaning you get a comfortable interactive experience with tab completion on files, objects, dictionaries and <a href="http://ipython.scipy.org/moin/About">tons of other niceties</a>!&#8230;Matlab without Matlab.
</blockquote>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2008/05/03/bye-matlab-hello-python-thanks-sage/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Subversion&#8217;s Future?</title>
		<link>http://mjtsai.com/blog/2008/05/02/subversions-future/</link>
		<comments>http://mjtsai.com/blog/2008/05/02/subversions-future/#comments</comments>
		<pubDate>Fri, 02 May 2008 14:31:17 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=1720</guid>
		<description><![CDATA[Ben Collins-Sussman:

I&#8217;ve chatted with other developers, and we&#8217;ve all come to some similar private conclusions about Subversion&#8217;s future.  First, we think that this will probably be the &#8220;final&#8221; centralized system that gets written in the open source world &#8212; it represents the end-of-the-line for this model of code collaboration.  It will continue to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.red-bean.com/sussman/?p=90">Ben Collins-Sussman</a>:</p>
<blockquote cite="http://blog.red-bean.com/sussman/?p=90">
<p>I&#8217;ve chatted with other developers, and we&#8217;ve all come to some similar private conclusions about Subversion&#8217;s future.  First, we think that this will probably be the &#8220;final&#8221; centralized system that gets written in the open source world &mdash; it represents the end-of-the-line for this model of code collaboration.  It will continue to be used for many years, but specifically it will gain huge mindshare in the corporate world, while (eventually) losing mindshare to distributed systems in the open-source arena.</p></blockquote>
<p>The thing is, DVCSs can be preferable to Subversion, even when used in a centralized style. That&rsquo;s mostly how I use Git, but I appreciate its speed, the efficiency of its disk use (much less space used and many fewer files, which really matter for multi-gigabyte repositories), merging, and not having to worry about <tt>.svn</tt> folders getting clobbered or moved to the wrong place when I reorganize. Subversion works well, and there are a lot of tools that integrate with it, but as the ecosystems for the DVCSs improve, I can&rsquo;t see why they wouldn&rsquo;t start to gain mindshare and marketshare, even outside the open-source world.</p>
<p>Secondly, I don&rsquo;t really see why Collins-Sussman thinks that Subversion&rsquo;s advantage is with large projects. I think it&rsquo;s the <a href="http://blog.emptyway.com/2008/05/01/response-to-subversions-future/">opposite</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2008/05/02/subversions-future/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ATPM 14.05</title>
		<link>http://mjtsai.com/blog/2008/05/01/atpm-1405/</link>
		<comments>http://mjtsai.com/blog/2008/05/01/atpm-1405/#comments</comments>
		<pubDate>Thu, 01 May 2008 22:09:54 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=1719</guid>
		<description><![CDATA[The May issue of ATPM is out:

  Cover
  Sponsors
  Welcome
  E-Mail
  Bloggable: Alpacas Cynics Foremost
  MacMuser: CD-ripping Rip-off
  MacMuser: Another Ripping Rip-off
  Next Actions: Master List
  Photoshop For the Curious: No Smoking Gun: Re-tooling Dodge and Burn
  Desktop Pictures: White Mountains
  Cortland
  Hardware [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.atpm.com/14.05/">May issue of ATPM</a> is out:</p>
<UL>
  <LI><A href="http://www.atpm.com/14.05/index.shtml"><b>Cover</b></A></LI>
  <LI><A href="http://www.atpm.com/14.05/sponsors.shtml"><b>Sponsors</b></A></LI>
  <LI><A href="http://www.atpm.com/14.05/welcome.shtml"><b>Welcome</b></A></LI>
  <LI><A href="http://www.atpm.com/14.05/e-mail.shtml"><b>E-Mail</b></A></LI>
  <LI><A href="http://www.atpm.com/14.05/bloggable.shtml"><b>Bloggable:</b> Alpacas Cynics Foremost</A></LI>
  <LI><A href="http://www.atpm.com/14.05/macmuser-cd-ripping.shtml"><b>MacMuser:</b> CD-ripping Rip-off</A></LI>
  <LI><A href="http://www.atpm.com/14.05/macmuser-another-ripping.shtml"><b>MacMuser:</b> Another Ripping Rip-off</A></LI>
  <LI><A href="http://www.atpm.com/14.05/next-actions.shtml"><b>Next Actions:</b> Master List</A></LI>
  <LI><A href="http://www.atpm.com/14.05/photoshop.shtml"><b>Photoshop For the Curious:</b> No Smoking Gun: Re-tooling Dodge and Burn</A></LI>
  <LI><A href="http://www.atpm.com/14.05/desktop-pictures.shtml"><b>Desktop Pictures:</b> White Mountains</A></LI>
  <LI><A href="http://www.atpm.com/14.05/cartoon.shtml"><b>Cortland</b></A></LI>
  <LI><A href="http://www.atpm.com/14.05/apple-keyboard.shtml"><b>Hardware Review:</b> Apple Keyboard</A></LI>
  <LI><A href="http://www.atpm.com/14.05/blue-crab.shtml"><b>Software Review:</b> Blue Crab 4.9.5</A></LI>
  <LI><A href="http://www.atpm.com/14.05/drive-genius.shtml"><b>Software Review:</b> Drive Genius 2</A></LI>
  <LI><A href="http://www.atpm.com/14.05/flipp.shtml"><b>Accessory Review:</b> Flipp Premium Leather Case For iPod classic</A></LI>
  <LI><A href="http://www.atpm.com/14.05/spacepig.shtml"><b>Software Review:</b> SpacePig 1.0.2</A></LI>
  <LI><A href="http://www.atpm.com/14.05/faq.shtml"><b>FAQ: Frequently Asked Questions</b></A></LI></UL>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2008/05/01/atpm-1405/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How super() in Python 3 Works</title>
		<link>http://mjtsai.com/blog/2008/04/30/how-super-in-python-3-works/</link>
		<comments>http://mjtsai.com/blog/2008/04/30/how-super-in-python-3-works/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 17:37:51 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=1718</guid>
		<description><![CDATA[Armin Ronacher:
In the last weeks something remarkable happened in the Python3 sources: self kinda became implicit. Not in function definitions, but in super calls. But not only self: also the class passed to super. That&#8217;s remarkable because it means that the language shifts into a completely different direction.
I&#8217;m generally not a fan of magic, but [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://lucumr.pocoo.org/cogitations/2008/04/30/how-super-in-python3-works-and-why-its-retarded/">Armin Ronacher</a>:</p>
<blockquote cite="http://lucumr.pocoo.org/cogitations/2008/04/30/how-super-in-python3-works-and-why-its-retarded/"><p>In the last weeks something remarkable happened in the Python3 sources: self kinda became implicit. Not in function definitions, but in super calls. But not only self: also the class passed to <code>super</code>. That&rsquo;s remarkable because it means that the language shifts into a completely different direction.</p></blockquote>
<p>I&rsquo;m generally not a fan of magic, but I don&rsquo;t really see the problem with adding an abbreviated form for the most common uses of <code>super</code>. That it was so verbose before always seemed to me to be a wart on an otherwise clean language.</p>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2008/04/30/how-super-in-python-3-works/feed/</wfw:commentRss>
		</item>
		<item>
		<title>TaskPaper 2.0 Toolbar Location</title>
		<link>http://mjtsai.com/blog/2008/04/30/taskpaper-20-toolbar-location/</link>
		<comments>http://mjtsai.com/blog/2008/04/30/taskpaper-20-toolbar-location/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 15:38:13 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=1717</guid>
		<description><![CDATA[Jesse Grosjean:
I spent a lot of time this week and then all this morning playing with different toolbar placements and options. I appreciate all the feedback, but I&#8217;ve just decided that for 2.0 the placement will stay at the bottom.]]></description>
			<content:encoded><![CDATA[<p><a href="http://hogbaysoftware.com/forums/taskpaper/topics/737_My_thinking_behind_the_TaskPaper_2_Toolbar_Location">Jesse Grosjean</a>:</p>
<blockquote cite="http://hogbaysoftware.com/forums/taskpaper/topics/737_My_thinking_behind_the_TaskPaper_2_Toolbar_Location"><p>I spent a lot of time this week and then all this morning playing with different toolbar placements and options. I appreciate all the feedback, but I&rsquo;ve just decided that for 2.0 the placement will stay at the bottom.</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2008/04/30/taskpaper-20-toolbar-location/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ddcli: An Objective-C Command Line Application Framework</title>
		<link>http://mjtsai.com/blog/2008/04/29/ddcli/</link>
		<comments>http://mjtsai.com/blog/2008/04/29/ddcli/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 14:34:57 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=1716</guid>
		<description><![CDATA[Dave Dribin has written an Objective-C wrapper for getopt_long.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dribin.org/dave/blog/archives/2008/04/29/ddcli/">Dave Dribin</a> has written an <a href="http://www.dribin.org/dave/software/#ddcli">Objective-C wrapper for getopt_long</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2008/04/29/ddcli/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New Support Arrangements</title>
		<link>http://mjtsai.com/blog/2008/04/27/new-support-arrangements/</link>
		<comments>http://mjtsai.com/blog/2008/04/27/new-support-arrangements/#comments</comments>
		<pubDate>Sun, 27 Apr 2008 16:12:28 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=1715</guid>
		<description><![CDATA[Fraser Speirs:


I realised I was at the point where I was using FogBugz as little more than the world&#8217;s worst email client. From now on, I&#8217;ll keep tickets and customer support better separated, so that a better job can be done on each.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.connectedflow.com/blog/?p=95">Fraser Speirs</a>:</p>
<blockquote cite="http://www.connectedflow.com/blog/?p=95">
<p>
I realised I was at the point where I was using FogBugz as little more than the world&rsquo;s worst email client. From now on, I&rsquo;ll keep tickets and customer support better separated, so that a better job can be done on each.</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2008/04/27/new-support-arrangements/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
