<?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:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>Josh Nichols</title>
    <link>http://www.joshnichols.com</link>
    <description>Josh Nichols Feed</description>
    <language>en-us</language>
    <generator>Symphony (build 2000)</generator>
    
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/joshnichols" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>Read It Later Fluid</title>
      <link>http://www.joshnichols.com/blog/entry/read-it-later-fluid/</link>
      <pubDate>Wed, 07 Oct 2009 11:43 -0600</pubDate>
      <guid>http://www.joshnichols.com/articles/read-it-later-fluid/</guid>
      <description>&lt;p&gt;&lt;span class="dquo"&gt;&amp;#8220;&lt;/span&gt;Read it later Fluid&amp;#8221; is a set of userstyles for &lt;a href="http://fluidapp.com/"&gt;Fluid&lt;/a&gt;, a Site Specific Browser for &lt;span class="caps"&gt;OSX&lt;/span&gt;, that updates the look of the &lt;a href="http://readitlaterlist.com/"&gt;Read It Later&lt;/a&gt; Web interface. I was unhappy with the default look, so I created a new design that more closely matches their main site and iPhone&amp;#160;app.&lt;/p&gt;&lt;h4&gt;How to&amp;#160;use&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Download and install&amp;#160;&lt;a href="http://fluidapp.com/"&gt;Fluid&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Launch Fluid and enter the following options:

&lt;ul&gt;
&lt;li&gt;&lt;span class="caps"&gt;URL&lt;/span&gt;:&amp;#160;&lt;code&gt;"http://readitlaterlist.com/unread"&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Name: &lt;code&gt;"Read It&amp;#160;Later"&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Location: Chose where you want to place the fluid&amp;#160;app&lt;/li&gt;
&lt;li&gt;Icon: Use the site&amp;#8217;s favicon or replace it with your&amp;#160;own&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;"create"&lt;/code&gt; and then &lt;code&gt;"Launch&amp;#160;Now"&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Login to Read It&amp;#160;Later&lt;/li&gt;
&lt;li&gt;Go to &lt;code&gt;"Preferences / Advanced"&lt;/code&gt; and only allow browsing to&amp;#160;&lt;code&gt;"*readitlaterlist.com*"&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Go to &lt;code&gt;"Preferences / Userstyles"&lt;/code&gt; and create a new URL Pattern called &lt;code&gt;"http://readitlaterlist.com/*"&lt;/code&gt; and check&amp;#160;it.&lt;/li&gt;
&lt;li&gt;Then paste in the &lt;span class="caps"&gt;CSS&lt;/span&gt; from &lt;a href="http://www.joshnichols.com/workspace/uploads/readitlater/read-it-later-fluid.css"&gt;this &lt;span class="caps"&gt;CSS&lt;/span&gt;&amp;#160;file&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Refresh the Read It Later window and it should have the new&amp;#160;styles.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="http://www.joshnichols.com/workspace/uploads/unread.png" rel="lightbox"&gt;&lt;img src="http://www.joshnichols.com/workspace/uploads/unread.png" alt="screenshot" width="275px" height="414" style="float:right; margin:3px 0 1em 1em"/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;More&amp;#160;options&lt;/h4&gt;

&lt;p&gt;You can also add &lt;a href="http://www.joshnichols.com/workspace/uploads/readitlater/autorefresh.user.js"&gt;this Userscript&lt;/a&gt; to refresh the page every 30 minutes. (Thanks to &lt;a href="http://maxvoltar.com/articles/instapaper-fluid"&gt;Tim Van Damme&lt;/a&gt; for the idea and &lt;a href="http://hicksdesign.co.uk/"&gt;John Hicks&lt;/a&gt; for the script.) Install the script by creating a New Userscript in the Scripts menu and pasting in the code from the linked&amp;#160;file.&lt;/p&gt;

&lt;p&gt;You can also change the app to live in the menubar by clicking on &lt;code&gt;"Read It Later"&lt;/code&gt; and select &lt;code&gt;"Convert to MenuExtra SSB..."&lt;/code&gt;. Feel free to &lt;a href="http://www.joshnichols.com/workspace/uploads/readitlater/read-it-later-menu.png"&gt;download and use my custom menubar&amp;#160;icon&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;Warning&lt;/h4&gt;

&lt;p&gt;Use at your own risk. I offer no support if you get stuck or break something. This code is based on Read It Later&amp;#8217;s site mark-up. If they ever change their site, this userstyle will break. If that happens, don&amp;#8217;t panic. Just go to &lt;code&gt;"Preferences / Userstyles"&lt;/code&gt; and uncheck the URL Pattern and things will return to&amp;#160;normal.&lt;/p&gt;

&lt;h4&gt;Wishlist&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Not override the options in the text only&amp;#160;version&lt;/li&gt;
&lt;li&gt;Add styles for the &amp;#8220;My Account&amp;#8221;&amp;#160;section&lt;/li&gt;
&lt;li&gt;Create a version that works with Firefox and&amp;#160;Prism&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Changelog&lt;/h4&gt;

&lt;h5&gt;0.8&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;Initial&amp;#160;release&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;0.8.1&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;Fixed problem with favicons that are larger than 16x16px being&amp;#160;cropped&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Publish template info for Delicious Library 2</title>
      <link>http://www.joshnichols.com/blog/entry/publish-template-info-for-delicious-library-2/</link>
      <pubDate>Tue, 31 Mar 2009 00:55 -0600</pubDate>
      <guid>http://www.joshnichols.com/articles/publish-template-info-for-delicious-library-2/</guid>
      <description>&lt;p&gt;I&amp;#8217;ve been wanting to customize the templates, for the Publish feature in &lt;a href="http://delicious-monster.com/"&gt;Delicious Library 2&lt;/a&gt; for a long time. The ones it comes with are nice, but I want to be able to pull the data and display it in my own way, so I reverse engineered one of the default templates to see how it all functioned. This is a work-in-progress, so I&amp;#8217;ll update as I figure stuff&amp;#160;out.&lt;/p&gt;&lt;p&gt;&lt;em&gt;Disclaimer: Be sure to back up everything you plan on editing. This is unsupported hacking. I am not responsible for any data&amp;#160;loss.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you are unsure about this, you could try &lt;a href="http://www.bruji.com/"&gt;Bruji.com&amp;#8217;s pedia software&lt;/a&gt; first. Unlike Delicious Library, it actually allows you to create your own &lt;span class="caps"&gt;HTML&lt;/span&gt; publish templates and there&amp;#8217;s &lt;a href="http://bruji.com/howto/templates.html"&gt;documentation to go with it&lt;/a&gt;. I&amp;#8217;d use Bruji&amp;#8217;s stuff, but I&amp;#8217;ve invested a lot of time in &lt;span class="caps"&gt;DL&lt;/span&gt; and I like the way it creates box art, so I&amp;#8217;m sticking with&amp;#160;it.&lt;/p&gt;

&lt;p&gt;The ideal thing I wanted to create was an &lt;span class="caps"&gt;XML&lt;/span&gt; feed of my shelves so I could display a &amp;#8220;Now Playing&amp;#8221; sidebar with box art on my Web site. &lt;span class="caps"&gt;XML&lt;/span&gt; publishing isn&amp;#8217;t possible with &lt;span class="caps"&gt;DL&lt;/span&gt;, so I had to create a basic &lt;span class="caps"&gt;XHTML&lt;/span&gt; template that could be used&amp;#160;instead.&lt;/p&gt;

&lt;h4&gt;Locating the&amp;#160;templates&lt;/h4&gt;

&lt;p&gt;To get to the templates, find the &lt;span class="caps"&gt;DL&lt;/span&gt; application and &amp;#8220;Show Package&amp;#160;Contents.&amp;#8221;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; Delicious Library 2 (Show Package Contents)/Contents/Resources/Templates/HTML Templates/
&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;Copy a template and create a new&amp;#160;one&lt;/h4&gt;

&lt;p&gt;Inside the &lt;code&gt;HTML Templates&lt;/code&gt; folder you&amp;#8217;ll find the template packages. Copy a default one and rename it. Then browse inside with &amp;#8220;Show Package&amp;#160;Contents.&amp;#8221;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; YOURTEMPLATE.libraryhtmltemplate(Show Package Contents)/Contents/
&lt;/code&gt;&lt;/pre&gt;

&lt;h5&gt;File&amp;#160;structure&lt;/h5&gt;

&lt;p&gt;The bare-bones template file structure will look something like&amp;#160;this.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Info.plist
PkgInfo
Resources/
    English.lproj/
        Template.strings
    thumbnail
    zh-Hans.lproj/
Template/
    images/
    index.library.html
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You can add more files as you need for your template, like JavaScript, in the &lt;code&gt;Template&lt;/code&gt;&amp;#160;folder.&lt;/p&gt;

&lt;h5&gt;Name the new&amp;#160;template&lt;/h5&gt;

&lt;p&gt;You&amp;#8217;ll need to edit the &lt;code&gt;Template.strings&lt;/code&gt; file to give your template a name so DL will see&amp;#160;it.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; "Name" = "Basic Info"; /* The name of the template */
 "Description" = "Basic publishing for reuse."; /* Summary of the template */
&lt;/code&gt;&lt;/pre&gt;

&lt;h5&gt;Thumbnail&lt;/h5&gt;

&lt;p&gt;You can create a thumbnail preview of your template by createing a 128 x 128px png&amp;#160;image.&lt;/p&gt;

&lt;h5&gt;Images&lt;/h5&gt;

&lt;p&gt;The &lt;code&gt;images&lt;/code&gt; folder contains all of your template images and the image assets DL will publish. If you use the rating variable, you&amp;#8217;ll need the star images: &lt;code&gt;star-filled.png&lt;/code&gt;, &lt;code&gt;star-empty.png&lt;/code&gt; and&amp;#160;&lt;code&gt;star-half.png&lt;/code&gt;.&lt;/p&gt;

&lt;h4&gt;Basic template&amp;#160;structure&lt;/h4&gt;

&lt;p&gt;The file &lt;code&gt;index.library.html&lt;/code&gt; is the main template file. Here&amp;#8217;s the basic code structure to&amp;#160;start.&lt;/p&gt;

&lt;p&gt;&lt;span class="caps"&gt;DL&lt;/span&gt; will automatically add a &lt;code&gt;!DOCTYPE&lt;/code&gt;, XML namespace and character encoding if you&amp;#160;don&amp;#8217;t.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; &amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;
 &amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&amp;gt;
 &amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Meta: number of items per page, number of table&amp;#160;columns.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;head&amp;gt;      
    &amp;lt;meta name="media-per-column" content="100" /&amp;gt;
    &amp;lt;meta name="columns-per-page" content="1" /&amp;gt;
    &amp;lt;title&amp;gt;Basic Publish&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;As far as I can tell, the template system requires this&amp;#160;table.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;body&amp;gt;
    &amp;lt;table&amp;gt;
       &amp;lt;tr&amp;gt;
         &amp;lt;td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The &lt;code&gt;&amp;lt;div class="medium"&amp;gt;&lt;/code&gt; is required for the output for each&amp;#160;item.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;             &amp;lt;div class="medium"&amp;gt;
                &amp;lt;span class="title"&amp;gt;$title&amp;lt;/span&amp;gt;
                &amp;lt;span class="asin"&amp;gt;$asin&amp;lt;/span&amp;gt;
                &amp;lt;span class="cover-image-sm"&amp;gt;$coverImage90&amp;lt;/span&amp;gt;
                &amp;lt;span class="cover-image-lg"&amp;gt;$coverImage180&amp;lt;/span&amp;gt;
                &amp;lt;span class="creator"&amp;gt;$creatorsCompositeString&amp;lt;/span&amp;gt;
                &amp;lt;span class="rating"&amp;gt;$rating&amp;lt;/span&amp;gt;
                &amp;lt;span class="description"&amp;gt;$primaryDescriptionAttributedString&amp;lt;/span&amp;gt;
             &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Close the&amp;#160;table.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;          &amp;lt;/td&amp;gt;
       &amp;lt;/tr&amp;gt;
    &amp;lt;/table&amp;gt;
&amp;lt;/body&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Close the&amp;#160;&lt;span class="caps"&gt;HTML&lt;/span&gt;.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;h5&gt;Sub&amp;#160;templates&lt;/h5&gt;

&lt;p&gt;You can also nest sub templates, like a mobile version, in folders below your main template. Create a new folder and a new &lt;code&gt;index.library.html&lt;/code&gt; page. It will share the same &lt;code&gt;images&lt;/code&gt; folder. See a default DL iPhone template for an&amp;#160;example.&lt;/p&gt;

&lt;h5&gt;Template&amp;#160;Variables:&lt;/h5&gt;

&lt;p&gt;Here&amp;#8217;s the list of variables that you can use in your template. I haven&amp;#8217;t figured out what all of them do. I also came across a few variables that appear to do nothing, so I left them&amp;#160;out.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;$coverImage90&lt;/code&gt; : Item cover image with max width/height pixel&amp;#160;dimensions&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$asin&lt;/code&gt; : Amazon item&amp;#160;number&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$title&lt;/code&gt; : Item&amp;#160;title&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$fullName&lt;/code&gt; : Name of library&amp;#160;owner&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$addressBookImage60&lt;/code&gt; : Image of library&amp;#160;owner&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$totalItems&lt;/code&gt; : Total items in&amp;#160;Library&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$publishDate&lt;/code&gt; : Published&amp;#160;date&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$rating&lt;/code&gt; : Outputs rating star images: star-filled.png, star-empty.png,&amp;#160;star-half.png&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$creatorsCompositeString&lt;/code&gt; &lt;/li&gt;
&lt;li&gt;&lt;code&gt;$primaryDescriptionAttributedString&lt;/code&gt; : Item&amp;#160;description&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$pageNavigation&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$shelfNavigationPopup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$uuidString&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Change the default color of Tumblr's API audio player</title>
      <link>http://www.joshnichols.com/blog/entry/change-the-default-color-of-tumblrs-api-audio-play/</link>
      <pubDate>Mon, 16 Feb 2009 23:25 -0600</pubDate>
      <guid>http://www.joshnichols.com/articles/change-the-default-color-of-tumblrs-api-audio-play/</guid>
      <description>&lt;p&gt;While designing your own &lt;a href="http://www.tumblr.com/docs/custom_themes"&gt;Tumblr theme&lt;/a&gt;, you have the option to choose between three different audio player colors for your audio posts: black, grey and white. If you&amp;#8217;re pulling data using the &lt;a href="http://www.tumblr.com/docs/api"&gt;Tumblr &lt;span class="caps"&gt;API&lt;/span&gt;&lt;/a&gt;, you are limited to just the default white player. With a slight change to the code, you can display it in other&amp;#160;colors.&lt;/p&gt;&lt;h4&gt;What the &lt;span class="caps"&gt;API&lt;/span&gt;&amp;#160;returns&lt;/h4&gt;

&lt;p&gt;When pulling an audio post from Tumblr&amp;#8217;s &lt;span class="caps"&gt;API&lt;/span&gt; you will get a result that looks like&amp;#160;this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; &amp;lt;audio-player&amp;gt;&amp;amp;lt;embed type="application/x-shockwave-flash" src="http://mrblank.tumblr.com/swf/audio_player.swf?audio_file=http://www.tumblr.com/audio_file/76328024/y1KTnuSvWjneoooxgDICn1bX&amp;amp;amp;color=FFFFFF" height="27" width="207" quality="best"&amp;amp;gt;&amp;amp;lt;/embed&amp;amp;gt;&amp;lt;/audio-player&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;Changing the&amp;#160;color&lt;/h4&gt;

&lt;p&gt;To get other colors, simply look for the variable, &lt;code&gt;color=FFFFFF&lt;/code&gt; and change the &lt;code&gt;FFFFFF&lt;/code&gt; to whatever hexadecimal color you choose. This changes the background color of the player. Buttons and the play-bar are semi-transparent and sit on top of the color. You can generally use any color you want except for a very dark&amp;#160;one.&lt;/p&gt;

&lt;p&gt;If you want a black player, change the swf file &lt;code&gt;audio_player.swf&lt;/code&gt; to &lt;code&gt;audio_player_black.swf&lt;/code&gt;. This will use an opaque black player that will have light&amp;#160;buttons.&lt;/p&gt;

&lt;h4&gt;Some &lt;span class="caps"&gt;XSLT&lt;/span&gt; for&amp;#160;Symphony&lt;/h4&gt;

&lt;p&gt;To change the color with &lt;span class="caps"&gt;XSLT&lt;/span&gt;, you have to do a little bit of &lt;code&gt;substring()&lt;/code&gt; selecting. Once you begin outputting the &lt;code&gt;&amp;lt;audio-player&amp;gt;&lt;/code&gt; node, simply use this bit of&amp;#160;code:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; &amp;lt;xsl:value-of select="substring-before(audio-player,'FFFFFF')" disable-output-escaping="yes"/&amp;gt;
 &amp;lt;!-- Your hex color --&amp;gt;
 &amp;lt;xsl:text&amp;gt;FFCC33&amp;lt;/xsl:text&amp;gt;
 &amp;lt;xsl:value-of select="substring-after(audio-player,'FFFFFF')" disable-output-escaping="yes"/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To change to the black player, use&amp;#160;this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; &amp;lt;xsl:value-of select="substring-before(audio-player,'.swf')" disable-output-escaping="yes"/&amp;gt;
 &amp;lt;xsl:text&amp;gt;_black&amp;lt;/xsl:text&amp;gt;
 &amp;lt;xsl:value-of select="substring-after(audio-player,'audio_player')" disable-output-escaping="yes"/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;Note: the &lt;code&gt;disable-output-escaping="yes"&lt;/code&gt; attribute is required because Tumblr escapes HTML entities for valid&amp;#160;XML.&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;More control,&amp;#160;please&lt;/h4&gt;

&lt;p&gt;If you desire more control over the player&amp;#8217;s looks, you can give &lt;a href="http://blog.dankantor.com/post/44220166/tumblr-mp3-player-hacks"&gt;Dan Kantor&amp;#8217;s JavaScript hack&lt;/a&gt; a&amp;#160;try.&lt;/p&gt;</description>
    </item>
    <item>
      <title>24 Hour Comics Day posters</title>
      <link>http://www.joshnichols.com/blog/entry/24-hour-comics-day-posters/</link>
      <pubDate>Thu, 16 Oct 2008 00:14 -0600</pubDate>
      <guid>http://www.joshnichols.com/articles/24-hour-comics-day-posters/</guid>
      <description>&lt;p&gt;I&amp;#8217;m a member of a local comic group called &lt;a href="http://www.midmococo.com/"&gt;Midmococo&lt;/a&gt;. Each year we host an official &lt;a href="http://www.24hourcomicsday.com/"&gt;24 Hour Comics Day&lt;/a&gt; location where comic artists attempt to create a 24-page comic in 24 hours. This year, we&amp;#8217;ll be working downtown at the &lt;a href="http://cal.missouri.org/"&gt;Columbia Art League&lt;/a&gt;. Because of the extra space, we were able to expand our event. To get more people involved and fill that space, we needed publicity, so I thought this would be a good time to try and silkscreen a poster. With my wife&amp;#8217;s help, it turned into an interesting process, so I thought I&amp;#8217;d share. It didn&amp;#8217;t quite work out as planned, but it still looked&amp;#160;cool.&lt;/p&gt;&lt;h4&gt;Poster&amp;#160;design&lt;/h4&gt;

&lt;p&gt;I started out with a simple design of a spazzed-out comic artist making Wolverine claws out of various drawing tools. (That&amp;#8217;s pretty much how you look after the 24 hour day of drawing comics!) Headlines were set in word balloons for emphasis and little pull-tabs were placed at the bottom so people could tear off the &lt;span class="caps"&gt;URL&lt;/span&gt; for the registration&amp;#160;form.&lt;/p&gt;

&lt;p&gt;I completed the final art and finished the design in Photoshop. Then I set up the separations on different layers so I could output the two different&amp;#160;colors.&lt;/p&gt;

&lt;h4&gt;Transparencies&lt;/h4&gt;

&lt;p&gt;Then it was time to print out transparencies for the screen exposure. For each plate I used two 8.5 x 11, laser printer compatible, overhead projector transparencies and tiled them together. They didn&amp;#8217;t come out black enough, so I had to print two copies of each and layer them. The transparencies would stretch a little from the heat of the printer and the image wouldn&amp;#8217;t quite line up. This messed with the registration some, but it was manageable with my simple design. I split the difference and used some Sharpie&amp;#160;magic.&lt;/p&gt;

&lt;h4&gt;Screens&lt;/h4&gt;

&lt;p&gt;Luckily, my wonderful wife already had a lot of the supplies like ink and screens. I did have to clean the screens and had some trouble with one because the emulsion had been on it for too long. I ended up re-stretching a new screen, which was a pain because the frame was metal. I had to use &lt;a href="http://solutions.3m.com/wps/portal/3M/en_US/3M-Super-77/Super77/"&gt;Super77&lt;/a&gt; and a bunch of clamps. In the end it wasn&amp;#8217;t very tight, but I used it&amp;#160;anyway.&lt;/p&gt;

&lt;p&gt;After all that trouble, I found out that you can use a pressure washer to blast the emulsion away. I could have just took it four blocks away to the car wash instead of stretching new screen.&amp;#160;Arg!&lt;/p&gt;

&lt;p&gt;Then I covered the screens with emulsion, using Natalie&amp;#8217;s nifty spreader tool, and let them dry in a makeshift darkroom in the basement&amp;#160;bathroom.&lt;/p&gt;

&lt;h4&gt;Exposure&lt;/h4&gt;

&lt;p&gt;With the screens ready, I set up my exposing area. It was just a lamp, table, piece of glass and a timer. Natalie had a handy exposure tester and with one of the ready screens, I tested the exposure several times to get the right light distance and exposure&amp;#160;time.&lt;/p&gt;

&lt;p&gt;Then I took the other screen and set the transparency for the white plate face down on the screen and placed the glass on top. Next, I set the timer and turned on the lamp. I turned on the lamp by plugging it in so it wouldn&amp;#8217;t move and mess up the exposure. Once time was up, I turned off the light and rinsed the screen reveling my&amp;#160;design.&lt;/p&gt;

&lt;p&gt;The next screen had been used for testing so I had to wash the emulsion out. After that, I applied new emulsion and exposed the black plate. While washing the black plate, all the emulsion started to wash out&amp;#8201;&amp;#8212;&amp;#8201;not just the unexposed areas. I didn&amp;#8217;t let it dry long enough, so I had to clean it all and try that plate again. Arg!&amp;#160;Arg!&lt;/p&gt;

&lt;h4&gt;Printing&amp;#160;process&lt;/h4&gt;

&lt;p&gt;Natalie already had a nice base with clamps ready to go and and a new ink squeegee for spreading the ink. I figured the printing process would go pretty smoothly, but unfortunately, I made another big mistake. I thought I&amp;#8217;d be cool, thrifty and green by printing on brown paper bags. It shows how resourceful, or cheap, comic artists are when creating their art. It also matched the jams we sometimes do on chipboard during&amp;#160;meetings.&lt;/p&gt;

&lt;p&gt;It was a neat concept, but paper bags are the &lt;em&gt;worst&lt;/em&gt; paper to silkscreen on. I think the only thing that would be worse is toilet paper! Arg! Arg!&amp;#160;Arg!&lt;/p&gt;

&lt;p&gt;Naturally, I didn&amp;#8217;t figure that little detail out until after Natalie cut down all the bags and I had printed the white plate. The bags were too rough and had folds and creases (even after ironing) that kept the screen from laying completely flat. I had to push down really hard to get decent ink coverage. Combine that with the loose screen on the black plate and I got a lot of ink bleeding onto the back of the screen. It made the image smear and spread out. I was having to wipe the back of the screen off after every print to keep the text&amp;#160;legible.&lt;/p&gt;

&lt;h4&gt;Trimming and&amp;#160;posting&lt;/h4&gt;

&lt;p&gt;The last step, after the ink dried, was to trim everything down. Again, some of that junk Natalie stores in the basement became useful. Who knew? I was able to quickly trim down the posters with her mat cutter and a few snips with scissors separated the pull-tabs on the&amp;#160;bottom.&lt;/p&gt;

&lt;p&gt;Hanging the posters was a piece of cake since I had a lot of help with that from Midmococo&amp;#160;buddies.&lt;/p&gt;

&lt;h4&gt;Will I silkscreen&amp;#160;again?&lt;/h4&gt;

&lt;p&gt;Despite my problems, the posters turned out pretty cool. The brown paper with the black and white ink really have a lot of contrast and is eye-catching, so I&amp;#8217;m happy with the&amp;#160;results.&lt;/p&gt;

&lt;p&gt;It was certainly a learning process which is why I&amp;#8217;m glad my design was simple and didn&amp;#8217;t require tight registration. It allowed me a lot of room for&amp;#160;error.&lt;/p&gt;

&lt;p&gt;As for wanting to silkscreen again? I&amp;#8217;m not sure. It was fun, but really hard work. (I guess I&amp;#8217;m spoiled by cheap color printing.) I think I might be tempted to do it again. For now, I think I&amp;#8217;ve had my fill for a&amp;#160;while.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New York Times' double click dictionary</title>
      <link>http://www.joshnichols.com/blog/entry/new-york-times-double-click-dictionary/</link>
      <pubDate>Tue, 10 Jun 2008 12:32 -0600</pubDate>
      <guid>http://www.joshnichols.com/articles/new-york-times-double-click-dictionary/</guid>
      <description>&lt;p&gt;While reading an article on &lt;a href="http://www.nytimes.com/"&gt;NYTimes.com&lt;/a&gt;, I discovered a handy little feature that I never really noticed before. When I double clicked on a word to highlight it, a pop-up window appeared with a definition. At first I was annoyed to have a pop-up appear, but once I figured out what was going on, I started to like&amp;#160;it.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.flickr.com/photos/mrblank/2546943542/" title="New York Times' dictionary by MrBlank, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3127/2546943542_d8091aa14a.jpg" width="500" height="276" alt="New York Times' dictionary" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;What it&amp;#160;does&lt;/h4&gt;

&lt;p&gt;In the body copy of an article page, if you double click on a word to highlight it, a pop-up window appears with information about the word from &lt;a href="http://www.answers.com/"&gt;Answers.com&lt;/a&gt;. You&amp;#8217;ll get a definition, pronunciation and&amp;#160;synonyms.&lt;/p&gt;

&lt;h4&gt;Usability&amp;#160;concerns&lt;/h4&gt;

&lt;p&gt;Anytime the page is programmed to do something outside of normal browser functionality, you run into some usability concerns. Often, I will highlight text so I can copy and paste it somewhere and this script may get in the way of that. &lt;em&gt;The New York Times&lt;/em&gt; has minimized that from happening by making the script only activate when you double click on a single&amp;#160;word.&lt;/p&gt;

&lt;p&gt;Most of the time, I&amp;#8217;m copy and pasting a whole sentence by clicking and dragging the cursor to highlight the text and this action won&amp;#8217;t trigger the script. I rarely highlight a single word except for certain occasions where it&amp;#8217;s a long, unfamiliar word or a name I want to be sure to spell correctly. In those occasional times, the script does get in the way, but if I click and drag to highlight, instead of double clicking, it&amp;#160;doesn&amp;#8217;t.&lt;/p&gt;

&lt;p&gt;Despite that one small problem, I find the script to be pretty helpful and do more good than bad. I&amp;#8217;m glad it&amp;#8217;s there and consider it to be a handy feature that I&amp;#8217;ll&amp;#160;use.&lt;/p&gt;

&lt;h4&gt;How to block the&amp;#160;script&lt;/h4&gt;

&lt;p&gt;If you still can&amp;#8217;t stand this &amp;#8220;feature&amp;#8221; and want it off, you can disable it by blocking the specific script that runs&amp;#160;it:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;/js/common/screen/altClickToSearch.js
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Some options&amp;#160;are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Firefox&amp;#8201;&amp;#8211;&amp;#8201;&lt;a href="http://adblockplus.org/"&gt;AdBlock&amp;#160;Plus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Opera&amp;#8201;&amp;#8211;&amp;#8201;Opera&amp;#8217;s built it content&amp;#160;blocker&lt;/li&gt;
&lt;li&gt;Safari&amp;#8201;&amp;#8211;&amp;#8201;&lt;a href="http://safariadblock.sourceforge.net/"&gt;Safari&amp;#160;AdBlock&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;any other content blocking&amp;#160;software&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>301 redirects in Symphony</title>
      <link>http://www.joshnichols.com/blog/entry/301-redirects-in-symphony/</link>
      <pubDate>Fri, 30 May 2008 07:37 -0600</pubDate>
      <guid>http://www.joshnichols.com/articles/301-redirects-in-symphony/</guid>
      <description>&lt;p&gt;When I launched the new design of my site, I also changed the way URLs were structured causing broken incoming links from search engine traffic. Since I didn&amp;#8217;t want Google to think those pages vanished, I needed to create a few 301 redirects to keep my posts showing up in searches. Because of the way Symphony does some RewriteRules in the &lt;code&gt;.htaccess&lt;/code&gt;, the default, easy way to add 301 redirects doesn&amp;#8217;t quite work as expected. After some &lt;a href="http://beta.overture21.com/forum/comments.php?DiscussionID=291"&gt;asking in the forum&lt;/a&gt; and some trial and error I managed to find a different&amp;#160;way.&lt;/p&gt;&lt;h4&gt;A simple 301&amp;#160;redirect&lt;/h4&gt;

&lt;p&gt;Most of the time this type of redirect would work just&amp;#160;fine&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Redirect 301 /2007/04/30/more-psp-hackery-ripping-ps1-games-in-osx/ http://www.joshnichols.com/blog/entry/more-psp-hackery-ripping-ps1-games-in-osx/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;With Symphony, this is the resulting link from that&amp;#160;redirect&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;http://www.joshnichols.com/blog/entry/more-psp-hackery-ripping-ps1-games-in-osx/?page=2007/04/30/more-psp-hackery-ripping-ps1-games-in-osx
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;A &lt;code&gt;?page=&lt;/code&gt; and the old URL is appended to the new URL resulting in a 404&amp;#160;page.&lt;/p&gt;

&lt;h4&gt;How to do it with&amp;#160;Symphony&lt;/h4&gt;

&lt;p&gt;To get 301 redirects to work in Symphony, you have to create a new set of RewriteRules. In the default Symphony-generated &lt;code&gt;.htaccess&lt;/code&gt;, right after this bit of&amp;#160;code,&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;### Symphony 2.0 - Do not edit ###

&amp;lt;IfModule mod_rewrite.c&amp;gt;
    RewriteEngine on
    RewriteBase /
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;put in your redirects like&amp;#160;this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;### Redirects from old site
RewriteRule ^2007/04/30/more-psp-hackery-ripping-ps1-games-in-osx/$ http://www.joshnichols.com/blog/entry/more-psp-hackery-ripping-ps1-games-in-osx/ [R=301,L]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The bit between the &lt;code&gt;^&lt;/code&gt; and the &lt;code&gt;$&lt;/code&gt; is the old URL and then the second part, after a space, is the new URL. &lt;code&gt;[R=301,L]&lt;/code&gt; means it&amp;#8217;s a 301 redirect and to end the RewriteRule. To add more redirects, just add a new RewriteRule on the next&amp;#160;line.&lt;/p&gt;

&lt;p&gt;If you have a &lt;span class="caps"&gt;URL&lt;/span&gt; to redirect that uses an extension, don&amp;#8217;t forget to escape the &lt;code&gt;.&lt;/code&gt; with a &lt;code&gt;\&lt;/code&gt; like&amp;#160;so:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;RewriteRule ^2007/04/30/more-psp-hackery-ripping-ps1-games-in-osx/index\.php$ http://www.joshnichols.com/blog/entry/more-psp-hackery-ripping-ps1-games-in-osx/ [R=301,L]
&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Outputting textareas containing &amp;lt;pre&amp;gt; in Symphony</title>
      <link>http://www.joshnichols.com/blog/entry/outputting-textareas-containing-in-symphony/</link>
      <pubDate>Mon, 26 May 2008 12:43 -0600</pubDate>
      <guid>http://www.joshnichols.com/articles/outputting-textareas-containing-in-symphony/</guid>
      <description>&lt;p&gt;When I was creating my custom templates for Symphony, I reused a lot of code from the default template. This helped me learn how Symphony functioned and how to write &lt;span class="caps"&gt;XSLT&lt;/span&gt;. Because the default template used wildcard selectors when outputting data in textareas, my template did too. It worked fine until I had a post with code blocks in it and then I had a&amp;#160;problem.&lt;/p&gt;&lt;h4&gt;The default template&amp;#160;way&lt;/h4&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;xsl:copy-of select="body/*"/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The default template uses a wildcard selector which will select all element children of the &amp;#8216;body&amp;#8217; node and copy every node individually. The resulting &lt;span class="caps"&gt;XML&lt;/span&gt; is nicely indented&amp;#8201;&amp;#8212;&amp;#8201;even inside&amp;#160;&lt;code&gt;&amp;lt;pre&amp;gt;&lt;/code&gt;&amp;#160;elements.&lt;/p&gt;

&lt;p&gt;This is not good if you have any articles with code blocks in them. That extra whitespace that the indenting uses between the &lt;code&gt;&amp;lt;pre&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;code&amp;gt;&lt;/code&gt; tags show up in your code block in the browser messing up your code&amp;#160;formatting.&lt;/p&gt;

&lt;h4&gt;Solution&amp;#160;one&lt;/h4&gt;

&lt;p&gt;One way that allows the widcard method to work with &lt;code&gt;&amp;lt;pre&amp;gt;&lt;/code&gt; is to use the &lt;a href="http://www.w3schools.com/xsl/el_output.asp"&gt;&lt;code&gt;&amp;lt;output&amp;gt;&lt;/code&gt;&lt;/a&gt; element in the stylesheet and turn off&amp;#160;indenting.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;xsl:output indent="no"/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This solves the problem, but all of your resulting &lt;span class="caps"&gt;XML&lt;/span&gt; will not be indented. This may not be a big deal since Symphony&amp;#8217;s &lt;code&gt;?debug&lt;/code&gt; screen will indent the code for you making debugging&amp;#160;easier.&lt;/p&gt;

&lt;h4&gt;Solution two (the option I&amp;#160;like)&lt;/h4&gt;

&lt;p&gt;I like clean code and I think output indenting is a good thing so I needed a different option. Another way to select child nodes is to use the &lt;code&gt;node()&lt;/code&gt;&amp;#160;function.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;xsl:copy-of select="body/node()"/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This will select all element children of the &amp;#8216;body&amp;#8217; node and copy them all at the same time. The resulting output will not be indented and no extra whitespace will be added to your code&amp;#160;blocks.&lt;/p&gt;

&lt;p&gt;It&amp;#8217;s not a perfect solution because all the code inside the textarea won&amp;#8217;t be indented when transformed into &lt;span class="caps"&gt;XHTML&lt;/span&gt;, but the rest of the page will and that&amp;#8217;s good enough for&amp;#160;me.&lt;/p&gt;</description>
    </item>
    <item>
      <title>IE conditional comments &amp;amp; XSLT</title>
      <link>http://www.joshnichols.com/blog/entry/ie-conditional-comments-xslt/</link>
      <pubDate>Tue, 20 May 2008 19:10 -0600</pubDate>
      <guid>http://www.joshnichols.com/articles/ie-conditional-comments-xslt/</guid>
      <description>&lt;p&gt;While I was building my site in Symphony, I had a bit of a learning curve with &lt;span class="caps"&gt;XSLT&lt;/span&gt; and even simple, little things were a challenge. One of those dumb, little things were getting &lt;a href="http://www.positioniseverything.net/articles/cc-plus.html"&gt;Internet Explorer conditional comments&lt;/a&gt; to output in my &lt;span class="caps"&gt;XHTML&lt;/span&gt;. It took a bit of Googling, but I figured it&amp;#160;out.&lt;/p&gt;&lt;h4&gt;Below is the code I wanted to&amp;#160;output&lt;/h4&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;!--[if IE]&amp;gt;&amp;lt;link rel="stylesheet" href="http://www.joshnichols.com/workspace/css/ie.css" type="text/css" media="screen, projection"&amp;gt;&amp;lt;![endif]--&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I tried wrapping it with &lt;a href="http://www.w3schools.com/xsl/el_comment.asp"&gt;&lt;code&gt;&amp;lt;xsl:comment&amp;gt;&lt;/code&gt;&lt;/a&gt; but since there were incomplete nodes inside from the &lt;span class="caps"&gt;IE&lt;/span&gt; specific comment, the &lt;span class="caps"&gt;XML&lt;/span&gt; wasn&amp;#8217;t well formed. After searching for an answer on Google, I found out about &lt;a href="http://www.w3schools.com/Xml/xml_cdata.asp"&gt;&lt;span class="caps"&gt;XML&lt;/span&gt; &lt;span class="caps"&gt;CDATA&lt;/span&gt;&lt;/a&gt;. It keeps anything between &lt;code&gt;&amp;lt;![CDATA[&lt;/code&gt; and &lt;code&gt;]]&amp;gt;&lt;/code&gt; from being parsed. I added that bit of code and I was able to pass the conditional comment&amp;#160;through.&lt;/p&gt;

&lt;h4&gt;Here&amp;#8217;s the final working&amp;#160;code&lt;/h4&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;xsl:comment&amp;gt;&amp;lt;![CDATA[[if IE]&amp;gt;&amp;lt;link rel="stylesheet" href="http://www.joshnichols.com/workspace/css/ie.css" type="text/css" media="screen, projection"&amp;gt;&amp;lt;![endif]]]&amp;gt;&amp;lt;/xsl:comment&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Anytime you want to pass commented out code that isn&amp;#8217;t well formed &lt;span class="caps"&gt;XML&lt;/span&gt; through the &lt;span class="caps"&gt;XML&lt;/span&gt; transformer, you&amp;#8217;ll need &lt;span class="caps"&gt;XML&lt;/span&gt;&amp;#160;&lt;span class="caps"&gt;CDATA&lt;/span&gt;.&lt;/p&gt;

&lt;h4&gt;A version for Symphony that&amp;#8217;s more&amp;#160;automated&lt;/h4&gt;

&lt;p&gt;If you&amp;#8217;re looking for something a little more flexible so you can pass some parameters into the link, you can use this handy bit of code I got from &lt;a href="http://www.nickfitz.co.uk/2005/10/27/ie-conditional-comments-in-xslt-10/"&gt;www.nickfitz.co.uk&lt;/a&gt;. It&amp;#8217;s parameters are specific to Symphony, but can be modified&amp;#160;easily.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&amp;gt;

    &amp;lt;xsl:output method="xml"
        doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
        omit-xml-declaration="yes"
        encoding="UTF-8"
        indent="yes" /&amp;gt;

    &amp;lt;xsl:template match="/"&amp;gt;
        &amp;lt;html&amp;gt;
            &amp;lt;head&amp;gt;
                &amp;lt;!-- Head content --&amp;gt;
                &amp;lt;!-- Call the template that will output IE conditional comments --&amp;gt;
                &amp;lt;xsl:call-template name="conditional-comment"&amp;gt;
                    &amp;lt;!-- The 'qualifier' is the version of IE you want to target --&amp;gt;
                    &amp;lt;xsl:with-param name="qualifier" select="'lte IE 8'"/&amp;gt;
                    &amp;lt;!-- The 'contentRTF' contains the link tag with attributes --&amp;gt;
                    &amp;lt;xsl:with-param name="contentRTF"&amp;gt;
                        &amp;amp;lt;link rel="stylesheet" type="text/css" href="{$workspace}/css/ie.css" /&amp;amp;gt;
                    &amp;lt;/xsl:with-param&amp;gt;
                &amp;lt;/xsl:call-template&amp;gt;
            &amp;lt;/head&amp;gt;
            &amp;lt;body&amp;gt;
                &amp;lt;!-- Page content --&amp;gt;
            &amp;lt;/body&amp;gt;
        &amp;lt;/html&amp;gt;
    &amp;lt;/xsl:template&amp;gt;

    &amp;lt;!-- The template that prints the IE conditional comment with the paramaters above --&amp;gt;
    &amp;lt;xsl:template name="conditional-comment"&amp;gt;
        &amp;lt;xsl:param name="qualifier"/&amp;gt;
        &amp;lt;xsl:param name="contentRTF"/&amp;gt;
        &amp;lt;xsl:comment&amp;gt;
            [if &amp;lt;xsl:value-of select="$qualifier"/&amp;gt;]&amp;lt;![CDATA[&amp;gt;]]&amp;gt;
            &amp;lt;xsl:copy-of select="$contentRTF" /&amp;gt;
            &amp;lt;![CDATA[&amp;lt;![endif]]]&amp;gt;
        &amp;lt;/xsl:comment&amp;gt;
    &amp;lt;/xsl:template&amp;gt;

&amp;lt;/xsl:stylesheet&amp;gt;
&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Refinished desktop</title>
      <link>http://www.joshnichols.com/blog/entry/refinished-desktop/</link>
      <pubDate>Mon, 10 Dec 2007 22:27 -0600</pubDate>
      <guid>http://www.joshnichols.com/articles/refinished-desktop/</guid>
      <description>&lt;p&gt;I finally got around to refinishing the top surface of the lighted drafting table I found at the University surplus Ebay store. &lt;a href="http://www.joshnichols.com/blog/entry/my-new-desk/"&gt;It looked pretty rough at first&lt;/a&gt;, but after a few coats of stain and polyurethane it looks new again. Now, it’s time to start using&amp;#160;it!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.flickr.com/photos/mrblank/2102778512/" title="Refinished desk by MrBlank, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2236/2102778512_ab658e6cff.jpg" width="500" height="375" alt="Refinished desk" /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>I was in the news, again</title>
      <link>http://www.joshnichols.com/blog/entry/i-was-in-the-news-again/</link>
      <pubDate>Mon, 29 Oct 2007 22:42 -0600</pubDate>
      <guid>http://www.joshnichols.com/articles/i-was-in-the-news-again/</guid>
      <description>&lt;p&gt;I attempted the the &lt;a href="http://24hourcomics.com/"&gt;24 Hour Comics&lt;/a&gt; thing again this year and I teamed up with a &lt;a href="http://winterizer.mm.st/"&gt;friend&lt;/a&gt;. We did a comic jam of two different stories that would be bound in a flip-book style comic. The trick was that the stories had to relate and every half hour, we would trade our half-finished page and let the other finish it with no pre-planning. Since we were going to end up with 24 pages between the both of us, we did the challenge in 12 hours instead of 24. I know it doesn’t exactly fit the rules, but 24 hours is too much work, in my opinion. The last time I tried it I was a zombie for the rest of the&amp;#160;week.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.flickr.com/photos/mrblank/sets/72157602590173470/"&gt;You can give it a read if you want&lt;/a&gt;. Remember, it was done fast with no planning. I’m surprised actually made&amp;#160;sense!&lt;/p&gt;

&lt;p&gt;The event was put on my my comic group, &lt;a href="http://www.midmococo.com/"&gt;Midmococo&lt;/a&gt;, at our local comic shop, Quinlan Keep. We attracted some media attention and I was on the local news for about two seconds. &lt;a href="http://www.komu.com/satellite/SatelliteRender/KOMU.com/ba8a4513-c0a8-2f11-0063-9bd94c70b769/c05a6b3f-c0a8-2f11-0042-24e60bf1bdc7"&gt;You can watch the clip with &lt;span class="caps"&gt;KOMU&lt;/span&gt; on&amp;#160;Demand&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Midmococo feature in the Missourian</title>
      <link>http://www.joshnichols.com/blog/entry/midmococo-feature-in-the-missourian/</link>
      <pubDate>Sat, 06 Oct 2007 18:37 -0600</pubDate>
      <guid>http://www.joshnichols.com/articles/midmococo-feature-in-the-missourian/</guid>
      <description>&lt;p&gt;I’m part of a small group of comic enthusiasts called the &lt;a href="http://www.midmococo.com/" title="Midmococo home page"&gt;Mid-Missouri Comics Collective&lt;/a&gt; (Midmococo) and during our last meeting we had a reporter from the Missourian interview us about the group. &lt;a href="http://www.webcomicsnation.com/ninjacat/" title="Opey the Warhead"&gt;Zac&lt;/a&gt;, &lt;a href="http://www.testtubecomics.com/" title="Test Tube Comics"&gt;Scott&lt;/a&gt; and I each contributed a self-portrait for the story, which came out today. &lt;a href="http://www.columbiamissourian.com/media/multimedia/2007/pages/Comics/comics2.htm" title="Read the story at the Missourian"&gt;Go give it a&amp;#160;read&lt;/a&gt;!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.flickr.com/photos/mrblank/1500870105/" class="tt-flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2358/1500870105_5dd25a15a4.jpg" alt="Comic Geeks Unite!" border="0" height="282" width="500"/&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>CanoScan LiDE 80 Mac drivers dead</title>
      <link>http://www.joshnichols.com/blog/entry/canoscan-lide-80-mac-drivers-dead/</link>
      <pubDate>Sat, 25 Aug 2007 16:11 -0600</pubDate>
      <guid>http://www.joshnichols.com/articles/canoscan-lide-80-mac-drivers-dead/</guid>
      <description>&lt;p&gt;I get really annoyed when I buy a computer accessory and after one simple upgrade, &lt;em&gt;poof!&lt;/em&gt; it stops working. It’s was understandable when I moved from &lt;span class="caps"&gt;OS9&lt;/span&gt; to &lt;span class="caps"&gt;OSX&lt;/span&gt;. It was whole new operating system and software had to be rewritten, so I dealt with it, but the transition from a PowerPC to an Intel processor shouldn’t be a problem. For some reason, Canon wants to make it a&amp;#160;problem.&lt;/p&gt;&lt;p&gt;I had a G4 mac for a while and used Photoshop &lt;span class="caps"&gt;CS2&lt;/span&gt; to do all of my scanning with a &lt;a href="http://www.usa.canon.com/consumer/controller?act=ModelInfoAct&amp;amp;tabact=DownloadDetailTabAct&amp;amp;fcategoryid=351&amp;amp;modelid=9374"&gt;CanoScan LiDE 80&lt;/a&gt; and it worked great. I upgraded to an Intel mac and it worked exactly the same way my G4 did. Now, I have Photoshop &lt;span class="caps"&gt;CS3&lt;/span&gt; and the scanner no longer woks. I tried getting new drivers from Canon, but they haven’t updated them since Feb. 2006. I then searched and searched the internet for answers and found one that recommends running &lt;span class="caps"&gt;CS3&lt;/span&gt; in Rosetta mode, then the driver works. This means Canon hasn’t updated the driver to run natively on an Intel processor. I’m not going to run it in &lt;a href="http://en.wikipedia.org/wiki/Rosetta_%28software%29"&gt;Rosetta mode&lt;/a&gt; because it’s slow. I wanted &lt;span class="caps"&gt;CS3&lt;/span&gt; because it would run natively on an Intel&amp;#160;Mac.&lt;/p&gt;

&lt;p&gt;This annoyed me so I emailed Canon support for an answer. The answer I got pretty much guaranteed Canon lost me as a customer. They gave me two&amp;#160;“solutions:”&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run Photoshop in Rosetta&amp;#160;mode.&lt;/li&gt;
&lt;li&gt;Buy a new scanner through their upgrade&amp;#160;program.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those pretty much sound like non-solutions to me. The part that really irked me was that they’ve updated the CanoScan LiDE 80 drivers to work with Windows Vista but they can’t seem to make a universal binary Mac driver. Also, my wife has an LiDE 60 and that scanner (which is identical to mine, minus the 35mm film scanning) has updated&amp;#160;drivers.&lt;/p&gt;

&lt;p&gt;I tried using the CanoScan Toolbox software, but it has no preview or scanning options. I tried using Apple’s Image Capture software, but it never finds my scanner — even in Rosetta mode. So, I’m stuck using Photoshop &lt;span class="caps"&gt;CS2&lt;/span&gt; for my scanning until I find a new&amp;#160;scanner.&lt;/p&gt;

&lt;p&gt;Good job Canon! Your products may get good reviews, but computer accessories are only as good as their driver support and your support leaves a lot to be desired. You’ve let me know exactly how you feel about your Mac customers and the next time I need a computer accessory, I’m going with a different brand. In fact, when I get around to getting a new digital camera, I’m going with&amp;#160;Nikon.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I just checked Epson&amp;#8217;s driver downloads to install an old scanner we have at work and guess what? &lt;a href="http://www.epson.com/cgi-bin/Store/support/SupportLeopard.jsp?BV_UseBVCookie=yes"&gt;They have Leopard support&lt;/a&gt;. They still require you to run Photoshop in Rosetta mode to scan in Photoshop, but at least they have a stand-alone scanning app that works. So, I guess my next scanner is an&amp;#160;Epson!&lt;/p&gt;</description>
    </item>
    <item>
      <title>I'm on McCloud nine</title>
      <link>http://www.joshnichols.com/blog/entry/im-on-mccloud-nine/</link>
      <pubDate>Sat, 14 Jul 2007 20:29 -0600</pubDate>
      <guid>http://www.joshnichols.com/articles/im-on-mccloud-nine/</guid>
      <description>&lt;p&gt;I know, the title of this post is sooo lame, but I don’t care. I got my copy of &lt;em&gt;&lt;a href="http://www.amazon.com/Making-Comics-Storytelling-Secrets-Graphic/dp/0060780940/ref=pd_bbs_sr_1/002-0795637-5896053?ie=UTF8&amp;amp;s=books&amp;amp;qid=1184469155&amp;amp;sr=8-1"&gt;Making Comics&lt;/a&gt;&lt;/em&gt; signed by Scott&amp;#160;McCloud!&lt;/p&gt;

&lt;p&gt;&lt;a href="http://winterizer.mm.st/"&gt;Winter&lt;/a&gt; and I took a road trip to St. Louis yesterday to Star Clipper Comics so we could see &lt;a href="http://www.scottmccloud.com/makingcomics/tour.html"&gt;Scott McCloud on his 50 state tour&lt;/a&gt; promoting his new book. His talk was informal and fun and I had a good time talking to other comic fans who were&amp;#160;there.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.flickr.com/photos/mrblank/813731045/" title="McCloud's signature by MrBlank, on Flickr"&gt;&lt;img src="http://farm2.static.flickr.com/1198/813731045_793abaaa21.jpg" width="500" height="375" alt="McCloud's signature" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://starclipper.popshoponline.com/"&gt;Star Clipper&lt;/a&gt; is probably the most beautiful comic shop I’ve ever seen. It is well lit, clean and open. There are plasma screens, Macs and a gallery. Everything is organized and easy to find with an inventory that’s huge. You have your choice of indie comics, graphic novels, monthlies, mini-comics, art books, manga, toys and clothing. I had to restrain myself from spending all my&amp;#160;money.&lt;/p&gt;

&lt;p&gt;Scott’s almost done with his tour, but if he happens to swing by your neck of the woods, be sure to check him out. He and his whole family are great people and I hope to see them&amp;#160;again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Winter pointed me to the &lt;a href="http://community.livejournal.com/mccloudtour/132263.html"&gt;McCloud Tour Blog and the post Ivy wrote&lt;/a&gt; about their trip to St. Louis. I think I’m one of the people she alluded to talking too much to. That’s &lt;span class="caps"&gt;OK&lt;/span&gt;, I was enjoying myself hearing about their travels. I’m glad I mentioned the Science Center Marvel Super Hero exhibit to her. It sounds like they had a good time there. It was a cool&amp;#160;exhibit.&lt;/p&gt;</description>
    </item>
    <item>
      <title>My new desk</title>
      <link>http://www.joshnichols.com/blog/entry/my-new-desk/</link>
      <pubDate>Sat, 14 Jul 2007 00:19 -0600</pubDate>
      <guid>http://www.joshnichols.com/articles/my-new-desk/</guid>
      <description>&lt;p&gt;Check out my new score from the university surplus. I&amp;#8217;ve been waiting a long time for one of these to show up. It&amp;#8217;s a Hamilton brand wooden light-box drafting table from the 60s. It&amp;#8217;s solid as a rock and the glass doesn&amp;#8217;t have a scratch on it. All it needs is refinished and rewired and it&amp;#8217;ll look brand&amp;#160;new.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve been using a regular drafting table and a large light-box on another desk. Now they&amp;#8217;ll be combined into one desk, saving me a bunch of space. I can&amp;#8217;t wait to start using it!&amp;#160;:-)&lt;/p&gt;&lt;p&gt;&lt;a class="tt-flickr" href="http://www.flickr.com/photos/mrblank/806181918/"&gt;&lt;img src="http://farm2.static.flickr.com/1091/806181918_489a3a29db.jpg" border="0" alt="My new drafting table" width="500" height="375" /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>More PSP hackery: Ripping PS1 games in OSX</title>
      <link>http://www.joshnichols.com/blog/entry/more-psp-hackery-ripping-ps1-games-in-osx/</link>
      <pubDate>Fri, 06 Jul 2007 08:12 -0600</pubDate>
      <guid>http://www.joshnichols.com/articles/more-psp-hackery-ripping-ps1-games-in-osx/</guid>
      <description>&lt;p&gt;What&amp;#8217;s the fun of having a &lt;span class="caps"&gt;PSP&lt;/span&gt; if you can&amp;#8217;t play your old Playstation 1 (&lt;span class="caps"&gt;PSX&lt;/span&gt;) games on it? None! That&amp;#8217;s why I decided to write this handy guide on ripping and converting a &lt;span class="caps"&gt;PSP&lt;/span&gt; game for play on a &lt;span class="caps"&gt;PSP&lt;/span&gt; with &lt;a href="http://en.wikipedia.org/wiki/PlayStation_Portable_homebrew#3.40_OE"&gt;custom firmware 3.40&amp;#160;&lt;span class="caps"&gt;OE&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a class="tt-flickr" href="http://www.flickr.com/photos/mrblank/479404090/"&gt;&lt;img src="http://farm1.static.flickr.com/232/479404090_16f91a77cf.jpg" border="0" alt="PrometeusPro" width="500" height="367" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Now, before you decide to give me a lecture on game piracy, I want to let you know that I actually own original copies of all the games I&amp;#8217;m emulating on my &lt;span class="caps"&gt;PSP&lt;/span&gt;, so lay off. Also, I won&amp;#8217;t give you any &lt;span class="caps"&gt;PSX&lt;/span&gt; rips, so don&amp;#8217;t&amp;#160;ask.&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;Things that you&amp;#160;need&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/PlayStation_Portable_homebrew#3.40_OE"&gt;&lt;span class="caps"&gt;PSP&lt;/span&gt; with custom firmware 3.40&amp;#160;&lt;span class="caps"&gt;OE&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://forums.maxconsole.net/showthread.php?t=40526"&gt;&lt;span class="caps"&gt;PSX&lt;/span&gt; game disk that is compatible with the custom&amp;#160;firmware&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Memory stick larger than the &lt;span class="caps"&gt;PSX&lt;/span&gt;&amp;#160;game&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.wattks.com/"&gt;PrometeusPro&amp;#160;0.10.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ellert.se/twain-sane/"&gt;libusb&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;The&amp;#160;process&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Install&amp;#160;libusb&lt;/li&gt;
&lt;li&gt;install&amp;#160;PrometeusPro&lt;/li&gt;
&lt;li&gt;Put the &lt;span class="caps"&gt;PSX&lt;/span&gt; &lt;span class="caps"&gt;CD&lt;/span&gt; in your&amp;#160;mac&lt;/li&gt;
&lt;li&gt;Click the &amp;#8216;&lt;span class="caps"&gt;PSX&lt;/span&gt; -&amp;gt; &lt;span class="caps"&gt;PSP&lt;/span&gt;&amp;#8217;&amp;#160;tab&lt;/li&gt;
&lt;li&gt;Click the little button labeled&amp;#160;&amp;#8217;Rip&amp;#8217;&lt;/li&gt;
&lt;li&gt;Tell it where to save the disk image (it will be a .bin and a .toc&amp;#160;file)&lt;/li&gt;
&lt;li&gt;Wait for it to do it&amp;#8217;s thang (if the red light is flashing on the &lt;span class="caps"&gt;PSP&lt;/span&gt; it&amp;#8217;s&amp;#160;working)&lt;/li&gt;
&lt;li&gt;A confirmation message will tell you it&amp;#8217;s&amp;#160;done&lt;/li&gt;
&lt;li&gt;Go back to &amp;#8216;&lt;span class="caps"&gt;PSX&lt;/span&gt; -&amp;gt; &lt;span class="caps"&gt;PSP&lt;/span&gt;&amp;#8217;&amp;#160;tab&lt;/li&gt;
&lt;li&gt;Click the little button labeled&amp;#160;&amp;#8217;Open&amp;#8217;&lt;/li&gt;
&lt;li&gt;Select the .bin file you just&amp;#160;created&lt;/li&gt;
&lt;li&gt;Have PrometeusPro find the Game &lt;span class="caps"&gt;ID&lt;/span&gt; Number for&amp;#160;you&lt;/li&gt;
&lt;li&gt;Insert an icon, background, etc. if you want (&lt;a href="http://forums.maxconsole.net/showthread.php?t=40802&amp;amp;highlight=icon0.png"&gt;download them here&lt;/a&gt; or see below on how to create them&amp;#160;yourself)&lt;/li&gt;
&lt;li&gt;Set compression to 9 (highest level of&amp;#160;compression)&lt;/li&gt;
&lt;li&gt;Uncheck &amp;#8216;Pal -&amp;gt;&amp;#160;&lt;span class="caps"&gt;NTSC&lt;/span&gt;&amp;#8217;&lt;/li&gt;
&lt;li&gt;Click&amp;#160;&amp;#8217;Start&amp;#8217;&lt;/li&gt;
&lt;li&gt;When it&amp;#8217;s done, connect your &lt;span class="caps"&gt;PSP&lt;/span&gt; to your&amp;#160;mac&lt;/li&gt;
&lt;li&gt;Drag the folder it created to your &lt;span class="caps"&gt;PSP&lt;/span&gt; in &lt;span class="caps"&gt;PSP&lt;/span&gt;/&lt;span class="caps"&gt;GAME&lt;/span&gt;&amp;#160;folder&lt;/li&gt;
&lt;li&gt;Play the&amp;#160;game!&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;A note on multi-disk&amp;#160;games&lt;/h4&gt;

&lt;p&gt;If you are ripping a game that spans more than one disk, be careful. You have to make sure that the &amp;#8216;Game Name&amp;#8217; and &amp;#8216;&lt;span class="caps"&gt;GDIN&lt;/span&gt;&amp;#8217; are exactly the same for all the disks or you won&amp;#8217;t be able to transfer your save data between them. Also you can only do this transfer on games that prompt you to save before a disk change. Games that make you swap disks mid-game won&amp;#8217;t work. Metal Gear Solid is one of the games that won&amp;#8217;t work, so you may want to skip that&amp;#160;one.&lt;/p&gt;

&lt;h4&gt;How to make your own game icon and background&amp;#160;image&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ICON0.PNG&lt;/code&gt;: Icon for the game - image size: 144x80 pixels, PNG&amp;#160;format&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PIC1.PNG&lt;/code&gt;: Background Image shown when you select the game - image size: 480x272 pixels, PNG&amp;#160;format&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TITLE.PNG&lt;/code&gt;: Small title image - image size: 310x180 pixels, PNG format (I just create a transparent png to override the default one Prometeus&amp;#160;uses&lt;/li&gt;
&lt;li&gt;The other files are for an animated icon and background music. I have no idea on how to create those. I think they&amp;#8217;re overkill&amp;#160;anyway.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And that&amp;#8217;s all you have to do to get started playing &lt;span class="caps"&gt;PSX&lt;/span&gt; games on your &lt;span class="caps"&gt;PSP&lt;/span&gt; using &lt;span class="caps"&gt;OSX&lt;/span&gt; software. Not too tough, huh? If you liked &lt;a href="http://www.wattks.com/"&gt;PrometeusPro&lt;/a&gt;, then register it for a buck and help out the&amp;#160;developer.&lt;/p&gt;

&lt;p&gt;&lt;object width="640" height="505"&gt;&lt;param name="movie" value="http://www.youtube.com/v/xb0PasavN1U&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/xb0PasavN1U&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>This hotlink is too hot!</title>
      <link>http://www.joshnichols.com/blog/entry/this-hotlink-is-too-hot/</link>
      <pubDate>Sun, 20 May 2007 21:17 -0600</pubDate>
      <guid>http://www.joshnichols.com/articles/this-hotlink-is-too-hot/</guid>
      <description>&lt;p&gt;Someone &lt;a href="http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&amp;amp;ih=014&amp;amp;sspagename=STRK%3AMEWA%3AIT&amp;amp;viewitem=&amp;amp;item=330122456354&amp;amp;rd=1&amp;amp;rd=1"&gt;copied my Ebay listing&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Hotlink"&gt;hotlinked&lt;/a&gt; my images, so I decided to change the images. I hope this link isn&amp;#8217;t too hot! &gt;;-)&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.flickr.com/photos/mrblank/507136333/" class="tt-flickr"&gt;&lt;img src="http://farm1.static.flickr.com/196/507136333_45979b6f48.jpg" alt="Hotlinked Hasselhoff" width="500" height="218" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;Before and&amp;#160;after&lt;/h4&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/mrblank/507131159/" class="tt-flickr"&gt;&lt;img src="http://farm1.static.flickr.com/230/507131159_fb89322232_m.jpg" alt="Ebay listing stealer - Before" width="149" height="240" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.flickr.com/photos/mrblank/507131161/" class="tt-flickr"&gt;&lt;img src="http://farm1.static.flickr.com/225/507131161_0cef97bcfb_m.jpg" alt="Ebay listing stealer - after" width="186" height="240" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>PSP hackery</title>
      <link>http://www.joshnichols.com/blog/entry/psp-hackery/</link>
      <pubDate>Sat, 28 Apr 2007 22:43 -0600</pubDate>
      <guid>http://www.joshnichols.com/articles/psp-hackery/</guid>
      <description>&lt;p&gt;Not satisfied with messing around seeing which Xbox games really work on the 360, I decided to do something much more nerdy: Hack a&amp;#160;&lt;a href="http://en.wikipedia.org/wiki/PlayStation_Portable"&gt;&lt;span class="caps"&gt;PSP&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I thought about maybe getting a &lt;a href="http://en.wikipedia.org/wiki/GP2X"&gt;&lt;span class="caps"&gt;GP2X&lt;/span&gt;&lt;/a&gt; instead since it&amp;#8217;s way easier to run homebrew software, but after hearing about a new Silent Hill for the &lt;span class="caps"&gt;PSP&lt;/span&gt;, I went with the&amp;#160;Sony.&lt;/p&gt;

&lt;p&gt;Deciding which system to go with was the easy part. The hard part was figuring out how to hack it. Depending on what firmware it has determines how you&amp;#8217;re going to downgrade it, or if you can even downgrade it at&amp;#160;all.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.flickr.com/photos/mrblank/476369745/" title="PSP Firmware 3.40 OE-A by MrBlank, on Flickr"&gt;&lt;img src="http://farm1.static.flickr.com/208/476369745_8794be117a.jpg" width="500" height="295" alt="PSP Firmware 3.40 OE-A" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I had a lot of trouble finding info on how to do it. I guess the &lt;span class="caps"&gt;PSP&lt;/span&gt; homebrew scene changes a lot. After a while, I managed to find &lt;a href="http://www.pspiso.com/index.php?topic=31177.0"&gt;pspiso.com&lt;/a&gt; and it&amp;#8217;s tutorial section in the forum (membership required to view). It had a great post that outlined everything you need to do to get homebrew software&amp;#160;running.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Note:&lt;/strong&gt; There is a slight chance that messing with your &lt;span class="caps"&gt;PSP&lt;/span&gt; firmware can break it. Also, be sure you trust where you are downloading any software you decide to run on your &lt;span class="caps"&gt;PSP&lt;/span&gt;. There have been some viruses released that will break it. If you decide to do this hackery too, proceed at your own risk. &lt;/em&gt;&lt;/p&gt;

&lt;p&gt;First I had to make sure I bought a &lt;span class="caps"&gt;PSP&lt;/span&gt; with firmware virson 3.03 or lower. If got one with 3.10 or higher: No hacking for me. Luckily there was &lt;a href="http://forums.qj.net/f-guides-general-psp-42/t-determining-psp-firmware-using-box-codes-mar-29-2007-28718.html"&gt;a way to tell what firmware a &lt;span class="caps"&gt;PSP&lt;/span&gt; has&lt;/a&gt; by looking at the serial number on the box. I was able to find one that had a firmware of&amp;#160;2.71.&lt;/p&gt;

&lt;p&gt;If I ended up with a firmware between 2.80 and 3.03 would have needed a copy of &lt;span class="caps"&gt;GTA&lt;/span&gt; Liberty City Stories that was unpatched. It has a save game exploit that allows the hackery. You can tell if it is the unpatched one by putting it in your &lt;span class="caps"&gt;PSP&lt;/span&gt; and checking if it has the 2.0 firmware update on&amp;#160;it.&lt;/p&gt;

&lt;p&gt;Next, I used a downgrader to get my firmware to version 1.5. At this point I could have stopped and would have been able to run all kinds of emulators and old &lt;span class="caps"&gt;PSP&lt;/span&gt; games, but I wanted to be able to play newer &lt;span class="caps"&gt;PSP&lt;/span&gt; games and run emulated Playstation 1 games. This involved flashing the 3.40 &lt;span class="caps"&gt;OE&lt;/span&gt;-A Custom Firmware by &lt;a href="http://www.dark-alex.org/"&gt;Dark&amp;#160;Alex&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The update was successful and now I&amp;#8217;m emulating all of my favorite classic games like &lt;a href="http://www.youtube.com/watch?v=60XB7ABYLBQ"&gt;this guy on Youtube&lt;/a&gt;. The games run great and at full speed. I tried a few &lt;span class="caps"&gt;PS1&lt;/span&gt; games and they&amp;#8217;re working fine with just a few glitchy moments. Oh, and regular &lt;span class="caps"&gt;PSP&lt;/span&gt; games work too. It&amp;#8217;s soo&amp;#160;cool!&lt;/p&gt;

&lt;p&gt;Check out the &lt;a href="http://www.youtube.com/watch?v=xb0PasavN1U&amp;amp;eurl"&gt;video I made&lt;/a&gt; of it in&amp;#160;action:&lt;/p&gt;

&lt;p&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/xb0PasavN1U&amp;amp;hl=en"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/xb0PasavN1U&amp;amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Make sure you've got extensions</title>
      <link>http://www.joshnichols.com/blog/entry/make-sure-youve-got-extensions/</link>
      <pubDate>Mon, 09 Apr 2007 21:31 -0600</pubDate>
      <guid>http://www.joshnichols.com/articles/make-sure-youve-got-extensions/</guid>
      <description>&lt;p&gt;Recently, I took some pictures with a borrowed camera and got some images from the photographer at my wedding.  I wasn&amp;#8217;t able to upload these images directly off the cameras into iPhoto 6, so I had to import the images later off of a portable&amp;#160;drive.&lt;/p&gt;

&lt;p&gt;Everything worked fine in iPhoto, and I synced everything up to my video iPod. My intentions were to show off my marriage pictures to family over Easter. When it came time to present the slide show, my marriage photos weren&amp;#8217;t on my iPod. Mom was&amp;#160;disappointed.&lt;/p&gt;&lt;p&gt;When I got back home, everything was fine in iPhoto and I tried re-syncing to my iPod, but the new photos wouldn&amp;#8217;t show up. I thought that maybe the new photos were shot in a raw data format, but I checked my photo library in the Finder and they were all jpgs. Then I noticed that the files didn&amp;#8217;t have an&amp;#160;extension.&lt;/p&gt;

&lt;p&gt;I removed the new pictures from my library and re-imported one with a manually typed &amp;#8216;.jpg&amp;#8217; at the end and it happily synced-up with my iPod. Yes! Problem solved. Then I realized I had over 100 files to manually add a &amp;#8216;.jpg&amp;#8217; to and confirm to &lt;span class="caps"&gt;OSX&lt;/span&gt; that I indeed wanted to add an extension to the file. That was going to take&amp;#160;forever.&lt;/p&gt;

&lt;p&gt;Then I remembered about &lt;a href="http://www.apple.com/macosx/features/automator/"&gt;Automator&lt;/a&gt;. I set up a quick name change workflow that added the extension to my files in just a few seconds. I then took my newly renamed files and imported them into iPhoto and now they all live on my iPod. Moral of the story: If you want pictures on your iPod, make sure you&amp;#8217;ve got&amp;#160;extensions.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/mrblank/453502013/" class="tt-flickr"&gt;&lt;img src="http://farm1.static.flickr.com/239/453502013_60fbaf042c.jpg" alt="Automator" width="500" height="395" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>My domain is safe!</title>
      <link>http://www.joshnichols.com/blog/entry/my-domain-is-safe/</link>
      <pubDate>Thu, 05 Apr 2007 21:36 -0600</pubDate>
      <guid>http://www.joshnichols.com/articles/my-domain-is-safe/</guid>
      <description>&lt;p&gt;If you didn&amp;#8217;t already know, Registerfly is a sinking ship and if they are hosting any of your domains, you better get them out pronto. All the juicy details of sabotage and scandal can be found at&amp;#160;&lt;a href="http://www.registerflies.com/"&gt;Registerflies.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I feel bad about it too. I recommended Registerfly to several of my friends and their domains are now stuck in limbo about to expire. Since Registerfly wasn&amp;#8217;t putting anything on their site about this situation, I would have been totally oblivious to all this if I hadn&amp;#8217;t come across &lt;a href="http://whatdoiknow.org/archives/003006.shtml"&gt;Todd Dominey&amp;#8217;s post on the subject&lt;/a&gt;. He managed to escape the disaster, but I was too late. My own 2 domains were trapped, until today. I was able to transfer the important one out&amp;#8201;&amp;#8212;&amp;#8201;joshnichols.com. The other one is still stuck, but I&amp;#8217;m not concerned about&amp;#160;it.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.flickr.com/photos/mrblank/447961612/" class="tt-flickr"&gt;&lt;img src="http://farm1.static.flickr.com/206/447961612_511e9971a3.jpg" alt="I'm Free!!" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Joshnichols.com had the whois protection, Protectfly, turned on and I couldn&amp;#8217;t turn it off so I could access my authorization code for transfer. This domain showed Registerfly as the domain&amp;#8217;s registrar in the whois lookup. Nothing I did in the control panel would work. I would just get strange errors and Registerfly support was totally useless. I spent a month sending support tickets, sending emails and making phone calls with no answer whatsoever. I only had a few weeks until my domain would expire and I was getting stressed out about&amp;#160;it.&lt;/p&gt;

&lt;p&gt;After reading some of the comments on Registerflies.com, I found a suggestion that ended up working for me. Someone managed to crate a new Registerfly account and transfer ownership of his domains from the &amp;#8216;stuck&amp;#8217; account to the new one. Once moved to the new account, the domains had Protectfly gone and authorization codes appeared. I decided to try it since I had nothing to lose and it worked. I got my authorization code and got the hell&amp;#160;out!&lt;/p&gt;

&lt;p&gt;For some reason, I was able to turn Protectfly off on the other domain, but the authorization code was left blank and I was unable to modify my contact info. This domain had &lt;a href="http://www.enom.com/"&gt;Enom&lt;/a&gt;, a reseller for Registerfly before they became accredited by &lt;span class="caps"&gt;ICANN&lt;/span&gt;, as the registrar in the whois lookup. This might be why this domain acted differently. I contacted Enom about my situation and their solution was for me to create an account on their site and fax my &lt;span class="caps"&gt;I.D.&lt;/span&gt; to them to prove I&amp;#8217;m the owner of my domain. Then they would transfer my domain. What a hassle! I&amp;#8217;m not that interested in this other domain, so I think I&amp;#8217;ll just let it&amp;#160;expire.&lt;/p&gt;

&lt;p&gt;Now I need to work on getting Natalie&amp;#8217;s domains out too and see if this trick helps my friends with stuck domains get them set&amp;#160;free.&lt;/p&gt;</description>
    </item>
    <item>
      <title>So, I didn't get a region-free DVD player</title>
      <link>http://www.joshnichols.com/blog/entry/so-i-didnt-get-a-region-free-dvd-player/</link>
      <pubDate>Sun, 25 Mar 2007 00:17 -0600</pubDate>
      <guid>http://www.joshnichols.com/articles/so-i-didnt-get-a-region-free-dvd-player/</guid>
      <description>&lt;p&gt;After my &lt;a href="http://www.joshnichols.com/blog/entry/anti-piracy-ads-make-me-want-to-pirate/"&gt;little rant on how much I dislike &lt;span class="caps"&gt;DVD&lt;/span&gt; players that don&amp;#8217;t let me skip the &lt;span class="caps"&gt;F.B.I.&lt;/span&gt; warning of doom or anti-piracy ads&lt;/a&gt;, I decided it was time to actually put my money where my mouth was and buy one that would let me skip that stuff. I didn&amp;#8217;t go as far as buying a region-free player from Hong Kong, but I got pretty close with a box at Best&amp;#160;Buy.&lt;/p&gt;&lt;p&gt;Since upgrading to high definition &lt;span class="caps"&gt;TV&lt;/span&gt;, my old 5-disk &lt;span class="caps"&gt;DVD&lt;/span&gt; player had to go. It didn&amp;#8217;t have progressive scan capabilities and the signal it put out looked like ass. I was using my Xbox360 to play DVDs for a temporary solution and it looked pretty good, but I wanted to play .avi files and see if I could find something that would up-convert DVDs to&amp;#160;&lt;span class="caps"&gt;HD&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;I read reviews and couldn&amp;#8217;t find any mentioning anything about being able to skip the crap at the beginning of the disk. Most of the reviews complained of the players breaking down after six months. I guess that&amp;#8217;s sort of the way electronics have gone&amp;#8201;&amp;#8212;&amp;#8201;disposable. I decided I needed a cheap&amp;#160;one.&lt;/p&gt;

&lt;p&gt;When selecting a &lt;span class="caps"&gt;DVD&lt;/span&gt; player there really wasn&amp;#8217;t any difference between the brands and models out there. For me it simply came down to the cheapest one that didn&amp;#8217;t look awful. I went with the &lt;a href="http://www.amazon.com/Philips-DVP5960-Player-Upscaling-direct/dp/B000G18DR0"&gt;Philips &lt;span class="caps"&gt;DVP5960&lt;/span&gt;&lt;/a&gt; since it met the previous requirements and it also played .avi files with&amp;#160;subtitles.&lt;/p&gt;

&lt;p&gt;In a nutshell, the player worked great. It played any .avi file I put into it and DVDs looked sharp. The bigger problems I had with it were the remote being really clunky and cheap and the damn player would only up-convert through the &lt;span class="caps"&gt;HDMI&lt;/span&gt; cable. I use a component input switch,  so no &lt;span class="caps"&gt;HD&lt;/span&gt; through the component cable just sucks. I was going to take it back, but I discovered a nifty feature: I can skip the stuff at the beginning of&amp;#160;DVDs!&lt;/p&gt;

&lt;p&gt;So, back to my earlier rant and how I wasn&amp;#8217;t going to buy another un-skippable player: Since I couldn&amp;#8217;t find one that specifically stated anywhere that it let you skip stuff, I figured I&amp;#8217;d just settle with a little trick I conveniently forgot to mention in my rant. You can skip all that &lt;span class="caps"&gt;F.B.I. B.S.&lt;/span&gt; if you immediately hit &amp;#8216;stop&amp;#8217; after you put the disk in and before it loads. Then hit &amp;#8216;menu&amp;#8217; to go straight to the disk menu. This little trick has worked with every &lt;span class="caps"&gt;DVD&lt;/span&gt; player I&amp;#8217;ve ever tried it&amp;#160;on.&lt;/p&gt;

&lt;p&gt;The neat thing about the Philips &lt;span class="caps"&gt;DVP5960&lt;/span&gt; is that you can skip that &lt;span class="caps"&gt;F.B.I.&lt;/span&gt; junk by pushing the &amp;#8216;next&amp;#8217; button. Other buttons still give you the &amp;#8220;operation prohibited by disk&amp;#8221; crap, but at least the one works. This might be a feature on all new &lt;span class="caps"&gt;DVD&lt;/span&gt; players, but I know my old one didn&amp;#8217;t let me do it. Because the &amp;#8216;next&amp;#8217; button works and it&amp;#8217;ll play every .avi file I throw at it, I&amp;#8217;ll overlook the &lt;span class="caps"&gt;HD&lt;/span&gt; only through &lt;span class="caps"&gt;HDMI&lt;/span&gt; and keep the&amp;#160;thing.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
