<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<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/"
	>

<channel>
	<title>Some Guy Ranting</title>
	<link>http://lukewelling.com</link>
	<description>Just another nerd's weblog</description>
	<pubDate>Wed, 23 Jul 2008 18:26:55 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>OSCON 2008: SNAP - PHP Taint Tool</title>
		<link>http://lukewelling.com/2008/07/23/oscon-2008-snap-php-taint-tool/</link>
		<comments>http://lukewelling.com/2008/07/23/oscon-2008-snap-php-taint-tool/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 18:26:55 +0000</pubDate>
		<dc:creator>luke</dc:creator>
		
		<category><![CDATA[Conferences]]></category>

		<category><![CDATA[Luke Welling]]></category>

		<category><![CDATA[Security]]></category>

		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://lukewelling.com/2008/07/23/oscon-2008-snap-php-taint-tool/</guid>
		<description><![CDATA[Here are the slides for my talk today at OSCON.
Keep the disclaimer at the start at the front of your mind.
This tool is fragile and not ready to be called alpha quality
It is definitely not ready to be useful on large programs
We will release it under an OSI license … soon

SNAP Presentation (PDF)
]]></description>
			<content:encoded><![CDATA[<p>Here are the slides for my talk today at OSCON.</p>
<p>Keep the disclaimer at the start at the front of your mind.</p>
<blockquote><p>This tool is fragile and not ready to be called alpha quality<br />
It is definitely not ready to be useful on large programs<br />
We will release it under an OSI license … soon
</p></blockquote>
<p><a href='http://lukewelling.com/wp-content/uploads/2008/07/snap-php-taint-tool.pdf' title='SNAP Presentation'>SNAP Presentation (PDF)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lukewelling.com/2008/07/23/oscon-2008-snap-php-taint-tool/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A Marvellous, Amazing, Exciting Ink Shopping Experience</title>
		<link>http://lukewelling.com/2008/04/24/a-marvellous-amazing-exciting-ink-shopping-experience/</link>
		<comments>http://lukewelling.com/2008/04/24/a-marvellous-amazing-exciting-ink-shopping-experience/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 05:16:20 +0000</pubDate>
		<dc:creator>luke</dc:creator>
		
		<category><![CDATA[Gadgets]]></category>

		<category><![CDATA[Humour]]></category>

		<category><![CDATA[Luke Welling]]></category>

		<category><![CDATA[popup advertising]]></category>

		<guid isPermaLink="false">http://lukewelling.com/2008/04/24/a-marvellous-amazing-exciting-ink-shopping-experience/</guid>
		<description><![CDATA[At least I expect that is what HP has prepared for me.  Hewlett Packard keep giving me this annoying nag popup window urging me to install a &#8220;simple, smart utility&#8221; that &#8220;uses the Internet to help you find, compare and repurchase genuine HP supplies&#8221; for my specific printer. 

At first glance that does not [...]]]></description>
			<content:encoded><![CDATA[<p>At least I expect that is what HP has prepared for me.  Hewlett Packard keep giving me this annoying nag popup window urging me to install a &#8220;simple, smart utility&#8221; that &#8220;uses the Internet to help you find, compare and repurchase genuine HP supplies&#8221; for my specific printer. </p>
<p><a href='http://lukewelling.com/wp-content/uploads/2008/04/hpshopping.png' title='HP Printer Ink Shopping'><img src='http://lukewelling.com/wp-content/uploads/2008/04/hpshopping.png' alt='HP Printer Ink Shopping' /></a></p>
<p>At first glance that does not sound very exciting, but look it is <strong>4.9MB</strong>.  4.9MB! - It must be some sort of interactive, fully immersive 3D shopping experience that would put the old boo.com to shame. To require a 4.9MB download, plus an internet connection, I bet they have figured out a way to let you be hundreds of kilometres away and yet still sniff the ink and get paper cuts from paper specially selected for &#8220;your specific printer&#8221;. I&#8217;ll bet you can virtually bathe in Vivera ink and feel it squish between your toes.  </p>
<p>I can hardly wait to try it, but I think I am going to try putting it off for a few days longer, so that anticipation will help me to truly savour the experience.  Besides, I am a bit busy today, and figure I really should wait until I have half a day to properly devote to the delicious, invigorating ink repurchasing extravaganza that awaits me.</p>
]]></content:encoded>
			<wfw:commentRss>http://lukewelling.com/2008/04/24/a-marvellous-amazing-exciting-ink-shopping-experience/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Jim Mirkalami Update 2: Small Claims Court $10000</title>
		<link>http://lukewelling.com/2008/03/31/jim-mirkalami-update-2-small-claims-court-10000/</link>
		<comments>http://lukewelling.com/2008/03/31/jim-mirkalami-update-2-small-claims-court-10000/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 20:39:54 +0000</pubDate>
		<dc:creator>luke</dc:creator>
		
		<category><![CDATA[Luke Welling]]></category>

		<category><![CDATA[Jim Mirkalami]]></category>

		<guid isPermaLink="false">http://lukewelling.com/2008/03/31/jim-mirkalami-update-2-small-claims-court-10000/</guid>
		<description><![CDATA[When I got Jim&#8217;s initial threat, I naturally treated it with the seriousness it deserved.  After careful consultation with my army of high priced lawyers, I replied:
Thanks for your interest in my blog.
Unfortunately, I get so much fan mail that I cannot respond to all of it personally, but rest assured that I do [...]]]></description>
			<content:encoded><![CDATA[<p>When I got Jim&#8217;s initial threat, I naturally treated it with the seriousness it deserved.  After careful consultation with my army of high priced lawyers, I replied:</p>
<blockquote><p>Thanks for your interest in my blog.</p>
<p>Unfortunately, I get so much fan mail that I cannot respond to all of it personally, but rest assured that I do read and appreciate all of it.</p>
<p>Cheers,</p>
<p>Luke Welling.</p></blockquote>
<p>I am kind of flattered that he thinks this blog is important enough to waste $75 filing a <a href='http://lukewelling.com/wp-content/uploads/2008/03/claim-against-mr-welling.PDF' title='Small Claims Court Complaint'>Small Claims Court Complaint</a> in Ontario.</p>
<p>I am pretty sure emailing me a blurry PDF does not count as serving me with the document, but what I know about Canadian law would fill a very short book.  I guess I will need to read up on it one evening.  I am still not sure any amount of reading will find a Canadian law matching the complaint &#8220;Un-authorized[<em>sic</em>] publication of my personal name (un-konwingly[<em>sic</em>] at first knowingley[<em>sic</em>] and willingly after) cuasing[<em>sic</em>] seriouse[<em>sic</em>] damage to my reputation&#8221;.</p>
<p>I do hope he is also suing the schizophrenic, voice hearing brother for the initial unauthorized use of his name.  If me using it once is worth $10000 worth of reputation, then the brother plastering it all over the internet must be getting a huge bill.</p>
<p>When I am served properly, I guess I will have to reply.  Until then, here is the <a href='http://lukewelling.com/wp-content/uploads/2008/03/claim-against-mr-welling.PDF' title='Small Claims Court Complaint'>blurry PDF</a> of the complaint.  It looks real enough to me, but I suspect the court might have more luck communicating with me if he included a country in my address.</p>
]]></content:encoded>
			<wfw:commentRss>http://lukewelling.com/2008/03/31/jim-mirkalami-update-2-small-claims-court-10000/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Jim Mirkalami Update: Legal Threats</title>
		<link>http://lukewelling.com/2008/03/31/jim-mirkalami-update-legal-threats/</link>
		<comments>http://lukewelling.com/2008/03/31/jim-mirkalami-update-legal-threats/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 15:33:50 +0000</pubDate>
		<dc:creator>luke</dc:creator>
		
		<category><![CDATA[Luke Welling]]></category>

		<guid isPermaLink="false">http://lukewelling.com/2008/03/31/jim-mirkalami-update-legal-threats/</guid>
		<description><![CDATA[I got email today from somebody claiming to be Jim Mirkalami threatening legal action.  I say &#8220;claiming to be&#8221; because the last person claiming to be Jim, later claimed that they were his brother Bryan or Seyed B. Mirkalami and claimed that Jim &#8220;does not know what is going on on the net, he [...]]]></description>
			<content:encoded><![CDATA[<p>I got email today from somebody claiming to be Jim Mirkalami threatening legal action.  I say &#8220;claiming to be&#8221; because the last person claiming to be Jim, <a href="http://quityourdayjob.com.au/archives/1086 ">later claimed that they were his brother Bryan or Seyed B. Mirkalami</a> and claimed that Jim &#8220;does not know what is going on on the net, he is not an internet savey[sic] type person.&#8221;</p>
<p>The original of the Bryan or Seyed B. Mirkalami post may have been taken down by <a href="http://quityourdayjob.com.au/">quityourdayjob.com.au</a>, so you might have to look to a <a href="http://64.233.169.104/search?q=cache:Dfonul74aawJ:quityourdayjob.com.au/archives/1086+Jim+Mirkalami&#038;hl=en&#038;ct=clnk&#038;cd=3&#038;gl=us&#038;client=firefox-a">cache</a>.</p>
<p>Anyway, here is the email in full.  Unless somebody can point me to a law making it an offense to publish a name without authorization I am not going to lose sleep over it.  I have looked back and <a href="http://lukewelling.com/2008/02/12/sweeping-bad-press-under-the-rug-using-seo/">my post on Jim Mirkalami does not seem defamatory</a>.</p>
<blockquote><p>Subject: Un-authorized publication of my name</p>
<p>Mr. Welling</p>
<p>My name is Jim Mirkalami and it has come to my attention that my name has been published within your website/s and blogs, without my authorization.</p>
<p>I hereby request from you to immediately remove any and all references made to this name and refrain from such publications in the future without my authorization.</p>
<p>Your immediate attention to this matter is greatly appreciated.</p>
<p>I will have no option but to commence legal action in an effort to protect my name, if my request is denied. I will be doing so a week today on Monday<br />
April 7th, 2008.</p>
<p>Thank you<br />
Jim Mirkalami</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://lukewelling.com/2008/03/31/jim-mirkalami-update-legal-threats/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Well funded web2.0 one day, blurry clip art the next.</title>
		<link>http://lukewelling.com/2008/03/20/139/</link>
		<comments>http://lukewelling.com/2008/03/20/139/#comments</comments>
		<pubDate>Fri, 21 Mar 2008 04:27:06 +0000</pubDate>
		<dc:creator>luke</dc:creator>
		
		<category><![CDATA[Humour]]></category>

		<category><![CDATA[Luke Welling]]></category>

		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://lukewelling.com/2008/03/20/139/</guid>
		<description><![CDATA[Here is a postscript to a failed and forgotten Web2.0 venture.
The summary for a story about botnets was decorated with blurry clipart that seemed familiar to me.

Talk about &#8220;rooster one day, feather duster the next&#8221;.  The the logo from officepirates.com is now relegated to blurry clipart status.  Although as I said back then, [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a postscript to a failed and forgotten Web2.0 venture.</p>
<p>The summary for <a href="http://www.theage.com.au/news/security/infected-australian-computers-fetch-top-dollar/2008/03/20/1205602560478.html">a story about botnets</a> was decorated with blurry clipart that seemed familiar to me.<br />
<img src='http://lukewelling.com/wp-content/uploads/2008/03/theagepirate1.jpg' alt='From theage.com.au March 21, 2008' /></p>
<p>Talk about &#8220;rooster one day, feather duster the next&#8221;.  The the <a href="http://web.archive.org/web/20060216212055/www.officepirates.com/officepirates/">logo from officepirates.com</a> is now relegated to blurry clipart status.  Although <a href="http://lukewelling.com/2006/03/01/officepiratescom-calling-all-slackers/">as I said back then</a>, that venture elected to skip over the rooster stage, and take a more &#8220;turkey one day, feather duster the next&#8221; trajectory.</p>
]]></content:encoded>
			<wfw:commentRss>http://lukewelling.com/2008/03/20/139/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Sweeping Bad Press Under The Rug Using Junk Blog Comments</title>
		<link>http://lukewelling.com/2008/02/12/sweeping-bad-press-under-the-rug-using-seo/</link>
		<comments>http://lukewelling.com/2008/02/12/sweeping-bad-press-under-the-rug-using-seo/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 19:24:30 +0000</pubDate>
		<dc:creator>luke</dc:creator>
		
		<category><![CDATA[Blog]]></category>

		<category><![CDATA[Luke Welling]]></category>

		<category><![CDATA[Privacy]]></category>

		<category><![CDATA[SEO]]></category>

		<category><![CDATA[Search]]></category>

		<guid isPermaLink="false">http://lukewelling.com/2008/02/12/sweeping-bad-press-under-the-rug-using-seo/</guid>
		<description><![CDATA[I noticed an interesting comment on this blog while deleting comment spam a few days ago.
   1.   Jim Mirkalami Says:
      February 6th, 2008 at 6:25 pm
      I have been a frequent visitor of this blog for some time now, so I [...]]]></description>
			<content:encoded><![CDATA[<p>I noticed an <a href="http://lukewelling.com/2008/02/05/new-wordpress-version-with-security-fix/#comments">interesting comment</a> on this blog while deleting comment spam a few days ago.</p>
<blockquote><p>   1.   Jim Mirkalami Says:<br />
      February 6th, 2008 at 6:25 pm</p>
<p>      I have been a frequent visitor of this blog for some time now, so I thought it would be a good idea to leave you with my thanks.</p>
<p>      Regards,<br />
      Jim Mirkalami</p></blockquote>
<p>It has that &#8220;almost certainly spam but hard to be dead sure&#8221; feel to it that a lot of spam comments have.  Strangely although it is an optional field, he gives yahoo.com as his website.  This seemed even stranger when you note he seems to have his own website (<a href="http://jimmirkalami.com/">jimmirkalami.com</a>) unless there are two single fathers of two with that name in Ontario.</p>
<p>It seems like a pretty uncommon name, so I <a href="http://www.google.com/search?q=Jim+Mirkalami">google for him</a>.  The first few links are news stories alleging <a href="http://www.canada.com/topics/news/world/story.html?id=62c2af58-e8eb-4c5d-ad89-efb4d201e89f&#038;k=66650">questionable ethics</a> in <a href="http://www.canadianauction.info/2007/10/27/jewelry-auctioneer-demands-apology/">Canadian Auctions</a> for jewelry and Persian rugs.  Curiouser and curiouser.</p>
<p>Of course, I am only guessing that it is an uncommon name.  It could be the equivalent of Smith in the middle east.  It certainly seems <a href="http://www.linkedin.com/pub/3/8a8/a51">fairly </a><a href="http://www.linkedin.com/in/faridamirkalami">popular</a> in among Toronto <a href="http://www.rugman.com/">rug </a>merchants.</p>
<p>Here is my theory.</p>
<p>I&#8217;d be upset if the first google result for my (fairly uncommon) name led to a page that started <a href="http://www.canada.com/saskatoonstarphoenix/news/local/story.html?id=388e5362-8c86-4a9b-abf1-65c5bd8dd6be">&#8220;No charges laid &#8230;&#8221;</a>.</p>
<p>Knowing a little about SEO and the way google ranks pages, I think you could fairly quickly bury those stories by commenting on a lot of blogs.  It would be harder if the story was all over major media.  Not many blogs have a pagerank that can compete with CNN or the NYT (pagerank 9), but Google ranks local media about on par with a popular blog. There are no shortage of blogs with a pagerank around 5 or 6.  Google only gives canada.com 7.</p>
<p>The comments appear to be somewhat targeted.  They seem to appear on blogs (but not always posts) that mention the word &#8216;auction&#8217; or the word &#8216;Canada&#8217;.  There are automated comment spam tools that will find suitable blogs for you, or in a little more time you could do it by hand from any of the blog search engines.  A few days later he commented on another post of mine that does contain the word <a href="http://lukewelling.com/2007/07/26/my-proudest-achievement-a-dowloadable-certificate-from-ebay/#comments">auction </a>(because it is about ebay).  </p>
<p>The text of that comment is</p>
<blockquote><p>Jim Mirkalami Says:<br />
February 8th, 2008 at 3:13 pm</p>
<p>I have been visiting this site a lot lately, so i thought it is a good idea to show my appreciation with a comment.</p>
<p>Thanks,<br />
Jim Mirkalami</p>
<p>PS: I am a single dad! ;)
</p></blockquote>
<p>Other ones you will see around the place are:</p>
<blockquote><p>Tammy kingston, on February 5th, 2008 at 5:18 pm Said:</p>
<p>Jim Mirkalami, the very globally highly regarded auctioneer, is a peaceful man single father of two beautiful children. He is also a regular reader of this blog. Great job you ppl!</p></blockquote>
<blockquote><p>Aslan, on February 7th, 2008 at 10:06 pm Said:</p>
<p>He is a kind and very loving man.</p></blockquote>
<p>I don&#8217;t know who Tammy is. I get no useful search results for &#8220;Tammy Mirkalami&#8221;, but I am guessing she is from Kingston (which is near Toronto). I am guessing the Aslan above is more likely to be <a href="http://www.linkedin.com/pub/3/8A8/A51">Aslan Mirkalami</a> (owner of <a href="http://www.rugman.com/">rugman.com</a>) than a lion king from Narnia.</p>
<p>Does this variety of reputation management work?  Sure does.  A few days later, and at least the top 10 pages of search results for his name are all blogs.  The negative press is presumably still indexed, but has dropped way down the list where only a dedicated searcher will find it.  He many have overplayed his hand though, as the first result at the moment is a <a href="http://quityourdayjob.com.au/archives/1055">blogger calling him a spammer</a>.  </p>
<p>So here are some morals to this story.</p>
<ul>
<li>If you are going to have dissatisfied customers, make sure you have few enough that only local media cover the allegations.</li>
<li>Commenting furiously on blogs will give you Google results that effectively act as noise</li>
<li>Try to tailor the comments to the blogs a little.  It would not take much more time, and would make the effort invisible.</li>
</ul>
<p>Oh, and surely you already knew that whenever you buy anything (including rugs and jewelery) valuations from the seller are worth only slightly more than the paper your blog is written on.</p>
]]></content:encoded>
			<wfw:commentRss>http://lukewelling.com/2008/02/12/sweeping-bad-press-under-the-rug-using-seo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New Wordpress Version (With Security Fix)</title>
		<link>http://lukewelling.com/2008/02/05/new-wordpress-version-with-security-fix/</link>
		<comments>http://lukewelling.com/2008/02/05/new-wordpress-version-with-security-fix/#comments</comments>
		<pubDate>Tue, 05 Feb 2008 15:47:41 +0000</pubDate>
		<dc:creator>luke</dc:creator>
		
		<category><![CDATA[Luke Welling]]></category>

		<guid isPermaLink="false">http://lukewelling.com/2008/02/05/new-wordpress-version-with-security-fix/</guid>
		<description><![CDATA[If you have a WordPress blog it would be worth your time to install this update to 2.3.3, or at least replace xmlrpc.php.
This is being actively exploited.  It would also be worth checking your old blog posts for subtly inserted links in the article text.  You might find words that were in the [...]]]></description>
			<content:encoded><![CDATA[<p>If you have a WordPress blog it would be worth your time to install this <a href="http://wordpress.org/development/2008/02/wordpress-233/">update to 2.3.3</a>, or at least replace xmlrpc.php.</p>
<p>This is being actively exploited.  It would also be worth checking your old blog posts for subtly inserted links in the article text.  You might find words that were in the original article now link to spam parking pages.</p>
]]></content:encoded>
			<wfw:commentRss>http://lukewelling.com/2008/02/05/new-wordpress-version-with-security-fix/feed/</wfw:commentRss>
		</item>
		<item>
		<title>You Used PHP to Write That?! - Uh yeah.</title>
		<link>http://lukewelling.com/2008/02/04/you-used-php-to-write-that-uh-yeah/</link>
		<comments>http://lukewelling.com/2008/02/04/you-used-php-to-write-that-uh-yeah/#comments</comments>
		<pubDate>Sun, 03 Feb 2008 21:41:31 +0000</pubDate>
		<dc:creator>luke</dc:creator>
		
		<category><![CDATA[Luke Welling]]></category>

		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://lukewelling.com/2008/02/04/you-used-php-to-write-that-uh-yeah/</guid>
		<description><![CDATA[I have gotten pretty good at staying out of language flame wars recently.  Usually, when some wide eyed neophyte wipes a trickle of Kool-Aid from their chin and says &#8220;Ruby is sooooo much better than PHP&#8221;, I just say &#8220;uhuh&#8221;.  I can&#8217;t be bothered opening a can of Terry Chay on them and [...]]]></description>
			<content:encoded><![CDATA[<p>I have gotten pretty good at staying out of language flame wars recently.  Usually, when some wide eyed neophyte wipes a trickle of Kool-Aid from their chin and says &#8220;Ruby is sooooo much better than PHP&#8221;, I just say &#8220;uhuh&#8221;.  I can&#8217;t be bothered opening a can of <a href="http://terrychay.com/blog/article/php-ruby-evil-good.shtml">Terry Chay</a> on them and I don&#8217;t really see the point.  I can&#8217;t even usually be bothered saying &#8220;uhuh, that is why <a href="http://twitter.com/">Twitter</a> is the only A-list Web2.0 site built with Ruby and it is <a href="http://images.google.com/images?q=twitter+error">down all the time</a>.&#8221;</p>
<p>Every now and again though, <a href="http://lukewelling.com/2006/08/03/java-programmers-are-the-erotic-furries-of-programming/">I just can&#8217;t help taking the bait</a>.  </p>
<p><a href="http://www.cio.com/article/176250/You_Used_PHP_to_Write_WHAT_/1">You used PHP to write WHAT?!</a> by Kenneth Hess on CIO.com grates. PHP programmers in general are pragmatic. It is not generally a language chosen by purists and zealots who latch onto one tool and claim it to be perfect in every way, and appropriate for every task. There are plenty of people with deep PHP knowledge who could have written an insightful article fitting into the CIO series&#8217; theme that no one language is right for all applications.</p>
<p>Pap annoys me more when it appears in something claiming to be mainstream media than when it appears in some loser&#8217;s blog. Traditional media, while possibly <a href="http://blogs.smugmug.com/don/2008/01/24/why-traditional-print-media-is-doomed/">doomed</a>, does employ editors and generally attempts to check facts.</p>
<p>Well, sometimes they check facts. Ignoring the subjective parts that are merely the authors opinion, this article has so many simple factual inaccuracies that it is laughable.  I assume the author does not have a great deal of experience with PHP.</p>
<p>Given he claims you can port an application from one database to another with minimal effort by running find and replace to swap <code>mysql_query()</code> with <code>mssql_query()</code> it seems likely that he has never written a non-trivial application in any language.  So his major claim that PHP does not scale is presumably based on conversations he had with the fairies that live at the bottom of his garden.</p>
<p>Maybe it is just that Java fanboys push my buttons more than Ruby fanboys. Maybe it is just that damning with faint praise is more annoying than overt attacks.  Barack Obama is &#8220;<a href="http://www.cbsnews.com/stories/2007/03/09/politics/main2552110.shtml">articulate</a>&#8220;.  Australia is &#8220;lovely&#8221; and reminds Bill Bryson of <a href="http://www.amazon.com/Sunburned-Country-Bill-Bryson/dp/0767903862">Iowa in 1958</a>. PHP is good for &#8220;Creating an intranet site&#8221;. Come on!</p>
<p>Actually, it is might not not even be the factual inaccuracies and unsupported assertions that irritated me most.  When I hear &#8220;enterprise&#8221; used as an adjective and not a punchline I involuntarily clench and it is there five times on one page.</p>
<p>Postscript: A couple of days later, <a href="http://terrychay.com/blog/">Terry Chay</a> could not resist opening a can of <a href="http://terrychay.com/blog/article/php-enterprise-scalability.shtml#comment-349232">Terry Chay</a> on them.</p>
]]></content:encoded>
			<wfw:commentRss>http://lukewelling.com/2008/02/04/you-used-php-to-write-that-uh-yeah/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Following the big dogs on web application security</title>
		<link>http://lukewelling.com/2007/12/21/following-the-big-dogs-on-web-application-security/</link>
		<comments>http://lukewelling.com/2007/12/21/following-the-big-dogs-on-web-application-security/#comments</comments>
		<pubDate>Fri, 21 Dec 2007 21:06:18 +0000</pubDate>
		<dc:creator>luke</dc:creator>
		
		<category><![CDATA[Security]]></category>

		<category><![CDATA[censorship]]></category>

		<category><![CDATA[cracking]]></category>

		<category><![CDATA[eBay]]></category>

		<category><![CDATA[hacking]]></category>

		<guid isPermaLink="false">http://lukewelling.com/2008/01/31/following-the-big-dogs-on-web-application-security/</guid>
		<description><![CDATA[(This post originally appeared as part of the 2007 PHP Advent calendar)
At this time of year people are apt to get all warm and sentimental &#8230; Right up until their first trip to a mall on a Saturday when they go back to hating their fellow man and instituting an &#8220;If Amazon don&#8217;t sell it, [...]]]></description>
			<content:encoded><![CDATA[<p>(This post originally appeared as part of the <a href="http://shiflett.org/blog/2007/dec/php-advent-calendar-day-21">2007 PHP Advent calendar</a>)</p>
<p>At this time of year people are apt to get all warm and sentimental &#8230; Right up until their first trip to a mall on a Saturday when they go back to hating their fellow man and instituting an &#8220;If Amazon don&#8217;t sell it, you&#8217;re not getting it&#8221; policy on gift giving.  December is very important to retail, and very important to retail sites.</p>
<p>I remember some good advice I read a long time ago.  Vincent Flanders &#038; Michael Willis in <a href = "http://www.amazon.com/Web-Pages-That-Suck-Looking/dp/078212187X">Web Pages That Suck</a> suggested you &#8220;follow the big dogs&#8221;, in other words copy Amazon. Their reasoning was sound. You will likely get it wrong on your first try, you can&#8217;t afford to run usability studies of your own, and don&#8217;t want to spend months and numerous iterations getting it right. Learning from other people&#8217;s mistakes is always less embarrassing than learning from your own. </p>
<p>I have had to paraphrase here, because I opted to recycle nearly all my old books rather than ship them half way around the world.  Had I wanted to check the accuracy of my quote, it would have cost me <a href="http://www.amazon.com/gp/offer-listing/078212187X/ref=dp_olp_2/104-9826995-4416708">one cent</a> to buy a second hand copy of that book.</p>
<p>While the long term relevance of most of the advice in old computer books is fairly accurately reflected by that valuation, it was good advice in 1998.  If you were embarking on an ecommerce venture at a time when there was a shortage of people who knew what they were doing, best practice conventions were not settled and innovation was rapid there were worse philosophies you could have than &#8220;What Would Amazon Do?&#8221;</p>
<p>The same idea is popular today, and for the same reason. There is always a shortage of people who really know what they are doing, so there are plenty of people making decisions by asking &#8220;What Would Google/Amazon/Microsoft/eBay/PayPal/Flickr/Yahoo/YouTube/Digg/Facebook Do?&#8221; If you are in a space where nobody really knows the best way yet, copying the segment leader is a low risk, low talent shortcut to making mainly good decisions, even if does mean you are always three months behind.</p>
<p>The idea does not apply well to web application security. There are two main reasons for this: first, the big dogs make plenty of mistakes, and second, good security is invisible. </p>
<p>You might notice mistakes, you might read about exploited vulnerabilities and you might notice PR based attempts at the illusion of security, but you probably don&#8217;t notice things quietly being done well.</p>
<p>Common big dog mistakes include:</p>
<ul>
<li><strong>Inviting people to click links in email messages.</strong><br />
You would think that, as one of the most popular phishing targets out there, PayPal would not want to encourage people to click links in emails. Yet, if you sign up for a Paypal account, the confirmation screen requests that you do exactly that.</p>
<p><a href = 'http://lukewelling.com/wp-content/uploads/2007/12/paypalclick.gif'><img src='http://lukewelling.com/wp-content/uploads/2007/12/paypalclick.gif' alt='Paypal Confirmation Screen' /></a>
</li>
<li><strong>Stupid validation rules.</strong><br />
We all want ways to reject bad data, but it is usually not easy to define hard and fast rules to recognize it, even for data with specific formatting. Everybody wants a simple regex to check email addresses are well formed.  Unfortunately, to permit any email that would be valid according to RFC2822, a simple one is not going to cut it.  Which means that many, many people add validation that is broken and reject some real addresses.  Most are not as stupid as the one AOL used to have for signing up for AIM, which insisted that all email addresses ended in .com, .net, .org, .edu or .mil, but many will reject + and other valid non-alphanumeric characters in the local part of an address (the bit before the @).  </li>
<li><strong>Stupid censorship systems</strong><br />
Simple keyword based censorship always annoys people.  Eventually, somebody named <a href = "http://www.theregister.co.uk/2002/06/17/my_names_too_rude/">Woodcock</a> is going to turn up.<br />
Xbox Live is infamous for rejecting gamertags and mottos after validating them against an extensive list of &#8220;inappropriate&#8221; words.  Going far beyond comedian George Carlin&#8217;s notorious Seven Dirty Words, there is a list of about 2700 words that are supposedly banned. By the time you add your regular seven, all possible misspellings thereof, most known euphemisms for body parts, racial epithets, drug related terms, Microsoft brand names, Microsoft competitors&#8217; brand names, terms that sound official and start heading off into foreign languages, you end up catching a lot of innocent phrases.
</li>
<li><strong>Broken HTML filtering.</strong><br />
Stripping all HTML from user submitted content and safely displaying the result is often done badly, but is not that difficult.  On the other hand, allowing some HTML formatting as user input, but disallowing &#8220;dangerous&#8221; parts is not an easy problem, especially if you are trying to foster an ecosystem of third party developers.  </p>
<p>The MySpace Samy worm worked not because MySpace failed to filter input, but because of a series of <a href="http://namb.la/popular/tech.html">minor cracks</a> that combined allowed arbitrary JavaScript. Once you choose to allow CSS so that users can add what passes for style on MySpace it becomes very hard to limit people to only visual effects.  </p>
<p>eBay has had less well known problems with a similar cause, but without a dramatic replicating worm implementation.  Earlier this year scammers were placing large transparent divs over their listings so that any click on the page triggered a mailto or loaded a page of their own. I could not see examples today, so I assume they have fixed the specific vector, but giving users a great deal of freedom to format content that they upload makes ensuring that content is safe for others to view very difficult.
</li>
<li><strong><a href="http://lukewelling.com/2007/07/31/short-clean-uris-are-more-secure/">Stupidly long urls</a></strong><br />
The big dogs love long complicated urls.  </p>
<pre>      https://chat.bankofamerica.com/hc/LPBofA2/?visitor=&#038;mse
      ssionkey=&#038;cmd=file&#038;file=chatFrame&#038;site=LPBofA2&#038;channel=
      web&#038;d=1185830684250&#038;referrer=%28engage%29%20https%3A//s
      itekey.bankofamerica.com/sas/signon.do%3F%26detect%3D3&#038;
      sessionkey=H6678674785673531985-3590509392420069059K351
      97612</pre>
<p>Having let people get used to that sort of garbage from sites that they should be able to trust, you can&#8217;t really be surprised that normal people can&#8217;t tell the difference between an XSS attack hidden in URL encoded JavaScript and a real, valid, safe URI. Even abnormal people who can decode a few common URL encodings in their heads are not really scrolling across the hidden nine tenths of the address bar to look at that lot.</li>
<li><strong>Looking for simple solutions</strong><br />
Security is not one simple problem, or even a set of simple problems, so looking for simple solutions such as the <a href="http://www.f-secure.com/weblog/archives/archive-052007.html#00001184">proposed .bank TLD</a> is rarely helpful.  This is not helped by the vendor-customer nature of much of the computer industry. The idea that you can write a check to somebody and a problem goes away is very compelling - buy a more expensive domain name, or a more expensive Extended Validation Certificate, or run an automated software scan to meet PCI compliance and you might sleep more soundly at night, but many users already don&#8217;t understand the URL and other clues that their browser provides them.  Giving more subtle clues to them is unlikely to help.  Displaying a GIF in the corner of your web page bragging about your safety might create the illusion of security and might well help sales, but it won&#8217;t actually help safety on its own.
        </li>
</ul>
<p>You can&#8217;t follow the public example of the big dogs.  They still make some dumb decisions, they still make the small mistakes that allow the CSRF and XSS exploits that are endemic and they are often not very responsive to disclosures. If a major site makes 99 good security decisions and one bad one, you won&#8217;t notice the 99. Unfortunately with security you are still far better off seeing how others have been exploited and critically evaluating what they say they <strong>should be</strong> doing, rather than trying to watch what they actually <strong>are </strong>doing.</p>
<p>Oh, and remember to stay away from malls on weekends in December.</p>
]]></content:encoded>
			<wfw:commentRss>http://lukewelling.com/2007/12/21/following-the-big-dogs-on-web-application-security/feed/</wfw:commentRss>
		</item>
		<item>
		<title>On Open Source: PHP Video Podcast</title>
		<link>http://lukewelling.com/2007/10/20/on-open-source-php-video-podcast/</link>
		<comments>http://lukewelling.com/2007/10/20/on-open-source-php-video-podcast/#comments</comments>
		<pubDate>Fri, 19 Oct 2007 17:15:25 +0000</pubDate>
		<dc:creator>luke</dc:creator>
		
		<category><![CDATA[Luke Welling]]></category>

		<guid isPermaLink="false">http://lukewelling.com/2007/10/20/on-open-source-php-video-podcast/</guid>
		<description><![CDATA[At OSCON this year Laura and I recorded a video podcast for Informit. This is part of Informit&#8217;s podcast series On Open Source. 
Maybe I should have waited until I have had time to watch all of it and see if I want to encourage people to watch it, but here is in two parts [...]]]></description>
			<content:encoded><![CDATA[<p>At OSCON this year <a href="http://www.laurathomson.com/">Laura</a> and I recorded a video podcast for Informit. This is part of Informit&#8217;s podcast series <a href="http://www.informit.com/podcasts/channel.aspx?c=1977eb71-4a34-42dd-a7d0-7952a08c527e">On Open Source</a>. </p>
<p>Maybe I should have waited until I have had time to watch all of it and see if I want to encourage people to watch it, but here is in two parts anyway.<br />
<a href="http://www.informit.com/podcasts/episode.aspx?e=b36913d4-fa3b-44a2-ab9a-9a9dd41676db">Part 1</a> and <a href="http://www.informit.com/podcasts/episode.aspx?e=1b278d9a-30c2-467d-aaf3-cf30c3a1d71d">Part 2</a></p>
<p>We talk about books, Laura travails against frameworks, I talk about security, we talk about how we got into PHP, and I probably compare Java to something unpleasant.</p>
]]></content:encoded>
			<wfw:commentRss>http://lukewelling.com/2007/10/20/on-open-source-php-video-podcast/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
