<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><description>
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

var pageTracker = _gat._getTracker("UA-354125-2");
pageTracker._initData();
pageTracker._trackPageview();
</description><title>NSDiary</title><generator>Tumblr (3.0; @jxl)</generator><link>http://notes.jaspe.rs/</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/nsdiary" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="nsdiary" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://tumblr.superfeedr.com/" /><item><title>Debug oneliner</title><description>&lt;p&gt;To quickly get the rect of a view add this to your .pch&lt;/p&gt;

&lt;p&gt;&lt;code&gt;
#define RectLog(x) NSLog(@"%s rect: %@",#x, NSStringFromCGRect(x.frame))
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now you can do&lt;/p&gt;

&lt;p&gt;&lt;code&gt;
UIView *aWellNamedView = [[UIView alloc] initWithFrame:CGRectMake(0,0,250,300)];
RectLog(aWellNamedView);
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Which will print out:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;
aWellNamedView rect: {{0, 0}, {250, 300}}
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Which is nice.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nsdiary/~4/HO3CsiNC7_k" height="1" width="1"/&gt;</description><link>http://notes.jaspe.rs/post/4717053766</link><guid>http://notes.jaspe.rs/post/4717053766</guid><pubDate>Mon, 18 Apr 2011 08:34:45 -0400</pubDate></item><item><title>"90% of coding is debugging. The other 10% is writing bugs."</title><description>“90% of coding is debugging. The other 10% is writing bugs.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;Bram Cohen (of BitTorrent fame)&lt;/em&gt;&lt;img src="http://feeds.feedburner.com/~r/nsdiary/~4/ITwFBJYtIEk" height="1" width="1"/&gt;</description><link>http://notes.jaspe.rs/post/4168934500</link><guid>http://notes.jaspe.rs/post/4168934500</guid><pubDate>Mon, 28 Mar 2011 18:34:24 -0400</pubDate></item><item><title>"Enlightened trial and error succeeds over the planning of the lone genius."</title><description>“Enlightened trial and error succeeds over the planning of the lone genius.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://www.youtube.com/watch?v=M66ZU2PCIcM&amp;feature=player_embedded"&gt;IDEO&lt;/a&gt;&lt;/em&gt;&lt;img src="http://feeds.feedburner.com/~r/nsdiary/~4/1rHnkrOfzXI" height="1" width="1"/&gt;</description><link>http://notes.jaspe.rs/post/2609599737</link><guid>http://notes.jaspe.rs/post/2609599737</guid><pubDate>Wed, 05 Jan 2011 10:11:32 -0500</pubDate></item><item><title>Proposal for a new acronym</title><description>&lt;p&gt;&lt;h1&gt;STO&lt;/h1&gt;

&lt;h2&gt;Stating The Obvious.&lt;/h2&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nsdiary/~4/yGKLPl6MM_w" height="1" width="1"/&gt;</description><link>http://notes.jaspe.rs/post/1662720537</link><guid>http://notes.jaspe.rs/post/1662720537</guid><pubDate>Tue, 23 Nov 2010 17:51:00 -0500</pubDate></item><item><title>"Everyone can be taught to sculpt: Michelangelo would have had to be taught how not to. So it is with..."</title><description>“Everyone can be taught to sculpt: Michelangelo would have had to be taught how not to. So it is with the great programmers”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://www-pu.informatik.uni-tuebingen.de/users/klaeren/epigrams.html"&gt;Alan Perlis&lt;/a&gt;&lt;/em&gt;&lt;img src="http://feeds.feedburner.com/~r/nsdiary/~4/OxCuN6sDdN0" height="1" width="1"/&gt;</description><link>http://notes.jaspe.rs/post/1566280352</link><guid>http://notes.jaspe.rs/post/1566280352</guid><pubDate>Sat, 13 Nov 2010 19:16:42 -0500</pubDate></item><item><title>"I can work 25 hours a day if necessary, live on any reasonable salary, and don’t give a black..."</title><description>“I can work 25 hours a day if necessary, live on any reasonable salary, and don’t give a black damn for job security, office politics, or adverse public relations.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://www.ottawacitizen.com/Hunter+Thompson+brutally+honest+Canadian+request/3606508/story.html"&gt;Hunter S Thompson in the best job request I’ve ever read.&lt;/a&gt;&lt;/em&gt;&lt;img src="http://feeds.feedburner.com/~r/nsdiary/~4/r8-Rb3Rrh_E" height="1" width="1"/&gt;</description><link>http://notes.jaspe.rs/post/1234957692</link><guid>http://notes.jaspe.rs/post/1234957692</guid><pubDate>Sun, 03 Oct 2010 08:40:23 -0400</pubDate></item><item><title>"For four years we have offered the synchronization service for no charge, predicated on the..."</title><description>“For four years we have offered the synchronization service for no charge, predicated on the hypothesis that a business model would emerge to support the free service.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://blog.xmarks.com/?p=1886"&gt;http://blog.xmarks.com/?p=1886&lt;/a&gt;&lt;/em&gt;&lt;img src="http://feeds.feedburner.com/~r/nsdiary/~4/R5EfjI4_f_0" height="1" width="1"/&gt;</description><link>http://notes.jaspe.rs/post/1203568242</link><guid>http://notes.jaspe.rs/post/1203568242</guid><pubDate>Tue, 28 Sep 2010 03:46:25 -0400</pubDate></item><item><title>"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code..."</title><description>“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/Brian_Kernighan"&gt;Brian Kernighan&lt;/a&gt;&lt;/em&gt;&lt;img src="http://feeds.feedburner.com/~r/nsdiary/~4/9NkvCbYE98A" height="1" width="1"/&gt;</description><link>http://notes.jaspe.rs/post/757474473</link><guid>http://notes.jaspe.rs/post/757474473</guid><pubDate>Thu, 01 Jul 2010 08:27:12 -0400</pubDate></item><item><title>"This will take science. It will take art. It will take innovation. It will take ambition. And it..."</title><description>“This will take science. It will take art. It will take innovation. It will take ambition. And it will take humility. But the fantastic thing is: This is what you get to do.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://www.newyorker.com/online/blogs/newsdesk/2010/06/gawande-stanford-speech.html"&gt;I’m mentally replacing medecine with computer science&lt;/a&gt;&lt;/em&gt;&lt;img src="http://feeds.feedburner.com/~r/nsdiary/~4/kjr2J2icqAY" height="1" width="1"/&gt;</description><link>http://notes.jaspe.rs/post/731497936</link><guid>http://notes.jaspe.rs/post/731497936</guid><pubDate>Thu, 24 Jun 2010 10:37:00 -0400</pubDate></item><item><title>‘The future of magazines is now.’

- No, it’s not. The future is never now.

source</title><description>&lt;h1&gt;‘The future of magazines is now.’&lt;/h1&gt;

&lt;h1&gt;- No, it’s not. The future is never now.&lt;/h1&gt;

&lt;p&gt;&lt;a href="http://informationarchitects.jp/wired-on-ipad-just-like-a-paper-tiger/"&gt;source&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nsdiary/~4/2sNjzsvowT0" height="1" width="1"/&gt;</description><link>http://notes.jaspe.rs/post/640619662</link><guid>http://notes.jaspe.rs/post/640619662</guid><pubDate>Fri, 28 May 2010 08:31:10 -0400</pubDate></item><item><title>"It always takes longer than you expect, even when you take into account Hofstadter’s Law."</title><description>“It always takes longer than you expect, even when you take into account Hofstadter’s Law.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;Hofstadter’s Law (&lt;a href="http://fuckyeahcomputerscience.tumblr.com/post/593208065/hofstadters-law"&gt;via&lt;/a&gt;)&lt;/em&gt;&lt;img src="http://feeds.feedburner.com/~r/nsdiary/~4/IbH3pMt5iuk" height="1" width="1"/&gt;</description><link>http://notes.jaspe.rs/post/616171338</link><guid>http://notes.jaspe.rs/post/616171338</guid><pubDate>Thu, 20 May 2010 09:15:55 -0400</pubDate></item><item><title>
  “It’s been cool to see so many Flash sites work on mobile devices. However because there is...</title><description>&lt;blockquote&gt;
  &lt;p&gt;“It’s been cool to see so many Flash sites work on mobile devices. However because there is such a variety of Flash content out on the web, it’s important to understand that not all of it is going to run on devices like the Nexus One, both because of lower hardware capabilities of devices and because of user interface design.” - &lt;a href="http://blog.digitalbackcountry.com/2010/05/examples-of-flash-content-running-on-android/"&gt;source&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then why do it at all ? If Flash had one thing going for them, it was the “we-run-on-all-platforms”; now it turns out they’re like Java. They do run on every platform but the definition of running varies wildly.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nsdiary/~4/hYsWPSUK95I" height="1" width="1"/&gt;</description><link>http://notes.jaspe.rs/post/591939546</link><guid>http://notes.jaspe.rs/post/591939546</guid><pubDate>Wed, 12 May 2010 04:20:00 -0400</pubDate></item><item><title>"If sleep doesn’t serve an absolutely vital function, it is the greatest mistake evolution ever..."</title><description>“If sleep doesn’t serve an absolutely vital function, it is the greatest mistake evolution ever made.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/Allan_Rechtschaffen"&gt;Allan_Rechtschaffen&lt;/a&gt;&lt;/em&gt;&lt;img src="http://feeds.feedburner.com/~r/nsdiary/~4/_reQJJl7omA" height="1" width="1"/&gt;</description><link>http://notes.jaspe.rs/post/586619063</link><guid>http://notes.jaspe.rs/post/586619063</guid><pubDate>Mon, 10 May 2010 07:44:09 -0400</pubDate></item><item><title>"Great minds discuss ideas; Average minds discuss events; Small minds discuss people"</title><description>“Great minds discuss ideas; Average minds discuss events; Small minds discuss people”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;Eleanor Roosevelt&lt;/em&gt;&lt;img src="http://feeds.feedburner.com/~r/nsdiary/~4/B5hNzhA46Go" height="1" width="1"/&gt;</description><link>http://notes.jaspe.rs/post/553050444</link><guid>http://notes.jaspe.rs/post/553050444</guid><pubDate>Tue, 27 Apr 2010 05:39:11 -0400</pubDate></item><item><title>"We are at the beginning of a significant change in the industry, and I believe that ultimately open..."</title><description>“We are at the beginning of a significant change in the industry, and I believe that ultimately open platforms will win out over the type of closed, locked down platform that Apple is trying to create.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://www.mikechambers.com/blog/2010/04/20/on-adobe-flash-cs5-and-iphone-applications/"&gt;Meanwhile Flash isn’t open sourced-either, put up or shut up&lt;/a&gt;&lt;/em&gt;&lt;img src="http://feeds.feedburner.com/~r/nsdiary/~4/Rn4vAtwi5M8" height="1" width="1"/&gt;</description><link>http://notes.jaspe.rs/post/538171725</link><guid>http://notes.jaspe.rs/post/538171725</guid><pubDate>Wed, 21 Apr 2010 08:35:48 -0400</pubDate></item><item><title>Go: Quickly to your projects</title><description>&lt;p&gt;If you’re reading this, you probably already know that I’m:&lt;/p&gt;

&lt;p&gt;a. A fan of &lt;a href="http://www.flickr.com/photos/pjaspers/3526862628/"&gt;Terminal.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;b. A fan of &lt;a href="http://github.com/robbyrussell/oh-my-zsh"&gt;Oh-my-zsh&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now a and b got even better, thanks to a little function that helps me &lt;code&gt;cd&lt;/code&gt; directly to my projects. I’ve called it go and it’s largely based on the work of &lt;a href="http://atog.be"&gt;@atog&lt;/a&gt; (he made the function without the autocompletion) and the rake-completion in oh-my-zsh (I’ve largely copied/stolen/adjusted their code to fit mine).&lt;/p&gt;

&lt;p&gt;Look for it &lt;a href="http://gist.github.com/368394"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It’s not the prettiest of functions but it is a handy one.&lt;/p&gt;

&lt;p&gt;UPDATE: Be sure to look at the comment by &lt;a href="http://workswithruby.com/"&gt;@defv&lt;/a&gt; his script is even sweeter (no temp file required)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nsdiary/~4/8Q6-Kho8TMU" height="1" width="1"/&gt;</description><link>http://notes.jaspe.rs/post/535573411</link><guid>http://notes.jaspe.rs/post/535573411</guid><pubDate>Tue, 20 Apr 2010 07:29:00 -0400</pubDate></item><item><title>"The intrusion of ads into my stream seems like a fairly small issue overall. I’m used to having my..."</title><description>“&lt;p&gt;The intrusion of ads into my stream seems like a fairly small issue overall. I’m used to having my personal life interrupted by branded content from commercials on TV, to billboards on the bus my son and I ride to school, to Facebook and Gmail ads next to my personal correspondence.&lt;/p&gt;

&lt;p&gt;On its own, I’m not sure the Twitter ad plan will make that big a dent in a world that is already so heavily sponsored.&lt;/p&gt;”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://tweetagewasteland.com/2010/04/im-being-followed-by-rogaine/"&gt;Tweetage Wasteland aced it&lt;/a&gt;&lt;/em&gt;&lt;img src="http://feeds.feedburner.com/~r/nsdiary/~4/tn6j9QAm3hI" height="1" width="1"/&gt;</description><link>http://notes.jaspe.rs/post/520407225</link><guid>http://notes.jaspe.rs/post/520407225</guid><pubDate>Wed, 14 Apr 2010 04:47:55 -0400</pubDate></item><item><title>Keyboard Macros: The greatest feature you've never used. </title><description>&lt;p&gt;You might have read my &lt;a href="http://notes.jaspe.rs/post/498808895/podcasts"&gt;previous&lt;/a&gt; post on podcasts and wondered how much time I’ve spent creating that list with its URLs and short descriptions etc.&lt;/p&gt;

&lt;p&gt;Fortunably/regrettably (depending on wether you liked that post) this is a matter of minutes thanks to the wonderful invention of Keyboard Macros (available in Textmate and Emacs and probably others).&lt;/p&gt;

&lt;p&gt;So if you’re willing to play along and learn something that will save you time (promised) when working with text, please be so kind to copy the text in &lt;a href="http://dl.dropbox.com/u/16204/tumblr_posts/raw_podcasts.txt"&gt;this file&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In case you’re curious that’s the result of selecting my podcasts in iTunes (pic), copy and a paste.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://dl.dropbox.com/u/16204/tumblr_posts/itunes_podcasts.png" alt="Selected podcasts"/&gt;&lt;/p&gt;

&lt;p&gt;I’m assuming you’ve pasted my text in your favorite editor (Emacs will get you bonuspoints).&lt;/p&gt;

&lt;h5&gt;Emacs&lt;/h5&gt;

&lt;p&gt;&lt;code&gt;M-x kmacro-start-macro-or-insert-counter&lt;/code&gt; (bound to F3) to start the macro&lt;/p&gt;

&lt;p&gt;&lt;code&gt;M-x kmacro-end-or-call-macro&lt;/code&gt; (bound to F4) to stop/call the macro&lt;/p&gt;

&lt;h5&gt;Textmate&lt;/h5&gt;

&lt;p&gt;Take a look in the Bundles-menu-item, look at the shortcut for starting a Macro, memorize it (you can do this entire thing without ever touching the mouse, think of the &lt;a href="http://inessential.com/2007/04/25/thoughts_about_large_cocoa_projects"&gt;kittens&lt;/a&gt;!).&lt;/p&gt;

&lt;p&gt;&lt;img src="http://dl.dropbox.com/u/16204/tumblr_posts/bundle_menu.png" alt="Bundle Menu"/&gt;&lt;/p&gt;

&lt;h3&gt;Let’s dig in&lt;/h3&gt;

&lt;p&gt;(I’m assuming your caret is on the first line of the file, if it isn’t please do so)&lt;/p&gt;

&lt;p&gt;The keyboard commands you need to hit:&lt;/p&gt;

&lt;table id="macros"&gt;&lt;tr&gt;&lt;th&gt;Emacs&lt;/th&gt;
    &lt;th&gt;Textmate&lt;/th&gt;
    &lt;th&gt;What am I doing?&lt;/th&gt;
  &lt;/tr&gt;&lt;tr&gt;&lt;td&gt;F3&lt;/td&gt;
    &lt;td&gt;Alt-Command-M&lt;/td&gt;
    &lt;td&gt;Start recording the macro&lt;/td&gt;
  &lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;C-a&lt;/td&gt;
    &lt;td&gt;Position caret a beginning of line&lt;/td&gt;
  &lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Press # two times&lt;/td&gt;
    &lt;td&gt;Typing 2 hashes&lt;/td&gt;
  &lt;/tr&gt;&lt;tr&gt;&lt;td&gt;C-s (incr search)&lt;/td&gt;
    &lt;td&gt;Command-F&lt;/td&gt;
    &lt;td&gt;Looking for the tab char&lt;/td&gt;
  &lt;/tr&gt;&lt;/table&gt;&lt;p&gt;Since the text is delimited by tabs, we need to look for the tab character to move our caret along for our next action. In Textmate we can do this by using Find with a regex&lt;/p&gt;

&lt;p&gt;&lt;img src="http://dl.dropbox.com/u/16204/tumblr_posts/search_regex.png" alt="Find with regex"/&gt;&lt;/p&gt;

&lt;p&gt;In Emacs we can do an incremental search and enter a tab by using the &lt;code&gt;quoted-insert&lt;/code&gt; command (bound to C-q), so &lt;code&gt;C-s C-q tab&lt;/code&gt; will do the trick. Great! We’ve found the tab character, moving on.&lt;/p&gt;

&lt;table id="macros"&gt;&lt;tr&gt;&lt;th&gt;Emacs&lt;/th&gt;
    &lt;th&gt;Textmate&lt;/th&gt;
    &lt;th&gt;What am I doing?&lt;/th&gt;
  &lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Press # two times&lt;/td&gt;
    &lt;td&gt;Typing 2 hashes (to end markdown title)&lt;/td&gt;
  &lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;C-d (two times)&lt;/td&gt;
    &lt;td&gt;Forward deletes the next two tabs&lt;/td&gt;
  &lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Press return&lt;/td&gt;
    &lt;td&gt;Moving to a new line&lt;/td&gt;
  &lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Press &gt; once&lt;/td&gt;
    &lt;td&gt;Creating a markdown blockquote&lt;/td&gt;
  &lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Command-F&lt;/td&gt;
    &lt;td&gt;C-s (incr search)&lt;/td&gt;
    &lt;td&gt;Looking for the tab char (remember last time)&lt;/td&gt;
  &lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;C-d&lt;/td&gt;
    &lt;td&gt;Deletes tab char&lt;/td&gt;
  &lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Return&lt;/td&gt;
    &lt;td&gt;Moving to a new line&lt;/td&gt;
  &lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Type `[link](`&lt;/td&gt;
    &lt;td&gt;Creating markdown link&lt;/td&gt;
  &lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;C-e&lt;/td&gt;
    &lt;td&gt;Move to end of line&lt;/td&gt;
  &lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Type `)`&lt;/td&gt;
    &lt;td&gt;Ending the link&lt;/td&gt;
  &lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Press returning&lt;/td&gt;
    &lt;td&gt;Adding another line&lt;/td&gt;
  &lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;C-n&lt;/td&gt;
    &lt;td&gt;Moving caret to the next line&lt;/td&gt;
  &lt;/tr&gt;&lt;tr&gt;&lt;td&gt;F4&lt;/td&gt;
    &lt;td&gt;Control-Command-M&lt;/td&gt;
    &lt;td&gt;Stop recording the macro&lt;/td&gt;
  &lt;/tr&gt;&lt;/table&gt;&lt;p&gt;Phiew. Glad that’s done. What we’ve done now is created a Keyboard Macro, think of it as a small program defined by keystrokes, every keystroke you press in a macro is a command. This way you can quickly create throwaway string manipulation programs.&lt;/p&gt;

&lt;p&gt;Knowing your way around a keyboard is pretty vital to the whole damn operation, so (&lt;a href="http://notes.jaspe.rs/post/264980019/useful-keybindings"&gt;this&lt;/a&gt; might come in handy).&lt;/p&gt;

&lt;p&gt;Now to execute the “program”.&lt;/p&gt;

&lt;table id="macros"&gt;&lt;tr&gt;&lt;th&gt;Emacs&lt;/th&gt;
    &lt;th&gt;Textmate&lt;/th&gt;
    &lt;th&gt;What am I doing?&lt;/th&gt;
  
  &lt;/tr&gt;&lt;tr&gt;&lt;td&gt;F4&lt;/td&gt;
    &lt;td&gt;Command-Shift-M&lt;/td&gt;
    &lt;td&gt;Executes the macro.&lt;/td&gt;
  &lt;/tr&gt;&lt;/table&gt;&lt;p&gt;Now repeat this step as many times as necessary. See what we’ve done, isn’t that almost indistinguishable from magic.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://dl.dropbox.com/u/16204/tumblr_posts/finished.png" alt="Finished result"/&gt;&lt;/p&gt;

&lt;h3&gt;Notes&lt;/h3&gt;

&lt;ul&gt;&lt;li&gt;It’s always handy to start a macro with a C-a to know exactly where you start.&lt;/li&gt;
&lt;li&gt;If you mistype, just undo and move on. The macro will do this undo each and every time, but it’s a program; it won’t care.&lt;/li&gt;
&lt;li&gt;Keyboard shortcuts are your friend, learn them.&lt;/li&gt;
&lt;li&gt;This isn’t just for humongous amounts of text, it will work wonders on lists etc. as well&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/nsdiary/~4/5ufkknBTQ4g" height="1" width="1"/&gt;</description><link>http://notes.jaspe.rs/post/506678973</link><guid>http://notes.jaspe.rs/post/506678973</guid><pubDate>Thu, 08 Apr 2010 18:55:11 -0400</pubDate></item><item><title>"As anyone who uses MS Word will tell you, software that goes out of its way to be extra helpful..."</title><description>“As anyone who uses MS Word will tell you, software that goes out of its way to be extra helpful often turns out to be a hindrance.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;Damn skippy. &lt;a href="http://javascriptweblog.wordpress.com/2010/03/16/a-few-javascript-gotchas/"&gt;via&lt;/a&gt;&lt;/em&gt;&lt;img src="http://feeds.feedburner.com/~r/nsdiary/~4/p89fgzhvo-0" height="1" width="1"/&gt;</description><link>http://notes.jaspe.rs/post/503000136</link><guid>http://notes.jaspe.rs/post/503000136</guid><pubDate>Wed, 07 Apr 2010 07:33:51 -0400</pubDate></item><item><title>Podcasts</title><description>&lt;p&gt;Ever since I discoverd podcasts I haven’t bothered complaining about my commute. These are the ones to which I’m currently subscribed.&lt;/p&gt;

&lt;h2&gt;Entertaining&lt;/h2&gt;

&lt;h3&gt;Mark Kermode and Simon Mayo’s Film Reviews&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;Mark Kermode discusses the latest film releases with Simon Mayo. Lively, controversial and unmissable movie discussion. Broadcast live on Fridays at 2pm on BBC Radio 5 live.
  &lt;a href="http://downloads.bbc.co.uk/podcasts/fivelive/kermode/rss.xml"&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Basically this is a movie review show, each week they go throught Britain’s top 10 at the box office and review the upcoming movies. This has “boring-as-hell” written all over it, except it isn’t. If you take anything away from this list, let it be this one. If you like movies and don’t mind and an opiniated reviewer (with &lt;em&gt;big&lt;/em&gt; hands) bookmark this and enjoy it. And hello to Jason Isaacs.&lt;/p&gt;

&lt;h3&gt;The Bugle -  Audio Newspaper For A Visual World&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;Great Britain and the United States of America, two countries divided by the once-mighty Atlantic Ocean.  However, John Oliver and Andy Zaltzman, fully-qualified Grand Masters of Satirical Jabber, will bridge that watery rift through the healing medium of
  &lt;a href="http://podcast.timesonline.co.uk/rss/thebugle.rss"&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Satirical look at current events and politics. I stopped reading political news because the Bugle’s version is better.&lt;/p&gt;

&lt;h3&gt;Jonathan Ross&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;Weekly highlights from Jonathan’s Saturday morning show on BBC Radio 2: Top name TV, film and music guests, plus Jonathan’s unbridled wit.
  &lt;a href="http://downloads.bbc.co.uk/podcasts/radio2/ross/rss.xml"&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This one is going to stop in a few weeks, as Jonathan Ross is leaving the BBC, Jonathan might qualify as the worlds worst interviewers as he’s consistently talking more than his guests, but when you can talk like Jonathan that’s nothing to worry about.&lt;/p&gt;

&lt;h3&gt;The Pipeline&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;The Pipeline is an interview show hosted by Dan Benjamin, talking with people who create things. Guests include Zeldman, Kottke, Vaynerchuk, Coudal, Mann, Siracusa, and more.
  &lt;a href="http://feeds.feedburner.com/thepipelineshow"&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Dan Benjamin interviews internet-celebrities. Only listened to the Kottke one but I’m hooked.&lt;/p&gt;

&lt;h3&gt;Scott Mills Daily&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;A daily slice of Scott, with more silly features, crank calls and Oh! What’s Occurring?, taken from his show every day on Radio 1 from 4pm to 7pm.
  &lt;a href="http://downloads.bbc.co.uk/podcasts/radio1/mills/rss.xml"&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is my backup-podcast. If all the other haven been listened to I can safely fall back on this one, mindless chatter and some games. I’m a fan.&lt;/p&gt;

&lt;h3&gt;The Film Programme&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;Interviews and analysis from the world of cinema. Francine Stock talks to directors, writers and critics about the latest film releases, classics on DVD and movies on television.
  &lt;a href="http://downloads.bbc.co.uk/podcasts/radio4/film/rss.xml"&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This one I don’t follow religuously, depends on who the guests are.&lt;/p&gt;

&lt;h2&gt;Technical&lt;/h2&gt;

&lt;h3&gt;The Ruby Show&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;Once known as Rails Envy, The Ruby Show is the most popular and longest running Ruby and Ruby on Rails podcast, bringing news and discussion about the latest topics in the Ruby community, hosted by Jason Seifer and Dan Benjamin.
  &lt;a href="http://feeds.feedburner.com/rubyshow"&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Quick way to keep up with things in Ruby land.&lt;/p&gt;

&lt;h3&gt;The Changelog&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;The Changelog is a blog &amp; weekly podcast that profiles what’s fresh and new in Open Source (FLOSS). Open Source moves fast. Keep up.
  &lt;a href="http://feeds.feedburner.com/changelogshow"&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Some good technical shows.&lt;/p&gt;

&lt;h3&gt;Late Night Cocoa&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;Late Night Cocoa is a podcast for novice and experienced Cocoa Developers. Each episode we interview a Cocoa developer to discuss a specific aspect of Cocoa Development.
  &lt;a href="http://www.mac-developer-network.com/feeds/lnc.xml"&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I’ve been listening to this one since they first came out, don’t really like the new format but still recommended to learn a bit on Cocoa.&lt;/p&gt;

&lt;h3&gt;Pragmatic Podcasts&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;Guiding You From Journeyman to Master
  &lt;a href="http://pragprog.com/podcasts/feed.rss"&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I mostly skip this but the manage to produce a few nuggets once in a while.&lt;/p&gt;

&lt;h3&gt;Hanselminutes&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;Hanselminutes is a weekly audio talk show with noted web developer and technologist Scott Hanselman and hosted by Carl Franklin. Scott discusses utilities and tools, gives practical how-to advice, and discusses ASP.NET or Windows issues and workarounds.
  &lt;a href="http://feeds.feedburner.com/Hanselminutes"&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Started listening to this when he had a mac developer on the show and somehow forgot to unsubscribe, topics mainly include .NET, windows and more shenanigans like these. The stackoverflow-episode was good though.&lt;/p&gt;

&lt;h2&gt;The freezer&lt;/h2&gt;

&lt;p&gt;Sadly these shows seem to have stopped.&lt;/p&gt;

&lt;h3&gt;The Talk Show&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;The Talk Show with John Gruber and Dan Benjamin.
  &lt;a href="http://feeds.feedburner.com/thetalkshow"&gt;link&lt;/a&gt;
  Gruber vs Benjamin. Nuff said.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;The Rissington Podcast&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;A podcast about the web and other stuff
  &lt;a href="http://feeds.feedburner.com/therissingtonpodcast"&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Lovely use of English language, very rarely any real technical content but I liked it.&lt;/p&gt;

&lt;h3&gt;Stephen Fry’s PODGRAMS (Audio &amp; Visual)&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;Stephen Fry, British actor, writer and director presents Stephen Fry's Podgrams.
  &lt;a href="http://www.stephenfry.com/?feed=podcast&amp;format=m4a/?feed=podcast&amp;format=m4a"&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Listening to Stephen Fry is always worth it.&lt;/p&gt;

&lt;h3&gt;Core Intuition&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;Daniel Jalkut and Manton Reece discuss Mac programming, independent development, Apple news, and more.
  &lt;a href="http://www.coreint.org/podcast.xml"&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Mac devving.&lt;/p&gt;

&lt;h3&gt;Russell Brand&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;The Russell Brand show has finished and there won’t be any more podcasts from this programme. Thanks for your subscription. To find more podcasts from Radio 2, go to bbc.co.uk/radio2.
  &lt;a href="http://downloads.bbc.co.uk/podcasts/radio2/brand/rss.xml"&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I hated this the first time I heard it, then had to listen to it a few times in a row and I was hooked. His last episode was a team effort with Jonathan Ross in which they managed to upset Britain and Russell was fired from the BBC and Jonathan had to issue public apology. It was epic.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nsdiary/~4/JPv36U-RUcI" height="1" width="1"/&gt;</description><link>http://notes.jaspe.rs/post/498808895</link><guid>http://notes.jaspe.rs/post/498808895</guid><pubDate>Mon, 05 Apr 2010 15:50:20 -0400</pubDate></item></channel></rss>

