<?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>Flailing Wildly &#187; Projects</title>
	<atom:link href="http://blog.ryanparman.com/tags/projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ryanparman.com</link>
	<description>Too much straw, not enough camel</description>
	<lastBuildDate>Thu, 19 Jan 2012 01:03:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Lessons I&#8217;ve learned from running a startup</title>
		<link>http://blog.ryanparman.com/2011/04/07/lessons-ive-learned-from-running-a-startup/</link>
		<comments>http://blog.ryanparman.com/2011/04/07/lessons-ive-learned-from-running-a-startup/#comments</comments>
		<pubDate>Thu, 07 Apr 2011 20:15:11 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Family Life]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Work and Business]]></category>

		<guid isPermaLink="false">http://blog.ryanparman.com/?p=2063</guid>
		<description><![CDATA[In July 2006, I co-founded a startup along with three of the smartest guys I&#8217;ve ever met. Four and a half years later, the company has just recently launched something that I&#8217;d consider pre-alpha. Although I&#8217;m no longer with the company, I truly wish the remaining team the absolute best. We had some groundbreaking and [...]]]></description>
			<content:encoded><![CDATA[<p class="intro">In July 2006, I co-founded a startup along with three of the smartest guys I&#8217;ve ever met. Four and a half years later, the company has just recently launched something that I&#8217;d consider <em>pre-alpha</em>.</p>
<p>Although I&#8217;m no longer with the company, I truly wish the remaining team the absolute best. We had some groundbreaking and innovative ideas, and I hope that a real, viable product will emerge soon.</p>
<p>Thomas Edison — inventor of the lightbulb — once said &#8220;I&#8217;ve never failed. I&#8217;ve simply found 10,000 ways that don&#8217;t work.&#8221; Up until today, WarpShare has been — by nearly all definitions — a business failure. That doesn&#8217;t mean that it will continue to be a business failure, only that the team hasn&#8217;t yet gotten to where we/they need to be, even after four-<em>someodd</em> years.</p>
<p>Starting and running an early-stage company has been simultaneously the greatest and worst experience of my entire life, besides raising my children, of course. Here are some lessons that I&#8217;ve learned along the way.</p>
<h3>Your business plan doesn&#8217;t matter.</h3>
<p>It doesn&#8217;t. At all.</p>
<p>It doesn&#8217;t matter because it&#8217;s all going to change. Tomorrow you&#8217;ll realize that somebody else is doing a better version of your idea. On the other hand, you might realize that this teeny-tiny idea you have is actually much bigger than you&#8217;d originally thought, and you&#8217;ll need to adjust everything to take the modified idea into account. Perhaps you expect it to change. Perhaps you know it&#8217;s not perfect. Great, because at least your either honest or smart enough to know that. Having a business plan written down isn&#8217;t bad; just make sure that you treat it as a rough draft at all times. It&#8217;s not final, and it never will be. If it is final, then you&#8217;re either the very smartest or very dumbest entrepreneur in the entire world.</p>
<p>If you&#8217;re planning to go for a venture capital (&#8220;VC&#8221;) round, know that VCs don&#8217;t care about the plan &#8212; they care about your team. Rather, they need to believe in your team&#8217;s ability to execute a great idea. If you don&#8217;t believe in either your team or the idea, VCs will sniff that out and you&#8217;ll get nowhere with them. If a VC firm has never heard of you before, you&#8217;re less likely to get funded. That&#8217;s the long and the short of it. It&#8217;s also important to understand the culture of the area where you&#8217;re trying to get funded. In San Francisco it&#8217;s all about what you&#8217;ve done; in Los Angeles it&#8217;s all about who you know.</p>
<p>Of course, if you can start a business around selling a product or service that people will pay for, you&#8217;re already ahead of the VC-funded crowd. Do that instead, if you can.</p>
<h3>Choose your business partners like you would choose your spouse.</h3>
<p>You wouldn&#8217;t just marry anybody, would you? Well, those of us with brains in our skulls wouldn&#8217;t. Some people treat marriage like a revolving door. Don&#8217;t select people like that to be your business partners.</p>
<p>First of all, you want to find people who&#8217;s personalities and skill sets complement yours. They should be strong in areas where you&#8217;re weak. You should be strong in areas where they&#8217;re weak. If there&#8217;s a critical gap somewhere, find another business partner that fills the gap. Remember, there&#8217;s nothing wrong with having multiple business partners.</p>
<p>Secondly, know that your business partners will become like spouses to you. You&#8217;re going to spend a lot of time with them as you work together toward a common goal. That also means that if there&#8217;s friction, there are two ways to handle it — lock yourselves together in a room and hash it out until you&#8217;ve resolved your differences, or you can separate and get divorced. Trust me, the latter is much harder to go through than the former. Fortunately for our team, there were a few things that helped us work through our issues.</p>
<ol>
<li>We had a rule: If you&#8217;re going to crap on the table, bring a shovel. What that meant was that if you didn&#8217;t like the idea that was currently on the table, bring a better idea.</li>
<li>We were all interested in finding the best idea, not simply trying to get the others to accept our own idea.</li>
<li>We were all willing to fight for what we believed was the best idea. There was nobody on the team who would just <em>roll over</em>. We all had personalities who were willing to engage, discuss, argue, fight, throw chairs, and anything else that needed to happen in order to find the best idea in the room.</li>
<li>We all valued the friendships that we had with each other. Even though I&#8217;m no longer with the company and live 1,000 miles away from them, those guys are my family. We&#8217;ve been through the fire together, and we&#8217;ll be bonded for life.</li>
</ol>
<h3>A good investor meeting means nothing if they don&#8217;t write a check.</h3>
<p>During the years that I was with WarpShare, we had lots of good meetings, but very few checks were actually written. We had people tell us that they loved our ideas. They said that we could be the next Facebook or Google! But when it came time to sit down and write a check, they hemmed and hawed and floundered around. They would be busy with family stuff. They would be traveling that week, so they&#8217;d get back to us next week. They would &#8220;forget&#8221;. To be fair, we were also trying to fund-raise during the real estate crash of 2008. Some of the people who would have written checks had just lost a lot of money in the crash.</p>
<p>I learned the hard way that a good investor meeting means nothing if you can&#8217;t feed your family. If it were only me, I would have no problem sleeping on the couch in the office, coding 20 hours a day, eating nothing but 19 cent ramen noodles all day, every day. I believed in what we were doing that much. But I couldn&#8217;t drag my family through that. That sort of lifestyle was not what my family signed up for.</p>
<h3>Don&#8217;t get starry eyes just yet.</h3>
<p>&#8220;This could be a multi-billion dollar opportunity!&#8221; It was difficult to avoid daydreaming about what it would be like to own 10-20% of a company that big. We could&#8217;ve been the next Apple, Google, Facebook, Twitter, or <em>[insert awe-inspiring startup here]</em>.</p>
<p>My wife started making plans based on what we thought would happen in the next 6-12 months. She was a loan officer for Washington Mutual Bank and was suddenly having a tough time closing deals (Washington Mutual ended up <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Washington_Mutual#Rise_and_fall">getting eaten alive during the real estate crash, and its assets were handed over to J.P. Morgan Chase</a>). Since our startup was <em>sure</em> to be wildly successful in the next few months, she decided to go back to school.</p>
<p>Instead the opposite happened. The housing market tanked and took the investment community down with it. Thousands of companies started shedding employees by the ton. My wife was laid-off and pretty much all of our investment deals fell through — all at the same time. It was the perfect storm. We went from making $150,000 a year to having no income at all, within only a few months. We liquidated all of our assets and maxed out all of our credit cards to try and stay afloat just a little longer. &#8220;We did have that good investor meeting, after all. Maybe they&#8217;ll write us a check next week.&#8221;</p>
<p>While work ethic, determination and perseverance are valuable traits for a startup founder, starry eyes will only deceive you. If you&#8217;re successful, you could end up being an accidental billionaire. If not, you could end up being financially ruined.</p>
<h3>It will take a toll on your family.</h3>
<p>While we started out with four co-founders, one of them was only there to help us get started and offer his network of connections to us. There&#8217;s absolutely nothing wrong with that, but in the end, there were three of us who were fully invested in making this thing go. They say that startup founders experience really high &#8220;highs&#8221; and really low &#8220;lows.&#8221; This is the truest statement I&#8217;ve ever heard with regard to startup life. But when you found a new startup immediately before the whole country goes into a massive recession, you encounter far more lows than you do highs.</p>
<p>Of the three of us, two of us ended up <em>divorced</em>. The one who didn&#8217;t was the bachelor of the group. Now, I&#8217;m not saying that every startup founder will go through this, and in our cases the startup was not the only factor in the equation, but it will definitely take a toll on you and your family. Plan on it.</p>
<p>While I was going through a complete financial, marital and business meltdown in 2008, I would occasionally tweet obscure references to how I was feeling and what I was going through. I had several of my followers ping me asking if everything was okay. I think they were genuinely worried about me.</p>
<p>I will never cease to be amazed by the kindness of strangers.</p>
<h3>Shipping is your most valuable feature.</h3>
<p>It doesn&#8217;t matter how awesome your idea is or how great those investor talks are going. <em>If you don&#8217;t ship, you have nothing.</em></p>
<p>Let me say that again: <em>If you don&#8217;t ship, you have nothing.</em></p>
<p><a href="http://www.randsinrepose.com/archives/2006/04/20/10.html">Rands once said</a> &#8220;shipping a 1.0 won&#8217;t kill you, but it will sure try.&#8221; Shipping a product is tough. By the time you&#8217;ve reached the point where you&#8217;re shipping, you&#8217;ve:</p>
<ol>
<li>Gotten together your initial team.</li>
<li>Burned through some cash.</li>
<li>Done a ton of planning.</li>
<li>Done a ton of coding.</li>
<li>Argued with your team about the right thing to build.</li>
<li>A ton of other stuff.</li>
</ol>
<p>You want to know the funny thing? Shipping a 1.0 is only step 1. After that, you have users, customer service, feature requests, bug reports, scalability issues, and a ton of other stuff to worry about.</p>
<p>So how do you get to a shipping product? You start coding. We encountered some issues with our business a few months after we incorporated that caused us to have to reset. We spent nearly a year trying to recover and get back on-track with an idea that made sense. After we figured out the big idea, we then had to translate that big idea into an actual product. Once we figured out what the product would be, we tried to figure out what it looked like, how it would work, etc.</p>
<p>By this point, we were long-since out of cash. I&#8217;d taken on another daytime job to pay the bills. All-in-all, we burned a lot of time and a lot of cash just trying to figure out what the heck we were going to do. All along the way, we&#8217;d been trying to get VC funding so that we could feed our families and hire some people to help us make progress in narrowing our focus so that we could build something. Unfortunately, none of the VCs had ever heard of us before, and we didn&#8217;t have a product to show them yet.</p>
<p>Finally, in May 2009 we restarted development in earnest. Over the next 10 months until I left to join Amazon Web Services, we were able to accomplish a lot considering how abysmally resource-constrained we were. The next time around, I plan to do a few things very differently.</p>
<ol>
<li>I won&#8217;t quit my daytime job until I believe that the idea is going to go somewhere.</li>
<li>Focus on building the minimum viable product. In our case, we had to significantly narrow our scope so that we could figure out what to build first. We were all so excited about the future that we couldn&#8217;t figure out where to start.</li>
<li>Your customers are not venture capitalists, so don&#8217;t make the mistake of trying to build something that you think VCs will fund. Instead, build something that <em>users will love</em>. VC money will follow the users. In our case, we didn&#8217;t have the resources to build something awesome for users, so we tried to build for VCs to get the money to build for our users. This strategy never worked for us, not even once, and in retrospect it was one of the <strong>worst</strong> ideas we ever had.</li>
<li>Demo, don&#8217;t pitch. Again, VCs don&#8217;t care about pitches. If you&#8217;ve never done a successful startup before, then they&#8217;re not going to fund you anyway. If you don&#8217;t have something working that you can show them, don&#8217;t even bother setting up the meeting. Realistically, you need a working demo to pitch to angel investors. You need a live product with real users to pitch to VCs. If all that you show up with is a tie and a piece of paper talking about what your business plan is, you&#8217;ve just wasted the time of everybody in the room — including your own.</li>
</ol>
<h3>Perseverance is paramount.</h3>
<p>Once you go all-in on your startup, you need to be truly all-in. If you want to succeed, you need to treat this project like a life-or-death situation. You need to believe that you will live or die by the success of what you&#8217;re working on. If you hedge your bet and leave yourself an out, you won&#8217;t make it. Paul Graham, a VC from YCombinator, <a href="http://www.paulgraham.com/die.html">once said</a>:</p>
<blockquote><p>When startups die, the official cause of death is always either running out of money or a critical founder bailing. Often the two occur simultaneously. But I think the underlying cause is usually that they&#8217;ve become demoralized. You rarely hear of a startup that&#8217;s working around the clock doing deals and pumping out new features, and dies because they can&#8217;t pay their bills and their ISP unplugs their server.</p>
<p>Startups rarely die in mid keystroke. So keep typing!</p></blockquote>
<p>This is the one piece of advice that got me through so many of those dark, demoralizing days. Just keep typing.</p>
<h3>Conclusion.</h3>
<p>While my own experience as a startup founder has thus far led to a business that hasn&#8217;t yet succeeded, it doesn&#8217;t mean that yours will end up the same way. Whether you&#8217;re trying to do an Internet startup like me, or simply trying to start a consulting business out of your home, all of the aforementioned points apply.</p>
<ol>
<li>Your business plan doesn&#8217;t matter. Doing something is what matters.</li>
<li>Choose your business partners like you would choose your spouse.</li>
<li>If you&#8217;re looking for funding, only the check matters.</li>
<li>Focus on what you can do here and now — not at some arbitrary point in the future.</li>
<li>It can take a toll on your family. Families can&#8217;t go on autopilot. Take time away from work to spend with the people you love.</li>
<li>If you don&#8217;t ship, you have nothing. Or (if you&#8217;re providing a service instead of a product) if you&#8217;re not currently providing the service, you have nothing.</li>
<li>The only person who can make this thing go is you. It will be hard. It will be frustrating. Make it go anyway.</li>
</ol>
<p>Finally, while this is by no means an exhaustive list, I would recommend spending some quality time digesting the writing from the following authors:</p>
<ul>
<li><a href="http://paulgraham.com/articles.html">Paul Graham</a></li>
<li><a href="http://randsinrepose.com">Michael Lopp (aka &#8220;Rands&#8221;)</a></li>
<li><a href="http://sethgodin.typepad.com">Seth Godin</a></li>
<li><a href="http://lawsofsimplicity.com">John Maeda</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2011/04/07/lessons-ive-learned-from-running-a-startup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Searching through the AWS SDK for PHP documentation</title>
		<link>http://blog.ryanparman.com/2011/02/27/searching-through-the-aws-sdk-for-php-documentation/</link>
		<comments>http://blog.ryanparman.com/2011/02/27/searching-through-the-aws-sdk-for-php-documentation/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 02:15:20 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://blog.ryanparman.com/?p=2012</guid>
		<description><![CDATA[Although the AWS SDK for PHP is growing as fast as Amazon&#8217;s breadth of web services, it should still be easy to find the information that you need in order to develop. This is a goal that I take very seriously. Back in 2005, I took a job with Stryker Endoscopy as a member of [...]]]></description>
			<content:encoded><![CDATA[<p class="intro">Although the AWS SDK for PHP is growing as fast as Amazon&#8217;s breadth of web services, it should still be easy to find the information that you need in order to develop. This is a goal that I take very seriously.</p>
<p>Back in 2005, I took a job with <a href="http://stryker.com/endoscopy/">Stryker Endoscopy</a> as a member of their Internal User Experience team, where our focus was on Usability and User-Centered Design (UCD). (I take no responsibility for how bad their public website is!) I gained some invaluable insight into the usability process and the principles behind UCD that I&#8217;ve carried with me over the years as I&#8217;ve migrated from UX and Front-End Development toward building Software Development Kits (SDKs) for infrastructure services. The most valuable of these is this:</p>
<blockquote><p>You can have all of the greatest functionality in the world. But if nobody can use it, what&#8217;s the point?</p></blockquote>
<p>I&#8217;m tempted to launch into a tirade against the stunning ignorance of software engineers who think we UX people &#8220;make it look pretty.&#8221; <em>A Photoshop mockup does not a user experience make.</em> Those same <em>woefully</em> uneducated people don&#8217;t understand how much science is involved in producing high-quality user interfaces — nor do they understand that if a person can&#8217;t figure out how to use the software, it&#8217;s not a problem with the person&hellip; it&#8217;s a problem with the software. As I&#8217;ve shifted toward producing developer-facing software, I&#8217;ve always maintained the notion that &#8220;developers are people too.&#8221; The administration and developer tools of <a href="http://reardencommerce.com">some web applications</a> are a <em>crime against humanity</em>. Of course, that&#8217;s what happens when you make the mistake of thinking that corporate stakeholders are your customers instead of <em>Real Human Beings™</em>. [I'm starting to rant. Let me switch gears.]</p>
<h3>I &hearts; Quality</h3>
<p>I believe that documentation is equally — if not more — important as the code itself. It&#8217;s a critical part of the user (i.e., developer) experience right up there with API design and SDK design. When I was building <em>CloudFusion</em> (the pre-cursor to the AWS SDK for PHP), I spent quite a bit of time trying to find a high-quality documentation tool that delivered what I believed my users deserved. After searching for a good tool over the course of 2-3 years, I finally broke down and wrote my own tool that produced the kind of high-quality documentation that my users deserve. (That project is called “Vanity”, and is currently incubating).</p>
<h3>Making It Better</h3>
<p>With the release of the <a href="http://aws.amazon.com/releasenotes/PHP/0721416574824769">AWS SDK for PHP 1.2.4</a>, we really tried to raise the bar for our documentation. Here are some of the features that we now provide:</p>
<ul>
<li>Rewrote the in-file documentation blocks to use the more common and better supported <a href="http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_phpDocumentor.quickstart.pkg.html#coding.phpcomments">PHPDoc</a> format instead of the <a href="http://naturaldocs.org/documenting.html">NaturalDocs</a> format we used previously.</li>
<li>Complete API reference documentation for all methods and classes.</li>
<li>One or more usage examples for nearly every single method.</li>
<li>Usage examples are generated from real <a href="http://qa.php.net/write-test.php">PHPT</a> tests, ensuring that the sample code actually works.</li>
<li>A breakdown of all complex parameters so that you can see what all of the possible options are.</li>
<li>The API reference documentation is available in HTML, raw XML, raw JSON and Serialized PHP formats.</li>
<li>Offline documentation can be downloaded as <code>.zip</code>, <code>.gz</code> and <code>.bz2</code> archives.</li>
<li>Intelligent search along with a class browser.</li>
<li>View the source code of any method in the SDK.</li>
<li>The file that a given method is defined in.</li>
<li>Links out to the <a href="https://github.com/amazonwebservices/aws-sdk-for-php">GitHub repository</a>.</li>
<li>Complete inheritance chains and interface conformity.</li>
<li>Methods that are related to the one you&#8217;re looking at.</li>
<li>Links out to <a href="http://php.net">PHP.net</a>, where appropriate.</li>
<li>Instant feedback, as in the ability to point out an error or some other issue directly on a page itself, instead of needing to hunt for a feedback link somewhere else in the site.</li>
<li>The ability to link directly to a search query.</li>
</ul>
<p>It&#8217;s this last feature that I&#8217;ve come to talk about today — the ability to easily search the docs from tools you already use.</p>
<h3>Searching the AWS SDK for PHP documentation from Google Chrome</h3>
<p>For this, we need to tell Chrome to use the following pattern when searching the API reference.</p>
<pre>http://docs.amazonwebservices.com/AWSSDKforPHP/latest/?q=%s</pre>
<ol>
<li>
<p>Open the Google Chrome preferences panel.</p>
<p><div class="blogphoto norotate" style="width: 650px;"><img src="http://s3.ryanparman.com/images/search-sdk/chrome1.png" style="width: 650px;" /></div>
</p>
</li>
<li>
<p>In the <em>Search</em> section, click <em>Manage Search Engines&#8230;</em>. This will show the <em>Search Engines</em> panel.</p>
<p><div class="blogphoto norotate" style="width: 650px;"><img src="http://s3.ryanparman.com/images/search-sdk/chrome2.png" style="width: 650px;" /></div>
</p>
</li>
<li>
<p>In the <em>Other search engines</em> section, fill out the fields as shown below. The URL in the last field is the one I posted above.</p>
<p><div class="blogphoto norotate" style="width: 650px;"><img src="http://s3.ryanparman.com/images/search-sdk/chrome3.png" style="width: 650px;" /></div>
</p>
</li>
<li>
<p>Open a new tab. Typing &#8220;<em>aws[space]</em>&#8221; will trigger the AWS SDK for PHP search. Search for whichever keywords you&#8217;d like. At the time of this writing, classes, methods, properties and constants are supported.</p>
<p><div class="blogphoto norotate" style="width: 650px;"><img src="http://s3.ryanparman.com/images/search-sdk/chrome4.png" style="width: 650px;" /></div>
</p>
</li>
<li>
<p>This will open the SDK API reference documentation. Your search terms will be pre-filled in the search field on the left. You can navigate through the documentation from there!</p>
<p><div class="blogphoto norotate" style="width: 650px;"><img src="http://s3.ryanparman.com/images/search-sdk/chrome5.png" style="width: 650px;" /></div>
</p>
</li>
</ol>
<h3>Searching the AWS SDK for PHP documentation from Mozilla Firefox</h3>
<p>This process is very similar to Google Chrome. For this, we need to tell Firefox to use the following pattern when searching the API reference.</p>
<pre>http://docs.amazonwebservices.com/AWSSDKforPHP/latest/?q=%s</pre>
<ol>
<li>
<p>Open the Firefox Bookmarks Manager by choosing <em>Bookmarks > Show All Bookmarks</em> from the menubar. Once that&#8217;s open, click the gear icon and create a new bookmark.</p>
<p><div class="blogphoto norotate" style="width: 650px;"><img src="http://s3.ryanparman.com/images/search-sdk/firefox1.png" style="width: 650px;" /></div>
</p>
</li>
<li>
<p>Firefox will present a <em>New Bookmark</em> dialog.</p>
<p><div class="blogphoto norotate" style="width: 650px;"><img src="http://s3.ryanparman.com/images/search-sdk/firefox2.png" style="width: 650px;" /></div>
</p>
</li>
<li>
<p>Fill out the fields as shown below. The URL in the <em>Location</em> field is the one I posted above. Firefox calls this a <em>Keyword Search</em>.</p>
<p><div class="blogphoto norotate" style="width: 650px;"><img src="http://s3.ryanparman.com/images/search-sdk/firefox3.png" style="width: 650px;" /></div>
</p>
</li>
<li>
<p>Open a new tab. Typing &#8220;<em>aws[space]</em>&#8221; will trigger the AWS SDK for PHP search. Search for whichever keywords you&#8217;d like. At the time of this writing, classes, methods, properties and constants are supported.</p>
<p><div class="blogphoto norotate" style="width: 650px;"><img src="http://s3.ryanparman.com/images/search-sdk/firefox4.png" style="width: 650px;" /></div>
</p>
</li>
<li>
<p>This will open the SDK API reference documentation. Your search terms will be pre-filled in the search field on the left. You can navigate through the documentation from there!</p>
<p><div class="blogphoto norotate" style="width: 650px;"><img src="http://s3.ryanparman.com/images/search-sdk/firefox5.png" style="width: 650px;" /></div>
</p>
</li>
</ol>
<h3>Searching the AWS SDK for PHP documentation from Alfred</h3>
<p>This approach is my personal favorite, but is specific to <a href="http://alfredapp.com">Alfred</a>, an app launcher for Mac OS X. For this, we need to tell Alfred to use the following pattern when searching the API reference.</p>
<pre>http://docs.amazonwebservices.com/AWSSDKforPHP/latest/?q={query}</pre>
<p>Alternatively, you can use the <a href="alfredapp://customsearch/AWS%20SDK%20for%20PHP/sdk/utf8/url=http://docs.amazonwebservices.com/AWSSDKforPHP/latest/?q={query}">following URL</a> to accomplish what we&#8217;re going to do here:</p>
<pre>alfredapp://customsearch/AWS%20SDK%20for%20PHP/aws/utf8/url=http://docs.amazonwebservices.com/AWSSDKforPHP/latest/?q={query}</pre>
<ol>
<li>
<p>Open the Alfred preferences, and choose <em>Custom Searches</em> from the sidebar. Once there, click the plus symbol at the bottom to add a new custom search.</p>
<p><div class="blogphoto norotate" style="width: 650px;"><img src="http://s3.ryanparman.com/images/search-sdk/alfred1.png" style="width: 650px;" /></div>
</p>
</li>
<li>
<p>Fill out the fields as shown below. The URL in the <em>Search URL</em> field is the one I posted above. Click <em>Add</em> when you&#8217;re done.</p>
<p><div class="blogphoto norotate" style="width: 650px;"><img src="http://s3.ryanparman.com/images/search-sdk/alfred2.png" style="width: 650px;" /></div>
</p>
</li>
<li>
<p>Close the preferences, and bring up Alfred! Typing &#8220;<em>aws[space]</em>&#8221; will trigger the AWS SDK for PHP search. Search for whichever keywords you&#8217;d like. At the time of this writing, classes, methods, properties and constants are supported.</p>
<p><div class="blogphoto norotate" style="width: 600px;"><img src="http://s3.ryanparman.com/images/search-sdk/alfred3.png" style="width: 600px;" /></div>
</p>
</li>
</ol>
<h3>The End</h3>
<p>I hope that this tutorial helps make your use of the AWS SDK for PHP even easier! Are there some other cool uses for the SDK docs that I might not be aware of? Let me know in the comments!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2011/02/27/searching-through-the-aws-sdk-for-php-documentation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CloudFusion has become the official AWS SDK for PHP!</title>
		<link>http://blog.ryanparman.com/2010/09/28/cloudfusion-has-become-the-official-aws-sdk-for-php/</link>
		<comments>http://blog.ryanparman.com/2010/09/28/cloudfusion-has-become-the-official-aws-sdk-for-php/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 01:39:20 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.ryanparman.com/?p=1900</guid>
		<description><![CDATA[It&#8217;s always been a dream of mine to get paid to work on something I love. I spent more than 5 years working on SimplePie, and although it gained hundreds of thousands of users all over the world, it never gave anything back to me. It was a labor of love, and I did it [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s always been a dream of mine to get paid to work on something I love.</p>
<p>I spent more than 5 years working on <a href="http://simplepie.org">SimplePie</a>, and although it gained hundreds of thousands of users all over the world, it never gave anything back to me. It was a labor of love, and I did it both for the recognition as well as my desire to take something complex and make it simple.</p>
<p>In July 2007, while working on my startup — <a href="http://warpshare.com">WarpShare</a> — I rebooted my old <em>Tarzan</em> project, which was a wrapper around what is now <a href="https://affiliate-program.amazon.com/gp/advertising/api/detail/main.html">Amazon&#8217;s Product Advertising API</a>. Tarzan grew and grew until it became a fairly popular toolkit for working with <a href="http://aws.amazon.com">Amazon Web Services</a>. I&#8217;ve been amazed to find out who some of my customers are!</p>
<p>Tarzan caught the attention of two companies — Amazon and <a href="http://rackspacecloud.com">RackSpace</a>. It was during this time when I had RackSpace folks pinging me that I decided that I wanted to branch out beyond just Amazon&#8217;s services, and renamed the project to <em>CloudFusion</em>. Ultimately, however, it wasn&#8217;t meant to be. In February 2010, I accepted an offer to join Amazon Web Services to work on the then-secret <a href="http://aws.amazon.com/sdkforphp">AWS SDK for PHP</a>.</p>
<p>As of today, <em>the AWS SDK for PHP has superseded CloudFusion for all of the infrastructure services</em>. It&#8217;s been an exciting time here at Amazon, and I&#8217;m looking forward to all of the awesome stuff we have in the pipeline!</p>
<p>I hope that you&#8217;ll see all of the energy I put into the SDK, and that you&#8217;ll come to love it as much as I do!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2010/09/28/cloudfusion-has-become-the-official-aws-sdk-for-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing DOMBuilder</title>
		<link>http://blog.ryanparman.com/2009/02/27/introducing-dombuilder/</link>
		<comments>http://blog.ryanparman.com/2009/02/27/introducing-dombuilder/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 17:13:22 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.ryanparman.com/?p=1677</guid>
		<description><![CDATA[I hate the DOM. Actually, I take that back. I love the DOM, but I hate the fact that generating DOM nodes in JavaScript is so verbose and unintuitive. You need to construct a new element, then add properties, then construct a child element, then add properties, then append the child to the parent, and [...]]]></description>
			<content:encoded><![CDATA[<p class="intro">I hate the DOM. Actually, I take that back. I love the DOM, but I hate the fact that generating DOM nodes in JavaScript is so verbose and unintuitive.</p>
<p>You need to construct a new element, then add properties, then construct a child element, then add properties, then append the child to the parent, and the parent to whatever DOM object you want that&#8217;s already in the page.</p>
<p>A few years ago I discovered <code>Builder.node()</code>, a component of <a href="http://script.aculo.us">Scriptaculous</a>. The problem is that Scriptaculous relies on Prototype, and both are HUGE JavaScript libraries. Later I moved to Moo.fx/MooTools, then I didn&#8217;t do much JavaScript for a while, then I started doing a lot with YUI, while sprinkling a little jQuery around here and there. None of these other frameworks had an equivalent to <code>Builder.node()</code>, and again, that sucks.</p>
<p>So last night, I wrote a small JavaScript class to handle this very thing. Introducing <a href="http://github.com/skyzyx/dombuilder/">DOMBuilder</a>. DOMBuilder is small, fast, and doesn&#8217;t depend on any other JavaScript frameworks meaning that it&#8217;s easy to use in any project where you need to construct nested DOM elements. The fully commented debug version clocks in around 3k. The minified version is 739 bytes. With gzip compression, it squeezes down to a mere 393 bytes.</p>
<p>It&#8217;s not quite as terse or elegant as I&#8217;d like (yet), but it&#8217;s a good result for about 2 hours of hacking.</p>
<h3>Examples</h3>
<p>Here&#8217;s the HTML we want to generate:</p>
<pre>&lt;div class="location_select_control"&gt;
	&lt;a href="" class="location_select_label"&gt;
		&lt;label&gt;This is my label&lt;/label&gt;
	&lt;/a&gt;
&lt;/div&gt;</pre>
<p>Here is how we&#8217;d do it with the standard DOM:</p>
<pre>control_div = document.createElement('div');
control_div.className = "location_select_control";
control_link = document.createElement('a');
control_link.href = "";
control_link.className = "location_select_label";
control_label = document.createElement('label');
control_label.innerHTML = "This is my label";
control_link.appendChild(control_label);
control_div.appendChild(control_link);
document.body.appendChild(control_div);</pre>
<p>Lastly, here&#8217;s how we&#8217;d do it with DOMBuilder:</p>
<pre>document.body.appendChild($dom('div', { class:'location_select_control' }).child(
	$dom('a', { href:'', class:'location_select_label' }).child(
		$dom('label').innerHTML('This is my label')
	)
).asDOM());</pre>
<h3>Download</h3>
<p>This code is BSD licensed, so feel free to use it in personal or commercial projects. You can download it from <a href="http://github.com/skyzyx/dombuilder/">GitHub</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2009/02/27/introducing-dombuilder/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Tarzan 2.0 is finally here!</title>
		<link>http://blog.ryanparman.com/2008/12/10/tarzan-20-is-finally-here/</link>
		<comments>http://blog.ryanparman.com/2008/12/10/tarzan-20-is-finally-here/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 17:45:28 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.ryanparman.com/?p=1657</guid>
		<description><![CDATA[After 18 months of ongoing development, I am proud to announce the immediate availability of Tarzan 2.0! The Tarzan platform has complete support for six different AWS services (S3, CloudFront, EC2, SimpleDB, SQS, and Amazon Associates) and has been built from the ground-up to be fast, memory-efficient, easy to use, and easy to build on [...]]]></description>
			<content:encoded><![CDATA[<p>After 18 months of ongoing development, I am proud to announce the immediate availability of Tarzan 2.0! The Tarzan platform has complete support for six different AWS services (S3, CloudFront, EC2, SimpleDB, SQS, and Amazon Associates) and has been built from the ground-up to be fast, memory-efficient, easy to use, and easy to build on top of by providing a solid set of core tools for your (and our) web application.</p>
<p>You can download the 2.0 release from <a href="http://bit.ly/tarzan2">http://bit.ly/tarzan2</a>, and please Digg us at <a href="http://bit.ly/digg-tarzan">http://bit.ly/digg-tarzan</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2008/12/10/tarzan-20-is-finally-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Tarzan pre-release is available!</title>
		<link>http://blog.ryanparman.com/2008/10/11/new-tarzan-pre-release-is-available/</link>
		<comments>http://blog.ryanparman.com/2008/10/11/new-tarzan-pre-release-is-available/#comments</comments>
		<pubDate>Sat, 11 Oct 2008 08:32:06 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.ryanparman.com/?p=1648</guid>
		<description><![CDATA[Today we announce an updated Tarzan pre-release build for any developers not using the subversion trunk. A lot of work has gone into Tarzan over the past 2 months since the last release, namely: Added the ability to change the content-type of an existing object in S3. Fixed some minor bugs in SimpleDB and S3. [...]]]></description>
			<content:encoded><![CDATA[<p>Today we announce an updated Tarzan pre-release build for any developers not using the subversion trunk. A lot of work has gone into Tarzan over the past 2 months since the last release, namely:</p>
<ul>
<li>Added the ability to change the content-type of an existing object in S3.</li>
<li>Fixed some minor bugs in SimpleDB and S3.</li>
<li>Re-wrote all of the documentation in the entire project (which enables us to generate awesome documentation which can be found on the <a href="http://tarzan-aws.com/docs/">Tarzan documentation</a> page).</li>
<li>Launched an entirely <a href="http://tarzan-aws.com">new website</a>!</li>
<li>Added support for caching frequently requested data to enhance performance. Caching types currently include file-based, APC, MySQL, PostgreSQL, and SQLite. Informal tests tend to show a speed-up of between 600x-1000x, depending on the request and the type of cache being used.</li>
</ul>
<p>If you&#8217;d rather not use the bleeding-edge subversion trunk builds, you can grab the latest pre-release build from the <a href="http://tarzan-aws.com/download/">Tarzan download</a> page. Check it out!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2008/10/11/new-tarzan-pre-release-is-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tarzan 2</title>
		<link>http://blog.ryanparman.com/2008/10/02/tarzan-2/</link>
		<comments>http://blog.ryanparman.com/2008/10/02/tarzan-2/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 16:44:06 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.ryanparman.com/?p=1646</guid>
		<description><![CDATA[If you&#8217;ve been following my blog over the past few years, you might remember an old project I was working on back in early 2005 called Tarzan. At the time, the only Amazon web service was their e-catalog (e-commerce) service, and that was was Tarzan specialized in. I ended up scrapping the project around the [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve been following my blog over the past few years, you might remember an old project I was working on back in early 2005 called Tarzan. At the time, the only Amazon web service was their e-catalog (e-commerce) service, and that was was Tarzan specialized in.</p>
<p>I ended up scrapping the project around the same time as <a href="http://gsnedders.com/">Geoffrey</a> came to me and said that he wanted to help work on another one of my little side projects, <a href="http://simplepie.org/">SimplePie</a>. Of course, as most of the web development community knows, SimplePie has gone on to be wildly popular and Tarzan essentially bit the dust.</p>
<p>Fast-forward two years, and I&#8217;ve started my own company, <a href="http://warpshare.com">WarpShare</a>. I&#8217;ve spoken before about the frustrations I&#8217;ve had trying to find and download music, movies, and TV shows with high quality, no DRM, with excellent metadata, all for cheap or free. &#8220;Legal&#8221; is nice, but not required. I believe many of us feel the same way. So I went on to start a company where one of the focuses is to do almost exactly this, except that the &#8220;legal&#8221; became required instead of optional, and where all parties involved can get what they want. But I&#8217;m not here to talk about that.</p>
<p>We knew that an undertaking of this kind of magnitude would require quite a bit of infrastructure, lots of data processing, and huge databases for cheap or free (we&#8217;re a pre-VC funding startup). Amazon&#8217;s new &#8220;cloud computing&#8221; initiative to the rescue! I&#8217;ll let you read up on <a href="http://aws.amazon.com/">Amazon Web Services</a> on your own, but I ended up deciding to resurrect the old Tarzan project as something entirely new. That currently-in-development software will, when officially released, be known as <a href="http://tarzan-aws.com">Tarzan</a> 2.0.</p>
<p>I&#8217;ve already spent some time talking about it, so if you&#8217;re interested in this new &#8220;cloud computing&#8221; thing (including storage-in-the-cloud and lightweight-databasing-in-the-cloud) and you&#8217;re a PHP developer, take a moment to give <a href="http://tarzan-aws.com">Tarzan</a> a look. I think you&#8217;ll like it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2008/10/02/tarzan-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Yahoo! Messenger redesign is live!</title>
		<link>http://blog.ryanparman.com/2008/05/11/yahoo-messenger-redesign-is-live/</link>
		<comments>http://blog.ryanparman.com/2008/05/11/yahoo-messenger-redesign-is-live/#comments</comments>
		<pubDate>Mon, 12 May 2008 05:48:59 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.com/?p=1632</guid>
		<description><![CDATA[Internally known as &#8220;Aurora,&#8221; the new Yahoo! Messenger redesign has finally launched! I was going to write something up about it, but Ryan Doherty and Adrien Cahen have all written plenty. Check it out! Also, Digg it! http://digg.com/tech_news/New_Yahoo_Messenger_website_is_LIVE]]></description>
			<content:encoded><![CDATA[<p>Internally known as &#8220;Aurora,&#8221; the new <a href="http://messenger.yahoo.com">Yahoo! Messenger</a> redesign has finally launched! I was going to write something up about it, but <a href="http://www.ryandoherty.net/2008/05/10/yahoo-messenger-website-redesign/">Ryan Doherty</a> and <a href="http://gaarf.info/2008/05/06/aurora-lives/">Adrien Cahen</a> have all written plenty. Check it out! <img src="http://blog.ryanparman.com.s3.amazonaws.com/wp-includes/images/smilies/icon_smile.gif?cda6c1" alt=':)' class='wp-smiley' /> </p>
<p>Also, Digg it! <a href="http://digg.com/tech_news/New_Yahoo_Messenger_website_is_LIVE">http://digg.com/tech_news/New_Yahoo_Messenger_website_is_LIVE</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2008/05/11/yahoo-messenger-redesign-is-live/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SimplePie Plugin for WordPress</title>
		<link>http://blog.ryanparman.com/2006/06/07/simplepie-plugin-for-wordpress/</link>
		<comments>http://blog.ryanparman.com/2006/06/07/simplepie-plugin-for-wordpress/#comments</comments>
		<pubDate>Wed, 07 Jun 2006 16:50:24 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.com/2006/06/07/simplepie-plugin-for-wordpress/</guid>
		<description><![CDATA[When we launched SimplePie Beta 2 last week, we launched with a couple of plugins. The first is a SimplePie Plugin for WordPress, the ever-popular blogging tool from the fine folks at automattic. This plugin adds a single function to your WordPress function ensemble that makes it simple to add SimplePie to your WordPress templates. [...]]]></description>
			<content:encoded><![CDATA[<p>When we launched SimplePie Beta 2 last week, we launched with a couple of plugins.  The first is a SimplePie Plugin for WordPress, the ever-popular blogging tool from the fine folks at automattic.  This plugin adds a single function to your WordPress function ensemble that makes it simple to add SimplePie to your WordPress templates.</p>
<p>The other was the SimplePie Plugin for MediaWiki, the wiki software that powers the popular Wikipedia, by adding support for the &lt;feed> tag in your wiki pages.</p>
<p>If you&#8217;re using either of these software packages, check out these plugins!</p>
<p><a href="http://simplepie.org/docs/installation/wordpress/">read more</a>&nbsp;|&nbsp;<a href="http://digg.com/software/SimplePie_Plugin_for_Wordpress">digg story</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2006/06/07/simplepie-plugin-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SimplePie Beta 2 is now available!</title>
		<link>http://blog.ryanparman.com/2006/06/02/simplepie-beta-2-is-now-available/</link>
		<comments>http://blog.ryanparman.com/2006/06/02/simplepie-beta-2-is-now-available/#comments</comments>
		<pubDate>Sat, 03 Jun 2006 07:56:50 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Syndication]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.com/2006/06/02/simplepie-beta-2-is-now-available/</guid>
		<description><![CDATA[After several months of toiling over this release, and the past few weekends pouring over the documentation, we are now very proud to release SimplePie Beta 2! Nearly every major feature has been enhanced, as well as the addition of several new ones. Be sure to read the upgrade docs if you&#8217;re upgrading from Beta [...]]]></description>
			<content:encoded><![CDATA[<p>After several months of toiling over this release, and the past few weekends pouring over the documentation, we are now very proud to release <strong>SimplePie Beta 2!</strong></p>
<p>Nearly every major feature has been enhanced, as well as the addition of several new ones.  Be sure to read the <a href="http://simplepie.org/docs/upgrade/">upgrade docs</a> if you&#8217;re upgrading from Beta 1 or the Preview Release.  People who were using trunk builds should be able to just drop this file in as a replacement for any previous <code>simplepie.inc</code> file.</p>
<p>We&#8217;ve also added a <a href="http://simplepie.org/docs/installation/wordpress/">WordPress plugin</a> and a <a href="http://simplepie.org/docs/installation/mediawiki/">MediaWiki extension</a> to the mix.  And as always, if you have any questions, comments, or need clarification on anything, be sure to swing by the <a href="http://simplepie.org/support/">support forums</a>.  We&#8217;re there a lot. <img src="http://blog.ryanparman.com.s3.amazonaws.com/wp-includes/images/smilies/icon_smile.gif?cda6c1" alt=':)' class='wp-smiley' /> </p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2006/06/02/simplepie-beta-2-is-now-available/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>We need your feeds!</title>
		<link>http://blog.ryanparman.com/2006/03/26/we-need-your-feeds/</link>
		<comments>http://blog.ryanparman.com/2006/03/26/we-need-your-feeds/#comments</comments>
		<pubDate>Sun, 26 Mar 2006 23:33:22 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Syndication]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.com/2006/03/26/we-need-your-feeds/</guid>
		<description><![CDATA[RSS and Atom feeds that aren&#8217;t either UTF-8 or ISO-8859-1 have proven difficult to find, so I&#8217;m calling out to all of you. If you read or publish feeds that are in a character set other than these two, please post them here in the comments. We&#8217;ve just finished adding iconv support to SimplePie, and [...]]]></description>
			<content:encoded><![CDATA[<p>RSS and Atom feeds that aren&#8217;t either UTF-8 or ISO-8859-1 have proven difficult to find, so I&#8217;m calling out to all of you.  If you read or publish feeds that are in a character set other than these two, please post them here in the comments.  We&#8217;ve just finished adding <code>iconv</code> support to SimplePie, and want to test that support (it&#8217;s in the trunk build as of this moment).  Any help along these lines would be appreciated.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2006/03/26/we-need-your-feeds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SimplePie 1.0 Preview Release is now available!</title>
		<link>http://blog.ryanparman.com/2006/01/09/simplepie-10-preview-release-is-now-available/</link>
		<comments>http://blog.ryanparman.com/2006/01/09/simplepie-10-preview-release-is-now-available/#comments</comments>
		<pubDate>Mon, 09 Jan 2006 18:15:06 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Syndication]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.com/2006/01/09/simplepie-10-preview-release-is-now-available/</guid>
		<description><![CDATA[The newest release of SimplePie is here! There is barely a single unchanged line of code in this release, as we&#8217;ve been working for months to completely overhaul the entire SimplePie engine, and we&#8217;ve added several new features while we were at it. I could sit here and go over each and every things that&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>The newest release of SimplePie is here!  There is barely a single unchanged line of code in this release, as we&#8217;ve been working for months to completely overhaul the entire SimplePie engine, and we&#8217;ve added several new features while we were at it.</p>
<p>I could sit here and go over each and every things that&#8217;s new or better or changed, but <a href="http://www.simplepie.org">I&#8217;ve already done that</a>.  To find out more about <a href="http://www.simplepie.org">SimplePie</a>, and what all it can do, check out the <a href="http://www.simplepie.org">official SimplePie website</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2006/01/09/simplepie-10-preview-release-is-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SimplePie&#8217;s Triumphant Return!</title>
		<link>http://blog.ryanparman.com/2006/01/06/simplepies-triumphant-return/</link>
		<comments>http://blog.ryanparman.com/2006/01/06/simplepies-triumphant-return/#comments</comments>
		<pubDate>Fri, 06 Jan 2006 18:34:47 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Syndication]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.com/2006/01/06/simplepies-triumphant-return/</guid>
		<description><![CDATA[It&#8217;s been a year since the last SimplePie release, but that doesn&#8217;t mean the project is dead. Fortunately I was able to get some help from Geoffers, and he actually ended up driving most of the development since he came on board over the summer. I wish I could tell you that a shiny new [...]]]></description>
			<content:encoded><![CDATA[<div align="center"><img src="http://blog.ryanparman.com.s3.amazonaws.com/wp-content/uploads/2006/01/logo_simplepie_large.png?cda6c1" alt="SimplePie Preview Release" title="SimplePie Preview Release" /></div>
<p>It&#8217;s been a year since the last SimplePie release, but that doesn&#8217;t mean the project is dead.  Fortunately I was able to get some help from <a href="http://geoffers.uni.cc">Geoffers</a>, and he actually ended up driving most of the development since he came on board over the summer.</p>
<p>I wish I could tell you that a shiny new version 1.0 was available, but alas, not yet.  What we do have, however, is a shiny new Preview Release &#8212; soon.</p>
<p>What is SimplePie?  Let me tell you:</p>
<blockquote>
<p>SimplePie is a very fast and easy-to-use class, written in PHP, for reading RSS and Atom syndication feeds. By keeping it simple, and focusing on what&#8217;s important, we&#8217;ve built a pretty sweet little API. SimplePie&#8217;s focus has been two-fold: speed and ease of use, and has been very successful on both fronts.</p>
</blockquote>
<p>Expect to see a new SimplePie Preview Release and a matching <a href="http://www.simplepie.org">website</a> in the next few days.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2006/01/06/simplepies-triumphant-return/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tarzan Incomplete Pre-Release Nightly Beta</title>
		<link>http://blog.ryanparman.com/2005/04/17/tarzan-incomplete-pre-release-nightly-beta/</link>
		<comments>http://blog.ryanparman.com/2005/04/17/tarzan-incomplete-pre-release-nightly-beta/#comments</comments>
		<pubDate>Mon, 18 Apr 2005 03:05:20 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/archives/2005/04/17/tarzan-incomplete-pre-release-nightly-beta/</guid>
		<description><![CDATA[Ryan releases beta builds of some upcoming software.]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re one of the many people clamoring about getting their hands on a Tarzan 1.2 Beta, check out the <a href="/projects/tarzan/">Tarzan Project Page</a> for a link to the latest Incomplete Pre-Release Nightly Beta builds.  Don&#8217;t cry if they break your computer.  Have fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2005/04/17/tarzan-incomplete-pre-release-nightly-beta/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Good News, Bad News</title>
		<link>http://blog.ryanparman.com/2005/04/16/good-news-bad-news/</link>
		<comments>http://blog.ryanparman.com/2005/04/16/good-news-bad-news/#comments</comments>
		<pubDate>Sat, 16 Apr 2005 23:33:18 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Video Games]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/archives/2005/04/16/good-news-bad-news/</guid>
		<description><![CDATA[Ryan talks about finding a new job, his best friend moving, getting his wisdom teeth pulled, losing a house he was in contract for, and new builds of Tarzan and SimplePie.]]></description>
			<content:encoded><![CDATA[<p><strong>Good News:</strong> I just landed a new job with a medical equipment company called <a href="http://www.stryker.com/">Stryker</a>.  I had a 3.5 hour interview with 6 people, but I feel that it all went extremely well.  Apparently they felt so too, because I&#8217;m now contracting for them.  Best of all, it only took me 7 minutes to drive there the other day which is much better than the 1 hour commute I was making before.</p>
<p><strong>Good/Bad News:</strong> My best friend Eric is about to finish up Navigator training in the Air Force (if you&#8217;ve seen Top Gun, he&#8217;s Goose instead of Maverick).  After nearly a year of training 1500 miles away in <a href="http://www.globalsecurity.org/military/facility/randolph.htm">Texas</a> (he and I are California natives), he just found out he&#8217;s getting stationed in Omaha, Nebraska.  The good news is that it was his third choice of location (better than getting a 17th choice, I suppose) and that he&#8217;ll be flying in/out of London and other parts of Europe pretty frequently, which is something that he&#8217;ll really enjoy doing.  The bad news is that even in Omaha, he&#8217;s still 1500-1600 miles away from home, and I just plain miss spending time with him like we used to.  Phone calls and iSight video chats just aren&#8217;t the same.</p>
<p><strong>Good/Bad News:</strong> After being retarded and waiting 6 years to get my wisdom teeth pulled, I finally went to an oral surgeon and got all 4 wisdom teeth pulled yesterday.  The good news is that I no longer have to worry about my wisdom teeth coming in directly horizontally causing very painful impacted molars (I&#8217;ve been taking Tylenol every day for the past 3 weeks for the pain).  The bad news is that even with my medications Toradol and Vicoden (which is a close relative to drugs like Morphine and Heroine), my mouth is still killing me.  I&#8217;ve been sitting here eating ice cream with a package of frozen peas on my face all morning to little avail.</p>
<p><strong>Bad News:</strong> We had to let our house go last week.  With my being out of work for three weeks, we weren&#8217;t sure how soon I&#8217;d've been able to find something else considering how competitive the market has been lately here in Silicon Valley.  So we signed the &#8220;Release of Contract&#8221; documents last week, and are currently planning to wait a few months to be sure we&#8217;re financially stable again and then start looking for a new home.  The lease on our apartment is over in August, so we&#8217;ll ideally need to find something else by then.  Here&#8217;s hoping everything goes well with that.</p>
<p><strong>Good News:</strong> For my fellow geeks that are as excited to start using the next version of <a href="/projects/tarzan/">Tarzan</a> as I am to release it, I just want to say that I&#8217;m close to finishing development on the brand-new, completely overhauled <a href="/img/tarzan_cp.png?cda6c1">Tarzan Control Panel</a>.  Besides the new features that I talked about the last time I mentioned Tarzan here, I&#8217;ve added the ability to apply custom descriptions to items via the Control Panel, and I&#8217;ve also added advanced cache management options &mdash; specifically the ability to recache the image/data for a given item without having to FTP into your cache folder and try to discern which item is which.  I&#8217;ve also begun building the API that will allow people to search for items based on keyword rather than just ASIN/ISBN numbers.  It should also be noted that I&#8217;ve completely overhauled the <a href="/archives/000404.php#comment2">caching system</a> in Tarzan 1.2, and you&#8217;d have to be Forrest Gump to not notice the significant speed gains that this new system has allowed.  This same caching system (as well as a few other Tarzan features) will be making it&#8217;s way into the next version of <a href="/projects/simplepie/">SimplePie</a> as well as <a href="http://www.relativelyabsolute.com/spg/">Simple PHP Gallery 2</a> in the upcoming months.</p>
<p>Okay, I&#8217;m done writing now.  I think it&#8217;s time to take my frozen peas into the living room to try to finish up <a href="http://www.nintendo.com/gamemini?gameid=m-Game-0000-1699&#038;">Metroid Prime 2: Echoes</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2005/04/16/good-news-bad-news/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sneak Peek</title>
		<link>http://blog.ryanparman.com/2005/03/31/sneak-peek/</link>
		<comments>http://blog.ryanparman.com/2005/03/31/sneak-peek/#comments</comments>
		<pubDate>Thu, 31 Mar 2005 23:38:25 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/archives/2005/03/31/sneak-peek/</guid>
		<description><![CDATA[It&#8217;s still in the works, but I thought I&#8217;d give you all a sneak peek of the new Tarzan Control Panel. Check it out: I&#8217;ve still got some things to implement, bugs to fix, design tweaks to make, and API to build, but overall the new 1.2 version of Tarzan is shaping up extemely well. [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s still in the works, but I thought I&#8217;d give you all a sneak peek of the new Tarzan Control Panel.  Check it out:</p>
<div align="center" class="blogimage"><a href="/img/tarzan_cp.png?cda6c1"><img src="/img/tarzan_cp_thumb.png?cda6c1" alt="Tarzan Control Panel 1.2 Beta" title="Tarzan Control Panel 1.2 Beta" /></a></div>
<p>I&#8217;ve still got some things to implement, bugs to fix, design tweaks to make, and API to build, but overall the new 1.2 version of Tarzan is shaping up extemely well.  I don&#8217;t like to announce timelines for <em>personal projects</em> (as work/professional projects have been known to take up large chunks of time, and I have to dedicate myself to those in order to pay the bills), but I can say &#8220;soon&#8221;.</p>
<p>I&#8217;m also hoping to put out a v1.1.1 release to address <a href="http://www.dreamhost.com">Dreamhost&#8217;s</a> recent decision to disable the use of PHP&#8217;s <code>fopen()</code> function for accessing data from external sites.  This decision directly affects both <a href="/projects/tarzan/">Tarzan</a> and <a href="/projects/simplepie/">SimplePie</a>.</p>
<p>I know that this is just a visual sneak peek, and there isn&#8217;t much here for Tarzan <em>developers</em>, but what do you think?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2005/03/31/sneak-peek/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>What&#8217;s New?</title>
		<link>http://blog.ryanparman.com/2005/03/23/whats-new-3/</link>
		<comments>http://blog.ryanparman.com/2005/03/23/whats-new-3/#comments</comments>
		<pubDate>Wed, 23 Mar 2005 17:56:58 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/archives/2005/03/23/whats-new/</guid>
		<description><![CDATA[Sometimes I&#8217;m working on my site so much, that I don&#8217;t stop to realize that I haven&#8217;t posted anything in a while. I think we all do that, but here&#8217;s a bit of what&#8217;s been going on lately: Tarzan 1.2: I&#8217;ve been very hard at work on the next Tarzan release. This release will be [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes I&#8217;m working on my site so much, that I don&#8217;t stop to realize that I haven&#8217;t posted anything in a while.  I think we all do that, but here&#8217;s a bit of what&#8217;s been going on lately:</p>
<p><b>Tarzan 1.2:</b> I&#8217;ve been very hard at work on the next Tarzan release.  This release will be everything I&#8217;d hoped the last release would be, before I realized it was a bit too ambitious.  Rather than talk about the things I <em>want</em> to do, there are a few things that are already done and in the bag.</p>
<ol>
<li>A significantly improved caching system.  This sucker flies!</li>
<li>Improved image processing functionality.  Supports multiple output formats among other things.</li>
<li>Custom Descriptions for products.  You can overwrite Amazon&#8217;s default values, or even use your own custom images for products.</li>
<li>A much improved Control Panel.  Nearly everything can be tweaked from the web interface.</li>
<li>iTunes Music Store integration for CD tracklistings.</li>
</ol>
<p>Very cool stuff, and I&#8217;ve still got more that I&#8217;m working on.  Tarzan 1.2 will be awesome!</p>
<p><b>Skyzyx.com, v22:</b>  The redesign that I promised over a year ago is underway.  I&#8217;ve switched to WordPress, and am in the process of fixing things that were broken in Movable Type.  I&#8217;m working on a fresh clean design, and am frantically studying HTACCESS redirects.</p>
<p><b>Buying a house:</b> My wife and I are looking to buy our first place.  I&#8217;ve realized that Bay Area housing costs are absolutely ridiculous!  We&#8217;re looking at buying a 1500 sq. ft. townhouse, 3 bedroom, 2 bath, for $500k&#8230; and that&#8217;s a <em>good deal</em>.  In the small town of Sanger where I grew up, a place like that would go for a whopping $150k.  Anyways, we put a bid on the place, and just got a counter-offer last night.  Let&#8217;s hope that everything goes through!</p>
<p><b>New baby on the way:</b> I didn&#8217;t want to mention this publically when we first found out, because you never know what might happen at early stages of pregnancy, but then I forgot to say anything once we were relatively in-the-clear.  My wife and I are expecting a baby boy in June!  It&#8217;s very exciting, but very nerve-racking at the same time.</p>
<p>Anyways, lots of stuff.  So, what&#8217;s going on for you these days?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2005/03/23/whats-new-3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Tarzan 1.1 Now Available!</title>
		<link>http://blog.ryanparman.com/2005/03/12/tarzan-11-now-available/</link>
		<comments>http://blog.ryanparman.com/2005/03/12/tarzan-11-now-available/#comments</comments>
		<pubDate>Sat, 12 Mar 2005 10:58:53 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/archives/2005/03/12/tarzan-11-now-available/</guid>
		<description><![CDATA[Tarzan 1.1 is now available. This release has so many new features, I can&#8217;t list them all. For that, you can read the release notes. There are also some minor changes for people upgrading from 1.0.x, so please look over the release notes anyways. Although there are zero API changes in this release, there are [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/projects/tarzan/">Tarzan 1.1</a> is now available.  This release has so many new features, I can&#8217;t list them all.  For that, you can read the <a href="/projects/tarzan/docs/documentation.htm">release notes</a>.  There are also some minor changes for people upgrading from 1.0.x, so please look over the release notes anyways.</p>
<p>Although there are zero API changes in this release, there are lots and lots of web interface improvements for people administering Tarzan installations.  I&#8217;ve also laid the groundwork for keyword searching, which will be the primary feature of the next release.</p>
<p>Beyond that, here&#8217;s a short list of what&#8217;s new:</p>
<ul>
<li>The Tarzan information page has become the Tarzan Control Panel.  You&#8217;ve got access to more information, and have more control over what all is going on with your Tarzan system.  It now requires a login, and has been localized into English, French, German, and Japanese.</li>
<li>Automatic Update Detection for both the Tarzan software and your Tarzan Extensions.  Color-coded notifiers in the Tarzan Control Panel allow you to know if updates are available just by glancing at them.</li>
<li>The lifespan of the cache is now a configurable option.</li>
<li>You can either use Tarzan&#8217;s built-in error messages, or enable error handling to handle your own Amazon errors.</li>
<li>Tarzan can work configuration-free for people who just want to upload and go.  Even better is the new Tarzan Setup Assistant, which will import your old configuration settings (if any), ask you a few questions, then create the new configuration file automatically.</li>
<li>LOTS of other changes, tweaks, and improvements.</li>
</ul>
<p>As always, you can see the <a href="/projects/tarzan/demo.php">demo</a>, view a <a href="/wishlist/">working implementation</a>, read the <a href="/projects/tarzan/docs/documentation.htm">release notes</a>, ask a <a href="http://support.skyzyx.net/viewforum.php?f=10">question</a>, or just get to the point and <a href="/projects/tarzan/">download the software</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2005/03/12/tarzan-11-now-available/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tarzan 1.0.1 Now Available!</title>
		<link>http://blog.ryanparman.com/2005/02/03/tarzan-101-now-available/</link>
		<comments>http://blog.ryanparman.com/2005/02/03/tarzan-101-now-available/#comments</comments>
		<pubDate>Fri, 04 Feb 2005 04:10:44 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=218</guid>
		<description><![CDATA[Tarzan 1.0.1 is now available. This is a relatively minor update where only three things were changed: I resolved some localization issues that primarily affected France, Germany, and Japan. If you&#8217;re currently localized as an english-speaking country, you probably won&#8217;t notice anything new. However, setting the character encoding for your Tarzan-enabled pages to UTF-8 is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.skyzyx.com/projects/tarzan/">Tarzan 1.0.1</a> is now available.  This is a relatively minor update where only three things were changed:</p>
<p>I resolved some localization issues that primarily affected France, Germany, and Japan.  If you&#8217;re currently localized as an english-speaking country, you probably won&#8217;t notice anything new.  However, setting the character encoding for your Tarzan-enabled pages to UTF-8 is <em>highly recommended</em> for US, UK, and Canadian installations, and <em>required</em> for French, German, and Japanese installations.</p>
<p>I also tweaked the <code>get_rating()</code> function to add <code>/5</code> to the end of the rating (since it&#8217;s out of 5 anyways).  If you&#8217;re currently adding <code>/5</code> or &#8220;out of 5&#8243; manually after using this function, you should remove it when you upgrade.</p>
<p>Lastly, I made some very minor, primarily subtle cosmetic changes to the Tarzan Information Page.  Mostly just tweaking the margins and padding.  I also added the quantity of cached files alongside the cache file size.</p>
<p>As always, you can check out a rough <a href="http://www.skyzyx.com/projects/tarzan/demo.php">demo</a>, ask a <a href="http://support.skyzyx.net/viewforum.php?f=10">question</a>, or see a <a href="http://www.skyzyx.com/wishlist/">real live implementation</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2005/02/03/tarzan-101-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tarzan 1.0 Is Now Available!</title>
		<link>http://blog.ryanparman.com/2005/01/31/tarzan-10-is-now-available/</link>
		<comments>http://blog.ryanparman.com/2005/01/31/tarzan-10-is-now-available/#comments</comments>
		<pubDate>Mon, 31 Jan 2005 21:15:30 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=216</guid>
		<description><![CDATA[Tarzan 1.0 is now available! There were only a couple of minor bug fixes since RC2, so existing installations shouldn&#8217;t be affected at all. I&#8217;ve also written a custom extension for displaying my own wishlist. If you&#8217;re interested in checking it out to build off of for your own wishlists (or whatever else it might [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/projects/tarzan/">Tarzan 1.0</a> is now available!  There were only a couple of minor bug fixes since RC2, so existing installations shouldn&#8217;t be affected at all.</p>
<p>I&#8217;ve also written a custom extension for displaying my own <a href="/wishlist/">wishlist</a>.  If you&#8217;re interested in checking it out to build off of for your own wishlists (or whatever else it might be useful for), you can get <a href="/wishlist/extensions/ryan_wishlist.tzx">ryan_wishlist.tzx</a> here.</p>
<p>And although I had wanted to add search capabilities to Tarzan by 1.0, I&#8217;ve decided to build an extension for that.  I&#8217;m planning to have this extension ready by next week sometime.</p>
<h3>Tips and Tricks</h3>
<p>There are a couple of tips and tricks that can be used with Tarzan.  I&#8217;ll post them over to the <a href="http://support.skyzyx.net/viewforum.php?f=10">Tarzan Support Forum</a> later on today.</p>
<h4>Resizing images based on the size of a single side</h4>
<p>For my wishlist, I&#8217;m more concerned about items being the same height, rather than the same width.  How do I manage that?  Setting either the width or height value to zero will allow image resizing of one sider to rely solely on the other.  For example, if I wanted to set an item to a height of 90 pixels without caring how wide the image is, you could use this:</p>
<pre>echo get_image($asin, 0, 0, 90);</pre>
<p>The first is the ASIN/ISBN number of the item.  The second parameter (set to zero) tells Tarzan that you want to resize the image.  The third parameter (also set to zero) is the width.  Since the width is set to zero, then resizing will depend entirely on the fourth parameter, height, which is set to 90 pixels.</p>
<h4>PHP running out of memory?</h4>
<p>Some webhosts have limits on how much memory a process can use (like the webhost for Skyzyx.com, <a href="http://www.ipowerweb.com">iPowerWeb</a>).  In this case, the new <code>clear_memory()</code> function is helpful.  This allows you to <code>unset()</code> the value of an array node, particularly the product that you just finished processing.  You can read more about this function in the <a href="/projects/tarzan/docs/documentation.htm">Tarzan Documentation</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2005/01/31/tarzan-10-is-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tarzan 1.0 RC2 Now Available!</title>
		<link>http://blog.ryanparman.com/2005/01/26/tarzan-10-rc2-now-available/</link>
		<comments>http://blog.ryanparman.com/2005/01/26/tarzan-10-rc2-now-available/#comments</comments>
		<pubDate>Thu, 27 Jan 2005 01:50:31 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=215</guid>
		<description><![CDATA[Tarzan 1.0 RC2 is now available for download. There are several new things in this version, including: Full support for all of Amazon&#8217;s locales (US, Canada, UK, France, Germany, and Japan), improved error handling, redesigned Tarzan info page, and a new demo page which combines the old sample.php and breakdown.php pages. All you UK&#8217;ers should [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/projects/tarzan/">Tarzan 1.0 RC2</a> is now available for download.  There are several new things in this version, including: Full support for all of Amazon&#8217;s locales (US, Canada, UK, France, Germany, and Japan), improved error handling, redesigned Tarzan info page, and a new <a href="/projects/tarzan/demo.php">demo page</a> which combines the old <code>sample.php</code> and <code>breakdown.php</code> pages.</p>
<p>All you UK&#8217;ers should now be set to go!  I&#8217;ll be converting my <a href="/wishlist/">wishlist</a> over the next few days in an effort to flush out any remaining bugs before I declare this a 1.0 final.</p>
<p>Have at it!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2005/01/26/tarzan-10-rc2-now-available/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Localizing Tarzan and AWS 4.0</title>
		<link>http://blog.ryanparman.com/2005/01/25/localizing-tarzan-and-aws-40/</link>
		<comments>http://blog.ryanparman.com/2005/01/25/localizing-tarzan-and-aws-40/#comments</comments>
		<pubDate>Tue, 25 Jan 2005 23:07:03 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=214</guid>
		<description><![CDATA[The inital response to Tarzan has been very good! I got a handful of comments and several messages through my contact form about it. Overwhelmingly, people want to see Tarzan localized for their country&#8217;s version of Amazon. Initially, I started digging around to start implementing support for the UK. After a while of digging, however, [...]]]></description>
			<content:encoded><![CDATA[<p>The inital response to Tarzan has been very good!  I got a handful of comments and several messages through my contact form about it.  Overwhelmingly, people want to see Tarzan localized for their country&#8217;s version of Amazon.</p>
<p>Initially, I started digging around to start implementing support for the UK.  After a while of digging, however, I found out that I&#8217;m using an older version of the Amazon Web Services API.  Fantastic.  The new version (AWS 4.0) supports full localization in all of Amazon&#8217;s countries (U.S., Canada, U.K., France, Germany, and Japan).</p>
<p>If I&#8217;m going to be able to stay on top of this, I&#8217;m going to need to upgrade Tarzan&#8217;s core code to support and use the newer API.  It sucks that I thought I was almost done and I&#8217;m not, but this should only take me a few hours to recode now that I have Tarzan&#8217;s implementation figured out.  Re-writing the necessary parts of the documentation will take a bit, and re-writing the Sample page and Breakdown Tool will take a bit of time too.</p>
<p>The good news is that Tarzan 1.0 final will be compatible with all of Amazon&#8217;s countries, without any code changes on your end.  Tarzan&#8217;s functions will continue to work seamlessly and upgrading to the next release candidate will not affect current installations, despite all of the code upheaval.  The bad news is that parts of the extension model have changed a bit.  If you&#8217;re a go-getter of a developer who has already started writing their own extensions for Tarzan, then I&#8217;m talking to you.  Hold off until RC2.</p>
<p>If you&#8217;re not an extension developer, and you don&#8217;t care about support for countries other than America, then you can ignore this entire post.  If you&#8217;ve been asking me about support for the UK, France or Germany, then RC2 will be something to look forward to.  Overzealous developers, just sit tight.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2005/01/25/localizing-tarzan-and-aws-40/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Introducing Tarzan</title>
		<link>http://blog.ryanparman.com/2005/01/23/introducing-tarzan/</link>
		<comments>http://blog.ryanparman.com/2005/01/23/introducing-tarzan/#comments</comments>
		<pubDate>Sun, 23 Jan 2005 16:08:47 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=213</guid>
		<description><![CDATA[My birthday is in November, and Christmas is in December, so the &#8220;holidays&#8221; go for about a month-and-a-half. Every year, I&#8217;d start getting these questions like &#8220;What do you want for your birthday? What do you want for Christmas?&#8221;. Of course, when you&#8217;re asked on the spot like that, you can never remember what it [...]]]></description>
			<content:encoded><![CDATA[<p>My birthday is in November, and Christmas is in December, so the &#8220;holidays&#8221; go for about a month-and-a-half.  Every year, I&#8217;d start getting these questions like &#8220;What do you want for your birthday?  What do you want for Christmas?&#8221;.  Of course, when you&#8217;re asked on the spot like that, you can never remember what it is that you want, and you end up like the kid from <a href="http://www.amazon.com/exec/obidos/tg/detail/-/B0000AYJUW/ref=ase_skyzyxcom-20/002-6250797-4557600?v=glance&#038;s=dvd">A Christmas Story</a> telling people you want a football or something.</p>
<p>So, a few years ago, I came up with the brilliant idea of making my wishlist available on my website somewhere.  That way, when people asked what I wanted for Christmas or my birthday, I could just point them over to some big-ticket items on my list, and wouldn&#8217;t have to waste brain cycles on it.  Great idea, huh?</p>
<p>Well, my website has certainly evolved over the last few years, and so has my wishlist.  This past holiday saw my biggest wishlist ever with over 170 items (mostly old CD&#8217;s that are scratched and need to be re-bought).  Updating and adding items was a real pain, and I figured that after the holidays I&#8217;d try to figure out a way to make it all easier.</p>
<p>Most of the items on my wishlist are pointing back to Amazon, and I&#8217;ve got my referral ID in there so that I also get credited on all of the purchases made from my site.  I also know that Amazon makes their database information available through their Web Services program.  Ideally, all I&#8217;d like to have to do is pass either the ISBN number (of a book), or the ASIN number (of most other items) to a function, and have that function figure it all out for me.  How on earth can I make it all happen?</p>
<p><b><a href="http://www.skyzyx.com/projects/tarzan/">Introducing Tarzan</a></b>, an easy-to-use set of functions for accessing all sorts of data from Amazon&#8217;s product database.  It&#8217;s as simple to use as <a href="http://www.skyzyx.com/projects/simplepie/">SimplePie</a> (if not, simpler), and has a built-in extension model that allows developers to extend the functionality of Tarzan simply and easily.</p>
<p>Tarzan caches everything it can for 30 days (since Amazon&#8217;s data doesn&#8217;t change much, and as to not overload anyone&#8217;s server), supports resizing images using GD functions (all behind the scenes), and most functions will work as expected by just passing the ASIN/ISBN number as a parameter.  For more <a href="http://www.skyzyx.com/projects/tarzan/">information</a>, <a href="http://www.skyzyx.com/projects/tarzan/docs/documentation.htm">documentation</a>, a <a href="http://www.skyzyx.com/projects/tarzan/sample.php">sample demo</a>, <a href="http://www.skyzyx.com/projects/tarzan/breakdown.php">tools</a> for <a href="http://www.skyzyx.com/projects/tarzan/docs/extension_guidelines.htm">building your own extensions</a>, and <a href="http://www.skyzyx.com/projects/tarzan/#get">downloads</a>, check out the <a href="http://www.skyzyx.com/projects/tarzan/">Tarzan Project Page</a>.</p>
<p><span class="update">&laquo; Update &raquo;</span> I make a minor tweak to the code and released Tarzan 1.0 RC1a.  I added cache stats to the <code>tarzaninfo()</code> function (which can be seen in action by viewing your <code>tarzan_info.php</code> page.)  This certainly isn&#8217;t critical, and you can definitely wait for RC2, but if you got Tarzan already and you want to see the new info, simply replace your current <code>tarzan.inc</code> file with the new one.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2005/01/23/introducing-tarzan/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>SimplePie 0.96 Now Available!</title>
		<link>http://blog.ryanparman.com/2005/01/14/simplepie-096-now-available/</link>
		<comments>http://blog.ryanparman.com/2005/01/14/simplepie-096-now-available/#comments</comments>
		<pubDate>Sat, 15 Jan 2005 06:38:52 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Syndication]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=211</guid>
		<description><![CDATA[I quietly posted SimplePie 0.96 a few days ago, after having it in place in SimpleReader for about a week before that. So far, so good. For those of you currently using SimplePie, this new version makes more strides towards improving support for sucky feeds, tested support for PHP 5, and other bits of fine-tuning. [...]]]></description>
			<content:encoded><![CDATA[<p>I quietly posted <a href="/projects/simplepie/">SimplePie 0.96</a> a few days ago, after having it in place in <a href="/rss/">SimpleReader</a> for about a week before that.  So far, so good.</p>
<p>For those of you currently using SimplePie, this new version makes more strides towards improving support for sucky feeds, tested support for PHP 5, and other bits of fine-tuning.</p>
<p>You can <a href="/projects/simplepie/simplepie_0.96.zip?cda6c1">download</a> it, read the <a href="/projects/simplepie/documentation.htm">documentation</a> for changes in this version, and <a href="http://support.skyzyx.net/">report bugs and get support</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2005/01/14/simplepie-096-now-available/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Using Del.icio.us Feeds With SimplePie</title>
		<link>http://blog.ryanparman.com/2004/12/13/using-delicious-feeds-with-simplepie/</link>
		<comments>http://blog.ryanparman.com/2004/12/13/using-delicious-feeds-with-simplepie/#comments</comments>
		<pubDate>Tue, 14 Dec 2004 05:42:42 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Syndication]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Website]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=205</guid>
		<description><![CDATA[I know that a lot of people are using Magpie RSS to power their del.icio.us sidebar links, so I figured I&#8217;d throw out a code sample showing how you could use SimplePie for the same task. If you need to come to terms with why SimplePie might be a better choice of RSS parser, check [...]]]></description>
			<content:encoded><![CDATA[<p>I know that a lot of people are using Magpie RSS to power their del.icio.us sidebar links, so I figured I&#8217;d throw out a code sample showing how you could use SimplePie for the same task.  If you need to come to terms with why SimplePie might be a better choice of RSS parser, check out the <a href="http://www.skyzyx.com/projects/simplepie/">SimplePie project page</a>.</p>
<p>The only other thing that might be worth mentioning is that SimplePie still has a difficult time with non-encoded special characters in feeds and feeds in non-western-european/non-american/non-australian languages.  Beyond that, it&#8217;s pretty solid so far.</p>
<p>Now, before I get to explaining, I&#8217;ll point to a <a href="http://www.skyzyx.com/dev/simplepie/delicious/">del.icio.us demo</a> with SimplePie in action.  Now, here&#8217;s the code as a whole:</p>
<pre>
&lt;?php
include_once("../simplepie.inc");

@ $rss = simplepie("http://del.icio.us/rss/tag/web", false, true, 0.02);

if ($rss != false) {
	print("&lt;p&gt;Reading from " . get_feed_url() . "&lt;/p&gt;");
	print("&lt;ul&gt;");

	for ($x=0; $x &lt; 15; $x++) {
		print('&lt;li&gt;&lt;a href="' . get_item_permalink($x, $rss) . '"&gt;' . get_item_title($x, $rss) . '&lt;/a&gt;&lt;/li&gt;');
	}

	print("&lt;/ul&gt;");
}
else {
	print("The del.icio.us feed is not currently available.");
}

print("Powered by " . sp_linkback());
?&gt;</pre>
<p>Let&#8217;s begin with the first part, <code>include_once("../simplepie.inc");</code>.  This is an instance of including the SimplePie library.  In my example, the <code>simplepie.inc</code> file is located in the subdirectory.</p>
<p>The next line is where we start processing the rss feed:</p>
<pre>@ $rss = simplepie("http://del.icio.us/rss/tag/web", false, true, 0.02);</pre>
<p>We start by passing the first parameter, which tells SimplePie where the feed is that we want to process.  The second parameter asks whether or not to enable a mode called XMLDump, which we don&#8217;t need for this excersize.  The third parameter asks whether we want to cache the feed that we&#8217;re reading.  Since SimplePie currently doesn&#8217;t work if the feed isn&#8217;t cached (unless it&#8217;s a local file), this needs to be true.  Lastly, we tell SimplePie how many hours before refreshing the cached feed.  We then set the feed to the <code>$rss</code> variable.</p>
<p>Next, we check whether the feed actually exists and was processed.  If the expression <code>if ($rss != false)</code> (if $rss is not false&#8230;) is true, then we begin displaying the del.icio.us feed.</p>
<p>If you so choose, you can display the URL of the feed you&#8217;re using with the <code>get_feed_url()</code> function.  I also chose to have this display as an unordered list, since that&#8217;s really what it is.</p>
<p>Inside of that <code>&lt;ul&gt;&lt;/ul&gt;</code> code block, I&#8217;ve set up a for-loop.  Using <code>$x</code> as my counter variable, I decided to display only the most recent 15 entries.  If you want to display all entries in the feed, you can use the <code>get_item_quantity($rss)</code> function.</p>
<p>As a backup plan, I like to add a short message for when the feed isn&#8217;t working.  In my case, I said that &#8220;The del.icio.us feed is not currently available.&#8221;  Simple and to-the-point.</p>
<p>Next, you want to tell everybody how you made all of this really cool stuff happen by linking back to the SimplePie project page.  The easiest way is with the <code>sp_linkback()</code> function.</p>
<p>There!  You should now have a fully-functional del.icio.us sidebar right there in your website.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/12/13/using-delicious-feeds-with-simplepie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SimplePie Beta Testing</title>
		<link>http://blog.ryanparman.com/2004/12/03/simplepie-beta-testing/</link>
		<comments>http://blog.ryanparman.com/2004/12/03/simplepie-beta-testing/#comments</comments>
		<pubDate>Sat, 04 Dec 2004 02:26:55 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Syndication]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=203</guid>
		<description><![CDATA[Rather than completely hold off the next version of SimplePie until it&#8217;s totally complete (which appears to be taking some time), I&#8217;ve decided to make the current Beta versions available for testing purposes. Although it appears to be fairly stable, I wouldn&#8217;t recommend this for a production site just yet. If you&#8217;d like to test [...]]]></description>
			<content:encoded><![CDATA[<p>Rather than completely hold off the next version of SimplePie until it&#8217;s totally complete (which appears to be taking some time), I&#8217;ve decided to make the current Beta versions available for testing purposes.  Although it appears to be fairly stable, I wouldn&#8217;t recommend this for a production site just yet.</p>
<p>If you&#8217;d like to test out the current Beta build (2004.12.03), you can do so a couple of ways:</p>
<ul>
<li><a href="/dev/simplepie/">Basic Online Feed Reader utilizing the latest version of SimplePie</a></li>
<li><a href="/dev/simplepie/simplepie.inc">The SimplePie source file</a></li>
<li><a href="/dev/simplepie/documentation.htm">The documentation file for this particular build</a></li>
</ul>
<p>Please take the time to test it with your feeds that you read.  I&#8217;ve also enabled an option that allows you to see how the feed&#8217;s source code is modified by SimplePie.  This is great for debugging and for helping test.</p>
<p>If you have any bug reports, please list them in the <a href="http://www.skyzyx.net/forums/viewforum.php?f=7">Bug Report forum</a>.  The same goes for <a href="http://www.skyzyx.net/forums/viewforum.php?f=8">feature requests</a> and <a href="http://www.skyzyx.net/forums/viewforum.php?f=1">questions and comments</a>.</p>
<p>Thanks for helping to make SimplePie great!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/12/03/simplepie-beta-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple PHP Gallery 1.1</title>
		<link>http://blog.ryanparman.com/2004/11/19/simple-php-gallery-11/</link>
		<comments>http://blog.ryanparman.com/2004/11/19/simple-php-gallery-11/#comments</comments>
		<pubDate>Fri, 19 Nov 2004 16:42:06 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Website]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=200</guid>
		<description><![CDATA[Paul Griffin has just released SPG 1.1! For those who aren&#8217;t familiar with this project, Simple PHP Gallery is exactly that&#8212;an easy-to-use image gallery system, written in PHP. There are several new features listed on Paul&#8217;s SPG Mini-Site, but there are a few that are my favorites (as I was a beta tester for this [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.relativelyabsolute.com">Paul Griffin</a> has just released <a href="http://www.relativelyabsolute.com/spg/">SPG 1.1</a>!  For those who aren&#8217;t familiar with this project, Simple PHP Gallery is exactly that&mdash;an easy-to-use image gallery system, written in PHP.</p>
<p>There are several new features listed on Paul&#8217;s <a href="">SPG Mini-Site</a>, but there are a few that are my favorites (as I was a beta tester for this and the last versions):</p>
<h3>Image Precaching</h3>
<p>This was one of the two features that I actually coded the original code for *grin*.  In v1.0 and the early v1.1 betas, I got tired of clicking the Next and Previous buttons and having to wait for the new image to load, after I&#8217;d just spent several seconds looking at a single picture.  It didn&#8217;t seem very efficient to me, so I figured why not allow the image loading to happen in the background while I&#8217;m spending time looking at this picture anyways.</p>
<p>So, what I did was I figured out what images the Next and Previous buttons were pointing to (which is all dynamic, BTW), and added the Next and Previous to the page at a size of 1&#215;1.  I then added inline styles to the image that absolutely positioned them to the top-left corner of the page, and set the visibility to hidden.  Doing so allowed the images to load into the cache, while remaining invisible to CSS-enabled browsers (and as two 1 pixel dots on CSS-<i>dis</i>abled browsers).</p>
<p>Voila!  Image precaching for the previous and next images in sequence.</p>
<h3>Image Resizing</h3>
<p>Do you have a digital camera that takes pictures at a ridiculously gargantuan size?  I used to have one that saved images at 1600&#215;1200.  With this feature, you can upload these images, and they will automatically be resized and cached according to the settings in your <code>sp_config.php</code> file.  Very useful.</p>
<h3>Accesskey Navigation</h3>
<p>This was my first suggestion for features in SPG 1.1 after 1.0 launched.  I took a 3ds Max class in college, and we had to build something cool from the things we&#8217;d learned in the class, and make both a still frame as well as a short rendered video.  Mine was about <a href="http://www.skyzyx.com/portfolio/threemacs/">3 Macs</a>.</p>
<p>Anyways, I went online to grab various images about the computers that I was going to be building.  At first, I&#8217;d have to open one, then another, then another.  Tiring of this quickly, I wrote up a quick HTML page with a JavaScript that would allow me to simply hit Previous or Next to move from one image to the next.  The it dawned on me to use accesskeys, since I knew they at least worked in IE and Mozilla (this was during the pre-Firefox &#8220;Phoenix&#8221; days).</p>
<p>Instantly, I was able to hit Alt+Plus and Alt+Minus to move back and forth through the images.  When I recommended this to Paul, we had some discussion, and this is what ended up getting implemented:</p>
<p>The Previous button is Alt+Minus[-].  The Next button is both Alt+Plus[+] as well as Alt+Equals[=].  This is because most QWERTY-language desktop keyboards have a 10-key number pad on the right where [+] and [-] are right next to each other.  Most laptops, however, don&#8217;t have that, but rather a [-/_] key right next to a [=/+] key (where you have to press shift for the latter).  This means that you&#8217;d have to press Alt+Minus to move back, and Alt+Shift+Plus to move forward, and that sucks.  Allowing Alt+Equals to move forward makes it easy for both Laptop and Desktop QWERTY-keyboards.</p>
<h3>Automatically Generated Sub-Folder Details</h3>
<p>This was yet another idea that I had for the 1.1 release, and that was to add the number of images in a folder, much like how many people will display the number of comments a blog post has.  It just seemed to make sense.</p>
<h3>Conclusion</h3>
<p>Paul has done a terrific job with writing this software, and I have really enjoyed the opportunity to be a part of it.  Heck, I&#8217;m probably just as proud of this release as he is, and I&#8217;m excited that so many of my suggestions made it into the final release.  If you&#8217;ve got an image gallery, or you&#8217;ve been thinking of setting one up, I would highly recommend Paul Griffin&#8217;s <a href="http://www.relativelyabsolute.com/spg/">Simple PHP Gallery</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/11/19/simple-php-gallery-11/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SimplePie 0.95</title>
		<link>http://blog.ryanparman.com/2004/10/10/simplepie-095/</link>
		<comments>http://blog.ryanparman.com/2004/10/10/simplepie-095/#comments</comments>
		<pubDate>Mon, 11 Oct 2004 05:42:40 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Syndication]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=191</guid>
		<description><![CDATA[SimplePie 0.95 is now available. Anyone who is using any other version of SimplePie should update now. Major features/changes in this version include: Much improved support for reading all feeds, resolved display issues with &#60; code &#62; and &#60; pre &#62; tags, and added the ability to alter the display of feed dates using PHP&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/projects/simplepie/">SimplePie 0.95</a> is now available.  Anyone who is using any other version of SimplePie should update now.  Major features/changes in this version include: Much improved support for reading all feeds, resolved display issues with <code>&lt; code &gt;</code> and <code>&lt; pre &gt;</code> tags, and added the ability to alter the display of feed dates using PHP&#8217;s <code>date()</code> variables.</p>
<p>This version is pretty much feature-complete.  The only remaining pre-1.0 work will be testing and catching any remaining bugs.  I might add a couple of minor features, but nothing too major.  I&#8217;m open to feature requests for the 1.0 &#8211; 1.1 releases, so if SimplePie is missing something or if it should have something that other parsers don&#8217;t, let me know.</p>
<p><span class="personal">&laquo;&nbsp;Update&nbsp;&raquo;</span> If you downloaded SimplePie within 60 minutes of this posting, you should re-download it.  I fixed a glitch that affected feeds from East of GMT, and some related documentation.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/10/10/simplepie-095/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A New License</title>
		<link>http://blog.ryanparman.com/2004/10/09/a-new-license/</link>
		<comments>http://blog.ryanparman.com/2004/10/09/a-new-license/#comments</comments>
		<pubDate>Sat, 09 Oct 2004 19:53:19 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Website]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=189</guid>
		<description><![CDATA[When I had originally written the SkyGPL license, my intent was to allow people to do all kinds of cool, creative things with my scripts, while still allowing me some sort of ownership and credit for my own work. That has been more or less the case. However, today I was going through the licenses [...]]]></description>
			<content:encoded><![CDATA[<p>When I had originally written the <a href="/license/">SkyGPL license</a>, my intent was to allow people to do all kinds of cool, creative things with my scripts, while still allowing me some sort of ownership and credit for my own work.  That has been more or less the case.</p>
<p>However, today I was going through the licenses available from <a href="http://www.creativecommons.org">Creative Commons</a>, and I&#8217;ve decided to drop the SkyGPL all-together.  All of my scripts will soon be re-licensed under either the <a href="http://creativecommons.org/licenses/by/2.0/">Attribution License</a>, <a href="http://creativecommons.org/licenses/by-sa/2.0/">Attribution-ShareAlike License</a>, or the <a href="http://creativecommons.org/licenses/by-nc/2.0/">Attribution-NonCommercial License</a>.  I&#8217;ve found that these licenses are more specific and less restrictive than my own, so I&#8217;d highly doubt that anyone will have a problem with it.</p>
<p>The first script to take on a new license will be <a href="/projects/simplepie/">SimplePie 0.95</a>, once it comes out of Beta.  Although previous versions (0.94 and older) are not bound by this license, newer versions will be.  I don&#8217;t think that it&#8217;ll make much difference to anyone who&#8217;s already using SimplePie, but if you&#8217;re unsure if this affects you at all, drop me a line, and we&#8217;ll see what we can work out.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/10/09/a-new-license/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It Took Me Long Enough&#8230;</title>
		<link>http://blog.ryanparman.com/2004/09/24/it-took-me-long-enough/</link>
		<comments>http://blog.ryanparman.com/2004/09/24/it-took-me-long-enough/#comments</comments>
		<pubDate>Fri, 24 Sep 2004 08:09:35 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Syndication]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=186</guid>
		<description><![CDATA[The new and improved SimplePie 0.94 is out. Major features/changes in this version include: Better support for non-English feeds, significantly improved support for poorly written feeds, automatic deletion of outdated cache files, and the stripping-out of potentially harmful tags (as per Mark Pilgrim&#8217;s suggestions). There&#8217;s still a smidge of fine-tuning left to do. Although I [...]]]></description>
			<content:encoded><![CDATA[<p>The new and improved <a href="/projects/simplepie/">SimplePie 0.94</a> is out.  Major features/changes in this version include: Better support for non-English feeds, significantly improved support for poorly written feeds, automatic deletion of outdated cache files, and the stripping-out of potentially harmful tags (as per Mark Pilgrim&#8217;s <a href="http://diveintomark.org/archives/2003/06/12/how_to_consume_rss_safely">suggestions</a>).</p>
<p>There&#8217;s still a smidge of fine-tuning left to do.  Although I fixed a very high number of feeds in this release, I broke a small handful of others.  The newly broken feeds include Forever Geek&#8217;s RSS (not Atom) feed, Asa&#8217;s notblog*, News.com, and GameSpot feeds.  Out of a list of approximately <a href="/dev/simplepie/parseopml.php">334 test feeds</a> (374 total &#8211; 30 duplicates &#8211; 10 no longer exist), only 9 aren&#8217;t working.  Not too shabby, I&#8217;d say.</p>
<p>I&#8217;ll probably begin working on v0.95 on Saturday.  Here is a list of things I plan to do in time for the 0.95 release:</p>
<ul>
<li>Finish fine-tuning the regular expressions I use for supporting bad feeds.</li>
<li>Add the ability to display images in feeds, even though the server is set to block the display of images on other sites.</li>
<li>Encode all tags used inside <code>&lt;code&gt;&lt;/code&gt;</code> tags.</li>
<li>Get speed back to v0.93 levels.</li>
<li>Improve the ability to display feed dates.</li>
<li>Improve support for relative URL&#8217;s in feeds.</li>
</ul>
<p>Keep watching this space.  Hopefully it won&#8217;t take me another month to get the new version out.  Come to think of it, have you all gone and bugged <a href="http://www.relativelyabsolute.com">Se&#241;or Paul</a> about getting <a href="http://www.relativelyabsolute.com/spg/">SPG 1.1</a> done yet?  If not, you should.  He might forget to work on it otherwise.  *grin*</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/09/24/it-took-me-long-enough/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SimplePie&#8230; Mmmm, Yummy!</title>
		<link>http://blog.ryanparman.com/2004/09/21/simplepie-mmmm-yummy/</link>
		<comments>http://blog.ryanparman.com/2004/09/21/simplepie-mmmm-yummy/#comments</comments>
		<pubDate>Tue, 21 Sep 2004 20:13:08 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Syndication]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=185</guid>
		<description><![CDATA[I finally cracked the nut on the problem I was having with SimplePie. The compatibility fix I&#8217;ve been working on finally works for the two feeds that I was having a problem with. Thanks to Mark IJbema for nudging me in the right direction. The downside is that it slowed SimplePie down a bit. I [...]]]></description>
			<content:encoded><![CDATA[<p>I finally cracked the nut on the problem I was having with <a href="/projects/simplepie/">SimplePie</a>.  The compatibility fix I&#8217;ve been working on finally works for the two feeds that I was having a problem with.  Thanks to Mark IJbema for nudging me in the right direction.</p>
<p>The downside is that it slowed SimplePie down a bit.  I think that it&#8217;s something I&#8217;ll let slide for this version, and try to tackle it for the next.  I still need to go back through the list of 300+ feeds to make sure I haven&#8217;t broken something else, but assuming that all goes well, I&#8217;ll post SimplePie 0.94 sometime tonight or tomorrow.</p>
<p>I hope you all are using it, or are planning to use it.  It&#8217;s good software, really&#8230; and no, I&#8217;m not trying to float my own boat.  If you find any bugs or would like to see something added, <a href="/projects/simplepie/contact.php">let me know</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/09/21/simplepie-mmmm-yummy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What&#8217;s New?</title>
		<link>http://blog.ryanparman.com/2004/09/13/whats-new-2/</link>
		<comments>http://blog.ryanparman.com/2004/09/13/whats-new-2/#comments</comments>
		<pubDate>Tue, 14 Sep 2004 06:21:23 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Website]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=183</guid>
		<description><![CDATA[Well, for those who seem to be intrigued by what goes on in my life, here&#8217;s a little update on what&#8217;s been going on. Dead Hard Drive: My 160 GB drive bit the dust last weekend. I&#8217;m still at a loss for why. The upshot is that it only took about 15 minutes to get [...]]]></description>
			<content:encoded><![CDATA[<p>Well, for those who seem to be intrigued by what goes on in my life, here&#8217;s a little update on what&#8217;s been going on.</p>
<p><strong>Dead Hard Drive:</strong> My 160 GB drive bit the dust last weekend.  I&#8217;m still at a loss for why.  The upshot is that it only took about 15 minutes to get a new 200 GB drive up and running in my system.  The downside is that I&#8217;ve lost everything besides my boot drive, installed applications, and my music collection (which are all on other drives).  The worse part is that any and all work I&#8217;ve done on my long-awaited redesign went up in smoke as well.  Convenient excuse, I know.  I just hope that my new code will be better than my old code.</p>
<p><strong>sIFR:</strong> I&#8217;ve discovered how cool the Inman Flash Replacement technique is.  Even cooler, I&#8217;ve discovered the <a href="http://www.mikeindustries.com/blog/archive/2004/09/sifr2-kick-the-tires">Scalable Inman Flash Replacement Technique</a> (or sIFR for short).  This latest version of the groundbreaking technique really improves previous versions.</p>
<p><strong>Firefox 1.0 PR:</strong> I&#8217;ve been eagerly awaiting the release of <a href="http://www.getfirefox.com">Firefox 1.0 Preview Release</a>.  The PR release date has been pushed back 9 days from when it was scheduled (according to <a href="http://planet.mozilla.org">Planet Mozilla</a>), and I&#8217;m trying to keep from biting my nails from excitement.  <a href="http://www.getthunderbird.com">Thunderbird 0.8</a> is also right around the corner, although I don&#8217;t know how close around the corner.</p>
<p><strong>SimplePie:</strong> I&#8217;ve hit a roadblock in my <a href="http://www.skyzyx.com/projects/simplepie/">SimplePie</a> project.  I need to figure out a regular expression that will grab self-closing tags (<code>&lt;description /&gt;</code>, <code>&lt;tagline /&gt;</code>, etc.), without also grabbing normal open-close style tags.  I&#8217;ve done some tremendous work for v0.94, but I insist on holding back this release until I get the bug worked out.  I know that this bug (combined with other elements of the code) effects <a href="http://www.benhammersley.com/weblog/">Ben Hammersley</a> and <a href="http://www.google.com/googleblog/">GoogleBlog</a>, among others.  If anyone cares to help me out with this regular expression, please let me know.</p>
<p><strong>A New Church:</strong> After several months of looking for a good, solid, scripturally-sound church, we&#8217;ve found one.  We&#8217;ll continue to visit for the next several weeks to really get a feel for the church, but it seems like what we&#8217;ve been looking for.  I&#8217;ve been wanting to get back involved in music and children&#8217;s ministries, and this looks like the place for that.</p>
<p><strong>SPG 1.1:</strong> Vaporware?  That&#8217;s the feeling I&#8217;m starting to get about the update to <a href="http://www.relativelyabsolute.com">Paul Griffin&#8217;s</a> outstanding <a href="http://www.relativelyabsolute.com/spg/">Simple PHP Gallery</a> software.  Let&#8217;s all go and ask him about it, so that he&#8217;ll feel the pressure to finish it.  =)</p>
<p><strong>Some Leafs:</strong> I&#8217;m totally diggin&#8217; the photography in this <a href="http://www.csszengarden.com/?cssfile=/118/118.css&#038;page=0">new Zen Garden design</a>.</p>
<p><strong>Quick-and-Dirty Weather:</strong> Using the raw XML (not RSS) feeds from the <a href="http://www.weather.gov">United States National Weather Service</a>, I was able to hack together my own simple weather RSS feeds.  If you&#8217;re interested, check out <a href="http://blog.ryanparman.com.s3.amazonaws.com/wp-content/uploads/2004/09/qdweather.zip?cda6c1">Quick-and-Dirty Weather</a>.</p>
<p><strong>My Daughter:</strong> She&#8217;s growing up so fast, I can hardly believe it.  She gets to be more and more fun as each day goes by.  She&#8217;s just finishing up her potty training, and we&#8217;re going through tic-tacs like crazy.  It was really warm when we got home this evening, and we couldn&#8217;t find any of her nightgown jammies, she I put her to bed wearing one of my old T-shirts.  She was absolutely adorable.  She misses us, my wife and I, when we&#8217;re gone all day at work, and she&#8217;s become vocal about it.  It breaks my heart to be away from her all day long (although I&#8217;d probably go nuts otherwise), so I&#8217;m trying to find reasonable ways to remedy that.  *sigh*</p>
<p>Anyways, that&#8217;s what&#8217;s been going on with me.  What all has been going on with you?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/09/13/whats-new-2/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>&#8220;Wait, Didn&#8217;t He Just&#8230;?&#8221;</title>
		<link>http://blog.ryanparman.com/2004/09/02/wait-didnt-he-just/</link>
		<comments>http://blog.ryanparman.com/2004/09/02/wait-didnt-he-just/#comments</comments>
		<pubDate>Thu, 02 Sep 2004 09:51:51 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Syndication]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=182</guid>
		<description><![CDATA[SimplePie 0.93 is now available. This release adds support for RSS and Atom auto-discovery, converting relative-to-the-root URL&#8217;s into absolute URL&#8217;s (like web browsers do), an improved caching process, and a variety of fixes to aid compatibility with poorly written feeds. SimplePie takes a very Apple-esque approach to feed parsing. Coming from the use of MagpieRSS, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.skyzyx.com/projects/simplepie/">SimplePie 0.93</a> is now available.  This release adds support for RSS and Atom auto-discovery, converting relative-to-the-root URL&#8217;s into absolute URL&#8217;s (like web browsers do), an improved caching process, and a variety of fixes to aid compatibility with poorly written feeds.</p>
<p>SimplePie takes a very Apple-esque approach to feed parsing.  Coming from the use of MagpieRSS, I decided to create a &#8220;feed parser for the rest of us&#8221;.  One that is easy, logical, and doesn&#8217;t require too much of a background in PHP to use it.  My background is in JavaScript, so I believe that if you have a handle on JavaScript and can spend an hour learning about some of the nuances of basic PHP, you should be able to implement SimplePie with little or no fuss.</p>
<p>There are many feed parsers out there that only support one or two flavors of RSS.  Most still don&#8217;t even have Atom support yet.  They all go through and create this whole big array, and then just leave it all sitting there for you to figure out.  Maybe they&#8217;ll even throw in some caching while they&#8217;re at it.  Good for them.</p>
<p>When building SimplePie, I wanted to make it as easy as possible for someone to be able to use it.  I looked at a variety of desktop and web-based feed readers to get a feel for the most used and most useful RSS tags, and then I created a collection of functions for those specific purposes.  Going with a Firefox-like mentality, I made sure to support everything that most people would want/need while maintaining the ability to extend it as need be.</p>
<p>As Mac OS X is built upon a powerful Unix-based core, SimplePie is built upon a very powerful, yet easy-to-use XML parsing library called XMLize.  XMLize takes a fantastic approach to parsing XML documents in a very simple, logical way.  I was parsing XML documents within 10 minutes of having found it.  This easy-to-use software makes it easy for anyone &mdash; even PHP newbies &mdash; to extend the power of SimplePie.</p>
<p>Switching from MagpieRSS to using XMLize at the core allows SimplePie to process RSS and Atom feeds at incredible speeds.  SimplePie is also aware of some common problems in feeds and makes adjustments as necessary.  Does your current feed reader leave you with visible entities or odd question marks?  SimplePie automatically handles some of these common glitches, so that the end user doesn&#8217;t see anything too wierd when trying to view their favorite feeds.</p>
<p>If you&#8217;re looking for new feed parser software, or even if you&#8217;re not, give SimplePie a try.  If you&#8217;re new to PHP, or even if you&#8217;re not, SimplePie can save you time and stress.  If you&#8217;re looking for a feed parser that can be easily extended to do more than it currently does out-of-the-box, SimplePie is your answer.</p>
<p><strong><a href="http://www.skyzyx.com/projects/simplepie/">Download Now!</a></strong>  File servers are standing by.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/09/02/wait-didnt-he-just/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Need Your Help!</title>
		<link>http://blog.ryanparman.com/2004/08/31/i-need-your-help/</link>
		<comments>http://blog.ryanparman.com/2004/08/31/i-need-your-help/#comments</comments>
		<pubDate>Tue, 31 Aug 2004 23:10:18 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Syndication]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=180</guid>
		<description><![CDATA[I&#8217;ve been on a roll with SimplePie development lately (if you couldn&#8217;t already tell). Version 0.93 will probably be released in the next day or so, and at that point should be feature-complete. The remaining Pre-1.0 releases (0.94, 0.95, 0.96, etc.) will be dedicated to compatibility fixes. There are a lot of poorly coded feeds [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been on a roll with SimplePie development lately (if you couldn&#8217;t already tell).  Version 0.93 will probably be released in the next day or so, and at that point should be feature-complete.  The remaining Pre-1.0 releases (0.94, 0.95, 0.96, etc.) will be dedicated to compatibility fixes.  There are a lot of poorly coded feeds out there, and I need to know about them to that I can patch them up as best as possible.</p>
<p>What I need from you are your reading lists.  Whatever sites you read or follow via RSS or Atom, I want to know about them.  If you&#8217;ve got Feed Demon, SharpReader, RSS Bandit, NetNewsWire, Shrook, PulpFiction, or another feed reader, do me a favor and export your feed listings in OPML format (which would be the easiest thing for you) and upload them to your website somewhere.  Then, leave a comment that contains the URL to that OPML file.  I&#8217;ll then go through each and every site and find each and every RSS or Atom feed and test them one-by-one to make sure that SimplePie is as solid and production-ready as possible.</p>
<p>The higher the quantity of feeds I&#8217;m able to test, the better SimplePie will be.  I know that most of the (standards-compliant) blogging world is pretty solid, but I&#8217;ve noticed that many development and programming-related sites have horrendous feeds.  I&#8217;m also going through the Feed Demon forums and testing as many of those feeds as I can.</p>
<p>Your help would be tremendously appreciated!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/08/31/i-need-your-help/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Newer-er.  Better-er.  Simpler-er.</title>
		<link>http://blog.ryanparman.com/2004/08/29/newer-er-better-er-simpler-er/</link>
		<comments>http://blog.ryanparman.com/2004/08/29/newer-er-better-er-simpler-er/#comments</comments>
		<pubDate>Mon, 30 Aug 2004 03:55:24 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Syndication]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=179</guid>
		<description><![CDATA[In record time, SimplePie 0.92 is now available. This release adds all sorts of things such as better (and faster) caching, a user agent string, smarter handling of problematic characters and entities, and a fix for Mr. Dunstan&#8217;s feed. For those who are skeptical of &#8220;yet another feed parser&#8221;, or are hesitant to switch to [...]]]></description>
			<content:encoded><![CDATA[<p>In record time, <a href="http://www.skyzyx.com/projects/simplepie/">SimplePie 0.92</a> is now available.  This release adds all sorts of things such as better (and faster) caching, a user agent string, smarter handling of problematic characters and entities, and a fix for <a href="http://www.1976design.com/blog/">Mr. Dunstan&#8217;s</a> feed.</p>
<p>For those who are skeptical of &#8220;yet another feed parser&#8221;, or are hesitant to switch to (or begin using) SimplePie, let me explain it this way.  Most RSS parsers go through this process of breaking a feed down into this big array, which may be fine for some, but can be impossible for beginners and newbies.  SimplePie takes an Apple-esque approach by providing thoughtfully-named, easy to use functions that do what one would expect them to do.</p>
<p>At the core, SimplePie relies on <a href="http://www.hansanderson.com/php/xml/">XMLize</a> (as the easy-to-use Mac OS X relies on the more powerful Unix-based core), which is a very powerful, yet elegantly simple class for parsing XML documents with PHP.  This means that if SimplePie doesn&#8217;t do all that you want it to out-of-the-box (which would be suprising, but possible), you can easily extend it to support whatever else you might want.</p>
<p>I&#8217;ve frozen the current function set where it&#8217;s at.  This means that if you&#8217;ve been using SimplePie already, or if you&#8217;re wanting to start using it, you won&#8217;t need to change any of your code as new versions get released.  You&#8217;ll simply need to replace the old SimplePie library with the new one to take advantage of new improvements.  New functions may become available to use, but new versions of SimplePie will not break existing services and applications.</p>
<p>If you&#8217;ve been thinking about building your own web-based RSS/Atom reader, why not give SimplePie a try?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/08/29/newer-er-better-er-simpler-er/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Battle of Dunstan vs. Andrei vs. Mark</title>
		<link>http://blog.ryanparman.com/2004/08/29/the-battle-of-dunstan-vs-andrei-vs-mark/</link>
		<comments>http://blog.ryanparman.com/2004/08/29/the-battle-of-dunstan-vs-andrei-vs-mark/#comments</comments>
		<pubDate>Sun, 29 Aug 2004 19:38:27 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Syndication]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=178</guid>
		<description><![CDATA[&#8230;well, their syndication feeds anyways. Here&#8217;s the problem: While working on SimplePie initially, I used copies of Dunstan&#8217;s Atom and RSS feeds because I felt that they&#8217;d be representative of most people&#8217;s decently well-formed feeds. I know that some people have worse feeds, and that Mark Pilgrim&#8217;s feeds are a bit too &#8220;academically&#8221; correct. Dunstan [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230;well, their syndication feeds anyways.  Here&#8217;s the problem:</p>
<p>While working on <a href="http://www.skyzyx.com/projects/simplepie/">SimplePie</a> initially, I used copies of <a href="http://www.1976design.com/blog/">Dunstan&#8217;s</a> Atom and RSS feeds because I felt that they&#8217;d be representative of most people&#8217;s decently well-formed feeds.  I know that some people have worse feeds, and that <a href="http://www.diveintomark.org">Mark Pilgrim&#8217;s</a> feeds are a bit too &#8220;academically&#8221; correct.</p>
<p>Dunstan has a problem with his feed.  He uses the numeric entity for a &#8220;smart-apostrophe&#8221; in his feed&#8217;s <code>&lt;title&gt;</code> tag.  This happens to be a UTF-8 character.  For whatever reason, parsing his feed in every PHP-based feed reader I&#8217;ve ever used displays that smart-apostrophe as a question mark.  In wanting to build a &#8220;feed parser for the rest of us&#8221;, I decided to be smart and wrap a CDATA section around the contents of the <code>&lt;title&gt;</code>, <code>&lt;link&gt;</code>, and <code>&lt;description&gt;</code> on the fly for those that don&#8217;t already have them.  Dunstan&#8217;s question mark becomes the character that it&#8217;s supposed to be.  No problem.</p>
<p>On the other hand, <a href="http://www.designbyfire.com">Andrei</a> also has a problem with his feed.  Well, not really&#8230; it&#8217;s just that the fix I put in place to fix Dunstan&#8217;s feed broke Andrei&#8217;s feed.  Andrei does a fake-out with his CDATA sections.  He closes the CDATA section in <code>&lt;description&gt;</code>, then has one last bit of content before closing the tag.  This is just enough to get past SimplePie&#8217;s logic.  Wonderful.</p>
<p>Since Dunstan&#8217;s issue is only in the feed&#8217;s <code>&lt;title&gt;</code> tag, I went ahead and changed how SimplePie handles the feeds by removing the code for wrapping CDATA sections around <code>&lt;link&gt;</code> and <code>&lt;description&gt;</code>.  Both Dunstan and Andrei have working feeds again.</p>
<p>Then, I go and test it on <a href="http://www.diveintomark.org">Mark&#8217;s</a> Feed Parser project feed.  SimplePie breaks down again.  Well, crap.  Instead of using <code>&lt;title&gt;</code> like normal people, Mark has to be all cool by using <code>&lt;title type="text/plain"&gt;</code>.  Argh.</p>
<p>So, I&#8217;m off to find some code that can resolve this little quarrel.  I&#8217;m thinking about going through and looking for UTF-8 entities (4-digit, typically begins with an 8: &amp;#8217;) and wrapping CDATA sections around those entities alone, which will probably work.  I don&#8217;t want to release this software as 1.0 until it performs satisfactorily with every single feed in my entire <a href="/blogs/">reading list</a>.</p>
<p>Version 0.92 is <strike>on it&#8217;s way</strike> <a href="http://www.skyzyx.com/projects/simplepie/">here</a> folks.  <a href="http://www.leftjustified.net">Andrew</a>, how&#8217;s that WordPress plug-in coming along?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/08/29/the-battle-of-dunstan-vs-andrei-vs-mark/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Newer.  Better.  Simpler.</title>
		<link>http://blog.ryanparman.com/2004/08/28/newer-better-simpler/</link>
		<comments>http://blog.ryanparman.com/2004/08/28/newer-better-simpler/#comments</comments>
		<pubDate>Sat, 28 Aug 2004 22:29:31 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Syndication]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=177</guid>
		<description><![CDATA[SimplePie 0.91 is now available. This release adds support for URL&#8217;s with a relative path, better handling of some improperly written feeds, and fixes a problem where feeds weren&#8217;t getting loaded all the way before trying to parse them, causing SimplePie to choke.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.skyzyx.com/projects/simplepie/">SimplePie 0.91</a> is now available.  This release adds support for URL&#8217;s with a relative path, better handling of some improperly written feeds, and fixes a problem where feeds weren&#8217;t getting loaded all the way before trying to parse them, causing SimplePie to choke.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/08/28/newer-better-simpler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Ultrafast SimplePie 0.9 Is Now Available!</title>
		<link>http://blog.ryanparman.com/2004/08/03/the-ultrafast-simplepie-09-is-now-available/</link>
		<comments>http://blog.ryanparman.com/2004/08/03/the-ultrafast-simplepie-09-is-now-available/#comments</comments>
		<pubDate>Wed, 04 Aug 2004 05:50:55 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Syndication]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=173</guid>
		<description><![CDATA[Responses to the release of SimplePie 0.8 have been very positive. SimplePie has accomplished it&#8217;s goal of making it easier to create online feed readers, or anything else that requires RSS parsing. The only complaints that I got were mostly speed-related. Most people who sent me feedback thought that SimplePie was just too darn slow. [...]]]></description>
			<content:encoded><![CDATA[<p>Responses to the release of <a href="http://www.skyzyx.com/projects/simplepie/">SimplePie</a> 0.8 have been very positive.  SimplePie has accomplished it&#8217;s goal of making it easier to create online feed readers, or anything else that requires RSS parsing.</p>
<p>The only complaints that I got were mostly speed-related.  Most people who sent me feedback thought that SimplePie was just too darn slow.  Unfortunately, the speed issues were directly related to my use of <a href="http://magpierss.sourceforge.net">Magpie RSS</a> as the parsing engine.</p>
<p>So, I decided to re-write it completely from scratch.  I did away with Magpie altogether, and built a brand-new feed parser based around Hans Anderson&#8217;s <a href="http://www.hansanderson.com/php/xml/">XMLize</a> library for parsing XML documents with PHP.  The results were astounding!</p>
<p>I removed all external dependencies.  SimplePie is now completely self-contained.  Also, I tweaked with the way that SimplePie parses RSS feeds.  In doing so, I&#8217;ve got v0.9 running anywhere from 20 to <em>162 times faster</em> than v0.8.  Specifically, it&#8217;s a maximum speed increase of over 16215%.  On average, however, it only runs around 100 times faster than the previous version.  As a matter of fact, I&#8217;ve never seen v0.9 take longer than 0.35 seconds to process and render a RSS feed.</p>
<p>If you&#8217;re looking for some RSS parsing software for PHP, I hope that SimplePie will be your choice.  Of course, I&#8217;m always open to feature requests and bug reports, so let me know if you have something to say&#8230;</p>
<p>You can download SimplePie 0.9 from the <a href="http://www.skyzyx.com/projects/simplepie/">SimplePie Project Page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/08/03/the-ultrafast-simplepie-09-is-now-available/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>SimplePie&#8230; Yummy!</title>
		<link>http://blog.ryanparman.com/2004/07/20/simplepie-yummy/</link>
		<comments>http://blog.ryanparman.com/2004/07/20/simplepie-yummy/#comments</comments>
		<pubDate>Tue, 20 Jul 2004 21:08:15 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Syndication]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=166</guid>
		<description><![CDATA[Have you ever wanted to create your own online RSS/Atom feed reader? Did you fiddle around with other solutions that just plain sucked? Did you try to use the awesome Magpie RSS, and just couldn&#8217;t get it to work like you wanted? Personally, I&#8217;m still fairly new to PHP, but I have a solid understanding [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever wanted to create your own online RSS/Atom feed reader?  Did you fiddle around with other solutions that just plain sucked?  Did you try to use the awesome <a href="http://magpierss.sourceforge.net">Magpie RSS</a>, and just couldn&#8217;t get it to work like you wanted?</p>
<p>Personally, I&#8217;m still fairly new to PHP, but I have a solid understanding of scripting principles grasp of basic PHP syntax.  Even still, I found Magpie a bit confusing sometimes as I was starting out with it.  Because of this, I figured I&#8217;d try to make it easier for people like me to leverage Magpie&#8217;s power with a simpler command set.</p>
<p>I&#8217;d like you all to welcome <a href="http://www.skyzyx.com/projects/simplepie/">SimplePie</a>.  SimplePie is short for &#8220;Simple API for Magpie&#8221;, and makes it very easy to create your own PHP-based feed readers on your own sites.</p>
<p>I&#8217;m sure it&#8217;s not flawless, so I&#8217;d like you all to download the latest copy of <a href="http://sourceforge.net/project/showfiles.php?group_id=55691&#038;package_id=50728">Magpie RSS</a> and <a href="http://www.skyzyx.com/projects/simplepie/">SimplePie</a>, give it a try, and tell me how you like it and what I can do to make it better.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/07/20/simplepie-yummy/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Blocker and Comment Spam</title>
		<link>http://blog.ryanparman.com/2004/04/05/blocker-and-comment-spam/</link>
		<comments>http://blog.ryanparman.com/2004/04/05/blocker-and-comment-spam/#comments</comments>
		<pubDate>Mon, 05 Apr 2004 19:00:35 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.com/2004/04/05/blocker-and-comment-spam/</guid>
		<description><![CDATA[Something has just occurred to me: I haven&#8217;t had hardly any comment spam for a few months now. Did the spammers forget about me? I doubt it. Does Blocker have another side-effect that I hadn&#8217;t realized earlier? I&#8217;d appreciate any feedback from other Blocker users on this. Have you guys noticed a sharp decline in [...]]]></description>
			<content:encoded><![CDATA[<p>Something has just occurred to me: I haven&#8217;t had hardly any comment spam for a few months now.  Did the spammers forget about me?  I doubt it.  Does <a href="/projects/blocker/">Blocker</a> have another side-effect that I hadn&#8217;t realized earlier?</p>
<p>I&#8217;d appreciate any feedback from other Blocker users on this.  Have you guys noticed a sharp decline in the comment spam you&#8217;ve been getting?  Are you still having problems with certain ReferSpam entries?  Are you getting more or less spam email in your inboxes?</p>
<p>Input and feedback would be most helpful.  I&#8217;m also open to ideas and suggestions to make this script better.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/04/05/blocker-and-comment-spam/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Blocker 1.3 Revision 2</title>
		<link>http://blog.ryanparman.com/2004/03/27/blocker-13-revision-2/</link>
		<comments>http://blog.ryanparman.com/2004/03/27/blocker-13-revision-2/#comments</comments>
		<pubDate>Sun, 28 Mar 2004 01:12:46 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.com/2004/03/27/blocker-13-revision-2/</guid>
		<description><![CDATA[Blocker 1.3r2 is now available. Revision 2 includes a few more referrers, and takes into consideration some ideas from other Blocker users. Get it while it&#8217;s hot.]]></description>
			<content:encoded><![CDATA[<p><a href="/projects/blocker/">Blocker 1.3r2</a> is now available.  Revision 2 includes a few more referrers, and takes into consideration some ideas from other Blocker users.  Get it while it&#8217;s hot.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/03/27/blocker-13-revision-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>They&#8217;re Out!</title>
		<link>http://blog.ryanparman.com/2004/03/23/theyre-out/</link>
		<comments>http://blog.ryanparman.com/2004/03/23/theyre-out/#comments</comments>
		<pubDate>Tue, 23 Mar 2004 17:30:57 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=133</guid>
		<description><![CDATA[New releases of Blocker and Feed Parser are now available. Blocker 1.3 sports the blocking of 120 more bots than v1.2 did, as well as some new referrers that I&#8217;ve just been made aware of over the last week. I&#8217;ll be releasing point-point-releases to this as I&#8217;m able to analyze more Blocker data from users. [...]]]></description>
			<content:encoded><![CDATA[<p>New releases of <a href="/projects/blocker/">Blocker</a> and <a href="/projects/feedparser/">Feed Parser</a> are now available.  Blocker 1.3 sports the blocking of 120 more bots than v1.2 did, as well as some new referrers that I&#8217;ve just been made aware of over the last week.  I&#8217;ll be releasing point-point-releases to this as I&#8217;m able to analyze more Blocker data from users.  Feed Parser 0.6 sports support for RSS 0.9x, RSS 2.0, RSS 1.0 (RDF), and Atom 0.3.  Support for RSS 1.0 Modules and OPML is in the works.</p>
<p>Here, you can get the latest and greatest version of both <a href="/projects/blocker/blocker_1.3r1.zip?cda6c1">Blocker</a> and <a href="/projects/feedparser/feedparser_0.6.zip?cda6c1">Feed Parser</a>.  Have any questions or comments?  Let me know about them in the comments!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/03/23/theyre-out/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Feed Parser and Blocker Updates</title>
		<link>http://blog.ryanparman.com/2004/03/18/feed-parser-and-blocker-updates/</link>
		<comments>http://blog.ryanparman.com/2004/03/18/feed-parser-and-blocker-updates/#comments</comments>
		<pubDate>Thu, 18 Mar 2004 22:44:37 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=132</guid>
		<description><![CDATA[I&#8217;ve just released an update for Feed Parser bringing us up to version 0.5.1. This release sports full support for RSS 1.0, as well as the RSS 0.9x and 2.0 support that&#8217;s been there for a while. Credits for the people who&#8217;ve helped me get through tough spots are listed in the release notes and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just released an update for <a href="/projects/feedparser/">Feed Parser</a> bringing us up to version 0.5.1.  This release sports full support for RSS 1.0, as well as the RSS 0.9x and 2.0 support that&#8217;s been there for a while.</p>
<p>Credits for the people who&#8217;ve helped me get through tough spots are listed in the release notes and in the code (wherever they contributed).  If you&#8217;re a Gecko/Mozilla Application Developer itching to develop your own Syndicated News Reader, this engine will do the bulk of the dirty work for you.  Read the release notes for my project roadmap.</p>
<p>I&#8217;ve also got another update to my <a href="/projects/blocker/">Blocker</a> software coming up that&#8217;s been in Beta for a couple of weeks now.  You should all see that by this weekend (hopefully &#8212; no promises though).  I&#8217;ve also got the next major release in the works.  The new version works in conjunction with Dean Allen&#8217;s <a href="http://www.textism.com/tools/refer/">Refer 2.x</a> to keep spambots far, far away.  Hopefully, it&#8217;ll even render the <a href="http://astrogibs.com/eric/archives/technology/botwhack_10.html">BotWhack patch</a> useless.  Not that it&#8217;s a bad patch (I use it myself), but I just think it can be improved upon.</p>
<p>Got comments, questions, or suggestions about any of this?  Let me know.  =)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/03/18/feed-parser-and-blocker-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>100 Miles an Hour with My Hair on Fire!</title>
		<link>http://blog.ryanparman.com/2004/03/15/100-miles-an-hour-with-my-hair-on-fire/</link>
		<comments>http://blog.ryanparman.com/2004/03/15/100-miles-an-hour-with-my-hair-on-fire/#comments</comments>
		<pubDate>Mon, 15 Mar 2004 17:53:50 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Website]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=130</guid>
		<description><![CDATA[Things have been rather hecktic lately. I recently moved into a new apartment, I had my car accident, and I started a brand-new job all in a span of a week and a half. I&#8217;m still getting used to my new job. I have to take the train to get to work and back everyday, [...]]]></description>
			<content:encoded><![CDATA[<p>Things have been rather hecktic lately.  I recently moved into a new apartment, I had my <a href="/archives/000191.php">car accident</a>, and I started a brand-new job all in a span of a week and a half.</p>
<p>I&#8217;m still getting used to my new job.  I have to take the train to get to work and back everyday, and it has so far proven to be less than reliable (it took 2.5 hours to move 45 miles last Friday).  I&#8217;ve been keeping up decently with the <a href="/blogs/">blogs I read</a> over the last few weeks, particularly SxSW this weekend (I hope I can go next year), but I&#8217;m still unpacking my stuff, and am still waiting on the delivery of my new computer desk which is now two weeks late (I&#8217;ll never shop <a href="http://www.officemax.com/">Office Max</a> again).</p>
<p>So, my ever-so-exciting <a href="/archives/000181.php">upcoming redesign</a> has been on the back burner for longer than I&#8217;ve wanted it to be.  I also haven&#8217;t had time to complete and release the updates to <a href="/projects/blocker/">Blocker</a> I had been working on, nor have I had the time to do any more work on <a href="/projects/feedparser/">Feed Parser</a>.  Grrr&#8230; I don&#8217;t like falling behind on projects.</p>
<p>I&#8217;m also working on a easier-to-use version of my blogroll system.  Currently it&#8217;s just kinda hacked together, but I&#8217;m working on a version that would be easy for anyone to just start using.  This system just reads through my OPML files that I export from Feed Demon, and parses it out to finds the RSS/Atom feeds, then parses those feeds to display content about it.  Currently, I&#8217;m relying on a modified version of Magpie for the RSS/Atom parsing, but I&#8217;m tempted to try to implement a custom-built, simplified, RSS/Atom parser into the new Blogroll system.  Really it just depends on my ability to figure out how to implement some sort of reliable caching system.</p>
<p>I submitted a link to <a href="http://www.cameronmoll.com/v2/">Cameron Moll&#8217;s</a> website to the <a href="http://www.cssvault.com/gallery/cameron_moll.php">CSS Vault</a>, and it got accepted!  Cameron has a fantastically beautiful site.  Go congratulate him on it!</p>
<p>Anyways, that&#8217;s all from California&#8217;s Silicon Valley for today.  Talk to you again as soon as I can.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/03/15/100-miles-an-hour-with-my-hair-on-fire/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Blocking Spambots</title>
		<link>http://blog.ryanparman.com/2004/02/10/blocking-spambots/</link>
		<comments>http://blog.ryanparman.com/2004/02/10/blocking-spambots/#comments</comments>
		<pubDate>Tue, 10 Feb 2004 19:25:03 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=119</guid>
		<description><![CDATA[I&#8217;ve been using a PHP script called &#8220;Blocker&#8221; to block unwanted visitors to my website for several months now. It started out as a way to block refer spam from my refer list, and has grown to a full-fledged blocker of IP&#8217;s, Hostnames, Referrers, and User Agents. About once a month, I go through my [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using a PHP script called &#8220;Blocker&#8221; to block unwanted visitors to my website for several months now.  It started out as a way to block refer spam from my refer list, and has grown to a full-fledged blocker of IP&#8217;s, Hostnames, Referrers, and User Agents.</p>
<p>About once a month, I go through my raw access logs and check to see who&#8217;s been visiting me (and who I need to block from visiting me again).  This morning, I&#8217;ve added several new spambots to the list of things to block.  If you&#8217;re using Blocker already, go to my <a href="/downloads/">downloads</a> page and download the latest update.  If you&#8217;re not using it yet, I suggest you begin to, as it&#8217;s helped me in the fight against website spam tremendously.  This update has no functional changes, only blocking additions.</p>
<p>If you&#8217;ve manually added things you want to block in your copy of Blocker, you&#8217;ll have to manually add them to the new version.  If you&#8217;re blocking spambots, referrers, etc. that are not on my list, email them to me for inclusion in the next release.</p>
<p>Two Bots that I&#8217;ve been getting pounded by are the &#8220;Turntin&#8221; bot and the &#8220;Microsoft URL Control&#8221; bot.  Two weeks ago, Turntin nailed me over 220 times in 48 hours.  Microsoft URL Control nailed me about 70 times last night.  Both were blocked already before they hit me.  Whew!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/02/10/blocking-spambots/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SpamMaster Joe</title>
		<link>http://blog.ryanparman.com/2004/01/26/spammaster-joe/</link>
		<comments>http://blog.ryanparman.com/2004/01/26/spammaster-joe/#comments</comments>
		<pubDate>Mon, 26 Jan 2004 16:48:30 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=113</guid>
		<description><![CDATA[Joe Lieberman spammed me today! Well, kind of. He&#8217;s apparently using the very-evil &#8220;StarProse Referrer Advertising System 2004&#8243; to spam people&#8217;s Refer lists so that he can rank higher in search engines, or at least get people to click through to his site. Y&#8217;know all of that comment spam going around? Yeah, well this is [...]]]></description>
			<content:encoded><![CDATA[<p><em>Joe Lieberman spammed me today!</em></p>
<p>Well, kind of.  He&#8217;s apparently using the very-evil &#8220;StarProse Referrer Advertising System 2004&#8243; to spam people&#8217;s Refer lists so that he can rank higher in search engines, or at least get people to click through to his site.  Y&#8217;know all of that comment spam going around?  Yeah, well this is the same thing, except for referrer lists.</p>
<p>Lucky, I have &#8220;refer spam&#8221; countermeasures in place.  I&#8217;ve got a series of IP&#8217;s, Referrers, Hostnames, and SpamBot User Agents that have been blocked for one reason or another.  Usually, it&#8217;s because they&#8217;ve done something not too cool, so I&#8217;ve banned them.  Generally, these are spammers.  If anyone wants this list, let me know.</p>
<p>If Joe wants to be president, then he can go about doing it the right way.  But spamming my website is not one of those ways.</p>
<p><span class="update">&laquo; Update: Feb 12, 2004 &raquo;</span>  Now <a href="http://blog.johnkerry.com/">John Kerry</a> is doing it too.  *sigh*</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2004/01/26/spammaster-joe/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Spam Blocking</title>
		<link>http://blog.ryanparman.com/2003/11/05/spam-blocking/</link>
		<comments>http://blog.ryanparman.com/2003/11/05/spam-blocking/#comments</comments>
		<pubDate>Wed, 05 Nov 2003 18:06:38 +0000</pubDate>
		<dc:creator>Ryan Parman</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.skyzyx.net/?p=82</guid>
		<description><![CDATA[After going back and checking my referrers over the last month, I&#8217;ve noticed a few spam bots coming to my website, I assume trying to harvest email addresses. I&#8217;ve encoded mine as unicode, so I haven&#8217;t been too worried. This past Saturday I received my first spam email on my oh-so-secret personal email account. I [...]]]></description>
			<content:encoded><![CDATA[<p>After going back and checking my referrers over the last month, I&#8217;ve noticed a few spam bots coming to my website, I assume trying to harvest email addresses.  I&#8217;ve encoded mine as unicode, so I haven&#8217;t been too worried.  This past Saturday I received my first spam email on my oh-so-secret personal email account.  I was rather irritated to say the least.</p>
<p>Also, this morning, I got some comment spam on one of my earlier posts.  Luckily, Movable Type emails me the IP of people who make comments on my site.</p>
<p>I did a little bit of digging and found a PHP script that allows me to block entrance to my website based on the user&#8217;s IP address.  I immediately blocked the IP of the guy who gave me some oh-so-wonderful comment spam this morning, as well as the IP&#8217;s and User Agents of some of the spambots I&#8217;ve been experiencing.  We&#8217;ll see how it all works out.</p>
<p>I&#8217;ve also been getting some messages from the Suck-O-Meter that I have in the JavaScript section of my website.  There are alot of people who are causing me stress by abusing this feature, so I&#8217;m going to begin blocking those IP&#8217;s as well.  Hopefully, I&#8217;ll be able to sleep better at night.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanparman.com/2003/11/05/spam-blocking/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/195 queries in 0.755 seconds using disk: basic
Object Caching 2392/2819 objects using disk: basic
Content Delivery Network via Amazon Web Services: S3: blog.ryanparman.com.s3.amazonaws.com

Served from: blog.ryanparman.com @ 2012-02-04 17:40:07 -->
