<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>// Internet Duct Tape &#187; Programming and Software Development</title>
	<atom:link href="http://engtech.wordpress.com/category/programming-and-software-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://engtech.wordpress.com</link>
	<description>blogging / programming / technology / lifehacks</description>
	<lastBuildDate>Thu, 11 Sep 2008 18:40:31 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='engtech.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/39d30a2f8e6787eb5aca92a35daa7d60?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>// Internet Duct Tape &#187; Programming and Software Development</title>
		<link>http://engtech.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://engtech.wordpress.com/osd.xml" title="// Internet Duct Tape" />
		<item>
		<title>What Would You Do If You Didn&#8217;t Have To Work?</title>
		<link>http://engtech.wordpress.com/2008/09/11/dont-have-to-wor/</link>
		<comments>http://engtech.wordpress.com/2008/09/11/dont-have-to-wor/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 18:39:36 +0000</pubDate>
		<dc:creator>engtech</dc:creator>
				<category><![CDATA[Workhacks and High Tech Life]]></category>

		<guid isPermaLink="false">http://engtech.wordpress.com/?p=1548</guid>
		<description><![CDATA[<img src="http://engtech.files.wordpress.com/2007/10/workhacks.jpg" alt="Workhacks" />
<p>For the past two months I've gotten to experience what it's like not to work every day. </p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1548&subd=engtech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="idt-header" style="text-align:center;"><img src="http://engtech.files.wordpress.com/2007/10/workhacks.jpg" alt="Workhacks" /></p>
<p>Lottery tickets offer us the dream of escaping to a different life. Often I find myself wondering what it would be like if I didn&#8217;t have to work full time. I always imagine <a href="http://internetducttape.com/tools/">spending more time on my open source software projects</a>, getting in better shape and doing some freelance consulting to pay the time.</p>
<p>About ten years ago I got to see my parents make the transition from working full-time to retirement. It wasn&#8217;t an easy switch for them. There was some sadness, a lack of motivation and a lonliness as they lost the human contact the workplace gave them each day.</p>
<p>For the past two months I&#8217;ve gotten to experience what it&#8217;s like not to work every day. I was laid off from my previous job with severance. While I money wasn&#8217;t tight, there wasn&#8217;t enough to jet set off to Europe or go on any big vacations other than the ones I already had planned for the summer. I was stressed out most of the time until I found myself a new job. After I accepted the job offer, I gave myself a big window until I had to start so that I could relax and enjoy my time off.</p>
<p>This was the longest stretch of time I had booked off; it has been 14 years since I&#8217;ve had that much time to myself all at once. When I was working, I imagined all the web projects I could do if I didn&#8217;t have to go to work. The reality of the experience was quite different. <strong>Once you have the freedom to do anything you want with your day, sitting in front of the computer is the last thing you want to do.</strong></p>
<p>For the first few weeks I found myself irritated by 3pm every day. I quickly realized that it was the lack of structure; if I got myself out of the house the feeling went away. So time was spent walking around the city, going to the library and reading in coffee shops. The beautiful weather really helped. Why stay inside on a sunny day if you don&#8217;t have to? Part of it was a desire to be around real people, instead of the virtual people I usually associate with if I&#8217;m stuck on a computer.</p>
<p>There was a definite priority shift. With the freedom to do anything I wanted with my day, it made so much more sense to focus on those long term, important but not urgent goals. Organizing things around the house. Getting a new family doctor. Renewing my passport. Getting new contacts. Removing clutter from my house and my life. I had to laugh one day when I found an old to-do list from 2006. There was stuff on that list that was important to my life and my well being that I was finally getting around to.</p>
<p>I found it amazing how much clearer it was to process my task list and choose the most important tasks for the day. Because I felt no urgency in any of my tasks, I was able to make much better decisions about what was important vs what wasn&#8217;t even worth doing.</p>
<p>I&#8217;m about to enter the workforce again, and I hope I can take some of the clairity I currently feel with me.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/engtech.wordpress.com/1548/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/engtech.wordpress.com/1548/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/engtech.wordpress.com/1548/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/engtech.wordpress.com/1548/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/engtech.wordpress.com/1548/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/engtech.wordpress.com/1548/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/engtech.wordpress.com/1548/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/engtech.wordpress.com/1548/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/engtech.wordpress.com/1548/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/engtech.wordpress.com/1548/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/engtech.wordpress.com/1548/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/engtech.wordpress.com/1548/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1548&subd=engtech&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://engtech.wordpress.com/2008/09/11/dont-have-to-wor/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7bfd646dea8e47642bbb573f026bf159?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=R" medium="image">
			<media:title type="html">engtech</media:title>
		</media:content>

		<media:content url="http://engtech.files.wordpress.com/2007/10/workhacks.jpg" medium="image">
			<media:title type="html">Workhacks</media:title>
		</media:content>
	</item>
		<item>
		<title>Building a Better Job Search Site</title>
		<link>http://engtech.wordpress.com/2008/07/21/building-a-better-job-search-site/</link>
		<comments>http://engtech.wordpress.com/2008/07/21/building-a-better-job-search-site/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 19:37:59 +0000</pubDate>
		<dc:creator>engtech</dc:creator>
				<category><![CDATA[Hiring, Job Interviews and Resume Resources]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[dice]]></category>
		<category><![CDATA[job search]]></category>
		<category><![CDATA[monster]]></category>

		<guid isPermaLink="false">http://engtech.wordpress.com/?p=1498</guid>
		<description><![CDATA[<img src="http://engtech.files.wordpress.com/2007/10/workhacks.jpg" alt="Workhacks" />
<p>Job hunting is a massive industry, but unfortunately it's one that that always leaves job hunters feeling unsatisfied. Monster and Dice are painful to use. The hierarchy trees of job categories are often incorrect and confusing to someone who is looking for a job.</p>
<p>I'd love to see something different.</p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1498&subd=engtech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="idt-header" style="text-align:center;"><img src="http://engtech.files.wordpress.com/2007/10/workhacks.jpg" alt="Workhacks" /></p>
<p>Job hunting is a massive industry, but unfortunately it&#8217;s one that that always leaves job hunters feeling unsatisfied. <a href="http://www.monster.ca/">Monster</a> and <a href="http://dice.com/">Dice</a> are painful to use. The hierarchy trees of job categories are often incorrect and confusing to someone who is looking for a job. There are a few places that are doing something different:</p>
<p><a href="http://www.linkedin.com/">LinkedIn</a> &#8211; resume and networking tools to keep in contact with ex-coworkers. The best way to find a job is often through people who know you. You get a job, they often get a referral bonus &#8212; win/win.</p>
<p><a href="http://www.petersnewjobs.com/">Peter&#8217;s New Jobs</a> &#8211; regional tech job searches in Ottawa and Toronto, worth the yearly subscription even if you have a job because it&#8217;s a great way to stay current with the job market and how companies are doing.</p>
<p><a href="http://standoutjobs.com/">Standout Jobs</a> &#8211; Montreal startup that is focused on humanizing the job search process and <a href="http://apption.standoutjobs.com/jobs/64-application-developer">giving companies a chance to sell themselves</a>.</p>
<p><a href="http://workingwithrails.com/">Working With Rails</a> &#8211; job listings based on people working with a common technology.</p>
<p>Site-based Job Boards &#8211; job listings for readers of blogs like <a href="http://jobs.37signals.com/">37signals</a>, <a href="http://jobs.joelonsoftware.com/">Joel on Software</a>, and <a href="http://www.crunchboard.com/">Tech Crunch</a>.</p>
<p>There are a few things I&#8217;d like to see in a job search site.</p>
<h3>LinkedIn Integration</h3>
<p>LinkedIn has taken over as the business contacts networking tool and it has a robust resume feature, yet we&#8217;re still forced to manually enter our resume into most job sites.</p>
<h3>No Job Categories</h3>
<p>Job sites like Dice and Monster all suffer from bad usability with elements like the job category navigation that takes several minutes to fill out. It&#8217;s so much simpler to have saved search agents for keywords in resumes and job postings.</p>
<h3>Google Maps</h3>
<p>I&#8217;d really like to see all of the job locations on a Google Map centered around my home address with different colours based on how the fresh the listing is. Job decision is often based on locality and I&#8217;ve yet to see a job search site that lets me easily list.</p>
<h3>Stock History</h3>
<p>For publicly trade companies there is no reason not to integrate a stock ticker widget so that job applicants can quickly see how a company is performing.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/engtech.wordpress.com/1498/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/engtech.wordpress.com/1498/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/engtech.wordpress.com/1498/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/engtech.wordpress.com/1498/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/engtech.wordpress.com/1498/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/engtech.wordpress.com/1498/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/engtech.wordpress.com/1498/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/engtech.wordpress.com/1498/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/engtech.wordpress.com/1498/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/engtech.wordpress.com/1498/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/engtech.wordpress.com/1498/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/engtech.wordpress.com/1498/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1498&subd=engtech&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://engtech.wordpress.com/2008/07/21/building-a-better-job-search-site/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7bfd646dea8e47642bbb573f026bf159?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=R" medium="image">
			<media:title type="html">engtech</media:title>
		</media:content>

		<media:content url="http://engtech.files.wordpress.com/2007/10/workhacks.jpg" medium="image">
			<media:title type="html">Workhacks</media:title>
		</media:content>
	</item>
		<item>
		<title>Competition</title>
		<link>http://engtech.wordpress.com/2008/04/29/competition/</link>
		<comments>http://engtech.wordpress.com/2008/04/29/competition/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 22:35:39 +0000</pubDate>
		<dc:creator>engtech</dc:creator>
				<category><![CDATA[Marketing and Promotion]]></category>
		<category><![CDATA[Startups and Business]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[branding]]></category>
		<category><![CDATA[competition]]></category>
		<category><![CDATA[marketing]]></category>

		<guid isPermaLink="false">http://engtech.wordpress.com/?p=1469</guid>
		<description><![CDATA[<p class="idt-header" style="text-align:center;"><img src="http://engtech.files.wordpress.com/2008/04/marketing-and-promotion.jpg" alt="Marketing, Branding, and Promotion" height="125" width="500" /></p>
<p>When we look at technology we use everyday, the great success stories all have one thing in common: competition. They all achieved their success despite healthy competition, or perhaps because of it.</p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1469&subd=engtech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="idt-header" style="text-align:center;"><img src="http://engtech.files.wordpress.com/2008/04/marketing-and-promotion.jpg?w=500&#038;h=125" alt="Marketing, Branding and Promotion" width="500" height="125" /></p>
<p>When we look at technology we use everyday, the great success stories all have one thing in common: competition. They all achieved their success despite healthy competition, or perhaps <strong>because of it</strong>.</p>
<p><span id="more-1469"></span></p>
<h2>Know The Enemy</h2>
<p>Who would Superman be without Lex Luthor? Who would Batman be without Joker? Every great superhero has one thing in common: a great villain.</p>
<p>When developing a product, one of the key factors is having a concrete competitor. Motivate your employees by giving them a concrete &#8220;foe&#8221; to strive against. It <a href="http://www.doshdosh.com/enemies-are-important-branding-your-website-with-the-right-villians/">solidifies your goals</a> and a great competitor defines <strong>who you aren&#8217;t</strong> just as much as they <strong>define who you are</strong>.</p>
<h2>Keep It Real</h2>
<p>Competition is a healthy sign that you are addressing a real market. Customers often aren&#8217;t interested in buying something unless they know there&#8217;s an alternative solution available [1]. People might not even realize you&#8217;re addressing a real problem if you&#8217;re the only one trying to solve it. Showing a list of competitors and why you&#8217;re better than them is a great way to build confidence in your service when you&#8217;re trying to get funding.</p>
<p>Competition makes for a better experience for the customer. Competitors keep you from being complacent because if you fall asleep at the lead you&#8217;ll soon find yourself at the back of the pack. Competitors spur innovation as you both try to reach the best solution.  [2] <a href="http://headrush.typepad.com/creating_passionate_users/2005/06/kicking_ass_is_.html"></a></p>
<p><a href="http://headrush.typepad.com/creating_passionate_users/2005/06/kicking_ass_is_.html">He who helps his users kick the most ass wins</a>.</p>
<h2>Keep Your Friends Close&#8230;</h2>
<p>Keeping a close eye on your competitors can be a great source of information. Make their strengths your strengths and avoid their weaknesses. How do you differentiate yourself from them? How do they differentiate themselves from you? What are the threats to their business? These are threats to your business as well, or opportunities for you to grow your market.</p>
<p>Your competitors can be your best friends because they are the people who know the industry you are working in and the problems you face better than anyone. It often becomes <a href="http://www.doshdosh.com/how-to-deal-with-your-niche-competitors-guide-for-businesses-and-webmasters/">a symbiotic relationship where you team up</a> at times to address new opportunities.</p>
<p>There&#8217;s much talk about using the Internet to find out what people <strong>really</strong> think of you product. Don&#8217;t forget to do the same level of monitoring for your competition! [3] [4]</p>
<ul>
<li><a href="http://www.readwriteweb.com/archives/how_to_get_customer_service_via_twitter.php">Customer service via Twitter</a></li>
<li><a href="http://www.readwriteweb.com/archives/how_to_manage_your_online_reputation.php">Breakdown of several services like trackur, monitorthis and google alerts</a></li>
<li><a href="http://www.doshdosh.com/use-competitor-analysis-to-build-traffic-and-links/">Performing competitor analysis on the web</a></li>
</ul>
<h2>But Don&#8217;t Close Your Eyes!</h2>
<p>The problem with letting your competitors influence your business strategy is that it can cause myopia. History is filled with tales of two rivals competing neck and neck only to be eclipsed by a third company who can see the bigger picture. One of my favorite recent examples of this is the console war between Microsoft, Sony and Nintendo. Microsoft and Sony keep battling for the market of hardcore video gamers while Nintendo found a way to appeal to casual gamers.</p>
<p>Nintendo rapidly soared to number one by ignoring the cutthroat battle of better graphics and faster hardware and focusing on a different approach to a larger market. Knowing your competitors can provide valuable insight, but don&#8217;t let it drag you into a game of &#8220;me too&#8221;.</p>
<h3>Footnotes</h3>
<ol>
<li>Try getting a design win in a big company like IBM when you are the only product in your class. It&#8217;s not going to happen. There&#8217;s such a thing as being too far on the cutting edge.</li>
<li>As long as you avoid featuristis. <a href="http://headrush.typepad.com/creating_passionate_users/2005/06/featuritis_vs_t.html">Happy users can find what they want to do</a>.</li>
<li>Of course, <a href="http://www.doshdosh.com/your-fellow-blogger-is-not-a-competitor/">other bloggers aren&#8217;t your competition</a>. Relevancy of content is your competition. There are <a href="http://www.readwriteweb.com/archives/identify_top_blogs.php">useful tools for identifying relevant blogs in a niche</a> though.</li>
<li>One of the problems with the <a href="http://internetducttape.com/2008/03/18/the-fragmentation-of-identity-and-discussion/">fragmenting of conversation</a> is it becomes harder and harder to find out <strong>where</strong> people are complaining about you. <a href="http://mashable.com/2008/04/28/twitter-brand-management/">TweetScan</a> is a good bet because <a href="http://www.37signals.com/svn/posts/968-bitching-is-the-killer-app-for-twitter">Twitter is powered by bitching</a>. <a href="http://www.competitious.com/">Competitious</a> looks like a great app for monitoring competitors and their features.
<p>I know I don&#8217;t do this enough. I make the assumption that people will try to contact me through the channels I do monitor.</li>
</ol>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/engtech.wordpress.com/1469/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/engtech.wordpress.com/1469/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/engtech.wordpress.com/1469/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/engtech.wordpress.com/1469/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/engtech.wordpress.com/1469/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/engtech.wordpress.com/1469/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/engtech.wordpress.com/1469/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/engtech.wordpress.com/1469/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/engtech.wordpress.com/1469/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/engtech.wordpress.com/1469/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/engtech.wordpress.com/1469/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/engtech.wordpress.com/1469/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1469&subd=engtech&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://engtech.wordpress.com/2008/04/29/competition/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7bfd646dea8e47642bbb573f026bf159?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=R" medium="image">
			<media:title type="html">engtech</media:title>
		</media:content>

		<media:content url="http://engtech.files.wordpress.com/2008/04/marketing-and-promotion.jpg" medium="image">
			<media:title type="html">Marketing, Branding and Promotion</media:title>
		</media:content>
	</item>
		<item>
		<title>Who Moved My Cheese? The New WordPress Admin Interface</title>
		<link>http://engtech.wordpress.com/2008/04/18/who-moved-my-cheese-the-new-wordpress-admin-interface/</link>
		<comments>http://engtech.wordpress.com/2008/04/18/who-moved-my-cheese-the-new-wordpress-admin-interface/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 15:16:25 +0000</pubDate>
		<dc:creator>engtech</dc:creator>
				<category><![CDATA[Programming and Software Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Akismet]]></category>
		<category><![CDATA[Akismet Bug]]></category>
		<category><![CDATA[user interfaces]]></category>
		<category><![CDATA[WordPress Admin]]></category>

		<guid isPermaLink="false">http://engtech.wordpress.com/?p=1451</guid>
		<description><![CDATA[<p class="idt-header" style="text-align:center;"><img src="http://engtech.files.wordpress.com/2007/09/wordpress-tips-and-tricks.jpg" alt="WordPress Tips and Tricks" /></p>
<p>Two of my blogging heroes and inspiration Jeff Atwood and Joel Spolsky have joined together on a new venture called StackOverflow: overflowing with awesomeness. They are also doing a weekly podcast, and you can download the first 45 minute podcast here (8 MB). In the discussion, Joel makes a great comment: Windows Vista gives you change without giving you any value. As a Windows XP user there is no compelling reason to upgrade because you're going to have to relearn where everything is, but you don't get any new and compelling features or applications to offset that.</p>
<p>This perfectly explained my resistance to the new WordPress 2.5 admin interface.</p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1451&subd=engtech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="idt-header" style="text-align:center;"><img src="http://engtech.files.wordpress.com/2007/09/wordpress-tips-and-tricks.jpg" alt="WordPress Tips and Tricks" /></p>
<p>Two of my <a href="http://internetducttape.com/2007/11/09/internet-duct-tape-featured-in-blogging-heroes/">blogging heroes</a> and inspiration <a href="http://www.codinghorror.com/blog/archives/001101.html">Jeff Atwood</a> and <a href="http://joelonsoftware.com/items/2008/04/16.html">Joel Spolsky</a> have joined together on a new venture called <a href="http://stackoverflow.com">StackOverflow: overflowing with awesomeness</a>. They are also doing a weekly podcast, and you can <a href="http://www.stackoverflow.com/audio/stackoverflow-podcast-001.mp3">download the first 45 minute podcast here (8 MB)</a>. In the discussion, Joel makes a great comment: Windows Vista <strong>gives you change without giving you any value</strong>. As a Windows XP user there is no compelling reason to upgrade because you&#8217;re going to have to relearn where everything is, but you don&#8217;t get any new and compelling features or applications to offset that.</p>
<p><span id="more-1451"></span></p>
<p>People don&#8217;t like change, to the point where <a href="http://www.whomovedmycheese.com/">you can write a book about it</a> and sell 5 million copies.</p>
<p>This perfectly explained my resistance to the new WordPress 2.5 admin interface: it changed where everything is without giving any perceived value. The value in the new UI is that it is easier for new people to find things, but as someone who has been blogging with WordPress for two years I found myself continually getting irritated and <a href="http://www.37signals.com/svn/posts/968-bitching-is-the-killer-app-for-twitter">bitching about it on Twitter</a>.</p>
<p><a title="Friend me on Twitter" href="http://twitter.com/engtech"><img class="alignnone size-full wp-image-1455" src="http://engtech.files.wordpress.com/2008/04/wp-25-admin-bitch.png" alt="WordPress Admin Bitching" /></a></p>
<p><em>(See how the text in that image is impossible to read on the webpage? That&#8217;s the 500px problem in a nutshell. And there&#8217;s NO WAY FOR ME TO FIX THIS because we can&#8217;t change our blog themes on WordPress.com.)</em></p>
<h2>General</h2>
<ul>
<li>Not enough contrast between colours.</li>
<li><img class="alignnone size-full wp-image-1456" src="http://engtech.files.wordpress.com/2008/04/wp-25-colour-contrast.png" alt="WordPress 2.5 Colour Contrast" /></li>
</ul>
<h2>Editing Posts</h2>
<ul>
<li>Instead of having everything in the sidebar beside the post, you have to scroll down the page to add tags, categories, excerpts.</li>
<li>Inserting a link is no longer Ctrl-K, it&#8217;s now Alt-Shift-A.
<ul>
<li>As <a href="http://www.solo-technology.com/blog/">Chris says</a>, &#8220;This is muscle memory by now!&#8221;</li>
</ul>
</li>
<li>Hitting Tab in a link list no longer indents the list, now it jumps down to Tags. You have to use the Indent button from the Advanced Menu instead and there doesn&#8217;t seem to be a hotkey for this.</li>
<li>New interface for uploading media and images, with Gallery mode.
<ul>
<li>More fields to fill out than before, and no way to permanently change the default settings to what you want. The defaults should be configurable by the Settings &gt;&gt; Media menu.</li>
</ul>
<ul>
<li>The dreaded 500px feature. If your theme is missing a special code then all of <a href="http://wordpress.org/support/topic/164667">your image uploads will be squished to 500px</a>.</li>
</ul>
<ul>
<li>This would have been a great feature two years ago when if you uploaded an image that was too wide for your theme it would break Internet Explorer 6. It is still a great feature, but annoying.</li>
</ul>
</li>
<li>Delete button is right beside the save button. Causes some people to worry they&#8217;ll accidentally delete a post.</li>
<li>The new editor is supposed to prevent your code from getting screwed up, yet I was able really munge my code by switching between the Visual and HTML editors. I haven&#8217;t been able to reproduce it, so I&#8217;m willing to concede it was my fault some how. :)</li>
</ul>
<h2>Akismet</h2>
<ul>
<li>You can no longer view the comments marked as spam with Akismet. I&#8217;ve tested this on self-hosted WordPress and WordPress.com and it&#8217;s broken in both of them.</li>
<li>What happens is that every &#8220;page&#8221; in the page shows the same 20-40 comments. See screenshots. Notice that I have Greasemonkey turned off so there shouldn&#8217;t be any scripts causing this to happen.</li>
<li><img class="alignnone size-full wp-image-1452" src="http://engtech.files.wordpress.com/2008/04/akismet-broken-1.png" alt="Akismet Is Broken" /><img class="alignnone size-full wp-image-1453" src="http://engtech.files.wordpress.com/2008/04/akismet-broken-86.png" alt="Akismet Broken" /></li>
</ul>
<p><strong>Who moved my cheese?</strong> My first week with the new WordPress 2.5 admin involved lots of frustration and much swearing, not to mention that I had to update my <a href="http://internetducttape.com/tools/wordpress/akismet-auntie-spam/">Akismet Auntie Spam</a> and <a href="http://internetducttape.com/tools/wordpress/wordpress-comment-ninja/">WordPress Comment Ninja</a> Firefox scripts to work with the new interfaces.</p>
<p>Because of issues I had with the new features (hotkeys changed, image uploading takes longer, Akismet interface) I perceived that the new interface changed and I&#8217;m not getting any value from it. Who moved my cheese? Why do I have to deal with things being moved around without getting anything from it?</p>
<p>Of course, a week later and <strong>I&#8217;m enjoying the new admin interface</strong> once I&#8217;m past the learning curve. I do think things are more intelligently laid out, and I especially like the new list interfaces to managing comments. But that doesn&#8217;t discount the psychological impact that I didn&#8217;t feel like there was a good reason to learn the new interface.</p>
<p>As a software developer, it&#8217;s something to keep in mind. People don&#8217;t want to relearn your interface unless their are enough compelling features that they see the value in it. <strong>Give them a carrot while they&#8217;re looking for their cheese</strong>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/engtech.wordpress.com/1451/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/engtech.wordpress.com/1451/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/engtech.wordpress.com/1451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/engtech.wordpress.com/1451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/engtech.wordpress.com/1451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/engtech.wordpress.com/1451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/engtech.wordpress.com/1451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/engtech.wordpress.com/1451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/engtech.wordpress.com/1451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/engtech.wordpress.com/1451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/engtech.wordpress.com/1451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/engtech.wordpress.com/1451/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1451&subd=engtech&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://engtech.wordpress.com/2008/04/18/who-moved-my-cheese-the-new-wordpress-admin-interface/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
<enclosure url="http://www.stackoverflow.com/audio/stackoverflow-podcast-001.mp3" length="8726528" type="audio/mpeg" />
	
		<media:content url="http://1.gravatar.com/avatar/7bfd646dea8e47642bbb573f026bf159?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=R" medium="image">
			<media:title type="html">engtech</media:title>
		</media:content>

		<media:content url="http://engtech.files.wordpress.com/2007/09/wordpress-tips-and-tricks.jpg" medium="image">
			<media:title type="html">WordPress Tips and Tricks</media:title>
		</media:content>

		<media:content url="http://engtech.files.wordpress.com/2008/04/wp-25-admin-bitch.png" medium="image">
			<media:title type="html">WordPress Admin Bitching</media:title>
		</media:content>

		<media:content url="http://engtech.files.wordpress.com/2008/04/wp-25-colour-contrast.png" medium="image">
			<media:title type="html">WordPress 2.5 Colour Contrast</media:title>
		</media:content>

		<media:content url="http://engtech.files.wordpress.com/2008/04/akismet-broken-1.png" medium="image">
			<media:title type="html">Akismet Is Broken</media:title>
		</media:content>

		<media:content url="http://engtech.files.wordpress.com/2008/04/akismet-broken-86.png" medium="image">
			<media:title type="html">Akismet Broken</media:title>
		</media:content>
	</item>
		<item>
		<title>Searching for the Perfect Inline Code Documentation Tool</title>
		<link>http://engtech.wordpress.com/2008/03/07/searching-for-the-perfect-inline-code-documentation-tool/</link>
		<comments>http://engtech.wordpress.com/2008/03/07/searching-for-the-perfect-inline-code-documentation-tool/#comments</comments>
		<pubDate>Sat, 08 Mar 2008 00:16:10 +0000</pubDate>
		<dc:creator>engtech</dc:creator>
				<category><![CDATA[Programming Tools]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Writing Better Documentation]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[RDoc]]></category>
		<category><![CDATA[automatic document generation tools]]></category>
		<category><![CDATA[doxygen]]></category>
		<category><![CDATA[pod]]></category>
		<category><![CDATA[plain old documentation]]></category>
		<category><![CDATA[perldoc]]></category>

		<guid isPermaLink="false">http://engtech.wordpress.com/?p=1382</guid>
		<description><![CDATA[<p class="idt-header" style="text-align:center;"><img src="http://engtech.files.wordpress.com/2007/11/programming-tips.jpg" alt="Programming Tips" /></p>
<p>I have an intense love automatic documentation generation. Nothing makes me more tickled pink than seeing code and documentation living side by side in perfect harmony. I hate seeing documentation put on the company intranet only to diverge from the code it's supposed to explain as the days go past. I hate hitting my head against a brick wall as I'm pouring through the source code trying to understand an API because at no point does it mention that it's documented in a Word doc in another directory.</p>
<p>This is my rule of programming: documentation should live beside the code it documents, in the comments, especially if it's API documentation.</p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1382&subd=engtech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="idt-header" style="text-align:center;"><img src="http://engtech.files.wordpress.com/2007/11/programming-tips.jpg" alt="Programming Tips" /></p>
<p>Even amongst programmers I&#8217;m weird because I have an intense love for documentation. No, that doesn&#8217;t mean <a href="http://steve-yegge.blogspot.com/2008/02/portrait-of-n00b.html">I overly comment my code</a>, or that you&#8217;ll catch me browsing happily through the product requirements document during my coffee break. I should be more specific.</p>
<div style="text-align:center;"><img src="http://engtech.files.wordpress.com/2008/03/engtech-documentation-unravelling.png" alt="engtech-documentation-unravelling.png" border="1" hspace="10" vspace="5" /></div>
<p>I have an intense love automatic documentation generation. Nothing makes me more tickled pink than seeing code and documentation living side by side in perfect harmony. I hate seeing documentation put on the company intranet only to diverge from the code it&#8217;s supposed to explain as the days go past. I hate hitting my head against a brick wall as I&#8217;m pouring through the source code trying to understand an API because at no point does it mention that it&#8217;s documented in a Word doc in another directory.</p>
<p>This is my rule of programming: documentation should live beside the code it documents, in the comments, especially if it&#8217;s API documentation. If your language of choice doesn&#8217;t already have some kind of automatic code generation tool then you&#8217;re probably using the wrong language.</p>
<p><span id="more-1382"></span><br />
A year and some change ago <a href="http://internetducttape.com/2006/07/05/inline-source-code-documentation-language-independent/">I did some research on some language independent automatic documentation tools</a>. I thought it was about time I update that list with some of the tools I&#8217;ve played with since then.</p>
<h2>Documentation Tools I&#8217;ve Known and Loved</h2>
<p><b><a href="http://rdoc.sourceforge.net/">RDoc</a> &#8211; ruby documentation generator</b></p>
<p>It&#8217;s a great little tool for documenting the API for Ruby code. It&#8217;s what they use for the <a href="http://api.rubyonrails.com/">Ruby on Rails API documentation</a>. It&#8217;s very concise and the wiki-like syntax is easily readable in the ASCII comments it&#8217;s generated off of. Here&#8217;s an example of a file with <a href="http://rdoc.sourceforge.net/rd/cgi_rdoc.rb">RDoc comments</a> and the <a href="http://rdoc.sourceforge.net/rd/doc/index.html">markup it generates</a>. Ruby code only.</p>
<p><b>POD &#8211; plain old document generator</b></p>
<p>POD ships with Perl and has been around forever. It&#8217;s what they use for <a href="http://search.cpan.org/%7Epetdance/WWW-Mechanize-1.34/lib/WWW/Mechanize.pm">CPAN</a> and <a href="http://perldoc.perl.org/perlpod.html">perldoc documentation</a>. Unfortunately it&#8217;s on the verbose side and it can overwhelm the code it is trying to document. Lists <a href="http://juerd.nl/site.plp/perlpodtut">look absolutely horrible</a> and unreadable in the ASCII comments with the =over, =item, =item, =back syntax. The bold and italic syntax definitely demonstrates that POD is from a time before HTML and Wikis became popular.</p>
<p>POD gives you some nice command line goodness though with pod2html, pod2text, pod2man, pod2latex, pod2fm and pod2usage. I particularly like <a href="http://perldoc.perl.org/pod2usage.html">pod2usage</a> as a way of displaying command line options with &#8211;help.</p>
<p>But the real strength of POD is how you can mix documentation and code together by delimitating POD blocks and non-POD blocks. This means you can use POD in <b>any language</b> that supports multi-line comments!</p>
<p><b>DOXYGEN &#8211; document generator</b></p>
<p><a href="http://www.stack.nl/%7Edimitri/doxygen/">Doxygen</a> is a tool primarily intended for documenting C++ code (although <a href="http://internetducttape.com/2007/03/20/automatic_documentation_python_doxygen/">I&#8217;ve gotten it to work with Python</a>). The setup is more complicated than it needs to be if you&#8217;re trying to use it for something other than C++ document generation because you have to prefilter your source code to look like C++.</p>
<p>To Do: I want to get more familiar with Pydoc and Javadoc.</p>
<h2>Building a Better Documentation Tool</h2>
<p>I&#8217;ve never found a really good language agnostic code documentation tool. Which is surprising, because it should be trivial to write one. Here&#8217;s how I&#8217;d do it:</p>
<ul>
<li>Use some sort of 0-column =begin/=end sequence to indicate where documentation is.</li>
<li>Comment character can be specified on the command line for languages that don&#8217;t support multi-line comments.</li>
<li>Have default syntax use something like <a href="http://daringfireball.net/projects/markdown/syntax">Markdown</a> or <a href="http://textile.thresholdstate.com/">Textile</a>.
<ul>
<li>DON&#8217;T INVENT YOUR OWN DOCUMENTATION FORMAT. It&#8217;s 2008 for !@$#&#8217;s sake. Use HTML or something more concise than HTML. If you&#8217;re an IT worker and you don&#8217;t know HTML then you&#8217;ve made your life a lot harder than it needs to be for no reason.</li>
</ul>
</li>
<li>Plugin engine to let people use their own syntax for writing &#8220;documentation&#8221; comments and translated to HTML.
<ul>
<li>Use HTML, POD, Markdown, Haml, Markaby, or your wikisyntax with the right plugin.</li>
<li>So long as it translates to HTML what else do you need? Again, it&#8217;s 2008 so you should be able to convert from html to text/man/latex/pdf/whatever.</li>
<li>The only area that would need to be easier is creating cross-reference links.</li>
</ul>
</li>
<li>Good support for file hierarchies, but I shouldn&#8217;t need a configuration file to use it for simple structures.</li>
</ul>
<p>Am I going to write it? Probably not, but I remain mystified that one doesn&#8217;t already exist. Lazyweb, let me know if I&#8217;m wrong.</p>
<h2>Related Posts</h2>
<ul>
<li><a href="http://internetducttape.com/2006/07/05/inline-source-code-documentation-language-independent/" title="open source automatic source code documentation tools">Open source automatic source code documentation tools</a></li>
<li><a href="http://internetducttape.com/2007/03/20/automatic_documentation_python_doxygen/">Automatic documentation generation from Python using Doxygen</a></li>
</ul>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/engtech.wordpress.com/1382/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/engtech.wordpress.com/1382/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/engtech.wordpress.com/1382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/engtech.wordpress.com/1382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/engtech.wordpress.com/1382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/engtech.wordpress.com/1382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/engtech.wordpress.com/1382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/engtech.wordpress.com/1382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/engtech.wordpress.com/1382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/engtech.wordpress.com/1382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/engtech.wordpress.com/1382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/engtech.wordpress.com/1382/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1382&subd=engtech&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://engtech.wordpress.com/2008/03/07/searching-for-the-perfect-inline-code-documentation-tool/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7bfd646dea8e47642bbb573f026bf159?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=R" medium="image">
			<media:title type="html">engtech</media:title>
		</media:content>

		<media:content url="http://engtech.files.wordpress.com/2007/11/programming-tips.jpg" medium="image">
			<media:title type="html">Programming Tips</media:title>
		</media:content>

		<media:content url="http://engtech.files.wordpress.com/2008/03/engtech-documentation-unravelling.png" medium="image">
			<media:title type="html">engtech-documentation-unravelling.png</media:title>
		</media:content>
	</item>
		<item>
		<title>How to Explain RSS to Normal People &#8211; 2008 Edition</title>
		<link>http://engtech.wordpress.com/2008/02/28/explain-rss-using-facebook/</link>
		<comments>http://engtech.wordpress.com/2008/02/28/explain-rss-using-facebook/#comments</comments>
		<pubDate>Thu, 28 Feb 2008 22:09:57 +0000</pubDate>
		<dc:creator>engtech</dc:creator>
				<category><![CDATA[Building a Community]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[RSS Syndication]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[simple help]]></category>

		<guid isPermaLink="false">http://engtech.wordpress.com/?p=1361</guid>
		<description><![CDATA[<p class="idt-header" style="text-align:center;"><img src="http://engtech.files.wordpress.com/2007/09/social-software-and-you.jpg" alt="Social Software and You" /></p>
<p>As a geek who enjoys spending too much time on the internet, I like RSS almost as much as delicious toast. As a blogger, RSS is the shiznitz because it lets you consume a lot more information and it makes it easier for other people to read your blog without having to drop by every few days to see if you've written something new.</p>
<p>
For something so useful, it's pretty hard to explain why people should use RSS. Lots of people try to do it. This is my take on it. It's 2008 and explaining RSS should be much simpler because if you've used Facebook, then you've used RSS. </p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1361&subd=engtech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="idt-header" style="text-align:center;"><img src="http://engtech.files.wordpress.com/2007/09/social-software-and-you.jpg" alt="Social Software and You" /></p>
<p>As a geek who enjoys spending too much time on the internet, I like RSS almost as much as <a href="http://beatsentropy.com/?s=delicious+toast">delicious toast</a>. As a blogger, RSS is the shiznitz because it lets you consume a lot more information and it makes it easier for other people to read your blog without having to drop by every few days to see if you&#8217;ve written something new.</p>
<p><iframe src='http://digg.com/api/diggthis.php?u=http%3A%2F%2Fdigg.com%2Fcomedy%2FHow_RSS_Will_Get_You_Laid' height='82' width='55' frameborder='0' scrolling='no' style='float: right; margin-left: 10px; margin-bottom: 5px; padding: 4px 0 2px 4px; background: #fff;'></iframe>For something so useful, it&#8217;s pretty hard to explain why people should use RSS. <a href="http://www.backinskinnyjeans.com/2006/09/how_to_explain_.html">Lots of</a> <a href="http://suzemuse.wordpress.com/2008/02/23/how-to-explain-rss-to-your-mom/">people</a> <a href="http://www.ddmcd.com/managing-technology/what-is-the-best-way-to-explain-rss-feeds.html">try</a> <a href="http://tech.msn.com/howto/article.aspx?cp-documentid=812151">to</a> <a href="http://www.jeffro2pt0.com/how-would-you-explain-rss">do it</a>. This is my take on it. It&#8217;s 2008 and explaining RSS should be much simpler because if you&#8217;ve used Facebook, then you&#8217;ve used RSS.</p>
<h2>RSS for Normal People (who use Facebook)</h2>
<p><span id="more-1361"></span></p>
<p><b>engtech:</b> You should use RSS while web surfing. It makes things easier to keep track of what&#8217;s going on around the web.</p>
<p><b>the_dude: </b>This doesn&#8217;t have anything to do with Ruby, does it?</p>
<p><b>engtech: </b>No, they aren&#8217;t related.</p>
<p><b>the_dude: </b>That&#8217;s good. That Ruby stuff is making you weird man. You get this weird look in your eyes when you talk about it.</p>
<p><b>engtech: </b>&#8230;</p>
<p><b>the_dude: </b>And it&#8217;s like you can&#8217;t stop talking about it. You bring it up at the weirdest times. And there&#8217;s the shirt. Your shirt is kinda creeping me out, man.</p>
<p><a href="http://rubeh.tumblr.com/post/27349399"><img src="http://engtech.files.wordpress.com/2008/02/ruby-makes-me-happy.png" alt="ruby makes me happy" border="0" hspace="5" vspace="5" /></a></p>
<p><b>the_dude:</b> So what&#8217;s RSS?</p>
<p><b>engtech:</b> Ever used Facebook?</p>
<p><b>the_dude:</b> Only every day for the past few months. I love me some Scrabilicious.</p>
<p><i>*<b>the_dude</b> bites engtech*</i></p>
<p><b>the_dude:</b> Now you&#8217;re a zombie!</p>
<p><b>engtech:</b> &#8230;</p>
<p><b>engtech:</b> You know that screen that shows up after you login? The one that shows you what your friends have been up to?</p>
<p><b>the_dude: </b>The update page?</p>
<p><b>engtech:</b> It&#8217;s called the news feed.</p>
<p><b>the_dude:</b> Yeah! That&#8217;s how I found out Amy broke up with her boyfriend and I was able to swoop in for da kill.</p>
<p><i>*<b>the_dude</b> does the victory dance*</i></p>
<p><b>engtech:</b> How&#8217;s that going?</p>
<p><b>the_dude:</b> 10 months bro.</p>
<p><b>engtech:</b> Sweet. You could have had a baby by now.</p>
<p><b>the_dude:</b> Not for lack of trying!</p>
<p><i>*<b>the_dude</b> nudge nudge wink winks*</i></p>
<p><b>engtech:</b> So that news feed thing is RSS in a nutshell.</p>
<p><b>the_dude</b>: Eh?</p>
<p><img src="http://engtech.files.wordpress.com/2008/02/facebook-is-rss.png" alt="Facebook *IS* RSS" border="1" hspace="5" vspace="5" /></p>
<p><b>engtech:</b> That&#8217;s all RSS is. It collects pieces of information from different websites and brings them all together in one spot. <a href="http://friendfeed.com/engtech">Check this out</a>.</p>
<p><img src="http://engtech.files.wordpress.com/2008/02/friendfeed-is-the-facebooknewsfeed.png" alt="Friends Feed is Facebook for the Internet" border="1" hspace="5" vspace="5" /></p>
<p><b>the_dude: </b>Kitteh! What Facebook app is that? It looks like the &#8220;news feed&#8221;.</p>
<p><b>engtech: </b>That&#8217;s not part of Facebook. That&#8217;s another site called Friend Feed. It does the same thing as the Facebook news feed, but with any site on the internet. RSS is like glue that lets any website send news that other websites can read.</p>
<p><b>the_dude:</b> I haven&#8217;t heard of those Facebook apps. Tumblr? Reddit? Digg?</p>
<p><b>engtech: </b>Those aren&#8217;t Facebook apps. They&#8217;re different websites. You don&#8217;t have to login to Facebook to read them. They&#8217;re out there in the great wilds of the Internet. They&#8217;re outside of Facebook.</p>
<p><b>the_dude: </b>Man, internet people are horrible spellers. What&#8217;s up with those website names?</p>
<p><b>engtech:</b> Web2.0 means spell check is optional.</p>
<p><b>the_dude: </b>You spend a lot of time surfing the web.</p>
<p><b>engtech: </b>As much time as you spend playing Scrabilicious?</p>
<p><b>the_dude: </b>Point taken. So I can see why you like it, cuz you visit tons of sites a day. Why should I care?</p>
<p><b>engtech: </b>RSS is a way for websites to send out updates, which means you can subscribe to websites.</p>
<p><b>the_dude: </b>Can&#8217;t I do that with an email newsletters? I hate those. I never read them. Why do they always send them to people? !@#$ing junk mail.</p>
<p><b>engtech: </b>RSS is exactly like those email newsletters. Except instead of clogging up your email you can use a special program called an RSS reader to read them. <a href="http://reader.google.com/">Google makes a good one</a>. It lets you keep track of all the sites you read with one application.</p>
<p><b>engtech: </b>And it isn&#8217;t junk mail, since it only tracks the sites YOU want to track. You can unsubscribe at any time without having to sacrifice a chicken like with email newsletters.</p>
<p><b>the_dude: </b>I hear ya on that one. I don&#8217;t even remember signing up for the newsletter. It&#8217;s so much easier to hit &#8220;report spam&#8221; than to find out how to unsubscribe.</p>
<p><b>the_dude: </b>So I can use RSS to subscribe to sites. But I already keep track of all of my FaVoRiTe SiTeS using Internet Explorer. I bookmark them. What&#8217;s the big deal?</p>
<p><b>engtech: </b>Unlike bookmarking, RSS will also remember what you&#8217;ve read so far. When you put that together with being able to read all your sites in one place, it makes it very fast to quickly check *everything* at once.</p>
<p><b>the_dude: </b>Well&#8230; I see how that could be useful. But why would I want to read all of those little status updates?</p>
<p><b>engtech: </b>Ok, you might not want to subscribe to all of those updates. Or at least, only for people you want to keep close tabs on (*cough*AMY*cough*). But RSS also lets you subscribe to longer posts. It&#8217;s like having <a href="http://www.facebook.com/notes.php">Facebook notes</a>, but for the entire Internet.</p>
<p><b>the_dude: </b>That&#8217;s kind of cool&#8230; I guess. And by cool, I mean&#8230;</p>
<p><b>engtech: </b>Hey, didn&#8217;t those Facebook news updates help you meet Amy?</p>
<p><b>the_dude: </b>Well, yeah.</p>
<p><b>the_dude: </b>Wait&#8230; so RSS got me laid?</p>
<p><b>engtech: </b>Yes, yes it did.</p>
<p><b>the_dude: </b>Ok, that is pretty cool.</p>
<p><b>engtech: </b>Yes, yes it is.</p>
<p><b>the_dude: </b>&#8230;</p>
<p><b>the_dude: </b>You&#8217;re just telling me about RSS because you want me to read your blog more often, aren&#8217;t you?</p>
<p><iframe src='http://digg.com/api/diggthis.php?u=http%3A%2F%2Fdigg.com%2Fcomedy%2FHow_RSS_Will_Get_You_Laid' height='82' width='55' frameborder='0' scrolling='no' style='float: right; margin-left: 10px; margin-bottom: 5px; padding: 4px 0 2px 4px; background: #fff;'></iframe><b>engtech: </b><a href="http://feeds.feedburner.com/engtech">Maybe.</a></p>
<blockquote><p>If you liked this post then please <a href="http://digg.com/comedy/How_RSS_Will_Get_You_Laid">vote for it on Digg</a> or StumbleUpon. Thanks!</p></blockquote>
<h2>Related Posts</h2>
<ul>
<li><a href="http://internetducttape.com/2007/10/18/how-i-use-google-reader/">How I Use Google Reader</a></li>
<li><a href="http://internetducttape.com/2007/07/31/5-tips-community-communication/">5 Tips to Building Your Readership</a></li>
</ul>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/engtech.wordpress.com/1361/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/engtech.wordpress.com/1361/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/engtech.wordpress.com/1361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/engtech.wordpress.com/1361/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/engtech.wordpress.com/1361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/engtech.wordpress.com/1361/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/engtech.wordpress.com/1361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/engtech.wordpress.com/1361/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/engtech.wordpress.com/1361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/engtech.wordpress.com/1361/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/engtech.wordpress.com/1361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/engtech.wordpress.com/1361/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1361&subd=engtech&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://engtech.wordpress.com/2008/02/28/explain-rss-using-facebook/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7bfd646dea8e47642bbb573f026bf159?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=R" medium="image">
			<media:title type="html">engtech</media:title>
		</media:content>

		<media:content url="http://engtech.files.wordpress.com/2007/09/social-software-and-you.jpg" medium="image">
			<media:title type="html">Social Software and You</media:title>
		</media:content>

		<media:content url="http://engtech.files.wordpress.com/2008/02/ruby-makes-me-happy.png" medium="image">
			<media:title type="html">ruby makes me happy</media:title>
		</media:content>

		<media:content url="http://engtech.files.wordpress.com/2008/02/facebook-is-rss.png" medium="image">
			<media:title type="html">Facebook *IS* RSS</media:title>
		</media:content>

		<media:content url="http://engtech.files.wordpress.com/2008/02/friendfeed-is-the-facebooknewsfeed.png" medium="image">
			<media:title type="html">Friends Feed is Facebook for the Internet</media:title>
		</media:content>
	</item>
		<item>
		<title>I Can Has Ruby?</title>
		<link>http://engtech.wordpress.com/2008/02/26/i-can-has-ruby/</link>
		<comments>http://engtech.wordpress.com/2008/02/26/i-can-has-ruby/#comments</comments>
		<pubDate>Tue, 26 Feb 2008 14:18:11 +0000</pubDate>
		<dc:creator>engtech</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://engtech.wordpress.com/?p=1359</guid>
		<description><![CDATA[<a href="http://rubeh.tumblr.com">I have a new tumblelog</a> for ruby stuff.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1359&subd=engtech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I seem to have finagled my way into getting to program in Ruby almost full time at work. One day you&#8217;re just reading <a href="http://weblog.raganwald.com/">raganwald</a>, <a href="http://labnotes.org/">labnotes</a> and <a href="http://gilesbowkett.blogspot.com/">gilesbowkett</a> and then the next day you&#8217;re doing guerrilla adoption of a new language. Obviously, the internet is a gateway drug. I tried out Ruby mainly as a way of <a href="http://internetducttape.com/2007/10/15/coworkers-considered-harmful/">increasing</a> <a href="http://internetducttape.com/2007/10/29/overtime-considered-harmful/">my own</a> <a href="http://internetducttape.com/2008/01/11/9-ways-to-know-when-to-jump-ship-at-a-startup/">job satisfaction</a> after I had heard so many good things about it.</p>
<p>So far it&#8217;s working.</p>
<p>Because I&#8217;m using Ruby for several hours a day, I&#8217;ve decided to start up a tumblr account as a link dump for all the things I&#8217;m finding out as I&#8217;m learning Ruby.</p>
<p><a href="http://rubeh.tumblr.com">rubeh.tumblr.com</a></p>
<h3>Related Posts</h3>
<ul>
<li><a href="http://internetducttape.com/2008/02/06/rails-guide-exception-notifier-plugin/" title="Permalink to How to Install the Exception Notifier Plugin with Ruby on Rails" rel="bookmark">How to Install the Exception Notifier Plugin with Ruby on Rails</a></li>
<li><a href="http://internetducttape.com/2007/12/05/getting-started-with-ruby-on-rails-week-3-testing/" title="Permalink to Getting Started with Ruby on Rails - Week 3 - Testing" rel="bookmark">Getting Started with Ruby on Rails &#8211; Week 3 - Testing</a></li>
<li><a href="http://internetducttape.com/2007/11/28/getting-started-with-ruby-on-rails-week-2/" title="Permalink to Getting Started With Ruby on Rails - Week 2" rel="bookmark">Getting Started With Ruby on Rails &#8211; Week 2</a></li>
<li><a href="http://internetducttape.com/2007/11/21/getting-started-ruby-on-rails-week-1/" title="Permalink to Getting Started With Ruby on Rails - Week 1" rel="bookmark">Getting Started With Ruby on Rails &#8211; Week 1</a></li>
</ul>
<p><abbr class="published" title="2007-11-28T20:30:25+0000"></abbr></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/engtech.wordpress.com/1359/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/engtech.wordpress.com/1359/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/engtech.wordpress.com/1359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/engtech.wordpress.com/1359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/engtech.wordpress.com/1359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/engtech.wordpress.com/1359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/engtech.wordpress.com/1359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/engtech.wordpress.com/1359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/engtech.wordpress.com/1359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/engtech.wordpress.com/1359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/engtech.wordpress.com/1359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/engtech.wordpress.com/1359/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1359&subd=engtech&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://engtech.wordpress.com/2008/02/26/i-can-has-ruby/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7bfd646dea8e47642bbb573f026bf159?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=R" medium="image">
			<media:title type="html">engtech</media:title>
		</media:content>
	</item>
		<item>
		<title>How to delete your Tumblr tumblelog with TumblrCleanr</title>
		<link>http://engtech.wordpress.com/2008/02/25/delete-tumblr-with-tumbrcleanr/</link>
		<comments>http://engtech.wordpress.com/2008/02/25/delete-tumblr-with-tumbrcleanr/#comments</comments>
		<pubDate>Mon, 25 Feb 2008 19:40:01 +0000</pubDate>
		<dc:creator>engtech</dc:creator>
				<category><![CDATA[IDT Labs Software Development]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tumblr]]></category>
		<category><![CDATA[Web 2.0 Blogging]]></category>
		<category><![CDATA[delete tumblr account]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[microblogging]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://engtech.wordpress.com/?p=1358</guid>
		<description><![CDATA[<p class="idt-header" style="text-align:center;"><img src="http://engtech.files.wordpress.com/2007/09/blogging-tips-and-tricks.jpg" alt="Bloggin Tips and Tricks" height="125" width="500" /></p>
<p>There's one feature missing on Tumblr: how do you delete your Tumblr? At some point you might want to destroy all traces of your tumblr (privacy concerns, or you want to use it for something else) and there isn't an option to do that -- other than click the delete button on every individual post. I wanted to repurpose a tumblr I had been using for feed aggregation and it had over 18,000 posts. That's a lot of clicks.</p>
<p>Enter the TumblrCleanr. Provide it with your tumblr domain name as well as your username and password and it will delete up to the latest 3000 posts at a time. You can keep running it until your entire tumblr is clean as a whistle.</p>
<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1358&subd=engtech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="idt-header" style="text-align:center;"><img src="http://engtech.files.wordpress.com/2007/09/blogging-tips-and-tricks.jpg?w=500&#038;h=125" alt="Bloggin Tips and Tricks" height="125" width="500" /></p>
<p>Tumblr is rapidly becoming my favorite free blogging platform (more so than Blogger/WordPress.com) because of all the things they do correct:</p>
<ul>
<li>RSS feed importing (up to 5)</li>
<li>free domain name support</li>
<li>free CSS/theme support</li>
<li>Google Analytics support</li>
<li>javascript widget support</li>
<li>keeping it simple</li>
</ul>
<p>(You can <a href="http://lorelle.wordpress.com/2007/08/29/microblogging-tumblelog-introduction-pros-cons-tumblr-twitter-facebook-stumbleupon/">read more about Tumblr&#8217;s Pro and Cons in this post I wrote for Lorelle on WordPress</a>)</p>
<p>However, there&#8217;s one feature that&#8217;s missing: <b>how do you delete your Tumblr?</b> At some point you might want to destroy all traces of your tumblr (privacy concerns, or you want to use it for something else) and there isn&#8217;t an option to do that &#8212; other than click the delete button on every individual post. I wanted to repurpose a tumblr I had been using for feed aggregation and it had over 18,000 posts. That&#8217;s a lot of clicks.</p>
<p>Enter the <b>TumblrCleanr</b>. Provide it with your tumblr domain name as well as your username and password and it will delete up to the latest 3000 posts at a time. You can keep running it until your entire tumblr is clean as a whistle.</p>
<p>This script will <b>DELETE ALL POSTS ON YOUR TUMBLR WITH NO BACKUPS</b>. If that isn&#8217;t what you want to do then please don&#8217;t use it. :)</p>
<p><span id="more-1358"></span></p>
<h2>Privacy Concerns</h2>
<p>TumblrCleanr does not store your login information anywhere. It only uses it to communicate with tumblr.com. Every time you run the program you will have to re-enter your login details.</p>
<h2>But Why Not Create a New Tumblr?</h2>
<p>That&#8217;s true. It&#8217;s much easier to create a new tumblr account with a different email address than it is to &#8220;reset&#8221; your existing Tumblr. You can even just change the tumblr domain name if you want to &#8220;free up&#8221; your good domain for something else. I created TumblrCleanr as an excuse to try InnoSetup, WWW::Mechanize, rdoc, rake and rubyscript2exe for the first time and to give myself some more experience coding in Ruby.</p>
<h2>How to Install</h2>
<p>Windows users can <a href="http://internet-duct-tape.googlecode.com/files/tumblr_cleanr_0_0_1_setup.exe">use the one-click installer</a> (2.2 MB). Download it, run it and TumblrCleanr will show up in your start menu.</p>
<p>Linux/Mac OSX users with ruby installed can use the Ruby gem (6 kb). From a console window type the following:</p>
<pre>wget http://internet-duct-tape.googlecode.com/files/tumblr_cleanr-0.0.1.gem
sudo gem install tumblr_cleanr-0.0.1.gem</pre>
<h2>The Source Code</h2>
<p>Here&#8217;s the Ruby source code (to version 0.0.1). Leave a comment if you have any suggestions on improving it.</p>
<pre class="brush: ruby;">
#See TumblrCleanr class for full documentation

require 'rubygems'
# Note: not using Tumblr API because it does not support delete
# http://ruby-tumblr.rubyforge.org/
require 'mechanize' # http://mechanize.rubyforge.org/mechanize
require 'net/http' # http://www.ruby-doc.org/stdlib/libdoc/net/http/rdoc/classes/Net/HTTP.html
require 'uri'
require 'logger'

#== TumblrCleanr - clean/reset your tumblr by deleting all posts
#Author:: engtech (http://InternetDuctTape.com, http://rubeh.tumblr.com)
#Copyright:: Copyright (c) 2008 engtech
#License:: Creative Commons Attribution-Noncommercial 2.5 License
#Id:: $Id: $
#
#Tumblr is rapidly becoming my favorite hosted blogging platform (more so than Blogger/WordPress.com) because of all the things they do correct:
#
#- RSS feed importing
#- free domain name support
#- free CSS/theme support
#- Google Analytics support
#- keeping it simple
#
#However, there's one feature that's missing: &lt;b&gt;how do you delete your Tumblr?&lt;/b&gt; At some point you might want to destroy all traces of your tumblr (privacy concerns, or you want to use it for something else) and there isn't an option to do that -- other than click the delete button on every individual post. I wanted to repurpose a tumblr I had been using for feed aggregation and it had over 18,000 posts. That's a lot of clicks.
#
#Enter the TumblrCleanr. Provide it with your tumblr domain name as well as your username and password and it will delete up to the latest 3000 posts at a time. You can keep running it until your entire tumblr is clean as a whistle.
#
#== Privacy Concerns
#
#TumblrCleanr does not store your login information anywhere and only uses it to communicate with tumblr.com. Every time you run the program you will have to re-enter your login details.
#
#== License
#
#This work is licensed under the Creative Commons
#Attribution-Noncommercial 2.5 License.
#
#To view a copy of this license, visit
#  http://creativecommons.org/licenses/by-nc/2.5/ or
#send a letter to
# Creative Commons, 543 Howard Street, 5th Floor,
# San Francisco, California, 94105, USA.
#
class TumblrCleanr
  # tumblr domain name is set by login method
  @domain
  # email address is set by login method
  @email
  # password is set by login method
  @password
  # WWW::Mechanize agent is created in login method
  @agent
  # Array of tumblr postids is set by post_archive method
  @postids

  #Initializing TumblrCleanr will start an interactive prompt asking your your tumblr domain name, email address and password.
  #domain name:: the domain name used to access your tumblr, without the http:// prefix (eg: popstar.tumblr.com)
  #email address:: the email address used to login to tumblr (eg: brittney.spears@gmail.com)
  #password:: the password for your tumblr account, &lt;b&gt;not the password for your email address&lt;/b&gt;
  #
  #When the program finishes the user is prompted to press enter to quit.
  #
  def initialize
    begin
      puts &quot;Welcome to TumblrCleanr by http://InternetDuctTape.com&quot;
      query_loop
      parse_archive
      clean
      print &quot;Success&quot;
    rescue Interrupt =&gt; e
	puts &quot;User pressed Ctrl-C&quot;
    rescue Exception =&gt; e
      puts &quot;#{e.class}: #{e.message}&quot;
      puts e.backtrace.join(&quot;n&quot;)
    end
    puts &quot;Press enter to exit...&quot;
    gets
  end

  private

  #Keeps asking the user for their login information until they enter something that works.
  #Press Ctrl-C to exit the loop (and the program).
  #
  def query_loop
    login_success = false
    while not login_success do
      begin
	query_user
	login
	login_success = true
      rescue Interrupt =&gt; e
	raise Interrupt, &quot;user abort&quot;
      rescue Exception =&gt; e
	puts &quot;#{e.class}: #{e.message}&quot;
	puts e.backtrace.join(&quot;n&quot;)
	login_success = false
	puts &quot;&quot;
	puts &quot;Unable to login with #{@email}/#{@password} on #{@domain}&quot;
	puts &quot;Type 'Ctrl-C' to abort&quot;
      end
    end
  end

  #Asks the user for @domain, @email, and @password
  #
  #Side Effect:: sets @domain, @email and @password
  #
  def query_user
    puts &quot;&quot;
    puts &quot;Tumblr domain (ie: popstar.tumblr.com): &quot;
    @domain = gets.chomp
    puts &quot;Tumblr email address (ie: brittney.spears@gmail.com): &quot;
    @email = gets.chomp
    puts &quot;Tumblr password (ie: kfedsux): &quot;
    @password = gets.chomp
  end

  #Creates a WWW::Mechanize @agent and uses it to verify that @domain is correct and
  #that the @email/@password combination logs in.
  #
  #Side Effect:: creates @agent
  #
  def login
    puts &quot;Trying to connect to tumblr&quot;
    @agent = WWW::Mechanize.new do |a|
#      a.log = Logger.new(&quot;mech.log&quot;)
#      a.log.level = Logger::DEBUG
      a.redirect_ok = true
      a.user_agent_alias = 'Windows Mozilla'
    end
    # Is the domain any good? This will raise 404 error if bad.
    @agent.get(&quot;http://#{@domain}&quot;)
    # Can the user login?
    page = @agent.get('http://www.tumblr.com/login')
    login_form = page.forms.first
    login_form.email = @email
    login_form.password = @password
    result = login_form.submit(login_form.buttons.first)
    raise &quot;Bad username or password&quot; unless &quot;Logging in...&quot; == result.title
  end

  #The Tumblr API does not provide a bandwidth efficient means of getting a list of all postids
  #without getting the entire posts as well.
  #This is a bad hack to use the /archive page to get a list of 3000 post_ids at a time.
  #It uses Net::HTTP because the post_ids which are stored as javascript, so Mechanize can't access them.
  #ie: location.href='http://rubeh.tumblr.com/post/22655521
  #
  #Side Effect:: sets up @postids as an array of postids (as strings)
  #
  def parse_archive
    url = URI.parse(&quot;http://#{@domain}/archive&quot;)
    req = Net::HTTP::Get.new(url.path)
    res = Net::HTTP.start(url.host, url.port) {|http| http.request(req) }
    # with the body of the archive page, split it into chunks that have one postid each.
    # use a regular expression to extract the postid
    @postids = res.body.split(&quot;onclick&quot;).map{|chunk| (chunk =~ /location.href='http://[^/]+/post/(d+)/) ? $1 : nil }.reject{|i| nil == i}
  end

  # Using the list of @postids from parse_archive, iterate through them and send HTTP POSTs to the /delete/id action.
  # It does not check that the delete occurs. As a matter of fact, it intentionally asks to redirect to a 404 to reduce
  # bandwidth.
  #
  def clean
    total_ids = @postids.size
    @postids.each_with_index do |postid, i|
      puts &quot;nDeleted #{i}/#{total_ids}&quot; if i % 25 == 0
      print &quot;.&quot;
      result = @agent.post(&quot;http://www.tumblr.com/delete&quot;, 'id' =&gt; postid, 'redirect_to' =&gt; '/404') rescue nil
      # usually tumblr redirects to the dashboard after a delete happens
      # I'm intentially creating a 404 because it's much less bandwidth intensive
    end
    puts
  end
end

TumblrCleanr.new</pre>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/engtech.wordpress.com/1358/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/engtech.wordpress.com/1358/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/engtech.wordpress.com/1358/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/engtech.wordpress.com/1358/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/engtech.wordpress.com/1358/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/engtech.wordpress.com/1358/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/engtech.wordpress.com/1358/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/engtech.wordpress.com/1358/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/engtech.wordpress.com/1358/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/engtech.wordpress.com/1358/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/engtech.wordpress.com/1358/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/engtech.wordpress.com/1358/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1358&subd=engtech&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://engtech.wordpress.com/2008/02/25/delete-tumblr-with-tumbrcleanr/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7bfd646dea8e47642bbb573f026bf159?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=R" medium="image">
			<media:title type="html">engtech</media:title>
		</media:content>

		<media:content url="http://engtech.files.wordpress.com/2007/09/blogging-tips-and-tricks.jpg" medium="image">
			<media:title type="html">Bloggin Tips and Tricks</media:title>
		</media:content>
	</item>
		<item>
		<title>The Canary in the Coal Mine of Open Source Code Re-use</title>
		<link>http://engtech.wordpress.com/2008/02/12/open-source-code-re-use-fact-or-fiction/</link>
		<comments>http://engtech.wordpress.com/2008/02/12/open-source-code-re-use-fact-or-fiction/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 21:40:02 +0000</pubDate>
		<dc:creator>engtech</dc:creator>
				<category><![CDATA[Humor]]></category>
		<category><![CDATA[Programming and Software Development]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[code reuse]]></category>
		<category><![CDATA[open source software]]></category>

		<guid isPermaLink="false">http://engtech.wordpress.com/?p=1354</guid>
		<description><![CDATA[<p class="idt-header" style="text-align:center;"><img src="http://engtech.files.wordpress.com/2007/11/programming-tips.jpg" alt="Programming Tips" /></p>
<p>Don't reinvent the wheel. It's one of those things that's much easier to say then it is to do, particularly when it comes to programming. Programmers suffer from a horrible mental disease called Not Invented Here Syndrome (it's in the DSM -- check if you don't believe me). We will happily rewrite a perfectly good tool because someone else wrote it and it's easier to rewrite than it is to understand. Sure, we might not handle all the bells and whistles of the original tool (unicode is for sissies) -- but we got to DIY.</p>
<p>Rewriting from scratch is particularly a bad idea when it comes to open source software. If there's an open source library or plugin available that does the trick then there's no reason at all for you not to pick it up and use it. If it doesn't work the way you want it to then you can rewrite that small part. There's no reason to reinvent the open source wheel...</p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1354&subd=engtech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="idt-header" style="text-align:center;"><img src="http://engtech.files.wordpress.com/2007/11/programming-tips.jpg" alt="Programming Tips" /></p>
<p><b>Don&#8217;t reinvent the wheel</b>. Like all advice it&#8217;s much easier to say then it is to do, particularly when it comes to programming. Programmers suffer from a horrible mental disease called Not Invented Here Syndrome (it&#8217;s in the <a href="http://en.wikipedia.org/wiki/Diagnostic_and_Statistical_Manual_of_Mental_Disorders">DSM</a> &#8212; check if you don&#8217;t believe me). We will happily rewrite a perfectly good tool because someone else wrote it and it&#8217;s easier to rewrite than it is to understand. Sure, we might not handle all the bells and whistles of the original tool (unicode is for sissies) &#8212; but at least we got to DIY.</p>
<p>Rewriting from scratch is particularly a bad idea when it comes to open source software. If there&#8217;s an open source library or plugin available that does the trick then there&#8217;s no reason at all for you not to pick it up and use it. It&#8217;s free. If it doesn&#8217;t work the way you want it to then you can rewrite that small part or add functionality. There&#8217;s no reason to reinvent the open source wheel&#8230;</p>
<p>&#8230; as long as you can find it. One problem with leveraging open source is <b>finding out if it exists at all</b>. After enough cursing at Google you&#8217;ll eventually get a knack for it and know the good code sharing repositories and announcement lists for your languages of choice. The wheel exists! Someone else is having the same problem and came up with a solution, so now you don&#8217;t have to! Thank you, lazyweb.</p>
<p>Or that&#8217;s what you think, until you try to take the wheel for a test drive. The install instructions are outdated and don&#8217;t work quite the way you&#8217;d expect. You have slightly different versions of some common components and that causes things to break in mysterious ways. Or you&#8217;ve come across a wheel that the wheelmaker gave up on after he got to where he had to go. The wheel looks like it might do what you want it to, but it&#8217;s missing the voodoo required to hook it up to anything.</p>
<p>The single biggest problem I have when trying to leverage open source code with my projects is <b>how long does it take me to get it up and running to demo it</b>? If I can see right away that it works and it will solve my needs, then I&#8217;m willing to slog through migrating versions of different libraries, sacrificing some chickens and swilling too much coffee to get it integrated with my code on my machine. But the problem is all the installation headaches seem to happen before you reach that nirvana of running a working demo and seeing what it really does (as opposed to what the hastily written release notes ambiguously imply that it does).</p>
<p>I know what you&#8217;re thinking fearless reader: this looks like yet another rant about a wasted afternoon trying to be &#8220;productive&#8221; through code reuse but instead spent glaring at compiling warnings. But there is a light at the end of the tunnel! I have a solution that will keep you from the <b>Poorly Thought Out Install Process Hell</b> that prevents you from making the most out of open source software:</p>
<p><a href="http://blogsearch.google.com/">Google Blog Search</a>.</p>
<p>Ok, that was a bit anticlimactic; and it isn&#8217;t even Valentine&#8217;s Day yet. But stick with me, I have a point lying around here somewhere. If no one other than the author is talking about that tool/plugin/library on blogs then that means <b>no one else is using it</b>. Or, at the very least, that it hasn&#8217;t been sufficiently hardened that you should make any assumptions about how smoothly that wheel will run.</p>
<p>At the very least you should be able to find someone writing about what the tool/plugin/library does and any issues they had in getting it running. If no one has bothered taking the time to do that, then that is a huge canary in the mineshaft, dear friend. A huge canary wearing a bright orange tank top with the words &#8220;waste of time&#8221; written across it.</p>
<p><span class="flickr-photo"><img src="http://farm1.static.flickr.com/69/155487520_e2672c83a5.jpg?v=0" class="reflect" height="329" width="500" /><br />
<span class="flickr-credit">Photo by <a href="http://flickr.com/photos/tenerife/" class="flickr-link">tenerife</a></span></span></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/engtech.wordpress.com/1354/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/engtech.wordpress.com/1354/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/engtech.wordpress.com/1354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/engtech.wordpress.com/1354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/engtech.wordpress.com/1354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/engtech.wordpress.com/1354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/engtech.wordpress.com/1354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/engtech.wordpress.com/1354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/engtech.wordpress.com/1354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/engtech.wordpress.com/1354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/engtech.wordpress.com/1354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/engtech.wordpress.com/1354/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1354&subd=engtech&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://engtech.wordpress.com/2008/02/12/open-source-code-re-use-fact-or-fiction/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7bfd646dea8e47642bbb573f026bf159?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=R" medium="image">
			<media:title type="html">engtech</media:title>
		</media:content>

		<media:content url="http://engtech.files.wordpress.com/2007/11/programming-tips.jpg" medium="image">
			<media:title type="html">Programming Tips</media:title>
		</media:content>

		<media:content url="http://farm1.static.flickr.com/69/155487520_e2672c83a5.jpg?v=0" medium="image" />
	</item>
		<item>
		<title>How to Install the Exception Notifier Plugin with Ruby on Rails</title>
		<link>http://engtech.wordpress.com/2008/02/06/rails-guide-exception-notifier-plugin/</link>
		<comments>http://engtech.wordpress.com/2008/02/06/rails-guide-exception-notifier-plugin/#comments</comments>
		<pubDate>Wed, 06 Feb 2008 21:58:58 +0000</pubDate>
		<dc:creator>engtech</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Exception Notifier]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Newbie]]></category>

		<guid isPermaLink="false">http://engtech.wordpress.com/?p=1347</guid>
		<description><![CDATA[<p class="idt-header" style="text-align:center;"><img src="http://engtech.files.wordpress.com/2007/11/learning-ruby.jpg" alt="Learning Ruby" height="125" width="500" /></p>
<p>Exception Notifier is a Rails plugin that will email you when an error occurs in your Rails application with full debugging information. It's as useful as you can imagine, and running it is the difference between happy users and grumpy users who don't use your web app because every second click is an error message.</p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1347&subd=engtech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="idt-header" style="text-align:center;"><img src="http://engtech.files.wordpress.com/2007/11/learning-ruby.jpg?w=500&#038;h=125" alt="Learning Ruby" height="125" width="500" /></p>
<p><b>Exception Notifier</b> is a Rails plugin that will email you when an error occurs in your Rails application with full debugging information. It&#8217;s as useful as you can imagine, and running it is the difference between happy users and grumpy users who don&#8217;t use your web app because every second click looks like this:</p>
<p><img src="http://engtech.files.wordpress.com/2008/02/rails-error.png" alt="Rails Error Message" /></p>
<p>Agile Web Development with Rails v2 has the skinny on how to install this plugin starting on pg 629. In my infinite Rails Newbieness, I still had a heck of a time getting it working properly despite excellent guides <a href="http://soakedandsoaped.com/articles/read/exception-notifier-ruby-on-rails-plugin">like this one</a> or the <a href="http://dev.rubyonrails.org/browser/plugins/exception_notification/README">official install notes</a>.</p>
<h3>The Newb&#8217;s Guide to getting the Exception Notifier plugin to work in Rails</h3>
<h3>#1: That was easy &#8211; Installing the Exception Notifier Plugin</h3>
<p><b>Step #1:</b> On the console in your Rails application root directory type:</p>
<pre class="brush: ruby;">
ruby script/plugin install exception_notification
</pre>
<p><b>Step #2:</b> Add the following line to your <b>config/environment.rb</b> file AT THE END OF THE FILE:</p>
<pre class="brush: ruby;">

# Include your application configuration below

ExceptionNotifier.exception_recipients = %w(your@emailaddress.com)
</pre>
<p><b>Step #3: </b>Since you&#8217;re already changing configuration options, you might as well change these two from the default while you&#8217;re at it.</p>
<pre class="brush: ruby;">
ExceptionNotifier.sender_address = %(&quot;Application Error&quot; &lt;app.error@myapp.com&gt;)

# defaults to &quot;[ERROR] &quot;

ExceptionNotifier.email_prefix = &quot;[APP] &quot;
</pre>
<p>Changing the sender_address can go a long way to preventing the emails from being marked as spam.</p>
<p><b>Step #4:</b> Restart the server! You&#8217;ve installed a new plugin which means you have to restart the server in order to use it.</p>
<p><b>Gotcha #1:</b></p>
<pre class="brush: ruby;">

active_support/dependencies.rb:266:in `load_missing_constant': uninitialized constant ExceptionNotifier (NameError)
</pre>
<p>This means that you put the <b>ExceptionNotifier.exception_recipients</b> line in the wrong spot. It goes at the end of the file, not in the class.</p>
<h3>#2: The Postman Rings Never &#8211; How do I debug the email notification?</h3>
<p><b>Step #1:</b> Open up a console windows and do a <b>tail -f log/development.log</b> and you&#8217;ll be able to see the Exception Notifier plugin trying to handle the emails.</p>
<p>It will show information like who the email is being sent to, and delicious tidbits like the email is crashing with an SMTP Authentication Error.</p>
<pre class="brush: ruby;">

endering ./script/../config/../public/500.html (500 Error)

rendering section &quot;request&quot;

rendering section &quot;session&quot;

rendering section &quot;environment&quot;

rendering section &quot;backtrace&quot;

Sent mail:

From: Exception Notifier &lt;exception.notifier@default.com&gt;

To: engtechwp@gmail.com

Subject: [ERROR] mycontroller#error (Net::SMTPAuthenticationError) &quot;334 HASHINFO&quot;

Mime-Version: 1.0

Content-Type: text/plain; charset=utf-8

A Net::SMTPAuthenticationError occurred in mycontroller#error:
</pre>
<h3>#3: But Does It Blend? Generating Exception Notificiations on Development</h3>
<p><b>Step #1:</b> Create a controller action that will always generate an error</p>
<p>Edit one of your controller files and add these lines</p>
<pre class="brush: ruby;">

def error

raise RuntimeError, &quot;Generating an error&quot;

end
</pre>
<p>You don&#8217;t need to create a view for it.</p>
<p><b>Step #2:</b> Change your development settings to let exceptions generate email notifications. In <b>config/environments/development.rb</b> change these two lines</p>
<pre class="brush: ruby;">

#config.action_controller.consider_all_requests_local = true

config.action_controller.consider_all_requests_local = false # debugging exception_notifier

#config.action_mailer.raise_delivery_errors = false

config.action_mailer.raise_delivery_errors = true # debugging exception_notifier
</pre>
<p><b>Step #3:</b> Tell Exception Notifier to ignore it&#8217;s local address rules</p>
<p>In <b>app/controllers/application.rb</b></p>
<pre class="brush: ruby;">

include ExceptionNotifiable

local_addresses.clear # always send email notifications instead of displaying the error
</pre>
<p>You&#8217;ll want to remove these changes once you know the Exception Notification plugin is sending emails.</p>
<p><b>Step #4:</b> Try it out! Navigate to the <b>http://yourapp/controller/error</b> action you created in step #1 of this section. Instead of seeing the debugging trace you&#8217;ll see the standard application error page that your users see. But did you get the email?</p>
<h3>#4: The Spice Must Flow &#8211; Configuring Action Mailer</h3>
<p>If you already have a working ActionMailer configuration then skip this section.</p>
<p>The default settings for Action Mailer will use SMTP on localhost. Give it a try and see if it works. If it doesn&#8217;t get sent then it may be because you&#8217;ve never configured Action Mailer to know anything about how to send an email! Configuring Action Mailer is  covered on pg 567 of Agile Web Development with Rails v2.</p>
<p>You can see if the email was sent or not by looking at your development log file and seeing if there are any dread SMTP errors like</p>
<pre class="brush: ruby;">
535 5.7.3 Authentication unsuccessful.
</pre>
<p>Exchange can be a cruel mistress.</p>
<p>The settings go in <b>config/environment.rb</b> (or one of the files in the environments subdirectory if you have different mail settings for different servers). You&#8217;ll have to figure out the correct settings by checking your mail program or by bribing the IT guy.</p>
<pre class="brush: ruby;">
config.action_mailer.delivery_method = :smtp

config.action_mailer.smtp_settings = {

:address =&gt; &quot;domain.of.smtp.host.net&quot;,

:port =&gt; 25,

:domain =&gt; &quot;domain.of.sender.net&quot;,

:authentication =&gt; :login,

:user_name =&gt; &quot;user&quot;,

:password =&gt; &quot;secret&quot;

}
</pre>
<p><a href="http://api.rubyonrails.org/classes/ActionMailer/Base.html">More information about the ActionMailer configuration options</a>.</p>
<p>I&#8217;d like to give a big thank you to <a href="http://soakedandsoaped.com/articles/read/exception-notifier-ruby-on-rails-plugin">all of the commenters on this post</a>, without which I wouldn&#8217;t have gotten this working.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/engtech.wordpress.com/1347/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/engtech.wordpress.com/1347/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/engtech.wordpress.com/1347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/engtech.wordpress.com/1347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/engtech.wordpress.com/1347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/engtech.wordpress.com/1347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/engtech.wordpress.com/1347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/engtech.wordpress.com/1347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/engtech.wordpress.com/1347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/engtech.wordpress.com/1347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/engtech.wordpress.com/1347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/engtech.wordpress.com/1347/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1347&subd=engtech&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://engtech.wordpress.com/2008/02/06/rails-guide-exception-notifier-plugin/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7bfd646dea8e47642bbb573f026bf159?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=R" medium="image">
			<media:title type="html">engtech</media:title>
		</media:content>

		<media:content url="http://engtech.files.wordpress.com/2007/11/learning-ruby.jpg" medium="image">
			<media:title type="html">Learning Ruby</media:title>
		</media:content>

		<media:content url="http://engtech.files.wordpress.com/2008/02/rails-error.png" medium="image">
			<media:title type="html">Rails Error Message</media:title>
		</media:content>
	</item>
		<item>
		<title>Yahoo Pipe: Sub-Reddit Feed Filter</title>
		<link>http://engtech.wordpress.com/2008/01/28/yahoo-pipe-sub-reddit-feed-filter/</link>
		<comments>http://engtech.wordpress.com/2008/01/28/yahoo-pipe-sub-reddit-feed-filter/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 23:26:13 +0000</pubDate>
		<dc:creator>engtech</dc:creator>
				<category><![CDATA[Delicious]]></category>
		<category><![CDATA[Reddit]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Yahoo Pipes]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[rubyonrails]]></category>

		<guid isPermaLink="false">http://engtech.wordpress.com/?p=1341</guid>
		<description><![CDATA[<p class="idt-header" style="text-align:center;"><img src="http://engtech.files.wordpress.com/2007/08/hacking-rss-with-yahoo-pipes.jpg" alt="Hacking RSS with Yahoo Pipes" /></p>
<p>Popular social bookmarking site Reddit has announced a great new feature: users can create their own sub-reddit. What does this mean in English? Users and communities can create their own social bookmarking sites around specific topics: blogging, wordpress, specific programming languages, etc but still use their regular reddit account for submitting links and voting. </p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1341&subd=engtech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="idt-header" style="text-align:center;"><img src="http://engtech.files.wordpress.com/2007/08/hacking-rss-with-yahoo-pipes.jpg" alt="Hacking RSS with Yahoo Pipes" /></p>
<p>Popular social bookmarking site Reddit has announced a great new feature: <a href="http://blog.reddit.com/2008/01/new-features.html">users can create their own sub-reddit</a>. What does this mean in English? Users and communities can create their own social bookmarking sites around specific topics: blogging, wordpress, specific programming languages, etc but still use their regular reddit account for submitting links and voting.</p>
<p>You can see a <a href="http://reddit.com/reddits" title="Full list of reddits">full list of all the new reddits here</a>, sorted by popularity. Of particular interest to me is the new <a href="http://weblog.raganwald.com/2008/01/rubyredditcom.html">Reddit created for Ruby/Rails related posts</a>.</p>
<p>Of course, it&#8217;d be nice to be able to subscribe to a filtered version of these links. I&#8217;ve created a modified version of <a href="http://pipes.yahoo.com/pipes/person.info?eyuid=2cpaRj03vnDwXD8FJeE-">Dave S</a>&#8217;s &#8220;reddit popular on delicious&#8221; Yahoo Pipe that works with Sub-reddits.</p>
<h4 class="permalink"><a href="http://pipes.yahoo.com/engtech/subredditpopularondelicious"><span>http://pipes.yahoo.com/engtech/subredditpopularondelicious</span></a></h4>
<ol>
<li>Click on <a href="http://pipes.yahoo.com/engtech/subredditpopularondelicious">the link</a></li>
<li>Enter the name of the sub-reddit you&#8217;re interested in
<ul>
<li>ie: ruby, see <a href="http://reddit.com/reddits" title="Full list of reddits">full list of all the new reddits here</a></li>
</ul>
</li>
<li>Enter the minimum number of saves on a delicious before a link is included in the feed</li>
<li>Enter keyword inclusion/exclusion filters if you want to limit what you get
<ul>
<li>ie: include only rails-related posts or exclude all rails-related posts</li>
</ul>
</li>
<li>Click Run</li>
<li>Click on the subscribe to RSS button</li>
</ol>
<p>I&#8217;m using the Ruby sub-reddit as an example, but this is a great way to track links based around <a href="http://reddit.com/r/gaming" title="Gaming sub-reddit">any topic</a> there is a sub-reddit for. Even <a href="http://reddit.com/r/lolcats">lolcats</a>.</p>
<p>I&#8217;m looking forward to when this Reddit feature comes out of beta and it&#8217;s possible to create a few new sub-reddits like blogging, wordpress and lifehacks.</p>
<h3>Related Posts</h3>
<ul>
<li><a href="http://internetducttape.com/2007/08/13/yahoo-pipe-cleaner-html-output-fixer/" title="Yahoo Pipe Cleaner" rel="bookmark">Greasemonkey Script: Yahoo Pipe Cleaner</a></li>
<li><a href="http://internetducttape.com/2007/10/03/blog-tip-3-second-link-post-quick/" title="Create a Link Post in 3 Seconds" rel="bookmark">Blog Tip: Create a Link Post in 3 Seconds</a></li>
<li><a href="http://internetducttape.com/2007/05/30/how-to-use-yahoo-pipes-for-bloggers/" title="Permalink to The Programmable Web - Yahoo Pipes" rel="bookmark">The Programmable Web &#8211; Yahoo Pipes</a></li>
</ul>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/engtech.wordpress.com/1341/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/engtech.wordpress.com/1341/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/engtech.wordpress.com/1341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/engtech.wordpress.com/1341/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/engtech.wordpress.com/1341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/engtech.wordpress.com/1341/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/engtech.wordpress.com/1341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/engtech.wordpress.com/1341/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/engtech.wordpress.com/1341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/engtech.wordpress.com/1341/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/engtech.wordpress.com/1341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/engtech.wordpress.com/1341/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1341&subd=engtech&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://engtech.wordpress.com/2008/01/28/yahoo-pipe-sub-reddit-feed-filter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7bfd646dea8e47642bbb573f026bf159?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=R" medium="image">
			<media:title type="html">engtech</media:title>
		</media:content>

		<media:content url="http://engtech.files.wordpress.com/2007/08/hacking-rss-with-yahoo-pipes.jpg" medium="image">
			<media:title type="html">Hacking RSS with Yahoo Pipes</media:title>
		</media:content>
	</item>
		<item>
		<title>9 Ways to Know When to Jump Ship at a Startup</title>
		<link>http://engtech.wordpress.com/2008/01/11/9-ways-to-know-when-to-jump-ship-at-a-startup/</link>
		<comments>http://engtech.wordpress.com/2008/01/11/9-ways-to-know-when-to-jump-ship-at-a-startup/#comments</comments>
		<pubDate>Fri, 11 Jan 2008 19:13:21 +0000</pubDate>
		<dc:creator>engtech</dc:creator>
				<category><![CDATA[Startups and Business]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Workhacks and High Tech Life]]></category>
		<category><![CDATA[career]]></category>
		<category><![CDATA[decisions]]></category>
		<category><![CDATA[employement]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[Lifehacks]]></category>
		<category><![CDATA[startups]]></category>

		<guid isPermaLink="false">http://internetducttape.com/2008/01/11/9-ways-to-know-when-to-jump-ship-at-a-startup/</guid>
		<description><![CDATA[<p class="idt-header" style="text-align:center;"><img src="http://engtech.files.wordpress.com/2007/10/workhacks.jpg" alt="Workhacks" /></p>
<p>For the last couple of months I've been plagued with wondering if I should stay at my current startup. I've been approached with a few different job offers that I haven't followed up on, and maybe it's time I pursued greener pastures. In the words of the Clash: should I stay or should I go now?</p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1321&subd=engtech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="idt-header" style="text-align:center;"><img src="http://engtech.files.wordpress.com/2007/10/workhacks.jpg" alt="Workhacks" /></p>
<p><iframe src='http://digg.com/api/diggthis.php?u=http%3A%2F%2Fdigg.com%2Fbusiness_finance%2F9_Ways_to_Know_When_to_Jump_Ship_at_a_Startup_2' height='82' width='55' frameborder='0' scrolling='no' style='float: right; margin-left: 10px; margin-bottom: 5px; padding: 4px 0 2px 4px; background: #fff;'></iframe> For the last couple of months I&#8217;ve been plagued with wondering if I should stay at my current startup. I&#8217;ve been approached with a few different job offers that I haven&#8217;t followed up on, and maybe it&#8217;s time I pursued greener pastures. In the words of the Clash: should I stay or should I go now?</p>
<h2>Indecision</h2>
<p>Changing jobs is a big, life altering decision and if you have my knack for risk avoidment it can be a horrendous see-saw of uncertainty. It&#8217;s this state of uncertainty that is ultimately the cause of the most unhappiness in your life. Leaving your options open <a href="http://www.washingtonpost.com/wp-dyn/content/article/2008/01/06/AR2008010601522_2.html">is always less satisfactory than making a firm decision</a>.</p>
<h2>Compensation</h2>
<p>When comparing offers from other companies, you need to compare the full package which is a lot harder than it looks.</p>
<ul>
<li>Health benefits / Health insurance</li>
<li>Overtime compensation</li>
<li>Pension plans / Pension matching</li>
<li>Stock purchase plans / Stock discount</li>
<li>Stock options / equity</li>
<li>Travel allowance / food allowance</li>
<li>Raises</li>
</ul>
<p>In particular it&#8217;s very hard to figure out what stock options are worth, if anything. The best advice I&#8217;ve read is that <a href="http://www.linkedin.com/answers/career-education/job-search/CAR_JOB/1408-186585?browseCategory=CAR">your stock options aren&#8217;t worth considering in any compensation comparison unless you are a founder</a>.</p>
<p>This wiki page does a very good job of explaining how any employee can figure out <a href="http://www.payne.org/index.php/Startup_Equity_For_Employees">what their pre-IPO equity is worth</a>. What&#8217;s most important is to figure out the percentage of total options and how much funding the options are worth. Don&#8217;t forget to include capital gains tax (eg: 40%) when figuring out how much those options are worth.</p>
<p><a href="http://www.gaebler.com/How-Equity-Dilution-Works.htm">More information on equity dilution</a></p>
<h2>Business Plan</h2>
<p>When will the startup be profitable? How much money has been invested in the company? How much more funding is needed until the startup can stand on its own legs? The more you can find out about this, the better off you&#8217;ll be, because you can&#8217;t accurately evaluate your monetary compensation and the future of the company without it.</p>
<p>At my previous job I was making more money than I am now, plus there was an average of a 5-8% raise per year. Startups often have no salary increases until they are profitable, or at least have revenue on the books. When you look at the roadmap to profitability you need to factor this in so you can evaluate if the potential payoff if the startup does well comes close to matching the potential revenue lost working at another company.</p>
<h2>Bankruptcy</h2>
<p>Most startups fail. The most likely outcome of working at a startup is showing up to work one day and finding the doors locked. There may be no compensation package for the newly unemployed workers until they land another job. Waiting for a golden handshake from downsizing is a worse idea than acting on an opportunity that has presented itself at a different company.</p>
<h2>Technical Debt</h2>
<p>Startups cut corners. You may not have the best tools available to get the job done. You are always squeezed for time and money, which means quality suffers. Poor quality can throw a monkey wrench into schedules, forcing <a href="http://internetducttape.com/2006/10/04/top-ten-things-i-hate-about-crunch-time-at-a-startup-bride-of-getting-to-deadline/">crunch time</a> in order to meet the delivery dates. This technical debt is just like any other debt in that it requires interest payments and you&#8217;ll have to pay it off eventually &#8212; although project managers often ignore it completely. Steve McConnell <a href="http://blogs.construx.com/blogs/stevemcc/archive/2007/11/01/technical-debt-2.aspx">covers technical debt in more detail</a>.</p>
<h2>Signs of Success</h2>
<p><a href="http://onstartups.com/home/tabid/3339/bid/88/17-Pithy-Insights-for-Startup-Employees.aspx">Success should happen early</a>. If things are always running smoothly then the work environment will be enriching and enjoyable. If things never work properly the first time then it can create a big cloud of doom that hangs over the head of everyone in the company and curses the new work being done.</p>
<h2>Positive Reinforcement</h2>
<p>How are employees reinforced for good work? In a startup, it usually won&#8217;t be monetary but that&#8217;s ok because one of the best rewards is <a href="http://philip.greenspun.com/business/startup-tips/">the time to work on pet projects</a>. Interesting work is its own reward.</p>
<h2>Work Experience</h2>
<p>Monetary compensation might pay off the bills, but it won&#8217;t make you feel as satisfied as a job well done. What makes me happiest is learning/improving new skills and knowing that I&#8217;ve done a good job. Having to constantly return to the same project that never works properly is one of the most soul-sucking experiences I&#8217;ve ever had. It&#8217;s like a bad relationship that drags on and on. You&#8217;re trying to make things work, but there&#8217;s always something new that comes up and drags you back into old issues that you thought were worked out a long time ago.</p>
<p>&#8220;Will I enjoy the work?&#8221; is the one of the most important criteria for evaluating a job change, because passion can&#8217;t be faked and it&#8217;s the only way a job will enrich the rest of your life.</p>
<h2>People</h2>
<p>Jeff hit the nail so squarely on the head when he said that <a href="http://www.codinghorror.com/blog/archives/001033.html">the most accurate predictor of job satisfaction and success is if you like the people you work with</a>. No matter what the problem is, it&#8217;s a people problem and if you don&#8217;t enjoy working with your coworkers then you&#8217;ll never enjoy your job.</p>
<p>Did you like this post? If so then <a href="http://digg.com/business_finance/9_Ways_to_Know_When_to_Jump_Ship_at_a_Startup_2" title="vote at digg">please vote for it on digg</a>. Thanks!</p>
<h3>Related Posts</h3>
<p><iframe src='http://digg.com/api/diggthis.php?u=http%3A%2F%2Fdigg.com%2Fbusiness_finance%2F9_Ways_to_Know_When_to_Jump_Ship_at_a_Startup_2' height='82' width='55' frameborder='0' scrolling='no' style='float: right; margin-left: 10px; margin-bottom: 5px; padding: 4px 0 2px 4px; background: #fff;'></iframe></p>
<ul>
<li><a href="http://internetducttape.com/2006/10/04/top-ten-things-i-hate-about-crunch-time-at-a-startup-bride-of-getting-to-deadline/">Top Ten Things I hate about Crunch Time at a Startup</a></li>
<li><a href="http://internetducttape.com/2007/09/21/9-techniques-to-promoting-your-social-web-application/">9 Tips for Promoting your Social Web Application</a></li>
<li><a href="http://internetducttape.com/2007/09/04/soul-of-a-new-machine-tracy-kidder-quotations/">The Soul of a New Machine</a></li>
</ul>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/engtech.wordpress.com/1321/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/engtech.wordpress.com/1321/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/engtech.wordpress.com/1321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/engtech.wordpress.com/1321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/engtech.wordpress.com/1321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/engtech.wordpress.com/1321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/engtech.wordpress.com/1321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/engtech.wordpress.com/1321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/engtech.wordpress.com/1321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/engtech.wordpress.com/1321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/engtech.wordpress.com/1321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/engtech.wordpress.com/1321/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=engtech.wordpress.com&blog=190608&post=1321&subd=engtech&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://engtech.wordpress.com/2008/01/11/9-ways-to-know-when-to-jump-ship-at-a-startup/feed/</wfw:commentRss>
		<slash:comments>70</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7bfd646dea8e47642bbb573f026bf159?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=R" medium="image">
			<media:title type="html">engtech</media:title>
		</media:content>

		<media:content url="http://engtech.files.wordpress.com/2007/10/workhacks.jpg" medium="image">
			<media:title type="html">Workhacks</media:title>
		</media:content>
	</item>
	</channel>
</rss>