<?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>Snipe.Net &#187; Tips &amp; Tricks</title>
	<atom:link href="http://www.snipe.net/topics/tips-and-tricks/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.snipe.net</link>
	<description>Bitterness never tasted so sweet</description>
	<lastBuildDate>Tue, 24 Jan 2012 04:30:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Detecting Fraud in Facebook Contests</title>
		<link>http://www.snipe.net/2012/01/detecting-fraud-in-facebook-contests/</link>
		<comments>http://www.snipe.net/2012/01/detecting-fraud-in-facebook-contests/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 02:30:30 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook contests]]></category>
		<category><![CDATA[fraud]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=3555</guid>
		<description><![CDATA[Whatever your feelings on Facebook, it&#8217;s pretty clear that it&#8217;s here to stay. If your company or organization has considered running a promotional Facebook contest, this is crash course in detecting fraud because if your prize is worth anything to anyone, you will encounter fraud, without exception. I am not going to specifically address the [...]]]></description>
			<content:encoded><![CDATA[<p>Whatever your feelings on Facebook, it&#8217;s pretty clear that it&#8217;s here to stay. If your company or organization has considered running a promotional Facebook contest, this is crash course in detecting fraud because if your prize is worth anything to anyone, you will encounter fraud, without exception.</p>
<p><span id="more-3555"></span><br />
I am not going to specifically address the topic of scripted attacks (such as click-jacking, like-jacking, using tools like Selenium, etc) used to game contests. There are just too many variations, and frankly, many of the data analysis concepts here would apply to that scenario as well. </p>
<p><strong>Understand that I Am Not a Lawyer, and am NOT giving you legal advice here.</strong> The intended audience for this article is application developers, database architects and product directors, as we discuss some fundamental concepts that must be integrated into your contest application before even a single line of code is written. Many of these concepts can be applied to non-Facebook online contests, but some are Facebook specific.</p>
<p>Also, if you got to this article because you&#8217;re trying to learn how to game a Facebook contest, please die in a fucking fire. You are a useless piece of shit, and people like you are what is wrong with the world. </p>
<p><strong>First things first, and a little bit off-topic, if you&#8217;re planning on creating a Facebook contest, be sure your contest abides by Facebook&#8217;s promotional policy guidelines.</strong> They&#8217;re a pretty quick read, but failing to read them before deploying a contest on Facebook may result in Facebook disabling your contest for policy violation. You can (and should) <a href="http://www.facebook.com/promotions_guidelines.php" target="_blank">read the whole set of guidelines here</a>, but since we&#8217;re about to discuss planning your contest app, the ones you really need to be mindful of are:</p>
<ol>
<li>You must not use Facebook features or functionality as a promotion&#8217;s registration or entry mechanism. For example, the act of liking a Page or checking in to a Place cannot automatically register or enter a promotion participant. </li>
<li>You must not condition registration or entry upon the user taking any action using any Facebook features or functionality other than liking a Page, checking in to a Place, or connecting to your app. For example, you must not condition registration or entry upon the user liking a Wall post, or commenting or uploading a photo on a Wall.</li>
<li>You must not use Facebook features or functionality, such as the Like button, as a voting mechanism for a promotion.</li>
<li>You must not notify winners through Facebook, such as through Facebook messages, chat, or posts on profiles (timelines) or Pages.</li>
</ol>
<p><strong>Basically, this means that you can&#8217;t use any of the native Facebook platform tools as voting or winning mechanics.</strong> You can like-gate an app, requiring the user to like an app or page before being shown the contest sign-up form, but you cannot use the act of liking the app or page as the registration itself. You cannot award points or incentives on a Facebook share, but you CAN award points or incent the conversion. So if your app lets me invite people to your app, you can award me points for every one of my friends that allows the app and participates, but you cannot award me points based on how many people I invite that do not convert to app users or clickthroughs or what have you.</p>
<p>There&#8217;s a little bit of nuance to it, but the general rule is just to avoid using the platform for stuff that determines who wins or loses, period. That part has nothing specifically to do with gaming a Facebook contest (or the prevention of gaming a Facebook contest), but it&#8217;s pretty important, and will influence some pretty core mechanics in your contest, so don&#8217;t gloss over them.</p>
<h3>Rule #1 of running a contest: LOG EVERYTHING</h3>
<p>Log absolutely everything possible. Require that the user is logged in, and <strong>always</strong> log their FBID *and* their IP address. Your legal counsel will thank you for it. </p>
<p><strong>You need to be able to run an audit on every action related to potential winning or losing of the contest for your own liability, but also because it is the foundation of putting yourself in a good spot to detect suspicious or fraudulent activity. Seriously. </strong></p>
<p>If ass-wiping influences the contest outcome, you had better be logging every single time the user wipes their ass, complete with IP address, user agent, timestamp, and anything else you can think of that would be specific to that action+session combination. I simply cannot emphasize this enough. </p>
<p><strong>Without extensive logging, you will be left absolutely helpless when a user (or their lawyer) challenges your winner decisions, or when other users claim a specific user is cheating.</strong></p>
<p>Make sure your web server is logging access correctly as well. You may need to correlate your Apache access log to a specific transaction and IP address as well. <strong>Test this before your app goes live.</strong> </p>
<p>As you analyse your logs, look for inconsistencies in user agent and/or IP address. If their user agent is logged as &#8220;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7&#8243; in one log entry and &#8220;Mozilla/5.0 (Intel Mac OS X 10_7_2) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7&#8243; in the next, something is up. The differences between those two user agent strings is subtle, but it&#8217;s there, and there is no legitimate reason for it to change from action to action in the same session.</p>
<h3>Rule #2: Get their email address</h3>
<p>It seems intrusive, but if your loot is decent, people won&#8217;t mind giving it to you. Once they have allowed your application and granted you email permission through the app allow dialog, you can pre-populate the email address field so they don&#8217;t even have to type anything in. You&#8217;ll need their email address anyway, to notify them if they won, since Facebook doesn&#8217;t allow you to use FB Messages to do that.</p>
<p>You want their email address because users creating fake Facebook profiles (each of which requires a unique email address) to generate bogus votes/points/whatever will generally not be terribly creative (or may be using an automated script or service to do it), so you can use the email addresses as a way to detect patterns in participating users that could imply fraudulent activity. If you see 100 new entries, all with the email pattern of firstname1234lastname@hotmail.com, there&#8217;s an excellent chance that those entries are bogus.</p>
<h3>Brace yourself for the truth</h3>
<p>The cost of winning a Facebook contest by cheating is much lower than you probably imagine &#8211; and unsurprisingly, there are businesses online that exist for the sole purpose of helping people win online contests. Right now, on a casual Google search, I can find services that will sell me 10 PVA (Phone Verified Account) Facebook accounts for $20. I can buy 100 non-PVA Facebook accounts for $20, if I think the contest won&#8217;t do that much checking for fraudulent activity. If you do a search for &#8220;facebook contest&#8221; on sites like freelancers and microworkers (I will not link to them), you&#8217;ll find hundreds of people with Facebook accounts just itching to get paid to help your potential contestants game your contest.</p>
<p><strong>If you&#8217;re giving away a trip worth $3,000 and because of the number of participants, it would cost me $20 to win your contest, you are *going* to get gamed. My risk-to-reward-ratio is just too good for me not to do it. I spend $20 and I get $3,000 worth of prizes? Hell yeah. </strong></p>
<p>In one investigation I performed, I saw bids of $30 accepted for people to get 200 people (real people or fake-but-look-real accounts) to vote x times.  That means each one of those Facebook accounts is worth $0.15 to the person renting them out. Consider creating accounts at these microjob sites before your contest is over and check it for openings related to your contest.</p>
<p><strong>Additionally, since there are people and services out there that have created Facebook profiles for exactly this purpose, you can&#8217;t rely on Facebook profile creation date as a reliable measure. </strong>Many of the fraudulent accounts I&#8217;ve come across have been around for over a year prior to the contest. They&#8217;re also smart enough to make sure these profiles have friends that look legitimate, so it won&#8217;t be as easy as looking for FB accounts that are new and have no friend connections.</p>
<p>It gets worse. There are also online sites that encourage users to do like/vote exchanges. &#8220;Vote for me for blah, and I&#8217;ll vote for you.&#8221; This method tends to be slower than simply buying accounts, but it&#8217;s also free. Search Facebook for terms like &#8220;vote exchange&#8221; and you&#8217;ll find pages and groups for the sole purpose of gaming contests.</p>
<p>It&#8217;s up to you to decide whether a vote/contest exchange falls under your definition of cheating. It absolutely does in my book, but it really depends on how your contest works. Either way, you need to set the definitions of what exactly qualifies as cheating before your contest even starts, because you&#8217;re going to run into more gray areas than you probably would have thought.</p>
<h3>Rule #3: NOTHING GETS DELETED. EVER.</h3>
<p>If users can submit content as part of the contest, make sure you architect your application in such a way that nothing ever gets deleted, either by moderator or by the users themselves. Instead use a database flag to toggle visibility in the app. Log the deletion (timestamp, IP, user agent, who took the action, etc) and tuck it away, but never, ever delete the data. </p>
<p>Doing so insulates you from users saying &#8220;I didn&#8217;t delete it!&#8221; You will have proof that they did, including all the particulars such as what browser they were using and when. This also allows you to recover from content that is accidentally deleted by a moderator. If &#8220;deleting&#8221; content is simply toggling that boolean database field, it&#8217;s easy to toggle it back on if it gets toggled off by mistake.</p>
<h3>Rule #4: Know what counts as cheating up-front</h3>
<p>This sounds like a no-brainer. Cheating is cheating, right? But if someone didn&#8217;t actually pay for votes, and did a vote exchange or spammed forums and Facebook groups to get votes from people who don&#8217;t actually care about the program, is that cheating?</p>
<p>What if the Facebook account that&#8217;s participating is &#8220;real&#8221;, but the person only ever uses it for entering contests? Is that a legitimate user to you, or a cheater? You should figure that out ahead of time.</p>
<p>It&#8217;s going to be your choice as to what level of detail you disclose your policies on cheating. My recommendation is to be a little vague. While this goes against my standard policy of transparency in everything, if you give the bad guys an explicit set of rules on how you define cheating, they will be sure to tailor their cheating to specifically avoid the things you outline. If you tell me (as a bad guy) that my votes will be disqualified if too many votes come in from the same IP address, I will be sure to use different IP addresses for each vote to make sure I avoid your detection. </p>
<h3>Rule #4: Audit, audit, audit and audit some more</h3>
<p>Auditing by eyeball isn&#8217;t really going to cut it, but if it&#8217;s all you&#8217;ve got, it&#8217;s better than nothing. A better idea would be to set up a series of heuristics programmatically that flag user activity as being suspicious and requiring additional review. Things like the number of unique users coming from a specific IP address, the time of day that you see the most activity, the kinds of email addresses you see associated with the participating users, etc. </p>
<p><strong>Look for patterns that don&#8217;t make sense.</strong> Examine the Facebook pages of the folks you suspect of cheating. Do they have any wall posts? Any photos? Do they have friends? Click on their friends profiles &#8211; do their profiles also have no wall posts and no photos? Look for generic &#8220;hot babe&#8221; profile photos. Look at the pages and topics the user has &#8220;liked&#8221;. Do they seem a little too demographically on-point, as if they were created to appeal to a specific contest demographic? Is there a pattern in the things they&#8217;re liking? (All contest pages, etc.) This part can&#8217;t be automated. </p>
<p>Give yourself the time between the end of the contest and the announcement of the winner to be thorough and audit all of your top contenders. Hold off notifying anyone that they won until you&#8217;ve had a chance to comb through this data and you feel confident that it&#8217;s legitimate.</p>
<h3>You have a cheater. Now what?</h3>
<p>When you find someone cheating, how are you going to handle it? Revoke their points/votes/etc? Disqualify them? Whatever your decision, know what you&#8217;re going to say to them in advance, because if the stakes are high enough, there&#8217;s a good chance they will be loud and public about how you wronged them. Once again I advise not showing too much of your hand. </p>
<p><strong>If you decide to confront them and allow them to offer explanations, hold specifics back. </strong>If you user claims, for example, that they got most of their votes from their friends at a high school using their own computer (which would explain the same IP address), but the timestamps on the votes are at 1AM, 2AM, etc, that should raise some eyebrows. If you tell them too much about what you&#8217;re basing your decision on, a decent cheater will come up with excuses to explain them that they would have mentioned earlier if the story was legitimate.</p>
<p><strong>It&#8217;s rare to find a smoking gun in these cases.</strong> Instead, it&#8217;s going to require a some judgement calls and a preponderance of evidence. It&#8217;s very like you won&#8217;t find *one* thing that makes you *sure* someone is cheating. Instead you&#8217;ll find a half-dozen things that, when combined, form an equation that just doesn&#8217;t add up. </p>
<p>One option, upon finding a cheater, is to disqualify just the votes that seem fraudulent. <strong>In the case of a contest where the user submits an entry and other people vote on it to determine a winner, be cautious of disqualifying the entry based on fraudulent activity.</strong> Knowing how inexpensive it is to buy Facebook profiles, if I were a particularly bad guy who had <em>also</em> submitted an entry, I might consider spending some money to game my opponent&#8217;s entry in a way that was obviously fraudulent to get their entry disqualified. </p>
<p><strong>If I knew you would kick anyone out if you detected any fraudulent behavior on their entry, I might go out of my way to make sure you found some on the other guy&#8217;s entry to increase my chances of winning by kicking them out of the running.</strong> This technique, similar to <a href="http://en.wikipedia.org/wiki/Joe_job" target="_blank">joe jobbing</a> in the spam world, isn&#8217;t one I&#8217;ve seen often, but it&#8217;s only a matter of time.</p>
<p><strong>Make a decision and be prepared to stick with it.</strong> Feel confident that your decision was the right one, and don&#8217;t back down. The bad PR from the folks you disqualify will be better than the bad PR from the rest of the contestants claiming that your contest is rigged or allowed fraud. Your legal department will make sure you have a TOS that basically says that you don&#8217;t owe anyone an explanation, and it&#8217;s up to your discretion to disqualify anyone for any reason. </p>
<p>Running a (good) contest is an incredibly laborious process. The technical aspects of creating the app are honestly the least complicated, least time-consuming part of the whole thing. Make sure you have the appropriate resources to handle it. If you half-ass it, you will regret it.</p>
<h3>Nailed it. </h3>
<p>Not quite. Honestly, there is almost no fool-proof way of detecting all fraud activities &#8211; partly because some of this fraud is being conducted by actual people, not machines. They&#8217;ve invested the time into creating profiles that look real. </p>
<p>You&#8217;ll be able to find the ones that do a crap job of it, but a few of the more sophisticated folks will have profiles that have current wall posts about things other than contest spamming. They&#8217;ll have photos uploaded, lots of friends, and profiles that weren&#8217;t recently created. Fortunately for you, those kinds of profiles tend to be more expensive to buy, since they require more work to upkeep to look legitimate. </p>
<p>Maintaining believability in a friend network that large requires a lot of time, so examining the <em>friend</em> profiles associated with your top contestants is absolutely critical. If you poke around enough, you&#8217;re bound to find something that doesn&#8217;t fit. Examining their entire footprint on the social graph will give you a much clearer picture than a specific profile.</p>

 <script type="text/javascript">
	<!--
		function onover(what){
	document.getElementById('blurbtext').innerHTML=''+what+'';
	}
	function onout(){
	document.getElementById('blurbtext').innerHTML='&nbsp;';
	}
	-->
	</script>



<h3 style="padding-bottom: 0px; margin-bottom: 0px;">Also check out: <br /><span id="blurbtext"><br /></span></h3>

<div id="relatedposts">




		
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/12/viral-marketing-or-social-media-spam/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/12/spam_1-283x300.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Twitter Retweet Contests: Viral Marketing or Social Media Spam?" height="90" width="90" onmouseover="onover('Twitter Retweet Contests: Viral Marketing or Social Media Spam?')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2010/05/facebook-fan-pages-10k/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2010/05/fuck-you.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Want to Set a Default Landing Tab on Your Facebook Fan Page? It&#8217;ll Cost You" height="90" width="90" onmouseover="onover('Want to Set a Default Landing Tab on Your Facebook Fan Page? It&#8217;ll Cost You')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2010/01/facebook-lite-default/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2010/01/basement-cat-updates-facebook-pic.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Unclutter Your Facebook Feed: Set FB Lite As Your Default" height="90" width="90" onmouseover="onover('Unclutter Your Facebook Feed: Set FB Lite As Your Default')" onmouseout="onout()" /></a></div>

	</div>

]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2012/01/detecting-fraud-in-facebook-contests/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Know Your Social Media Scams &amp; Rogue Apps</title>
		<link>http://www.snipe.net/2011/03/twitter-facebook-scams-rogue-apps/</link>
		<comments>http://www.snipe.net/2011/03/twitter-facebook-scams-rogue-apps/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 17:19:37 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Life Tools]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[firesheep]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[phishing]]></category>
		<category><![CDATA[rogue apps]]></category>
		<category><![CDATA[scams]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[social networks]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=3348</guid>
		<description><![CDATA[As the number of scams and malware threats increase on Facebook and Twitter, it can be hard to keep track of what&#8217;s legitimate and what&#8217;s not anymore in a way that is in plain-English for non-techies, who are arguably the ones who need this information the most. My mom needs information like this. My mom [...]]]></description>
			<content:encoded><![CDATA[<p>As the number of scams and malware threats increase on Facebook and Twitter, it can be hard to keep track of what&#8217;s legitimate and what&#8217;s not anymore in a way that is in plain-English for non-techies, who are arguably the ones who need this information the most.<br />
<span id="more-3348"></span><br />
My mom needs information like this. My mom isn&#8217;t going to read the <a href="http://nakedsecurity.sophos.com/">Sophos Security blog</a>. I do read that blog &#8211; and many, many others related to security, so I&#8217;ve put together two new resources for the &#8220;normal&#8221; (non-technical) people out there who keep falling for these rogue applications. </p>
<p><strong>On Facebook, &#8220;like&#8221; the <a href="http://www.facebook.com/scamdb">Social Media Scam Alerts</a></strong> page to get updates as new Facebook scams and rogue applications are identified. The posts will be short, without a lot of technical jargon to make them easy to share with your less brainy friends and family. </p>
<p><strong>On Twitter, follow <a href="http://twitter.com/scamdb">@scamdb</a></strong> for tweets about the latest scams, phishing and rogue apps affecting Twitter users. </p>
<h3>Social Media Security Tips</h3>
<p>In addition to staying informed about bad applications, some better practices and common sense will go a long way here. </p>
<p>We have become completely desensitized to clicking on things in websites, our social networks, on our smartphones and in email &#8211; and this is why these types of attacks are so wildly successful, often garnering tends of thousands of &#8220;likes&#8221; before they are detected and banned by Facebook or Twitter. More often than not on social media websites, the attack is not a <em>technical</em> attack, it&#8217;s a <em>social engineering</em> attack, tricking you into clicking on something because what they are offering is something you want and you found the link through a reasonably trusted source (your friends twitter stream or Facebook news feed.) </p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/03/fiona-xie-clickjack.jpg" alt="" title="fiona-xie-clickjack" width="498" height="157" class="aligncenter size-full wp-image-3351" /></p>
<p><strong>Be skeptical.</strong> If something looks too good to be true, it probably is, even if you trust the person it came from.</p>
<p><strong>Confirm before you click. </strong> If you&#8217;re not sure, take a moment to email or (gasp!) call your friend and confirm they actually intentionally posted that message. If they didn&#8217;t, you&#8217;ll be doing them (and all of *their* friends) a favor by bringing it to their attention quickly. </p>
<p>If your friend posted to their Facebook wall that they are stuck in London and need money for passport/plan home/etc &#8211; resist the urge to immediately send cash. Be rational, contact them using a different method (email, phone) and confirm that it&#8217;s really them. Use common sense. Did your friend even mention they were going to London?</p>
<p>That &#8220;stuck in London&#8221; scam has made its rounds for several years through email and social networks. I don&#8217;t know why it seems to always be London, but that&#8217;s almost always the city I&#8217;ve seen in these scams.</p>
<p><strong>Use the SSL version of social networking websites when you&#8217;re surfing on public or unsecured wifi.</strong> <a href="http://www.readwriteweb.com/archives/ashton_kutchers_twitter_account_hacked_at_ted.php">As Ashton Kutcher learned this week at TED</a>, non-encrypted sessions + a little Firefox addon called <a href="http://codebutler.github.com/firesheep/">Firesheep</a> = getting pwned in front of your six-and-a-half-million Twitter followers.</p>
<p><a href="http://www.snipe.net/wp-content/uploads/2011/03/kutchersheeped.jpg"><img src="http://www.snipe.net/wp-content/uploads/2011/03/kutchersheeped-476x560.jpg" alt="" title="kutchersheeped" width="476" height="560" class="aligncenter size-large wp-image-3350" /></a></p>
<p>Facebook offers a clunky (and currently unreliable) way to <a href="http://www.facebook.com/blog.php?post=486790652130">switch to HTTPS for your Facebook sessions</a>, but that method resets back to HTTP if you access a non-SSL application. My understanding is that Facebook security is aware of the bug that resets the default preference back to non-SSL, but I don&#8217;t think it&#8217;s been fixed yet.</p>
<p>An alternative is using something like the Electronic Frontier Foundation&#8217;s <a href="https://www.eff.org/https-everywhere">HTTPS Everywhere addon</a>. The first release of this addon was a little buggy, but the second release seems more stable. (The first version rendered Amazon.Com effectively useless.) You can select which sites you want to use HTTPS Everywhere on, and it will always force the HTTPS (versus the plain HTTP) connection.  </p>
<p><strong>Ideally, you should try to avoid public or unsecured wifi connections whenever possible.</strong> Make sure your computer and smartphone preferences are to NOT automatically join wifi networks. If you have to be on public wifi, your best bet will be to <a href="http://lifehacker.com/#!5487500/five-best-vpn-tools">tunnel your traffic over VPN</a>, but not everyone is going to have that as an option.</p>
<p>In the big, scary internet, there are countless ways your personal information and login credential are at risk. Some of these are technical vulnerabilities in the websites you trust your information to, but the social engineering approach is gaining tremendous momentum.  It&#8217;s cheap, it&#8217;s fast, and it works.  Remember that even if you think you have nothing of value, when you are careless with your security, you are also putting your friends and family at risk.</p>
<p>Take a moment to check out the <strong><a href="http://www.snipe.net/2011/01/security-keynote/">security presentation</a></strong> I posted a few weeks back that covers <strong>important information on privacy and password security</strong>, and <strong>consider joining the new <a href="http://www.facebook.com/scamdb">Facebook</a> and <a href="http://twitter.com/scamdb">Twitter</a> resources</strong>. </p>

 <script type="text/javascript">
	<!--
		function onover(what){
	document.getElementById('blurbtext').innerHTML=''+what+'';
	}
	function onout(){
	document.getElementById('blurbtext').innerHTML='&nbsp;';
	}
	-->
	</script>



<h3 style="padding-bottom: 0px; margin-bottom: 0px;">Also check out: <br /><span id="blurbtext"><br /></span></h3>

<div id="relatedposts">




		
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/06/there-is-no-such-thing-as-a-social-media-marketer/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/06/welcome_douchebag.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="There is NO SUCH THING as a Social Media Marketer" height="90" width="90" onmouseover="onover('There is NO SUCH THING as a Social Media Marketer')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/12/viral-marketing-or-social-media-spam/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/12/spam_1-283x300.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Twitter Retweet Contests: Viral Marketing or Social Media Spam?" height="90" width="90" onmouseover="onover('Twitter Retweet Contests: Viral Marketing or Social Media Spam?')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2011/05/rogue-mac-antivirus/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2011/05/malware-mac-finder2.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Rogue Antivirus Attacks Tailored to Mac and PC" height="90" width="90" onmouseover="onover('Rogue Antivirus Attacks Tailored to Mac and PC')" onmouseout="onout()" /></a></div>

	</div>

]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2011/03/twitter-facebook-scams-rogue-apps/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Security Keynote Download</title>
		<link>http://www.snipe.net/2011/01/security-keynote/</link>
		<comments>http://www.snipe.net/2011/01/security-keynote/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 23:38:23 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Freebies]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[infosec]]></category>
		<category><![CDATA[keynote]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=3275</guid>
		<description><![CDATA[I recently gave a low-tech security and social engineering talk at my company to help raise awareness of better password practices and scenarios to be on the lookout for. The deck is 36 slides, and you can download it in PDF, .key or as images. I will warn you that a few slides are not [...]]]></description>
			<content:encoded><![CDATA[<p>I recently gave a low-tech security and social engineering talk at my company to help raise awareness of better password practices and scenarios to be on the lookout for. The deck is 36 slides, and you can download it in PDF, .key or as images.<span id="more-3275"></span></p>
<p>I will warn you that a few slides are not appropriate for all corporate environments &#8211; or any corporate environments, really. But you&#8217;re welcome to use the bits that may be helpful to you. </p>
<p>My company is small, so I omitted the scenarios that are really more appropriate for large companies with IT departments they do not know personally. My office is open (everyone can see each other), so someone calling and claiming to be from IT would stand out as someone who is full of shit pretty quickly.</p>
<p>This isn&#8217;t meant to be all-encompassing, and the audience is not meant to be a technical one. It seemed to go over well though, and enough people laughed that I think it kept their attention. More importantly perhaps, more than half of them left looking a little alarmed, which was really the whole point. Also note that the slides don&#8217;t reflect the entire content of the presentations, since I would be a shitty speaker if I were just reading from slides.</p>
<p><strong><a href="http://www.snipe.net/wp-content/uploads/security-keynote/security-keynote.key.pdf">PDF Download</a></strong> | <strong><a href="http://www.snipe.net/wp-content/uploads/security-keynote/security-keynote.key">Keynote Download</a></strong> | <strong><a href="http://www.snipe.net/wp-content/uploads/security-keynote/security-keynote-jpegs.zip">Zipped Images Download</a></strong></p>
<p>If the topic of social engineering is of interest to you and you&#8217;d like to learn more, I strongly recommend picking up the following books &#8211; they are outstanding and worth every penny (and then some):</p>
<ul>
<li><strong>The Art of Deception: Controlling the Human Element of Security</strong> [<a href="http://www.amazon.com/gp/product/076454280X?ie=UTF8&#038;tag=snipenet&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=076454280X">paperback</a>]  [<a href="http://www.amazon.com/gp/product/B000S1LVUY?ie=UTF8&#038;tag=snipenet&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B000S1LVUY">kindle</a>]<br /> by <a href="http://twitter.com/kevinmitnick">Kevin Mitnick</a></li>
<li><strong>Social Engineering: The Art of Human Hacking</strong> [<a href="http://www.amazon.com/gp/product/0470639539?ie=UTF8&#038;tag=snipenet&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0470639539">paperback</a>]  [<a href="http://www.amazon.com/gp/product/B004EEOWH0?ie=UTF8&#038;tag=snipenet&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B004EEOWH0">kindle</a>] <br /> by <a href="http://twitter.com/humanhacker">Christopher Hadnagy</a></li>
</ul>
<p>Both of these books are really exceptional, and even if you&#8217;re not in the information security field, they&#8217;re damned interesting to read. Some of the case studies in this presentation were taken directly from these books, as both have extensive detailed examples that may be more suitable for the type of company you work for.</p>
<p>Be sure to check out <a href="http://www.social-engineer.org/podcast/">Chris&#8217; social engineering podcast</a> as well, and check out <a href="http://www.social-engineer.org/episode-017-dissecting-the-art-of-human-hacking/">the episode where I was a guest</a>.</p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.001-001-560x420.jpg" alt="" title="security-keynote.001-001" width="560" height="420" class="aligncenter size-large wp-image-3277" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.002-001-560x420.jpg" alt="" title="security-keynote.002-001" width="560" height="420" class="aligncenter size-large wp-image-3278" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.003-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.004-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.005-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.006-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.007-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.008-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.009-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.010-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.011-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.012-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.013-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.014-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.015-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.016-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.017-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.018-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.019-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.020-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.021-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.022-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.023-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.024-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.025-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.026-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.027-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.028-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.029-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.030-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.031-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.032-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.033-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.034-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.035-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>
<p><img src="http://www.snipe.net/wp-content/uploads/2011/01/security-keynote.036-001-560x420.jpg" alt="" title="security-keynote.003-001" width="560" height="420" class="aligncenter size-large wp-image-3279" /></p>

 <script type="text/javascript">
	<!--
		function onover(what){
	document.getElementById('blurbtext').innerHTML=''+what+'';
	}
	function onout(){
	document.getElementById('blurbtext').innerHTML='&nbsp;';
	}
	-->
	</script>



<h3 style="padding-bottom: 0px; margin-bottom: 0px;">Also check out: <br /><span id="blurbtext"><br /></span></h3>

<div id="relatedposts">




		
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2008/12/warcraft-security-better-than-banking-security/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2008/12/product.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Warcraft Security Better Than Banking Security?" height="90" width="90" onmouseover="onover('Warcraft Security Better Than Banking Security?')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2010/11/wordpress-security-book/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2010/11/secure-wordpress.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Upcoming WordPress Security Book" height="90" width="90" onmouseover="onover('Upcoming WordPress Security Book')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2011/03/twitter-facebook-scams-rogue-apps/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2011/03/kutcherpic.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Know Your Social Media Scams &#038; Rogue Apps" height="90" width="90" onmouseover="onover('Know Your Social Media Scams &#038; Rogue Apps')" onmouseout="onout()" /></a></div>

	</div>

]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2011/01/security-keynote/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Use Your Own Domain for OpenID Logins</title>
		<link>http://www.snipe.net/2010/02/use-your-own-domain-for-openid-logins/</link>
		<comments>http://www.snipe.net/2010/02/use-your-own-domain-for-openid-logins/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 03:04:10 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[myspace]]></category>
		<category><![CDATA[openid]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=2902</guid>
		<description><![CDATA[I&#8217;m a big fan of OpenID, and the concept of a unified login system, but the implemention of OpenID on many of the websites that use it is often miserable. This article can simplify your OpenID login experience. NOTE: If you want to skip all my chatter and explanation and just get to the code, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a big fan of <a href="http://openid.net/">OpenID</a>, and the concept of a unified login system, but the implemention of OpenID on many of the websites that use it is often miserable. This article can simplify your OpenID login experience.<br />
<span id="more-2902"></span></p>
<p>NOTE: If you want to skip all my chatter and explanation and just get to the code, check out <a href="http://blog.stackoverflow.com/2009/01/using-your-own-url-as-your-openid/" target="_blank">Jeff Atwood&#8217;s post on the StackOverflow blog</a>. It&#8217;s much less verbose, but probably not ideal for people unfamiliar with OpenID.</p>
<h3>What is OpenID?</h3>
<p>OpenID is &#8220;a decentralized authentication protocol that makes it easy for people to sign up and access web accounts&#8221;. That means if you create an account on any website using OpenID (such as Google, Yahoo, Flickr, MySpace, AOL, WordPress.Com, LiveJournal, Get Satisfaction, and more recently Facebook, to name just a few), you can use that account to login to any website using OpenID. It attempts to simplify logging into websites by using one account, and therefore not having to create a new username and password set for every website on which you wish to create an account.</p>
<p>Many studies have shown that the average web user feels overwhelmed by the number of usernames and passwords they have to remember, which means they often end up using very simple paswords that are easy to remember, and often use the same password for multiple websites. </p>
<p>This is, of course, a big no-no. If one of the websites gets compromised and user login data is exposed, malicious parties now potentially have access to all of the websites for which the user has used the same password. So if my BigButtPorn.Com account gets hacked, and I use the same login for my bank, my banking login credentials are now compromised. Unifying a login makes user registrations easier, so people will arguably be more apt to use a strong password for that one OpenID account. (I should mention that I have no idea if BigButtPorn.Com exists, or if it uses OpenID. As such, the example above should not be considered an endorsement for BigButtPorn.Com, or any other kind of butt porn, for that matter.)</p>
<p>Incidentally, in this day and age, there is absolutely no reason for anyone to still be using the same password for ANY two websites. Thanks to applications like <a href="http://agilewebsolutions.com/products/1Password" target="_blank">1Password</a>, hard-to-guess passwords are automatically generated and stored for easy access, and every popular web browser allows you to store passwords. Remembering passwords isn&#8217;t even something people should be concerned with.</p>
<h3>How Does it Work?</h3>
<p>If I have a Livejournal account where my journal address is snipeyhead.livejournal.com and I want to use my LiveJournal OpenID to login to a different website, I would enter <em>snipeyhead.livejournal.com</em> in the OpenID url field of the site:</p>
<p><img class="aligncenter size-large wp-image-2920" title="snipeyhead" src="http://www.snipe.net/wp-content/uploads/2010/02/snipeyhead-560x218.png" alt="" width="560" height="218" /></p>
<p>(Alternatively, if the OpenID provider&#8217;s icon is listed, as LiveJournal&#8217;s is above, I could login without knowing my OpenID url. Most OpenID logins will give you the option of selecting which service you&#8217;d like to use, or manually entering your OpenID url.)</p>
<p>If this is the first time I&#8217;m using this OpenID account to login to this particular website, I&#8217;ll be taken to my OpenID provider&#8217;s website (in this example, Livejournal.Com) and I&#8217;ll be asked if I want to allow the website to use my OpenID account to authenticate. I will then confirm this, and be taken back to the original website I&#8217;m trying to login to.</p>
<p>Pretty simple, right? Unfortunately, this is often not as straightforward as it seems, not because of OpenID itself, but because of the way many websites implement their OpenID system.</p>
<h3>Where it Gets Wonky</h3>
<p>The way many websites implement OpenID can be utterly maddening, if you have more than one OpenID account &#8211; which you probably do.</p>
<p><strong>I was recently on the <a href="http://uxexchange.com/" target="_blank">UXExchange</a> website and was nearly apoplectic with rage as I tried OpenID after OpenID account.</strong> I know I have an account there. I have had an account there since the day they launched. But I have NO idea which OpenID I created my account with.</p>
<p>After the 5th try, I gave up and realized I&#8217;d have to create a new account. This pissed me off for a few reasons, not the least of which being that in this particular community, prior community engagement (the number of questions you&#8217;ve posted and answered, etc) establish your rank. By creating a new account, I&#8217;m effectively seen by the community as a newbie, and I&#8217;m enough of a nerd that stuff like that matters to me. </p>
<p>Ironically, UXEchange is a <em>usability and information architecture</em> community. I know that I can email them to consolidate my accounts, and I probably will, but this experience really helped underline how easy it is to screw up the user interface for OpenID. </p>
<p>In short, the problem becomes remembering which out of the collection of OpenIDs you have is the one you&#8217;ve used to initially create an account with a particular website.</p>
<h3>Making it a Little Easier</h3>
<p><strong>To use OpenID without losing your mind, you have a few options. </strong>The easier would be to decide that you will only ever use one specific OpenID to login to third-party websites, and leave it at that. The problem I have with that is that mainstream adoption of OpenID has happened over a very long period of time, so I may have started off with only LiveJournal as an OpenID account, but then gradually Google, Blogger, Myspace, etc added OpenID support, so I decided that I&#8217;d rather use one of the newer ones instead of my LiveJournal account. This is how things got fragmented and confusing for me, and I would assume other people as well.</p>
<p><strong>Fortunately, there is a little known feature of OpenID called <em>delegation</em> that can help save your sanity. </strong>If you have your own website with it&#8217;s own domain name, you can delegate your own domain name to act as your OpenID.</p>
<p><strong>I decided to start from scratch.</strong> I don&#8217;t know if I&#8217;ll always have my LiveJournal account, I don&#8217;t know how much I trust Google anymore, I hate MySpace, I don&#8217;t use Blogger, and so on. I created an account at <strong><a href="https://www.myopenid.com/" target="_blank">myopenid.com</a></strong>, a very simple OpenID provider that is easy to remember and offers persona managament.</p>
<p>A 20-second registration later, I was set up with <strong>snipe.myopenid.com</strong> as my new OpenID identifier.</p>
<p>To enable my domain, snipe.net, to act as a delegate for MyOpenID.Com, I added the following to the header of Snipe.Net:</p>
<p>[sourcecode='html']
<link rel="openid.server" href="http://www.myopenid.com/server"  />
2.
<link rel="openid.delegate" href="http://snipe.myopenid.com/" />
3.
<link rel=”openid2.provider” href=”http://www.myopenid.com/server” />
4.
<link rel=”openid2.local_id” href=”http://snipe.myopenid.com/” />[/sourcecode]</p>
<p>Now, instead of trying to remember which OpenID provider I used, I use &#8216;snipe.net&#8217; as my OpenID manual url, and it automatically knows to use my account at MyOpenID to authenticate. Since I&#8217;m the only one that has control over Snipe.Net, I&#8217;m the only one that can delegate Snipe.Net as snipe.myopenid.com.</p>
<p><img src="http://www.snipe.net/wp-content/uploads/2010/02/snipenet-560x220.png" alt="" title="snipenet" width="560" height="220" class="aligncenter size-large wp-image-2922" /></p>
<p>So that&#8217;s all there is to it. I have heard that delegating using Google and Yahoo is tricky, if not impossible, but I haven&#8217;t looked into it. I personally prefer to avoid letting either of those companies have too much of a reach over what I&#8217;m commenting on and where.</p>

 <script type="text/javascript">
	<!--
		function onover(what){
	document.getElementById('blurbtext').innerHTML=''+what+'';
	}
	function onout(){
	document.getElementById('blurbtext').innerHTML='&nbsp;';
	}
	-->
	</script>



<h3 style="padding-bottom: 0px; margin-bottom: 0px;">Also check out: <br /><span id="blurbtext"><br /></span></h3>

<div id="relatedposts">




		
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2007/02/my-forum-domain-banlist/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="My forum domain banlist" height="90" width="90" onmouseover="onover('My forum domain banlist')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/05/new-facebook-phishing-attempts/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/05/phishing.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="New Facebook Phishing Attempts" height="90" width="90" onmouseover="onover('New Facebook Phishing Attempts')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2008/12/warcraft-security-better-than-banking-security/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2008/12/product.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Warcraft Security Better Than Banking Security?" height="90" width="90" onmouseover="onover('Warcraft Security Better Than Banking Security?')" onmouseout="onout()" /></a></div>

	</div>

]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2010/02/use-your-own-domain-for-openid-logins/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Unclutter Your Facebook Feed: Set FB Lite As Your Default</title>
		<link>http://www.snipe.net/2010/01/facebook-lite-default/</link>
		<comments>http://www.snipe.net/2010/01/facebook-lite-default/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 07:44:54 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Life Tools]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[facebook]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=2778</guid>
		<description><![CDATA[Whether you&#8217;re on Facebook for fun or for work, chances are your newsfeed is crammed full of inane application notifications that make it hard to actually find the real content you actually want to see from your friends. UPDATE: Sadly, in April 2010, Facebook shut down FB Lite so this article is now moot. It [...]]]></description>
			<content:encoded><![CDATA[<p>Whether you&#8217;re on Facebook for fun or for work, chances are your newsfeed is crammed full of inane application notifications that make it hard to actually find the real content you actually want to see from your friends.</p>
<h2><span id="more-2778"></span>UPDATE: Sadly, in April 2010, <a href="http://www.macworld.com/article/150741/2010/04/facebooklite.html?lsrc=rss_main" target="_blank">Facebook shut down FB Lite</a> so this article is now moot. It was a good run while it lasted. <img src='http://www.snipe.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </h2>
<p>Your Facebook friends are total tools with entirely too much free time on their hands. So are mine. If you want to continue to use Facebook but bypass all of the crap that fills your Facebook homepage newsfeed, you&#8217;re in luck.</p>
<h3>Facebook Lite?</h3>
<p>A few months ago, Facebook introduced Facebook Lite &#8211; a pared down version of Facebook for people who were frustrated with the ever-sluggish load time of the normal Facebook homepage. This lite version loads fewer javascript libraries and is blazing fast compared to to dismal experience that regular Facebook.</p>
<p>The speed increase is great &#8211; but there is an awesome added bonus that isn&#8217;t widely publicized:</p>
<p><strong>Using Facebook Lite, you will never see another application notification again.</strong></p>
<p>That&#8217;s right. Facebook Lite does not display application notifications. At all. Which is awesome-covered awesome with awesome filling.</p>
<p>To see it in action, just point your browser to <a href="http://lite.facebook.com">http://lite.facebook.com</a>.</p>
<p><strong>But wait &#8211; there&#8217;s more.</strong></p>
<h3>Kiss Those Application Notifications Goodbye For Good</h3>
<p>Even more awesome, there is a way to <strong>set Facebook Lite as your default view</strong>, so that every time you go to your Facebook homepage newsfeed, it loads the Lite version instead of the Clusterfuck version. Here&#8217;s how to do it:<br />
<strong> </strong></p>
<ol>
<li><strong>Go to <a href="http://lite.facebook.com/settings/defaultsite/">http://lite.facebook.com/settings/defaultsite/</a>.</strong></li>
<li><strong>Select Facebook Lite from the radio boxes.</strong></li>
<li><strong>Click &#8220;Save&#8221;.</strong></li>
<li><strong>Rejoice.</strong></li>
</ol>
<p><strong> </strong></p>
<div id="attachment_2780" class="wp-caption aligncenter" style="width: 469px"><a href="http://lite.facebook.com/settings/defaultsite/"><img class="size-full wp-image-2780" title="fb-lite" src="http://www.snipe.net/wp-content/uploads/2010/01/fb-lite.jpg" alt="" width="459" height="194" /></a><p class="wp-caption-text">Set Facebook Lite as your default in your settings</p></div>
<p>That&#8217;s all there is to it. Honest. You&#8217;re free. You&#8217;re welcome.</p>
<p>Granted, this trick won&#8217;t stop your friends from posting a thousand pictures of their cat (yeah, guilty) or drunkenly updating their status in horrifyingly graphic detail that makes you want to claw your eyes out &#8211; but I don&#8217;t think there&#8217;s an app for that yet.</p>

 <script type="text/javascript">
	<!--
		function onover(what){
	document.getElementById('blurbtext').innerHTML=''+what+'';
	}
	function onout(){
	document.getElementById('blurbtext').innerHTML='&nbsp;';
	}
	-->
	</script>



<h3 style="padding-bottom: 0px; margin-bottom: 0px;">Also check out: <br /><span id="blurbtext"><br /></span></h3>

<div id="relatedposts">




		
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2010/05/facebook-fan-pages-10k/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2010/05/fuck-you.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Want to Set a Default Landing Tab on Your Facebook Fan Page? It&#8217;ll Cost You" height="90" width="90" onmouseover="onover('Want to Set a Default Landing Tab on Your Facebook Fan Page? It&#8217;ll Cost You')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/06/fb-fanpages-fbml-box/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/04/facebook_pic.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Static FBML: Not Every Facebook Fan Page Needs An Application" height="90" width="90" onmouseover="onover('Static FBML: Not Every Facebook Fan Page Needs An Application')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2010/04/google-analytics-on-facebook-fan-pages/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2010/04/1123617456_bef53fb54c.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Using Google Analytics on Facebook Fan Pages" height="90" width="90" onmouseover="onover('Using Google Analytics on Facebook Fan Pages')" onmouseout="onout()" /></a></div>

	</div>

]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2010/01/facebook-lite-default/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Practical Mod_Rewrite for Web Developers</title>
		<link>http://www.snipe.net/2009/02/practical-mod_rewrite/</link>
		<comments>http://www.snipe.net/2009/02/practical-mod_rewrite/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 23:44:53 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=1481</guid>
		<description><![CDATA[On *nix-based servers, mod_rewrite can be a powerful tool in any web monkey&#8217;s arsenal, however it still voodoo to many, while others may not even be aware that it can help them at all. What is Mod_Rewrite? Simply put, mod_rewrite is an Apache module that let&#8217;s you rewrite urls based on rules you define. That&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>On *nix-based servers, mod_rewrite can be a powerful tool in any web monkey&#8217;s arsenal, however it still voodoo to many, while others may not even be aware that it can help them at all.</p>
<h2><span id="more-1481"></span>What is Mod_Rewrite?</h2>
<p><strong>Simply put, mod_rewrite is an Apache module that let&#8217;s you rewrite urls based on rules you define.</strong> That&#8217;s it. Seriously.</p>
<p>Regardless of how confusing some of the rules you may have come across appear to be, all they are doing is taking one url and rewriting as a different url. This rewriting happens at the server level, before the user&#8217;s browser sees anything, so the end result is seamless to them.</p>
<p><strong>When you hear about &#8220;search engine friendly&#8221; urls, you&#8217;re most often seeing mod_rewrite in action.</strong> Mod_rewrite is the Apache module that let&#8217;s you turn a url like:</p>
<p><a class="linkification-ext" title="Linkification: http://www.example.com/shop.php?category=Books&amp;Title=Foo" href="http://www.example.com/shop.php?category=Books&amp;Title=Foo">http://www.example.com/shop.php?category=Books&amp;Title=Foo</a></p>
<p>into:</p>
<p><a class="linkification-ext" title="Linkification: http://www.example.com/shop/books/foo.html" href="http://www.example.com/shop/books/foo.html">http://www.example.com/shop/books/foo.html</a></p>
<p><strong>Some other common uses for mod_rewrite:</strong></p>
<ul>
<li>Directing all traffic from multiple domain names to one domain</li>
<li>Directing all traffic from www and non-www to one location</li>
<li>Blocking traffic from specific websites</li>
<li>Blocking spammy searchbots and offline browsers from spidering your site and eating your bandwidth</li>
<li>Mask file extensions</li>
<li>Preventing image hotlinking (other web pages linking to images on your server)</li>
</ul>
<p>Apache&#8217;s mod_rewrite can be intimidating if you start where you&#8217;re supposed to start &#8211; <a href="http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html" target="_blank">the Apache documentation</a>, however there are some very useful, common &#8211; and <em>simple</em> rewrite rules that you may wish to consider implementing into your site development plan, if you&#8217;re not doing so already.</p>
<p><strong>Note: If you&#8217;re using Microsoft IIS, you have a few options</strong>, but I don&#8217;t use IIS, so I&#8217;m afraid I won&#8217;t be of much help to you beyond telling you where to look. <a href="http://www.isapirewrite.com/" target="_blank">ISAPI ReWrite</a> seems to be very popular, and there is a free &#8220;lite&#8221; version available.</p>
<h2>Getting Started</h2>
<p>Your mod_rewrite rules typically live in an .htaccess file in your web root. You can only have one .htaccess per directory, but you can have individual .htaccess files in sub-directories under the web root. I generally do not recommend doing this. If mod_rewrite rules from one .htaccess conflict with the rules from the .htaccess in a sub-directory, it can be a real pain in the ass to troubleshoot. Try to avoid it.</p>
<p>When you&#8217;re adding mod_rewrite rules to your .htaccess file, you&#8217;ll want to start by using a conditional that checks to see if mod_rewrite is installed on your server. This can prevent getting a 500 Internal Server Error if you don&#8217;t.</p>
<p>[source='c#']<ifmodule mod_rewrite.c><br />
# Start your (rewrite) engines&#8230;<br />
RewriteEngine On</p>
<p># rules and conditions go here&#8230;<br />
</ifmodule>[/source]</p>
<h2>Directing Multiple Domain Names to a Single Domain Url</h2>
<p>If you have multiple domain names pointing to the same site, mod_rewrite can also help you direct all traffic to a single domain url, to improve your search engine rankings. Search engines don&#8217;t take too kindly to the same content living at multiple urls &#8211; they usually think its an attempt to spam the search engine &#8211; and you can actually be penalized for it. To redirect all traffic to one specific domain name,</p>
<p>[source='css']RewriteCond %{HTTP_HOST} !^www\.snipe\.net$ [NC]<br />
RewriteRule ^(.*)$ http://www.snipe.net/$1 [R=301][/source]</p>
<p>This basically says &#8220;if the domain requested (the HTTP_HOST) does not match <em><a class="linkification-ext" title="Linkification: http://www.snipe.net" href="http://www.snipe.net">www.snipe.net</a></em> then rewrite the url as <em><a class="linkification-ext" title="Linkification: http://www.snipe.net" href="http://www.snipe.net">www.snipe.net</a></em>&#8220;. (Note the escaping slashes after the www and before the .net in the condition.)  The R=301 specifies that the redirect should be a 301 redirect, meaning that the address has moved permanently and search engines should use the new url instead of the old one.</p>
<h2>To www or not to www</h2>
<p>Even if you have only one domain name, if you&#8217;re not redirecting traffic from the &#8220;www&#8221; version to the &#8220;non-www&#8221; version (or vice versa), you may encounter this problem. Whether or not you choose to use the www in your url is largely a branding decision more than anything else (i.e. it doesn&#8217;t really matter in most cases) &#8211; but you should pick one and stick with it.</p>
<p><strong>Require (force) the www</strong></p>
<p>[source='css']RewriteCond %{HTTP_HOST} !^www\.snipe\.net$ [NC]<br />
RewriteRule ^(.*)$ http://www.snipe.net/$1 [R=301,L][/source]</p>
<p><strong>Remove the www</strong></p>
<p>[source='css']RewriteCond %{HTTP_HOST} !^snipe\.net$ [NC]<br />
RewriteRule ^(.*)$ http://snipe.net/$1 [R=301,L][/source]</p>
<h2>Deny traffic by referrer</h2>
<p>There may be a few reasons why you want to block traffic by referrer. Maybe you&#8217;re getting a lot of bandwidth-sucking hits from a spammy website &#8211; or maybe someone is linking to you that you feel does not represent you very well, and you want to pull the plug on traffic from coming their site.</p>
<p>[source='css']RewriteCond %{HTTP_REFERER} onebadsite\.com [NC,OR]<br />
RewriteCond %{HTTP_REFERER} anotherbadsite\.com [NC]<br />
RewriteRule .* &#8211; [F,L][/source]</p>
<p>In this snippet, the rule is saying &#8220;If the referring url is onebadsite.com OR anotherbadsite.com, redirect the user to an HTTP Forbidden error.&#8221; The NC specifies that the condition is <em>not</em> case-sensitive, and the OR flag is&#8230; well&#8230; an &#8220;or&#8221;. OR is used with multiple RewriteCond directives to combine them with OR instead of the implicit AND.</p>
<p><img class="aligncenter size-large wp-image-1501" title="snipe-sucks" src="http://www.snipe.net/wp-content/uploads/2009/02/snipe-sucks-560x509.png" alt="snipe-sucks" width="560" height="509" /></p>
<p><strong>Keep in mind &#8211; this method of blocking traffic is hardly foolproof, at least in the latter of the two scenarios above. </strong>If the webmaster of onebadsite.com is linking to you in a way or context you do not want (and you&#8217;ve asked them to remove the link), the above method will cause a user on onebadsite.com&#8217;s website who has clicked on the link to you from onebadsite.com to hit a Forbidden error. If that user has half a brain, they may very well just google your site name or try to access it later from a bookmark &#8211; but it&#8217;s a simple measure you can take to keep the idjits out.</p>
<h2>Blocking Bad Bots and Spiders</h2>
<p>While there is some potential debate as to what is a &#8220;bad&#8221; bot or spider, the consensus seems to that a bot is bad if they do more harm than good, such as e-mail harvesters, site rippers that download entire websites for offline browsing, etc. Even if bandwidth isn&#8217;t so much an issue, I like to block these just on principle.</p>
<p>Please note &#8211; this list is not mine &#8211; it was <a href="http://www.javascriptkit.com/howto/htaccess13.shtml" target="_blank">directly nicked from a list on JavascriptKit</a>.</p>
<p>[source='css']RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]<br />
RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR]<br />
RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Wget [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Zeus<br />
RewriteRule ^.* &#8211; [F,L][/source]</p>
<p><strong>Once again, this method isn&#8217;t foolproof. </strong>The HTTP_USER_AGENT is quite easily spoofed, and some site ripping applications even allow you to specify what user agent you want to appear as. But if your site is large, implementing this list may make a significant impact on your monthly bandwidth bill.</p>
<h2>Mask File Extensions</h2>
<p>If for some reason you want to hide the fact that you&#8217;re using PHP (or Perl, or whatever), all it takes is a simple line in your .htaccess to have your .php files look like .html files:</p>
<p>[source='css']RewriteRule ^(.*)\.html$ $1.php [R=301,L] [/source]</p>
<p>You could even completely obfuscate it if you wanted to, for example serving files that end in .snipe that are really .php files:</p>
<p>[source='css']RewriteRule ^(.*)\.snipe$ $1.php [R=301,L] [/source]</p>
<p>In these examples, redirects all files that end in .html (or .snipe) to be served from <em>filename.php</em> so it looks like all your pages are .html (or .snipe) but really they are .php. Notice again that we&#8217;re using a 301 redirect.</p>
<h2>Prevent Image/File Hotlinking</h2>
<p>This snippets prevents people from hotlinking to your files &#8211; that is, linking directly to files hosted on your server from their website, thus sucking your bandwidth. It should be noted that in my experience, this rewrite rule seems somewhat spotty, and doesn&#8217;t always work, so be sure to test thoroughly.</p>
<p>[source='css']RewriteCond %{HTTP_REFERER} !^$<br />
RewriteCond %{HTTP_REFERER} !^http://(www\.)?snipe.net/.*$ [NC]<br />
RewriteRule \.(gif|jpg|swf|flv|png)$ /images/dont_steal_bandwidth_jackass.png [R=302,L] [/source]</p>
<p>This rule basically says &#8220;If the request&#8217;s referrer is not blank (meaning the file was accessed directly in a browser) AND is not snipe.net (case insensitive), rewrite any files that end in .gif, .jpg, .swf, .flv or .png to display the file /images/dont_steal_bandwidth_jackass.png.</p>
<p>I have a friend who was trolling through their server logs (as he tended to do) and he realized that someone was using an image from his server, a Debian logo, if I recall correctly &#8211; as their MySpace background image. My friend spicyjack, being of the snarky persuasion, set up a leech=prevention mod_rewrite that directed all requests for that image that were not coming FROM his server to an image that was&#8230; shall we say&#8230;. not something you&#8217;d want as the background image of your MySpace page. (Google &#8220;hotcurry.jpg&#8221; if you&#8217;re really curious. It&#8217;s NSFW. Or anything, or that matter.)</p>
<h2>Search Engine Friendly URLS &#8211; Make Dynamic Pages appear Static</h2>
<p>To turn site.com/index.php?category=foo&amp;subcat=bar into site.com/category-foo/bar.html, just use:</p>
<p>[source='css']RewriteRule ^category-([0-9]+)/([0-9A-Za-z]+).html index.php?category=$1&amp;subcat=$2 [/source]</p>
<p>The category number and the subcategory name are variables, these are now represented by $1 and $2. The round brackets and the stuff inside them will be replaced by the variables. The things inside the round brackets are the regex rules for what the variable can contain. Example [0-9] means that it can contain any number from 0 to 9 and the + sign means that the number can be repeated 1 or more times.</p>
<h2>The [L]ast Word</h2>
<p>The [L] flag tells mod-rewrite that no more rules should be processed after that. Also remember that the order these rules are in DOES matter, so you&#8217;ll want to consider their intended behavior carefully when you&#8217;re planning your .htaccess. If at all possible, have your Apache error logs accessible while experimenting. when mod_rewrite goes wrong, it very often gives you a generic (and infuriating) &#8220;500 Internal Server Error&#8221; instead of anything actually useful to you &#8211; the Apache error logs may help shed some light on things.</p>
<p>Also be sure to test thoroughly whenever using mod_rewrite, since you can seriously break stuff if you&#8217;re not careful.</p>
<h2>More Resources</h2>
<p>Can&#8217;t get enough mod_rewrite? Check out these links for additional information and tips.</p>
<ul>
<li><a href="http://www.htaccesselite.com/mod-rewrite-flags-vt101.html" target="_blank">Mod_Rewrite flags</a></li>
<li><a href="http://www.askapache.com/htaccess/mod_rewrite-tips-and-tricks.html" target="_blank">Mod_rewrite Tips &amp; Tricks</a></li>
<li><a href="http://www.askapache.com/htaccess/mod_rewrite-variables-cheatsheet.html" target="_blank">Mod_Rewrite Cheat Sheet</a></li>
</ul>
<p>And if you&#8217;ve got a handy mod_rewrite rule you can&#8217;t live without, let us know in the comments.</p>

 <script type="text/javascript">
	<!--
		function onover(what){
	document.getElementById('blurbtext').innerHTML=''+what+'';
	}
	function onout(){
	document.getElementById('blurbtext').innerHTML='&nbsp;';
	}
	-->
	</script>



<h3 style="padding-bottom: 0px; margin-bottom: 0px;">Also check out: <br /><span id="blurbtext"><br /></span></h3>

<div id="relatedposts">




		
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2011/01/facebook-https-opt-in/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2011/01/Facebook-Needle.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Facebook Introduces HTTPS Opt-In for Users, Impacts App Developers" height="90" width="90" onmouseover="onover('Facebook Introduces HTTPS Opt-In for Users, Impacts App Developers')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2010/06/upgrading-to-wordpress-3/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2010/06/wordpress-mug.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Upgrading to WordPress 3.0 and Adding Multi-Site" height="90" width="90" onmouseover="onover('Upgrading to WordPress 3.0 and Adding Multi-Site')" onmouseout="onout()" /></a></div>

	</div>

]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2009/02/practical-mod_rewrite/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Tilt-Shift Photos (and How to Fake Them)</title>
		<link>http://www.snipe.net/2009/01/tilt-shift-photography/</link>
		<comments>http://www.snipe.net/2009/01/tilt-shift-photography/#comments</comments>
		<pubDate>Sat, 10 Jan 2009 17:03:52 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[image manipulation]]></category>
		<category><![CDATA[photography]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=886</guid>
		<description><![CDATA[Tilt-shift photography (also known in the industry as &#8220;swing and tilt&#8221;) is a method by which photographers can take an aerial shot of a real-life place that makes it look as though it&#8217;s a miniature model. It&#8217;s a fascinating effect, and I have always found it interesting how the lens can fool the eye into [...]]]></description>
			<content:encoded><![CDATA[<p>Tilt-shift photography (also known in the industry as &#8220;swing and tilt&#8221;) is a method by which photographers can take an aerial shot of a real-life place that makes it look as though it&#8217;s a miniature model. It&#8217;s a fascinating effect, and I have always found it interesting how the lens can fool the eye into believing something that isn&#8217;t real simply by adjusting light and focus. The end-result is very cool, and always reminds me a bit of the intro to Mr. Roger&#8217;s Neighborhood.<span id="more-886"></span></p>
<h2>Some Amazing Examples of Tilt-Shift Photography</h2>
<p>While tilt-shift photography has been gaining momentum, photographers Olivo Barbieri andÂ  <a href="http://www.vincentlaforet.com/" target="_blank">Vincent LaForet</a> were some of the first to bring this technique mainstream, with LaForet&#8217;s work featured in the New York Times and all over the country. I&#8217;ve included a few of his pieces here, but if you like this style, be sure to check out the <strong><a href="http://www.nytimes.com/packages/html/magazine/20070531_VINCENT_FEATURE/blocker.html" target="_blank">New York Times photo slideshow</a></strong> (with fascinating audio) of his work, a great collection of <strong><a href="http://www.smashingmagazine.com/2008/11/16/beautiful-examples-of-tilt-shift-photography/" target="_blank">50 Beautiful Examples of Tilt-Shift Photography</a></strong> by Smashing Magazine, and a <strong><a href="http://www.funtasticus.com/20081128/effective-tilt-shift-photography/" target="_blank">substantial collection on Funtasticus</a></strong> (although I suspect a few of these may be faked &#8211; but more on that later.)</p>
<div id="attachment_891" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.snipe.net/wp-content/uploads/2009/01/lf2.jpg"><img class="size-full wp-image-891" title="lf2" src="http://www.snipe.net/wp-content/uploads/2009/01/lf2.jpg" alt="Photo by Vincent LaForet" width="500" height="349" /></a><p class="wp-caption-text">Photo by Vincent LaForet</p></div>
<div id="attachment_892" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.snipe.net/wp-content/uploads/2009/01/tennis.jpg"><img class="size-full wp-image-892" title="tennis" src="http://www.snipe.net/wp-content/uploads/2009/01/tennis.jpg" alt="Photo by Vincent LaForet" width="500" height="332" /></a><p class="wp-caption-text">Photo by Vincent LaForet</p></div>
<div id="attachment_893" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.snipe.net/wp-content/uploads/2009/01/train.jpg"><img class="size-full wp-image-893" title="train" src="http://www.snipe.net/wp-content/uploads/2009/01/train.jpg" alt="Photo by Vincent LaForet" width="500" height="335" /></a><p class="wp-caption-text">Photo by Vincent LaForet</p></div>
<h2>So How Does it Work?</h2>
<p>According to <a href="http://en.wikipedia.org/wiki/Tilt-shift_photography" target="_blank">Wikipedia</a>:</p>
<blockquote><p>Tilt-shift photography refers to the use of camera movements on small- and medium format cameras. In many cases, it refers to tilting the lens relative to the image plane and using a large aperture to achieve a very shallow depth of field. The technique relies on <a href="http://en.wikipedia.org/wiki/Scheimpflug_principle" target="_blank">the Scheimpflug principle</a> [a geometric rule that describes the orientation of the plane of focus of an optical system (such as a camera) when the lens plane is not parallel to the image plane] and usually requires the use of special lenses.</p>
<p>&#8220;Tilt-shift&#8221; actually encompasses two different types of movements: rotation of the lens, called tilt, and movement of the lens parallel to the image plane, called shift. Tilt is used to control the orientation of the plane of focus (PoF), and hence the part of an image that appears sharp. Shift is used to control perspective, usually involving the convergence of parallel lines.</p></blockquote>
<p>Applying tilt on a small- or medium-format camera usually requires a tilt-shift lens or perspective control lens; shift can be applied with the same type of lens or with a lens that offers only the shift movement.</p>
<p>An article on <a href="http://www.cheapshooter.com/2007/08/24/tilt-shift-photography-its-a-small-world-after-all/" target="_blank">Cheapshooter</a> describes it like this:</p>
<blockquote><p>A tilt-shift lens allows the photographer very exacting control over the depth-of-field in an image, much more than any regular lens could provide. Focus can be restricted to a single, narrow band, with everything else rapidly blurring away. This distorts the appearance and makes the eye think that distances are a lot smaller than they typically are. When applied to a large scene like a city or a museum, everything appears miniature.</p></blockquote>
<p>Tilt-shift and perspective-correction lenses are available for many SLR cameras, but most are far more expensive than comparable lenses without movements. The <strong><a href="http://en.wikipedia.org/wiki/Lensbaby" target="_blank">Lensbaby SLR lens</a></strong> is a low-cost alternative for providing tilt and swing for many SLR cameras, although the effect is somewhat different from that of the lenses just described. Because of the simple optical design, aberrations are significant, and sharp focus is limited to a region near the lens axis. Consequently, the Lensbaby&#8217;s primary application is selective focus. If that&#8217;s what you&#8217;re looking for, however, the Lensbaby may be a great (and affordable) choice.</p>
<h2>Tilt-Shift for the Rest of Us: Miniature Faking</h2>
<p>Unlike my amazingly talented husband, who is a <a href="http://flickr.com/photos/lundegaard/sets/72157607004256283/" target="_blank">professional photographer</a> (among other things), I am less-than-awesome behind a camera. I&#8217;ve managed to pull off a few decent shots in my life, but only thanks to digital cameras, and taking thousands of shots, hoping one might come out the way I want. Seriously, if I were kidnapped by that bad guy from the Saw franchise, and all I had to do to get out was take a decent photo using a camera that doesn&#8217;t auto-focus, I&#8217;d be dead.</p>
<p>My skills are more in the post-production area, using Photoshop to create the effect I am not capable of achieving through my camera alone. I can fake it, even though I can&#8217;t make it.</p>
<p>And just like everything else genuine and cool in this world, you have to figure that eventually someone would figure out how to fake it.</p>
<p>In principle, itâ€™s not hard to make a fake: essentially, pick an area in a photo that you want to sharpen, then blur the rest. (Unnatural color saturation, one helpful fake-tilt-shift tutorial offers, â€œmakes it look more as if itâ€™s built from polystyrene and lichen.â€) In practice, itâ€™s a little harder and takes some time, but the end results are really fun.</p>
<p>Two excellent tutorials on using Photoshop to turn a regular photo into a faked tilt-shift photo can be found on <strong><a href="http://www.tiltshiftphotography.net/photoshop-tutorial.php" target="_blank">TiltShiftPhotography.Net</a></strong> and <strong><a href="http://recedinghairline.co.uk/tutorials/fakemodel/" target="_blank">Receding Hairline</a></strong>, although like any other tutorial for photo editing, it&#8217;s not an exact formula since every photo is different. Once you get a feel for the process, you&#8217;ll want to play around with the settings until you get the end result you&#8217;re looking for.</p>
<p>If you don&#8217;t have any aerial photos laying around to practice on, consider using Google Earth.Â  To get an idea of exactly how amazing this effect can be using Google Earth images, check out <a href="http://www.gearthblog.com/blog/archives/2008/12/tilt_shift_photography_using_google.html" target="_blank">this video</a> on the Google Earth Blog, that does a <strong><a href="http://www.gearthblog.com/blog/archives/2008/12/tilt_shift_photography_using_google.html" target="_blank">video flyover of San Francisco using faked tilt-shift photos</a> </strong>based on images from Google Earth. Simply incredible.</p>
<h2>And, For the Truly Lazy&#8230;</h2>
<p>The website <strong><a href="http://tiltshiftmaker.com/" target="_blank">TiltShiftMaker.Com</a></strong> lets you upload your own real-life photos, and use a simple interface to select the area you want to focus on. Click a button, and boom, you&#8217;re done. If you&#8217;re skeptical that it can be that easy, check out <a href="http://flickr.com/groups/tiltshiftmaker/" target="_blank">their gallery on Flickr</a> and see for yourself.</p>

 <script type="text/javascript">
	<!--
		function onover(what){
	document.getElementById('blurbtext').innerHTML=''+what+'';
	}
	function onout(){
	document.getElementById('blurbtext').innerHTML='&nbsp;';
	}
	-->
	</script>



<h3 style="padding-bottom: 0px; margin-bottom: 0px;">Also check out: <br /><span id="blurbtext"><br /></span></h3>

<div id="relatedposts">




		
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2008/11/photo-retouching-how-to-salvage-a-dark-digital-photo/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2008/11/original_smaller.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Photo Retouching &#8211; How to Salvage a Dark Digital Photo" height="90" width="90" onmouseover="onover('Photo Retouching &#8211; How to Salvage a Dark Digital Photo')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2008/12/techy-spin-on-office-cards/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2008/12/picture-5.png&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Put a Fun, Techy Spin on the Boring Office Card" height="90" width="90" onmouseover="onover('Put a Fun, Techy Spin on the Boring Office Card')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2008/06/tweak-firefox-3-to-display-richer-colors/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2008/06/fx3vsfx2.png&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Tweak Firefox 3 to Display Richer Colors" height="90" width="90" onmouseover="onover('Tweak Firefox 3 to Display Richer Colors')" onmouseout="onout()" /></a></div>

	</div>

]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2009/01/tilt-shift-photography/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Airport in OSX Dropping Wifi Connection</title>
		<link>http://www.snipe.net/2008/12/airport-in-osx-dropping-wifi-connection/</link>
		<comments>http://www.snipe.net/2008/12/airport-in-osx-dropping-wifi-connection/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 16:31:26 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[airport]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=567</guid>
		<description><![CDATA[Ever since buying a new 17&#8243; Macbook Pro, I have been having consistent problems with keeping a wifi connection in my house. I know this is an Apple issue, not a router issue, as I can sit in the exact same spot in the house with Dell and get a strong signal that never drops [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since buying a new 17&#8243; Macbook Pro, I have been having consistent problems with keeping a wifi connection in my house. I know this is an Apple issue, not a router issue, as I can sit in the exact same spot in the house with Dell and get a strong signal that never drops off. Being incredibly frustrated by this problem, I have done a lot of research, and it seems I&#8217;m not the only one having issues. If you&#8217;re here, chances are you&#8217;re having them too.<span id="more-567"></span></p>
<p><span style="text-decoration: line-through;">I am not sure that my problem is actually solved, but</span> With some help from someone suffering a similar problem, my issue was finally solved, but since there are so many things that work for some people and not others, I thought it would be helpful if I compiled a list of options that have been shown to work for some people, so you don&#8217;t have to dig quite as far as I had to. Right now, finding these solutions involves reading literally hundreds of forum and blog posts, so hopefully having them organized in one place will be helpful to someone.</p>
<p>First I&#8217;ll give you a little more detail on what I&#8217;m running and what I&#8217;ve learned:</p>
<p>I have a 17&#8243; Intel-based dual core 2.5 Ghz  Macbook Pro, only about two months old, running Leopard 10.5.6. My router is an Airport Extreme Broadcom BCM43xx 1.0 (5.10.38.24), however I was running into this problem with my old Linksys G router as well. In fact, I ended up shelling out $180 for the new Airport Extreme specifically in an effort to fix this wifi issue. I had realized this wasn&#8217;t necessarily a router issue, but figured the extra antenna in the Airport Extreme N router might help. It didn&#8217;t.</p>
<h2>The Problem:</h2>
<p>From the moment I took the Macbook Pro out of the box, I have had terrible issues with dropped wifi connections in my house. My wifi signal shows full strength, and then suddenly dips down but still appears active, although the connectivity itself drops to zero. This can happen several times a day to literally every 10 seconds. (Just upgrading my WordPress software last night took an hour because I couldn&#8217;t hold onto a connection long enough for the files to upload, and had to keep restarting.)</p>
<p>When the connection drops, I can sometimes get it back before it completely fails by clicking on the Airport icon and letting it scan. Once the status goes from &#8220;scanning&#8221; to &#8220;on&#8221;, the signal comes back. When I do that, the connection recovers fully, but the dropoff can happen again in 5 seconds, so it is clearly not an ideal solution.</p>
<p><img class="aligncenter size-full wp-image-576" title="picture-11" src="http://www.snipe.net/wp-content/uploads/2008/12/picture-11.png" alt="picture-11" width="419" height="218" /></p>
<p>A post on <a href="http://installingcats.com/2008/06/06/airport-wireless-connection-drops-on-leopard-10-5-2/" target="_blank">InstallingCats</a> summed it up nicely:</p>
<blockquote><p>After doing some research, I had a theory that AirPort was searching through old wireless connections within /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist constantly looking for a better signal. And whenever the current wireless connection suffered from minor transient interference (say cordless telephones), it would immediately try to connect to another base station or try to switch to a different channel. Have a look at your version of the airport preferences file by navigating to it in Finder, starting with Macintosh HD, then Library, Preferences, and finally within the SystemConfiguration folder. You can simply hit enter with the file highlighted to use Quick Look. You can also use Terminal to quickly print the file to the screen with the following command: <code>cat /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist</code></p>
<p>Once the AirPort control software in 10.5.2 set about trying to find a better wireless connection, it would never successfully get back your original wireless connection which was really fine. Hence, from time to time, you would see a slight drop in wireless signal strength, then after clicking on the AirPort wireless icon, it would scan for networks for a few seconds, then return to full strength, yet you would have already lost Internet access.</p></blockquote>
<p>Unfortunately, the fixes offered didn&#8217;t work for me, but at least it seems I&#8217;m on the right track in my theories. Not that <em>that</em> does me a lot of good&#8230;</p>
<h2>What I have Learned So Far:</h2>
<p><strong>This is NOT an uncommon problem.</strong> There are literally thousands of posts, both on Mac discussion sites and on the official Apple discussion boards. Apple is aware of the problem, and they evidently made an effort to address it in the recent OSX upgrades. The upgrade to 10.5.6 has solved the problem for some people &#8211; it did not solve the problem for me.</p>
<p><strong>For this specific issue, the router itself is not the issue &#8211; Leopard is the problem.</strong> If your router is working for everyone in the house except your Macs, it may not be worth it to go out and buy a new router. I dumped my old Linksys G-router for the Apple Airport Extreme N-router and although the signal is much stronger now, there have been no changes in the dropout issues. My router was old, so I don&#8217;t regret the upgrade, but if you&#8217;re having the problem discussed here, it probably won&#8217;t help much.</p>
<p>There is <a href="http://forums.macosxhints.com/archive/index.php/t-67942.html" target="_blank">some discussion</a> about how <strong>the aluminum body of the Macbook Pros interferes with wifi signal reception</strong>. (Older PPC macs often had the antenna in their display frame, but newer Macs have the antenna in the hinge.) While I have experienced a weaker signal with Macbook Pro than I did with my Dell, I do not believe this problem is related, as I have seen people with every imaginable kind of Mac laptop having these wifi issue, regardless of whether the laptop is plastic or aluminum.</p>
<p>Since forcing Airport to scan by clicking on the Airport icon works 99% of the time, this leads me to believe that<strong> Airport is either 1) erroneously losing the signal or 2) getting confused and trying to connect to another network, despite already being connected to a preferred network</strong>.</p>
<p><strong>Many people report this problem starting with them upgrading to Leopard.</strong> Apple has apparently been trying to fix it since 10.5.2, but many users are still having the problem, which they never had before upgrading to Leopard.</p>
<h2>Possible Fixes</h2>
<p>In my many hours or research, here are some things you can try that have shown some level of success for people encountering this problem. They did not work for me (or at least not entirely, some seemed to improve things temporarily or marginally) but many users reported success with this, so if if saves you some headache, rock on.</p>
<p>Like any other troubleshooting process, you will want to try these one at a time. If you make a bunch of changes at once and something worked, you won&#8217;t know which change actually fixed it &#8211; and conversely, if you do one thing that fixes it and two other things that break something else, you won&#8217;t know you actually found the fix.</p>
<p><strong>If you&#8217;re running Leopard, upgrade to 10.5.6</strong>. The latest OSX upgrade specifically mentions fixes to some Airport issues, and many users have reported better performance after the update.</p>
<p><strong>If you&#8217;re using an Airport Extreme router, make sure your router&#8217;s firmware is up to date.</strong> You can find the setting to check for updates automatically in: Utilities &gt; Airport Utility &gt; Airport Extreme &gt; Base Station &gt; Options.</p>
<p><strong>Download and install <a href="http://www.chimoosoft.com/products/apgrapher/" target="_blank">AP Grapher</a></strong>, a freeware program for Mac OS X which searches for and displays nearby wireless (AirPort/WiFi) access points along with information about their percent availability, maximum signal strength, and last contact time. At the very worst, the graph visually shows you when your connection is about to crap out &#8211; and at the very best, some people have reported this actually helping to prevent the dropoffs, presumably because AP Grapher is constantly pinging the router.</p>
<p><strong>Set up terminal window to ping your router.</strong> This is easy to do but is obviously not ideal, as you&#8217;ll have to do this every time you connect to your wifi, but it actually seems to have helped for me. If you&#8217;re comfortable with setting up Apple Scripts, Jeff over at the forums on Beyond-School.Org shows you a quick way to automate this in <a href="http://beyond-school.org/2008/06/21/airport-scanning/comment-page-2/#comment-5854" target="_blank">his blog comment post</a>.</p>
<p><strong>Check for (and remove) the RealPlayer Downloader login item. </strong>I never had RealPlayer installed (yuck), so it wasn&#8217;t an issue with me, but a lot of people have reported this as a fix that worked for them.</p>
<ol>
<li>Go to System Preferences</li>
<li>In the fourth row, under Systems, click on the Accounts icon</li>
<li>In the Accounts screen, click on Login Items</li>
<li>Click on RealPlayer Downloader, then remove it from login Items by clicking on the minus sign</li>
</ol>
<p><strong>Try removing security on your router.</strong> I have not tried this myself &#8211; its the only one of the options I&#8217;ve found that I haven&#8217;t tried, as it makes me uncomfortable (which is silly, I know, because wifi networks are SO easily hackable by even the most rudimentary means). Might be worth trying, even if just temporarily to see if it works.</p>
<p><strong>Try manually setting a channel on your router instead of letting it choose automatically. </strong>This is a hit or miss process of course, since we can&#8217;t see which channel is the best option based on interference, but tweaking the channel seems to have worked for people. A lot of people report 5 being particularly successful, but that seems arbitrary to me. That said, a lot of this stuff seems arbitrary, and if you&#8217;re as frustrated as I have been, you&#8217;ll probably try it.</p>
<p>Directly in conflict with this advise, according to <a href="http://installingcats.com/2008/06/06/airport-wireless-connection-drops-on-leopard-10-5-2/" target="_blank">a post on InstallingCats</a>, &#8220;Change wireless channel on your wifi router (e.g. AirPort Extreme base station, NetGear, Linksys) from 6 (the default) to anything from 1-4 or 8 to 11. Please refer to your router&#8217;s instruction manual on how to do this. The reason for avoiding channels 5 and 7 is that wifi routers by design will automatically switch to one channel above or below their current channel when wifi signal noise passes a certain value. Thus, if you were having problems on channel 6, your router and AirPort have already tried channels 5 and 7 and you&#8217;re still experiencing problems.&#8221;</p>
<p><strong>Set Airport to NOT display an icon in the menu bar.</strong> You can do this by going to System Preferences &gt; Network, selecting Airport in the left side options and un-checking the &#8220;Show Airport status in menu bar&#8221; option. I&#8217;ve had mixed results with this one. It seems like the dropouts *are* fewer when I do this, but when it does drop, my only way of getting it back before complete disconnection is to force Airport to scan using that icon. So I have the problem less often, but when it happens, I have to go back into System Preferences &gt; Network and recheck the box, then click on the icon to force it to come back. A little time-consuming when you&#8217;re in the process of getting your face eaten off by a Fel Reaver while playing World of Warcraft. <img src='http://www.snipe.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><strong>Check the &#8220;Ask to Join New Networks&#8221; option. </strong>In System &gt; Network &gt; Airport, there is a checkbox that allows you to toggle whether or not you wish to be asked to join a wireless network that isn&#8217;t in your known networks list. Checking this may help some people by telling Airport to not try automatically connecting you to a network that isn&#8217;t in your preferred networks list.</p>
<p><strong>Minimize interference from other sources. </strong>If possible, use the 5Ghz transmission frequency/band for your wireless router. Most wireless devices (nearly all wireless routers and cordless telephones) in homes use the 2.4Ghz transmission band. Avoiding this band will result in much less radio noise. You would change this configuration option in your router settings, not on your Mac.</p>
<p><strong>Remove the AirPort preferences file.</strong> Locate the file named com.apple.airport.preferences.plist, which is stored in the /Macintosh HD/Library/Preferences/SystemConfiguration/ folder and remove it (after copying to the desktop, just to have a backup). Then reboot the computer and set up the WiFi connection again.</p>
<h2>What Finally Worked For Me</h2>
<p>Neil deMause, a commenter on BeyondSchool.Org was in a similar situation, having tried all of the above solutions (a great many of which worked for other people, but not for us) to no avail. He was kind enough to <a href="http://beyond-school.org/2008/06/21/airport-scanning/comment-page-2/#comment-7339" target="_blank">post what finally ended up working for him</a>, and it looks like that might have worked for me too. It&#8217;s been over 24 hours and I haven&#8217;t had a single signal drop yet (knock on wood), so I am feel pretty comfortable that this actually solved it.</p>
<p>Neil writes:</p>
<blockquote><p>Well, I have a solution, but it was neither cheap nor easy. After a trip to the shop found no problems with the Airport card, I broke down and bought an Airport Extreme router, to see if that would help. Test results showed:</p>
<p>* Airport Extreme set to b/g/n compatible: same problem.</p>
<p>* Airport Extreme set to n only, at 2.4 GHz: same problem.</p>
<p>* Airport Extreme set to n only, at 5 GHz: Blazing fast connection speeds, not a single lost packet, even in rooms of my house where wireless reception was previously only a rumor.</p></blockquote>
<p>So ultimately, all I did was go into my Airport Extreme settings and change it from b/g/n to n-only. That&#8217;s it.</p>
<p>Neil&#8217;s setup was a little more complicated than mine. For me, just switching to N-only (on channel 11) seems to have done the trick. Although I have several older Windows-based laptops, I rarely use them anymore, so I didn&#8217;t have to deal with getting the older (non-N) Windows boxes to work on the N-only network, but just in case that&#8217;s the situation you&#8217;re in, here&#8217;s what Neil did:</p>
<blockquote><p>Unfortunately, we also have a Windows laptop in the house that doesn&#8217;t have an n wireless card. So until we can buy one, right now I have my old b/g router daisy-chained to my new Airport Extreme, serving up a separate subnet just for the sake of the Windows laptop. My friend who helped me set this up characterized this as <em>insane</em>, but hey, it works.</p></blockquote>
<p>So, the saga seems to be over, for me and Neil at least. Thank. Freaking. God. Many, many thanks to Neil. I totally owe him a beer.</p>
<h2>Still Not Working?</h2>
<p>If none of these solutions work, I&#8217;d suggest checking out <a href="http://www.macfixit.com/article.php?story=2005093011343164" target="_blank">this excellent article on MacFixIt</a> that goes through additional router troubleshooting steps. They may not all apply, since this problem isn&#8217;t really a router issue, but you may want to try tweaking some of the settings they mention there to see if anything helps.</p>
<p>For those who are a little more tech savvy and comfortable trying something more advanced, there is a <a href="http://taisteal.atomiclemur.com/2007/06/how-tiger-10410-killed-my-wireless-and-how-i-fixed-it/" target="_blank">rollback fix posted on Atomic Lemur</a> that basically reverts back to an older, pre-breakage set of settings. This is ambitious for a Mac newbie though, and I wouldn&#8217;t recommend it unless you&#8217;re fairly comfortable at the command line.</p>
<p><span style="text-decoration: line-through;">If I find a fix that really, truly works &#8211; or even some more that don&#8217;t work for me but work for others, I&#8217;ll post them here.</span></p>
<p>Big thanks to the people at <a href="http://beyond-school.org/2008/06/21/airport-scanning/" target="_blank">Beyond-School.Org</a> and several other blogs and forums &#8211; their thorough discussions are what made this blog post possible.</p>

 <script type="text/javascript">
	<!--
		function onover(what){
	document.getElementById('blurbtext').innerHTML=''+what+'';
	}
	function onout(){
	document.getElementById('blurbtext').innerHTML='&nbsp;';
	}
	-->
	</script>



<h3 style="padding-bottom: 0px; margin-bottom: 0px;">Also check out: <br /><span id="blurbtext"><br /></span></h3>

<div id="relatedposts">




		
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/02/laptop-bags-for-17-inch-macbook-pro/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/02/sb_l_convertible_3_med.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Laptop Bags for 17-inch Macbook Pro" height="90" width="90" onmouseover="onover('Laptop Bags for 17-inch Macbook Pro')" onmouseout="onout()" /></a></div>

	</div>

]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2008/12/airport-in-osx-dropping-wifi-connection/feed/</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
		<item>
		<title>Facebook and MySpace Users, Beware!</title>
		<link>http://www.snipe.net/2008/11/facebook-and-myspace-users-beware-virus/</link>
		<comments>http://www.snipe.net/2008/11/facebook-and-myspace-users-beware-virus/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 19:08:20 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[myspace]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[social networks]]></category>
		<category><![CDATA[virus]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=386</guid>
		<description><![CDATA[I have received two virus emails from two unrelated friends, indicating their accounts have been compromised. The messages are being sent through Facebook and both have had a spammy sounding subject line and a link to a geocities website. This was suspicious enough, but the fact that one message came from a friend I haven&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>I have received two virus emails from two unrelated friends, indicating their accounts have been compromised. The messages are being sent through Facebook and both have had a spammy sounding subject line and a link to a geocities website. This was suspicious enough, but the fact that one message came from a friend I haven&#8217;t spoken to much in a year made it even more so. <span id="more-386"></span></p>
<p>The first virus email subject was <strong>&#8220;RE: You were caught on our secret camera!&#8221;</strong> and the second was<strong> &#8220;RE: You have a great hair cut in this movie&#8221;</strong> . The geocities addresses they pointed to were for user&#8217;s reedgates21 and richiemack11.  I&#8217;ve googled both addresses and gotten no results, so my guess is that they are randomly generating geocities accounts and generating these emails. A co-worker just one too &#8211; variation on a theme. Subject is <strong>&#8220;Don&#8217;t cry! Your mom will never see this movie&#8221;</strong>, also pointing to geocities, user name rkssbcyzk. Another one, <strong>&#8220;I&#8217;m not kidding I just saw your pics all over  a site address swimcaw&#8221;</strong> has come through as a wall post.</p>
<h2>The links in the Facebook messages point to websites that contain viruses. Do NOT click on them.</h2>
<p>Below are some examples of what they look like. (These are just images, so you can click on them for larger versions to see how the messages come into your inbox.)</p>
<div id="attachment_389" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.snipe.net/wp-content/uploads/2008/11/virus2.gif"><img class="size-full wp-image-389" title="Screenshot 1" src="http://www.snipe.net/wp-content/uploads/2008/11/virus2.gif" alt="" width="500" height="343" /></a><p class="wp-caption-text">Screenshot 1</p></div>
<div id="attachment_390" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.snipe.net/wp-content/uploads/2008/11/virus1.gif"><img class="size-full wp-image-390" title="Screenshot 2" src="http://www.snipe.net/wp-content/uploads/2008/11/virus1.gif" alt="" width="500" height="343" /></a><p class="wp-caption-text">Screenshot 2</p></div>
<div id="attachment_391" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.snipe.net/wp-content/uploads/2008/11/virus3.gif"><img class="size-full wp-image-391" title="Screenshot 3" src="http://www.snipe.net/wp-content/uploads/2008/11/virus3.gif" alt="Screenshot 2" width="500" height="343" /></a><p class="wp-caption-text">Screenshot 3</p></div>
<p>If you&#8217;re using Firefox, your browser should warn you that you&#8217;re about to try to access a page that has been linked to virus/malware when you click on the Facebook messages in question, but if you&#8217;re using an older version of IE (shame on you!), you may not get any warning at all.</p>
<h2>When You Receive a Virus Email</h2>
<ol>
<li>DO NOT CLICK ON THE LINK</li>
<li>Send an e-mail (or call) the sender, letting them know they are likely infected with a virus</li>
<li>Suggest to the friend that they change their password from another, uninfected computer, and follow the steps further down in this article to remove the virus. (The method they use will depend on which virus they&#8217;ve been infected with.)</li>
<li>Once the virus is cleared from the sender&#8217;s system, suggest they <a href="http://www.amictools.com/v-anti_keylogger_shield.html">install a free anti-keylogger program</a> and switching to <a href="http://www.mozilla.com/en-US/firefox/" target="_blank">Firefox</a> just to be safe</li>
</ol>
<p>Ultimately, its like anything else &#8211; common sense will go a long way. If the email seems odd (for example, the fact that the subjects sometimes start with &#8220;RE:&#8221;, as if they were replies to a message you sent, but you never sent a message with that subject), the phrasing seems off or not something your friend would actually say, something is probably awry. If you&#8217;re unsure, contact the friend directly and ask if they sent it to you.</p>
<p>This has been happening a lot lately, and the scenario Tech Crunch describes <a href="http://www.techcrunch.com/2008/08/07/elaborate-facebook-worm-virus-spreading/">in this article</a> sounds a lot like what&#8217;s happening here.</p>
<p>Keep in mind&#8230; Facebook applications do NOT have access to your password, so unless you installed an application that &#8220;required you&#8221; to download an executable application (any kind of .exe, .msi, etc), your Facebook applications should NOT be the cause. (Being an application developer, I can say that I couldn&#8217;t steal someone&#8217;s password even if I wanted to, using their API. HOWEVER there have been several reports of phony applications and groups that require some sort of download in order to get the full experience (<a href="http://www.theregister.co.uk/2008/01/04/facebook_adware/">Secret Crush</a> was one of them).</p>
<p><strong>NO application or group should EVER require you to download and install anything. If they do, report them to the social network immediately.</strong></p>
<p>Also keep in mind that <strong>these viruses are not limited to Facebook users</strong>. I&#8217;m more familiar with the Facebook scenario because I avoid MySpace like the plague, but every time I login there are spammy and/or virus-y emails awaiting me. This isn&#8217;t as much a flaw in the Facebook platform as a result of social networks still being young and going through some growing pains. MySpace has just as much of a problem with these issues, if not moreso, since they have been historically less concerned about user experience and safety.</p>
<h2>Another Variation &#8211; Fake YouTube Links</h2>
<p>Another variation of the viruses being sent around Facebook is a similar message to users suggesting they are appearing in a <strong>YouTube video</strong> and providing the supposed link to view it. Instead of actually seeing a video, the virus advises viewers they need to download an updated version of Flash, which if followed may install a virus into the user&#8217;s computer. <a href="http://www.sync-blog.com/sync/2008/08/breaking-news-f.html">More info on that version, including sample messages and screenshots, is available here</a>.</p>
<h2>Why Its Working</h2>
<p>If you find yourself infected, don&#8217;t be too hard on yourself. People have become so used to receiving emails from Facebook asking them to confirm this or that that it could be argued that people are more prone to click on a link that looks like it came from Facebook without being as diligent as we would be if we weren&#8217;t used to preforming this same action 10 times a day for legitimate Facebook actions. <span class="content">For example, most users of Facebook are familiar with the &#8220;Joe has added you as a friend on Facebook€¦&#8221; stock email.</span></p>
<p><span class="content">Some users are conditioned to follow this process whenever they receive an email of this sort. Some people can receive this email several times every day and perform this login procedure so often it becomes automatic. This simple, clean design is very easy for a phisher to mimic. Since users are conditioned to follow this process blindly, they might not notice that the email is spoofed or that the address bar is slightly incorrect. This makes Facebook users ideal targets for the type of generic phishing attacks that are usually directed at financial institutions.</span></p>
<h2>If You Clicked on the Link And Your Computer is Infected</h2>
<p>I spent some time trolling Facebook&#8217;s forums to see if anyone had any specific direction on how to remove this virus from an infected machine. I found a few possible solutions, although since the people posting didn&#8217;t know or didn&#8217;t mention the name of the specific virus they were infected with, it may take some trial and error to find the solution that works best for you.</p>
<p>If your virus detection software determines that you&#8217;re infected with <strong>Bolivar23.exe</strong>, you can <a href="http://www.d-a-l.com/help/spyware-adware-viruses-hijackthis-logs/57987-bolivar23-exe-problem.html">click here for directions on how to remove it</a>.</p>
<p>In early August, there was a different one going around, called Koobface. Kaspersky&#8217;s website writes:</p>
<div style="margin-left: 40px;">Net-Worm.Win32.Koobface.a spreads when a user accesses his/ her MySpace account. The worm creates a range of commentaries to friends&#8217; accounts. Net-Worm.Win32.Koobface.b, which targets Facebook users, creates spam messages and sends them to the infected users&#8217; friends via the Facebook site.  The messages and comments include texts such as:</div>
<div style="margin-left: 40px;">
<ul>
<li><em><strong>Paris Hilton Tosses Dwarf On The Street</strong></em></li>
<li><em><strong>Examiners Caught Downloading Grades From The Internet</strong></em></li>
<li><em><strong>Hello</strong></em></li>
<li><em><strong>You must see it!!! LOL. My friend catched you on hidden cam; </strong><br />
</em></li>
<li><em>I<strong>s it really celebrity? Funny Moments</strong></em><strong> and many others</strong>.</li>
<li><em><strong>Yoou&#8217;re so prettty goood on thiis viddeo.</strong></em></li>
</ul>
</div>
<div style="margin-left: 40px;">Messages and comments on MySpace and Facebook include links to <strong>youtube.[skip].pl</strong>.  If the user clicks on this link, s/he is redirected to a site which purportedly contains a video clip.  If the user tries to watch it, a message appears saying the user needs the latest version of Flash Player in order to watch the clip. However, instead of the latest version of Flash Player, <strong>a file called codesetup.exe is downloaded to the victim&#8217;s machine</strong>; this file is also a network worm. The result is that users who have come to the site via Facebook will have the MySpace worm downloaded to their machines, and vice versa. [<a href="http://usa.kaspersky.com/about-us/news-press-releases.php?smnr_id=900000149">more</a>]</div>
<p>One confirmed method of removing this virus is by downloading <a href="http://www.malwarebytes.org/">MalwareBytes</a> &#8211; for some at the time, it seemed to be the only out of the box software that was able to remove it.</p>
<p>Still another that was around this time, <strong>Troj/Dloadr-BPL Trojan horse</strong>, was reported on by Sophos:</p>
<p style="padding-left: 60px;">Messages left on Facebook users&#8217; walls are urging members to view a video (which pretends to be hosted on a Google website), but clicking on the link and visiting the webpage takes users to a site which urges them to download an executable to watch the movie.</p>
<p style="padding-left: 60px;">Sophos detects the executable file as the Troj/Dloadr-BPL Trojan horse, which in turn downloads further malicious code (detected as Troj/Agent-HJX), and displays an innocent image of a court jester sticking his tongue out. [<a href="http://www.sophos.com/pressoffice/news/articles/2008/08/facebook.html">more</a>]</p>
<h2>In Conclusion</h2>
<p>This isn&#8217;t the first wave of social network viruses, nor will it be the last. There isn&#8217;t one social network that is more prone to them than others. As we allow social networks to become a bigger part of how we communicate, we must simply remain cautious and avoid the temptation to become complacent. Pay attention to the links you click on that are sent through Facebook, the same way you pay attention to suspicious e-mails that come in through normal e-mail.</p>

 <script type="text/javascript">
	<!--
		function onover(what){
	document.getElementById('blurbtext').innerHTML=''+what+'';
	}
	function onout(){
	document.getElementById('blurbtext').innerHTML='&nbsp;';
	}
	-->
	</script>



<h3 style="padding-bottom: 0px; margin-bottom: 0px;">Also check out: <br /><span id="blurbtext"><br /></span></h3>

<div id="relatedposts">




		
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2011/01/facebook-https-opt-in/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2011/01/Facebook-Needle.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Facebook Introduces HTTPS Opt-In for Users, Impacts App Developers" height="90" width="90" onmouseover="onover('Facebook Introduces HTTPS Opt-In for Users, Impacts App Developers')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/05/new-facebook-phishing-attempts/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/05/phishing.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="New Facebook Phishing Attempts" height="90" width="90" onmouseover="onover('New Facebook Phishing Attempts')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/10/twitter-launches-beta-lists/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/10/beta_alert.png&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Twitter launches groups in BETA for some users" height="90" width="90" onmouseover="onover('Twitter launches groups in BETA for some users')" onmouseout="onout()" /></a></div>

	</div>

]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2008/11/facebook-and-myspace-users-beware-virus/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Photo Retouching &#8211; How to Salvage a Dark Digital Photo</title>
		<link>http://www.snipe.net/2008/11/photo-retouching-how-to-salvage-a-dark-digital-photo/</link>
		<comments>http://www.snipe.net/2008/11/photo-retouching-how-to-salvage-a-dark-digital-photo/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 18:25:38 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[photo editing]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[retouching]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=360</guid>
		<description><![CDATA[I prefer not to shoot with flash when I can help it &#8211; I don&#8217;t like the way it washes colors out. Unfortunately, sometimes if you don&#8217;t leave the exposure open long enough, or don&#8217;t have time to adjust your exposure in the first place (candid shots are my favorite but can be a bitch [...]]]></description>
			<content:encoded><![CDATA[<p>I prefer not to shoot with flash when I can help it &#8211; I don&#8217;t like the way it washes colors out. Unfortunately, sometimes if you don&#8217;t leave the exposure open long enough, or don&#8217;t have time to adjust your exposure in the first place (candid shots are my favorite but can be a bitch if you only have a second to capture the moment), you end up with under-exposed photos that may be too dark to use. Dark photos are particularly challenging to retouch, because as you make the image lighter, it can end up looking very grainy. This tutorial will show you a few ways to salvage a dark photo and minimize some of the graininess.</p>
<p><span id="more-360"></span></p>
<p>Retouching dark photos is possible because the camera captures more information than your eyes can see, so even if something looks very dark, there is more information contained there that can be brought out using a series of filters and adjustments. Bear in mind that the end result will be much nicer if the photo can be resized to a smaller version. The tricks we&#8217;ll use here can get rid of some of the graininess, but it does so by reducing noise and effectively blurring the image slightly, so if your end result image is smaller than the original, you&#8217;ll end up with a nicer finished product. Depending on how dark the image is that you&#8217;re starting with, the end result may not be perfect, but it may work for your needs.</p>
<p>For this tutorial, we&#8217;ll use a photo taken at a recent concert. <a href="http://www.frontalot.com" target="_blank">MC Frontalot</a>, <a href="http://mclars.com/" target="_blank">MC Lars</a>, <a href="http://ytcracker.com/" target="_blank">YTCracker</a> and <a href="http://devospice.com/" target="_blank">Devo Spice</a> played at the <a href="http://www.mexicalilive.com/" target="_blank">Mexicali Blues Cafe</a> in Teaneck, New Jersey on the evening of the United States presidential election between John McCain and Barack Obama. (OUSTANDING show, by the way &#8211; go see them if you can, and bask in their awesomeness. Seriously. More photos of the show that are far better than the photo used in this article are <a href="http://www.flickr.com/photos/lundegaard/sets/72157608676548666/" target="_blank">available here</a>.) Being political people, the musicians were kind enough to give us election updates every 10 minutes or so. In this shot, I&#8217;m looking over MC Frontalot&#8217;s shoulder, checking out the results map on CNN. However, it wasn&#8217;t a staged shot, and flash would have ruined it, so the shot came out too dark.</p>
<div id="attachment_363" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.snipe.net/wp-content/uploads/2008/11/original_smaller.jpg"><img class="size-full wp-image-363" title="Original image" src="http://www.snipe.net/wp-content/uploads/2008/11/original_smaller.jpg" alt="Original image" width="500" height="334" /></a><p class="wp-caption-text">Original image</p></div>
<p>With a few tweaks, we can make this a usable photo. It was so dark to start with, its never going to be portfolio quality, but for pics that you can&#8217;t reshoot and would like to try to save, these techniques may help.</p>
<h2>Getting There</h2>
<p>The first place I start is either with IMAGE &gt; ADJUSTMENTS &gt; CURVES or IMAGE &gt; ADJUSTMENT &gt; LEVELS. In this case I started with levels. The three arrows you see on the bottom of the levels palette signify your shadow, midtones and highlights, left to right in that order. Most of the time, you&#8217;re going to want to move your midtones the most, and then finesse the levels with your shadow and highlights. This will bring up the light levels in the entire image, and then you can pull some of the shadows down again so it doesn&#8217;t look too washed out.</p>
<div id="attachment_372" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.snipe.net/wp-content/uploads/2008/11/levels-1.jpg"><img class="size-full wp-image-372" title="Adjusting with levels" src="http://www.snipe.net/wp-content/uploads/2008/11/levels-1.jpg" alt="Adjusting with levels" width="500" height="373" /></a><p class="wp-caption-text">Adjusting with levels</p></div>
<p>As you can see, its still a little grainy, but there&#8217;s only so much we&#8217;ll be able to do to save this one. That said, I liked the shot, so I wanted to do what I could. This is a particularly severe example, so our end result isn&#8217;t amazing, but at least you can see what&#8217;s going on. When you&#8217;re starting with a less extreme example, your results will be much better.</p>
<div id="attachment_369" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.snipe.net/wp-content/uploads/2008/11/original_sm_after_lvls1.jpg"><img class="size-full wp-image-369" title="After adjustting LEVELS" src="http://www.snipe.net/wp-content/uploads/2008/11/original_sm_after_lvls1.jpg" alt="After adjustting LEVELS" width="500" height="334" /></a><p class="wp-caption-text">After adjustting LEVELS</p></div>
<p>This looks pretty grainy, even at this smaller size &#8211; but the image I was working with was 2896&#215;1936, so it was *really* grainy in the larger version. Here&#8217;s an &#8220;actual size&#8221; detail shot.</p>
<div id="attachment_370" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.snipe.net/wp-content/uploads/2008/11/snipe-grainy.jpg"><img class="size-full wp-image-370" title="Grainy detail" src="http://www.snipe.net/wp-content/uploads/2008/11/snipe-grainy.jpg" alt="Grainy detail" width="500" height="449" /></a><p class="wp-caption-text">Grainy detail</p></div>
<p>Far from awesome, but its getting there &#8211; you can actually see my face now. We&#8217;re not going to be able to get too much more lightness in this one without making it even more grainy, so I&#8217;m going to stick with this level of exposure and work on smoothing out some of the noise.</p>
<p>The best way to accomplish this is going to be using the noise reduction filter, which basically blurs the pixels slightly and attempts to smooth out harsh variations in pixel colors.</p>
<p>Using FILTERS &gt; NOISE &gt; REDUCE NOISE, we&#8217;re able to blur out some of the grain and reduce the colors in the noise, making it less obvious. You&#8217;ll have to play with these settings to get it the way you want it &#8211; and you may even need to run the filter again to get the level you want &#8211; but bear in mind that the more you preserve sharpness and/or detail, the less effective this is going to be. This is where working with a larger image and resizing down is nice &#8211; the blurring becomes less obvious on a resized image.</p>
<div id="attachment_373" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.snipe.net/wp-content/uploads/2008/11/reduce-noise.jpg"><img class="size-full wp-image-373" title="Noise reduction settings" src="http://www.snipe.net/wp-content/uploads/2008/11/reduce-noise.jpg" alt="" width="500" height="468" /></a><p class="wp-caption-text">Noise reduction settings</p></div>
<p>Because this is an extreme example that started off very dark, I ran the noise reduction filter again with the same settings.</p>
<div id="attachment_375" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.snipe.net/wp-content/uploads/2008/11/original_small_after_2xnr.jpg"><img class="size-full wp-image-375" title="Noise reduction filter applied twice" src="http://www.snipe.net/wp-content/uploads/2008/11/original_small_after_2xnr.jpg" alt="Noise reduction filter applied twice" width="500" height="334" /></a><p class="wp-caption-text">Noise reduction filter applied twice</p></div>
<p>I then cropped the image, getting rid of some of the extra stuff along the sides, resized it and then hit it once more with the levels to bring out a teensy bit more of the shadow, which helps reduce the grain further.</p>
<p>So we went from a practically unusable photo:</p>
<div id="attachment_363" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.snipe.net/wp-content/uploads/2008/11/original_smaller.jpg"><img class="size-full wp-image-363" title="Original image" src="http://www.snipe.net/wp-content/uploads/2008/11/original_smaller.jpg" alt="Original image" width="500" height="334" /></a><p class="wp-caption-text">Original image</p></div>
<p>To an image that won&#8217;t exactly end up in my photo portfolio, but at least you can see what&#8217;s happening:</p>
<div id="attachment_377" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.snipe.net/wp-content/uploads/2008/11/final-cropped.jpg"><img class="size-full wp-image-377" title="Final result" src="http://www.snipe.net/wp-content/uploads/2008/11/final-cropped.jpg" alt="Final result" width="500" height="385" /></a><p class="wp-caption-text">Final result</p></div>
<p>Obviously, you&#8217;ll need to play with the settings on each of the filters to get the result you want &#8211; and hopefully you won&#8217;t be starting with an image that is basically pitch black, so your final product will be a little smoother.</p>
<p>If you&#8217;re stuck with an image that is particularly grainy, you can also try to get a little creative by using the texture to your advantage. By making the image black and white or sepia-toned, the grainy look can actually help the image, making it appear more aged. To convert an image to black and white or sepia, go to IMAGE &gt; ADJUSTMENTS &gt; BLACK &amp; WHITE.</p>
<div id="attachment_378" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.snipe.net/wp-content/uploads/2008/11/black-and-white.jpg"><img class="size-full wp-image-378" title="Use the Black and White filter to add sepia tones" src="http://www.snipe.net/wp-content/uploads/2008/11/black-and-white.jpg" alt="Use the Black and White filter to add sepia tones" width="500" height="317" /></a><p class="wp-caption-text">Use the Black and White filter to add sepia tones</p></div>
<p>Some variations:</p>
<div id="attachment_379" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.snipe.net/wp-content/uploads/2008/11/final-bw.jpg"><img class="size-full wp-image-379" title="Black and White" src="http://www.snipe.net/wp-content/uploads/2008/11/final-bw.jpg" alt="Black and White" width="500" height="385" /></a><p class="wp-caption-text">Black and White</p></div>
<div id="attachment_380" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.snipe.net/wp-content/uploads/2008/11/final-sepia.jpg"><img class="size-full wp-image-380" title="Sepia tint" src="http://www.snipe.net/wp-content/uploads/2008/11/final-sepia.jpg" alt="Sepia tint" width="500" height="385" /></a><p class="wp-caption-text">Sepia tint</p></div>
<p>And don&#8217;t forget to play around a little. I found that I liked the end result better when I ran the Black &amp; White filter using the tint setting twice.</p>
<div id="attachment_381" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.snipe.net/wp-content/uploads/2008/11/final-sepiax2.jpg"><img class="size-full wp-image-381" title="Sepia tint applied twice in a row" src="http://www.snipe.net/wp-content/uploads/2008/11/final-sepiax2.jpg" alt="Sepia tint applied twice in a row" width="500" height="385" /></a><p class="wp-caption-text">Sepia tint applied twice in a row</p></div>
<p>And that&#8217;s all there is to it. Have any tips of your own for saving a photo that&#8217;s just too dark? Be sure to share in the comments!</p>

 <script type="text/javascript">
	<!--
		function onover(what){
	document.getElementById('blurbtext').innerHTML=''+what+'';
	}
	function onout(){
	document.getElementById('blurbtext').innerHTML='&nbsp;';
	}
	-->
	</script>



<h3 style="padding-bottom: 0px; margin-bottom: 0px;">Also check out: <br /><span id="blurbtext"><br /></span></h3>

<div id="relatedposts">




		
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2008/08/turn-any-photo-into-a-vintage-photo/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2008/08/vntage.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Turn any photo into a vintage photo" height="90" width="90" onmouseover="onover('Turn any photo into a vintage photo')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2008/01/it-is-pitch-dark/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2008/06/default.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="It Is Pitch Dark" height="90" width="90" onmouseover="onover('It Is Pitch Dark')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/02/painting-in-photoshop/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/02/7.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Photo-Realistic Painting in Photoshop" height="90" width="90" onmouseover="onover('Photo-Realistic Painting in Photoshop')" onmouseout="onout()" /></a></div>

	</div>

]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2008/11/photo-retouching-how-to-salvage-a-dark-digital-photo/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

