<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Accidental Developer &#187; Uncategorized</title>
	<atom:link href="http://osric.com/chris/accidental-developer/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://osric.com/chris/accidental-developer</link>
	<description>What if Gregor Samsa awoke a computer programmer?</description>
	<lastBuildDate>Sat, 28 Jan 2012 23:13:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Online Advertising Click-Thru Rates, Revisited</title>
		<link>http://osric.com/chris/accidental-developer/2011/05/online-advertising-click-thru-rates-revisited/</link>
		<comments>http://osric.com/chris/accidental-developer/2011/05/online-advertising-click-thru-rates-revisited/#comments</comments>
		<pubDate>Tue, 17 May 2011 02:23:42 +0000</pubDate>
		<dc:creator>Chris Herdt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[chi-square]]></category>
		<category><![CDATA[click-thru rates]]></category>
		<category><![CDATA[ctr]]></category>
		<category><![CDATA[online ads]]></category>
		<category><![CDATA[statistics]]></category>

		<guid isPermaLink="false">http://osric.com/chris/accidental-developer/?p=388</guid>
		<description><![CDATA[Revisiting a post from 2 years ago, I re-analyze online advertisement click-thru rates using a different statistical technique (a chi-square test).]]></description>
			<content:encoded><![CDATA[<p>A couple years ago, I wrote <a href="http://osric.com/chris/accidental-developer/2009/12/online-advertisements-and-statistical-analysis/">Online Advertisements and Statistical Analysis</a>, in which I did my best to show that a past study of online advertising click-thru rates (CTRs) wasn&#8217;t worth the pixels it was printed on.</p>
<p>About a week ago, my wife and I were visiting friends, and I found myself in a room with 3 neuroscientists. The topic of statistics came up, and I managed to insert into conversation my small triumph in analyzing the click-thru study and determining both a confidence interval and the number of tests that would need to be run in order to have a meaningful confidence interval. &#8220;Sure,&#8221; one of the scientists says, &#8220;but what you should <em>really</em> do instead is a chi-square test for goodness-of-fit.&#8221;<br />
<span id="more-388"></span><br />
I had no idea what that meant, or even how it was spelled (I was thinking <em>Kai</em> at first instead of <em>chi</em>), but I found a description in my statistics textbook.</p>
<p>In the original post, there were 6 different banner advertisements, which varied only slightly. Each one was run for 30,000 impressions, which resulted in 6 click-frequencies:</p>
<table border="1" cellspacing="0">
<thead>
<tr>
<th>Ad</th>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
<th>E</th>
<th>F</th>
</tr>
</thead>
<tbody>
<tr>
<td>Clicks per 30,000</td>
<td>81</td>
<td>84</td>
<td>90</td>
<td>96</td>
<td>99</td>
<td>108</td>
</tr>
</tbody>
</table>
<p>The chi-square test calls not just for <em>observed</em> values, but also for <em>expected</em> values:</p>
<p><img src="http://osric.com/chris/accidental-developer/wp-content/uploads/2011/05/chi-square.png" alt="Equation: sum of the square of the observed value less expected value over the expected value" title="chi-square" width="314" height="23" class="aligncenter size-full wp-image-391" /></p>
<p>For the expected value, I used the mean of all 6 ads, 93 clicks per 30,000 ad impressions. (I don&#8217;t know if this is the best value to pick, but it falls in line with the textbook examples.)</p>
<p>I got a chi-square value of 5.42. I wasn&#8217;t positive in this case if there were 5 degrees of freedom, or 4, but in either case, using a lookup table, it suggested that the <em>p</em>-value was greater than 0.1, which further suggests that the differences in clicks may have been due to chance, rather than differences in ad design.</p>
<p>My wife uses several stats software packages, so we entered my data into <a href="http://www.graphpad.com/prism/prism.htm">GraphPad Prism</a> and ran a chi-square test there. It came up with a chi-square value very close to mine (though not identical&#8211;I&#8217;ll have to check my figures again), and a <em>p</em>-value of 0.37. That value, if I interpret things correctly, means there was a 37% chance that the results were due to random chance. </p>
<p>I realized part-way through this exercise that there is a way to trick people into believing the truth without any analysis at all, though. Instead of focusing on the clicks, focus on the instances where people didn&#8217;t click. Sure, if one ad gets 81 clicks and another gets 108 clicks, one seems clearly superior to the other. If you instead compare 29,919 non-clicks to 29,892 non-clicks, the difference seems trivial.</p>
<p>I am more satisfied with my result, though. We should be skeptical when people try to convince us that such small differences are significant over so few tests. </p>
]]></content:encoded>
			<wfw:commentRss>http://osric.com/chris/accidental-developer/2011/05/online-advertising-click-thru-rates-revisited/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Online Advertisements and Statistical Analysis</title>
		<link>http://osric.com/chris/accidental-developer/2009/12/online-advertisements-and-statistical-analysis/</link>
		<comments>http://osric.com/chris/accidental-developer/2009/12/online-advertisements-and-statistical-analysis/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 18:21:49 +0000</pubDate>
		<dc:creator>Chris Herdt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[banner ads]]></category>
		<category><![CDATA[click-thru rate]]></category>
		<category><![CDATA[ctr]]></category>
		<category><![CDATA[online ads]]></category>
		<category><![CDATA[online advertising]]></category>
		<category><![CDATA[statistics]]></category>
		<category><![CDATA[stats]]></category>

		<guid isPermaLink="false">http://osric.com/chris/accidental-developer/?p=249</guid>
		<description><![CDATA[Quite a few years ago, I was in the online advertising business. My team and I created banner ads to run alongside web site content, to entice viewers to click on ads and find out more about advertiser offers. We scheduled ads to run alongside specific content. We targeted ads towards users in specific geographic [...]]]></description>
			<content:encoded><![CDATA[<p>Quite a few years ago, I was in the online advertising business. My team and I created banner ads to run alongside web site content, to entice viewers to click on ads and find out more about advertiser offers. We scheduled ads to run alongside specific content. We targeted ads towards users in specific geographic regions, thanks to a browser cookie that told us their ZIP code. And we constantly managed inventory.</p>
<p>Although we made animated ads, we avoided anything that blinked. There were no monkeys to punch.</p>
<p>Click-Through Rate (or Click-Thru Rate or CTR) was a key measurement of an ad&#8217;s success. Although at first we would sometimes see click CTRs between 1-2% (meaning that an ad was clicked between 10 and 20 out of every 1000 views, or <em>impressions</em>), as online advertising proliferated, and as our systems got better at filtering out false impressions and clicks from various robots, crawlers, and spiders, CTRs trended much lower: 0.25% suddenly looked good, and 0.10% was not uncommon in some cases. That&#8217;s 1 click for every 1000 impressions.</p>
<p>That&#8217;s why we were insanely interested in a blog post we found, now presumably lost to the ages, that ran a set of 6 banner ads, which varied only slightly, and analyzed the results to determine what aspects of the ads could improve CTRs. Did including the phrase &#8220;click here&#8221; really help? If the words &#8220;click here&#8221; were in blue and underlined, like a typical web link, would that improve the CTR?<br />
<span id="more-249"></span><br />
They ran 30,000 impressions of each ad. I don&#8217;t recall if they set a frequency cap (wherein you limit the number of impressions a specific viewer sees); I don&#8217;t believe they did. I don&#8217;t recall exact details of each ad or the results, but it looked something like this:</p>
<ol>
<li>Ad for amazing offer: 0.27% CTR</li>
<li>Same ad with &#8220;click here&#8221; in black on the <em>left</em> side of the ad: 0.28% CTR</li>
<li>&#8220;Click here&#8221; in black on the <em>right</em> side of the ad: 0.30% CTR</li>
<li>&#8220;Click here&#8221; in blue on the right side of the ad: 0.32% CTR</li>
<li>&#8220;Click here&#8221; underlined in blue on the right side of the ad: 0.33% CTR</li>
<li>&#8220;Click here&#8221; in blue, inside a button on the right side of the ad: 0.36% CTR</li>
</ol>
<p>Naturally, the result of this was that all of our ads soon had a gray button in the lower-left corner with the words &#8220;Click Here&#8221; in it, underlined and in blue:</p>
<div id="attachment_254" class="wp-caption alignnone" style="width: 478px"><img src="http://osric.com/chris/accidental-developer/wp-content/uploads/2009/12/amazing-offer-click-here_468x60.gif" alt="Example banner ad" title="Example banner ad" width="468" height="60" class="size-full wp-image-254" /><p class="wp-caption-text">Example banner ad</p></div>
<p>I was a bit skeptical, though. Could we really say from 30,000 impressions that a 0.33% CTR is significantly different from 0.36%? It&#8217;s a difference of 9 clicks. Could that be attributed to random chance?</p>
<p>I don&#8217;t have a background in statistics, so I asked my father, a scientist. He handed me a 1000-page epidemiology textbook and said&#8211;and I love this part&#8211;that a banner ad click is a lot like a disease state: an individual either has the disease (a click) or does not have the disease. Needless to say, I didn&#8217;t make a lot of headway into the world of epidemiology, but the question still troubled me.</p>
<p>Now I am taking an introductory class on statistical analysis, and although my analysis may oversimplify things greatly, I think it is safe to say that we should not have concluded that every ad needed a button-like box with the words &#8220;click here&#8221; in blue in the lower-right corner.</p>
<p>If we look at any one of the banners in isolation, the CTR is really just a sample <del datetime="2009-12-07T15:49:44+00:00">mean</del> proportion [thanks to Patrick for the correction]. We could run millions of impressions of the same banner&#8211;would it have the same CTR? What is the standard error? To find the confidence interval for the best performing ad, we can run it through this equation:</p>
<p><code>p +/- z*sqrt((p(1 - p))/n)<br />
p = 0.0036, z = 1.96 (for 95% confidence), and n = 30,000.</code></p>
<p>The result? 0.36% +/- 0.07%. We are 95% confident that the true population CTR is somewhere between 0.29% and 0.43%. Well&#8211;yikes! I&#8217;m 95% confident that our measurement isn&#8217;t very precise. When we&#8217;re dealing with such low proportions, we could really use more precision. We would need to run a test with more than 30,000 impressions.</p>
<p>What if we wanted to run a test where we were 95% confident that our value was within just one-one hundredth of a percent (0.01%) of the population mean? In other words, CTR% +/- 0.005%? We have an equation for that too:</p>
<p><code>n = (z^2*p(1-p))/e^2<br />
n = desired number of impressions, z = 1.96 (for 95% confidence), p = 0.0036, e = 0.00005</code></p>
<p>To be 95% confident that our sample CTR is within 0.01% of the population CTR, we would need to run<br />
<em><strong>5,517,522</strong></em> impressions.</p>
<p>Although the data presented in that blog post from years ago seemed compelling, I think I was right to be skeptical. As I said, this is based on what I&#8217;ve learned from an introductory course on statistical analysis. If you think I&#8217;m way off base, feel free to enlighten me in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://osric.com/chris/accidental-developer/2009/12/online-advertisements-and-statistical-analysis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Apache Install and Ambiguous Errors</title>
		<link>http://osric.com/chris/accidental-developer/2009/07/apache-error-only-one-usage-of-each-socket-address/</link>
		<comments>http://osric.com/chris/accidental-developer/2009/07/apache-error-only-one-usage-of-each-socket-address/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 21:39:34 +0000</pubDate>
		<dc:creator>Chris Herdt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[skype]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://osric.com/chris/accidental-developer/?p=177</guid>
		<description><![CDATA[I installed Apache 2.2.11 on the Windows XP portion of my desktop workstation for development purposes, but I got a lot of ambiguous errors when starting from the Apache Service Monitor or the Windows start menu. Finally, when I started Apache from the command line I got a more informative error: (OS 10048) Only one [...]]]></description>
			<content:encoded><![CDATA[<p>I installed Apache 2.2.11 on the Windows XP portion of my desktop workstation for development purposes, but I got a lot of ambiguous errors when starting from the Apache Service Monitor or the Windows start menu.</p>
<p>Finally, when I started Apache from the command line I got a more informative error:<br />
(OS 10048) Only one usage of each socket address (protocal/network address/port) is normally permitted. : make_sock: could not bind to address 127.0.0.1:80 no listening sockets available, shutting down</p>
<p>It turns out, I had Skype running, which by default binds to ports 5520, 80, and 443. There are several solutions:<br />
<span id="more-177"></span></p>
<ol>
<li>Quit Skype and don&#8217;t run Skype and Apache at the same time. Not ideal, but it works.</li>
<li>Change which port Apache uses. In your Apache2/conf/httpd file, change the line &#8220;Listen 80&#8243; to something like &#8220;Listen 8888&#8243;. Apache should start, but you&#8217;ll need to access it via http://localhost:8888 instead of merely http://localhost</li>
<li>Change which ports Skype uses for incoming connections. Go to <em>Tools&#8211;Options&#8211;Advanced&#8211;Connection</em> and un-check the box next to &#8220;Use port 80 and 443 as alternatives for incoming connections.&#8221;</li>
</ol>
<p>As far as I can tell, the last option has no ill-effect on Skype, although it might if your firewall or router is blocking port 5520.</p>
<p>I ended up installing Apache 2.0 in addition to Apache 2.2, as I was having trouble with mod_perl with the latter. I ran into the same issue there as well, and once I quit Skype I was able to start Apache.</p>
<p>Strangely enough, I now seem to have both Skype and Apache running and both listening on port 80, so perhaps I&#8217;ve misdiagnosed the problem completely.</p>
]]></content:encoded>
			<wfw:commentRss>http://osric.com/chris/accidental-developer/2009/07/apache-error-only-one-usage-of-each-socket-address/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Installing Adobe AIR and Tweetdeck on an Asus eee 701</title>
		<link>http://osric.com/chris/accidental-developer/2009/04/installing-adobe-air-and-tweetdeck-on-an-asus-eee-701/</link>
		<comments>http://osric.com/chris/accidental-developer/2009/04/installing-adobe-air-and-tweetdeck-on-an-asus-eee-701/#comments</comments>
		<pubDate>Fri, 01 May 2009 03:18:52 +0000</pubDate>
		<dc:creator>Chris Herdt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[adobe air]]></category>
		<category><![CDATA[asus eee]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[tweetdeck]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://osric.com/chris/accidental-developer/?p=165</guid>
		<description><![CDATA[Tweetdeck is an Adobe AIR application that is a twitter client, and recently also a Facebook client. My attempts to install Adobe AIR on the Asus eee 701 (running the default Xandros distro) were foiled several times in spite of following the instructions: Download Adobe AIR Make the AdobeAIRInstaller.bin file executable Run the .bin file [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tweetdeck.com/beta/">Tweetdeck</a> is an <a href="http://get.adobe.com/air/">Adobe AIR</a> application that is a <a href="http://twitter.com/">twitter</a> client, and recently also a <a href="http://www.facebook.com/">Facebook</a> client.</p>
<p>My attempts to install Adobe AIR on the Asus eee 701 (running the default Xandros distro) were foiled several times in spite of following the instructions:</p>
<ol>
<li>Download Adobe AIR</li>
<li>Make the AdobeAIRInstaller.bin file executable</li>
<li>Run the .bin file as a superuser</li>
</ol>
<p>I got a nice friendly fail message from the Adobe AIR installer every time.</p>
<p>I found a few relevant forum posts, e.g. <a href="http://forums.adobe.com/thread/204867"> Adobe Air Linux won&#8217;t install on Eee PC</a>, that suggested memory was an issue. Sure enough, running in Full Desktop Mode with 1440&#215;900 screen resolution (on an external display), I only had about 90MB of 500MB free.</p>
<p>I restarted the eee in Easy Mode and then immediately ran AdobeAirInstaller.bin. Success! (I later found these same instructions on the <a href="http://forum.eeeuser.com/viewtopic.php?pid=547238">eee user forums</a>.)</p>
<p>Installing Tweetdeck was trivial at that point: download the .air file, find it in the File Manager, and double-click it. However, when I ran it, it didn&#8217;t <em>do</em> anything. At one point I got a message that I was running an unknown desktop, and that Tweetdeck required Gnome or KDE.</p>
<p>I restarted in Full Desktop Mode, and was surprised to find a Tweetdeck icon already on the desktop. I ran it and was prompted to use KWallet, a KDE password manager. I canceled out of that, and found that Tweetdeck opened, but still didn&#8217;t <em>do</em> anything.</p>
<p>I tried again, activated the KWallet password manager, and then it worked! Tweetdeck prompted me for my twitter login, I additionally logged in to Facebook, and now I have a mean, lean, social networking machine.</p>
]]></content:encoded>
			<wfw:commentRss>http://osric.com/chris/accidental-developer/2009/04/installing-adobe-air-and-tweetdeck-on-an-asus-eee-701/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>One of my projects is about to be licenced</title>
		<link>http://osric.com/chris/accidental-developer/2009/01/one-of-my-projects-is-about-to-be-licenced/</link>
		<comments>http://osric.com/chris/accidental-developer/2009/01/one-of-my-projects-is-about-to-be-licenced/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 15:59:54 +0000</pubDate>
		<dc:creator>giblfiz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://osric.com/chris/accidental-developer/?p=138</guid>
		<description><![CDATA[A web development company that I have worked with before has decided that they are interested in licensing a web-framework that I have developed. They are probably going to go forward and use it on a _lot_ of projects (well that&#8217;s certainly what I hope) and I will get a small cut each time they [...]]]></description>
			<content:encoded><![CDATA[<p><img style="max-width: 800px;" src="http://osric.com/chris/accidental-developer/wp-content/uploads/2009/01/ape128.png" align="right" />A web development company that I have worked with before has decided that they are interested in licensing a web-framework that I have developed. They are probably going to go forward and use it on a _lot_ of projects (well that&#8217;s certainly what I hope) and I will get a small cut each time they deploy it. I&#8217;m really super excited about seeing my code deployed this way, as well as by the prospect of passive income.</p>
<p>I also feel as if recently my code has taken a big step forward in quality. I&#8217;m not sure exactly what did it, but I suspect that it was either trying to write a good written word piece for the first time, or starting to do daily meditation. Either way my code quality has gone up in a visible and measurable way. I feel good about this because I just did another pass through the code base and feel like it&#8217;s getting much closer to something that could be licensed with real value. </p>
]]></content:encoded>
			<wfw:commentRss>http://osric.com/chris/accidental-developer/2009/01/one-of-my-projects-is-about-to-be-licenced/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brochure Ape 3.0 (alpha)</title>
		<link>http://osric.com/chris/accidental-developer/2008/09/brochure-ape-30-alpha/</link>
		<comments>http://osric.com/chris/accidental-developer/2008/09/brochure-ape-30-alpha/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 15:13:15 +0000</pubDate>
		<dc:creator>giblfiz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://osric.com/chris/accidental-developer/?p=75</guid>
		<description><![CDATA[Over the Last several days, have been pounding away on a CMS that really takes it&#8217;s inspiration from some of the work that Chris did for U-Penn. (It is also partially inspired by cake, and by joomla.) The idea is for the app to be as easy to install and use as is humanly possible. [...]]]></description>
			<content:encoded><![CDATA[<p><img style="max-width: 800px;" src="http://osric.com/chris/accidental-developer/wp-content/uploads/2008/09/ape48.png" align="right" />Over the Last several days, have been pounding away on a CMS that really takes it&#8217;s inspiration from some of the work that Chris did for U-Penn. (It is also partially inspired by cake, and by joomla.) The idea is for the app to be as easy to install and use as is humanly possible. At the same time I expect that some more impressive things will need to be done by more advanced users, so I have sub-divided usage patterns out into 5 levels.</p>
<p><b>Installation</b>: I&#8217;m hoping to get this as simple as possible. I took the time to write up a custom script &#8220;installer_helper.php&#8221; that drags the user kicking and screaming through the installation process. Hopefully this is enough, though a few steps still seem to hard. (Rather horrifically, the first one is the worst.)</p>
<p><b>Publisher</b>: Hopefully this will be so easy that an ape could do it. You can either be logged in as an admin, or visiting the page. If you are logged in and visit a page that doesn&#8217;t exsist, you get the option to create the page, by selecting from a list of templates. The new page is automatically added to the master navigation. Each of the templates has areas of text, Images, and other sundry that can be edited by clicking on the little &#8220;edit&#8221; button next to them. Publishers will never need to touch the web server, or HTML.</p>
<p><b>Designer</b>: New templates useing the smarty mark-up rules. Their are a few additional calls that can be made to put in editable fields, but for the most part it just straight HTML. The new template is simply deposited in the &#8220;view&#8221; directory, and then becomes an avalible option for the Publishers. Javascript, Images and CSS can all be put in their respective directories in &#8220;webroot&#8221;</p>
<p><b>Developer</b>: If you need to add some actual functionality to the site, Brochure Ape can act as a rough and ready framework as well. Custom PHP code can be written, and put in files in the &#8220;controler&#8221; directory. At any point if a page is created that matches the name of a controller, it will run both the CMS code, and the controler code. There is also a pretty cool table-object that can be used to deal with specific database tables.</p>
<p><b>Extender</b>: The ultimate idea is for the core code to be broken out into modules, which have been divided up sanely. Something a little bit more like a micro-kernal approch. At this point it&#8217;s just not true, and the extender roll would be a hard and unsupported one. I do however intend to keep on cleaning this up.</p>
]]></content:encoded>
			<wfw:commentRss>http://osric.com/chris/accidental-developer/2008/09/brochure-ape-30-alpha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Smarty prefilters need to have the compiled templates wiped to work.</title>
		<link>http://osric.com/chris/accidental-developer/2008/09/smarty-prefilters-need-to-have-the-compiled-templates-wiped-to-work/</link>
		<comments>http://osric.com/chris/accidental-developer/2008/09/smarty-prefilters-need-to-have-the-compiled-templates-wiped-to-work/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 18:22:50 +0000</pubDate>
		<dc:creator>giblfiz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://osric.com/chris/accidental-developer/?p=69</guid>
		<description><![CDATA[I just thought I would drop this little tidbit to help save someone some time (hopefully). In the smarty template engine there is a pretty useful call &#8220;register_prefilter&#8221; which basically lets you pass a function to smarty that gets run on the whole template file before the template file itself has any of the substitutions [...]]]></description>
			<content:encoded><![CDATA[<p><img style="max-width: 800px;" src="http://osric.com/chris/accidental-developer/wp-content/uploads/2008/09/smarty-logo-orange.gif" align="left" />I just thought I would drop this little tidbit to help save someone some time (hopefully). In the smarty template engine there is a pretty useful call &#8220;register_prefilter&#8221; which basically lets you pass a function to smarty that gets run on the whole template file before the template file itself has any of the substitutions made to it. This can be a god-send, however the first time you use it it probably won&#8217;t seem like it&#8217;s working. The secret is that you need to go into your templates_c directory, and dump all of the compiled templates every time you change the pre-filter. </p>
]]></content:encoded>
			<wfw:commentRss>http://osric.com/chris/accidental-developer/2008/09/smarty-prefilters-need-to-have-the-compiled-templates-wiped-to-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Secure/nonsecure messages in MovableType 4.2</title>
		<link>http://osric.com/chris/accidental-developer/2008/08/securenonsecure-messages-in-movabletype-42/</link>
		<comments>http://osric.com/chris/accidental-developer/2008/08/securenonsecure-messages-in-movabletype-42/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 14:59:50 +0000</pubDate>
		<dc:creator>Chris Herdt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[movable type]]></category>

		<guid isPermaLink="false">http://osric.com/chris/accidental-developer/?p=62</guid>
		<description><![CDATA[I have been lately working with a Movable Type install on an SSL-enabled server. In IE, I keep getting pesky warning messages: This page contains both secure and nonsecure items. Do you want to display the nonsecure items? I disabled Javascript and the error messages are gone, so I figured the culprit must lie somewhere [...]]]></description>
			<content:encoded><![CDATA[<p>I have been lately working with a <a href="http://www.movabletype.org/">Movable Type</a> install on an SSL-enabled server. In IE, I keep getting pesky warning messages:</p>
<blockquote><p>This page contains both secure and nonsecure items. Do you want to display the nonsecure items?</p></blockquote>
<p>I disabled Javascript and the error messages are gone, so I figured the culprit must lie somewhere in the Javascript. One particular file, JavaScriptFlashGateway.js, contained<br />
<code>flashTag += 'codebase="http://download.macromedia.com ... ';</code></p>
<p>I&#8217;m going to see if updating that will address the issue, but I have a feeling there may be other issues. Has anyone else run into this? My Google searches have been coming up empty.</p>
]]></content:encoded>
			<wfw:commentRss>http://osric.com/chris/accidental-developer/2008/08/securenonsecure-messages-in-movabletype-42/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Weird Issue between Smarty and Google Maps</title>
		<link>http://osric.com/chris/accidental-developer/2008/08/weird-issue-between-smarty-and-google-maps/</link>
		<comments>http://osric.com/chris/accidental-developer/2008/08/weird-issue-between-smarty-and-google-maps/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 21:52:59 +0000</pubDate>
		<dc:creator>giblfiz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://osric.com/chris/accidental-developer/?p=61</guid>
		<description><![CDATA[I&#8217;m doing some work on a site that uses the google maps API (which is clean, simple and absolutely fabulous, by the way) and I have bumped into a strange problem. When I draw the page that uses the google maps api with smarty everything works fine, generally. However if I put the {debug} tag [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://osric.com/chris/accidental-developer/wp-content/uploads/2008/08/smarty-logo-orange.gif" style="max-width: 800px" align="right" />I&#8217;m doing some work on a site that uses the google maps API (which is clean, simple and absolutely fabulous, by the way) and I have bumped into a strange problem. When I draw the page that uses the google maps api with smarty everything works fine, generally. However if I put the {debug} tag into the template (which causes smarty to give you a nice little pop-up window of all of the variables it&#8217;s working with, and some other great info) google maps stops working.</p>
<p>This isn&#8217;t really that shocking, since there is a bunch of javascript that gets pushed into the page by debug, what is weird, and a pretty large problem is that once I do this, google maps continues not to load, even after the {debug} tag has been removed. I haven&#8217;t really dug into what is going on to carefully yet, but its an interesting issue.</p>
<p><em>Really lame solution found after the jump </em></p>
<p><span id="more-61"></span>Well, I dug into it, and as it turns out, it was not a problem with the debug statement at all. Rather it was an issue because I had done some line formatting in the javascript that called google maps, and put in some carriage returns in the middle of a string. (that string was producing HTML so I didn&#8217;t mind having some whitespace in the output). It turns out that this was what was making the map API puke. Just goes to show&#8230; make sure you have isolated the problem correctly!</p>
]]></content:encoded>
			<wfw:commentRss>http://osric.com/chris/accidental-developer/2008/08/weird-issue-between-smarty-and-google-maps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Meditations on Craftsmanship</title>
		<link>http://osric.com/chris/accidental-developer/2008/07/meditations-on-craftsmanship/</link>
		<comments>http://osric.com/chris/accidental-developer/2008/07/meditations-on-craftsmanship/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 18:56:46 +0000</pubDate>
		<dc:creator>giblfiz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://osric.com/chris/accidental-developer/?p=57</guid>
		<description><![CDATA[Recently I have been somewhat frustrated with some aspects of my work. (See previous post.) I have decided that in many ways I have wandered off track in my work, and I need to start writing code that I like again. By chasing after efficiency, I have allowed quality to become a second priority, and [...]]]></description>
			<content:encoded><![CDATA[<p><img style="max-width: 800px;" src="http://osric.com/chris/accidental-developer/wp-content/uploads/2008/07/craftsmanship.jpg" align="left" />Recently I have been somewhat frustrated with some aspects of my work. (See previous post.) I have decided that in many ways I have wandered off track in my work, and I need to start writing code that I like again. By chasing after efficiency, I have allowed quality to become a second priority, and in doing so have begun to lose morale as well. I feel as if this is a very common problem in modern practical programming, and as if it&#8217;s a good thing to explore solutions to. For the last several weeks I have been searching for a book on programming that covered tools, tips and tricks for making yourself feel enthusiastic about what you&#8217;re working on, and dedicated to doing it well. So far I have not had much luck.</p>
<p>What I have found is a lot of books that tell me about tools for generating quality work, but ignore the emotional end of the process. One of the few bits of emotional advice that they do turn up repeatedly is that once you let some of a project start to slide into a lower level of quality, all motivation to keep the quality level up drains away in what is typically called &#8220;<a href="http://en.wikipedia.org/wiki/Fixing_Broken_Windows">Broken Window Syndrome</a>&#8220;. What they don&#8217;t talk about is how to recover from it (my own personal holy grail, since I am so often brought in to save messed up projects) or how to feel a sense of quality to start with. </p>
<p>Since I am feeling around in the dark, I thought I would take two blind stabs at raising my quality level. The first idea I am putting into practice is literally sitting down and meditating on quality &amp; craftsmanship before I start to work on a project. This means 15 minutes of cross-legged, closed eye meditation, thinking about the nature of quality, (very much in the style of &#8220;<a href="http://en.wikipedia.org/wiki/Zen_and_the_Art_of_Motorcycle_Maintenance">Zen and the art of motorcycle maintenance</a>&#8220;), and on my own personal visions of a true craftsman at work. This does seem to help.</p>
<p>The second part of this approach that I am taking, is to start a personal project and try to hold it to a very, very high standard of work. The idea behind this is to help develop the habits of quality, and help it become a familiar thing. This will probably be a cakePhp project, which I will most likely write about more here. I&#8217;m already looking into getting started with unit testing for it, but more on that later.</p>
<p>If anyone has any tips on emotional self management for programming, or can refer me to a book on it, that would be great as well. </p>
]]></content:encoded>
			<wfw:commentRss>http://osric.com/chris/accidental-developer/2008/07/meditations-on-craftsmanship/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

