<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://syndication.thedailywtf.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0">
	<channel>
		<title>The Daily WTF</title> 
		<link>http://thedailywtf.com/</link> 
		<description>Curious Perversions in Information Technology</description> 

		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://syndication.thedailywtf.com/TheDailyWtf" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="thedailywtf" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>41.36995</geo:lat><geo:long>-81.862591</geo:long><item>
			<author>Remy Porter</author> 
			<title>Long Distance</title> 
			<link>http://thedailywtf.com/Articles/Long-Distance.aspx</link> 
			<category>Feature Articles</category>
			<pubDate>Tue, 15 May 2012 13:00:00 GMT</pubDate> 
			<guid isPermaLink="false">7316</guid> 
			<description>&lt;p&gt;&lt;b&gt;Lawrence&lt;/b&gt;'s employer had heard that this newfangled "Desktop PC" could reduce their IT costs, and they wanted in on it. It was the mid 80s, and at the time, their plants scattered all over Alabama connected to a central mainframe via dumb terminals connected over very expensive leased lines. It was time to upgrade, and Lawrence wasn't in charge of it. He didn't get called in until things went wrong.
&lt;/p&gt;&lt;p&gt;
"This new PC system is &lt;i&gt;really slow&lt;/i&gt;," he was told while on a plant tour. That didn't sound likely- the PCs were running blisteringly fast 4.77MHz, 8088 CPUs with 16Kb of RAM, and since someone had connected "arithmetic-heavy accounting usage" to "floating point processing", they all had 8087 co-processors. There was no way they were slow, especially since half the time they were just running a 3270 terminal emulator.
&lt;/p&gt;&lt;p&gt;
But sure enough, when they fired up the terminal emulator, it was slower than anything. Going from the login screen to the menu, and then from the menu to the order fulfillment screen took multiple minutes. Was the 300-baud smartmodem that slow? Lawrence fiddled connections, tested the line, and then eventually got around to cranking the volume on the modem's speaker. No, the modem wasn't that slow. 
&lt;/p&gt;&lt;p&gt;
Whoever had configured the deployment had tried to mirror their old system as closely as possible. In the old system, the terminal started a new connection every time the user pressed enter, and then disconnected from the mainframe until the user triggered the next command. So in the new system, they did the same thing- which meant each time the client finished loading a screen, the modem would hang up.
&lt;/p&gt;&lt;p&gt;
That particular problem was easy &lt;span onclick="cornify_add();return false;" title="click me!"&gt;to fix&lt;/span&gt;&lt;script type="text/javascript" src="http://www.cornify.com/js/cornify.js"&gt;&lt;/script&gt;,&lt;!-- Is it just be, or have bronies kinda ruined my unicorns. Maybe I should stop doing them… Just kidding. Nothing can ruin my unicorns!--&gt; and simply involved making sure each PC had its own phone line, and that the terminal emulator made sure to keep the connection open. But one of their remote offices, someplace deep in the Alabama backwoods, proved intractable- they couldn't connect at all.
&lt;/p&gt;&lt;p&gt;
Lawrence tried diagnosing their problem remotely at first. The phone line seemed good- he could dial it; the plant users could dial out. He shipped them a fresh modem, and eventually a fresh PC, but nothing seemed to make a difference. They couldn't dial the mainframe. So he had to go out to the plant.
&lt;/p&gt;&lt;p&gt;
Having learned his lesson, the first thing Lawrence did was crank the volume on the modem speaker. When the computer attempted to dial out, he heard the sound of touchtone bleeps followed by a crackly voice saying, "Number please."
&lt;/p&gt;&lt;p&gt;
That particular plant was so back in the backwoods of Alabama that it didn't have direct-dial long distance. The users were so used to it that they didn't even think it could be the problem. The small town phone company had no firm plan when they would start doing it. Lawrence helped pack up the PCs and reinstall the dumb terminals. By the time he left that company, they were still using them. They might still be using them today.&lt;/p&gt;
&lt;!-- Easy Reader Version: The 80s were the friggin' stone ages. Nothing good came out of the 80s, except yours truly. --&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/grzFKMyX3hUy_kzbf9x44LvnCbI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/grzFKMyX3hUy_kzbf9x44LvnCbI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/grzFKMyX3hUy_kzbf9x44LvnCbI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/grzFKMyX3hUy_kzbf9x44LvnCbI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://syndication.thedailywtf.com/~ff/TheDailyWtf?a=fudv1RqQ4iY:2bKBsBnQQe4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheDailyWtf?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheDailyWtf/~4/fudv1RqQ4iY" height="1" width="1"/&gt;</description> 
			<slash:comments>79</slash:comments> 
			<comments>http://thedailywtf.com/Comments/Long-Distance.aspx</comments>
		</item>
	
		<item>
			<author>Alex Papadimoulis</author> 
			<title>Coded Smorgasbord: FAIL FAIL,FAIL FAIL,FAIL FAIL and More</title> 
			<link>http://thedailywtf.com/Articles/FAIL-FAIL,FAIL-FAIL,FAIL-FAIL-and-More.aspx</link> 
			<category>Coded Smorgasbord</category>
			<pubDate>Mon, 14 May 2012 13:00:00 GMT</pubDate> 
			<guid isPermaLink="false">7318</guid> 
			<description>&lt;p&gt;&amp;quot;We're had been using a manufacturer's web service, but started getting errors all of a sudden,&amp;quot; wrote &lt;b&gt;Peter Lindgren&lt;/b&gt;. &amp;quot;Something has really, really failed.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
&amp;lt;StatusCode&amp;gt;InternalServerError&amp;lt;/StatusCode&amp;gt;
&amp;lt;StatusDescription&amp;gt;Internal Server Error&amp;lt;/StatusDescription&amp;gt;
&amp;lt;WebHeaders&amp;gt;
  &amp;lt;X-Backside-Transport&amp;gt;FAIL FAIL,FAIL FAIL,FAIL FAIL&amp;lt;/X-Backside-Transport&amp;gt;
&amp;lt;/WebHeaders&amp;gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;quot;Fortunately, a short time later, it started working again with this message.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
&amp;lt;StatusCode&amp;gt;OK&amp;lt;/StatusCode&amp;gt;
&amp;lt;StatusDescription&amp;gt;OK&amp;lt;/StatusDescription&amp;gt;
&amp;lt;WebHeaders&amp;gt;
  &amp;lt;X-Backside-Transport&amp;gt;OK OK,OK OK,OK OK&amp;lt;/X-Backside-Transport&amp;gt;
&amp;lt;/WebHeaders&amp;gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I'm not sure of the purpose of this,&amp;quot; &lt;b&gt;Jasmine&lt;/b&gt; wrote via the &lt;a href="http://inedo.com/downloads/submit-to-wtf"&gt;Submit to The Daily WTF visual studio extension&lt;/a&gt;, &amp;quot;maybe the stack was just too small or something?&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
Public Function Save() As Boolean
    Try
        SaveMeeting()
    Catch ex As Exception
        Throw ex
    End Try
End Function&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;quot;I was asked to modify some simple web page used to generate an online store,&amp;quot; &lt;b&gt;Mihai Todor&lt;/b&gt; wrote, &amp;quot;here's a Javascript function that I found in it, which is used to validate the required fields.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
function checkdata() {
    dataok = true;
    t1 = document.forms.signup.firstName.value;
    t2 = document.forms.signup.lastName.value;
    t3 = document.forms.signup.userName.value;
    t4 = document.forms.signup.password.value;
    t5 = document.forms.signup.passwordConfirm.value;
    t6 = document.forms.signup.email.value;
    t7 = document.forms.signup.url.value;
    t8 = document.forms.signup.adminFrontname.value;
    t9 = document.forms.signup.locale.options.selectedIndex;
    t10 = document.forms.signup.currency.options.selectedIndex;
    t11 = document.forms.signup.timezone.options.selectedIndex;
    t12 = document.forms.signup.packetType.options.selectedIndex;
    t13 = document.forms.signup.captcha_code.value;
    if(t1 == '' || t2 == '' || t3 == '' || t4 == '' || t5 == '' || t6 == '' || t7 == '' || t8 == ''){
        alert(&amp;quot;Please fill-up all the fields&amp;quot;);
        dataok = false; return(dataok);}
    if(t4 != t5){
        alert(&amp;quot;Please enter the password again&amp;quot;);
        dataok = false; return(dataok);}
    if(t9 == 0){
        alert(&amp;quot;Please select a locale&amp;quot;);
        dataok = false; return(dataok);}
    if(t10 == 0){
        alert(&amp;quot;Please select a currency&amp;quot;);
        dataok = false; return(dataok);}
    if(t11 == 0){
        alert(&amp;quot;Please select a time zone&amp;quot;);
        dataok = false; return(dataok);}
    if(t12 == 0){
        alert(&amp;quot;Please select a packet type&amp;quot;);
        dataok = false; return(dataok);}
    if(t13 == ''){
        alert(&amp;quot;Please fill-up the code field&amp;quot;);
        dataok = false; return(dataok);}
    return(dataok);
}&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;quot;I've seen these types of constants on &lt;em&gt;The Daily WTF&lt;/em&gt; before and always questioned if they were real,&amp;quot; wrote &lt;b&gt;Sterge&lt;/b&gt;, &amp;quot;and then I saw these.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
public static final String SLASH = &amp;quot;/&amp;quot;;
public static final String PERCENT = &amp;quot;%&amp;quot;;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;quot;I'm on a team that maintains a pretty 'serious' banking application,&amp;quot; &lt;b&gt;Giga B&lt;/b&gt; wrote, &amp;quot;it's pretty serious about the number of parameters in functions.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
public void WriteStep1Data(int LoanRequestID,
                           string InsertDate,
                           string OperatorID,
                           string FirstName,
                           string LastName,
                           string BirthDay,
                           int DocuemntTypeID,
                           int MaritialStatusID,
                           string DocumentIssueDate,
                           string DocumentExpireDate,
                           string DocumentIssuer,
                           string DocumentNo,
                           string PersonalNo,
                           int UniversityDegreeID,
                           string Address,
                           string Address2,
                           int RealAddressLivingPeriod,
                           int ChildrenCount,
                           int FamilyMembersCount,
                           decimal MonthlyIncome,
                           decimal MonthlyFamilyExpanses,
                           string HomePhoneNumber,
                           string MobilePhoneNumber,
                           string WorkPhoneNumber,
                           string EmailAddress,
                           string JobOrganizationName,
                           string JobOrganizationAddress,
                           string JobOrganizationActivity,
                           string JobOrganizationPhoneNumber,
                           string JobPosition,
                           string JobWorkingYears,
                           string JobBossName,
                           string JobBossPhoneNumber,
                           byte ClientSex,
                           decimal FinTotalProductsAmount,
                           decimal FinCommissionAmount,
                           int FinLoanPeriod,
                           decimal FinFirstPaymentAmount,
                           decimal FinLoanAmount,
                           decimal FinMonthlyPaymentAmount,
                           string GuarantorName,
                           string GuarantorLastName,
                           string GuarantorBirthDate,
                           string GuarantorPersonalNo,
                           int? GuarantorDocType,
                           string GuarantorDocumentNo,
                           string GuarantorDocIssuer,
                           string GuarantorDocIssueDate,
                           string GuarantorDocExpireDate,
                           string GuarantorTelHome,
                           string GuarantorTelMobile,
                           string GuarantorAddress,
                           string GuarantorAddressReal,
                           string GuarantorJobName,
                           decimal GuarantorIncome,
                           byte? GuarantorSex,
                           decimal HistoryPlaticAnnualTurnOver,
                           string HistoryDescription,
                           string MarketingQ1,
                           string MarketingQ2,
                           int StatusID,
                           string DateViewed,
                           string DateAnswered,
                           string BackOfficeUserID,
                           string RepaymentDate,
                           string ShopID,
                           string CalculationGroupID,
                           decimal RegFeeAmount,
                           int clientDeptNo,
                           int guarantorDeptNo,
                           int guarantorMaritialStatusID,
                           string AccountCodeWord,
                           string ClientFatherName,
                           string ClientBirthPlace,
                           string ClientCityAttendingToReg,
                           string GuarantorFatherName,
                           string GuarantorBirthPlace,
                           string GuarantorCityAttendingToReg,
                           string GuarantorJobActivity,
                           string GuarantorJobPosition,
                           string GuarantorJobContactPhone,
                           string GuarantorJobCodeWord,
                           string GuarantorEmailAddress
    )
{
   ... snip a few hundred lines ...
}
&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;quot;I learned a neat trick from our enterprise framework,&amp;quot; &lt;b&gt;Eli&lt;/b&gt; noted, &amp;quot;if you want to convert an int to a double, just do this!&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
double d = Double.valueOf(new Integer(i).toString()).doubleValue();&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;quot;I had to look over some C# code written by a colleague of mine,&amp;quot; notes &lt;b&gt;John D&lt;/b&gt;, &amp;quot;the following lines represent just the tip of the iceberg of the pain that I had to go through while understanding the code.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
bool true1 =true;
bool true12 = true;
.... snip ....
true1 = false;
true1 = false;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;quot;I found this pattern in source code I have been working on,&amp;quot; wrote &lt;b&gt;Nas Nubian&lt;/b&gt;, &amp;quot;this is how some developer decided to open a new window for when users click on a links.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
&amp;lt;a href=&amp;quot;/the/path/to/the/url&amp;quot; 
  onclick=&amp;quot;window.open(this.getAttribute('href'),'_blank');return false;&amp;quot;&amp;gt;
  link text
&amp;lt;/a&amp;gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;quot;So,&amp;quot; wonders &lt;b&gt;Johnny B&lt;/b&gt;, &amp;quot;I guess GUID from our production db servers are better than local GUID?&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
Function GetNewGuid()
    Dim cnGuid, rsGuid
    
    Set cnGuid = CreateObject(&amp;quot;ADODB.Connection&amp;quot;)
    Set rsGuid = CreateObject(&amp;quot;ADODB.Recordset&amp;quot;)

    cnGuid.Open = _
        &amp;quot;Provider=SQLOLEDB.1;&amp;quot; + 
        &amp;quot;Data Source=&amp;lt;production server&amp;gt;; &amp;quot; + 
        &amp;quot;Initial Catalog=&amp;lt;production DB&amp;gt; &amp;quot; +
        &amp;quot;user id = '********';&amp;quot; + 
        &amp;quot;password='*********'&amp;quot;&amp;quot;

    rsGuid.Open &amp;quot;SELECT newid() as Guid&amp;quot;, cnGuid

    If Not rsGuid.EOF Then
        GetNewGuid = rsGuid(&amp;quot;Guid&amp;quot;).Value
    End If
End Function&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;quot;The comment says it all,&amp;quot; wrote &lt;b&gt;Michael&lt;/b&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
/**
 * Defines the value for none. Default is &amp;quot;none&amp;quot;.
 */
public static String NONE = &amp;quot;none&amp;quot;;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;quot;This is snippet of code I found in a large program I maintain,&amp;quot; wrote &lt;b&gt;Brian&lt;/b&gt;. &amp;quot;The original developers have long since moved on. Funnily enough, this particular code was properly mutexed, but I guess the paranoid programmer doesn't trust mutexes. I only wish the original developers were so 'paranoid' when it came to avoiding things like buffer overflows, memory leaks, and sql injection.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
if ( resData.state() == RESOURCE_STATE_ACTIVE )
{
    elapsedTime.setBase( resData.startTime() );
    if ( elapsedTime.diff() &amp;gt;= maxDuration )
    {
        // Do one more validity check, the paranoid programmer knows
        // the state may have changed since the last check.
        if ( resData.state() == RESOURCE_STATE_ACTIVE )
        {
            resourceActiveTooLong( resData );
        }
    }
}&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HBZc6_Cj5XIqGL2A-v9v8vRi0FU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HBZc6_Cj5XIqGL2A-v9v8vRi0FU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HBZc6_Cj5XIqGL2A-v9v8vRi0FU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HBZc6_Cj5XIqGL2A-v9v8vRi0FU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://syndication.thedailywtf.com/~ff/TheDailyWtf?a=_jSBPsPVWHM:CAReM69fT1s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheDailyWtf?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheDailyWtf/~4/_jSBPsPVWHM" height="1" width="1"/&gt;</description> 
			<slash:comments>166</slash:comments> 
			<comments>http://thedailywtf.com/Comments/FAIL-FAIL,FAIL-FAIL,FAIL-FAIL-and-More.aspx</comments>
		</item>
	
		<item>
			<author>Alex Papadimoulis</author> 
			<title>Error'd: Squared Interior Design</title> 
			<link>http://thedailywtf.com/Articles/Squared-Interior-Design.aspx</link> 
			<category>Error'd</category>
			<pubDate>Fri, 11 May 2012 13:00:00 GMT</pubDate> 
			<guid isPermaLink="false">7317</guid> 
			<description>&lt;p&gt;&lt;a name="Pic4"&gt;&lt;/a&gt;&amp;quot;I found this ad for an interior design company,&amp;quot; wrote &lt;b&gt;Wouter&lt;/b&gt;, &amp;quot;they probably do a lot of rectangular designs.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#Pic4"&gt;&lt;img alt="" border="0" src="http://img.thedailywtf.com/images/12/q3/e12/IMAG0158.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="Pic1"&gt;&lt;/a&gt;&amp;quot;How am I supposed to troubleshoot this?&amp;quot; wonders &lt;b&gt;Jeff Mitchell&lt;/b&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#Pic1"&gt;&lt;img alt="" border="0" src="http://img.thedailywtf.com/images/12/q3/e12/backupexec.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="Pic2"&gt;&lt;/a&gt; &amp;quot;I'm not really sure what happened here, but I had to use Chrome's developer tools to hack my birthdate into the form so I could submit it,&amp;quot; writes &lt;b&gt;Dave&lt;/b&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#Pic2"&gt;&lt;img alt="" border="0" src="http://img.thedailywtf.com/images/12/q3/e12/birthdate2.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="Pic3"&gt;&lt;/a&gt;&amp;quot;I need this form to renew my immigration documents,&amp;quot; writes &lt;b&gt;Jack Nathan&lt;/b&gt;, &amp;quot;what do i do now?!?&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#Pic3"&gt;&lt;img alt="" border="0" src="http://img.thedailywtf.com/images/12/q3/e12/Canada%20Government%20Forms%20Online.JPG" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="Pic4"&gt;&lt;/a&gt;&amp;quot;I found this ad for an interior design company,&amp;quot; wrote &lt;b&gt;Wouter&lt;/b&gt;, &amp;quot;they probably do a lot of rectangular designs.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#Pic4"&gt;&lt;img alt="" border="0" src="http://img.thedailywtf.com/images/12/q3/e12/IMAG0158.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="Pic5"&gt;&lt;/a&gt; &amp;quot;My mother's middle name has 3 characters.&amp;quot; wrote &lt;b&gt;Julie Crowner&lt;/b&gt;. &amp;quot;I only have a middle initial. Fortunately, we're the only ones impacted by this. Well, except Ada. And Aja. And Ala, Ali, Ama, Ami, Amy, Ana, Ann, Ara, Ava, Bea, Bee, Bev, Deb, Dee, Dot, Eda, Ela, Ema, Ena, Era, Eva, Eve, Exa, Fae, Fay, Flo, Gay, Gia, Ica, Icy, Ida, Ila, Ilo, Ima, Imo, Ina, Ira, Isa, Iva, Ivy, Iza, Jan, Joe, Joi, Joy, Kai, Kay, Kia, Kim, Kya, Lea, Lee, Leo, Lia, Liz, Lou, Lue, Luz, Lyn, Mae, Mai, May, Meg, Mia, Mya, Nan, Nia, Nya, Oda, Ola, Oma, Ona, Ora, Osa, Ota, Ova, Pam, Pat, Rae, Ray, Roy, Sky, Sue, Tai, Tea, Tia, Tom, Ula, Una, Ura, Val, Zoa, Zoe, Abb, Abe, Ace, Acy, Ada, Add, Alf, Ali, Amy, Ann, Ari, Art, Asa, Bee, Ben, Bob, Bud, Cal, Cam, Cap, Cas, Che, Con, Coy, Dan, Dax, Dee, Del, Doc, Don, Dow, Ean, Ebb, Edd, Edw, Eli, Ell, Ely, Eva, Fay, Fed, Foy, Gay, Gee, Geo, Gil, Gus, Guy, Hal, Ham, Hoy, Huy, Ian, Ida, Ike, Ira, Irl, Iva, Ivy, Jan, Jax, Jay, Jeb, Jed, Jep, Jim, Job, Joe, Jon, Joy, Kai, Kay, Kem, Ken, Kim, Kip, Kit, Lea, Lee, Lem, Len, Leo, Les, Lew, Lex, Lim, Lon, Lou, Loy, Luc, Lue, Lum, Lyn, Mac, Mae, Mal, Mat, Max, May, Mel, Moe, Nat, Ned, Nim, Noe, Obe, Oda, Ola, Ole, Ora, Ott, Ova, Pat, Rae, Ras, Ray, Red, Rex, Rey, Rob, Rod, Roe, Ron, Roy, Sal, Sam, Sid, Sie, Sim, Sol, Son, Tab, Tad, Taj, Tal, Ted, Tex, Tim, Tod, Tom, Toy, Tre, Tye, Val, Van, Vic, Von, Wes, Yee, Zeb, and Zed.&amp;quot;  What will people with all these middle names do?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#Pic5"&gt;&lt;img alt="" border="0" src="http://img.thedailywtf.com/images/12/q3/e12/Middle_name.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="PPic1"&gt;&lt;/a&gt;&amp;quot;My company recently partnered with a developer who had a custom applicatio written in Microsoft Access that we are now forced to train/support/install,&amp;quot; writes &lt;b&gt;Ben Reisner&lt;/b&gt;. &amp;quot;The following error message is just one of many that has an interesting definition of Equal.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#PPic1"&gt;&lt;img alt="" border="0" src="http://img.thedailywtf.com/images/12/q3/e12/notequal.PNG" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="PPic2"&gt;&lt;/a&gt;&lt;b&gt;Kira Russell&lt;/b&gt; snapped this when it was a bit cold in North Wales.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#PPic2"&gt;&lt;img alt="" border="0" src="http://img.thedailywtf.com/images/12/q3/e12/verycold.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="PPic3"&gt;&lt;/a&gt; &amp;quot;I'm still getting used to my new keyboard, and occasionally hit the '\' and ENTER keys at the same time,&amp;quot; writes &lt;b&gt;Michael Dowden&lt;/b&gt;.  &amp;quot;I was pretty sure I had done this one morning when I logged in to Windows for the first time, however I got in okay and figured all was well...until I got back from a morning meeting, having locked my workstation.  I was greeted with the usual login prompt (screenshot attached), but with '\' appended to my username.  I was forced to hard boot my machine since Windows doesn't allow you to edit your username on the locked-login screen.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#PPic3"&gt;&lt;img alt="" border="0" src="http://img.thedailywtf.com/images/12/q3/e12/win-login-wtf.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RWWbqIlIxScUHbIDyWekzplfJPU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RWWbqIlIxScUHbIDyWekzplfJPU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RWWbqIlIxScUHbIDyWekzplfJPU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RWWbqIlIxScUHbIDyWekzplfJPU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://syndication.thedailywtf.com/~ff/TheDailyWtf?a=zgw3b-OLa1Q:nbciC3fGow8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheDailyWtf?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheDailyWtf/~4/zgw3b-OLa1Q" height="1" width="1"/&gt;</description> 
			<slash:comments>108</slash:comments> 
			<comments>http://thedailywtf.com/Comments/Squared-Interior-Design.aspx</comments>
		</item>
	
		<item>
			<author>Mark Bowytz</author> 
			<title>CodeSOD: Epoch Billing System</title> 
			<link>http://thedailywtf.com/Articles/Epoch-Billing-System.aspx</link> 
			<category>CodeSOD</category>
			<pubDate>Thu, 10 May 2012 13:00:00 GMT</pubDate> 
			<guid isPermaLink="false">7314</guid> 
			<description>&lt;p&gt;Everybody in the IT department was quite happy -- even a little surprised -- with how well the outsourced project to replace the legacy billing system was progressing.&lt;/p&gt;
&lt;p&gt;Well, actually, the project managers weren't all that surprised. Over the past four months, they'd pumped out reams of specs and design documents, often boasting that their level of planning hadn't been seen since the Apollo missions. So, for them, the fact that everything was turning out as designed spoke volumes about the success of their planning and processes.&lt;/p&gt;
&lt;h3 style="margin-bottom: 0px;"&gt;New Billing Code&lt;/h3&gt;
&lt;p style="margin-top: 0px;"&gt;Jeff and the other developers who were stuck supporting the existing billing system until the big cutover (still a few months away) wanted to see what this super system looked like under the hood. After all, because they were expected to support the new system once it came online, shouldn't they at least have an understanding of how the underlying code worked?&lt;/p&gt;
&lt;p&gt;The developers made their case for months before the project managers gave up on their &amp;quot;it's not done yet&amp;quot; rhetoric and reluctantly handed over a few modules that they'd deemed bug-free.&lt;/p&gt;
&lt;p&gt;When Jeff got his hands on the code, one line in particular caught his eye:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
int strElapsedDays = ( 
 convertDate(intDay1, intMonth1, intYr1) - 
 convertDate(intDay2, intMonth2, intYr2)) / DAY;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;h3 style="margin-bottom: 0px;"&gt;Unusual Process&lt;/h3&gt;
&lt;p style="margin-top: 0px;"&gt;Knowing that C# had built-in functions to easily determine the span of days between two dates, Jeff thought the approach was a little strange. Once he tracked down convertDate, things got even weirder:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
public const int DAY = 86400;
public const int WEEK = 604800;
public const int YEAR = 31449600;
        
private static int convertDate(int day, int month, int year)
{
 
  int[] months = new int[] 
     { 0,31,59,90,120,151, 
       181,212,243,273,304,334 };

  return ( ((year - 1970) * DAY * 365) + 
           (((year - 1970)/4) * DAY) + 
           (months[month - 1] * DAY) + ((day-1) * DAY) );
}&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;Caught off guard, Jeff just stared at the function for a good 10 minutes, trying to figure it out. When he did, it hit him like a ton of bricks. Rather than using the built-in C# date functions, the developer had opted to convert a date into its Unix Epoch -- the number of seconds elapsed since Jan. 1, 1970 -- and work from there.&lt;/p&gt;
&lt;p&gt;Jeff had to admit, the solution was a little bit genius. Unfortunately, it wasn't a fit because the new system was running on a Windows server. So Jeff did his duty and raised the matter with the project management team so it could be added to the bug-fix queue for the offshore team.&lt;/p&gt;
&lt;p&gt;Weeks later, Jeff followed up with one of the members of the project management team, just out of curiosity, to see if the fix had been made. To his surprise, it hadn't been addressed -- nor would it be any time soon. Apparently the &amp;quot;bug&amp;quot; was downgraded to a feature request because -- in the eyes of the project managers -- if an application functioned as it was designed, there wasn't a need to go back in and change it. &lt;fck:hr&gt; &lt;/fck:hr&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Epoch Billing System was &lt;a href="http://visualstudiomagazine.com/articles/2011/03/01/epoch-billing-system.aspx"&gt;originally published&lt;/a&gt; in the March 2011 edition of &lt;a href="http://visualstudiomagazine.com/"&gt;Visual Studio Magazine&lt;/a&gt;. VSM is the leading site for enterprise .NET developers, and offers a &lt;a href="http://1105-sub.halldata.com/site/ONE001215VOnew/init.do?&amp;amp;PK=WSPVSM"&gt;free magazine subscription&lt;/a&gt; for influential readers.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/B9DulcotIfqczz2OPZSG3cfP0gQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/B9DulcotIfqczz2OPZSG3cfP0gQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/B9DulcotIfqczz2OPZSG3cfP0gQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/B9DulcotIfqczz2OPZSG3cfP0gQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://syndication.thedailywtf.com/~ff/TheDailyWtf?a=gWqm51pWzEE:mgEWTswwrCg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheDailyWtf?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheDailyWtf/~4/gWqm51pWzEE" height="1" width="1"/&gt;</description> 
			<slash:comments>172</slash:comments> 
			<comments>http://thedailywtf.com/Comments/Epoch-Billing-System.aspx</comments>
		</item>
	
		<item>
			<author>Alex Papadimoulis</author> 
			<title>The Online Ordering System</title> 
			<link>http://thedailywtf.com/Articles/The-Online-Ordering-System.aspx</link> 
			<category>Feature Articles</category>
			<pubDate>Tue, 08 May 2012 14:30:00 GMT</pubDate> 
			<guid isPermaLink="false">7315</guid> 
			<description>&lt;p&gt;Local businesses aren't exactly known for their web savviness or IT prowess. And for the most part, that's just fine. You'd be better off judging a prospective attorney on the suit he wears rather than the website he maintains, as that at least has some tangential relationship to practicing law. But usually, you'd just go with whomever a trusted colleague recommended, anyway.&lt;/p&gt;
&lt;p&gt;For restaurants however, this is quickly changing. With smartphones becoming the norm, many people will use the web to discover the restaurants around them, see what menus they have, and get a general vibe for the place. And as such, local restaurants do become judged by their web savviness &amp;ndash; or at least, their ability to maintain a halfway-decent website.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ludovico Gardenghi&lt;/b&gt; found himself in this exact position when looking for a local eatery that offered take-out. He stumbled upon the website of a nearby place that, despite having a hideously orange, flash-only website, looked like it'd be a good place to get dinner. And as luck would have it, there was even big, orange button that shouted ORDER ONLINE NOW!!!!!&lt;/p&gt;
&lt;p&gt;Clicking on that button led to a rather curious page that described the process for placing an order. The exact words on the page were in a different language, and it translated to something like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;span style="color: #aa3300; font-size: 22px; font-weight: bold"&gt;Order Online Today!&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #aa6600"&gt;Already familiar with ordering online? Then just head to the &lt;span style="color: #aa3366; text-decoration: underline"&gt;online ordering system&lt;/span&gt; now. Otherwise, just follow these few simple steps.&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;span style="color: #aa3300; font-weight: bold"&gt;Ordering online is really easy:&lt;/span&gt;&lt;/div&gt;
&lt;ol style="margin-top: 0px; color: #aa6600"&gt;
    &lt;li&gt;After reading these instructions, click on the orange, &amp;quot;online ordering system&amp;quot; button below to sign-on to the system&lt;/li&gt;
    &lt;li&gt;When you click on that link, you will be asked to open a connection to a remote server. Click the &amp;quot;accept&amp;quot; button to immediately sign-on, or click the &amp;quot;save&amp;quot; button to create a shortcut on your computer. With a shortcut, you'll then be able to directly access the online ordering system, even without opening our web site just by clicking on the icon (extension .rdp).&lt;/li&gt;
    &lt;li&gt;Once you accept the connection, a grey screen will appear, asking you for a password. Do not enter a password here; just click the OK button to continue.&lt;/li&gt;
    &lt;li&gt;Wait a few moments for the online ordering system to load.&lt;/li&gt;
    &lt;li&gt;If you've already registered, just you can enter your user ID and password, otherwise click on &amp;quot;Register&amp;quot; button and fill out the registration form.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-top: 30px"&gt;&lt;span style="padding-bottom: 10px; background-color: #aa3300; padding-left: 10px; padding-right: 10px; color: #fff; font-size: 18px; font-weight: bold; padding-top: 10px"&gt;online ordering system&lt;/span&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Clicking on the hideously orange &amp;quot;online ordering system&amp;quot; button downloaded an .rdp file:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
    screen mode id:i:2
    autoreconnection enabled:i:1
    username:s:beneeats
    domain:s:
    alternate shell:s:
    shell working directory:s:
    disable wallpaper:i:1
    disable full window drag:i:0
    disable menu anims:i:0
    disable themes:i:0
    disable cursor setting:i:0
    bitmapcachepersistenable:i:1
&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;And opening that .rdp file of course opened a connection to their server using Remote Desktop Connection.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;img alt="" src="http://img.thedailywtf.com/images/12/q3/5/pic1.png" /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;quot;I didn't try to log in as Administrator,&amp;quot; wrote Ludovico, &amp;quot;mostly out of pity.&amp;quot; Clicking the OK button did exactly what it advertised:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;img alt="" src="http://img.thedailywtf.com/images/12/q3/5/pic2.png" /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;quot;I couldn't help myself and pressed Ctrl-Alt-End. This brought up Task Manager, allowing me to run anything I'd want (cmd.exe and explorer.exe were already in the history), or change the password, shut down the machine, etc.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;img alt="" src="http://img.thedailywtf.com/images/12/q3/5/pic3.png" /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ludovico adds, &amp;quot;I did not dare to check if I could run things as other users, but I could see other users logged in ('cash desk', 'administration'), presumably so that the complete database of users, orders, and payments could be easily accessed from home. I visit this website from time to time and it has surprisingly survived over the past few years, though I would really love to know the story which led to this innovative online ordering system being created in the first place.&amp;quot;&lt;/p&gt;
&lt;p&gt;And that story, dear readers, I'll leave as an exercise of your imagination. Feel free to share your version of the story in the comments.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pyO67tkMFdUaZxm3DD9PmGZIivU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pyO67tkMFdUaZxm3DD9PmGZIivU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pyO67tkMFdUaZxm3DD9PmGZIivU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pyO67tkMFdUaZxm3DD9PmGZIivU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://syndication.thedailywtf.com/~ff/TheDailyWtf?a=XqotEM6CzCI:7xIA3J0Rmw0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheDailyWtf?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheDailyWtf/~4/XqotEM6CzCI" height="1" width="1"/&gt;</description> 
			<slash:comments>164</slash:comments> 
			<comments>http://thedailywtf.com/Comments/The-Online-Ordering-System.aspx</comments>
		</item>
	
		<item>
			<author>Alex Papadimoulis</author> 
			<title>CodeSOD: The Bit Setter</title> 
			<link>http://thedailywtf.com/Articles/The-Bit-Setter.aspx</link> 
			<category>CodeSOD</category>
			<pubDate>Mon, 07 May 2012 13:00:00 GMT</pubDate> 
			<guid isPermaLink="false">7313</guid> 
			<description>&lt;p&gt;&amp;quot;Bit manipulation can be tricky,&amp;quot; writes &lt;b&gt;Nathan&lt;/b&gt;, &amp;quot;especially if you have no familiarity with bitwise operators or logic.&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;quot;At least, that's what my &lt;em&gt;smarter-than-built-in-language-features&lt;/em&gt; colleague must have thought when he authored &lt;code&gt;setBit&lt;/code&gt;. Fortunately, his code was the only one that utilized this function, as it doesn't quite work as advertised.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
/*
 *    setBit($val, $bit, $switch)
 *
 *    This will switch all the bits specified by $bit to on or 
 *    off in $val depending on $switch. So, if $val = 8, and 
 *    $bit = 4, $switch is true, it will turn on the 4 bit, 
 *    and $val will end up being 12; Now, if $val = 12, and $bit 
 *    is 5, if $switch is true, $val will be 13, if false $val 
 *    will be 8. So, all the bits of $bit is turned on or off
 *
 */
function setBit($val, $bit, $switch = true) {
    $val = (int) $val;
    $bit = (int) $bit;

    // set some strings that humans would consider false
    // but would be converted to true if converted by PHP
    if (is_string($switch)) {
        switch ($switch) {
            case 'false' :
            case 'down' :
            case 'off' :
            case 'not' :
            case '0' :
            case '' :
                $switch = false;
                break;

            default :
                $switch = true;
                break;
        }
    }

    if ($switch) { // we are turning the bits on
        $newval = $val | $bit; // val OR bit
    }
    else { // we are turning the bits off
        $newval = $val &amp;amp; ( ~ $bit); // val AND ( NOT bit)
    }

    return $newval;
}&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/k_F3VdjhbufD3ai8EtR9lPpf43Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/k_F3VdjhbufD3ai8EtR9lPpf43Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/k_F3VdjhbufD3ai8EtR9lPpf43Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/k_F3VdjhbufD3ai8EtR9lPpf43Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://syndication.thedailywtf.com/~ff/TheDailyWtf?a=XjNpRAS3DvU:ecXZn1xm-HY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheDailyWtf?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheDailyWtf/~4/XjNpRAS3DvU" height="1" width="1"/&gt;</description> 
			<slash:comments>120</slash:comments> 
			<comments>http://thedailywtf.com/Comments/The-Bit-Setter.aspx</comments>
		</item>
	
		<item>
			<author>Alex Papadimoulis</author> 
			<title>Sponsor Appreciation, nullnull, and More Error'd</title> 
			<link>http://thedailywtf.com/Articles/Sponsor-Appreciation,-nullnull,-and-More-Errord.aspx</link> 
			<category>Feature Articles</category>
			<pubDate>Fri, 04 May 2012 15:00:00 GMT</pubDate> 
			<guid isPermaLink="false">7312</guid> 
			<description>&lt;p&gt;Please take a few moments to check out the great companies that sponsor &lt;em&gt;The Daily WTF&lt;/em&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;table&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td colspan="3"&gt;
            &lt;h3 style="padding-bottom: 2px; background-color: rgb(171,51,43); margin: 0px; padding-left: 2px; padding-right: 2px; color: rgb(255,255,255); padding-top: 2px"&gt;TDWTF Sponsors&lt;/h3&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;a href="http://pages.zeroturnaround.com/DownloadsfromTheDailyWTF_jrebel-download.html?utm_source=dailywtf&amp;amp;utm_medium=direct&amp;amp;utm_content=sponsor&amp;amp;utm_campaign=jrebel-download"&gt;&lt;img border="0" alt="JRebel Logo" src="http://img.thedailywtf.com/images/12/q3/e0/jrebel-by-zeroturnaround.png" /&gt;&lt;/a&gt;&lt;/td&gt;
            &lt;td&gt;&amp;nbsp;&lt;/td&gt;
            &lt;td&gt;&lt;b&gt;&lt;a href="http://pages.zeroturnaround.com/DownloadsfromTheDailyWTF_jrebel-download.html?utm_source=dailywtf&amp;amp;utm_medium=direct&amp;amp;utm_content=sponsor&amp;amp;utm_campaign=jrebel-download"&gt;JRebel&lt;/a&gt;&lt;/b&gt; is a JVM-plugin that makes it possible for Java developers to instantly see any code change made to an app without redeploying. JRebel lets you see code changes instantly, reloading classes and resources individually and updating one at a time instead of as a lump application redeploy. Download your FREE Trial Today!&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;a href="http://www.joyentcloud.com/technology/?utm_source=dailywtf&amp;amp;utm_medium=display&amp;amp;utm_campaign=DailyWTF"&gt;&lt;img border="0" alt="Joyent Logo" src="http://img.thedailywtf.com/images/12/q3/e0/joyent.gif" /&gt;&lt;/a&gt;&lt;/td&gt;
            &lt;td&gt;&amp;nbsp;&lt;/td&gt;
            &lt;td&gt;&lt;b&gt;&lt;a href="http://www.joyentcloud.com/technology/?utm_source=dailywtf&amp;amp;utm_medium=display&amp;amp;utm_campaign=DailyWTF"&gt;Joyent&lt;/a&gt;&lt;/b&gt; - This cloud ain't for storing music. Running your apps on Joyent's open-source SmartOS is a different, smarter cloud choice. Automatic and Free 400% vertical scaling, copy-on-write with ZFS, DTrace for killer visibility (heat maps! flamegraphs!) Come check out our stack.&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;a href="http://thedailywtf.com/tizes/a.aspx?ZoneID=0&amp;amp;BannerID=223&amp;amp;AdvertiserID=14&amp;amp;CampaignID=89&amp;amp;Task=Click&amp;amp;SiteID=1&amp;amp;RandomNumber=64815"&gt;&lt;img border="0" alt="Inedo" src="http://img.thedailywtf.com/images/201107/inedo.png" /&gt;&lt;/a&gt;&lt;/td&gt;
            &lt;td&gt;&amp;nbsp;&lt;img border="0" alt="" width="1" height="1" src="http://thedailywtf.com/tizes/a.aspx?ZoneID=0&amp;amp;BannerID=223&amp;amp;AdvertiserID=14&amp;amp;CampaignID=89&amp;amp;Task=Get&amp;amp;Mode=TEXT&amp;amp;SiteID=1&amp;amp;RandomNumber=64815" /&gt;&lt;/td&gt;
            &lt;td&gt;&lt;strong&gt;&lt;a target="_Blank" href="http://thedailywtf.com/tizes/a.aspx?ZoneID=0&amp;amp;BannerID=223&amp;amp;AdvertiserID=14&amp;amp;CampaignID=89&amp;amp;Task=Click&amp;amp;SiteID=1&amp;amp;RandomNumber=64815"&gt;Inedo&lt;/a&gt;&lt;/strong&gt; - the makers of BuildMaster, the &lt;b&gt;free&lt;/b&gt;, and easy-to-use, web-based deployment and release management tool. Going far beyond Continuous Integration and into Continuous Delivery, BuildMaster delivers a series of robust features unparalleled by other build-promote-deploy-distribute tools. They're also behind the upcoming ProGet, a NuGet package repository that lets you host and manage your own personal or enterprise-wide NuGet feeds.&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/blockquote&gt;
&lt;p&gt;And now back to our regularly scheduled program...&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;a name="Pic1"&gt;&lt;/a&gt;&amp;quot;I don't know what they were thinking putting this ad up,&amp;quot; writes &lt;b&gt;Christian Riesen&lt;/b&gt;, &amp;quot;but I think I can hold my enthusiasm for that gigantic jackpot easy.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#Pic1"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q3/e0/0.0-jackpot.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="Pic2"&gt;&lt;/a&gt;&amp;quot;I spotted this while upgrading the Samsung KIES software on Windows,&amp;quot; writes &lt;b&gt;Scott Coonce&lt;/b&gt;, &amp;quot;I wasn't sure if I should accept the empty license agreement or not.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#Pic2"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q3/e0/Capture.PNG" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="Pic3"&gt;&lt;/a&gt;&amp;quot;I got this error when trying to upgrade PostgreSQL,&amp;quot; writes &lt;b&gt;David&lt;/b&gt;, &amp;quot;they must really like cloud computing.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#Pic3"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q3/e0/cloud-database.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="Pic4"&gt;&lt;/a&gt;&amp;quot;I was rushing to catch my train at St. Pancras the other day,&amp;quot; notes &lt;b&gt;D Bee&lt;/b&gt;, &amp;quot;but it appears there was plenty of time before it departed.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#Pic4"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q3/e0/laterunningtrain.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="Pic5"&gt;&lt;/a&gt;&amp;quot;I'd hate to be selfish and not share null with the other readers of the Daily WTF,&amp;quot; wrote &lt;b&gt;Dwayne&lt;/b&gt;, &amp;quot;I hope you find the same benefits of null that I have.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#Pic5"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q3/e0/null.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="PPic1"&gt;&lt;/a&gt;&amp;quot;The newspaper didn't really contain any interesting news,&amp;quot; writes &lt;b&gt;Wout van Poppel&lt;/b&gt; &amp;quot;but at least it has interesting photo captions which serve to draw attention quite well.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#PPic1"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q3/e0/photocaption.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="PPic2"&gt;&lt;/a&gt;&amp;quot;Free drink every 0 stars?&amp;quot; writes &lt;b&gt;Andrew&lt;/b&gt; ,&amp;quot;wow, now I really want to get to be a 'Gold' members!&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#PPic2"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q3/e0/Screen%20Shot%202012-02-04%20at%203.28.34%20PM.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-SbD81oep-VpeFPSFJwsIx0IPIQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-SbD81oep-VpeFPSFJwsIx0IPIQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-SbD81oep-VpeFPSFJwsIx0IPIQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-SbD81oep-VpeFPSFJwsIx0IPIQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://syndication.thedailywtf.com/~ff/TheDailyWtf?a=fAvGV473jJw:vTZTSt4d2V8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheDailyWtf?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheDailyWtf/~4/fAvGV473jJw" height="1" width="1"/&gt;</description> 
			<slash:comments>32</slash:comments> 
			<comments>http://thedailywtf.com/Comments/Sponsor-Appreciation,-nullnull,-and-More-Errord.aspx</comments>
		</item>
	
		<item>
			<author>Alex Papadimoulis</author> 
			<title>CodeSOD: Mybad</title> 
			<link>http://thedailywtf.com/Articles/Mybad.aspx</link> 
			<category>CodeSOD</category>
			<pubDate>Thu, 03 May 2012 00:00:00 GMT</pubDate> 
			<guid isPermaLink="false">7311</guid> 
			<description>&lt;p&gt;&amp;quot;At my company,&amp;quot; writes &lt;b&gt;Ryan L&lt;/b&gt;, &amp;quot;we have a 'certain' developer who has been here a while but is very reluctant to learn or improve. In fact, he actively works against the rest of us when we want to implement pesky things like proper version control, design patterns, or architecture to our code behind having 3000-line code-behind files.&amp;quot;&lt;/p&gt;
&lt;p&gt;Ryan continues, &amp;quot;I was exploring our SVN logs and came across something checked in by this &amp;quot;engineer&amp;quot;. It was a single file, with a commit message of 'Mybad'. The file turned out to be a config file. Here was the previous version checked in:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
&amp;lt;app key=&amp;quot;ContactEmailAddress&amp;quot; value=&amp;quot;jdoe@initrode.com&amp;quot;/&amp;gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;quot;and here was the modified value:&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
&amp;lt;app key=&amp;quot;sContactEmailAddress&amp;quot; value=&amp;quot;jdoe@initrode.com&amp;quot;/&amp;gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;quot;Yes,&amp;quot; Ryan added, &amp;quot;he did a commit with no indication of what the commit was for, simply to add a Hungarian Notation prefix to a configuration file setting, in case we weren't sure that 'ContactEmailAddress' was a string.&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zWuAu027H9gIAUE7OtR3runLUqU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zWuAu027H9gIAUE7OtR3runLUqU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zWuAu027H9gIAUE7OtR3runLUqU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zWuAu027H9gIAUE7OtR3runLUqU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://syndication.thedailywtf.com/~ff/TheDailyWtf?a=hVibt3JvUpI:l4c0nYgdzlw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheDailyWtf?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheDailyWtf/~4/hVibt3JvUpI" height="1" width="1"/&gt;</description> 
			<slash:comments>103</slash:comments> 
			<comments>http://thedailywtf.com/Comments/Mybad.aspx</comments>
		</item>
	
		<item>
			<author>Alex Papadimoulis</author> 
			<title>CodeSOD: Self Documenting</title> 
			<link>http://thedailywtf.com/Articles/Self-Documenting.aspx</link> 
			<category>CodeSOD</category>
			<pubDate>Mon, 30 Apr 2012 15:15:00 GMT</pubDate> 
			<guid isPermaLink="false">7310</guid> 
			<description>&lt;p&gt;&amp;quot;A little while back, someone introduced the concept of 'self-documenting' code to our team,&amp;quot; writes &lt;b&gt;Ryan L&lt;/b&gt;. &amp;quot;It was certainly a step forward, but it's somehow taken us two steps backwards. Consider, for example, the following code from an MVC controller.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
if (TheFormIsInvalid()) return View(&amp;quot;Index&amp;quot;, form);

... snip ...

private bool TheFormIsInvalid()
{
    return ModelState.IsValid == false;
}&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;quot;Is it really that much easier to follow than &lt;code&gt;if (!ModelState.IsValid)&lt;/code&gt;? I'll set that question aside for the moment to instead present some other code from the same class that handles online registrations for events:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
public bool IsEligibleToSeeThisEvent(EventRegistrationInformation eventRegistrationInformation)
{
  if (ThisEventDoesNotRestrictRegistrantsBasedUponActivityType(eventRegistrationInformation))
      return TrueBecauseThisEventDoesNotRegistrictBasedUponActivityType();

  var activityTypes = GetTheActivityTypesAttachedToThisEvent(eventRegistrationInformation);

  if (NoActivityTypesAreAttachedToThisEvent(activityTypes))
      return TrueBecauseThereAreNoActivityTypesToFilterOnThisEvent();

  if (TheUserIsNotLoggedIn(eventRegistrationInformation))
      return FalseBecauseNoActivityTypesAreAvailableForUsersWhoAreNotLoggedIn();

  return ThereIsAtLeastOneSharedActivityTypeBetweenTheEventAndCurrentUser(
           eventRegistrationInformation, 
		   activityTypes);
}

private static bool TrueBecauseThisEventDoesNotRegistrictBasedUponActivityType()
{
  return true;
}

 private bool ThisEventDoesNotRestrictRegistrantsBasedUponActivityType(
    EventRegistrationInformation eventRegistrationInformation)
{
  return eventActivityTypeFilterRetriever
      .DoesThisEventHaveARestrictionBasedOnActivityTypes(
          eventRegistrationInformation.EventId) == false;
}

private bool ThereIsAtLeastOneSharedActivityTypeBetweenTheEventAndCurrentUser(
    EventRegistrationInformation eventRegistrationInformation, 
	IEnumerable&amp;lt;ActivityType&amp;gt; activityTypes)
{
  var currentActivities = registrantActivityRetriever
    .GetRegistrantActivityProductCode(eventRegistrationInformation.AccountId);

  return activityTypes.Any(x =&amp;gt; currentActivities.Any(y =&amp;gt; y.Id == x.Id));
}

private static bool FalseBecauseNoActivityTypesAreAvailableForUsersWhoAreNotLoggedIn()
{
  return false;
}

private static bool TheUserIsNotLoggedIn(EventRegistrationInformation eventRegistrationInformation)
{
  return eventRegistrationInformation.IsLoggedIn == false;
}

private static bool TrueBecauseThereAreNoActivityTypesToFilterOnThisEvent()
{
  return true;
}

private static bool NoActivityTypesAreAttachedToThisEvent(IEnumerable&amp;lt;ActivityType&amp;gt; activityTypes)
{
  return activityTypes.Any() == false;
}

private IEnumerable&amp;lt;ActivityType&amp;gt; GetTheActivityTypesAttachedToThisEvent(
    EventRegistrationInformation eventRegistrationInformation)
{
  return eventActivityTypeFilterRetriever.GetAll(eventRegistrationInformation.EventId);
}&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VeBE_rLtIF3uIyVELi3R3Eota-U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VeBE_rLtIF3uIyVELi3R3Eota-U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VeBE_rLtIF3uIyVELi3R3Eota-U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VeBE_rLtIF3uIyVELi3R3Eota-U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://syndication.thedailywtf.com/~ff/TheDailyWtf?a=yvfNT-fQIms:qc7k5AFwk5s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheDailyWtf?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheDailyWtf/~4/yvfNT-fQIms" height="1" width="1"/&gt;</description> 
			<slash:comments>181</slash:comments> 
			<comments>http://thedailywtf.com/Comments/Self-Documenting.aspx</comments>
		</item>
	
		<item>
			<author>Alex Papadimoulis</author> 
			<title>Error'd: Out of Service</title> 
			<link>http://thedailywtf.com/Articles/Out-of-Service.aspx</link> 
			<category>Error'd</category>
			<pubDate>Fri, 27 Apr 2012 13:00:00 GMT</pubDate> 
			<guid isPermaLink="false">7295</guid> 
			<description>&lt;p&gt;&lt;a name="pic7"&gt;&lt;/a&gt;&amp;quot;I came across this 'digital' sign in NY Penn Station,&amp;quot; &lt;b&gt;Dan&lt;/b&gt; wrote, &amp;quot;for some reason, it makes me think of Mitch Hedberg.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#pic7"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q2/err10/pic7.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="pic1"&gt;&lt;/a&gt;&amp;quot;I'm going through the process of applying to law school,&amp;quot; wrote &lt;b&gt;Alex M&lt;/b&gt;, &amp;quot;it's not an easy process, but so far it has been incredibly streamlined and, even more surprising since it's entirely online, hitch-free. And then I came to a certain school's application. Not only was it redundant (in certain sections, triply so -- apparently they wanted my name three times just to make sure I remembered it), but I discovered that gender isn't merely a Male/Female/Other, but in fact is a binary proposition for each possible state.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#pic1"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q2/err10/pic1.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="pic2"&gt;&lt;/a&gt;&amp;quot;I was really confused about what I was supposed to choose,&amp;quot; writes &lt;b&gt;Audun Kvasb&amp;oslash;&lt;/b&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#pic2"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q2/err10/pic2.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="pic3"&gt;&lt;/a&gt;&amp;quot;I was accessing the MSDN Academic Alliance site to download Visual Studio,&amp;quot; wrote &lt;b&gt;Louis W&lt;/b&gt;, &amp;quot;but I wasn't sure which school I went to. Is it 'Arizona State University' or 'ASU'? Perhaps 'Arizona State Univerrsity'? And what's 'is dept'?&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#pic3"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q2/err10/pic3.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="pic4"&gt;&lt;/a&gt;&amp;quot;My opinion is important to Congressman Peters...&amp;quot; notes &lt;b&gt;Eric&lt;/b&gt;, &amp;quot;so long as I don't express it with the forbidden words.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#pic4"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q2/err10/pic4.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="pic5"&gt;&lt;/a&gt;&amp;quot;My uncle recently ordered a product sample on the internet,&amp;quot; wrote &lt;b&gt;Alex van Herwijnen&lt;/b&gt;, &amp;quot;when it got delivered, he noticed this oddity in the address.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#pic5"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q2/err10/pic5.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="pic6"&gt;&lt;/a&gt;&amp;quot;I guess leading digit in 'Brooklyn' is not just silent but invisible,&amp;quot; writes &lt;b&gt;Gabriel Goldberg&lt;/b&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#pic6"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q2/err10/pic6.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="pic8"&gt;&lt;/a&gt;&amp;quot;I did a search for a user in Sametime,&amp;quot; wrote &lt;b&gt;Ken Brittain&lt;/b&gt; &amp;quot;Apparently there are too many user with that name...or none at all.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#pic8"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q2/err10/pic8.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/aZJYzc8uwMr3elIoWf23C9Wi4Ng/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aZJYzc8uwMr3elIoWf23C9Wi4Ng/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/aZJYzc8uwMr3elIoWf23C9Wi4Ng/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aZJYzc8uwMr3elIoWf23C9Wi4Ng/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://syndication.thedailywtf.com/~ff/TheDailyWtf?a=98L9vwM2pJ4:Mw2QbKkHC-I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheDailyWtf?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheDailyWtf/~4/98L9vwM2pJ4" height="1" width="1"/&gt;</description> 
			<slash:comments>98</slash:comments> 
			<comments>http://thedailywtf.com/Comments/Out-of-Service.aspx</comments>
		</item>
	
		<item>
			<author>Alex Papadimoulis</author> 
			<title>Classic WTF: Behavioral Deficiencies </title> 
			<link>http://thedailywtf.com/Articles/Classic-WTF-Behavioral-Deficiencies-.aspx</link> 
			<category>Feature Articles</category>
			<pubDate>Wed, 25 Apr 2012 14:00:00 GMT</pubDate> 
			<guid isPermaLink="false">7309</guid> 
			<description>&lt;p&gt;&lt;em&gt;I'm on vacation this week and am a bit behind on all things TDWTF; so, here's Behavioral Deficiencies. It's a classic that was originally published on February 28, 2008.&lt;/em&gt; &lt;hr /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img style="padding-bottom: 5px; padding-left: 5px; padding-right: 5px; float: right; padding-top: 5px" class="wtf_imgfloatright" alt="" src="http://img.thedailywtf.com/images/200802/iStock_000002598317XSmall.jpg" /&gt;&lt;strong&gt;Shawn O.&lt;/strong&gt; was not used to bright lights, smiling faces, or greetings like &amp;ldquo;hi Shawn, how are you today?&amp;rdquo; In fact, just about anything that &lt;em&gt;wasn&amp;rsquo;t&lt;/em&gt; specifically intended to bring pain and misery to all had become foreign to him. It was simply par for the course. Shawn, after all, was an Oracle DBA. And not just any Oracle DBA, but one who sat on the company&amp;rsquo;s Database Code Review Council.&lt;/p&gt;
&lt;p&gt;Like at many other Oracle shops, the Council at Shawn&amp;rsquo;s company was responsible for defining policies and procedures to make it virtually impossible for any developer within the company to make changes to their databases. For example, if a developer wanted to change, say, the columns retrieved from a single SELECT statement, he&amp;rsquo;d have to fill out a ream of paperwork, venture all the way up to the top floor, find his way to The Council&amp;rsquo;s chambers, humbly plead his case to The Council&amp;rsquo;s members &amp;ndash; each of whom would be ensconced in darkness, wearing their traditional Oracle DBA robe &amp;ndash; and then repeat the process several times after The Council ridicules him for missing paperwork, too little whitespace, too much whitespace, etc., and rejects his request for change. It&amp;rsquo;s just the way things work.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;A New Opportunity&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;
That said, imagine Shawn&amp;rsquo;s surprise when a former developer colleague called him up one day to see if he&amp;rsquo;d be interested in a different Oracle DBA job. Apparently, the developer&amp;rsquo;s company was looking to &amp;ldquo;Oracle-up&amp;rdquo; and invest big in a real Oracle installation. And really, what Oracle installation would be complete without its very own Oracle DBA?&lt;/p&gt;
&lt;p&gt;A few days and a brief, two-minute phone screen later, and Shawn was at the new company, interviewing for the position. It all went extremely well: he barely had to say his name and they were sold. Shawn was offered more and a &lt;em&gt;Senior&lt;/em&gt; Oracle DBA position, and did the only logical thing: he took the job. After all, who &lt;em&gt;wouldn&amp;rsquo;t&lt;/em&gt; jump at the chance to create his very own draconian Code Review Council?&lt;/p&gt;
&lt;p&gt;The new company was different. They had things like bright lights. People smiled and offered one another friendly greetings. They &lt;em&gt;didn&amp;rsquo;t&lt;/em&gt; have things like the Pit of Despair. There wasn&amp;rsquo;t even a single oubliette for those who dared to break the build. But fortunately, the company was willing and ready to change that. After all, that&amp;rsquo;s why they hired an Oracle DBA.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;Making Change&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;
Unfortunately, change was not so easy. First came the money problems. Their plan to develop a &amp;ldquo;large Oracle cluster&amp;rdquo; was scaled back to a &amp;ldquo;medium Oracle cluster&amp;rdquo; and then, finally, to a &amp;ldquo;single Oracle server.&amp;rdquo; Worse still, their development strategy had gone from&amp;nbsp;&amp;ldquo;cutting edge&amp;rdquo; to &amp;ldquo;barely holding an edge,&amp;rdquo; leaving things like continuous integration and quality assurance to fall by the wayside.&lt;/p&gt;
&lt;p&gt;And that&amp;rsquo;s when the second problem &amp;ndash; the cultural clash &amp;ndash; started to occur. Shawn fought arduous battles with developers over formal code review, query tuning, and access restrictions. The developers insisted upon changing things immediately and fixing problems later, while Shawn demanded a rigorous QA process. Naturally, this led to a lot of heated arguments, a whole lot of swearing and bad-mouthing, and, usually, Shawn conceding his position.&lt;/p&gt;
&lt;p&gt;After one of the more intense database code review sessions Shawn received a &amp;ldquo;one-on-one&amp;rdquo; meeting request from his boss. The subject was simply &amp;ldquo;Behavioral Deficiencies.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Shawn had a gut feeling about what the meeting would be about: his strict policies and gruff attitude were simply unacceptable, and that he&amp;rsquo;d need to either shape up or ship out. And he knew exactly how he&amp;rsquo;d respond: there&amp;rsquo;s no way he was going to compromise further, as he was &lt;em&gt;already&lt;/em&gt; operating in DBA-lite mode; heck, he even stopped dimming the lights and wearing his robe to code review meetings; in fact, &lt;em&gt;they&amp;rsquo;d&lt;/em&gt; need to shape up or &lt;em&gt;he&amp;rsquo;d&lt;/em&gt; ship out.&lt;/p&gt;
&lt;p&gt;After three eternal hours, Shawn went to his boss&amp;rsquo;s office for his &amp;ldquo;Behavioral Deficiencies&amp;rdquo; meeting.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Hi Shawn,&amp;rdquo; his boss started, &amp;ldquo;take a seat please.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Shawn nervously sat down. He was still prepared to rattle off his &amp;ldquo;no, &lt;em&gt;you&lt;/em&gt; shape up&amp;rdquo; retort, though not as confidently as he had fantasized.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;I&amp;rsquo;ve been reviewing some of your emails as of late,&amp;rdquo; his boss paused, &amp;ldquo;and I have to say, we&amp;rsquo;re a bit concerned. I&amp;rsquo;ve printed out a handful here, why don&amp;rsquo;t you take a look yourself.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Still not saying a word, Shawn flipped through the small stack of paper. Each page had several highlight marks, and each word that was highlighted was either &amp;ldquo;I&amp;rdquo;, &amp;ldquo;I&amp;rsquo;ve&amp;rdquo;, or &amp;ldquo;I&amp;rsquo;ll&amp;rdquo;. Shawn let out a confused, &amp;ldquo;ummm&amp;hellip;&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Okay,&amp;rdquo; the boss started again, &amp;ldquo;so you see what I&amp;rsquo;ve highlighted? Do you notice something a little off there in your email?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;I, uhhh,&amp;rdquo; Shawn mumbled, &amp;ldquo;ummm, well&amp;hellip;&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;You don&amp;rsquo;t see it, do you?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Shawn paused for a moment.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;You need to use the word &amp;lsquo;we&amp;rsquo; more often. Look here,&amp;rdquo; his boss pointed to a highlight, &amp;ldquo;you say &amp;lsquo;I've put these policies in place&amp;rsquo;, but what you really need to say is, &amp;lsquo;&lt;em&gt;we've&lt;/em&gt; put these policies in place.&amp;rsquo;&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Okay,&amp;rdquo; Shawn raised his left eyebrow, &amp;ldquo;we?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Exactly,&amp;rdquo; his boss responded, &amp;ldquo;the word &amp;lsquo;I&amp;rsquo; is just too negative. &lt;em&gt;You&lt;/em&gt; are a part of &lt;em&gt;us&lt;/em&gt;, and &lt;em&gt;we&lt;/em&gt; make decisions for &lt;em&gt;us&lt;/em&gt;. Even if it&amp;rsquo;s just &lt;em&gt;you&lt;/em&gt; who made the decision, it&amp;rsquo;s really &lt;em&gt;us&lt;/em&gt; who made it.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Shawn stared blankly, trying to figure out what exactly his boss was saying.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;You see, Shawn, what we do is all about the team. One big team. &lt;em&gt;Synergy&lt;/em&gt;. We know it feels like your DBA team against the development team &amp;ndash; but really, it&amp;rsquo;s all just one big team.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;That makes perfect sense,&amp;rdquo; Shawn said half-sarcastically. After all, he was the only Oracle DBA in the company. He expected his boss to crack up any moment.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;We&amp;rsquo;re just really concerned, though, that you&amp;rsquo;re not thinking &lt;em&gt;team&lt;/em&gt;. Obviously, we&amp;rsquo;re all individuals, but we &amp;ndash; you included &amp;ndash; make up the team.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Got it,&amp;rdquo; Shawn replied. Unfortunately, though, his boss didn&amp;rsquo;t seem to hear that, or any of his subsequent &amp;ldquo;okay,&amp;rdquo; &amp;ldquo;will do&amp;rdquo;, &amp;ldquo;gotcha&amp;rdquo;, &amp;ldquo;allrightythen&amp;rdquo;, &amp;ldquo;okie-doke&amp;rdquo;, &amp;ldquo;you-betcha&amp;rdquo; responses. For the next thirty minutes, Shawn&amp;rsquo;s boss continued to lecture on the importance of team.&lt;/p&gt;
&lt;p&gt;Finally, just before Shawn had heard all that he can take, his boss wrapped things up. &amp;ldquo;But what this all boils down to, is that we want you to feel free to express yourself in the manner of &amp;lsquo;we&amp;rsquo; as opposed to using the word, &amp;lsquo;I&amp;rsquo;. We just think it would be better for the synergy of the team and for your own personal benefit to express yourself in that matter.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Though Shawn had long since run out of thanks-we-get-the-point phrases, he replied with the thrice said, &amp;ldquo;understood!&amp;rdquo; He returned to his cubicle and took a few minutes to breathe in the absurdity of the last hour of his life. At least the good news, Shawn figured, was that there was no issue with the harsher and harsher policies he was implemented.&lt;/p&gt;
&lt;p&gt;Just then, an email showed up his inbox. It was from one of the developers, was marked high-importance, and had the subject line, &amp;ldquo;EMERGENCY DB CHANGE - PLEASE RUN SCRIPT NOW&amp;rdquo;. Shawn wryly smiled and clicked reply.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;We apologize, but per the new Database Emergency Change Procedure we established, we are unable to run this script from an email request. Per the procedure, please request an emergency change review meeting, and we&amp;rsquo;ll be happy to review your change.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;On any day prior, Shawn would have probably just run the script and demanded that the developer follow procedure next time. But that day, he was instilled with a new sense of Oracle DBA Team synergy. After sending the reply, he dusted off his Oracle DBA robe in preparation for the code review. It was time, once again, for the Database Code Review Council to meet.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_Mj72863BTRy9fSSmSftTYDvAuU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_Mj72863BTRy9fSSmSftTYDvAuU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_Mj72863BTRy9fSSmSftTYDvAuU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_Mj72863BTRy9fSSmSftTYDvAuU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://syndication.thedailywtf.com/~ff/TheDailyWtf?a=SagBurL-0jc:e2v_IL1CjOc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheDailyWtf?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheDailyWtf/~4/SagBurL-0jc" height="1" width="1"/&gt;</description> 
			<slash:comments>138</slash:comments> 
			<comments>http://thedailywtf.com/Comments/Classic-WTF-Behavioral-Deficiencies-.aspx</comments>
		</item>
	
		<item>
			<author>Alex Papadimoulis</author> 
			<title>CodeSOD: The Enterprise User Agent</title> 
			<link>http://thedailywtf.com/Articles/The-Enterprise-User-Agent.aspx</link> 
			<category>CodeSOD</category>
			<pubDate>Tue, 24 Apr 2012 13:00:00 GMT</pubDate> 
			<guid isPermaLink="false">7308</guid> 
			<description>&lt;p&gt;&amp;quot;When the job ad specified that an 'enterprise' Senior Java Developer was needed, I knew I'd be in a treat for some enterprisey goodness,&amp;quot; writes &lt;b&gt;Chris B&lt;/b&gt;, &amp;quot;but what I didn't expect was the User Agent Detection Generation Framework. Here's what the API for this framework looks like.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;img alt="" src="http://img.thedailywtf.com/images/12/q2/ua/1.png" /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;quot;It's apparently designed to put an end to the extreme challenge of parsing user agent strings sent by various web browsers and devices. Here's what the UserAgent implementation looks like. I mean, &lt;em&gt;an&lt;/em&gt; implementation; this is, naturally, extensible enough to handle any user agent parsing factory implementation.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;&lt;img alt="" src="http://img.thedailywtf.com/images/12/q2/ua/2.png" /&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;quot;Based on the commit history, it took several months to create this masterpiece. There are more than forty Java classes, eight interfaces, and several hundred lines of XML configuration. Speaking of which, here's the configuration XML for Firefox:&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
&amp;lt;!-- ============================================================================================================== --&amp;gt;
&amp;lt;!--                                                     Firefox                                                    --&amp;gt;
&amp;lt;!-- ============================================================================================================== --&amp;gt;

&amp;lt;!-- Firefox --&amp;gt;
&amp;lt;ua:UserAgent ua:id=&amp;quot;Mozilla Firefox&amp;quot; ua:browser=&amp;quot;Firefox&amp;quot; ua:version=&amp;quot;$6&amp;quot; ua:platform=&amp;quot;$1&amp;quot;&amp;gt;
  &amp;lt;ua:Element ua:id=&amp;quot;mobile&amp;quot; ua:type=&amp;quot;boolean&amp;quot; ua:value=&amp;quot;false&amp;quot; /&amp;gt;
  &amp;lt;ua:Element ua:id=&amp;quot;osName&amp;quot; ua:type=&amp;quot;string&amp;quot; ua:value=&amp;quot;$2&amp;quot; /&amp;gt;
  &amp;lt;ua:Element ua:id=&amp;quot;osVersion&amp;quot; ua:type=&amp;quot;number&amp;quot; ua:value=&amp;quot;$3&amp;quot; /&amp;gt;
  &amp;lt;ua:Element ua:id=&amp;quot;engineName&amp;quot; ua:type=&amp;quot;string&amp;quot; ua:value=&amp;quot;Gecko&amp;quot; /&amp;gt;
  &amp;lt;ua:Element ua:id=&amp;quot;engineVersion&amp;quot; ua:type=&amp;quot;number&amp;quot; ua:value=&amp;quot;$4&amp;quot; /&amp;gt;
  &amp;lt;ua:Detection&amp;gt;
    &amp;lt;!-- 
      Mozilla/5.0 (Windows; U; Windows NT 5.1; nl-NL; rv:1.7.5) Gecko/20041202 Firefox/1.0
      Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.8) Gecko/20050511 Firefox/1.0.4
      Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.10) Gecko/20050716 Firefox/1.0.6
      Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8) Gecko/20051107 Firefox/1.5
      Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
      Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
      Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4 
      Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5        
		Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.3a5pre) Gecko/20100418 Minefield/3.7a5pre
		Mozilla/5.0 (Windows NT 5.1; rv:2.0b6) Gecko/20100101 Firefox/4.0b6        
    --&amp;gt;
    &amp;lt;ua:RegExp&amp;gt;Mozilla/5.0 \((Windows).*(Windows NT) (\d+\.\d+).*rv:(\d+\.\d+).*\).*Gecko/(\d+).*Firefox/(\d+\.\d+).*&amp;lt;/ua:RegExp&amp;gt;
    &amp;lt;ua:RegExp&amp;gt;Mozilla/5.0 \(.*(Windows) (NT) (\d+\.\d+).*rv:(\d+\.\d+).*\).*Gecko/(\d+).*Firefox/(\d+\.\d+).*&amp;lt;/ua:RegExp&amp;gt;
    &amp;lt;ua:RegExp&amp;gt;Mozilla/5.0 \((Windows).*(Windows NT) (\d+\.\d+).*rv:(\d+\.\d+).*\).*Gecko/(\d+).*Minefield/(\d+\.\d+).*&amp;lt;/ua:RegExp&amp;gt;

    &amp;lt;!-- 
      Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7.8) Gecko/20050609 Firefox/1.0.4
      Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.9) Gecko/20050711 Firefox/1.0.5
      Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2
      Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3
      Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.6) Gecko/20060808 Fedora/1.5.0.6-2.fc5 Firefox/1.5.0.6 pango-text
      Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.1) Gecko/20060601 Firefox/2.0 (Ubuntu-edgy)
      Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.2) Gecko/20070220 Firefox/2.0.0.2
      Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.2) Gecko/20070221 SUSE/2.0.0.2-6.1 Firefox/2.0.0.2         
      Mozilla/5.0 (X11; U; Linux i686; en-US; rv:2.0a1pre) Gecko/2008060602 Minefield/4.0a1pre
		Mozilla/5.0 (X11; Linux x86_64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
    --&amp;gt;
    &amp;lt;ua:RegExp&amp;gt;Mozilla/5.0 \((X11); U; (\w+)().*rv:(\d+\.\d+).*\).*Gecko/(\d+).*Firefox/(\d+\.\d+).*&amp;lt;/ua:RegExp&amp;gt;
    &amp;lt;ua:RegExp&amp;gt;Mozilla/5.0 \((X11); (\w+)().*rv:(\d+\.\d+).*\).*Gecko/(\d+).*Firefox/(\d+\.\d+).*&amp;lt;/ua:RegExp&amp;gt;
    &amp;lt;ua:RegExp&amp;gt;Mozilla/5.0 \((X11); U; (\w+)().*rv:(\d+\.\d+).*\).*Gecko/(\d+).*Minefield/(\d+\.\d+).*&amp;lt;/ua:RegExp&amp;gt;
    &amp;lt;ua:RegExp&amp;gt;Mozilla/5.0 \((X11); (\w+)().*rv:(\d+\.\d+).*\).*Gecko/(\d+).*Minefield/(\d+\.\d+).*&amp;lt;/ua:RegExp&amp;gt;


    &amp;lt;!-- 
      Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7
      Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7
				Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:5.0) Gecko/20100101 Firefox/5.0  
    --&amp;gt;
    &amp;lt;ua:RegExp&amp;gt;Mozilla/5.0 \((Macintosh); U; ([^;]+)().*rv:(\d+\.\d+).*\).*Gecko/(\d+).*Firefox/(\d+\.\d+).*&amp;lt;/ua:RegExp&amp;gt;
    &amp;lt;ua:RegExp&amp;gt;Mozilla/5.0 \((Macintosh); ([^;]+)().*rv:(\d+\.\d+).*\).*Gecko/(\d+).*Firefox/(\d+\.\d+).*&amp;lt;/ua:RegExp&amp;gt;
	  	&amp;lt;ua:RegExp&amp;gt;Mozilla/5.0 \((Macintosh); U; ([^;]+)().*rv:(\d+\.\d+).*\).*Gecko/(\d+).*Minefield/(\d+\.\d+).*&amp;lt;/ua:RegExp&amp;gt;
	  	&amp;lt;ua:RegExp&amp;gt;Mozilla/5.0 \((Macintosh); ([^;]+)().*rv:(\d+\.\d+).*\).*Gecko/(\d+).*Minefield/(\d+\.\d+).*&amp;lt;/ua:RegExp&amp;gt;

  &amp;lt;/ua:Detection&amp;gt;
&amp;lt;/ua:UserAgent&amp;gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/y_srjshRAQkuSn4hrJ1xiOXlPwo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/y_srjshRAQkuSn4hrJ1xiOXlPwo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/y_srjshRAQkuSn4hrJ1xiOXlPwo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/y_srjshRAQkuSn4hrJ1xiOXlPwo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://syndication.thedailywtf.com/~ff/TheDailyWtf?a=Zp8Bl5ZI1EU:MjxDdIpOpvE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheDailyWtf?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheDailyWtf/~4/Zp8Bl5ZI1EU" height="1" width="1"/&gt;</description> 
			<slash:comments>84</slash:comments> 
			<comments>http://thedailywtf.com/Comments/The-Enterprise-User-Agent.aspx</comments>
		</item>
	
		<item>
			<author>Alex Papadimoulis</author> 
			<title>Error'd: A Minor Error</title> 
			<link>http://thedailywtf.com/Articles/A-Minor-Error.aspx</link> 
			<category>Error'd</category>
			<pubDate>Sat, 21 Apr 2012 09:00:00 GMT</pubDate> 
			<guid isPermaLink="false">7294</guid> 
			<description>&lt;p&gt;&lt;a name="pic8"&gt;&lt;/a&gt;&amp;quot;I was a bit worried when I received an alert from the bank telling me that my balance went bellow $25,&amp;quot; &lt;b&gt;Mike&lt;/b&gt;, &amp;quot;I called the bank to see what was going on, and they chalked it up to a 'minor' error. I'd sure like to know what a major one is...&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#pic8"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q2/err9/pic8.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="pic1"&gt;&lt;/a&gt;&amp;quot;At first I thought the 800x601 requirement was a bit odd,&amp;quot; wrote &lt;b&gt;Odi&lt;/b&gt;, &amp;quot;but then I realized that my 800x602 resolution should have been more than adequate.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#pic1"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q2/err9/pic1.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="pic2"&gt;&lt;/a&gt;&amp;quot;One of these flip-flop thumbnails is &lt;em&gt;far&lt;/em&gt; more appealing to me than the others,&amp;quot; wrote &lt;b&gt;Modano&lt;/b&gt;, &amp;quot;see if you can guess which one.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#pic2"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q2/err9/pic2.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="pic3"&gt;&lt;/a&gt;&amp;quot;I spotted this while waiting at my local McDonalds drive-thru,&amp;quot; &lt;b&gt;Christopher Scholfield&lt;/b&gt; writes, &amp;quot;I told the attendant I didn't order that, she didn't quite get the joke.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#pic3"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q2/err9/pic3.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="pic4"&gt;&lt;/a&gt;&amp;quot;My credit card expired, so I thought I'd delete the credit card registration,&amp;quot; &lt;b&gt;Karsten&lt;/b&gt; wrote, &amp;quot;or not.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#pic4"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q2/err9/pic4.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="pic5"&gt;&lt;/a&gt;&amp;quot;My friend is an old school hacker and has been online for quite a long time,&amp;quot; wrote &lt;b&gt;Johnny&lt;/b&gt;, &amp;quot;but I'm pretty sure he wasn't idle that long.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#pic5"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q2/err9/pic5.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="pic6"&gt;&lt;/a&gt;&amp;quot;Based on the unit price,&amp;quot; &lt;b&gt;Sam&lt;/b&gt; writes, &amp;quot;my local grocery appears to have found a supplier of infinitely heavy salami.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#pic6"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q2/err9/pic6.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name="pic7"&gt;&lt;/a&gt;&amp;quot;So, which is it,&amp;quot; wonders &lt;b&gt;Joey&lt;/b&gt;, &amp;quot;or if the error message has been APPROVED, what was the actual message?&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="#pic7"&gt;&lt;img border="0" alt="" src="http://img.thedailywtf.com/images/12/q2/err9/pic7.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OnhuUEgcQZJZiWOpqReNC92VlW0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OnhuUEgcQZJZiWOpqReNC92VlW0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OnhuUEgcQZJZiWOpqReNC92VlW0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OnhuUEgcQZJZiWOpqReNC92VlW0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://syndication.thedailywtf.com/~ff/TheDailyWtf?a=q-4psR1oYd0:kMDfvXIY5PA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheDailyWtf?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheDailyWtf/~4/q-4psR1oYd0" height="1" width="1"/&gt;</description> 
			<slash:comments>80</slash:comments> 
			<comments>http://thedailywtf.com/Comments/A-Minor-Error.aspx</comments>
		</item>
	
		<item>
			<author>Alex Papadimoulis</author> 
			<title>Representative Line: Simple Date Validation</title> 
			<link>http://thedailywtf.com/Articles/Simple-Date-Validation.aspx</link> 
			<category>Representative Line</category>
			<pubDate>Thu, 19 Apr 2012 17:30:00 GMT</pubDate> 
			<guid isPermaLink="false">7307</guid> 
			<description>&lt;p&gt;Simple Date Validation &amp;quot;I'm very fortunate that my new job is at a cool company working with cool coworkers on cool projects,&amp;quot; writes &lt;b&gt;Dave&lt;/b&gt; via the &lt;a href="http://inedo.com/downloads/submit-to-wtf"&gt;Submit to WTF&lt;/a&gt; Visual Studio Plug-in.&lt;/p&gt;
&lt;p&gt;&amp;quot;Of course, it wasn't always like this. Many years back, WTF Joe (as we now call him) was a key contributor to our codebase and always worked hard to find the hardest way to do the simplest things. Like date validation.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;args.IsValid = new Regex(@&amp;quot;^((0?[1-9]|[12][1-9]|3[01])\.(0?[13578]|1[02])\.20[0-9]{2}|(0?[1-9]|[12][1-9]|30)\.(0?[13456789]|1[012])\.20[0-9]{2}|(0?[1-9]|1[1-9]|2[0-8])\.(0?[123456789]|1[012])\.20[0-9]{2}|(0?[1-9]|[12][1-9])\.(0?[123456789]|1[012])\.20(00|04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96))$&amp;quot;).IsMatch(args.Value, 0);&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;quot;I guess his feeling for this was that the database will do another date validation anyway, so it's not that big of a deal.&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JtPEcZ90qtyI67XVycbtKUXMfqI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JtPEcZ90qtyI67XVycbtKUXMfqI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JtPEcZ90qtyI67XVycbtKUXMfqI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JtPEcZ90qtyI67XVycbtKUXMfqI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://syndication.thedailywtf.com/~ff/TheDailyWtf?a=cXvVwQWy1-0:MGfZdwt--7U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheDailyWtf?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheDailyWtf/~4/cXvVwQWy1-0" height="1" width="1"/&gt;</description> 
			<slash:comments>94</slash:comments> 
			<comments>http://thedailywtf.com/Comments/Simple-Date-Validation.aspx</comments>
		</item>
	
		<item>
			<author>Alex Papadimoulis</author> 
			<title>The Core Launcher</title> 
			<link>http://thedailywtf.com/Articles/The-Core-Launcher.aspx</link> 
			<category>Feature Articles</category>
			<pubDate>Wed, 18 Apr 2012 16:30:00 GMT</pubDate> 
			<guid isPermaLink="false">7306</guid> 
			<description>&lt;p&gt;&amp;ldquo;You R haccking files on my computer~!!!&amp;rdquo; &lt;b&gt;Charles Carmichael&lt;/b&gt; read in a newly-submitted support ticket, &amp;ldquo;this is illigle and I will sue your whoal compiny. But first I will tell every1 nevar to buy youre stupid game agin.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;The bizarre spelling and vague threats were par for the course. After all, when you market and sell a game to the general public, you can expect a certain percentage of bizarre and vague customer communications. When that game is a popular MMPORG (no, not &lt;em&gt;that&lt;/em&gt; one), that percentage tends to hover around the majority.&lt;/p&gt;
&lt;p&gt;It took a few days to see the pattern, but the string of emails started to make sense. &amp;ldquo;Uh, when did your game become spyware?&amp;rdquo; said one email. &amp;ldquo;Are you doing this just to force us to play more often?&amp;rdquo; another customer asked. &amp;ldquo;I know you have a lot of AI and whatnot, so I think it leaked out. Because now my whole computer wants me to play all the time&amp;hellip; like my dog bringing me his chew toy.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;As it turned out, the problem started happening a few days after an update to the core launcher was published. The core launcher was one of those terrifically handy executables that could download all of the assets for any single game that was published, scan them for completeness, replace bad or missing files, and then launch the game itself after the user signed in. It&amp;rsquo;s a must-have for any modern multiplayer online game.&lt;/p&gt;
&lt;p&gt;This core launcher could also patch itself. Updates to this executable were fairly rare, but had to be made whenever a new title launched, as was recently the case. Obviously, a large battery of automated and manual testing is done to ensure that there are no problems after publishing, yet something seemed to have slipped through the cracks&amp;hellip; at least for some customers.&lt;/p&gt;
&lt;p&gt;After a whole lot of back and forth with customers, Chris was able to compile dozens of detailed process lists, startup program launches, newly installed applications, and firewall usage rules. As he pored over the collected information, one program was always there. It was Interfersoft&amp;rsquo;s fairly popular anti-virus suite.&lt;/p&gt;
&lt;p&gt;It took a solid two days of research, but Chris was finally able to uncover the new &amp;ldquo;feature&amp;rdquo; in Interfersoft&amp;rsquo;s Advanced Firewall Protector that was causing the problems. Like many similar anti-virus suites, when a program wanted to use network services, Interfersoft would pop-up a dialog confirming that the program&amp;rsquo;s operation was authorized. Behind the scenes, if the user allowed the program, Interfersoft would make a hash of that executable file, and would allow its communications to pass through the firewall every time thereafter.&lt;/p&gt;
&lt;p&gt;Users who had this antivirus solution installed had, at one time, allowed the launcher through their firewall. The first time they connected to the game server after the launcher patch was released, their executable would download its patch, apply it to itself, and restart itself. But then of course, the executable hash didn&amp;rsquo;t match any more, and the program was no longer able to go through the firewall.&lt;/p&gt;
&lt;p&gt;Rather than asking users if they wanted to allow the program to connect to the internet, in the new version of Interfersoft&amp;rsquo;s suite, the anti-virus system would rename the executable and move it. The logic being that, if it was changed after connecting to the internet, it was probably malware.&lt;/p&gt;
&lt;p&gt;But what did they name the file?&lt;code&gt; Program.exe&lt;/code&gt;. Unless that was already taken, then they would name it &lt;code&gt;Progra~1.exe &lt;/code&gt;or &lt;code&gt;Progra~2.exe &lt;/code&gt;and so forth. And where did they place this file? Well, in the root directory of C of course!&lt;/p&gt;
&lt;p&gt;This naming convention, as it turned out, was a bad idea. Back in the very old, Windows 3 days, Windows did not support long file names. It wasn&amp;rsquo;t until Windows NT 3.5.1 (and then Windows 95 later) that long file names were supported. Prior to this, there were a lot of limitations on what characters could be part of a filename or directory, one of those being a space.&lt;/p&gt;
&lt;p&gt;In fact, any space in a shell command execution was seen to be an argument. This made sense at the time so you could issue a command like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
C:\DOOM\doom.exe -episode 3&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;That, of course, would start Doom at episode 3. However, when Microsoft switched to Long File Names, it still had to support this type of invocation. So, the way the windows cmd.exe shell works is simple. You pass it a string like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
C:\Program Files\id Software\Doom\Doom.exe -nomusic&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;And it will try to execute &amp;ldquo;C:\Program&amp;rdquo; as a file, passing it &amp;ldquo;Files\id Software\Doom\Doom.exe -nomusic&amp;rdquo; as argument to that executable. Of course, this program doesn&amp;rsquo;t exist, so it will then try to execute &amp;ldquo;C:\Program Files\id&amp;rdquo;, passing it &amp;ldquo;Software\Doom\Doom.exe -nomusic&amp;rdquo; as argument. If this doesn&amp;rsquo;t exist, it will try to execute &amp;ldquo;C:\Program Files\id Software\Doom\Doom.exe&amp;rdquo; passing in &amp;ldquo;-nomusic&amp;rdquo; as an argument. It would continue this way until a program existed and started, or until the path was depleted and no program was to be found.&lt;/p&gt;
&lt;p&gt;And on top of all this, desktop shortcuts on Windows are mostly just invocations of the shell, with the actual location of the executable you want to start (the path) stored in text inside the shortcut. When you click it, it reads this path, and passes it to the shell to start up the program. And this is why Intersoft&amp;rsquo;s process of moving files to the root directory was the worst decision they could have made.&lt;/p&gt;
&lt;p&gt;Most of the programs installed in Windows at this time were installed to the &amp;ldquo;Program Files&amp;rdquo; directory by default. This was a folder in the root (C:\) directory. So when you wanted to launch, for instance, Microsoft Word, the shortcut on your Desktop pointed to &amp;ldquo;C:\Program Files\Microsoft\Office\Word.exe&amp;rdquo; or Firefox, which was in &amp;ldquo;C:\Program Files\Mozilla\Firefox\&amp;rdquo;. But thanks to Program.exe in the root directory, you ended up doing this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
C:\Program.exe &amp;ldquo;Files\Microsoft\Office\Word.exe&amp;rdquo;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;and&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;
C:\Program.exe &amp;ldquo;Files\Mozilla\Firefox\&amp;rdquo;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;So, when users were trying to launch their application &amp;ndash; applications which resided in the Program Files directory on their C drive &amp;ndash; they were getting the launcher instead.&lt;/p&gt;
&lt;p&gt;Chris explained all of this in great detail to Interfersoft, all the while explaining to customers how to fix the problem with the firewall. It helped some, but several hundred customers ended up closing their accounts a direct result of the &amp;ldquo;hacking&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;A few weeks later, Interfersoft started responding to the issues with their customers. Fortunately (for them), they decided to not use their own auto-update process to deliver a new version of the firewall.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9f9v_cc5cw3f9myOKTE0uD0iaSc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9f9v_cc5cw3f9myOKTE0uD0iaSc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9f9v_cc5cw3f9myOKTE0uD0iaSc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9f9v_cc5cw3f9myOKTE0uD0iaSc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://syndication.thedailywtf.com/~ff/TheDailyWtf?a=EF_HO8PCe6M:RnhgLdKXoSc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheDailyWtf?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheDailyWtf/~4/EF_HO8PCe6M" height="1" width="1"/&gt;</description> 
			<slash:comments>196</slash:comments> 
			<comments>http://thedailywtf.com/Comments/The-Core-Launcher.aspx</comments>
		</item>
		
	</channel>
</rss>

