<?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>Sodaware::Blog &#187; Web Programming</title>
	<atom:link href="http://www.sodaware.net/blog/category/software-development/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sodaware.net/blog</link>
	<description>Adventures in shareware.</description>
	<lastBuildDate>Mon, 12 Dec 2011 14:15:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>How to add a custom Facebook app to your page</title>
		<link>http://www.sodaware.net/blog/2011/12/how-to-add-a-custom-facebook-app-to-your-page/</link>
		<comments>http://www.sodaware.net/blog/2011/12/how-to-add-a-custom-facebook-app-to-your-page/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 08:56:18 +0000</pubDate>
		<dc:creator>Phil Newton</dc:creator>
				<category><![CDATA[Web Programming]]></category>

		<guid isPermaLink="false">http://www.sodaware.net/blog/?p=220</guid>
		<description><![CDATA[For the last few hours I&#8217;ve been pulling my hair out trying to add an app I created to a Facebook fan page. Creating the app was trivial compared to actually adding it to the page. Every help page says something different, and the links that were supposed to be there weren&#8217;t. The instructions given [...]]]></description>
			<content:encoded><![CDATA[<p>For the last few hours I&#8217;ve been pulling my hair out trying to add an app I created to a Facebook fan page. Creating the app was trivial compared to actually adding it to the page. Every help page says something different, and the links that were supposed to be there weren&#8217;t. The instructions given are to follow the &#8220;View App Profile Page&#8221; in your app&#8217;s settings page, but this link isn&#8217;t always there for whatever reason. </p>
<p>To add your new app to a page, use the URI below, replacing APP_ID with the ID of the app you want to add. It&#8217;s on the summary page of your app in the developers area (for now).</p>
<blockquote><p>http://www.facebook.com/add.php?api_key=APP_ID&#038;pages=1</p></blockquote>
<p>That will brind up a dialog allowing you to add the app to any page or profile. </p>
<p>Courtesy of <a href="http://stackoverflow.com/questions/8335987/unable-to-view-app-profile-page-the-page-you-requested-was-not-found">this topic</a> on Stack Overflow.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sodaware.net/blog/2011/12/how-to-add-a-custom-facebook-app-to-your-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Traffic That Works</title>
		<link>http://www.sodaware.net/blog/2009/03/getting-traffic-that-works/</link>
		<comments>http://www.sodaware.net/blog/2009/03/getting-traffic-that-works/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 01:11:14 +0000</pubDate>
		<dc:creator>Phil Newton</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Web Programming]]></category>

		<guid isPermaLink="false">http://www.sodaware.net/blog/?p=138</guid>
		<description><![CDATA[There are a few fundamental truths when selling things online. The first is that you need visitors to your website. The second is that you need those visitors to buy something. Anything else they do, such as blog or tweet about you, is just a bonus.]]></description>
			<content:encoded><![CDATA[<p>There are a few fundamental truths when selling things online. The first is that you need visitors to your website. The second is that you need those visitors to buy something. Anything else they do, such as blog or tweet about you, is just a bonus. </p>
<p>A lot of times people concentrate on getting traffic, instead of on obtaining <strong>quality traffic</strong>. </p>
<p>This article contains most of the traffic generation techniques I&#8217;ve used in the last few years, along with some statistics on how well they perform. Naturally, your results may differ from these, but they&#8217;re a good starting point for evaluating different methods. </p>
<p>All statistics are taken from an 18 month period (September 2007 &#8211; February 2009) to give as large a sample size as possible. There are nearly 1,000 different referrers for this period, so these statistics are certainly not 100% accurate. They do give a good picture of what works, which is the important thing. </p>
<p>Anyway, enough with the disclaimers. Each table contains four columns:</p>
<dl>
<dt><strong>Pages Per Visit</strong> </dt>
<dd>
<p>This is the average number of pages a visitor looks at. A higher number means they look around your site more, so keep an eye on this number.</p>
<p>Adding relevant links to the bottom of pages, or sprinkling them throughout your content can help. Be careful not to add too many links though, so you don’t distract visitors from downloading or buying your product.</p>
</dd>
<dt><strong>Time on Site</strong> </dt>
<dd>
<p>The average amount of time a visitor spends on your site. Again, higher numbers are better, as it generally means they’re reading and not just skimming.</p>
</dd>
<dt><strong>Bounce Rate</strong> </dt>
<dd>
<p>The bounce rate is the percentage of visitors that leave your site after a single page. For example, a visitor who enters your homepage and then types another link in the address bar without following your links has “bounced”. The lower this number, the better.</p>
</dd>
<dt><strong>Download Rate</strong> </dt>
<dd>
<p>This is from a goal I set up in Google Analytics to track downloads. A lot of my sales come from people who buy from within the demo, so the higher this number the better. If a source of traffic doesn’t produce any downloads, it’s a sign that I’m advertising to the wrong people.</p>
</dd>
</dl>
<p>As you’ll see, there’s a big difference between the best traffic sources and the worst. The most traffic to <a href="http://www.sodaware.net/">sodaware.net</a> comes from search engines, but search engine optimisation is a big topic that I wanted to avoid, so this article concentrates on sources that are easier to control.</p>
<h3>Paid Advertising </h3>
<h4>Google AdWords </h4>
<p></p>
<p>This is one of the easiest ways to buy traffic. All you have to do is write a short textual advert about your product or website, and then target keywords that people search for. It&#8217;s quick to set up, and you know visitors are looking for what you’re offering because they searched for it. </p>
<p>On the flipside, there&#8217;s a lot of depth to AdWords, and it takes a long time to get really great results. Throwing down a few dollars is only the start, and you’ll lot of your time will be spent on optimising your campaigns and weeding out underperformers.</p>
<table class="HistoryList" width="100%">
<tbody>
<tr>
<th valign="top">Pages Per Visit</th>
<th valign="top">Time on Site</th>
<th valign="top">Bounce Rate</th>
<th valign="top">Download Rate</th>
</tr>
<tr>
<td class="rowOne" valign="top" align="right" align="right">3.18</td>
<td class="rowOne" valign="top" align="right" align="right">01:24</td>
<td class="rowOne" valign="top" align="right" align="right">32.6%</td>
<td class="rowOne" valign="top" align="right">17.44%</td>
</tr>
</tbody>
</table>
</p>
<p>&#160;</p>
<h4>Project Wonderful </h4>
<p>Project Wonderful is even easier to use than Google AdWords. Create a graphical button or banner, select the criteria for sites you want to advertise on and you&#8217;re away. </p>
<p>Project Wonderful has the advantage that ads are extremely cheap, as you pay per day, not per click or impression. It&#8217;s a good way of getting lots of hits, and the campaign option makes things even easier. However, it&#8217;s quite easy to spend a lot of money and end up with little to show if you&#8217;re not careful. </p>
<p>Manual bids that are tailored to each site you&#8217;re bidding on seem to work the best. They takes more work, but the responses are generally higher. </p>
<p>Below are stats for the top three bids I ran. </p>
<table class="HistoryList" width="2">
<tbody>
<tr>
<th valign="top">Pages Per Visit</th>
<th valign="top">Time on Site</th>
<th valign="top">Bounce Rate</th>
<th valign="top">Download Rate</th>
</tr>
<tr>
<td class="rowOne" valign="top" align="right">3.52</td>
<td class="rowOne" valign="top" align="right">01:11</td>
<td class="rowOne" valign="top" align="right">61.0%</td>
<td class="rowOne" valign="top" align="right">9.76%</td>
</tr>
<tr>
<td class="rowTwo" valign="top" align="right">2.42</td>
<td class="rowTwo" valign="top" align="right">00:50</td>
<td class="rowTwo" valign="top" align="right">59.3%</td>
<td class="rowTwo" valign="top" align="right">6.44%</td>
</tr>
<tr>
<td class="rowOne" valign="top" align="right">2.08</td>
<td class="rowOne" valign="top" align="right">00:47</td>
<td class="rowOne" valign="top" align="right">59.8%</td>
<td class="rowOne" valign="top" align="right">2.06%</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<h4>Text Link Ads </h4>
<p>According to Text Link Ads, the real power of this method comes from the increase in search engine ranking for your site. They recommend you leave your ad running for several months to evaluate it, as search engines take a while to update. </p>
<p>Over a five month period, I saw no change in my ranking. Having said that, I was trying to rank on very competitive terms, so it may be better for niche phrases instead. </p>
<p>These are statistics from the sites that ads were placed on. As you can see, the links themselves didn’t bring particularly good traffic compared to other methods.</p>
<table class="HistoryList" width="2">
<tbody>
<tr>
<th valign="top">Pages Per Visit</th>
<th valign="top">Time on Site</th>
<th valign="top">Bounce Rate</th>
<th valign="top">Download Rate</th>
</tr>
<tr>
<td class="rowOne" valign="top" align="right">1.35</td>
<td class="rowOne" valign="top" align="right">00:05</td>
<td class="rowOne" valign="top" align="right">88.4%</td>
<td class="rowOne" valign="top" align="right">3.49%</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<h3>Free Advertising </h3>
<h4>StumbleUpon </h4>
<p>Although you can pay for Stumbles, I&#8217;m putting it in the free category as you can get good results without paying. Stumblers generally fall into two categories: People who will stay and read, and people who will leave within a few seconds. This dramatically skews the visit time down and bounce rate. </p>
<p>StumbleUpon brings in a big spike of traffic at the beginning, and quickly tales off after a few days. It continues to bring in visitors over time, and sometimes you’ll get secondary spikes. There’s also the chance that visitors will stumble your other content, leading to more spikes.</p>
<p>For the main page, the were quite poor, but for articles and resources it works much better. Your best option is to add tips, hints or guides to your site and have them stumbled. </p>
<p>Articles about unique qualities of your product will perform better, as long as you go easy on the sales talk and concentrate on writing something of value. </p>
<table class="HistoryList" width="2">
<tbody>
<tr>
<th valign="top">Pages Per Visit</th>
<th valign="top">Time on Site</th>
<th valign="top">Bounce Rate</th>
<th valign="top">Download Rate</th>
</tr>
<tr>
<td class="rowOne" valign="top" align="right">1.34</td>
<td class="rowOne" valign="top" align="right">00:23</td>
<td class="rowOne" valign="top" align="right">74.4%</td>
<td class="rowOne" valign="top" align="right">0.58%</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<h4>Article Marketing </h4>
<p>This is a simple technique, but it can have good results. The process involves writing articles that target certain keywords. Each article will contain a link to your site in the article footer. This article is then submitted to article directories, which generally rank high in the search engines. For example, if you&#8217;re selling a solitaire game you could write about tips for playing the game and include a link at the bottom of the article. </p>
<p>It may sound a little bit spammy, but it isn’t if you provide value to your readers.</p>
<p>So far this has been one of the best methods of traffic generation I&#8217;ve used. It takes effort to research and write your article, but the traffic quality is extremely high. An article I wrote over a year ago still sends a good amount of traffic which converts extremely well into downloads and sales. </p>
<p>Article marketing is a topic I’ll be writing more about in the future.</p>
<table class="HistoryList" width="2">
<tbody>
<tr>
<th valign="top">Pages Per Visit</th>
<th valign="top">Time on Site</th>
<th valign="top">Bounce Rate</th>
<th valign="top">Download Rate</th>
</tr>
<tr>
<td class="rowOne" valign="top" align="right">2.37</td>
<td class="rowOne" valign="top" align="right">00:46</td>
<td class="rowOne" valign="top" align="right">42.8%</td>
<td class="rowOne" valign="top" align="right">24.28%</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<h4>Blog Commenting </h4>
<p>Find a blog that relates to your topic, and make a relevant comment that contains a link to your website. As long as your comment is useful and the blog gets a reasonable amount of traffic, you&#8217;ll get visits. Depending on your contribution, you may also develop a relationship with the blogger which can bring more traffic. </p>
<p>The first result in the table below is the result of a single trackback I made three years ago. It&#8217;s brought several hundred visits (and still brings in a dozen or so a week), but the traffic doesn&#8217;t convert. This technique works much better for getting blog readers rather than customers.</p>
<table class="HistoryList" width="2">
<tbody>
<tr>
<th valign="top">Pages Per Visit</th>
<th valign="top">Time on Site</th>
<th valign="top">Bounce Rate</th>
<th valign="top">Download Rate</th>
</tr>
<tr>
<td class="rowOne" valign="top" align="right">2.60</td>
<td class="rowOne" valign="top" align="right">02:28</td>
<td class="rowOne" valign="top" align="right">48.3%</td>
<td class="rowOne" valign="top" align="right">0.00%</td>
</tr>
<tr>
<td class="rowTwo" valign="top" align="right">1.83</td>
<td class="rowTwo" valign="top" align="right">00:09</td>
<td class="rowTwo" valign="top" align="right">66.7%</td>
<td class="rowTwo" valign="top" align="right">0.00%</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<h4>Forum Posting </h4>
<p>This is similar to blog commenting, but the link to your site goes in your forum signature. Again, the benefit here comes from generating an online presence, rather than raw traffic power. </p>
<p>These are the top three forum referrals to <a href="http://www.sodaware.net/">sodaware.net</a>. </p>
<table class="HistoryList" width="2">
<tbody>
<tr>
<th valign="top">Pages Per Visit</th>
<th valign="top">Time on Site</th>
<th valign="top">Bounce Rate</th>
<th valign="top">Download Rate</th>
</tr>
<tr>
<td class="rowOne" valign="top" align="right">2.39</td>
<td class="rowOne" valign="top" align="right">01:28</td>
<td class="rowOne" valign="top" align="right">73.4%</td>
<td class="rowOne" valign="top" align="right">1.06% </td>
</tr>
<tr>
<td class="rowTwo" valign="top" align="right">2.96</td>
<td class="rowTwo" valign="top" align="right">01:41</td>
<td class="rowTwo" valign="top" align="right">62.7%</td>
<td class="rowTwo" valign="top" align="right">0.00%</td>
</tr>
<tr>
<td class="rowOne" valign="top" align="right">1.36</td>
<td class="rowOne" valign="top" align="right">01:21</td>
<td class="rowOne" valign="top" align="right">72.7%</td>
<td class="rowOne" valign="top" align="right">0.00%</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<h4>&quot;How To&quot; blog articles </h4>
<p>Think of a problem you face daily, and write a blog article about solving it. Its simple, quick, and if you get the title (and problem) right you can get a lot of exposure and links. </p>
<p>I get a lot of traffic to one &quot;how to&quot; in particular, but the vast majority of visitors don’t stay for anything else. This makes sense, seeing as they&#8217;re searching for a solution to a problem and not for games. </p>
<p>The best advice I can give is to treat this method like writing a recipe with one of your products as the ingredient. This way you’re providing something valuable, and also encouraging downloads and sales. </p>
<table class="HistoryList" width="2">
<tbody>
<tr>
<th valign="top">Pages Per Visit</th>
<th valign="top">Time on Site</th>
<th valign="top">Bounce Rate</th>
<th valign="top">Download Rate</th>
</tr>
<tr>
<td class="rowOne" valign="top" align="right">1.04</td>
<td class="rowOne" valign="top" align="right">05:29</td>
<td class="rowOne" valign="top" align="right">94.3%</td>
<td class="rowOne" valign="top" align="right">0.00%</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<h4>Link directories </h4>
<p>I tried an automated submission programme a while ago, but I’m yet to see a single visitor from any directory. </p>
<p><a href="http://dmoz.org">dmoz.org</a> is worth submitting to, but as it&#8217;s human edited it can take a while to get added. </p>
<table class="HistoryList" width="2">
<tbody>
<tr>
<th valign="top">Pages Per Visit</th>
<th valign="top">Time on Site</th>
<th valign="top">Bounce Rate</th>
<th valign="top">Download Rate</th>
</tr>
<tr>
<td class="rowOne" valign="top" align="right">0</td>
<td class="rowOne" valign="top" align="right">00:00</td>
<td class="rowOne" valign="top" align="right">n/a</td>
<td class="rowOne" valign="top" align="right">0.00%</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<h4>Blog Carnivals </h4>
<p>I&#8217;ve entered blog carnivals as well as hosted them, and the results have been a little mixed. Hosting brings in a decent amount of short term traffic, but I suspect it&#8217;s mainly people who submitted articles that visit. </p>
<p>It’s a good way of getting a few more readers for your blog, and be good for spreading your site around. </p>
<table class="HistoryList" width="2">
<tbody>
<tr>
<th valign="top">Pages Per Visit</th>
<th valign="top">Time on Site</th>
<th valign="top">Bounce Rate</th>
<th valign="top">Download Rate</th>
</tr>
<tr>
<td class="rowOne" valign="top" align="right">1.50</td>
<td class="rowOne" valign="top" align="right">00:21</td>
<td class="rowOne" valign="top" align="right">75.0%</td>
<td class="rowOne" valign="top" align="right">0.00%</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<h4>Game Buttons </h4>
<p>I tried these out in my <a href="http://www.sodaware.net/blog/2007/10/how-much-traffic-does-19.95-get-you-part-1/">$19.95 experiment</a> and absolutely hated them. I think they cheapened the look of the site, and most of the banners contained images I didn’t really want to see. The other problem is you have to make a lot of impressions to generate any decent amount of traffic. </p>
<table class="HistoryList" width="2">
<tbody>
<tr>
<th valign="top">Pages Per Visit</th>
<th valign="top">Time on Site</th>
<th valign="top">Bounce Rate</th>
<th valign="top">Download Rate</th>
</tr>
<tr>
<td class="rowOne" valign="top" align="right">2.84</td>
<td class="rowOne" valign="top" align="right">00:59</td>
<td class="rowOne" valign="top" align="right">41.3%</td>
<td class="rowOne" valign="top" align="right">13.99%</td>
</tr>
<tr>
<td class="rowTwo" valign="top" align="right">1.67</td>
<td class="rowTwo" valign="top" align="right">00:21</td>
<td class="rowTwo" valign="top" align="right">71.4%</td>
<td class="rowTwo" valign="top" align="right">0.00%</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<h4>Free Developer Resources </h4>
<p>The &quot;<a href="http://www.sodaware.net/dev/">For Developers</a>&quot; section is where I put articles, source code and tools for other developers to use. It didn&#8217;t bring in much traffic to begin with, but posting about some of the resources on forums helped. </p>
<table class="HistoryList" width="2">
<tbody>
<tr>
<th valign="top">Pages Per Visit</th>
<th valign="top">Time on Site</th>
<th valign="top">Bounce Rate</th>
<th valign="top">Download Rate</th>
</tr>
<tr>
<td class="rowOne" valign="top" align="right">2.43</td>
<td class="rowOne" valign="top" align="right">01:39</td>
<td class="rowOne" valign="top" align="right">73.5%</td>
<td class="rowOne" valign="top" align="right">0.86%</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<h4>WikiPedia </h4>
<p>This is a five minute method that works well, but if done incorrectly you’ll end up looking like a spammer, so use it wisely. </p>
<p>Find an article on WikiPedia that relates to something on your site, and add a link to it in the &quot;External Links&quot; section of the page. Remember that WikiPedia monitors links that are added, so if you don&#8217;t add value to the topic you&#8217;ll find your link nuked (and you could also be banned). For example, my <a href="http://www.sodaware.net/blog/2006/11/interview-with-hanako-games/">interview with Hanako Games</a> is on the <a href="http://en.wikipedia.org/wiki/Hanako_Games">Hanako Games WikiPedia page</a>.</p>
<p>As with text link ads, the real benefit here is getting links and increasing your search engine ranking.</p>
<table class="HistoryList" width="2">
<tbody>
<tr>
<th valign="top">Pages Per Visit</th>
<th valign="top">Time on Site</th>
<th valign="top">Bounce Rate</th>
<th valign="top">Download Rate</th>
</tr>
<tr>
<td class="rowOne" valign="top" align="right">1.31</td>
<td class="rowOne" valign="top" align="right">01:03</td>
<td class="rowOne" valign="top" align="right">76.9%</td>
<td class="rowOne" valign="top" align="right">0.00%</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<h4>Traffic Exchanges </h4>
<p>This one is a little hit and miss, although it&#8217;s not as bad as some of the other methods. You add your link to a directory, and its position is dependent on how many other sites you visit. For example, visiting 30 sites may put you on the first page, which will get you more visitors. </p>
<p>The downside is that most people are only visiting your page to increase their own rank, but the traffic isn&#8217;t as bad as I expected. </p>
<table class="HistoryList" width="2">
<tbody>
<tr>
<th valign="top">Pages Per Visit</th>
<th valign="top">Time on Site</th>
<th valign="top">Bounce Rate</th>
<th valign="top">Download Rate</th>
</tr>
<tr>
<td class="rowOne" valign="top" align="right">1.42</td>
<td class="rowOne" valign="top" align="right">00:27</p>
</td>
<td class="rowOne" valign="top" align="right">81.4%</td>
<td class="rowOne" valign="top" align="right">1.53%</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<h4>Conclusion </h4>
<p>This is just a small sample of the various method of traffic generation techniques out there. If you’re trying to increase your site’s traffic, just remember to measure <strong>what</strong> your visitors are doing, not just <strong>how many</strong> you’re getting. Sure, it’s nice to see big numbers in your hit counter, but that means nothing if they don’t stay and buy from you. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.sodaware.net/blog/2009/03/getting-traffic-that-works/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tweaking the Sociable plugin</title>
		<link>http://www.sodaware.net/blog/2006/12/tweaking-the-sociable-plugin/</link>
		<comments>http://www.sodaware.net/blog/2006/12/tweaking-the-sociable-plugin/#comments</comments>
		<pubDate>Wed, 06 Dec 2006 10:11:00 +0000</pubDate>
		<dc:creator>Phil Newton</dc:creator>
				<category><![CDATA[Useful Tools]]></category>
		<category><![CDATA[Web Programming]]></category>
<category>useful tools</category><category>web programming</category>
		<guid isPermaLink="false">http://www.sodaware.net/blog/1970/01/tweaking-the-sociable-plugin/</guid>
		<description><![CDATA[I use the &#8220;Sociable&#8221; WordPress plugin to add social bookmarking links to the bottom of every post. There are a tonne of social bookmarking sites around, so I&#8217;ve kept things light to avoid the icon overload that can be seen on some blogs. I&#8217;ve made two updates over the last few days, one was adding [...]]]></description>
			<content:encoded><![CDATA[<p>I use the &#8220;<a href="http://push.cx/sociable">Sociable</a>&#8221; WordPress plugin to add social bookmarking links to the bottom of every post. There are a tonne of social bookmarking sites around, so I&#8217;ve kept things light to avoid the icon overload that can be seen on some blogs. I&#8217;ve made two updates over the last few days, one was adding <a title="devbump - cool game development stuff" href="http://www.devbump.com/">devbump</a> and the other was adding CSS image rollovers. </p>
<p>If you&#8217;re not sure about adding a few bookmarking buttons, you might want to check out the <a title="&quot;Sociable WordPress Plugin Brings Good Blog Traffic&quot;" href="http://webloghits.com/index.php/tips-and-techniques/sociable-wordpress-plugin-brings-good-blog-traffic/">traffic increase</a> at webloghits.com. That&#8217;s the kind of increase that is worth a few minutes of your time.</p>
<h3>Adding devbump.com</h3>
<p>There are a lot of digg style sites out there, but <a title="devbump - cool game development stuff" href="http://www.devbump.com/">devbump</a> caught my eye because it&#8217;s aimed squarely at game developers. Submitting your posts to places that are actually interested in the subject is always more useful, so devbump was a natural choice.&nbsp;</p>
<p>To add new sites to sociable, open up &#8220;sociable.php&#8221; and find the following line:</p>
<div class="codeWindow"><code>$sociable_builtin_known_sites = Array(</code></div>
<p>Once you&#8217;d found it, add the following after the &#8220;Del.irio.us&#8221; definition:</p>
<div class="codeWindow"><code>'devbump' =&gt; Array(<br />&nbsp; &nbsp; 'favicon' =&gt; 'devbump.png',<br />&nbsp; &nbsp; 'url' =&gt; 'http://devbump.com/submit.php?url=PERMALINK&amp;title=TITLE',<br />), </code></div>
<p>You&#8217;ll have rebuild the list of available sites by logging in to your blog, and selecting &#8220;Restore Built-in Defaults&#8221; from the sociable page (Options -&gt; Sociable). &#8220;devbump&#8221; should now be available to use on your site.</p>
<h3>Adding CSS image rollovers</h3>
<p>Now for the fun part. I used some code from&nbsp;Present Tense (<a href="http://dyers.org/blog/archives/2006/03/10/hacking-the-sociable-wordpress-plugin-for-image-rollovers/">Hacking the Sociable WordPress Plugin for Image Rollovers</a>), but it didn&#8217;t quite hit the spot so&nbsp;I did quite a lot of tweaking to get things looking nice. I&#8217;ve stuck it all in a zip at the end of this post. </p>
<p>Before you skip ahead to the freebies, there are a few important things to note.</p>
<p><strong>Tweaked &#8220;sociable.php&#8221;</strong> &#8212; I made two main tweaks to sociable.php. One was because some sites have &#8220;.&#8221; characters in their name, so it wouldn&#8217;t work with CSS class names. The other tweak was to change the way that the HTML was generated. Instead of standard images, it&#8217;s a list.</p>
<p><strong>Internet Explorer</strong> &#8212; Naturally IE messes things up a little bit, so you might have to experiment a little bit to get things looking the way you want them. Removing the CSS tooltip may help.</p>
<p><strong>16 x 16 Images</strong> &#8212; I like to have text next to my images, so each one has a different width. If you open &#8220;sociable.css&#8221;, you&#8217;ll see I&#8217;ve defined each networking site with a pair of definitions:</p>
<div class="codeWindow"><code>.sociable li.delicious a { width: 69px; background-image: url(images/delicious-hover.gif)}<br />.sociable li.delicious a:hover { background-position: 0 -16px;}</code></div>
<p>If you&#8217;re using 16 x 16 images, you can move the width statement into the &#8220;.sociable li&#8221; definition.</p>
<p><strong>Adding New Rollovers</strong></p>
<p>To add a new image, you need to add a class with the name of the site, and then set its image. It&#8217;s really just a matter of copying an existing class definition and changing the names. I&#8217;ll add new sites as time goes on, but at the moment I&#8217;ve only defined: del.icio.us, digg, devbump, Reddit and Furl.</p>
<h3>Free Stuff!</h3>
<p>Everyone likes free stuff, so I&#8217;ve zipped up all of the files I modified for your downloading pleasure. There are still a few bugs to iron out, so I&#8217;ll be modifying this post as and when things change.</p>
<p>To install the changes, just copy the files into your &#8220;wp-content/plugins/sociable&#8221; directory &#8212; you&#8217;ll need to have sociable already installed (<a href="http://push.cx/sociable">download here</a>).</p>
<div class="latestRelease">
<h4>Download Latest Release (1.0)</h4>
<p><img src="http://www.sodaware.net/blog/wp-content/themes/sodaware/images/greenArrow.gif" align="left"/>&nbsp;<a title="Download zip distribution" href="http://downloads.sodaware.net/tools/misc/sociable-tweak/sociable-tweak-1.0.zip">sociable-tweak-1.0.zip</a> (11.0KB)</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.sodaware.net/blog/2006/12/tweaking-the-sociable-plugin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Changing the header image every month</title>
		<link>http://www.sodaware.net/blog/2006/06/changing-the-header-image-every-month/</link>
		<comments>http://www.sodaware.net/blog/2006/06/changing-the-header-image-every-month/#comments</comments>
		<pubDate>Mon, 26 Jun 2006 09:13:00 +0000</pubDate>
		<dc:creator>Phil Newton</dc:creator>
				<category><![CDATA[Web Programming]]></category>
<category>useful tips</category><category>web programming</category>
		<guid isPermaLink="false">http://www.sodaware.net/blog/2006/06/changing-the-header-image-every-month/</guid>
		<description><![CDATA[Find out how to change your blog's header image every month by using a little bit of server-side trickery.]]></description>
			<content:encoded><![CDATA[<p>One of the things I did with the old design of this blog was to change the header image every month, and it’s something I use on my other website (<a href="http://www.philnewton.net/">philnewton.net</a>). I could have done this by uploading a new image every month, but being a programmer I decided to do it a different way.</p>
<h3>Using mod_rewrite to change the image</h3>
<p>If you’re using an Apache server, you can use something called mod_rewrite to rewrite URLs and do other nifty tricks. I used this to change the image the user saw every month. </p>
<p>I keep all the images in my images folder, and name them according to the month I want them to show. For example, the March image will be called “03-header.jpg”, and the December image “12-header.jpg”. I then use a little mod_rewrite trickery to redirect requests to the correct location. The code looks something like the following:</p>
<div class="codeWindow"><code><font color="purple">&lt;ifmodule</font> <font color="navy">mod_rewrite.c</font><font color="purple">&gt;</font><br />
&nbsp; <font color="blue">RewriteEngine</font> <font color="Navy">on</font><br />
&nbsp; <font color="blue">RewriteRule</font> <font color="Navy">^images/header.jpg$ /images/%{TIME_MON}-header.jpg</font><br />
<font color="purple">&lt;/ifmodule&gt;</font><br />
</code></div>
<p>This code is placed in a “.htaccess” file that resides in the html root folder on the server. This is the folder where all the other folders and files are kept. I put it here instead of in the blog folder because WordPress has its own “.htaccess” file which sometimes changed and removed my tweaks.</p>
<h3>Using it in the template</h3>
<p>You don’t have to make any changes to your html templates, just make sure you link to the image as “header.jpg” and not something like “12-header.jpg”. The server will take care of all the redirection all on its own, and it won’t disturb anyone’s browsing experience.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sodaware.net/blog/2006/06/changing-the-header-image-every-month/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Turn hotlinks into advertising &#8211; part II</title>
		<link>http://www.sodaware.net/blog/2005/11/turn-hotlinks-into-advertising-part-ii/</link>
		<comments>http://www.sodaware.net/blog/2005/11/turn-hotlinks-into-advertising-part-ii/#comments</comments>
		<pubDate>Thu, 03 Nov 2005 14:32:04 +0000</pubDate>
		<dc:creator>Phil Newton</dc:creator>
				<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Web Programming]]></category>
<category>marketing</category><category>web programming</category>
		<guid isPermaLink="false">http://www.sodaware.net/blog/2005/11/turn-hotlinks-into-advertising-part-ii/</guid>
		<description><![CDATA[In Monday’s entry, I explained some simple techniques to turn a drain on resources into a free* method of advertising. In today’s entry, I’ll be going into more depth about how to use a little PHP to dynamically generate your adverts. Why would you want to do this? For starters, you can modify the image [...]]]></description>
			<content:encoded><![CDATA[<p>In Monday’s entry, I explained some simple techniques to turn a drain on resources into a free<a href="#free">*</a> method of advertising.</p>
<p>In today’s entry, I’ll be going into more depth about how to use a little PHP to dynamically generate your adverts. Why would you want to do this? For starters, you can modify the image to include a discount code, which will help track where the orders came from. Who knows, you could even strike up a deal with the site owner to display ads on their site should it bring you a lot of customers.</p>
<p>Please note that most of the code will just be fragments, and I’m not tying it down to one implementation. It’s quite likely that I’ll modify this method over time and post updates in the future. There’s also the small question of “is it worth it”. Again, I’ll keep you updated.</p>
<p><strong>First things first</strong></p>
<p>First, we’ll create a database table to store several things:</p>
<ul>
<li>The full referring URL – The unique identifier. </li>
<li>The number of hits to this file.</li>
<li>The discount code, either for this URL or for the domain.</li>
</ul>
<p>Nothing particularly complex there, although you may wish to tweak it to allow for different advert styles.</p>
<p><strong>Basic PHP</strong></p>
<p>Our file, which I’ll call “image-script.php” needs to carry out several functions:</p>
<ul>
<li>Check to see if we’ve had a referrer from this site before.
<ul>
<li>If we have, log the hit and get the discount code</li>
<li>If we haven’t, create an entry and generate a discount code.</li>
</ul>
</li>
<li>Create and output an image</li>
</ul>
<p>Lets look at some sample code</p>
<p>[php]<br />
// Get the referrer and look for this site in the database<br />
// Please note: HTTP_REFERER is not a typo<br />
$referrer_url = $_SERVER['HTTP_REFERER'];<br />
$siteData = find_site($referrer_url);</p>
<p>if ($siteData) {<br />
	// Seen the site before, so grab discount code<br />
	add_site_hit($referrer_url);<br />
	$discountCode = $siteData['discount_code'];<br />
} else {<br />
	// A new site, so create a discount code and add it to the db<br />
	$discountCode = create_discount_code($refferer_url);<br />
	add_new_site($referrer_url, $discountCode);<br />
}</p>
<p>// Image Creation code<br />
[/php]</p>
<div class="codeCaption"><em>Sample code to grab the referring URL and find the site in the database.</em></div>
<p><code>create_discount_code</code> would need to be tailored to each particular solution, and I&#8217;ve deliberately left out the database code to save space.</p>
<p><strong>Image Creation Code</strong></p>
<p>The final bit of code is creating our image, complete with embedded discount code. You’ll need the GD engine installed to use these functions. More information about that is available in the <a href="http://uk.php.net/manual/en/ref.image.php">image section</a> of the PHP manual. </p>
<p>The code itself is relatively simple. We open an advert image, and then add the discount code to it before outputting it to the browser. </p>
<p>[php]// Image Creation code</p>
<p>// Setup where we want the code to appear<br />
$codeX = 5;<br />
$codeY = 5;</p>
<p>// Load advert image.<br />
$advertImage = imagecreatefrompng(&#8216;background-image.png&#8217;);</p>
<p>// Draw discount code<br />
$textColour = imagecolorallocate($advertImage, 255, 255, 255);<br />
imagestring($advertImage, 3, $codeX, $codeY, $discountCode, $textColour );</p>
<p>// Output our image and cleanup<br />
header(&#8216;content-type: image/png&#8217;);<br />
imagepng($advertImage);<br />
imagedestroy($advertImage);[/php]</p>
<div class="codeCaption"><em>Code to create and output our image to the browser.</em></div>
<p>In case you’re wondering if creating an image works, here’s one I made earlier (using slightly modified code for the shadow and position). </p>
<p><img src="http://www.sodaware.net/blog/wp-uploads/image-0001.png" alt="Image created using dynamic script." /></p>
<p>One of the advantages of using dynamically generated images is that you can modify the code to perform a split test if you wish to check ad wordings or appearances. That falls outside the scope of this article, but I may write about it in future.</p>
<p><strong>All done</strong></p>
<p>So there we have it – how to change an unpleasant situation into something that can benefit your business.</p>
<p>The code is still a little rough around the edges, so I’ll be cleaning it up to make it ready for release. My goal is to create something that is simple to install and use, which will take some work.</p>
<p>In case anybody&#8217;s wondering, I&#8217;m using &#8220;<a href="http://blog.igeek.info/still-fresh/category/wp-plugins/igsyntax-hiliter/">iG::Syntax Hiliter</a>&#8221; to produce the highlighted code snippets.</p>
<p>&#8212;</p>
<p><a name="free">*</a> Not including bandwidth costs, but seeing as your bandwidth was already being stolen at least now you’re getting some value out of it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sodaware.net/blog/2005/11/turn-hotlinks-into-advertising-part-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Turn hotlinks into advertising</title>
		<link>http://www.sodaware.net/blog/2005/10/turn-hotlinks-into-advertising/</link>
		<comments>http://www.sodaware.net/blog/2005/10/turn-hotlinks-into-advertising/#comments</comments>
		<pubDate>Mon, 31 Oct 2005 17:19:52 +0000</pubDate>
		<dc:creator>Phil Newton</dc:creator>
				<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Web Programming]]></category>
<category>marketing</category><category>web programming</category>
		<guid isPermaLink="false">http://www.sodaware.net/blog/?p=10</guid>
		<description><![CDATA[If you own a website, then it’s likely you’ve had images “hotlinked” or “leeched”. Not only is this annoying and rude, but it also costs bandwidth. The usual response is to replace the linked image with something suitably amusing or offensive, but in today&#8217;s post I&#8217;m going to look at the alternatives. A recent post [...]]]></description>
			<content:encoded><![CDATA[<p>If you own a website, then it’s likely you’ve had images “hotlinked” or “leeched”. Not only is this annoying and rude, but it also costs bandwidth. The usual response is to replace the linked image with something suitably amusing or offensive, but in today&#8217;s post I&#8217;m going to look at the alternatives.</p>
<p>A recent post in the private <a href="http://www.asp-shareware.org/"><acronym title="Association of Shareware Professionals">ASP</acronym></a> newsgroups by Bret Reece of <a href="http://www.fiveoclocksoftware.com ">Five O&#8217;clock Software</a> interested me. After some tweaking, the hotlinked image became “free” advertising. I thought about this and realised that with a bit of coding wizadry, a more flexible method could be developed.</p>
<p>There are several methods of preventing hotlinking, ranging in difficulty.</p>
<p><strong>The Easy method</strong></p>
<p>Replace the linked image file with your “special” image. We’ll assume that it’s a pleasant advert for your software or company, rather than something that will blind them. Simple and easy, although you will need to replace references to the image on your own site, which can be time consuming.</p>
<p><strong>The Advanced Method</strong></p>
<p>If you’re using an Apache web server and have access to mod_rewrite, you can automatically redirect offsite referrers to your special image. The code below, placed in a “.htaccess” file will do the trick. If you’re not sure how to do this, I recommend <a href="http://www.freewebmasterhelp.com/tutorials/htaccess/">this tutorial at freewebmasterhelp.com</a>. </p>
<p>The following code will redirect all external referrers that link to png, gif of jpg files to &#8220;www.your-domain.com/image.gif&#8221;. You can add more &#8220;safe&#8221; urls to the list if required.</p>
<div class="codeWindow"><code><font color="purple">&lt;ifmodule</font> <font color="Navy">mod_rewrite.c</font><font color="purple">&gt;</font><br />
&nbsp; <font color="blue">RewriteEngine</font> <font color="Navy">on</font></p>
<p>&nbsp; <font color="green"># Make sure referrer is not blank or from your site.</font><br />
&nbsp; <font color="blue">RewriteCond</font> <font color="Navy">%{HTTP_REFERER} !^$</font><br />
&nbsp; <font color="blue">RewriteCond</font> <font color="Navy">%{HTTP_REFERER} !^http://(www.)?your-domain.com/.*$</font> <font color="red">[NC]</font></p>
<p>&nbsp; <font color="green"># Redirect the offsite image links to your anti-hotlink image</font><br />
&nbsp; <font color="blue">RewriteRule</font><font color="Navy"> .(gif|jpg|png)$ http://www.your-domain.com/image.gif</font> <font color="red">[R,L]</font><br />
<font color="purple">&lt;/ifmodule&gt;</font><br />
</code></div>
<div class="codeCaption"><em>Simple mod_rewrite code to redirect hot-linked images to &#8220;image.gif&#8221; on your site.</em></div>
<p><strong>The Extra Special Method</strong></p>
<p>If you want to get really technical, you can combine PHP with your .htaccess file to dynamically generate images for each site. Instead of redirecting to “image.gif”, you would redirect to “your-image-script.php”. This script would then dynamically generate an image using PHP’s imaging functions.</p>
<p>In Thursday’s entry, I’ll cover the PHP side of this method in depth. This will include using a MySQL database to track referrers, as well as using discount coupon codes to track where the orders come from.</p>
<div class="RelatedArticles"><strong>Related Articles:</strong>
<ul>
<li><a href="http://www.sodaware.net/blog/2005/11/turn-hotlinks-into-advertising-part-ii/">Turn hotlinks into advertising &#8211; part II</a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.sodaware.net/blog/2005/10/turn-hotlinks-into-advertising/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)
Database Caching 1/28 queries in 0.015 seconds using disk
Object Caching 454/500 objects using disk

Served from: www.sodaware.net @ 2012-02-09 17:57:30 -->
