<?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" xmlns:posterous="http://posterous.com/help/rss/1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>David Trejo's Thoughts</title>
    <link>http://blog.dtrejo.com</link>
    <description>Most recent posts at David Trejo's Thoughts</description>
    <generator>posterous.com</generator>
    <link xmlns="http://www.w3.org/2005/Atom" href="http://posterous.com/api/sup_update#30a37dd15" type="application/json" rel="http://api.friendfeed.com/2008/03#sup" />
    
    
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/dtrejo" /><feedburner:info uri="dtrejo" /><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://posterous.superfeedr.com/" /><feedburner:emailServiceId>dtrejo</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
      <pubDate>Mon, 02 Jan 2012 14:48:00 -0800</pubDate>
      <title>Convert all line endings to LF</title>
      <link>http://feedproxy.google.com/~r/dtrejo/~3/GOkP3t_B6as/convert-all-line-endings-to-lf</link>
      <guid isPermaLink="false">http://blog.dtrejo.com/convert-all-line-endings-to-lf</guid>
      <description>&lt;p&gt;
	&lt;p&gt;&lt;strong&gt;Why?&lt;/strong&gt; So that you can &lt;a href="http://www.mikealrogers.com/posts/nodemodules-in-git.html"&gt;check your node_modules folder into git&lt;/a&gt;, whether or not there are mixed line endings in files.&lt;/p&gt;
&lt;p&gt;Use &lt;a href="http://www.linuxcommand.org/man_pages/dos2unix1.html"&gt;dos2unix&lt;/a&gt;, which you can get using &lt;a href="http://www.macports.org/"&gt;macports&lt;/a&gt;:&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;sudo port install dos2unix&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;And then use it:&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;dos2unix filetoconvert.js&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Or if there are many offending files:&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;find path/to/bad/files/ | xargs dos2unix&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;And then &lt;code&gt;git add&lt;/code&gt; whatever you like and you&amp;rsquo;ll be good to go!&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.dtrejo.com/convert-all-line-endings-to-lf"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://blog.dtrejo.com/convert-all-line-endings-to-lf#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/dtrejo/~4/GOkP3t_B6as" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/245625/sculptureme.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/36EZ12gGuYmJ</posterous:profileUrl>
        <posterous:firstName>David</posterous:firstName>
        <posterous:lastName>Trejo</posterous:lastName>
        <posterous:nickName>DTrejo</posterous:nickName>
        <posterous:displayName>David Trejo</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://blog.dtrejo.com/convert-all-line-endings-to-lf</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 23 Dec 2011 22:38:00 -0800</pubDate>
      <title>How to detect that node.js is running on Windows</title>
      <link>http://feedproxy.google.com/~r/dtrejo/~3/scT3PtdwucM/how-to-detect-that-nodejs-is-running-on-windo</link>
      <guid isPermaLink="false">http://blog.dtrejo.com/how-to-detect-that-nodejs-is-running-on-windo</guid>
      <description>&lt;p&gt;
	&lt;p&gt;Do something like this:&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;if (process.platform === 'win32') {
  console.log('This is windows');
} else {
  console.log('%s is not windows, I hope!', process.platform);
}&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Needed this to update &lt;a href="https://github.com/dtrejo/run.js"&gt;run.js&lt;/a&gt; to work on Windows. Still not done making it work, but sometime soon it will happen.&lt;/p&gt;
&lt;p&gt;The main reason I need to do this is because &lt;a href="http://nodejs.org/docs/latest/api/all.html#fs.watchFile"&gt;fs.watchFile&lt;/a&gt; works on Mac/Linux, but only &lt;a href="http://nodejs.org/docs/latest/api/all.html#fs.watch"&gt;fs.watch&lt;/a&gt; works on windows. Once I have it working correctly I'll post an update with code.&lt;/p&gt;
&lt;p&gt;Cheers!&lt;br /&gt; David&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.dtrejo.com/how-to-detect-that-nodejs-is-running-on-windo"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://blog.dtrejo.com/how-to-detect-that-nodejs-is-running-on-windo#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/dtrejo/~4/scT3PtdwucM" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/245625/sculptureme.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/36EZ12gGuYmJ</posterous:profileUrl>
        <posterous:firstName>David</posterous:firstName>
        <posterous:lastName>Trejo</posterous:lastName>
        <posterous:nickName>DTrejo</posterous:nickName>
        <posterous:displayName>David Trejo</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://blog.dtrejo.com/how-to-detect-that-nodejs-is-running-on-windo</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 21 Jan 2011 19:35:00 -0800</pubDate>
      <title>Scraping Made Easy with jQuery and SelectorGadget</title>
      <link>http://feedproxy.google.com/~r/dtrejo/~3/xoprXLo3Nj0/scraping-made-easy-with-jquery-and-selectorga</link>
      <guid isPermaLink="false">http://blog.dtrejo.com/scraping-made-easy-with-jquery-and-selectorga</guid>
      <description>&lt;p&gt;
	&lt;p&gt;&lt;div class='p_embed p_image_embed'&gt;
&lt;img alt="_write_less_do_more" height="53" src="http://posterous.com/getfile/files.posterous.com/temp-2011-01-21/deuiwlcFpntyzroivcxotCHyijasxjdzyjxCkDoqIjAIBsnfElxrGballrcz/_Write_Less_Do_More.gif.scaled500.gif" width="215" /&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;A few days ago I was doing a TON of scraping, and as you know, without the right tools, scraping can be a REAL pain. Out of my pain comes your pleasure &amp;mdash; here&amp;rsquo;s a list of scraping tools and resources which will make your life MUCH easier the next time you need some information from a crufty old website. If you&amp;rsquo;re short on time, skip to the end and read the &lt;code&gt;tl;dr&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;Scraping with jQuery and Node.js&lt;/h2&gt;
&lt;p&gt;Scraping with jQuery is a real pleasure. Here&amp;rsquo;s some &lt;a href="https://gist.github.com/790580"&gt;example code&lt;/a&gt; to get you started, it gets the top three articles with their point values from Hacker News. The key part:&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;var window = jsdom(agent.body).createWindow()
    , $ = require('jquery').create(window);
  
  // scrape!
  var titles = $('.title a')
    , points = $('.subtext span');
    
  var printme = $.map(points, function(el, i) {
      if (i &amp;lt; 3) {
        return $(el).text() + '\t' + $(titles[i]).text();
      }
    });
  
  console.log(printme.join('\n'));&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;To get the example working, make sure you&amp;rsquo;ve installed &lt;a href="http://joyeur.com/2010/12/10/installing-node-and-npm/"&gt;node.js and npm&lt;/a&gt;). You may find &lt;a href="https://github.com/dtrejo/run.js"&gt;run.js&lt;/a&gt; very helpful for auto-rerunning your scraper whenever you make a change.&lt;/p&gt;
&lt;h2&gt;Test your code live against the page with jqueryify&lt;/h2&gt;
&lt;p&gt;Now that you can run any jQuery code you&amp;rsquo;d like, you can start testing your code against the page. I like to use firebug or Google Chrome&amp;rsquo;s built in console. Not all pages have jQuery included, and sometimes the version of jQuery will be old, so it&amp;rsquo;s best to overwrite it with your own version using the &lt;a href="http://www.learningjquery.com/2006/12/jquerify-bookmarklet"&gt;jqueryify bookmarklet&lt;/a&gt; (it&amp;rsquo;s also a good idea to change the version of jQuery used by the bookmarklet to match the one used by jsdom to avoid any strange bugs).&lt;/p&gt;
&lt;h2&gt;Find the shortest selector with Selector Gadget&lt;/h2&gt;
&lt;p&gt;Next up is finding the correct selectors for the information you want to extract. &lt;a href="http://www.selectorgadget.com/"&gt;Selector Gadget&lt;/a&gt; makes it very easy to find the least complicated selector that still does the job. Of course you can always choose selectors by hand if you don&amp;rsquo;t fancy selector gadget, but it is super helpful for crufty nasty sites.&lt;/p&gt;
&lt;h2&gt;Scrape dynamic pages that use javascript to populate information (arg!)&lt;/h2&gt;
&lt;p&gt;At this point you can easily find selectors and test on the page live, but there is danger ahead if you encounter a site that uses javascript or AJAX to populate the information. Your tests will work just fine, but when you load the page programmatically, the page&amp;rsquo;s javascript won&amp;rsquo;t be run. There&amp;rsquo;s a few ways to get around this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Use a regex to extract the values from the javascript written to script tags in the page.&lt;/li&gt;
&lt;li&gt;Pretend to be the page and Make requests to the AJAX urls to get the information you need&lt;/li&gt;
&lt;li&gt;URL hack. There may still be a URL hack you haven&amp;rsquo;t tried which will give you the information you need. (in this case, &lt;a href="https://github.com/mikeal/node-utils/tree/master/request"&gt;request&lt;/a&gt; is your friend.)&lt;/li&gt;
&lt;li&gt;Run the page&amp;rsquo;s javascript programmatically, then scrape the information after it&amp;rsquo;s been slotted into the page. (See &lt;a href="https://github.com/tmpvar/jsdom/"&gt;jsdom&amp;rsquo;s documentation&lt;/a&gt;.).&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Regex: tools to make your life easier&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://txt2re.com"&gt;txt2re.com&lt;/a&gt; is a regex &lt;em&gt;generator.&lt;/em&gt; That&amp;rsquo;s right, &lt;em&gt;generator&lt;/em&gt;, not tester. This means you enter in a string, click the parts you&amp;rsquo;d like to match, and then copy and paste the regex into your code. For me, this is pure bliss.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://regexpal.com"&gt;regexpal.com&lt;/a&gt; helps you quickly test your regular expressions against test data. Protip: only type the regex, omit the &lt;code&gt;/&lt;/code&gt; at the front and end which you&amp;rsquo;d normally use in your javascript.&lt;/p&gt;
&lt;h2&gt;tl;dr&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Use jQuery and node.js for your scraping. &lt;a href="https://gist.github.com/790580"&gt;Example code&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Test on the live page with the &lt;a href="http://www.learningjquery.com/2006/12/jquerify-bookmarklet"&gt;jqueryify bookmarklet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Find the best selectors with &lt;a href="http://www.selectorgadget.com/"&gt;Selector Gadget&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;For pages with inline script tags containing information, use &lt;a href="http://txt2re.com"&gt;txt2re.com&lt;/a&gt; to &lt;em&gt;generate&lt;/em&gt; regular expressions, and &lt;a href="http://regexpal.com/"&gt;regexpal.com&lt;/a&gt; to test them.&lt;/li&gt;
&lt;li&gt;And finally, don&amp;rsquo;t forget that URL hacking is your friend!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks for reading &amp;mdash; if you have any feedback, please leave a comment below!&lt;/p&gt;
&lt;p&gt;PS If things are going wrong, here&amp;rsquo;s the list of common gotchas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;use the same version of jQuery to test as the one you use in your scraper&lt;/li&gt;
&lt;li&gt;make sure the information you need is not loaded by javascript on the page&lt;/li&gt;
&lt;/ul&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.dtrejo.com/scraping-made-easy-with-jquery-and-selectorga"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://blog.dtrejo.com/scraping-made-easy-with-jquery-and-selectorga#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/dtrejo/~4/xoprXLo3Nj0" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/245625/sculptureme.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/36EZ12gGuYmJ</posterous:profileUrl>
        <posterous:firstName>David</posterous:firstName>
        <posterous:lastName>Trejo</posterous:lastName>
        <posterous:nickName>DTrejo</posterous:nickName>
        <posterous:displayName>David Trejo</posterous:displayName>
      </posterous:author>
      <media:content type="image/gif" height="53" width="215" url="http://getfile2.posterous.com/getfile/files.posterous.com/temp-2011-01-21/deuiwlcFpntyzroivcxotCHyijasxjdzyjxCkDoqIjAIBsnfElxrGballrcz/_Write_Less_Do_More.gif">
        <media:thumbnail height="53" width="215" url="http://getfile6.posterous.com/getfile/files.posterous.com/temp-2011-01-21/deuiwlcFpntyzroivcxotCHyijasxjdzyjxCkDoqIjAIBsnfElxrGballrcz/_Write_Less_Do_More.gif.scaled500.gif" />
      </media:content>
    <feedburner:origLink>http://blog.dtrejo.com/scraping-made-easy-with-jquery-and-selectorga</feedburner:origLink></item>
    <item>
      <pubDate>Tue, 07 Dec 2010 15:47:00 -0800</pubDate>
      <title>Touch Tone Tanks featured on TechCrunch TV!</title>
      <link>http://feedproxy.google.com/~r/dtrejo/~3/6ZS_rhJGKrw/touch-tone-tanks-featured-on-techcrunch-tv</link>
      <guid isPermaLink="false">http://blog.dtrejo.com/touch-tone-tanks-featured-on-techcrunch-tv</guid>
      <description>&lt;p&gt;
	&lt;p&gt;&lt;div class='p_embed p_image_embed'&gt;
&lt;img alt="Techcrunch_logo" height="34" src="http://posterous.com/getfile/files.posterous.com/temp-2010-12-07/kDzllrmxmBaxECfhiunfogxlejDrgzycmeHpDiarBogGqbkbudvovApGiDmj/techcrunch_logo.png.scaled500.png" width="231" /&gt;
&lt;/div&gt;
Our app, Touch Tone Tanks, was featured at 6:45 on &lt;a href="http://techcrunch.com/2010/12/07/cloudstock-salesforce-hackers-tctv/"&gt;TechCrunch TV&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;See the &lt;a href="http://techcrunch.com/2010/12/07/cloudstock-salesforce-hackers-tctv/"&gt;video of Touch Tone Tanks&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Check out 6:45 of the above video :)&lt;/p&gt;
&lt;p&gt;- David Trejo&lt;/p&gt;
&lt;p&gt;PS yeah that was pretty repetitive.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.dtrejo.com/touch-tone-tanks-featured-on-techcrunch-tv"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://blog.dtrejo.com/touch-tone-tanks-featured-on-techcrunch-tv#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/dtrejo/~4/6ZS_rhJGKrw" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/245625/sculptureme.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/36EZ12gGuYmJ</posterous:profileUrl>
        <posterous:firstName>David</posterous:firstName>
        <posterous:lastName>Trejo</posterous:lastName>
        <posterous:nickName>DTrejo</posterous:nickName>
        <posterous:displayName>David Trejo</posterous:displayName>
      </posterous:author>
      <media:content type="image/png" height="34" width="231" url="http://getfile6.posterous.com/getfile/files.posterous.com/temp-2010-12-07/kDzllrmxmBaxECfhiunfogxlejDrgzycmeHpDiarBogGqbkbudvovApGiDmj/techcrunch_logo.png">
        <media:thumbnail height="34" width="231" url="http://getfile0.posterous.com/getfile/files.posterous.com/temp-2010-12-07/kDzllrmxmBaxECfhiunfogxlejDrgzycmeHpDiarBogGqbkbudvovApGiDmj/techcrunch_logo.png.scaled500.png" />
      </media:content>
      <media:content type="image/png" height="38" width="200" url="http://getfile2.posterous.com/getfile/files.posterous.com/temp-2010-12-07/iiamqgoIEiiDhdIekIxyqCjakDGtpiiGfruCiqHHmbbdnrBnxpzvlbgDxele/TechCrunch.png">
        <media:thumbnail height="38" width="200" url="http://getfile4.posterous.com/getfile/files.posterous.com/temp-2010-12-07/iiamqgoIEiiDhdIekIxyqCjakDGtpiiGfruCiqHHmbbdnrBnxpzvlbgDxele/TechCrunch.png.scaled500.png" />
      </media:content>
    <feedburner:origLink>http://blog.dtrejo.com/touch-tone-tanks-featured-on-techcrunch-tv</feedburner:origLink></item>
    <item>
      <pubDate>Mon, 22 Nov 2010 15:42:00 -0800</pubDate>
      <title>Always be Coding</title>
      <link>http://feedproxy.google.com/~r/dtrejo/~3/7vqU3pv1BGU/34207327</link>
      <guid isPermaLink="false">http://blog.dtrejo.com/34207327</guid>
      <description>&lt;p&gt;
	&lt;p style="margin-bottom: 1.5em;"&gt;It is very difficult to always be coding. Here is a list that helps me make progress even when I&amp;rsquo;m presented with a hairy complicated technical problem. This list also helps soldier on even if I&amp;rsquo;m not feeling particularly motivated, or in the mood.&lt;/p&gt;
&lt;h2&gt;Mind Tricks&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve ordered this list from hardest to easiest in an attempt to trick my brain into doing at least one of these things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Finish the whole project in one day. &lt;span class="caps"&gt;BAM&lt;/span&gt;.&lt;/li&gt;
&lt;li&gt;Pick an isolated sub-problem and solve that&lt;/li&gt;
&lt;li&gt;Take a 10 minute break and go outside, then come back and look at the problem again&lt;/li&gt;
&lt;li&gt;Write pseudocode&lt;/li&gt;
&lt;li&gt;Write really horrible and ugly and wrong pseudocode, with tons of TODOs and FIXMEs.&lt;/li&gt;
&lt;li&gt;Find a friend who is doing work, and make them guilt you into working with them [New! A highly effective tip suggested by&amp;nbsp;&lt;a href="http://eactiv.com/"&gt;Charles Yeh&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;write tests and example cases to help focus your implementation [New! Big hat tip to &lt;a href="http://twitter.com/#!/jeremyhoffman"&gt;Jeremy Hoffman&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On a somewhat different axis:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Take a pen and paper and sit outside, far away from any screens, and just draw out the problem and how it flows&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;I actually love drafting with a pen and paper, as you described. Somehow it's easier for me to draw out bullet points, boxes, lines, and bits of pseudocode than it is for me to conceive of it on a screen. A trick I've been doing lately, especially when I have to learn a new system or API with many components, is to put each key function or object on a Post-it note. I stick the Post-Its on my desk, or on a single sheet in my notebook if I want to carry my diagram with me (or draw lines between post-its instead of on them). When I need to change my diagram, I don't have to erase anything, I can just move or replace the applicable Post-Its. High-tech!&amp;nbsp;&lt;span style=""&gt; &lt;/span&gt;&amp;mdash;&lt;em&gt;&amp;nbsp;&lt;a href="http://twitter.com/#!/jeremyhoffman"&gt;Jeremy Hoffman&lt;/a&gt;&lt;/em&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Write pseudocode with a pen and paper&lt;/li&gt;
&lt;li&gt;Take nap, but &lt;span class="caps"&gt;ONLY&lt;/span&gt; after you&amp;rsquo;ve done one of the above things for at least 5 minutes!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any mind tricks, please share!&lt;/p&gt;
&lt;p&gt;&amp;ndash; David&lt;/p&gt;
&lt;p&gt;PS Make sure to use&amp;nbsp;&lt;a href="http://calendaraboutnothing.com/"&gt;calendaraboutnothing.com&lt;/a&gt;&amp;nbsp;to really keep yourself honest&amp;nbsp;(suggested by jettiene of #node.js &amp;mdash; thanks!).&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.dtrejo.com/34207327"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://blog.dtrejo.com/34207327#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/dtrejo/~4/7vqU3pv1BGU" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/245625/sculptureme.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/36EZ12gGuYmJ</posterous:profileUrl>
        <posterous:firstName>David</posterous:firstName>
        <posterous:lastName>Trejo</posterous:lastName>
        <posterous:nickName>DTrejo</posterous:nickName>
        <posterous:displayName>David Trejo</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://blog.dtrejo.com/34207327</feedburner:origLink></item>
    <item>
      <pubDate>Tue, 02 Nov 2010 11:34:00 -0700</pubDate>
      <title>Watch me demo my phone-controlled game! 7pm tonight! (#nytm #node.js #twilio #socket.io)</title>
      <link>http://feedproxy.google.com/~r/dtrejo/~3/66YnC5HgXqk/watch-me-demo-my-phone-controlled-game-7pm-to</link>
      <guid isPermaLink="false">http://blog.dtrejo.com/watch-me-demo-my-phone-controlled-game-7pm-to</guid>
      <description>&lt;p&gt;
	&lt;p&gt;&lt;a href="http://livestream.com/nytechmeetup"&gt;&lt;div class='p_embed p_image_embed'&gt;
&lt;img alt="Nytm" height="98" src="http://posterous.com/getfile/files.posterous.com/temp-2010-11-02/gpcmAmqrooFqtxGletwxdClkJoGDbCeEyDIgqbluikpsuvyGubEopBqFrdqw/nytm.png.scaled500.png" width="374" /&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: You can now see a &lt;a href="http://twilly.no.de/#lsplayer"&gt;video demo of touch tone tanks!&lt;/a&gt;&amp;nbsp;(It turns out we didn't crash and burn)&lt;/p&gt;
&lt;p&gt;Good afternoon!&lt;/p&gt;
&lt;p&gt;Later today &lt;a href="http://paulkernfeld.com/" style="color: inherit; text-decoration: none;"&gt;Paul&lt;/a&gt;, Justin, and myself will be demoing our &lt;a href="http://twilly.no.de/" style="color: inherit;"&gt;phone-controlled tanks game&lt;/a&gt;* in front of 900 people at New York Tech Meetup! (I hope we don't crash and burn)&lt;/p&gt;
&lt;p&gt;You can watch us live at&amp;nbsp;&lt;a href="http://livestream.com/nytechmeetup/"&gt;livestream.com/nytechmeetup&lt;/a&gt;&amp;nbsp;at 7pm tonight.&lt;/p&gt;
&lt;p&gt;Cheers,&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;* In case you're curious about how this works:&lt;/p&gt;
&lt;p&gt;First you set up a projector or other large screen, then you bust out your phones, call our phone number, and press the buttons on your keypad to shoot or move around. The tones are sent to the game over all kinds of crazy internet infrastructure (Twilio, node.js, and socket.io if you're curious. We've even open-sourced the communication bits of it so you can build your own phone controlled game or web application. See &lt;a href="http://dtrejo.no.de/"&gt;nodaphone&lt;/a&gt;&amp;nbsp;for documentation and source.)&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.dtrejo.com/watch-me-demo-my-phone-controlled-game-7pm-to"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://blog.dtrejo.com/watch-me-demo-my-phone-controlled-game-7pm-to#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/dtrejo/~4/66YnC5HgXqk" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/245625/sculptureme.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/36EZ12gGuYmJ</posterous:profileUrl>
        <posterous:firstName>David</posterous:firstName>
        <posterous:lastName>Trejo</posterous:lastName>
        <posterous:nickName>DTrejo</posterous:nickName>
        <posterous:displayName>David Trejo</posterous:displayName>
      </posterous:author>
      <media:content type="image/png" height="98" width="374" url="http://getfile7.posterous.com/getfile/files.posterous.com/temp-2010-11-02/gpcmAmqrooFqtxGletwxdClkJoGDbCeEyDIgqbluikpsuvyGubEopBqFrdqw/nytm.png">
        <media:thumbnail height="98" width="374" url="http://getfile5.posterous.com/getfile/files.posterous.com/temp-2010-11-02/gpcmAmqrooFqtxGletwxdClkJoGDbCeEyDIgqbluikpsuvyGubEopBqFrdqw/nytm.png.scaled500.png" />
      </media:content>
    <feedburner:origLink>http://blog.dtrejo.com/watch-me-demo-my-phone-controlled-game-7pm-to</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 03 Sep 2010 13:26:00 -0700</pubDate>
      <title>Node.js for Server Newbs</title>
      <link>http://feedproxy.google.com/~r/dtrejo/~3/y5DFZl_JWaU/nodejs-for-server-newbs</link>
      <guid isPermaLink="false">http://blog.dtrejo.com/nodejs-for-server-newbs</guid>
      <description>&lt;p&gt;
	&lt;p&gt;&lt;div class='p_embed p_image_embed'&gt;
&lt;img alt="Node" height="111" src="http://posterous.com/getfile/files.posterous.com/temp-2010-09-03/ogGiykDxfcmummlxiwFxyqzpjsFtcgtpcHcqyagcAeyuCmmstwjApEfFDkvg/node.png.scaled500.png" width="420" /&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;This is the story of how a&amp;nbsp;webserver noob and thrifty college student got access to a server on which to run node.js.&lt;/p&gt;
&lt;p&gt;This guide is for those who have used node.js locally, but want to run it on a server and show their projects to the world.&lt;/p&gt;
&lt;p&gt;This assumes (almost) no familiarity with how hosting works, but does assume some familiarity with node.js and building from source. This guide will help you install node.js on an Ubuntu 10.4, 64-bit machine.&lt;/p&gt;
&lt;p&gt;Here we go:&lt;/p&gt;
&lt;p&gt;Sign up for web hosting at &lt;a href="http://webbynode.com/"&gt;webbynode&lt;/a&gt;. Why did I choose webbynode? It offers hosting for $10/month with root access. Only prgrmr competes&lt;span style="font-family: sans-serif; border-collapse: collapse; line-height: 19px;"&gt;&amp;dagger;&lt;/span&gt;, but they have $4/month worth of support, which is scary for those new to hosting, namely myself. I also shied away from webfaction ($9.50/month), because while they do allow you to install node.js in your home directory, there are all kinds of configuration headaches (I think). In any case, these instructions are specific to webbynode with the Ubuntu setup.&amp;nbsp;&lt;strong&gt;Update&lt;/strong&gt;: to get 99 cents off with webbynode, use &lt;code&gt;davidt&lt;/code&gt; at checkout.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Under deploy, click the bare linux image, then choose ubuntu 10.4, 64-bit. This may take a a minute or so. When it is active, continue on.&lt;/p&gt;
&lt;p&gt;On your dashboard you should see the IP of your webby, it looks like this: x.x.x.x&lt;/p&gt;
&lt;p&gt;Open up a console* on your local machine, and run these at the command line:&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;localmachine$ ssh root@x.x.x.x&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;(Enter your password to log into your webby server)&lt;/p&gt;
&lt;p&gt;This is key, as it allows you to do everything else:&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;webby# apt-get update
webby# apt-get install git-core g++ make curl libssl-dev&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;(python is already installed)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Now to download the node files and build them&amp;nbsp;(make sure to use the latest version from &lt;a href="http://nodejs.org/#build"&gt;http://nodejs.org/#build&lt;/a&gt;):&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;webby# curl -O http://nodejs.org/dist/node-v0.2.0.tar.gz
webby# tar xvzf node-v0.2.0.tar.gz
webby# cd node-v0.2.0
webby# ./configure
webby# make
webby# make install
webby# node --version
&amp;gt;0.2.0&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;You're ready to write some JS and serve people up!&lt;/p&gt;
&lt;p&gt;Cheers!&lt;/p&gt;
&lt;p&gt;-David&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;PS In order to start serving your site from yourdomain.com, you'll need to follow webbynode's instructions for changing the dns setting with whoever you bought your domain from. Here's their guide:&amp;nbsp;&lt;a href="http://guides.webbynode.com/articles/webbymanager/dns-setup.html"&gt;http://guides.webbynode.com/articles/webbymanager/dns-setup.html&lt;/a&gt; Don't forget to migrate your blog and other things!&lt;/p&gt;
&lt;p&gt;Bonus:&lt;/p&gt;
&lt;p&gt;Set up security on your machine with &lt;a href="http://guides.webbynode.com/articles/security/ubuntu810-ufw.html"&gt;http://guides.webbynode.com/articles/security/ubuntu810-ufw.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Use Tim's guide to restart your node process when it crashes [just pay attention to the &lt;code&gt;upstart&lt;/code&gt; parts, if you want to keep moving parts to a minimum]&lt;/p&gt;
&lt;p&gt;&lt;a href="http://howtonode.org/deploying-node-with-spark"&gt;http://howtonode.org/deploying-node-with-spark&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: sans-serif; border-collapse: collapse; line-height: 19px;"&gt;&amp;dagger; that I know of &amp;mdash; let me know if you find other good options!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;* If you are using a pc you may need to install something like putty so that you can use &lt;code&gt;ssh&lt;/code&gt;.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.dtrejo.com/nodejs-for-server-newbs"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://blog.dtrejo.com/nodejs-for-server-newbs#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/dtrejo/~4/y5DFZl_JWaU" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/245625/sculptureme.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/36EZ12gGuYmJ</posterous:profileUrl>
        <posterous:firstName>David</posterous:firstName>
        <posterous:lastName>Trejo</posterous:lastName>
        <posterous:nickName>DTrejo</posterous:nickName>
        <posterous:displayName>David Trejo</posterous:displayName>
      </posterous:author>
      <media:content type="image/png" height="111" width="420" url="http://getfile1.posterous.com/getfile/files.posterous.com/temp-2010-09-03/ogGiykDxfcmummlxiwFxyqzpjsFtcgtpcHcqyagcAeyuCmmstwjApEfFDkvg/node.png">
        <media:thumbnail height="111" width="420" url="http://getfile7.posterous.com/getfile/files.posterous.com/temp-2010-09-03/ogGiykDxfcmummlxiwFxyqzpjsFtcgtpcHcqyagcAeyuCmmstwjApEfFDkvg/node.png.scaled500.png" />
      </media:content>
    <feedburner:origLink>http://blog.dtrejo.com/nodejs-for-server-newbs</feedburner:origLink></item>
    <item>
      <pubDate>Sun, 15 Aug 2010 20:57:00 -0700</pubDate>
      <title>$1100 clock made with jQuery</title>
      <link>http://feedproxy.google.com/~r/dtrejo/~3/jMBqyLtcFOg/1100-clock-made-with-jquery</link>
      <guid isPermaLink="false">http://blog.dtrejo.com/1100-clock-made-with-jquery</guid>
      <description>&lt;p&gt;
	
&lt;div&gt;The QlockTwo, made in Germany, is a beautiful device.&lt;/div&gt;
&lt;p /&gt;
&lt;div&gt;I set out to steal some of that beauty and made a&amp;nbsp;version of the&amp;nbsp;&lt;a href="http://datrej.appspot.com/qlock/qlock.html" target="_blank"&gt;QlockTwo using jQuery&lt;/a&gt;. You can see it live&amp;nbsp;&lt;a href="http://datrej.appspot.com/qlock/qlock.html" target="_blank"&gt;right here&lt;/a&gt;.&lt;/div&gt;
&lt;p /&gt;
&lt;div&gt;&lt;div class='p_embed p_image_embed'&gt;
&lt;img alt="Qlocktwo" height="500" src="http://posterous.com/getfile/files.posterous.com/temp-2010-08-15/kyqegCluJcbycrEvDrfazIIBCgwxqlaGFhueDpIEdbmyqnfuDGvdukJwxydA/Qlocktwo.jpeg.scaled500.jpg" width="500" /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p /&gt;
&lt;div&gt;Building this clock was a ton of fun. It took me a couple of days, and I learned about the relativity of time (ooh sophisticated).&lt;/div&gt;
&lt;p /&gt;
&lt;div&gt;Here are some fancy&amp;nbsp;psychological&amp;nbsp;things that go on when you use the clock:&lt;/div&gt;
&lt;p /&gt;
&lt;div&gt;The first half of the hour creeps along &amp;mdash; you don't notice the dots as much as the words, so most of the time it's later than what you see in words. The only way to stay accurate is to pay lots of attention to the dots, which requires more thought and means it takes you longer to read the clock.&lt;/div&gt;
&lt;p /&gt;
&lt;div&gt;The second half of the hour races. The words are always either in synced with or ahead of the real-time. This means it that you'll finish meetings earlier, and be more punctual because you'll give yourself extra time to get places. Just make sure you always schedule your appointments on the hour.&lt;/div&gt;
&lt;p /&gt;
&lt;div&gt;&lt;span style="font-size: large;"&gt;Technical Details&lt;/span&gt;&lt;/div&gt;
&lt;p /&gt;
&lt;div&gt;I select the words to be highlighted in a really jenky way. It is very dependent on the structure of the table (yeah I tried to use divs, but I don't have the skill to keep all the words aligned horizontally and vertically and keep everything square too). Here's roughly how the code works:&lt;/div&gt;
&lt;p /&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li style="margin-left: 15px;"&gt;Javascript asks for the time&amp;nbsp;&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;Time is transformed into words by a for loop which used to be a GIGANTIC composite switch and if else statement. It was a mess.&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;The text in all the table cells is put together into one long string. There is a one-to-one relationship between the table cells and the letters in the string. This means that if I match the word "OCLOCK" in the string, and the O in OCLOCK is the 50th character in the string, then I know I can just light up the 50th table cell and it will contain the "O." That wasn't the most clear way of saying things. Here's how it goes: I want to highlight OCLOCK, the code finds the position of OCLOCK in the string, then highlights the table cells in that position.&amp;nbsp;&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;Every 400 milliseconds the clock's face is refreshed. It is important to me that the clock change times in a smooth manner, and it is important that the clock light up in a visible way when you load the page. To achieve a smooth fadein, there is a css transition of .12 seconds. This makes things smooth when the clock changes times. The 400 millisecond fadein leaves the page time to load when you first fire it up, so you get to experience the initial glow when the clock lights up.&amp;nbsp;&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;Now you might be thinking, if the CLOCK REFRESHES EVERY 400 MILLISECONDS THEN WHY ISN'T IT FLASHING LIKE CRAAAAAZYYY?? That's how it was initially, and it was ugly as sin (if you consider sin ugly). Here's the solution: compare the previously lighted letters with the new ones that need to be lighted, unlight the ones not present in the new list, and then light up the new ones. This turns out to be a bit complicated and it turns out Venn diagrams made with water colors are a key tool of the modern-day programmer.&amp;nbsp;&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;What other cool stuff does the clock have in it? I stole a glow from&amp;nbsp;&lt;a href="http://midtonedesign.com" target="_blank"&gt;midtonedesign.com&lt;/a&gt;, which adds the halo behind the clock (cheers Jonotan). I also chose a font from the google font directory that mimics the QlockTwo's font quite well. And of course I threw in some text-shadows to make things glow. Mandatory.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p /&gt;
&lt;div&gt;&lt;span style="font-size: large;"&gt;Conclusion&lt;/span&gt;&lt;/div&gt;
&lt;p /&gt;
&lt;div&gt;&lt;span style="font-size: large;"&gt;&amp;nbsp;&lt;/span&gt;jQuery is tons of fun to work with, and the&amp;nbsp;&lt;a href="http://webchat.freenode.net/?channels=jquery" target="_blank"&gt;#jquery channel&lt;/a&gt;&amp;nbsp;is full of helpful people. I emailed QlockTwo and apparently &lt;a href="http://datrej.appspot.com/qlock/qlock.html"&gt;my version&lt;/a&gt; is a "Nice Application with JQuery and CSS!"&lt;/div&gt;
&lt;p /&gt;
&lt;div&gt;The time distorting aspects of the clock are quite fun, so make sure to put one up in your office so you can wrap up boring meetings more quickly.&lt;/div&gt;
&lt;p /&gt;
&lt;div&gt;Cheers,&lt;/div&gt;
&lt;div&gt;David&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.dtrejo.com/1100-clock-made-with-jquery"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://blog.dtrejo.com/1100-clock-made-with-jquery#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/dtrejo/~4/jMBqyLtcFOg" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/245625/sculptureme.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/36EZ12gGuYmJ</posterous:profileUrl>
        <posterous:firstName>David</posterous:firstName>
        <posterous:lastName>Trejo</posterous:lastName>
        <posterous:nickName>DTrejo</posterous:nickName>
        <posterous:displayName>David Trejo</posterous:displayName>
      </posterous:author>
      <media:content type="image/jpeg" height="500" width="500" url="http://getfile7.posterous.com/getfile/files.posterous.com/temp-2010-08-15/kyqegCluJcbycrEvDrfazIIBCgwxqlaGFhueDpIEdbmyqnfuDGvdukJwxydA/Qlocktwo.jpeg">
        <media:thumbnail height="500" width="500" url="http://getfile8.posterous.com/getfile/files.posterous.com/temp-2010-08-15/kyqegCluJcbycrEvDrfazIIBCgwxqlaGFhueDpIEdbmyqnfuDGvdukJwxydA/Qlocktwo.jpeg.scaled500.jpg" />
      </media:content>
    <feedburner:origLink>http://blog.dtrejo.com/1100-clock-made-with-jquery</feedburner:origLink></item>
    <item>
      <pubDate>Sat, 14 Aug 2010 16:43:00 -0700</pubDate>
      <title>Hotkeys for Hacker News</title>
      <link>http://feedproxy.google.com/~r/dtrejo/~3/ZpZJ4w1Yp74/hotkeys-for-hacker-news</link>
      <guid isPermaLink="false">http://blog.dtrejo.com/hotkeys-for-hacker-news</guid>
      <description>&lt;p&gt;
	&lt;div&gt;I was bored so I made gmail-style &lt;a href="https://chrome.google.com/extensions/detail/nkeegljkkibjiiaehmjfncdbkbbgdojb"&gt;hotkeys for Hacker News&lt;/a&gt;. You can install the chrome extension &lt;a href="https://chrome.google.com/extensions/detail/nkeegljkkibjiiaehmjfncdbkbbgdojb"&gt;here&lt;/a&gt;.&lt;/div&gt;
&lt;p /&gt;
&lt;div&gt;&lt;div class='p_embed p_image_embed'&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/dtrejo/4nfwWtXFP5epbWFqc2Av4z6hH1YZw9exbn3gxRQMGnyi8ZYJR6GWrP8BLYe6/hacker_news_hotkeys_frontpage.png.scaled.1000.jpg"&gt;&lt;img alt="Hacker_news_hotkeys_frontpage" height="316" src="http://posterous.com/getfile/files.posterous.com/dtrejo/hjwuQRc923BKkeui56maCk9sW1TbQgosJow1BDvDdoPxkscrp3fYTGOr2rlF/hacker_news_hotkeys_frontpage.png.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p /&gt;
&lt;div&gt;I thought I'd add support for Vim and Emacs style hotkeys, but then I didn't.&lt;/div&gt;
&lt;p /&gt;
&lt;div&gt;Hope you like the chrome extension. If you are concerned about privacy, it *only* runs on &lt;a href="http://news.ycombinator.com/*" target="_blank"&gt;http://news.ycombinator.com/*&lt;/a&gt;&lt;/div&gt;
&lt;p /&gt;
&lt;div&gt;Have a great day,&lt;/div&gt;
&lt;div&gt;David&lt;/div&gt;
&lt;div&gt;(&lt;a href="http://news.ycombinator.com/user?id=DTrejo"&gt;DTrejo&lt;/a&gt; on HN)&lt;/div&gt;
&lt;p /&gt;
&lt;div&gt;PS Here's the source if you fancy seeing it:&amp;nbsp;&lt;a href="http://github.com/DTrejo/HN-Hotkeys"&gt;http://github.com/DTrejo/HN-Hotkeys&lt;/a&gt;&amp;nbsp;Most of the action goes on in hnkeys.js&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.dtrejo.com/hotkeys-for-hacker-news"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://blog.dtrejo.com/hotkeys-for-hacker-news#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/dtrejo/~4/ZpZJ4w1Yp74" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/245625/sculptureme.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/36EZ12gGuYmJ</posterous:profileUrl>
        <posterous:firstName>David</posterous:firstName>
        <posterous:lastName>Trejo</posterous:lastName>
        <posterous:nickName>DTrejo</posterous:nickName>
        <posterous:displayName>David Trejo</posterous:displayName>
      </posterous:author>
      <media:content type="image/png" height="958" width="1515" url="http://getfile8.posterous.com/getfile/files.posterous.com/dtrejo/qezyG70Dimh95GzH0Ij5KCed1iFV5tyWDqrhPHhqzMZYtw8Nms3x7EUilip7/hacker_news_hotkeys_frontpage.png">
        <media:thumbnail height="316" width="500" url="http://getfile9.posterous.com/getfile/files.posterous.com/dtrejo/hjwuQRc923BKkeui56maCk9sW1TbQgosJow1BDvDdoPxkscrp3fYTGOr2rlF/hacker_news_hotkeys_frontpage.png.scaled.500.jpg" />
      </media:content>
    <feedburner:origLink>http://blog.dtrejo.com/hotkeys-for-hacker-news</feedburner:origLink></item>
    <item>
      <pubDate>Mon, 02 Aug 2010 10:45:00 -0700</pubDate>
      <title>How to Stay Up-to-date with Node.js</title>
      <link>http://feedproxy.google.com/~r/dtrejo/~3/re3DK20D66w/how-to-stay-up-to-date-with-nodejs</link>
      <guid isPermaLink="false">http://blog.dtrejo.com/how-to-stay-up-to-date-with-nodejs</guid>
      <description>&lt;p&gt;
	&lt;p&gt;&lt;div class='p_embed p_image_embed'&gt;
&lt;img alt="Node" height="111" src="http://posterous.com/getfile/files.posterous.com/temp-2010-08-02/fkDBFxEDghoeIeAaxnIEnrtCnhdszFabpmAhxzlGGngGznFAEHdgxcylzbsC/node.js_logo.png.scaled500.png" width="420" /&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;Node.js is changing every day and new releases are very frequent.&amp;nbsp;Here is how I stay up to date with the latest release version of Node.js.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This guide assumes you already have node.js installed and you are familiar with the command line.&lt;/p&gt;
&lt;p&gt;1. Install&amp;nbsp;&lt;a href="http://github.com/isaacs/npm"&gt;npm&lt;/a&gt;&amp;nbsp;(&lt;a href="http://github.com/isaacs/npm"&gt;full npm install guide&lt;/a&gt;)&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;curl http://npmjs.org/install.sh | sh&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Or update it if you've already installed it&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;npm install npm&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;2. Install &lt;a href="http://github.com/isaacs/nave"&gt;nave&lt;/a&gt; with npm&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;npm install nave&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;3. Use nave to run the version of your choice in a subshell&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;nave use 0.1.102&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;4. All done! &amp;nbsp;Repeat from step 3 whenever a new version of node is released. By the way, npm is great, you can even use it to update itself :)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;What tools do you use to stay up to date? If there is a better way, please let me know!&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.dtrejo.com/how-to-stay-up-to-date-with-nodejs"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://blog.dtrejo.com/how-to-stay-up-to-date-with-nodejs#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/dtrejo/~4/re3DK20D66w" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/245625/sculptureme.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/36EZ12gGuYmJ</posterous:profileUrl>
        <posterous:firstName>David</posterous:firstName>
        <posterous:lastName>Trejo</posterous:lastName>
        <posterous:nickName>DTrejo</posterous:nickName>
        <posterous:displayName>David Trejo</posterous:displayName>
      </posterous:author>
      <media:content type="image/png" height="111" width="420" url="http://getfile1.posterous.com/getfile/files.posterous.com/temp-2010-08-02/xlfAImtvaeyfikEqbDEobtDIsedmzCpphnssaksqajqcyzGCicgclgDegszi/node.png">
        <media:thumbnail height="111" width="420" url="http://getfile4.posterous.com/getfile/files.posterous.com/temp-2010-08-02/xlfAImtvaeyfikEqbDEobtDIsedmzCpphnssaksqajqcyzGCicgclgDegszi/node.png.scaled500.png" />
      </media:content>
      <media:content type="image/png" height="111" width="420" url="http://getfile7.posterous.com/getfile/files.posterous.com/temp-2010-08-02/fkDBFxEDghoeIeAaxnIEnrtCnhdszFabpmAhxzlGGngGznFAEHdgxcylzbsC/node.js_logo.png">
        <media:thumbnail height="111" width="420" url="http://getfile7.posterous.com/getfile/files.posterous.com/temp-2010-08-02/fkDBFxEDghoeIeAaxnIEnrtCnhdszFabpmAhxzlGGngGznFAEHdgxcylzbsC/node.js_logo.png.scaled500.png" />
      </media:content>
    <feedburner:origLink>http://blog.dtrejo.com/how-to-stay-up-to-date-with-nodejs</feedburner:origLink></item>
    <item>
      <pubDate>Tue, 27 Jul 2010 16:15:00 -0700</pubDate>
      <title>Meta Rules</title>
      <link>http://feedproxy.google.com/~r/dtrejo/~3/XcUGeOVfqqo/meta-rules</link>
      <guid isPermaLink="false">http://blog.dtrejo.com/meta-rules</guid>
      <description>&lt;p&gt;
	&lt;p&gt;&lt;div class='p_embed p_image_embed'&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/temp-2010-07-27/fFFBwuhbzrrGFsfhDzFcCshatbDldmBbrlcBIuzkIjgHqwjfbfuzogJHHryp/healthcare_epistemocrat.png.scaled1000.png"&gt;&lt;img alt="Healthcare_epistemocrat" height="59" src="http://posterous.com/getfile/files.posterous.com/temp-2010-07-27/fFFBwuhbzrrGFsfhDzFcCshatbDldmBbrlcBIuzkIjgHqwjfbfuzogJHHryp/healthcare_epistemocrat.png.scaled500.png" width="500" /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;Check out my guest post to Brent Pottenger's blog, &lt;a href="http://epistemocrat.blogspot.com/" target="_blank"&gt;Healthcare Epistemocrat&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The post centers on meta rules and the ways I make my life more enjoyable.&lt;/p&gt;
&lt;p&gt;Here's the link:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://epistemocrat.blogspot.com/2010/07/david-trejos-m1n1-meta-rules.html" target="_blank"&gt;David Trejo's Meta Rules&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.dtrejo.com/meta-rules"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://blog.dtrejo.com/meta-rules#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/dtrejo/~4/XcUGeOVfqqo" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/245625/sculptureme.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/36EZ12gGuYmJ</posterous:profileUrl>
        <posterous:firstName>David</posterous:firstName>
        <posterous:lastName>Trejo</posterous:lastName>
        <posterous:nickName>DTrejo</posterous:nickName>
        <posterous:displayName>David Trejo</posterous:displayName>
      </posterous:author>
      <media:content type="image/png" height="79" width="672" url="http://getfile2.posterous.com/getfile/files.posterous.com/temp-2010-07-27/fFFBwuhbzrrGFsfhDzFcCshatbDldmBbrlcBIuzkIjgHqwjfbfuzogJHHryp/healthcare_epistemocrat.png">
        <media:thumbnail height="59" width="500" url="http://getfile3.posterous.com/getfile/files.posterous.com/temp-2010-07-27/fFFBwuhbzrrGFsfhDzFcCshatbDldmBbrlcBIuzkIjgHqwjfbfuzogJHHryp/healthcare_epistemocrat.png.scaled500.png" />
      </media:content>
    <feedburner:origLink>http://blog.dtrejo.com/meta-rules</feedburner:origLink></item>
    <item>
      <pubDate>Thu, 01 Jul 2010 14:41:00 -0700</pubDate>
      <title>How to Install Node.JS on Windows</title>
      <link>http://feedproxy.google.com/~r/dtrejo/~3/JGtVvfvXVvY/how-to-install-nodejs-on-windows</link>
      <guid isPermaLink="false">http://blog.dtrejo.com/how-to-install-nodejs-on-windows</guid>
      <description>&lt;p&gt;
	&lt;p&gt;&lt;div class='p_embed p_image_embed'&gt;
&lt;img alt="Nodejs_logo" height="111" src="http://getfile2.posterous.com/getfile/files.posterous.com/temp-2010-07-01/rnbsgHCcmqExwfjdIBzlosCjnqGwtJgpeHfDtkojpBlzkqdzGnzAGIAeyvqb/nodejs_logo.png.scaled500.png" width="420" /&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 11/23/11&lt;/strong&gt;: Download the official node.exe binary or .msi at &lt;a href="http://nodejs.org/#download"&gt;http://nodejs.org/#download&lt;/a&gt;; install npm using these steps &lt;a href="http://npmjs.org/doc/README.html#Installing-on-Windows-Experimental"&gt;http://npmjs.org/doc/README.html#Installing-on-Windows-Experimental&lt;/a&gt; (note that there are plans to include npm in the .msi installer).&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;Update&lt;strong&gt;:&amp;nbsp;&lt;/strong&gt;Here are the official instructions: &lt;a href="https://github.com/joyent/node/wiki/Building-node.js-on-Cygwin-(Windows)"&gt;github.com/joyent/node/wiki/Building-node.js-on-Cygwin-(Windows)&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;&lt;span style="font-size: small;"&gt;I wan&lt;/span&gt;ted to install node on my windows machine and I stumbled across &lt;a href="http://groups.google.com/group/nodejs/browse_thread/thread/05536eaa3a507e9a"&gt;this thread&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;All you need to do is download the file below and then unzip it.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;&lt;a href="http://dl.dropbox.com/u/341900/nodejs/nodejs-0.1.99-cygwin-full.zip"&gt;http://dl.dropbox.com/u/341900/nodejs/nodejs-0.1.99-cygwin-full.zip&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;Then run bash.bat and do something of this sort:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=""&gt;&lt;span style="text-decoration: line-through;"&gt;cd ~/Desktop&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=""&gt;&lt;span style="text-decoration: line-through;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;span style="text-decoration: line-through;"&gt;nodejs-0.1.99-cygwin-full/node/bin/node.exe example.js&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;&lt;strong&gt;A big thanks to Simon Sturmer for posting the link!&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;mirror:&amp;nbsp;&lt;a href="http://dl.dropbox.com/u/10047/nodejs-0.1.99-cygwin-full.zip"&gt;http://dl.dropbox.com/u/10047/nodejs-0.1.99-cygwin-full.zip&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 11/23&lt;/strong&gt;: Cygwin is no longer supported. See the top of the page.&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;&lt;span style="font-family: arial, sans-serif; font-size: x-large;"&gt;&lt;span style="font-size: xx-large;"&gt;The less easy way&lt;/span&gt; &lt;span style="font-size: small;"&gt;(will work even if node 0.1.99 gets old)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;Go to &lt;a href="http://nodejs.org/#download"&gt;http://nodejs.org/#download&lt;/a&gt; and download the zip file.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;Download cygwin at &lt;a href="http://www.cygwin.com/"&gt;http://www.cygwin.com/&lt;/a&gt; (it is a dependency of node). The download link is at the top right. This could take a while.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;Open cygwin via start &amp;gt; Cygwin &amp;gt; Cygwin Bash Shell&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;Navigate to the location of the zip file, using "ls" and "cd" commands. Mine is on my desktop.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;When the zip file is in the current directory, run&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;tar zxvf node&amp;lt;tab&amp;gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;Press tab after you type node to trigger auto-complete so there are no typos)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;&lt;strong&gt;Congrats! Now you have an unzipped version of node on your desktop. Now to set up a version of python 2.4 or greater.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;Download the latest version of python at &lt;a href="http://www.python.org/download/"&gt;http://www.python.org/download/&lt;/a&gt; (it is a dependency of node)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;When that finishes, go back to the Cygwin window you had open earlier.&amp;nbsp;&lt;span style=""&gt;cd &lt;span style=""&gt;into the node directory you just unzipped.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;Run&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;&lt;span style="font-family: times, Times New Roman, times-roman, georgia, serif; font-size: 19px; color: #eeeeee; line-height: 28px;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;./configure
make
make install&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;span style="font-size: xx-large;"&gt;You're done! Super congrats since you did it the hard way!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;If you feel like running the tests, run&amp;nbsp;&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;make test&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Hopefully I made the process less painful; please let me know if this could be improved in the comments.&lt;/p&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.dtrejo.com/how-to-install-nodejs-on-windows"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://blog.dtrejo.com/how-to-install-nodejs-on-windows#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/dtrejo/~4/JGtVvfvXVvY" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/245625/sculptureme.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/36EZ12gGuYmJ</posterous:profileUrl>
        <posterous:firstName>David</posterous:firstName>
        <posterous:lastName>Trejo</posterous:lastName>
        <posterous:nickName>DTrejo</posterous:nickName>
        <posterous:displayName>David Trejo</posterous:displayName>
      </posterous:author>
      <media:content type="image/png" height="111" width="420" url="http://getfile7.posterous.com/getfile/files.posterous.com/temp-2010-07-01/rnbsgHCcmqExwfjdIBzlosCjnqGwtJgpeHfDtkojpBlzkqdzGnzAGIAeyvqb/nodejs_logo.png">
        <media:thumbnail height="111" width="420" url="http://getfile2.posterous.com/getfile/files.posterous.com/temp-2010-07-01/rnbsgHCcmqExwfjdIBzlosCjnqGwtJgpeHfDtkojpBlzkqdzGnzAGIAeyvqb/nodejs_logo.png.scaled500.png" />
      </media:content>
    <feedburner:origLink>http://blog.dtrejo.com/how-to-install-nodejs-on-windows</feedburner:origLink></item>
    <item>
      <pubDate>Sat, 01 May 2010 19:25:00 -0700</pubDate>
      <title>Untitled</title>
      <link>http://feedproxy.google.com/~r/dtrejo/~3/3zGj8nLRZaY/17928885</link>
      <guid isPermaLink="false">http://blog.dtrejo.com/17928885</guid>
      <description>&lt;p&gt;
	&lt;p&gt;A while ago I updated &lt;a href="http://www.dtrejo.com/" title="David Trejo" target="_self"&gt;dtrejo&lt;/a&gt;.com. It looks prettier now, though it could use some more color.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.dtrejo.com/17928885"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://blog.dtrejo.com/17928885#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/dtrejo/~4/3zGj8nLRZaY" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/245625/sculptureme.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/36EZ12gGuYmJ</posterous:profileUrl>
        <posterous:firstName>David</posterous:firstName>
        <posterous:lastName>Trejo</posterous:lastName>
        <posterous:nickName>DTrejo</posterous:nickName>
        <posterous:displayName>David Trejo</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://blog.dtrejo.com/17928885</feedburner:origLink></item>
    <item>
      <pubDate>Sat, 17 Apr 2010 18:51:47 -0700</pubDate>
      <title>Untitled</title>
      <link>http://feedproxy.google.com/~r/dtrejo/~3/VRlHJGwle0c/16594264</link>
      <guid isPermaLink="false">http://blog.dtrejo.com/16594264</guid>
      <description>&lt;p&gt;
	&lt;div class='p_embed p_image_embed'&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/dtrejo/qdNBhdJdx40Df2ph21OpdzEsjzkqO1QxRst3TKAb5ls2r6t9rlVeP3JV9pMo/IMAG0079.jpg.scaled.1000.jpg"&gt;&lt;img alt="Imag0079" height="334" src="http://posterous.com/getfile/files.posterous.com/dtrejo/1CigyPtdwCksPuk6xrYyZRYe91xXCHEu7lB3av2EV6hZ93RD3XSdqHz0iv1d/IMAG0079.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;/div&gt;

	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.dtrejo.com/16594264"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://blog.dtrejo.com/16594264#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/dtrejo/~4/VRlHJGwle0c" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/245625/sculptureme.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/36EZ12gGuYmJ</posterous:profileUrl>
        <posterous:firstName>David</posterous:firstName>
        <posterous:lastName>Trejo</posterous:lastName>
        <posterous:nickName>DTrejo</posterous:nickName>
        <posterous:displayName>David Trejo</posterous:displayName>
      </posterous:author>
      <media:content type="image/jpeg" height="1712" width="2560" url="http://getfile9.posterous.com/getfile/files.posterous.com/dtrejo/TzIEX8z9rcrKOX4wfqLd7KPm4sf35sZKUqqg7sX1k0EUYGtKBjRzxMiiGjcK/IMAG0079.jpg">
        <media:thumbnail height="334" width="500" url="http://getfile0.posterous.com/getfile/files.posterous.com/dtrejo/1CigyPtdwCksPuk6xrYyZRYe91xXCHEu7lB3av2EV6hZ93RD3XSdqHz0iv1d/IMAG0079.jpg.scaled.500.jpg" />
      </media:content>
    <feedburner:origLink>http://blog.dtrejo.com/16594264</feedburner:origLink></item>
    <item>
      <pubDate>Sat, 17 Apr 2010 18:36:44 -0700</pubDate>
      <title>Untitled</title>
      <link>http://feedproxy.google.com/~r/dtrejo/~3/RBDlTcXCGGE/16593643</link>
      <guid isPermaLink="false">http://blog.dtrejo.com/16593643</guid>
      <description>&lt;p&gt;
	&lt;div class='p_embed p_image_embed'&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/dtrejo/W8C0Nw8qb02LvHrMRzgFYaLg4CKBjFbBtWPH82ic9bfXCawyStqaIM2ZeHtJ/IMAG0078.jpg.scaled.1000.jpg"&gt;&lt;img alt="Imag0078" height="748" src="http://posterous.com/getfile/files.posterous.com/dtrejo/jxaJxXiJb8Jn0S2l9GT2UzzxvyozzmFAaURlaaKzF1NrcXcvA4NOW1BGhBdv/IMAG0078.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;/div&gt;

	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.dtrejo.com/16593643"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://blog.dtrejo.com/16593643#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/dtrejo/~4/RBDlTcXCGGE" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/245625/sculptureme.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/36EZ12gGuYmJ</posterous:profileUrl>
        <posterous:firstName>David</posterous:firstName>
        <posterous:lastName>Trejo</posterous:lastName>
        <posterous:nickName>DTrejo</posterous:nickName>
        <posterous:displayName>David Trejo</posterous:displayName>
      </posterous:author>
      <media:content type="image/jpeg" height="2560" width="1712" url="http://getfile9.posterous.com/getfile/files.posterous.com/dtrejo/p93V17TWL0aNB0bknxNdeWpFN20q7jwSJBf6kHyjHdZmZ1OoOKOEQpKoXx2Z/IMAG0078.jpg">
        <media:thumbnail height="748" width="500" url="http://getfile0.posterous.com/getfile/files.posterous.com/dtrejo/jxaJxXiJb8Jn0S2l9GT2UzzxvyozzmFAaURlaaKzF1NrcXcvA4NOW1BGhBdv/IMAG0078.jpg.scaled.500.jpg" />
      </media:content>
    <feedburner:origLink>http://blog.dtrejo.com/16593643</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 19 Feb 2010 15:17:26 -0800</pubDate>
      <title>Untitled</title>
      <link>http://feedproxy.google.com/~r/dtrejo/~3/g-be9jn98lo/11997059</link>
      <guid isPermaLink="false">http://blog.dtrejo.com/11997059</guid>
      <description>&lt;p&gt;
	&lt;div class='p_embed p_image_embed'&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/dtrejo/ncHUKLRJPSMfCzhuN3nrBn2T5IoWxP3zSheRU2x71h2XLCtyS7zfkWVViKsE/IMAG0026.jpg.scaled.1000.jpg"&gt;&lt;img alt="Imag0026" height="334" src="http://posterous.com/getfile/files.posterous.com/dtrejo/e3EAruLYW8oBmu7okEMq4jemkr0pUnr69fGXZxX9GgMVycegaLyCMAkzs6G1/IMAG0026.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;/div&gt;

	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.dtrejo.com/11997059"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://blog.dtrejo.com/11997059#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/dtrejo/~4/g-be9jn98lo" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/245625/sculptureme.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/36EZ12gGuYmJ</posterous:profileUrl>
        <posterous:firstName>David</posterous:firstName>
        <posterous:lastName>Trejo</posterous:lastName>
        <posterous:nickName>DTrejo</posterous:nickName>
        <posterous:displayName>David Trejo</posterous:displayName>
      </posterous:author>
      <media:content type="image/jpeg" height="1712" width="2560" url="http://getfile4.posterous.com/getfile/files.posterous.com/dtrejo/LZCtnadclfuSk1sVNE9GBtPtlChywqFwEubBhmrGpgbepYtXC8yVbxYfFiZL/IMAG0026.jpg">
        <media:thumbnail height="334" width="500" url="http://getfile5.posterous.com/getfile/files.posterous.com/dtrejo/e3EAruLYW8oBmu7okEMq4jemkr0pUnr69fGXZxX9GgMVycegaLyCMAkzs6G1/IMAG0026.jpg.scaled.500.jpg" />
      </media:content>
    <feedburner:origLink>http://blog.dtrejo.com/11997059</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 19 Feb 2010 15:16:18 -0800</pubDate>
      <title>Untitled</title>
      <link>http://feedproxy.google.com/~r/dtrejo/~3/Jdi2bQpe4S8/11996961</link>
      <guid isPermaLink="false">http://blog.dtrejo.com/11996961</guid>
      <description>&lt;p&gt;
	&lt;div class='p_embed p_image_embed'&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/dtrejo/9FRCjilmzrcKkAaJZalJ85aKX4DzKJgLtNB9mLErQbQFNtFESd4Q2uCcmE5W/IMAG0025.jpg.scaled.1000.jpg"&gt;&lt;img alt="Imag0025" height="334" src="http://posterous.com/getfile/files.posterous.com/dtrejo/tNLeOmK4DxGG2nux4Sg5H6rpqvynS3Ao6IM0zS67KAimQ7MFoiaHu1cbnSVq/IMAG0025.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;/div&gt;

	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.dtrejo.com/11996961"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://blog.dtrejo.com/11996961#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/dtrejo/~4/Jdi2bQpe4S8" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/245625/sculptureme.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/36EZ12gGuYmJ</posterous:profileUrl>
        <posterous:firstName>David</posterous:firstName>
        <posterous:lastName>Trejo</posterous:lastName>
        <posterous:nickName>DTrejo</posterous:nickName>
        <posterous:displayName>David Trejo</posterous:displayName>
      </posterous:author>
      <media:content type="image/jpeg" height="1712" width="2560" url="http://getfile3.posterous.com/getfile/files.posterous.com/dtrejo/bCEUhq7EjUt8XxzK2kmE96V63nFiw6UteaOxmSq4qtU1U4XicGk93XttOvJp/IMAG0025.jpg">
        <media:thumbnail height="334" width="500" url="http://getfile4.posterous.com/getfile/files.posterous.com/dtrejo/tNLeOmK4DxGG2nux4Sg5H6rpqvynS3Ao6IM0zS67KAimQ7MFoiaHu1cbnSVq/IMAG0025.jpg.scaled.500.jpg" />
      </media:content>
    <feedburner:origLink>http://blog.dtrejo.com/11996961</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 19 Feb 2010 10:54:44 -0800</pubDate>
      <title>Untitled</title>
      <link>http://feedproxy.google.com/~r/dtrejo/~3/RgkAjwVlSWU/11985653</link>
      <guid isPermaLink="false">http://blog.dtrejo.com/11985653</guid>
      <description>&lt;p&gt;
	&lt;div class='p_embed p_image_embed'&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/dtrejo/mgxxMTkjaxLlBMovT0SrFZpqcBtENQPlwHMhGvzJ6q193eKwNjWG9aWZEWJ6/IMAG0024.jpg.scaled.1000.jpg"&gt;&lt;img alt="Imag0024" height="748" src="http://posterous.com/getfile/files.posterous.com/dtrejo/GphITZ4FGeqzTqOMtTYoq5Gcy3fsEMwGNjiYGLEJra3qcaSiBhMSDOgsadeh/IMAG0024.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;/div&gt;

	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.dtrejo.com/11985653"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://blog.dtrejo.com/11985653#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/dtrejo/~4/RgkAjwVlSWU" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/245625/sculptureme.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/36EZ12gGuYmJ</posterous:profileUrl>
        <posterous:firstName>David</posterous:firstName>
        <posterous:lastName>Trejo</posterous:lastName>
        <posterous:nickName>DTrejo</posterous:nickName>
        <posterous:displayName>David Trejo</posterous:displayName>
      </posterous:author>
      <media:content type="image/jpeg" height="2560" width="1712" url="http://getfile5.posterous.com/getfile/files.posterous.com/dtrejo/3P05KgfdRZJlpTcE1xwFD8g7KUaTdgeSGRfOlVoUp6Ew1HzyG2VIbbFtCrB4/IMAG0024.jpg">
        <media:thumbnail height="748" width="500" url="http://getfile6.posterous.com/getfile/files.posterous.com/dtrejo/GphITZ4FGeqzTqOMtTYoq5Gcy3fsEMwGNjiYGLEJra3qcaSiBhMSDOgsadeh/IMAG0024.jpg.scaled.500.jpg" />
      </media:content>
    <feedburner:origLink>http://blog.dtrejo.com/11985653</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 22 Jan 2010 15:12:18 -0800</pubDate>
      <title>Untitled</title>
      <link>http://feedproxy.google.com/~r/dtrejo/~3/XiDkRVG9Gi0/10412648</link>
      <guid isPermaLink="false">http://blog.dtrejo.com/10412648</guid>
      <description>&lt;p&gt;
	&lt;div class='p_embed p_image_embed'&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/dtrejo/wIAPFOHM5lEQzG0JvB3VMglQ8qWOa4N2O23RZanZtaq4BN5j4YLcKBwXtcST/IMAG0002.jpg.scaled.1000.jpg"&gt;&lt;img alt="Imag0002" height="748" src="http://posterous.com/getfile/files.posterous.com/dtrejo/7WuauhIQgSRGZDT7uard4zKyTT1BnWU6wZd9RWF5yMUt83pgUjIyg5W7Ymzd/IMAG0002.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;/div&gt;

	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.dtrejo.com/10412648"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://blog.dtrejo.com/10412648#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/dtrejo/~4/XiDkRVG9Gi0" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/245625/sculptureme.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/36EZ12gGuYmJ</posterous:profileUrl>
        <posterous:firstName>David</posterous:firstName>
        <posterous:lastName>Trejo</posterous:lastName>
        <posterous:nickName>DTrejo</posterous:nickName>
        <posterous:displayName>David Trejo</posterous:displayName>
      </posterous:author>
      <media:content type="image/jpeg" height="2560" width="1712" url="http://getfile4.posterous.com/getfile/files.posterous.com/dtrejo/u14jSEHCctsjXslmJKXwDDVLqWsVuAH4p2JqOq6A90CGNOHTYSxt535SQoKq/IMAG0002.jpg">
        <media:thumbnail height="748" width="500" url="http://getfile5.posterous.com/getfile/files.posterous.com/dtrejo/7WuauhIQgSRGZDT7uard4zKyTT1BnWU6wZd9RWF5yMUt83pgUjIyg5W7Ymzd/IMAG0002.jpg.scaled.500.jpg" />
      </media:content>
    <feedburner:origLink>http://blog.dtrejo.com/10412648</feedburner:origLink></item>
  </channel>
</rss>

