<?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>Elphin &#187; Pastebin</title>
	<atom:link href="http://www.elphin.com/category/pastebin/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.elphin.com</link>
	<description>Making fine software since 1998</description>
	<lastBuildDate>Sun, 09 Aug 2009 16:28:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Pastebin post filtering</title>
		<link>http://www.elphin.com/2008/03/pastebin-post-filtering/</link>
		<comments>http://www.elphin.com/2008/03/pastebin-post-filtering/#comments</comments>
		<pubDate>Sun, 16 Mar 2008 07:56:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Pastebin]]></category>

		<guid isPermaLink="false">http://blog.dixo.net/2008/03/16/pastebin-post-filtering/</guid>
		<description><![CDATA[As there&#8217;s been some cases of cracked email address lists being posted on pastebin recently, this week I tweaked the spam filtering to block such posts. A few legitimate posts got caught in the crossfire, causing a few more tweaks to the rules.
If you&#8217;re having trouble posting something because pastebin says it looks like spam, [...]]]></description>
			<content:encoded><![CDATA[<p>As there&#8217;s been some cases of cracked email address lists being posted on <a href="http://pastebin.com">pastebin </a>recently, this week I tweaked the spam filtering to block such posts. A few legitimate posts got caught in the crossfire, causing a few more tweaks to the rules.</p>
<p>If you&#8217;re having trouble posting something because pastebin says it looks like spam, post a sample in a comment below and I&#8217;ll see what I can do to improve it!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elphin.com/2008/03/pastebin-post-filtering/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
		</item>
		<item>
		<title>Pastebin fights the spam!</title>
		<link>http://www.elphin.com/2007/08/pastebin-fights-the-spam/</link>
		<comments>http://www.elphin.com/2007/08/pastebin-fights-the-spam/#comments</comments>
		<pubDate>Tue, 21 Aug 2007 19:15:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Pastebin]]></category>

		<guid isPermaLink="false">http://blog.dixo.net/2007/08/21/pastebin-fights-the-spam/</guid>
		<description><![CDATA[A few people have emailed me recently disappointed by the level of spam postings on pastebin.com. I&#8217;ve never really understood why spammers bother, but as they are bothering in increasing numbers it was time to take some action.
Last night I built in some spam filtering which has caught hundreds of posts since going live. I [...]]]></description>
			<content:encoded><![CDATA[<p>A few people have emailed me recently disappointed by the level of spam postings on <a href="http://pastebin.com">pastebin.com</a>. I&#8217;ve never really understood why spammers bother, but as they <em>are</em> bothering in increasing numbers it was time to take some action.</p>
<p>Last night I built in some spam filtering which has caught hundreds of posts since going live. I also added a &#8220;report spam&#8221; link which has flagged over 500 posts in past 20 hours. By iteratively tweaking the spam filter to identify the legimately flagged posts, I&#8217;ve been able to quickly delete a lot of older spam posts.</p>
<p>Hopefully this will make pastebin look like a well tended garden rather than a run-down wasteland! Comments welcome&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elphin.com/2007/08/pastebin-fights-the-spam/feed/</wfw:commentRss>
		<slash:comments>54</slash:comments>
		</item>
		<item>
		<title>Pastebin &#8211; Turbo Boost Success!</title>
		<link>http://www.elphin.com/2007/07/pastebin-turbo-boost-success/</link>
		<comments>http://www.elphin.com/2007/07/pastebin-turbo-boost-success/#comments</comments>
		<pubDate>Tue, 17 Jul 2007 08:19:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Pastebin]]></category>

		<guid isPermaLink="false">http://blog.dixo.net/2007/07/17/pastebin-turbo-boost-success/</guid>
		<description><![CDATA[Just been checking the stats on pastebin.com and clearly the recent changes have worked well! Usage has trebled since last week and it&#8217;s still very responsive.
It&#8217;s nice to see that people still want to use it, so I&#8217;m going to ride this wave of enthusiasm and improve it further over the coming weeks.
Your feedback, as [...]]]></description>
			<content:encoded><![CDATA[<p>Just been checking the stats on <a href="http://pastebin.com">pastebin.com</a> and clearly the <a href="http://blog.dixo.net/2007/07/10/pastebin-reloaded/">recent changes</a> have worked well! Usage has trebled since last week and it&#8217;s still very responsive.</p>
<p>It&#8217;s nice to see that people still want to use it, so I&#8217;m going to ride this wave of enthusiasm and improve it further over the coming weeks.</p>
<p>Your feedback, as ever, is welcome!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elphin.com/2007/07/pastebin-turbo-boost-success/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Pastebin Reloaded!</title>
		<link>http://www.elphin.com/2007/07/pastebin-reloaded/</link>
		<comments>http://www.elphin.com/2007/07/pastebin-reloaded/#comments</comments>
		<pubDate>Tue, 10 Jul 2007 20:09:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Pastebin]]></category>

		<guid isPermaLink="false">http://blog.dixo.net/2007/07/10/pastebin-reloaded/</guid>
		<description><![CDATA[Well, I promised it waaaay back in january, but I&#8217;ve finally released an update to pastebin.com. A few people have asked for the source over the past few months and have seen some of the updates already, but here&#8217;s what&#8217;s new&#8230;

MySQL storage replaced with file-based storage, making it much faster
Revamped the colour scheme, which has [...]]]></description>
			<content:encoded><![CDATA[<p>Well, I promised it <a href="http://blog.dixo.net/2007/01/18/pastebin-light-at-the-end-of-the-tunnel/">waaaay back in january</a>, but I&#8217;ve finally released an update to <a href="http://pastebin.com">pastebin.com</a>. A few people have asked for the source over the past few months and have seen some of the updates already, but here&#8217;s what&#8217;s new&#8230;</p>
<ul>
<li>MySQL storage replaced with file-based storage, making it much faster</li>
<li>Revamped the colour scheme, which has been pretty much the same for 5 years</li>
<li>Added a &#8216;delete post&#8217; feature</li>
<li>Switched to Affero GPL licence</li>
</ul>
<p>If you&#8217;ve drifted away from pastebin due it&#8217;s lethargic speed, now&#8217;s the time to come back! <a href="http://pastebin.com">Give it a whirl</a> and if you have any feedback, leave a comment on this post.</p>
<p>Here&#8217;s some more detail on the changes&#8230;</p>
<h2>File based storage</h2>
<p>Pastebin used MySQL for storage since it was first launched in 2002. It has steadily grown in popularity, but that popularity began to take its toll on performance in the past 12 months.</p>
<p>Pastebin started out just keeping the last 1000 posts, which kept things zippy. Then I added custom domains, which increased the number of posts being retained, but what really hurt it was adding a common request &#8211; permanent posts, which meant that over time, the database grew inexorably larger.</p>
<p>In January I began to wonder if I needed a relational database at all. After all, pastebin is really just a single table application, and there are only two main operations:</p>
<ul>
<li>Fetch post <i>x</i></li>
<li>Get last 10 posts on domain <i>foo</i></li>
</ul>
<p>So I refactored the code to allow the storage mechanism to be changed. The new file based mechanism assigns a random identifier to a new post, e.g. <i>abcdefgh</i> and stores it in a structured directory:</p>
<pre>posts/&lt;d|m|f&gt;/ab/cd/ef/abcdefgh</pre>
<p>The top level directory &#8216;d&#8217;, &#8216;m&#8217;, or &#8216;f&#8217; is chosen based on the desired lifetime of the post (1 day, 1 month or forever). Garbage collection of the 1 day posts in the &#8216;d&#8217; directory can thus be carried out by performing a find for files older than a day with something like this running from cron every day:</p>
<pre>
find /path/to/pastebin/posts/d -mtime +1 -exec rm \{\} \;
</pre>
<p>To maintain the MRU lists of recent posts, the code maintains a serialized array for each domain. Whenever a post is made, this serialized file is locked, updated and unlocked. This is the only time the code can find itself competing for a shared resource, and even then its on a per-domain basis, rather than for the entire application as with the  mysql storage.</p>
<p>As I write, this mechanism has been running for a few hours on the live site, and performance is much improved. At peak times it could take 15-20 seconds to make a post, it&#8217;s now much, much zippier!</p>
<h2>Revamped Colour Scheme</h2>
<p>I thought the old CSS was looking a little tired so I&#8217;ve freshened it up a little. I want to avoid adding graphics to the design and just use pure HTML and CSS if possible, which keeps things speedy too.</p>
<p>Comments on it are welcome, it&#8217;s likely I&#8217;ll tinker with it some more&#8230;</p>
<h2>Delete Post</h2>
<p>This is quite neat I think &#8211; if you choose to hit the &#8220;remember me&#8221; button, you&#8217;ll be assigned a random token which is used to mark your posts. This token is stored in a cookie. When you later view a post, if your cookie token and the post token match, you&#8217;ll be offered the opportunity of deleting the post.</p>
<p>I like this as you don&#8217;t have to go entering a password or setting up an account &#8211; it just works.</p>
<p>As always, if you&#8217;ve made a post you want removing and this feature doesn&#8217;t do it for you, just ask and I&#8217;ll take care of it</p>
<h2>Changed to Affero GPL</h2>
<p>The last few releases of pastebin used the GPL licence. Trouble is, while the GPL guarantees access to the source if you receive a binary copy of the software, with a website that doesn&#8217;t happen.  The <a href="http://www.affero.org/oagpl.html">Affero GPL</a> is a modified version of the GPL which contains an extra clause guaranteeing your access to the source when you interact with the software over a network.</p>
<p>So if you use pastebin in your own site, or adapt it further, you must continue to offer that source to your users. Lovely</p>
<h2>What&#8217;s next?</h2>
<p>Well, now that pastebin is actually <i>usable</i> again, I&#8217;m on a roll. The code has partially complete support for translation, and I&#8217;ve an <a href="http://blog.dixo.net/2006/05/10/translate-pastebin/">army of volunteers</a> ready to translate, so that&#8217;s the next goal&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elphin.com/2007/07/pastebin-reloaded/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Pastebin &#8211; light at the end of the tunnel</title>
		<link>http://www.elphin.com/2007/01/pastebin-light-at-the-end-of-the-tunnel/</link>
		<comments>http://www.elphin.com/2007/01/pastebin-light-at-the-end-of-the-tunnel/#comments</comments>
		<pubDate>Thu, 18 Jan 2007 09:33:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Pastebin]]></category>

		<guid isPermaLink="false">http://blog.dixo.net/2007/01/18/pastebin-light-at-the-end-of-the-tunnel/</guid>
		<description><![CDATA[A number of people have emailed or left comments frustrated by the speed of pastebin. Over the past few months I&#8217;ve spent the odd ten minutes here and there tweaking it in the face of ever-increasing load. It&#8217;s clear the software just isn&#8217;t up to the task anymore, which was particularly evidenced by a recent [...]]]></description>
			<content:encoded><![CDATA[<p>A number of people have emailed or left comments frustrated by the speed of <a href="http://pastebin.com">pastebin</a>. Over the past few months I&#8217;ve spent the odd ten minutes here and there tweaking it in the face of ever-increasing load. It&#8217;s clear the software just isn&#8217;t up to the task anymore, which was particularly evidenced by a recent <a href="http://it.slashdot.org/article.pl?sid=07/01/13/181222">slashdotting</a>.</p>
<p>Over the next few days I&#8217;m rewriting the internals to be much faster, and hopefully release it over the weekend.</p>
<p>Wish me luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elphin.com/2007/01/pastebin-light-at-the-end-of-the-tunnel/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Pastebin Reset&#8230;</title>
		<link>http://www.elphin.com/2006/06/pastebin-reset/</link>
		<comments>http://www.elphin.com/2006/06/pastebin-reset/#comments</comments>
		<pubDate>Sun, 11 Jun 2006 19:51:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Pastebin]]></category>

		<guid isPermaLink="false">http://blog.dixo.net/2006/06/11/pastebin-reset/</guid>
		<description><![CDATA[I&#8217;m rarely &#8220;off the grid&#8221; but while away camping over the weekend the pastebin database seems to have suffered a pretty catastrophic failure. For the time being I&#8217;ve reset it while I investigate&#8230;
Thanks to the (many!) folks who alerted me!
Edit: OK, I&#8217;ve restored a backup from a few weeks ago, which means most recent posts [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m rarely &#8220;off the grid&#8221; but while away camping over the weekend the pastebin database seems to have suffered a pretty catastrophic failure. For the time being I&#8217;ve reset it while I investigate&#8230;</p>
<p>Thanks to the (many!) folks who alerted me!</p>
<p>Edit: OK, I&#8217;ve restored a backup from a few weeks ago, which means most recent posts are gone. Many apologies for the inconvenience caused, still looking for the root cause (all the pastebin tables were just *gone* <img src='http://www.elphin.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  ).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elphin.com/2006/06/pastebin-reset/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Pastebin performance improved</title>
		<link>http://www.elphin.com/2006/05/pastebin-performance-improved/</link>
		<comments>http://www.elphin.com/2006/05/pastebin-performance-improved/#comments</comments>
		<pubDate>Wed, 17 May 2006 09:12:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Pastebin]]></category>

		<guid isPermaLink="false">http://blog.dixo.net/2006/05/17/pastebin-performance-improved/</guid>
		<description><![CDATA[Pastebin never used to retain more than a few thousand posts, but the recent feature to allow  longer post retention exposed a few performance issues. If you noticed pastebin.com being a little slow, my apologies.
I&#8217;ve made a number of fixes to address the problem, if you notice further issues, do let me know with [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://pastebin.com">Pastebin</a> never used to retain more than a few thousand posts, but the recent feature to allow  longer post retention exposed a few performance issues. If you noticed pastebin.com being a little slow, my apologies.</p>
<p>I&#8217;ve made a number of fixes to address the problem, if you notice further issues, do let me know with a comment below.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elphin.com/2006/05/pastebin-performance-improved/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Translate Pastebin?</title>
		<link>http://www.elphin.com/2006/05/translate-pastebin/</link>
		<comments>http://www.elphin.com/2006/05/translate-pastebin/#comments</comments>
		<pubDate>Wed, 10 May 2006 09:31:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Pastebin]]></category>

		<guid isPermaLink="false">http://blog.dixo.net/2006/05/10/translate-pastebin/</guid>
		<description><![CDATA[I&#8217;ve been wondering if anyone would like a translated version of Pastebin? It gets a lot of use from Germany &#8211; any German coders want to volunteer some translated text? Happy to do other  languages too, add a comment below if this of interest (either as a translator or pastebin user)
(EDIT: I&#8217;ve had offers [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been wondering if anyone would like a translated version of <a href="pastebin.com">Pastebin</a>? It gets a lot of use from Germany &#8211; any German coders want to volunteer some translated text? Happy to do other  languages too, add a comment below if this of interest (either as a translator or pastebin user)</p>
<p>(EDIT: I&#8217;ve had offers for Albanian, Arabic, Simplified Chinese, Danish, Dutch, French, German, Greek, Italian, Japanese, Polish, Portuguese, Russian, Spanish, Swedish,Turkish and Urdu &#8211; thanks folks!)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elphin.com/2006/05/translate-pastebin/feed/</wfw:commentRss>
		<slash:comments>56</slash:comments>
		</item>
		<item>
		<title>Usage of pastebin expiry feature</title>
		<link>http://www.elphin.com/2006/05/usage-of-pastebin-expiry-feature/</link>
		<comments>http://www.elphin.com/2006/05/usage-of-pastebin-expiry-feature/#comments</comments>
		<pubDate>Mon, 08 May 2006 21:54:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Pastebin]]></category>

		<guid isPermaLink="false">http://blog.dixo.net/2006/05/08/usage-of-pastebin-expiry-feature/</guid>
		<description><![CDATA[The new expiry option has been live at pastebin.com for over 24 hours, it&#8217;s been interesting to see the usage patterns. There have been just under 2000 posts in the past day, breaking down as follows:

33% expire in a day
64% expire in a month
3% never expire

In a few days I&#8217;ll take a look at some [...]]]></description>
			<content:encoded><![CDATA[<p>The new expiry option has been live at <a href="http://pastebin.com">pastebin.com</a> for over 24 hours, it&#8217;s been interesting to see the usage patterns. There have been just under 2000 posts in the past day, breaking down as follows:</p>
<ul>
<li>33% expire in a day</li>
<li>64% expire in a month</li>
<li>3% never expire</li>
</ul>
<p>In a few days I&#8217;ll take a look at some of the &#8220;permanent&#8221; posts to see what other features might be useful&#8230;in meantime, feel free to make suggestions by commenting below!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elphin.com/2006/05/usage-of-pastebin-expiry-feature/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Pastebin 0.50 released &#8211; with expiry control</title>
		<link>http://www.elphin.com/2006/05/pastebin-050-released-with-expiry-control/</link>
		<comments>http://www.elphin.com/2006/05/pastebin-050-released-with-expiry-control/#comments</comments>
		<pubDate>Sun, 07 May 2006 11:22:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Pastebin]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://blog.dixo.net/2006/05/07/pastebin-050-released-with-expiry-control/</guid>
		<description><![CDATA[Pastebin was conceived as a way to post code into an IRC or IM conversation, so the post itself was thought to be quite ephemeral. Therefore, the database didn&#8217;t retain posts for very long. However, this has surprised some users, who expected a little more permanence.
I&#8217;ve rectified this in v0.50. There are three options to [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Pastebin.com - collaborative debugging tool" href="http://pastebin.com">Pastebin</a> was conceived as a way to post code into an IRC or IM conversation, so the post itself was thought to be quite ephemeral. Therefore, the database didn&#8217;t retain posts for very long. However, this has surprised some users, who expected a little more permanence.</p>
<p>I&#8217;ve rectified this in v0.50. There are three options to suit various users</p>
<ul>
<li>expiry in a day &#8211; great for IRC or IM, where the post will be read pretty much immediately and then fall out of use</li>
<li>expire in a month &#8211; great for exploring code ideas or problems via email</li>
<li>never expire &#8211; the post lives forever. This is really for retaining code snippets you want to share with others.</li>
</ul>
<p>I&#8217;m going to add more features that will make pastebin more useful for long term storage of code snippets, watch this space!</p>
<p>Download <a title="pastebin.tar.gz (245 KB)" href="http://pastebin.com/pastebin.tar.gz">GPL&#8217;d source code</a>, or just play with it at <a title="Pastebin.com - collaborative debugging tool" href="http://pastebin.com">pastebin.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.elphin.com/2006/05/pastebin-050-released-with-expiry-control/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
