<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Tactical Technique</title>
	
	<link>http://www.tacticaltechnique.com</link>
	<description>Web Development Observations and Asides by Corey Salzano</description>
	<lastBuildDate>Thu, 17 Jun 2010 04:14:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/tacticaltechnique" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="tacticaltechnique" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">tacticaltechnique</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Disable Wordpress New User Email Notification</title>
		<link>http://www.tacticaltechnique.com/wordpress/disable-wp-new-user-notification/</link>
		<comments>http://www.tacticaltechnique.com/wordpress/disable-wp-new-user-notification/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 15:28:26 +0000</pubDate>
		<dc:creator>Corey</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.tacticaltechnique.com/?p=507</guid>
		<description><![CDATA[When a new user creates an account on a Wordpress.org blog, the administrator is sent a notification email. Websites that have a large number of signups each day can generate a lot of emails announcing each new user.
I wrote a simple Wordpress plugin to disable the new user notification email. Visit this plugin&#8217;s page in [...]<p>Originally published at <a href="http://www.tacticaltechnique.com">TacticalTechnique.com</a><br/><br/><a href="http://www.tacticaltechnique.com/wordpress/disable-wp-new-user-notification/">Disable Wordpress New User Email Notification</a></p>
]]></description>
			<content:encoded><![CDATA[<p>When a new user creates an account on a Wordpress.org blog, the administrator is sent a notification email. Websites that have a large number of signups each day can generate a lot of emails announcing each new user.</p>
<p>I wrote a simple Wordpress plugin to disable the new user notification email. <a href="http://wordpress.org/extend/plugins/disable-wp-new-user-notification/">Visit this plugin&#8217;s page in the official WP Plugins Directory</a>.</p>
<h3>Installation instructions</h3>
<ol>
<li><a href="http://www.tacticaltechnique.com/plugins/disable-wp-new-user-notification.zip">Download disable-wp-new-user-notification.zip</a></li>
<li>Decompress the file contents</li>
<li>Upload the disable-wp-new-user-notification folder to a Wordpress plugins directory (/wp-content/plugins)</li>
<li>Activate the plugin from the Administration Dashboard</li>
</ol>
<p>Originally published at <a href="http://www.tacticaltechnique.com">TacticalTechnique.com</a><br/><br/><a href="http://www.tacticaltechnique.com/wordpress/disable-wp-new-user-notification/">Disable Wordpress New User Email Notification</a></p>
<img src="http://feeds.feedburner.com/~r/tacticaltechnique/~4/G2dXZe-g94Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.tacticaltechnique.com/wordpress/disable-wp-new-user-notification/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Wordpress Sidebar Stats Widget</title>
		<link>http://www.tacticaltechnique.com/wordpress/sidebar-stats-widget/</link>
		<comments>http://www.tacticaltechnique.com/wordpress/sidebar-stats-widget/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 03:15:24 +0000</pubDate>
		<dc:creator>Corey</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.tacticaltechnique.com/?p=489</guid>
		<description><![CDATA[I wrote a Wordpress plugin tonight that displays a small collection of site stats in a sidebar widget. Here is a screen shot of sample output:

The widget includes a control panel to change the title and format the HTML that is inserted before and after each numerical stat and the output as a whole.
Installation Instructions

Download [...]<p>Originally published at <a href="http://www.tacticaltechnique.com">TacticalTechnique.com</a><br/><br/><a href="http://www.tacticaltechnique.com/wordpress/sidebar-stats-widget/">Wordpress Sidebar Stats Widget</a></p>
]]></description>
			<content:encoded><![CDATA[<p>I wrote a Wordpress plugin tonight that displays a small collection of site stats in a sidebar widget. Here is a screen shot of sample output:</p>
<p><img src="http://www.tacticaltechnique.com/i/sidebar-stats-widget.png" alt="Site Stats"></p>
<p>The widget includes a control panel to change the title and format the HTML that is inserted before and after each numerical stat and the output as a whole.</p>
<h3>Installation Instructions</h3>
<ol>
<li><a href="http://www.tacticaltechnique.com/plugins/sidebar-stats-widget.zip">Download sidebar-stats-widget.zip</a></li>
<li>Decompress the file contents</li>
<li>Upload the sidebar-stats-widget folder to a Wordpress plugins directory (/wp-content/plugins)</li>
<li>Activate the plugin from the Administration Dashboard</li>
<li>Open the Widgets page under the Appearance section</li>
<li>Drag the Sidebar Stats Widget to the active sidebar</li>
<li>Configure the widget options to suit your needs and click Save</li>
</ol>
<p>This plugin is also available for download from the official Wordpress Plugin Directory <a href="http://wordpress.org/extend/plugins/sidebar-stats-widget/" target="_blank">here</a>.</p>
<p>Originally published at <a href="http://www.tacticaltechnique.com">TacticalTechnique.com</a><br/><br/><a href="http://www.tacticaltechnique.com/wordpress/sidebar-stats-widget/">Wordpress Sidebar Stats Widget</a></p>
<img src="http://feeds.feedburner.com/~r/tacticaltechnique/~4/g_VzKYTv5L0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.tacticaltechnique.com/wordpress/sidebar-stats-widget/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Clear default text from input boxes using Javascript</title>
		<link>http://www.tacticaltechnique.com/web-development/clear-default-text-from-input-boxes-using-javascript/</link>
		<comments>http://www.tacticaltechnique.com/web-development/clear-default-text-from-input-boxes-using-javascript/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 18:22:31 +0000</pubDate>
		<dc:creator>Corey</dc:creator>
				<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.tacticaltechnique.com/?p=478</guid>
		<description><![CDATA[Providing labels is a great way to help users interact with your website properly. I like to put instructional text inside text boxes to save space. Users get annoyed when the text inside the box they click on does not disappear when they are ready to type. Users do not want to backspace default instructional [...]<p>Originally published at <a href="http://www.tacticaltechnique.com">TacticalTechnique.com</a><br/><br/><a href="http://www.tacticaltechnique.com/web-development/clear-default-text-from-input-boxes-using-javascript/">Clear default text from input boxes using Javascript</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Providing labels is a great way to help users interact with your website properly. I like to put instructional text inside text boxes to save space. Users get annoyed when the text inside the box they click on does not disappear when they are ready to type. Users do not want to backspace default instructional text before typing in boxes, so some code is required to make this happen.</p>
<p>I would like to share two small Javascript functions. The first clears out default text box contents automatically when a user clicks on the box. The second restores the default instructional text if the user leaves the box empty. </p>
<p>Implement these functions using onfocus=&#8221;wash(this);&#8221; and onblur=&#8221;checkWash(this);&#8221; on your text input control. You may want to avoid the second function on text fields where input is optional, so the user can leave the text box blank.</p>
<p><code>function wash( anInput ){<br />
if(anInput.value == anInput.defaultValue) anInput.value = '';<br />
}</code><br />
<code>function checkWash( anInput ){<br />
if(anInput.value == '') anInput.value = anInput.defaultValue;<br />
}</code></p>
<h3>Try it</h3>
<p>Look, I made a demo!</p>
<p><script type="text/javascript">
<!--
	function wash( anInput ){
			if(anInput.value == anInput.defaultValue) anInput.value = '';
		}
		function checkWash( anInput ){
			if(anInput.value == '') anInput.value = anInput.defaultValue;
		}//-->
</script></p>
<input type="text" onfocus="wash(this);" onblur="checkWash(this);" value="Touch me">
<p>Originally published at <a href="http://www.tacticaltechnique.com">TacticalTechnique.com</a><br/><br/><a href="http://www.tacticaltechnique.com/web-development/clear-default-text-from-input-boxes-using-javascript/">Clear default text from input boxes using Javascript</a></p>
<img src="http://feeds.feedburner.com/~r/tacticaltechnique/~4/lR17dMNT6J4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.tacticaltechnique.com/web-development/clear-default-text-from-input-boxes-using-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get Longitude and Latitude from Bing Maps</title>
		<link>http://www.tacticaltechnique.com/how-to/longitude-latitude-bing-maps/</link>
		<comments>http://www.tacticaltechnique.com/how-to/longitude-latitude-bing-maps/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 17:26:50 +0000</pubDate>
		<dc:creator>Corey</dc:creator>
				<category><![CDATA[How to]]></category>

		<guid isPermaLink="false">http://www.tacticaltechnique.com/?p=474</guid>
		<description><![CDATA[To get longitude and latitude coordinates from Bing Maps, follow these steps:

Position the map center on your point of interest
Type this into your web browser&#8217;s address bar:
javascript:map.GetCenter()

Hit enter or click an appropriate button to query the address

If you are using a browser with a lot of built-in security roadblocks like Internet Explorer, you may have [...]<p>Originally published at <a href="http://www.tacticaltechnique.com">TacticalTechnique.com</a><br/><br/><a href="http://www.tacticaltechnique.com/how-to/longitude-latitude-bing-maps/">Get Longitude and Latitude from Bing Maps</a></p>
]]></description>
			<content:encoded><![CDATA[<p>To get longitude and latitude coordinates from <a href="http://www.bing.com/maps/" target="_blank">Bing Maps</a>, follow these steps:</p>
<ol>
<li>Position the map center on your point of interest</li>
<li>Type this into your web browser&#8217;s address bar:
<pre>javascript:map.GetCenter()</pre>
</li>
<li>Hit enter or click an appropriate button to query the address</li>
</ol>
<p>If you are using a browser with a lot of built-in security roadblocks like Internet Explorer, you may have to acknowledge security warnings before javascript code will execute.</p>
<p>Originally published at <a href="http://www.tacticaltechnique.com">TacticalTechnique.com</a><br/><br/><a href="http://www.tacticaltechnique.com/how-to/longitude-latitude-bing-maps/">Get Longitude and Latitude from Bing Maps</a></p>
<img src="http://feeds.feedburner.com/~r/tacticaltechnique/~4/I6Pz-cotJq4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.tacticaltechnique.com/how-to/longitude-latitude-bing-maps/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Why are craigslist ads flagged flowchart</title>
		<link>http://www.tacticaltechnique.com/craigslist/why-are-craigslist-ads-flagged-flowchart/</link>
		<comments>http://www.tacticaltechnique.com/craigslist/why-are-craigslist-ads-flagged-flowchart/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 18:11:45 +0000</pubDate>
		<dc:creator>Corey</dc:creator>
				<category><![CDATA[Craigslist]]></category>

		<guid isPermaLink="false">http://www.tacticaltechnique.com/?p=468</guid>
		<description><![CDATA[Today, I made a simple flowchart to describe how and why craigslist ads are flagged and removed.
http://www.gliffy.com/publish/1892404/
Originally published at TacticalTechnique.comWhy are craigslist ads flagged flowchart
<p>Originally published at <a href="http://www.tacticaltechnique.com">TacticalTechnique.com</a><br/><br/><a href="http://www.tacticaltechnique.com/craigslist/why-are-craigslist-ads-flagged-flowchart/">Why are craigslist ads flagged flowchart</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Today, I made a simple flowchart to describe how and why craigslist ads are flagged and removed.</p>
<p><a href="http://www.gliffy.com/publish/1892404/">http://www.gliffy.com/publish/1892404/</a></p>
<p>Originally published at <a href="http://www.tacticaltechnique.com">TacticalTechnique.com</a><br/><br/><a href="http://www.tacticaltechnique.com/craigslist/why-are-craigslist-ads-flagged-flowchart/">Why are craigslist ads flagged flowchart</a></p>
<img src="http://feeds.feedburner.com/~r/tacticaltechnique/~4/qeOH024ATEw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.tacticaltechnique.com/craigslist/why-are-craigslist-ads-flagged-flowchart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Classic ASP and Server.GetLastError in IIS7</title>
		<link>http://www.tacticaltechnique.com/web-development/classic-asp-getlasterror-in-iis7/</link>
		<comments>http://www.tacticaltechnique.com/web-development/classic-asp-getlasterror-in-iis7/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 23:54:47 +0000</pubDate>
		<dc:creator>Corey</dc:creator>
				<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.tacticaltechnique.com/?p=459</guid>
		<description><![CDATA[My classic ASP error logging scripts were dead in the water when I moved them to a Windows Server 2008 with IIS 7.0. 
Some code like this is useful to record errors in a database: 
	dim objErrorInfo, errorStringStr
	set objErrorInfo = Server.GetLastError
	errorStringStr = objErrorInfo.File &#038; ", line: " &#038; objErrorInfo.Line &#038; ", error: " &#038; objErrorInfo.Number [...]<p>Originally published at <a href="http://www.tacticaltechnique.com">TacticalTechnique.com</a><br/><br/><a href="http://www.tacticaltechnique.com/web-development/classic-asp-getlasterror-in-iis7/">Classic ASP and Server.GetLastError in IIS7</a></p>
]]></description>
			<content:encoded><![CDATA[<p>My classic ASP error logging scripts were dead in the water when I moved them to a Windows Server 2008 with IIS 7.0. </p>
<p>Some code like this is useful to record errors in a database: </p>
<p><code>	dim objErrorInfo, errorStringStr<br />
	set objErrorInfo = Server.GetLastError<br />
	errorStringStr = objErrorInfo.File &#038; ", line: " &#038; objErrorInfo.Line &#038; ", error: " &#038; objErrorInfo.Number &#038; " " &#038; objErrorInfo.Description &#038; ", " &#038; objErrorInfo.ASPDescription &#038; objErrorInfo.Category<br />
	errorStringStr = replace( errorStringStr, "'", "''" )</code></p>
<p>The error pages settings are less convenient than in the previous version of IIS for classic ASP developers. If you would like to use different scripts to <strike>handle 404 and 500 errors</strike> access Server.GetLastError, I do not believe a classic ASP solution can get the job done. Alas, I figured out how to get the full contents of Server.GetLastError in IIS7 (using one script). </p>
<p>Create one script to log all errors. If you had a few scripts to handle different types of errors, combine them. </p>
<p>Enter the Error Pages module of the website profile, and click &#8220;Edit Feature Settings&#8221; on the right hand sidebar. </p>
<p>This screen will appear:</p>
<p><img src="http://www.tacticaltechnique.com/i/iis7getLastError.png" alt="Edit Error Pages Settings"></p>
<p>Configure yours in a similar fashion, and Server.GetLastError will start working once again. Ignore the settings that allow you to choose a custom URL for each HTTP status code. This setting alone will send all error responses through your script. </p>
<p><b>UPDATE:</b></p>
<p>I was mistaken about using multiple scripts to log errors. The only way to get the contents of Server.GetLastError is to use the &#8220;Edit Feature Settings&#8221; section of the Error Pages control. The other error pages will work, but Server.GetLastError is not available. For example, I just added a status code for 410 Gone to a website using the custom script I describe above. I am not interested in logging 410 errors in my database, so simply adding the 410 status code to point to C:\inetpub\custerr\en-US\410.htm works. As a side note, my Windows 2008 Server Web did not have the 410.htm. I copied it from a Windows 2003 Server installation.</p>
<p>Originally published at <a href="http://www.tacticaltechnique.com">TacticalTechnique.com</a><br/><br/><a href="http://www.tacticaltechnique.com/web-development/classic-asp-getlasterror-in-iis7/">Classic ASP and Server.GetLastError in IIS7</a></p>
<img src="http://feeds.feedburner.com/~r/tacticaltechnique/~4/k7ykEZ0RIOo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.tacticaltechnique.com/web-development/classic-asp-getlasterror-in-iis7/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>I made a Keyword Multiplier</title>
		<link>http://www.tacticaltechnique.com/tools/free-keyword-multiplier/</link>
		<comments>http://www.tacticaltechnique.com/tools/free-keyword-multiplier/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 04:13:41 +0000</pubDate>
		<dc:creator>Corey</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.tacticaltechnique.com/?p=449</guid>
		<description><![CDATA[While revamping a PPC advertising account last week, I discovered the lack of a convenient keyword multiplier. I am sure there is some fancy pants way of combining keyword lists in a spreadsheet application, but I find no fun in writing macros for some piece of software.
I installed the Google Adwords desktop editor because it [...]<p>Originally published at <a href="http://www.tacticaltechnique.com">TacticalTechnique.com</a><br/><br/><a href="http://www.tacticaltechnique.com/tools/free-keyword-multiplier/">I made a Keyword Multiplier</a></p>
]]></description>
			<content:encoded><![CDATA[<p>While revamping a <a href="http://www.tacticaltechnique.com/glossary/#PPC">PPC</a> advertising account last week, I discovered the lack of a convenient keyword multiplier. I am sure there is some fancy pants way of combining keyword lists in a spreadsheet application, but I find no fun in writing macros for some piece of software.</p>
<p>I installed the Google Adwords desktop editor because it has a built-in keyword multiplier. It sucks. The Goo&#8217;s multiplier only combines three lists at a time, and I wanted four. It also automatically removes keywords that have low Google search volume, so if you are using their tool for any other purpose it is rather useless.</p>
<p>I made my own <a href="http://www.tacticaltechnique.com/tools/keyword-multiplier/">keyword multiplier</a>, and you can use it, too. Please try it out, and let me know if you find it to be a useful keyword tool. </p>
<h3>Keyword Multiplier Features</h3>
<ul>
<li>Fast, easy and web-based</li>
<li>Apply PPC match types to result lists</li>
<li>No uploading your keywords to a third party</li>
</ul>
<p><a href="http://www.tacticaltechnique.com/tools/keyword-multiplier/">Try it yourself!</a></p>
<p>Originally published at <a href="http://www.tacticaltechnique.com">TacticalTechnique.com</a><br/><br/><a href="http://www.tacticaltechnique.com/tools/free-keyword-multiplier/">I made a Keyword Multiplier</a></p>
<img src="http://feeds.feedburner.com/~r/tacticaltechnique/~4/Bm_Yj0fSfow" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.tacticaltechnique.com/tools/free-keyword-multiplier/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Back on the blog train</title>
		<link>http://www.tacticaltechnique.com/announcements/back-on-the-blog-train/</link>
		<comments>http://www.tacticaltechnique.com/announcements/back-on-the-blog-train/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 04:11:07 +0000</pubDate>
		<dc:creator>Corey</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.tacticaltechnique.com/?p=452</guid>
		<description><![CDATA[I have not written any new posts here in quite some time, but I have not been sitting idle. 
More than a year ago, I wrote about some ebay scams that were appearing on craigslist and autotrader. Since then, a few posts on this website have been receiving one to three comments a day. The [...]<p>Originally published at <a href="http://www.tacticaltechnique.com">TacticalTechnique.com</a><br/><br/><a href="http://www.tacticaltechnique.com/announcements/back-on-the-blog-train/">Back on the blog train</a></p>
]]></description>
			<content:encoded><![CDATA[<p>I have not written any new posts here in quite some time, but I have not been sitting idle. </p>
<p>More than a year ago, I wrote about some <a href="http://www.tacticaltechnique.com/vehicle-classifieds/ebay-vehicle-protection-program-scam/">ebay scams</a> that were appearing on craigslist and autotrader. Since then, a few posts on this website have been receiving one to three comments a day. The work moderating these comments grew to be such a burden, that I created a whole <a href="http://www.fightthescams.com/" target="_blank">scam tracking website</a> to try and handle the traffic. I am still trying to work out the details. The effort I put towards these incoming stories and comments satisfies my desire to contribute to this website, so the result seems to be less new posts.</p>
<p>I am committed to many other old posts, here. I recently updated my <a href="http://www.tacticaltechnique.com/web-development/disguise-email-addresses-for-online-publishing/">hide email code</a> post. This source code helps you publish emails on web pages while shielding the address from most email harvesting robots. The goal is to reduce spam.</p>
<p>Another way to reduce spam that occurs as a result of running websites is <a href="http://www.tacticaltechnique.com/bots/blacklisting-via-iirf/">blocking the bad robots</a> altogether. I have written a few popular posts on that subject that have inspired some great conversation, and I respond to incoming comments on those posts regularly. </p>
<p>Originally published at <a href="http://www.tacticaltechnique.com">TacticalTechnique.com</a><br/><br/><a href="http://www.tacticaltechnique.com/announcements/back-on-the-blog-train/">Back on the blog train</a></p>
<img src="http://feeds.feedburner.com/~r/tacticaltechnique/~4/Lg1DeVZH-G4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.tacticaltechnique.com/announcements/back-on-the-blog-train/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Do not use Yahoo mail for important messages</title>
		<link>http://www.tacticaltechnique.com/opinion/do-not-use-yahoo-mail/</link>
		<comments>http://www.tacticaltechnique.com/opinion/do-not-use-yahoo-mail/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 13:19:58 +0000</pubDate>
		<dc:creator>Corey</dc:creator>
				<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://www.tacticaltechnique.com/?p=434</guid>
		<description><![CDATA[The world&#8217;s largest free email provider is simply unreliable. Sure, most of the user experience is pleasant, but Yahoo bans entire network blocks when it finds a few instances of abuse. Senders receive error messages like this: 
421 Message temporarily deferred
Temporary error from SMTP partner: smtp;421 Message temporarily deferred &#8211; 4.16.51. Please refer to http://help.yahoo.com/help/us/mail/defer/defer-06.html.

the [...]<p>Originally published at <a href="http://www.tacticaltechnique.com">TacticalTechnique.com</a><br/><br/><a href="http://www.tacticaltechnique.com/opinion/do-not-use-yahoo-mail/">Do not use Yahoo mail for important messages</a></p>
]]></description>
			<content:encoded><![CDATA[<p>The world&#8217;s largest free email provider is simply unreliable. Sure, most of the user experience is pleasant, but Yahoo bans entire network blocks when it finds a few instances of abuse. Senders receive error messages like this: </p>
<h3>421 Message temporarily deferred</h3>
<p>Temporary error from SMTP partner: smtp;421 Message temporarily deferred &#8211; 4.16.51. Please refer to <a href="http://help.yahoo.com/help/us/mail/defer/defer-06.html" target="_blank">http://help.yahoo.com/help/us/mail/defer/defer-06.html</a>.</p>
<ol>
<li>the message you attempted to send exhibited characteristics indicative of spam,and/or</li>
<li>emails from your network have been generating complaints from Yahoo! Mail users.</li>
</ol>
<p>The problem with blocking a whole network is clear&#8211;blanket banishment harms innocent users. Do not use Yahoo mail for important messages because innocent people out there are being blocked by Yahoo. A few vandals can cause Yahoo to temporarily ban an entire <a href="http://www.tacticaltechnique.com/glossary/#ISP">ISP</a> user base.</p>
<p>Originally published at <a href="http://www.tacticaltechnique.com">TacticalTechnique.com</a><br/><br/><a href="http://www.tacticaltechnique.com/opinion/do-not-use-yahoo-mail/">Do not use Yahoo mail for important messages</a></p>
<img src="http://feeds.feedburner.com/~r/tacticaltechnique/~4/FFKJ5lyciis" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.tacticaltechnique.com/opinion/do-not-use-yahoo-mail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Disguise Email Addresses for online publishing</title>
		<link>http://www.tacticaltechnique.com/web-development/disguise-email-addresses-for-online-publishing/</link>
		<comments>http://www.tacticaltechnique.com/web-development/disguise-email-addresses-for-online-publishing/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 14:13:02 +0000</pubDate>
		<dc:creator>Corey</dc:creator>
				<category><![CDATA[Web development]]></category>
		<category><![CDATA[ASP]]></category>

		<guid isPermaLink="false">http://www.tacticaltechnique.com/?p=419</guid>
		<description><![CDATA[I just wrote this quick ASP code to disguise email addresses on web pages. There is a better way to obfuscate email addresses. I recommend creating an image instead of using text in every case, but sometimes a plain text email address link is effective.
Some losers send spam email for a living, and will send [...]<p>Originally published at <a href="http://www.tacticaltechnique.com">TacticalTechnique.com</a><br/><br/><a href="http://www.tacticaltechnique.com/web-development/disguise-email-addresses-for-online-publishing/">Disguise Email Addresses for online publishing</a></p>
]]></description>
			<content:encoded><![CDATA[<p>I just wrote this quick ASP code to disguise email addresses on web pages. There is a better way to obfuscate email addresses. I recommend creating an image instead of using text in every case, but sometimes a plain text email address link is effective.</p>
<p>Some losers send spam email for a living, and will send garbage to any email they can find online. Obfuscating email addresses in character codes cloaks them from some of the leeches. There are plenty of websites that will perform the conversion for you, but this morning I decided to create code to automate this task. </p>
<p>Here is an ASP classic function that will convert a string to ASCII characters. PHP code below. These characters will display as normal text to the casual user. The difference between alphabet characters and ASCII characters is that encoded characters must be evaluated before they look like an email address. This thin veil of secrecy is enough to fight off some email harvesting robodicks.</p>
<pre><code>
public function asciiDisguise( string )
	build = ""
	for i=1 to len( string )
		build = build &#038; "&#" &#038; asc( mid( string, i, 1 )) &#038; ";"
	next
	asciiDisguise = build
end function
</code></pre>
<p>&nbsp;</p>
<p>I will write a PHP version of this code some time soon and update this post. </p>
<p><b>UPDATE:</b></p>
<p>Here is the same function in PHP. </p>
<pre><code>
function asciiDisguise( $str ){
	$build = "";
	for( $i=0;$i&lt;strlen( $str );$i++ ){
		$build .= "&#" . ord( substr( $str, $i, 1 )) . ";";
	}
	return $build;
}
</code></pre>
<p>Originally published at <a href="http://www.tacticaltechnique.com">TacticalTechnique.com</a><br/><br/><a href="http://www.tacticaltechnique.com/web-development/disguise-email-addresses-for-online-publishing/">Disguise Email Addresses for online publishing</a></p>
<img src="http://feeds.feedburner.com/~r/tacticaltechnique/~4/XtfJDOyjXXg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.tacticaltechnique.com/web-development/disguise-email-addresses-for-online-publishing/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
