<?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>Flintston.es &#187; Tutorial</title>
	<atom:link href="http://flintston.es/category/tutorial/feed/" rel="self" type="application/rss+xml" />
	<link>http://flintston.es</link>
	<description>Affiliate Multivitamins</description>
	<lastBuildDate>Thu, 26 May 2011 22:41:23 +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>Rogers Canada MMS APN settings for Unlocked Phones</title>
		<link>http://flintston.es/nerd-stuff/rogers-canada-mms-apn-settings-for-unlocked-phones/</link>
		<comments>http://flintston.es/nerd-stuff/rogers-canada-mms-apn-settings-for-unlocked-phones/#comments</comments>
		<pubDate>Thu, 26 May 2011 22:41:23 +0000</pubDate>
		<dc:creator>Bamm</dc:creator>
				<category><![CDATA[Nerd Stuff]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[APN]]></category>
		<category><![CDATA[Canada]]></category>
		<category><![CDATA[Cell]]></category>
		<category><![CDATA[MMS]]></category>
		<category><![CDATA[Rogers]]></category>

		<guid isPermaLink="false">http://flintston.es/?p=406</guid>
		<description><![CDATA[I had to setup my phone today for MMS, and it took forever to find the proper settings online. Just go into settings, wireless, apn settings, and add a new APN for rogers MMS. Hopefully someone else up here in Canuckistan can use this; Name: Rogers MMS APN: media.com Username: media Password: mda01 Server: 172.25.0.107 [...]]]></description>
			<content:encoded><![CDATA[<p>I had to setup my phone today for MMS, and it took forever to find the proper settings online. Just go into settings, wireless, apn settings, and add a new APN for rogers MMS.</p>
<p>Hopefully someone else up here in Canuckistan can use this;</p>
<blockquote><p>Name: Rogers MMS<br />
APN: media.com<br />
Username: media<br />
Password: mda01<br />
Server: 172.25.0.107<br />
MMSC: <a rel="nofollow" href="http://mms.gprs.rogers.com/" target="_blank">http://mms.gprs.rogers.com</a><br />
MMS Proxy: 10.128.1.69<br />
MMS Port: 80<br />
MCC :302 (should already be filled in)<br />
MNC: either 720 or 72 depending on your SIM card (should already be filled in)<br />
APN Type: mms</p></blockquote>
<p>Enjoy MMS!</p>
<img src="http://flintston.es/?ak_action=api_record_view&id=406&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://flintston.es/nerd-stuff/rogers-canada-mms-apn-settings-for-unlocked-phones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mass Deleting Posts By Date On WordPress</title>
		<link>http://flintston.es/nerd-stuff/mass-deleting-posts-by-date-on-wordpress/</link>
		<comments>http://flintston.es/nerd-stuff/mass-deleting-posts-by-date-on-wordpress/#comments</comments>
		<pubDate>Thu, 26 May 2011 21:01:13 +0000</pubDate>
		<dc:creator>Bamm</dc:creator>
				<category><![CDATA[Nerd Stuff]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://flintston.es/?p=402</guid>
		<description><![CDATA[Today I duplicated a site I have running in a certain niche. I needed to delete all the old posts from certain years, and couldn&#8217;t find a plugin to do this easily. So. I went into trusty old PHPMyAdmin and did it manually. Here&#8217;s what you need to do. 1. Login to phpmyadmin 2. Find [...]]]></description>
			<content:encoded><![CDATA[<p>Today I duplicated a site I have running in a certain niche. I needed to delete all the old posts from certain years, and couldn&#8217;t find a plugin to do this easily. So. I went into trusty old PHPMyAdmin and did it manually. Here&#8217;s what you need to do.</p>
<blockquote><p>1. Login to phpmyadmin</p>
<p>2. Find your wordpress database.</p>
<p>3. Go to the &#8216;wp_posts&#8217; table in the database.</p>
<p>4. Hit the &#8216;sql&#8217; tab in phpmyadmin, and use a variety of the following commands.</p>
<p><strong>To Delete Posts By Date:</strong></p>
<p>DELETE FROM `wp_posts` WHERE `post_date` like &#8216;%2008%&#8217;;</p>
<p><strong>To Delete Posts With Certain Content In The Body: </strong></p>
<p>DELETE FROM `wp_posts` WHERE `post_content` like &#8216;%test_content%&#8217;;</p>
<p><strong>To Delete Posts With Certain Content In The Title: </strong></p>
<p>DELETE FROM `wp_posts` WHERE `post_title` like &#8216;%test_content%&#8217;;</p></blockquote>
<p>Note that you will have to change the contents between the % and % in those sql statements to your own.</p>
<p>That&#8217;s it. Watch it delete your posts in just seconds, instead of hours and hours of work through the wordpress backend.</p>
<p>Hope this helps you out too.</p>
<img src="http://flintston.es/?ak_action=api_record_view&id=402&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://flintston.es/nerd-stuff/mass-deleting-posts-by-date-on-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problems Migrating Prosper202 Between Two Linux Hosts?</title>
		<link>http://flintston.es/nerd-stuff/problems-migrating-prosper202-between-two-linux-hosts/</link>
		<comments>http://flintston.es/nerd-stuff/problems-migrating-prosper202-between-two-linux-hosts/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 19:05:46 +0000</pubDate>
		<dc:creator>Bamm</dc:creator>
				<category><![CDATA[Nerd Stuff]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Dump Tables]]></category>
		<category><![CDATA[Memory Limits]]></category>
		<category><![CDATA[Migrate]]></category>
		<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[p202]]></category>
		<category><![CDATA[Prosper202]]></category>

		<guid isPermaLink="false">http://flintston.es/?p=396</guid>
		<description><![CDATA[Today I was faced with migrating my P202 installation from one host to another. As normal, I ran the mysqldump command on the old server to dump the database and scp&#8217;d it over to my new host &#8211; went to import and I got a bunch of errors like this; ERROR 1016 (HY000): Can&#8217;t open [...]]]></description>
			<content:encoded><![CDATA[<p>Today I was faced with migrating my P202 installation from one host to another. As normal, I ran the mysqldump command on the old server to dump the database and scp&#8217;d it over to my new host &#8211; went to import and I got a bunch of errors like this;</p>
<blockquote><p><strong><em>ERROR 1016 (HY000): Can&#8217;t open file: &#8216;./202_SITENAME/202_locations_block.frm&#8217; (errno: 24)<br />
ERROR 1016 (HY000): Can&#8217;t open file: &#8216;./202_SITENAME/202_locations_block.frm&#8217; (errno: 24)<br />
ERROR 23 (HY000): Out of resources when opening file &#8216;./202_SITENAME/202_locations_block#P#p413.MYD&#8217; (Errcode: 24)</em></strong></p></blockquote>
<p>WTF?</p>
<p>I have plenty of RAM, and resources on my new box so this was a little confusing. Turns out that you need to make a couple adjustments in order to re-import the database on Linux servers. Here&#8217;s what I did to make it import properly.</p>
<p>first, you have to edit the security limits for mysql on your NEW server, especially if you have a high number of connections to databases. This is done like this;</p>
<blockquote><p><strong># nano /etc/security/limits.conf </strong></p></blockquote>
<p>and add these lines to the bottom</p>
<blockquote><p><strong>mysql   soft    nofile  24000<br />
mysql   hard    nofile  32000</strong></p></blockquote>
<p>Then, you&#8217;re going to have to edit your my.cnf, which for me on Ubuntu is done like this;</p>
<blockquote><p><strong># nano /etc/mysql/my.cnf</strong></p></blockquote>
<p>and add this line in the tuning section</p>
<blockquote><p><strong>open_files_limit        = 20000</strong></p></blockquote>
<p>Now, go back to your original server, and re-dump the database like this;</p>
<blockquote><p><strong>mysqldump -C -i &#8211;single-transaction -u root -p DATABASENAME &gt;&gt;DATABASENAME.sql</strong></p></blockquote>
<p>Then, scp the file over to your new server like this;</p>
<blockquote><p><strong>scp DATABASENAME.SQL username@hostname.com:</strong></p></blockquote>
<p>Once the file has transferred, ssh over to your new host and issue the following commands (for Ubuntu, may be different on other Linux flavors)</p>
<blockquote><p><strong>/etc/init.d/mysql stop</strong></p>
<p><strong>/etc/init.d/mysql start</strong></p>
<p><strong>mysql -u root -p </strong></p>
<p><strong>&lt;entering password&gt;</strong></p></blockquote>
<p>then, once you are inside the MySQL command line you&#8217;re going to want to select your database like this</p>
<blockquote><p><strong>&gt; use DATABASENAME;</strong></p></blockquote>
<p>then, you&#8217;re going to want to import your database from the old server</p>
<blockquote><p><strong>&gt; source DATABASENAME.SQL; </strong></p></blockquote>
<p>wait a few seconds, you shouldn&#8217;t see any errors and then you&#8217;re done. You can exit the mysql command line now;</p>
<blockquote><p><strong>&gt; exit;</strong></p></blockquote>
<p>Now you should have a perfectly working P202 installation, on your new server migrated from an old one.</p>
<p>Incase you&#8217;re wondering, no I did not go remove these settings &#8211; figured higher limits were good anyway &#8211; if they cause a problem on my server I&#8217;ll update this post for y&#8217;all.</p>
<p>Hope this helps someone else as I had to do a couple hours of searching, and testing to get all this sorted out.</p>
<img src="http://flintston.es/?ak_action=api_record_view&id=396&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://flintston.es/nerd-stuff/problems-migrating-prosper202-between-two-linux-hosts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Creating Quick Scrapers Using Xpather, Snoopy &amp; PHP</title>
		<link>http://flintston.es/nerd-stuff/creating-quick-scrapers-using-xpather-snoopy-php/</link>
		<comments>http://flintston.es/nerd-stuff/creating-quick-scrapers-using-xpather-snoopy-php/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 08:43:00 +0000</pubDate>
		<dc:creator>Bamm</dc:creator>
				<category><![CDATA[Nerd Stuff]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Scraping]]></category>
		<category><![CDATA[Snoopy]]></category>
		<category><![CDATA[Xpather]]></category>

		<guid isPermaLink="false">http://flintston.es/?p=275</guid>
		<description><![CDATA[I’ve been working on a bunch of review sites, and because of this I’ve had to gather some data from websites – mostly stuff that’s not included in the data feeds that I’m using and wanted to compliment my information with some additional specifications for my users to check out items this coming holiday season, [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve been working on a bunch of review sites, and because of this I’ve had to gather some data from websites – mostly stuff that’s not included in the data feeds that I’m using and wanted to compliment my information with some additional specifications for my users to check out items this coming holiday season, with ease, and hopefully make them click happy for purchasing J</p>
<p>I started out reading a bunch of tutorials on using Curl and PHP to scrape and even built a little scraper that worked fucking awesome for the page I created it for, it had 21 regex’s, and used a bunch of curl lines to connect and grab the information I needed. I was so proud, so proud of this monstrosity. So, after testing it repeatedly on one page, I had it run through nearly 200 pages – guess what, I only got results from 2 pages because they were so different.</p>
<p>Fuck.</p>
<p>So, after spending about a day learning some regex’s, and testing out all this crazy stuff, it was pointless. I was on IRC venting my frustrations and <a href="http://datarecall.org" target="_blank">Datarecall</a> jumped in and told me about this awesome program called <a href="https://addons.mozilla.org/en-US/firefox/addon/1192" target="_blank">Xpather</a>. It’s a plugin for firefox that lets you just simply right click any element on the page, and view the full xpath for an item.</p>
<p><strong>I did learn that Firefox will automatically inject TBODY tags, so you may have to remove those for your scraper to work. Thought I should mention this incase you run into troubles like I did.</strong></p>
<p>Anyway, so yeah, with this plugin and Firefox I was now armed with the tools needed to create a new scraper, that actually grabbed all the data from the pages I needed.</p>
<p>I ended up using the <a href="http://sourceforge.net/projects/snoopy/" target="_blank">Snoopy</a> class from sourceforge to make the curl connections nice and easy, and simplify a lot of the base coding so I didn’t have to do it myself. If I had more time, maybe, but for now it’s quicker using something pre built and does the job. Remember, we’re trying to save time now and in the future right?</p>
<p>Anyway, so after grabbing snoopy and making sure it connected to the site I wanted, I created some basic code to get me started;</p>
<p>I opened a file called <strong>snooper.php</strong> and added the following to it;</p>
<blockquote><p>&lt;?php<br />
error_reporting(E_ERROR);// | E_WARNING | E_PARSE);<br />
include (&#8216;Snoopy.class.php&#8217;);<br />
function convert_smart_quotes($string)</p>
<p>{<br />
$search = array(chr(194),chr(146),chr(147),chr(148),chr(151),chr(174),&#8221;  &#8220;);<br />
$replace = array(&#8220;&#8221;,&#8221;&#8216;&#8221;,&#8217;&#8221;&#8216;,&#8217;&#8221;&#8216;,&#8217;-',&#8217; &#8216;,&#8217; &#8216;);<br />
return str_replace($search, $replace, $string);<br />
}</p></blockquote>
<p>What this does is sets up the error reporting (when dealing with scraping, you might see a lot of errors, this tones it down a bit for us. You can always comment it out if you want to see all the errors for debugging or troubleshooting purposes).</p>
<p>Following the error reporting, we include the snoopy class so that it sets up the connection to our website that we’re going to scrape.</p>
<p>Now, the next lines are optional, but I found with some funky characters in my output they really helped. That’s what the Convert_Smart_Quotes function does, it will go ahead and take any fancy characters, double spaces, or whatever you throw at it and convert them to whatever proper character you want. You might not need this, or want to edit it, but I found it nearly invaluable to getting nice clean data at the end.</p>
<p>Next we’re going to want to add a few lines to load all our urls from a text file.</p>
<blockquote><p>$lines = file(&#8216;urls.list&#8217;);</p>
<p>foreach ($lines as $line_num =&gt; $line)</p>
<p>{</p></blockquote>
<p>If you&#8217;re quick, you&#8217;ll notice that we&#8217;re missing a closing bracket, that&#8217;s fine we&#8217;ll add it later.</p>
<p>What this does is pretty simple, it’s going to look for a file called “urls.list” in the same directory as the script, and for each line of the file it will run your scraper. This is where you’d put your list of urls in the format that looks like this.</p>
<blockquote><p>url1<br />
url2<br />
url3<br />
etc</p></blockquote>
<p>So, if you want to test you can just put one or two urls in here, and then populate it later it’s really up to you, but it’s nicer to have this part of the overall scraper already done for you. I’m not going to tell you where or how to get your URL list, gotta leave some things up to you right?</p>
<p>Now, between our foreach loop we’re going to want to add some more code, this is the start of our scraper, and the connections it makes;</p>
<blockquote><p>unset($snooper);<br />
unset($output);<br />
$snooper = new Snoopy();</p></blockquote>
<p>What this does is unsets the snooper variable each time it runs through the foreach loop on our urls, this is important so we don’t get doubled up information in our output later on. The same thing for the output variable here too and why we’re unsetting it too.  The next line sets up our snooper with the class we downloaded from sourceforge, no fuss no muss.</p>
<p>Now we’re getting somewhere. We have a script that’s going to turn off error reporting, load up the snooper class, loop through a list of urls, creating a snooper connection for each url.</p>
<p>Now we need to get some data, this is where the xpather plugin for firefox comes in handy. Go to one of the pages you want to scrape, and select an element on the page. For our example, lets say there’s a table with two rows and we want to grab the information from each one. We might add something like this following the code we added above.</p>
<blockquote><p>if ($snooper-&gt;fetch($line)) {</p>
<p>$dom = new DomDocument();<br />
@$dom-&gt;loadHTML($snooper-&gt;results);<br />
$x = new DomXPath($dom);</p>
<p>foreach ($nodes = $x-&gt;query(&#8220;//td[@class='tablerow1']&#8220;) as $node) {<br />
$row1 = convert_smart_quotes(str_replace(array(&#8220;\n&#8221;, &#8220;\r&#8221;, &#8220;\t&#8221;), &#8221;,$node-&gt;nodeValue)) . &#8220;&#8221;;<br />
$output['row1'][] = $row1;<br />
}<br />
foreach ($nodes = $x-&gt;query(&#8220;//td[@class='tablerow2']&#8220;) as $node ){<br />
$row2 = convert_smart_quotes(str_replace(array(&#8220;\n&#8221;, &#8220;\r&#8221;, &#8220;\t&#8221;), &#8221;,$node-&gt;nodeValue)) . &#8220;&#8221;;<br />
$output['row2info'][] = $row2;<br />
}</p></blockquote>
<p>So, what this does for us, is checks the source of the items in the url list, for a table with a class of ‘tablerow1’ and ‘tablerow2’, obviously you’ll have to change that for what’s specific to your case.</p>
<p>This will give you the results of everything from row1, and row2 on the page. Now you need to display it. So, we’ll add something like this after this new code</p>
<blockquote><p>$display .= trim(str_replace(array(&#8220;\n&#8221;, &#8220;\r&#8221;, &#8220;\t&#8221;), &#8221;, &#8220;&lt;h2&gt;Row 2 Info&lt;/h2&gt;&lt;ul&gt;&#8221;));<br />
foreach($output['row2info'] as $k =&gt; $v) {<br />
$display .= &#8220;&lt;li&gt;&#8221; . str_replace(array(&#8220;\n&#8221;, &#8220;\r&#8221;, &#8220;\t&#8221;), &#8221;, trim($output['row1'][$k]) . trim($v)) . &#8220;&lt;/li&gt;&#8221;;<br />
}<br />
$display .= str_replace(array(&#8220;\n&#8221;, &#8220;\r&#8221;, &#8220;\t&#8221;), &#8221;, trim(&#8220;&lt;/ul&gt;&#8221;));<br />
$display .= &#8220;\n&#8221;;<br />
}</p></blockquote>
<p>What this does, is gives you a heading with ROW2, and then an un-ordered list with each item in row 2 displayed for you, with ROW1 as the heading for each.</p>
<p>You can change how it displays entirely, this just happened to suit the particular need I had for it, which was to grab a table with many rows of specifications followed by the specification detail.</p>
<p>After this, you just have to add the following lines and you should be good to go.</p>
<blockquote><p>print($display);</p>
<p>?&gt;</p></blockquote>
<p>You can <a href="/wp-content/uploads/scraper4.php.txt" target="_blank">download the full script here</a> if you don’t want to paste all this crazy stuff into a file, and just upload it along with <a href="http://sourceforge.net/projects/snoopy/" target="_blank">Snoopy</a> to your server and start playing around with it. Remember you’ll have to create a file called<strong> urls.list</strong> to work with, and modify the xpath of the items you’re trying to grab using <a href="https://addons.mozilla.org/en-US/firefox/addon/1192" target="_blank">Xpather</a>.</p>
<p>Hope this helps somebody else with scraping.</p>
<img src="http://flintston.es/?ak_action=api_record_view&id=275&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://flintston.es/nerd-stuff/creating-quick-scrapers-using-xpather-snoopy-php/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Free GUI For Link Manager. Easy Affiliate Link Management.</title>
		<link>http://flintston.es/tutorial/free-gui-for-link-manager-easy-affiliate-link-management/</link>
		<comments>http://flintston.es/tutorial/free-gui-for-link-manager-easy-affiliate-link-management/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 04:31:54 +0000</pubDate>
		<dc:creator>Bamm</dc:creator>
				<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://flintston.es/?p=239</guid>
		<description><![CDATA[The other day you may have read my post about creating a tool to easily replace all our affiliate links across multiple sites with one easy to use database. While this program does rock your socks off, it didn’t have a GUI so it was a little more difficult for people to use. But that’s [...]]]></description>
			<content:encoded><![CDATA[<p>The other day you may have read my post about <a href="http://flintston.es/nerd-stuff/free-script-redundant-automatic-link-updating-across-your-sites/">creating a tool to easily replace all our affiliate links</a> across multiple sites with one easy to use database. While this program does rock your socks off, it didn’t have a GUI so it was a little more difficult for people to use.</p>
<p>But that’s okay.</p>
<div id="attachment_240" class="wp-caption aligncenter" style="width: 560px"><img class="size-full wp-image-240" title="Main Link Manager Window" src="http://flintston.es/wp-content/uploads/2009/10/main.png" alt="Link Manager Window" width="550" height="216" /><p class="wp-caption-text">Link Manager Window</p></div>
<p>I’ve created a backend for the application that works using <a href="http://www.flexigrid.info/">Flexigrid</a> and <a href="http://jquery.com/">Jquery</a> to provide a super easy way to update your database from a backend, and flip out your links instantly.</p>
<p>This tool is great if you don’t have P202 or want to run something of that nature for smaller campaigns, or for links you don’t want in P202 for whatever reason.</p>
<p>It suits most of my needs just fine, although one day I would like to add some click tracking to it, and maybe even some geoip stuff, but for now it’s pretty great in addition to P202 and Open-X.</p>
<h3>what can it do//</h3>
<p>This application will let you do a few things. As explained in the previous article, you can go through and add the links script to any of your sites, and then call any link you want from database making it super easy to replace links across all sites. This interface will let you do a bit more;</p>
<p>You can add new records from the interface, for any network or link you want to add.</p>
<div id="attachment_241" class="wp-caption aligncenter" style="width: 560px"><img class="size-full wp-image-241" title="Create a new entry" src="http://flintston.es/wp-content/uploads/2009/10/new.png" alt="Create a new entry" width="550" height="216" /><p class="wp-caption-text">Create a new entry</p></div>
<p>You can also edit, or save as a new copy on all items.</p>
<div id="attachment_243" class="wp-caption aligncenter" style="width: 560px"><img class="size-full wp-image-243" title="Edit Entry" src="http://flintston.es/wp-content/uploads/2009/10/edit.png" alt="Editing or Copying an entry" width="550" height="216" /><p class="wp-caption-text">Editing or Copying an entry</p></div>
<p>So for example say you had an offer that was the same but you just needed to switch out subids for finer tracking, you can just save your existing entry as a copy and edit the link as required. Pretty easy eh?</p>
<h3>notes about the app//</h3>
<ul>
<li>You can only edit one row at a time, if you have two selected the edit window will not work.</li>
<li>There’s not really any validation on the fields, but there is injection protection.</li>
</ul>
<h3>how to install//</h3>
<ol>
<li>Follow the <a href="http://flintston.es/nerd-stuff/free-script-redundant-automatic-link-updating-across-your-sites/">previous tutorial</a> to get the link manager working first.</li>
<li>Download the <a href="/wp-content/uploads/linkman-gui.zip">Affiliate Link Manager GUI</a> zip file</li>
<li>Unzip it.</li>
<li>Open up worker.php and change your database configuration lines to the one you setup earlier in the link manager how-to.</li>
<li>Open up opendb.php and change the same database configuration options.</li>
<li>Upload all files to your web server and hit it from the web like http://yourdomain.com/linkman/</li>
</ol>
<h3>security considerations//</h3>
<ul>
<li>You can run this over SSL if you want</li>
<li>If you’re running apache, setup <a href="http://tools.dynamicdrive.com/password/">htaccess protection</a></li>
<li>If you’re running lighttpd, setup <a href="http://www.cyberciti.biz/tips/lighttpd-setup-a-password-protected-directory-directories.html">password authentication</a></li>
<li>If you’re running nginx, <a href="http://forums.vpslink.com/howtos/7661-password-protect-nginx.html">protect yo directories</a>.</li>
<li>If you&#8217;re running roxen, I don&#8217;t care about you.</li>
</ul>
<p>So there you have it. A nice little way to manage your affiliate links throughout your sites. I’m already using it across a bunch of them to update some of the static links I have, or bought footer links and it’s working out great. Super fast and easy way to change all my links from one interface, and have everything default to a relevant niche all the way down.</p>
<p>Let me know what you think in the comments if you decide to test it out, if you have any features you want added let me know and maybe I’ll add them.</p>
<img src="http://flintston.es/?ak_action=api_record_view&id=239&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://flintston.es/tutorial/free-gui-for-link-manager-easy-affiliate-link-management/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Script: Redundant Automatic Link Updating Across Your Sites</title>
		<link>http://flintston.es/nerd-stuff/free-script-redundant-automatic-link-updating-across-your-sites/</link>
		<comments>http://flintston.es/nerd-stuff/free-script-redundant-automatic-link-updating-across-your-sites/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 08:17:57 +0000</pubDate>
		<dc:creator>Bamm</dc:creator>
				<category><![CDATA[Nerd Stuff]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Automatic]]></category>
		<category><![CDATA[Free]]></category>
		<category><![CDATA[Linking]]></category>
		<category><![CDATA[Script]]></category>

		<guid isPermaLink="false">http://flintston.es/?p=209</guid>
		<description><![CDATA[Today I was spending time updating some of the links across my sites that were setup in htaccess files, or in the virtual host files for redirects to my affiliate links. I was getting super bored, and a little bit pissed off. Then I thought to myself, why am I not automating this so I [...]]]></description>
			<content:encoded><![CDATA[<p>Today I was spending time updating some of the links across my sites that were setup in htaccess files, or in the virtual host files for redirects to my affiliate links. I was getting super bored, and a little bit pissed off.</p>
<p>Then I thought to myself, why am I not automating this so I only have to go to one place to update all the links across my sites.</p>
<p>Thanks mainly to <a title="BlackHat SEO Automation Blog" href="http://contempt.me/" target="_blank">Contempt.me</a> for putting me in the automation/make myself even more lazy mindset on this one.</p>
<p>I&#8217;m really not a programmer, but I&#8217;ve been around it for 15+ years so I do have a slight familiarity with code. I figured this task would be easy enough to accomplish if I did a bit of reading. So, I sat down with a coffee and got to work figuring out how to make this little idea of mine a reality. Overall, it wasn&#8217;t very difficult even for a non programmer such as myself.</p>
<p>What my little script does is the following;</p>
<ul>
<li>You upload it to your server after creating your database (explained later)</li>
<li> You create links on your site using a special URL (explained later)</li>
<li> The user clicks on it and is directed to the appropriate offer from the script.</li>
</ul>
<p>Pretty simple when you think about it, but there&#8217;s a catch. What if something is wrong with the keyword or no keyword is entered at all? Well, not a problem when you have a default site created as well.</p>
<p>Yup, this script also checks if the keyword is missing or blank, and then will direct the user to a default site for the given domain. This is a great way to switch all your links out to the default link in a matter of seconds.</p>
<h3>For example;</h3>
<blockquote><p>Say a user visits your site, and you have a simple link to your links script</p>
<p>The user then clicks on that link</p>
<p>The script then checks if there&#8217;s an affiliate link associated with the domain the click is coming from, and the keyword used on the link.</p>
<p>If no affiliate link is available for that particular site and keyword, it will then check if there&#8217;s a default link for the particular site.</p>
<p>If no affiliate link is available as a default for the site either, then it will go on to reading a global default from the database.</p>
<p>but wait, <strong>i shit you not</strong>, there&#8217;s more.</p>
<p>If no affiliate link is available, or something&#8217;s wrong with the database, then it will use a hardset super world domination global link from the script itself.</p></blockquote>
<p>That&#8217;s right, even if all hell is breaking lose, that user will still get to an affiliate offer of your choosing. This may not be totally targetted or anything, but at least you have full control over what the user is seeing the whole way down the chain on your sites.</p>
<p>You&#8217;re probably wondering how to install this little beast on your servers to try out. Well, it&#8217;s pretty easy after you create a shitload of configuration files, and then telnet to nasa and then .. no I&#8217;m just kidding, you just have to create a database, make 4 edits to the script, and then upload it and you&#8217;re done. Then you just have to fill up the database and you&#8217;re away to the races.</p>
<h3>Requirements;</h3>
<ul>
<li>MySQL</li>
<li>PHP</li>
<li> Web Server</li>
<li> About 5 minutes of your time</li>
</ul>
<h3>Here&#8217;s how to install this bad boy;</h3>
<ol>
<li>Download the <a href="/wp-content/uploads/auto-linker.zip" target="_blank">Automatic Link Updating PHP Script and Database</a> files</li>
<li>Create a new database on your server name it something creative if you enjoy</li>
<li> Create a user that has access to the database, similarly creative name and password an option here too for you artistic folk out there. Read only access is fine, man.</li>
<li> Now insert the SQL included in the archive to your database, we even have some sample entries in there for you. You can do this using PHPMyadmin or whatever.<strong>
<p></strong><strong>Change the following in the SQL if you want it to work right out of the box for testing;</strong><br />
All references to &#8220;<strong>yourdomain.com</strong>&#8221; must become your <strong>actual domain</strong>.</li>
<li> Now you&#8217;re ready to edit the <strong>links.sql</strong> file included</li>
<li> Change the following items in there;<strong>
<p></strong><strong>hardlink</strong> &#8211; set this to whatever you want the super duper global link to be when all else fails<br />
<strong>dbhost</strong> &#8211; set this to teh database host<br />
<strong>db user</strong> &#8211; set this to the database user<br />
<strong>dbpass</strong> &#8211; set the database password<br />
<strong>dbname</strong> &#8211; set the database name</li>
<li> Upload <strong>links.php</strong> to your server</li>
</ol>
<p>You&#8217;re essentially done, but of course, you should test everything. This is how you do that.</p>
<h3>Testing things out</h3>
<p>First you should hit up phpmyadmin, and change any of the links or keywords, but we&#8217;re going to assume you&#8217;re lazy and just went with our defaults, <strong>only changing your domain name (this is a must, if you didn&#8217;t do this, go do it now!).</strong></p>
<p>First test the script works, by hitting here;</p>
<blockquote><p><em>http://yourdomain.com/links.php</em></p></blockquote>
<p>That should take you off to <strong>lulz.com</strong></p>
<p>Now, test the script for your domain and keywords</p>
<blockquote><p><em>http://yourdomain.com/links.php?sendto=trink </em></p></blockquote>
<p>That should zip you off to <strong>bingo.com</strong></p>
<p>Now if you want to get extra fancy, go in and edit the sql, and change the keyword &#8220;<strong>default</strong>&#8221; on your domain, and put it to something like <strong>pizza</strong> or whatever you like.</p>
<blockquote><p><em>http://yourdomain.com/links.php?sendto=whatever</em></p></blockquote>
<p>Now hit your site again, and it should take you to <strong>digg.com</strong></p>
<p>If you see <strong>digg</strong>, bravo. You can also run through and remove the &#8220;<strong>default</strong>&#8221; keyword from the global default item in the database to test out the super duper global default site you hardcoded in the script earlier.</p>
<p>If you did decide to test out the global default, without changing anything you probably see <strong>wickedfire</strong>.</p>
<h3>Final Setup Stuffz</h3>
<p>Congratulations, your shit is working and you&#8217;re now automated.</p>
<p>All that needs to be done now is go through PHPMyadmin and add a bunch of sites to your list, and keywords, and affiliate links. This will let you do creative things like have all sorts of subid&#8217;s across your pages to create your own heatmaps or other things, and lets you have super fine control if all your links die and you quickly want to redirect everything to a default link.</p>
<p><strong>Note that for the sitename, you will have to enter it without the www, otherwise the script will get confused because it&#8217;s stripping those off to make everything nice. </strong></p>
<p>Just add links to your site like the following</p>
<blockquote><p><em>&lt;a href=&#8221;http://yourdomain.com/links.php?sendto=keyword&#8221; title=&#8221;Anchor&#8221;&gt;Anchor&lt;/a&gt;</em></p></blockquote>
<p>I guess you could use nofollow on there too, not sure if it&#8217;d be beneficial or not though.</p>
<p>Obviously eventually i&#8217;ll get around to creating a  GUI backend for this, and a few more features will be added, but for now it&#8217;s good enough for me, and probably a lot better than what a lot of you are using.</p>
<img src="http://flintston.es/?ak_action=api_record_view&id=209&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://flintston.es/nerd-stuff/free-script-redundant-automatic-link-updating-across-your-sites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting started with PPC? Here&#8217;s my little checklist.</title>
		<link>http://flintston.es/affiliate-marketing/getting-started-with-ppc-heres-my-little-checklist/</link>
		<comments>http://flintston.es/affiliate-marketing/getting-started-with-ppc-heres-my-little-checklist/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 22:22:13 +0000</pubDate>
		<dc:creator>Bamm</dc:creator>
				<category><![CDATA[Affiliate Marketing]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Checklist]]></category>
		<category><![CDATA[Newbie]]></category>
		<category><![CDATA[PPC]]></category>

		<guid isPermaLink="false">http://flintston.es/?p=138</guid>
		<description><![CDATA[Nifty PPC Checklist when launching your campaigns. ]]></description>
			<content:encoded><![CDATA[<p>I wrote up this checklist while launching a few campaigns and thought it could help others. This is by far not complete, and I&#8217;ll probably keep coming back to update it, but it&#8217;s a good start.This is probably well known to any seasoned pro, but to newbs like myself it helps to have a list to check off when launching campaigns, especially checking those links!</p>
<blockquote><p><strong>PPC CHECKLIST </strong></p>
<ul>
<li>Research the market you’re interested in</li>
<li>Determine a few offers you like from various networks</li>
<li>Sign up for offers you want</li>
<li>Register generic domain for niche</li>
<li>Setup hosting for said domain</li>
<li>Setup AWStats, Webalizer, Mint etc for your new domain</li>
<li>Build Two Landing Pages for testing purposes</li>
<li>Write Content for both landing pages and find/buy any images you need</li>
<li>Create Privacy and Terms of Service if needed for your LP’s</li>
<li>Keyword Research, find about 500 of them for your niche</li>
<li>Create external files to link to (/links/offer.php)</li>
<li>Setup offers in Prosper202</li>
<li>Input Landing Page Code to each landing page that P202 generates</li>
<li>Make sure your links in your external files are proper (/links/offer1.php /links/offer2.php)</li>
<li>Test all your links by hand off each landing page</li>
<li>Make sure stats show up in P202 after testing</li>
<li>Create text link ads in P202 for each LP and Offer, save in spreadsheet</li>
<li>Login to your account with advertiser (YSM, GOOG, MSN, ETC)</li>
<li>Deposit funds if required</li>
<li>Create 5-20 ads for your campaign with P202 links from before</li>
<li>Test ads and links again just to be cautious</li>
<li>Place tracking pixels on your network so you can track sales.</li>
<li>Test pixel tracking links just to be sure.</li>
<li>Insert keywords you generated earlier into their interface</li>
<li>Check demographic settings</li>
<li>Check if content network is selected or not (depending on your marketing plan)</li>
<li>Test all links one last time</li>
<li>Start campaign</li>
<li>Watch campaign, pausing any super expensive keywords and trying to find the least costly</li>
<li>Pause campaign after 3-5 days and tweak your keywords and re-run if you think it will be profitable.</li>
</ul>
</blockquote>
<p>Have anything to add? I&#8217;d love to see your checklist in the comments, or anything else you can think of.</p>
<img src="http://flintston.es/?ak_action=api_record_view&id=138&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://flintston.es/affiliate-marketing/getting-started-with-ppc-heres-my-little-checklist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

