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

<channel>
	<title>ThePizzy.net/blog &#187; Wordpress</title>
	<atom:link href="http://thepizzy.net/blog/tag/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://thepizzy.net/blog</link>
	<description>Solving the complex in 140 characters or less...</description>
	<lastBuildDate>Mon, 02 Jan 2012 15:55:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-alpha-19719</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>My favorite Google Chrome OS extensions</title>
		<link>http://thepizzy.net/blog/2011/02/my-favorite-google-chrome-os-extensions/</link>
		<comments>http://thepizzy.net/blog/2011/02/my-favorite-google-chrome-os-extensions/#comments</comments>
		<pubDate>Thu, 03 Feb 2011 01:06:24 +0000</pubDate>
		<dc:creator>[[Neo]]</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Living in the Cloud]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[adblock plus]]></category>
		<category><![CDATA[bit.ly]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[chrome os]]></category>
		<category><![CDATA[chrome os extensions]]></category>
		<category><![CDATA[cr-48]]></category>
		<category><![CDATA[dropbox]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[flashblock]]></category>
		<category><![CDATA[FTP]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google calendar]]></category>
		<category><![CDATA[google chrome]]></category>
		<category><![CDATA[google chrome extensions]]></category>
		<category><![CDATA[google chrome os]]></category>
		<category><![CDATA[google voice]]></category>
		<category><![CDATA[sourcekit]]></category>
		<category><![CDATA[textdrop]]></category>
		<category><![CDATA[web development toolbar]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://thepizzy.net/blog/?p=1086</guid>
		<description><![CDATA[After 2 months of Chrome OS daily use, I've compiled a list of plugins a web developer &#038; casual social network engineer should use.]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-1147" title="Google Chrome OS Logo" src="http://thepizzy.net/blog/wp-content/uploads/2011/02/google-chrome-OS-logo1-150x113.jpg" alt="Google Chrome OS Logo - Source: doobybrain.com" width="150" height="113" />With another round of Google Chrome OS laptops coming out today, I figured I&#8217;d compile a list of my favorite extensions from the past 2 months that I&#8217;ve had my Cr-48 in daily use. I don&#8217;t do a whole range of diverse things on the internet &#8211; I mainly keep on top of my facebook account and blog. I post my updates through Twitter and they get syndicated everywhere else. Meanwhile, I do web development, and store my files in the cloud using Mesh and DropBox. Hopefully some of these extensions seem useful to you.</p>
<h2>Internet Browsing extensions</h2>
<ul>
<li><a href="https://chrome.google.com/webstore/detail/cfhdojbkjhnklbpkdaibdccddilifddb" target="_blank">Adblock Plus for Google Chrome (beta)</a> &#8211; Just like in Firefox, it blocks ads. There is the ABP stopsign in the omni-box next to the Favorite-Star that you can use to turn it on/off or create a filter.</li>
<li><a href="https://chrome.google.com/webstore/detail/cdngiadmnkhgemkimkhiilgffbjijcie" target="_blank">Flashblock</a> &#8211; Does what it says on the tin&#8230;and more. This extension blocks all types of Flash/Shockwave media files as well as Silverlight. There&#8217;s no visible toggle switch aside from turning the extension on and off or clicking the blocked flash object in question to activate it (as long as it&#8217;s visible). To whitelist a whole site (in the event that it is blocking invisible flash objects) press CTRL + SHIFT + F.</li>
</ul>
<h2>Communications</h2>
<ul>
<li><a href="https://chrome.google.com/webstore/detail/nckgahadagoaajjgafhacjanaoiihapd" target="_blank">Google Talk</a> &#8211; Allows you to chat with a fixed Google Chat window inside of the Chrome browser.</li>
<li><a href="https://chrome.google.com/webstore/detail/lkonlbjgknbnkfjbihcphkhkijjalkgj" target="_blank">Meebo.com</a> &#8211; A uber-service IM web-based app for any of your conceivable IMing needs.</li>
<li><a href="https://chrome.google.com/webstore/detail/ggmpcjeojalofoofdhnblpcalbhlkdjg" target="_blank">Trillin.im</a> &#8211; My favorite Multi-Service IM application, in web-based version, with cloud sync for contacts, logs, and other settings.</li>
</ul>
<h2>Social Networking / Sharing</h2>
<ul>
<li><a href="https://chrome.google.com/webstore/detail/iabeihobmhlgpkcgjiloemdbofjbdcic" target="_blank">Bit.ly</a> &#8211; Adds a button to the browser that shrinks the active page&#8217;s url and puts it in a box ready for you to share. Social Account toggles appear on the window for granular sharing.</li>
<li><a href="https://chrome.google.com/webstore/detail/kbkbabffanddiocnhikcijdlloinbfii" target="_blank">Facebook for Chrome</a> &#8211; Adds a notification button to the browser, that shows a red number when you have new notifications (mail, reactions, invitations, etc). When clicked, it opens a tabbed view of your Wall, News Feed, Notification list, and Messages, as well as ability to update your status. Also includes Facebook Chat capabilities</li>
<li><a href="https://chrome.google.com/webstore/detail/ikhnbijacmpeikpnoeddepkehmcofgbh" target="_blank">Seesmic Web</a> &#8211; A one-stop app for all your social networking needs. Switch to the Black UI to save some battery power.</li>
<li><a href="https://chrome.google.com/webstore/detail/gcdeddgdojngjlkjjheckcdoclboipln" target="_blank">WordPress Comments Notifier</a> &#8211; Useful for bloggers who want to stay on top of their blog comments. I decided to install this in light of my intention to bring this blog back to life. Ironically, with the frequency I check my blog (out of SEO curiosity for traffic sources based on search terms) I don&#8217;t have to worry about many unapproved comments sitting around for very long. Plus it makes a handy shortcut to the blog.</li>
</ul>
<h2>Games</h2>
<ul>
<li><a href="https://chrome.google.com/webstore/detail/aciahcmjmecflokailenpkdchphgkefd" target="_blank">Entanglement</a> &#8211; Included in the first version of the Google Chrome OS laptops, this is a fun, time-passing, connect the lines mental game.</li>
<li><a href="https://chrome.google.com/webstore/detail/ikfnimbehfhlelledoaemompbeihbhfb" target="_blank">Qbox</a> &#8211; A challenging mental game where you have to unscramble the letters of an insightful quote from someone historic.</li>
<li><a href="https://chrome.google.com/webstore/detail/omlmnomieeknagejjojcpdomnbnbchdl" target="_blank">Sinuous</a> &#8211; A simple, addicting game. Avoid crashing into the red dots by moving your mouse around the screen. The longer you last, the faster and more abundant the dots become. Pick up the power-ups along the way to last longer.</li>
</ul>
<h2>Living in the Cloud</h2>
<ul>
<li><a href="https://chrome.google.com/webstore/detail/dafkakmjmhfnnfclmjdfpnbmdeddkoeo" target="_blank">Aviary</a> &#8211; A layer-based, Photoshop-like web-based image editor/creator.</li>
<li><a href="https://chrome.google.com/webstore/detail/namljbfbglehfnlonjmebceimaalofei" target="_blank">DeviantArt muro</a> &#8211; Web-based paint-like graphics app that lets you draw right on the webpage, and save them to load for later. It&#8217;s a super-advanced graphics app, compatible with several types of hardware input devices.</li>
<li><a href="https://chrome.google.com/webstore/detail/cleemiokmnpncbdoepicpphinodgekfi" target="_blank">DropBox</a> &#8211; Adds a button to the browser that, when clicked &amp; authenticated, shows you a directory listing of your DropBox shares and their contents. When you click on the interested file, it opens in the browser (provided it is allowed). Useful for text-based files, images, and media.</li>
<li><a href="https://chrome.google.com/webstore/detail/fkkaebihfmbofclegkcfkkemepfehibg" target="_blank">Full Screen Weather</a> &#8211; Based on data from WeatherUnderground.com, this full-screen weather app uses the location-awareness built into Chrome to determine your location (if allowed) and then overlay current weather conditions on a scalable/movable full-screen Google Maps frame.</li>
<li><a href="https://chrome.google.com/webstore/detail/hkhggnncdpfibdhinjiegagmopldibha" target="_blank">Google Calendar Checker Plus</a> &#8211; If you&#8217;re all sync&#8217;d up in Google Calendar, this extension keeps it all in the forefront of your mind. On the browser button it shows the timeframe for your next appointment (5m, 2D, 1w, etc). On hover, it shows what/when the next appointment is. On click, it loads the actual calendar, based on the options you&#8217;ve set in the extension settings. The plugin also has toaster alerts for events, and the ability to create new events inside the popup-calendar.</li>
<li><a href="https://chrome.google.com/webstore/detail/kcnhkahnjcbndmmehfkdnkjomaanaooo" target="_blank">Google Voice</a> &#8211; The browser button shows the number of new items waiting for you. On click, the ability to send text messages or place calls right from your browser and view your inbox, where you can clear items from the notifications with a click their message body or archive/delete them.</li>
<li><a href="https://chrome.google.com/webstore/detail/ipmhoehjioleannhdgjkpdmkcdlaagek" target="_blank">Grooveshark</a> &#8211; Similar to the late Anywhere.fm and iMeem, Grooveshark lets you listen to whatever song you can search for on the internet, create your own music collection, or stream their pre-made radio stations.</li>
<li><a href="https://chrome.google.com/webstore/detail/inmnggcpelemfookhlhkdfbechcdadfp" target="_blank">Picknik</a> &#8211; Made popular as Flickr&#8217;s web-based photo-editing application of choice, you can get this photo editor as an app for your chrome browser as well.</li>
</ul>
<h2>Web Development</h2>
<ul>
<li><a href="https://chrome.google.com/webstore/detail/bmagokdooijbeehmkpknfglimnifench" target="_blank">Firebug Lite for Google Chrome</a> &#8211; Adds a browser button that creates a frame similar to the appearance of the Firefox extension, but with a little less functionality. Still helpful to see what files are being called, and viewing their contents/locations.</li>
<li><a href="https://chrome.google.com/webstore/detail/ehdgcfaoankkonoiichmblcfijkomfbn" target="_blank">FTP Free</a> &#8211; If you haven&#8217;t made the switch to a cloud-sync&#8217;d file storage, and rely on FTP access, then this is the extension for you. FTP functionality, right in your browser. Just configure the server connection/creds and go.</li>
<li><a href="https://chrome.google.com/webstore/detail/iieeldjdihkpoapgipfkeoddjckopgjg" target="_blank">SourceKit</a> &#8211; This was my solution from <a href="http://thepizzy.net/blog/2011/01/living-in-the-cloud-code-editing/" target="_blank">a previous post</a>, that I mentioned I&#8217;d write more about when it was completed. The last time I checked, they had gone from a non-functional version, to one that works, but has some minor cosmetic issues that make it nearly unusable. Once it is finished though, it will be a powerful DropBox-syncing code editor, using the <a href="http://ace.ajax.org/" target="_blank">Bespin (now ACE)</a> web-based HTML5 editor.</li>
<li><a href="http://textdropapp.com/" target="_blank">TextDrop</a> &#8211; A simple web-based DropBox-syncing text editor. More details can be found <a href="http://thepizzy.net/blog/2011/01/living-in-the-cloud-code-editing/" target="_blank">here</a>.</li>
<li><a href="https://chrome.google.com/webstore/detail/bfbameneiokkgbdmiekhjnmfkcnldhhm" target="_blank">Web Development Toolbar</a> &#8211; A popup window-based version of the toolbar extension in Firefox. Useful for web developers and designers in all areas of CSS, HTML, JavaScript, and anything else you can find in a webpage.</li>
</ul>

<!-- start wp-tags-to-technorati 1.02 -->

<p class='technorati-tags'>Technorati Tags: <a class='technorati-link' href='http://technorati.com/tag/adblock+plus' rel='tag' target='_blank'>adblock plus</a>, <a class='technorati-link' href='http://technorati.com/tag/bit.ly' rel='tag' target='_blank'>bit.ly</a>, <a class='technorati-link' href='http://technorati.com/tag/chrome' rel='tag' target='_blank'>chrome</a>, <a class='technorati-link' href='http://technorati.com/tag/chrome+os' rel='tag' target='_blank'>chrome os</a>, <a class='technorati-link' href='http://technorati.com/tag/chrome+os+extensions' rel='tag' target='_blank'>chrome os extensions</a>, <a class='technorati-link' href='http://technorati.com/tag/cr-48' rel='tag' target='_blank'>cr-48</a>, <a class='technorati-link' href='http://technorati.com/tag/dropbox' rel='tag' target='_blank'>dropbox</a>, <a class='technorati-link' href='http://technorati.com/tag/facebook' rel='tag' target='_blank'>facebook</a>, <a class='technorati-link' href='http://technorati.com/tag/firebug' rel='tag' target='_blank'>firebug</a>, <a class='technorati-link' href='http://technorati.com/tag/flashblock' rel='tag' target='_blank'>flashblock</a>, <a class='technorati-link' href='http://technorati.com/tag/FTP' rel='tag' target='_blank'>FTP</a>, <a class='technorati-link' href='http://technorati.com/tag/google' rel='tag' target='_blank'>google</a>, <a class='technorati-link' href='http://technorati.com/tag/google+calendar' rel='tag' target='_blank'>google calendar</a>, <a class='technorati-link' href='http://technorati.com/tag/google+chrome' rel='tag' target='_blank'>google chrome</a>, <a class='technorati-link' href='http://technorati.com/tag/google+chrome+extensions' rel='tag' target='_blank'>google chrome extensions</a>, <a class='technorati-link' href='http://technorati.com/tag/google+chrome+os' rel='tag' target='_blank'>google chrome os</a>, <a class='technorati-link' href='http://technorati.com/tag/google+voice' rel='tag' target='_blank'>google voice</a>, <a class='technorati-link' href='http://technorati.com/tag/sourcekit' rel='tag' target='_blank'>sourcekit</a>, <a class='technorati-link' href='http://technorati.com/tag/textdrop' rel='tag' target='_blank'>textdrop</a>, <a class='technorati-link' href='http://technorati.com/tag/web+development+toolbar' rel='tag' target='_blank'>web development toolbar</a>, <a class='technorati-link' href='http://technorati.com/tag/Wordpress' rel='tag' target='_blank'>WordPress</a></p>

<!-- end wp-tags-to-technorati -->
]]></content:encoded>
			<wfw:commentRss>http://thepizzy.net/blog/2011/02/my-favorite-google-chrome-os-extensions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TweetSuite, TweetBacks, and Ping.fm WordPress plugin (Update)</title>
		<link>http://thepizzy.net/blog/2009/04/tweetsuite-tweetbacks-and-pingfm-wordpress-plugin-update/</link>
		<comments>http://thepizzy.net/blog/2009/04/tweetsuite-tweetbacks-and-pingfm-wordpress-plugin-update/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 14:34:23 +0000</pubDate>
		<dc:creator>[[Neo]]</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[TweetSuite]]></category>
		<category><![CDATA[Updates]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Ping.fm]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[tweetback]]></category>
		<category><![CDATA[tweetbacks]]></category>
		<category><![CDATA[webhost]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://thepizzy.net/blog/?p=356</guid>
		<description><![CDATA[Well, I sent off my plugin code to Dan Zarrella, and got the Ping.fm developers API Key approved, and got WordPress.org to approve the plugin, and have been running it...]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="Twitter Logo" src="https://s3.amazonaws.com/twitter_production/profile_images/1125794203/at-twitter.png" alt="" width="128" height="128" />Well, I sent off my plugin code to Dan Zarrella, and got the Ping.fm developers API Key approved, and got WordPress.org to approve the plugin, and have been running it on my blog since its original announcement &#8211; but have run into a possible issue&#8230;</p>
<p>My webhost says it is creating a lot of &#8220;sleeper&#8221; processes on the database server, and using up a lot of the processor resources. My account was even suspended until I fixed it.</p>
<p>SO &#8211; I am going to be rewriting the whole thing, pretty much from scratch now, and it will only be loosely based on Dan&#8217;s version&#8230; <span id="more-356"></span></p>
<p>Currently, the code will run through the database of posts, and find those that have shortened URLs stored for them, run a twitter search, and return/parse/store/display the resulting tweetbacks. And it does this every 5 minutes.</p>
<p>However, that sucks up a lot of processing power to do that, especially if you have a big blog, popular blog, or both. The Answer: A Rewrite. This one is going to run a single Twitter search for every shortened url in the database, return ALL the results once, and parse them out, store them in the database, and associate them to their respective parent posts.</p>
<p>So, there&#8217;s the update for why this hasn&#8217;t been released yet.</p>
<p>I&#8217;m also working on trying to get the retro-active TweetThis buttons working on old posts &#8211; but something isn&#8217;t working right &#8211; either it&#8217;s the original code that isn&#8217;t comparing what&#8217;s in the database to the conditional statement correctly (if <em>this.url</em> = &#8220;&#8221;, then <em>make new ones</em>), or something. It&#8217;s going to take some more testing on my own test database, since my webhost is getting antsy with all the processes I&#8217;m using.</p>
<p>I&#8217;ll keep everyone updated as it moves along. Thanks.<br />
<a href="http://twitter.com/neotsn"><img class="size-full wp-image-583  aligncenter" title="twitter.com/neotsn" src="http://thepizzy.net/blog/wp-content/uploads/2010/08/twitter-wordpress-neo12.png" alt="twitter.com/neotsn" width="350" height="125" /></a></p>

<!-- start wp-tags-to-technorati 1.02 -->

<p class='technorati-tags'>Technorati Tags: <a class='technorati-link' href='http://technorati.com/tag/api' rel='tag' target='_blank'>api</a>, <a class='technorati-link' href='http://technorati.com/tag/code' rel='tag' target='_blank'>code</a>, <a class='technorati-link' href='http://technorati.com/tag/database' rel='tag' target='_blank'>database</a>, <a class='technorati-link' href='http://technorati.com/tag/MySQL' rel='tag' target='_blank'>MySQL</a>, <a class='technorati-link' href='http://technorati.com/tag/Ping.fm' rel='tag' target='_blank'>Ping.fm</a>, <a class='technorati-link' href='http://technorati.com/tag/plugin' rel='tag' target='_blank'>plugin</a>, <a class='technorati-link' href='http://technorati.com/tag/Programming' rel='tag' target='_blank'>Programming</a>, <a class='technorati-link' href='http://technorati.com/tag/tweetback' rel='tag' target='_blank'>tweetback</a>, <a class='technorati-link' href='http://technorati.com/tag/tweetbacks' rel='tag' target='_blank'>tweetbacks</a>, <a class='technorati-link' href='http://technorati.com/tag/TweetSuite' rel='tag' target='_blank'>TweetSuite</a>, <a class='technorati-link' href='http://technorati.com/tag/webhost' rel='tag' target='_blank'>webhost</a>, <a class='technorati-link' href='http://technorati.com/tag/Wordpress' rel='tag' target='_blank'>WordPress</a></p>

<!-- end wp-tags-to-technorati -->
]]></content:encoded>
			<wfw:commentRss>http://thepizzy.net/blog/2009/04/tweetsuite-tweetbacks-and-pingfm-wordpress-plugin-update/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TweetSuite WordPress Plugin + Ping.fm (Preview)</title>
		<link>http://thepizzy.net/blog/2009/03/tweetsuite-wordpress-plugin-pingfm-preview/</link>
		<comments>http://thepizzy.net/blog/2009/03/tweetsuite-wordpress-plugin-pingfm-preview/#comments</comments>
		<pubDate>Sat, 21 Mar 2009 16:41:23 +0000</pubDate>
		<dc:creator>[[Neo]]</dc:creator>
				<category><![CDATA[Ping.fm]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Thought Experiments]]></category>
		<category><![CDATA[TweetSuite]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[dan zarrella]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[site]]></category>
		<category><![CDATA[syndication]]></category>
		<category><![CDATA[tweetbacks]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://thepizzy.net/blog/?p=319</guid>
		<description><![CDATA[A couple weeks ago, I found out that Twitter had a Search feature that showed real-time tweets for a keyword. I gave it a little thought, considered what it would...]]></description>
			<content:encoded><![CDATA[<p>A couple weeks ago, I found out that <a href="http://twitter.com" target="_blank">Twitter</a> had a <a href="http://search.twitter.com" target="_blank">Search feature</a> that showed real-time tweets for a keyword. I gave it a little thought, considered what it would take to actually write the software &#8211; and then wised up, and decided to see if someone already did the hard work.</p>
<p>Sure enough, <a title="@danzarrella" href="http://twitter.com/danzarrella" target="_blank">Dan Zarrella</a> over at <a href="http://danzarrella.com/" target="_blank">danzarrella.com</a> had. He wrote one for <a href="http://danzarrella.com/tweetbacks-beta.html" target="_blank">Tweetbacks</a>, and then expanded on it with <a href="http://danzarrella.com/beyond-tweetbacks-introducing-tweetsuite.html" target="_blank">TweetSuite</a>. So I gave them a shot.</p>
<p>I started with Tweetbacks on the <a href="http://freeformfrog.com/blog" target="_blank">FreeformFrog.com Blog</a> and everything seemed to be working fine &#8211; until one day when the Tweetbacks stopped. It just stopped finding them &#8211; even though I knew they were getting tweeted &#8211; because I was using <a href="http://ping.fm" target="_blank">Ping.fm</a> to syndicate my blog posts to the appropriate social networks.</p>
<p>I gave it a couple weeks, and then decided I was going to fix it. I was tired of not having my TweetBacks working &#8211; especially during my efforts pushing a Social Networking campaign at job.</p>
<p>So, I added @danzarrella, and asked&#8230;</p>
<blockquote><p><span class="entry-content">@<a href="http://twitter.com/danzarrella">danzarrella</a> do you have plans to integrate ping.fm posting in TweetSuite? If not, mind if I take a crack at it?<br />
from @neotsn at <a class="entry-date" rel="bookmark" href="http://twitter.com/neotsn/status/1350750034"><span class="published">4:32 PM Mar 18th</span></a> from web</span></p></blockquote>
<p><span class="entry-content">A few minutes later, I got a response&#8230;</span></p>
<blockquote><p><span class="entry-content"><span class="entry-content">@<a href="http://twitter.com/neotsn">neotsn</a> go to town<br />
from @danzarrella at </span><span class="meta entry-meta"><a class="entry-date" rel="bookmark" href="http://twitter.com/danzarrella/status/1350761852"><span class="published">4:34 PM Mar 18th</span></a> from <a href="http://www.tweetdeck.com/">TweetDeck</a> <a href="http://twitter.com/neotsn/status/1350750034">in reply to neotsn</a></span></span></p></blockquote>
<p><span class="entry-content"><span class="meta entry-meta">Excellent&#8230;now I had his blessing to hack his codes. And so I have&#8230;<br />
</span></span></p>
<p><span class="entry-content"><span class="meta entry-meta"><span id="more-319"></span><br />
</span></span></p>
<h2><span class="entry-content"><span class="meta entry-meta">The download is coming soon</span></span></h2>
<h3><span class="entry-content"><span class="meta entry-meta">I have to get my Ping.fm API Key approved before anyone but me can install the plugin.<br />
</span></span></h3>
<p><span class="entry-content"><span class="meta entry-meta">And now I present to you a general overview of what I wanted to accomplish, and how I did it. (<strong>Please note, this is a GENERAL overview with some examples</strong> &#8211; it&#8217;s not meant to be a how-to, so don&#8217;t try to just copy/paste the samples &#8211; there is much more to do than can be explained here). Let&#8217;s get started&#8230;</span></span></p>
<h2><span class="entry-content"><span class="meta entry-meta">Objectives&#8230;</span></span></h2>
<ol>
<li><span style="text-decoration: underline;"><strong>Make it post through Ping.fm</strong></span> &#8211; I syndicate all my stuff through <a href="http://twitterfeed.com" target="_blank">twitterfeed.com</a> and it pushes everything out through Ping.fm for me. Upon further investigation, I noticed that TweetSuite used its own publishing code to push out the updates &#8211; after it created its own shortened urls and attached them. So of course it would never find my updates &#8211; it didn&#8217;t know what urls to search for, because it didn&#8217;t create them.</li>
<li><span style="text-decoration: underline;"><strong>Make it find my tweets that were pushed through Ping.fm</strong></span> &#8211; After realizing that it stopped searching for blog titles and started searching for the shortened urls as the unique identifier on the web, I realized that I needed it to create my urls and push them out with my Ping.fm update text. That was the only way to let TweetSuite know that there were tweets out there about my blog, and obtw here&#8217;s the link.</li>
<li><span style="text-decoration: underline;"><strong>Clean up some of the things that were a little messy</strong></span> &#8211; Once I got poking around in the code, I noticed that it some parts of it were written a little redundantly, and in order for me to maintain understanding of what was going on, I needed to clean it up a little.</li>
</ol>
<h2>Let&#8217;s Code&#8230;</h2>
<p>Well, for starters, to accomplish #1, I had to write a function that would validate the user&#8217;s app key with Ping.fm:<br />
{code type=php}<br />
/* [[Neo]] */<br />
//BEGIN Ping.fm functions<br />
function pingfm_verify() {<br />
	// request app key verification<br />
	$ch = curl_init();<br />
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);<br />
	curl_setopt($ch, CURLOPT_POST, true);<br />
	curl_setopt($ch, CURLOPT_URL, &#8216;http://api.ping.fm/v1/user.validate&#8217;);<br />
	curl_setopt($ch, CURLOPT_POSTFIELDS, Array(<br />
		&#8216;api_key&#8217; =&gt; get_option(&#8216;tweetsuite_ping_api_key&#8217;),<br />
		&#8216;user_app_key&#8217; =&gt; get_option(&#8216;tweetsuite_ping_app_key&#8217;)<br />
	));<br />
	$output = curl_exec($ch);<br />
	// update database with response<br />
	if (preg_match(&#8216;/OK/&#8217;, $output)) {<br />
		echo &#8216;	&lt;strong&gt;Your key has been verified.&lt;/strong&gt; Your can now post to your<br />
				&lt;a href=&#8221;http://www.ping.fm&#8221; target=&#8221;_blank&#8221;&gt;Ping.fm&lt;/a&gt; account.&#8217;;<br />
		update_option(&#8216;tweetsuite_ping_keyVerified&#8217;, 1);<br />
	} else {<br />
		echo (&#8216;&lt;strong&gt;Your key could not be verified.&lt;/strong&gt;.&#8217;);<br />
		update_option(&#8216;tweetsuite_ping_keyVerified&#8217;, 0);<br />
		return false;<br />
	}<br />
}</p>
<p>// END Ping.fm Functions<br />
{/code}<br />
Just your basic <span style="font-family: 'Courier New'; line-height: 18px; white-space: pre;">curl</span><span style="font-family: Georgia; line-height: 19px; white-space: normal;"> function to contact </span><span style="font-family: 'Courier New'; line-height: 18px; white-space: pre;">http://api.ping.fm/v1/user.validate</span><span style="font-family: Georgia; line-height: 19px; white-space: normal;"> and pass the api_key and user_app_key to the api, per the <a href="http://groups.google.com/group/pingfm-developers/web/api-documentation?pli=1#user.validate" target="_blank">API Documentation</a> on <strong>user.validate</strong>. Depending on the response, store it to the database, and display the appropriate message.</span></p>
<p><span style="font-family: Georgia; line-height: 19px; white-space: normal;">Next, I had to implement the fields to make that happen. We&#8217;ll start with the database&#8230;</span><br />
{code type=php}<br />
/* [[Neo]] */<br />
//ADDED:<br />
	add_option(&#8216;tweetsuite_ping_api_key&#8217;,&#8217;333333333333333333333333333333333&#8242;);<br />
	add_option(&#8216;tweetsuite_ping_app_key&#8217;,&#8221;);<br />
	add_option(&#8216;tweetsuite_use_ping&#8217;,0);<br />
	add_option(&#8216;tweetsuite_ping_keyVerified&#8217;,0);<br />
//END ADD<br />
{/code}<br />
This sticks those fields into the wordpress database table &#8220;wp_options&#8221; where all the config values go. My developer&#8217;s api key, a blank user application key, a field for the checkbox &#8220;Do you want to use Ping.fm?&#8221; and one for whether or not the user_app_key successfully verified.</p>
<p>Then I create the user interface for those fields (as well as rearrange the rest of the fields since these have to flow right to make sense&#8230;<br />
{code type=php}<br />
/* [[Neo]] */<br />
//ADDED:<br />
	update_option(&#8216;tweetsuite_ping_app_key&#8217;, $_POST['tweetsuite_ping_app_key']);<br />
//END ADD</p>
<p>//tweetsuite_use_ping<br />
($_POST['tweetsuite_use_ping']) ? update_option(&#8216;tweetsuite_use_ping&#8217;, 1) : update_option(&#8216;tweetsuite_use_ping&#8217;, 0);<br />
{/code}</p>
<p>That part allows the database to be updated with the data from the fields below&#8230;<br />
{code type=html}<br />
&lt;!&#8211; /* [[Neo]] */ &#8211;&gt;<br />
&lt;!&#8211; BEGIN ADD &#8211;&gt;<br />
&lt;tr valign=&#8221;top&#8221;&gt;<br />
	&lt;th scope=&#8221;row&#8221;&gt;Ping.fm :: Use Ping.fm to publish new posts (via your default method)?:&lt;/th&gt;<br />
	&lt;td&gt;&lt;INPUT TYPE=CHECKBOX NAME=&#8221;tweetsuite_use_ping&#8221; &lt;?php if(get_option(&#8216;tweetsuite_use_ping&#8217;)) { echo &#8220;checked&#8221;; } ?&gt;&gt;<br />
		&lt;br /&gt;&lt;b&gt;["Send a Tweet when you publish" is required for this to work]&lt;/b&gt;<br />
	&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;tr valign=&#8221;top&#8221;&gt;<br />
	&lt;th scope=&#8221;row&#8221;&gt;Ping.fm :: Your Ping.fm &lt;a href=&#8221;http://ping.fm/key/&#8221; target=&#8221;_blank&#8221;&gt;Application Key&lt;/a&gt;:&lt;/th&gt;<br />
	&lt;td&gt;&lt;INPUT TYPE=text NAME=&#8221;tweetsuite_ping_app_key&#8221;  value=&#8217;&lt;?php echo get_option(&#8216;tweetsuite_ping_app_key&#8217;); ?&gt;&#8217; /&gt;&lt;br /&gt;&lt;?php if(get_option(&#8216;tweetsuite_ping_app_key&#8217;)) { echo pingfm_verify(); } ?&gt;<br />
	&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;!&#8211; END ADD &#8211;&gt;<br />
{/code}<br />
This is below the checkbox for &#8220;Send a Tweet when you publish a post?&#8221;&#8230;if that is checked, then if you check &#8220;Use Ping.fm to publish new posts (via your default method)?&#8221; and fill out the next field for &#8220;Your Ping.fm <a href="http://ping.fm/key/" target="_blank">Application Key</a>&#8221; then it will send your post details on Publish through Ping.fm instead of Twitter itself, appending the tinyurl associated with the post to your Ping.fm message. All this is done by editing the function that sends the tweets&#8230;<br />
{code type=php}<br />
function tweetsuite_send($msg) {<br />
	/* [[Neo]] */<br />
	//REMOVED:<br />
	//$prefix = urlencode(get_option(&#8216;tweetsuite_prefix&#8217;).&#8217; &#8216;);<br />
	//REPLACED:<br />
	$prefix = (get_option(tweetsuite_use_ping) and get_option(tweetsuite_ping_keyVerified)) ? get_option(&#8216;tweetsuite_prefix&#8217;).&#8217; &#8216; : urlencode(get_option(&#8216;tweetsuite_prefix&#8217;).&#8217; &#8216;);<br />
	$msg = $prefix.$msg;</p>
<p>	/* [[Neo]] */<br />
	//ADDED<br />
	if(get_option(tweetsuite_use_ping) and get_option(tweetsuite_ping_keyVerified)) {<br />
		$ch = curl_init();<br />
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);<br />
		curl_setopt($ch, CURLOPT_POST, true);<br />
		curl_setopt($ch, CURLOPT_URL, &#8216;http://api.ping.fm/v1/user.post&#8217;);<br />
		curl_setopt($ch, CURLOPT_POSTFIELDS, Array(<br />
			&#8216;api_key&#8217; =&gt; get_option(&#8216;tweetsuite_ping_api_key&#8217;),<br />
			&#8216;user_app_key&#8217; =&gt; get_option(&#8216;tweetsuite_ping_app_key&#8217;),<br />
			&#8216;post_method&#8217; =&gt; &#8220;default&#8221;,<br />
			&#8216;body&#8217; =&gt; $msg)<br />
		);<br />
		$output = curl_exec($ch);<br />
	} else {<br />
		//END ADD<br />
		$username = get_option(&#8216;tweetsuite_twitter_username&#8217;);<br />
		$password = get_option(&#8216;tweetsuite_twitter_password&#8217;);<br />
		if(($username) and ($password))  {<br />
			$url = &#8216;http://twitter.com/statuses/update.xml&#8217;;<br />
			$curl_handle = curl_init();<br />
			curl_setopt($curl_handle, CURLOPT_URL, &#8220;$url&#8221;);<br />
			curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);<br />
			curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);<br />
			curl_setopt($curl_handle, CURLOPT_POST, 1);<br />
			curl_setopt($curl_handle, CURLOPT_POSTFIELDS, &#8220;status=$msg&#8221;);<br />
			curl_setopt($curl_handle, CURLOPT_USERPWD, &#8220;$username:$password&#8221;);<br />
			$buffer = curl_exec($curl_handle);<br />
			curl_close($curl_handle);<br />
		}<br />
	/* [[Neo]] */<br />
	//ADDED<br />
	}<br />
	//END ADD<br />
}<br />
{/code}<br />
This starts off by swapping out the original <strong>urlencode()</strong> function for a conditional statement deciding if this is a ping.fm post or a twitter post. If it&#8217;s a ping.fm post, then we don&#8217;t want to <strong>urlencode()</strong> the prefix, because it sticks + signs where there should be spaces in the prefix to the title. However, if we don&#8217;t want to use ping.fm, then don&#8217;t mess with the original code.</p>
<p>Following that, it splits which method we used to post, based on the same criteria &#8211; make sure the checkbox is true for &#8220;tweetsuite_use_ping&#8221; and that the user&#8217;s app key is verified in &#8220;tweetsuite_ping_keyVerified&#8221;. If that&#8217;s the case, then post it through ping.fm &#8211; if any of that is not met, then go ahead and try to post it through twitter. If there is no username and password supplied on the options page, then we just won&#8217;t post anything.</p>
<p>Now&#8230;about the whole $msg &#8211; that part got skipped in the logic of everything. This was the tricky part, for me. Originally, I stumbled across an API Documentation page for the ping.fm method &#8220;url.shorten&#8221; and that was the very thing I needed &#8211; something to grab a ping.fm url, without passing it through ping.fm yet. However, I found out, after much frustration, that this method was mysteriously &#8220;depreciated&#8221; (which should be read as &#8220;edited off the page, and 404&#8242;d when you try to use it). But, I found <a href="http://groups.google.com/group/pingfm-developers/browse_thread/thread/e6bf14bd63fdb7df/e59e3c16424ad20f?lnk=gst&amp;q=url+shortening#e59e3c16424ad20f" target="_blank">another solution</a> in the knowledgebase at Ping.fm&#8230;<br />
{code type=php}<br />
function ts_send_tweet($postID) {<br />
	global $wpdb;<br />
	if(!is_int($postID))<br />
		$postID = $postID-&gt;ID;</p>
<p>	$table_name = $wpdb-&gt;prefix . &#8220;shorturls&#8221;;<br />
	$line = $wpdb-&gt;get_row(&#8220;select * from $table_name where postID=$postID&#8221;);<br />
	if($line-&gt;postID==$postID) {<br />
		/* [[Neo]] */<br />
		// ADDED: &#8220;*&#8221;.<br />
		$shorturl = &#8220;*&#8221;.$line-&gt;tinyurl;<br />
		$post = get_post($postID);<br />
		if(get_option(&#8216;tweetsuite_send_posts&#8217;))<br />
			tweetsuite_send(trim($post-&gt;post_title).&#8217; &#8216;.$shorturl);<br />
	}<br />
}<br />
{/code}<br />
The article said you can prepend a <strong>* </strong>to the front of a url and it would not shorten it (in addition to the fact that they said they wouldn&#8217;t re-shorten any URLs 24 characters or smaller). So, I went with the * solution, because we&#8217;re already providing short URLs, but don&#8217;t want to risk the functionality in future updates to allow for custom url shortening services.</p>
<p>And that accomplishes both #1 and #2. We have the TweetSuite posting its updates through the Ping.fm API, and pushing a shortened url out with the post. TweetSuite then becomes aware of this url at publish, and stores it in its database. Then the cron job that runs every 5 minutes searches on any version of the URL that was stored and pulls back all the entries from the search.twitter.com Atom feed &#8211; parses them, and updates the database with them.</p>
<p>The rest of the stuff I did in the plugin was merely cleaning up&#8230;for example, reading the shortened urls from the Atom feed. The original code was:<br />
{code type=php}<br />
if(stristr($tweet, &#8216;http://bit.ly&#8217;)) {<br />
	if(strstr($tweet, $bitly)) {<br />
		$add = true;<br />
	} else {<br />
		$add = false;<br />
	}<br />
}<br />
{/code}<br />
Because the urls are using alphanumeric sequences to track what link is what &#8211; and the url&#8217;s are case-sensitive, it was returning links that were not related to the post. For example, I got <a href="http://twitter.com/lukebuchanan/statuses/1332713478" target="_blank">someone&#8217;s tweet about Rush Limbaugh</a> because the bit.ly url (&#8220;http://bit.ly/fyhz&#8221;)was the same letters, but in a different case then my original &#8220;http://bit.ly/FyhZ&#8221;. So I changed the order of the search, did it for all the services currently supported, and cleaned up the code a little:<br />
{code type=php}&#8230;<br />
if(strstr($tweet, &#8216;http://bit.ly&#8217;)) { $add = (stristr($tweet, $bitly)) ? true : false; } else {<br />
&#8230;<br />
{/code}<br />
The function<strong> strstr() </strong>is <strong>not</strong> case-sensitive, and that&#8217;s ok for a search on the domain name &#8211; we want anything that looks close to &#8220;bit.ly&#8221; to return positive. However, once it does, it&#8217;s imperitive that we use the case-sensitive <strong>stristr()</strong> function to return a positive result only if the full url matches what we have in the database case-for-case.</p>
<h2>Wrapping up&#8230;</h2>
<p>I made a couple more additions to the code beyond that, some of them required for functionality, some of them for cosmetics. I&#8217;ve submitted my plugin version to Ping.fm to approve it, and take my Developer&#8217;s Key out of &#8220;Pending&#8221; status. Once that&#8217;s done, I&#8217;ll send it off to Dan Zarrella to take a look and see how he wants to move forward. Then I&#8217;ll be able to post the plugin for download (definitely here, but also on the WordPress Plugin directory.</p>
<h2>Continuing on&#8230;</h2>
<p>I have read through the comments on Dan&#8217;s blog from the people, and have taken note of the things that they are asking for. After reading the code, he had already been working on some of the features. There are 5 main ones that people are asking for, and I&#8217;ve already done one of them in this release:</p>
<ol>
<li><span style="text-decoration: line-through;">TweetThis link opens in a new window.</span></li>
<li>AutoUpgrade via WordPress Plugin Directory</li>
<li>Allow customized URL Shortening Services</li>
<li>TweetThis links for pre-installation posts</li>
<li>TweetThis links on the home page.</li>
</ol>
<p>I&#8217;ll be looking more into the other options and see what I can do.</p>
<h2>One More Thing&#8230;</h2>
<p>This post was syndicated through the TweetSuite + Ping.fm plugin <img src='http://thepizzy.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</p>

<!-- start wp-tags-to-technorati 1.02 -->

<p class='technorati-tags'>Technorati Tags: <a class='technorati-link' href='http://technorati.com/tag/beta' rel='tag' target='_blank'>beta</a>, <a class='technorati-link' href='http://technorati.com/tag/dan+zarrella' rel='tag' target='_blank'>dan zarrella</a>, <a class='technorati-link' href='http://technorati.com/tag/database' rel='tag' target='_blank'>database</a>, <a class='technorati-link' href='http://technorati.com/tag/internet' rel='tag' target='_blank'>internet</a>, <a class='technorati-link' href='http://technorati.com/tag/MySQL' rel='tag' target='_blank'>MySQL</a>, <a class='technorati-link' href='http://technorati.com/tag/PHP' rel='tag' target='_blank'>PHP</a>, <a class='technorati-link' href='http://technorati.com/tag/Ping.fm' rel='tag' target='_blank'>Ping.fm</a>, <a class='technorati-link' href='http://technorati.com/tag/site' rel='tag' target='_blank'>site</a>, <a class='technorati-link' href='http://technorati.com/tag/syndication' rel='tag' target='_blank'>syndication</a>, <a class='technorati-link' href='http://technorati.com/tag/tweetbacks' rel='tag' target='_blank'>tweetbacks</a>, <a class='technorati-link' href='http://technorati.com/tag/TweetSuite' rel='tag' target='_blank'>TweetSuite</a>, <a class='technorati-link' href='http://technorati.com/tag/twitter' rel='tag' target='_blank'>twitter</a>, <a class='technorati-link' href='http://technorati.com/tag/Wordpress' rel='tag' target='_blank'>WordPress</a></p>

<!-- end wp-tags-to-technorati -->
]]></content:encoded>
			<wfw:commentRss>http://thepizzy.net/blog/2009/03/tweetsuite-wordpress-plugin-pingfm-preview/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>N3: winkydo.net/blog, tsnX, Spotcasting</title>
		<link>http://thepizzy.net/blog/2006/04/n3-winkydonetblog-tsnx/</link>
		<comments>http://thepizzy.net/blog/2006/04/n3-winkydonetblog-tsnx/#comments</comments>
		<pubDate>Fri, 21 Apr 2006 15:37:28 +0000</pubDate>
		<dc:creator>[[Neo]]</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[the-spot.net]]></category>
		<category><![CDATA[Updates]]></category>
		<category><![CDATA[winkydo.net]]></category>
		<category><![CDATA[Adsense]]></category>
		<category><![CDATA[billy miner]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[directory]]></category>
		<category><![CDATA[Fort Worth]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[graphic redesign]]></category>
		<category><![CDATA[Neo]]></category>
		<category><![CDATA[nerd night]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[Podcasting]]></category>
		<category><![CDATA[Spotcast]]></category>
		<category><![CDATA[sundance square]]></category>
		<category><![CDATA[teck]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[winkydo]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://thepizzy.net/blog/?p=44</guid>
		<description><![CDATA[Tonight, we work on winkydo.net/blog and /teck&#8230;continue working on tsnX&#8217;s new features and code modifications, preparing it for graphic redesign, and Spotcasting with video. Nerd Night @ Neo&#8217;s is brought...]]></description>
			<content:encoded><![CDATA[<p>Tonight, we work on winkydo.net/blog and /teck&#8230;continue working on tsnX&#8217;s new features and code modifications, preparing it for graphic redesign, and Spotcasting with video.</p>
<p>Nerd Night @ Neo&#8217;s is brought to you by Google Adsense (click the ads, plz &#8211; help pay for this crap), and by Beef Jerky (get your Jerk on). <span id="more-44"></span></p>
<p>We are going to work on winkydo.net/blog and /teck because the WordPress auto-update that I have on the server is, in my opinion, not going to work properly. When wizard changed his blogs from /blog (teck news) and /Jeromy (person) to /teck and /blog, respectively, the file that shows what is installed on the server did not update. This was because he did the switch by hand with the database, and file system. Now, the data file that shows what is installed can’t find /Jeromy, but it does see /blog, because that directory never changed. However, the database associated with that directory is not the same as it was…so if I were to update /blog it would change the teck database it was created with, and the /blog files that it references – causing an updated DB for the /teck journal, and updated files for the /blog journal – but not the files and DB for the other, respectively. So we’ll be backing up both blogs, reinstalling them from scratch, and re-uploading the database for each to get things in the right order.</p>
<p>Also, I’m going to be working on tsnX and getting the last 3 code changes done before I have to start writing my paper, and preparing for final exams. We’re also probably going to give Podcasting a shot, and call it The-Spotcast (for being in a different spot each time, possibly). We’ll probably do the recording in Downtown Fort Worth. We gave things a test-run at Billy Miner’s in Sundance Square. We found a couple good spots, the only problem is the noise, but I believe we’ll be able to do better this time. We’ve not decided on what all we want to discuss just yet, but when we get together, there is always teck news and ideas that spew forth.</p>
<p>When we get our spotcasting under way, I’ll start a link collection here on thepizzy.net as well as in the-spot.net/forums. There is going to be a Podcasting icon in the profile of each user to get their latest podcast. I’ll be setting one up for us. There are so many directions we can go with it, and we haven’t thought of them all yet – but it’s been a project that we’ve wanted to do for about a year now, and finally have all the equipment…including a video recorder.</p>
<p>That’s the jist of what’s going down this Nerd Night @ Neo’s.</p>

<!-- start wp-tags-to-technorati 1.02 -->

<p class='technorati-tags'>Technorati Tags: <a class='technorati-link' href='http://technorati.com/tag/Adsense' rel='tag' target='_blank'>Adsense</a>, <a class='technorati-link' href='http://technorati.com/tag/billy+miner' rel='tag' target='_blank'>billy miner</a>, <a class='technorati-link' href='http://technorati.com/tag/blog' rel='tag' target='_blank'>blog</a>, <a class='technorati-link' href='http://technorati.com/tag/database' rel='tag' target='_blank'>database</a>, <a class='technorati-link' href='http://technorati.com/tag/directory' rel='tag' target='_blank'>directory</a>, <a class='technorati-link' href='http://technorati.com/tag/Fort+Worth' rel='tag' target='_blank'>Fort Worth</a>, <a class='technorati-link' href='http://technorati.com/tag/google' rel='tag' target='_blank'>google</a>, <a class='technorati-link' href='http://technorati.com/tag/graphic+redesign' rel='tag' target='_blank'>graphic redesign</a>, <a class='technorati-link' href='http://technorati.com/tag/Neo' rel='tag' target='_blank'>Neo</a>, <a class='technorati-link' href='http://technorati.com/tag/nerd+night' rel='tag' target='_blank'>nerd night</a>, <a class='technorati-link' href='http://technorati.com/tag/news' rel='tag' target='_blank'>news</a>, <a class='technorati-link' href='http://technorati.com/tag/Podcasting' rel='tag' target='_blank'>Podcasting</a>, <a class='technorati-link' href='http://technorati.com/tag/Spotcast' rel='tag' target='_blank'>Spotcast</a>, <a class='technorati-link' href='http://technorati.com/tag/sundance+square' rel='tag' target='_blank'>sundance square</a>, <a class='technorati-link' href='http://technorati.com/tag/teck' rel='tag' target='_blank'>teck</a>, <a class='technorati-link' href='http://technorati.com/tag/video' rel='tag' target='_blank'>video</a>, <a class='technorati-link' href='http://technorati.com/tag/winkydo' rel='tag' target='_blank'>winkydo</a>, <a class='technorati-link' href='http://technorati.com/tag/Wordpress' rel='tag' target='_blank'>WordPress</a></p>

<!-- end wp-tags-to-technorati -->
]]></content:encoded>
			<wfw:commentRss>http://thepizzy.net/blog/2006/04/n3-winkydonetblog-tsnx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

