<?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>Technobabbles &#187; PHP</title>
	<atom:link href="http://technobabbl.es/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://technobabbl.es</link>
	<description>I try to sound like I know what I&#039;m talking about. Don&#039;t be fooled.</description>
	<lastBuildDate>Thu, 24 Jun 2010 18:04:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=328</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>“Houdini” plugin for WordPress is no magician</title>
		<link>http://technobabbl.es/2010/01/houdini-plugin-for-wordpress-is-no-magician/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://technobabbl.es/2010/01/houdini-plugin-for-wordpress-is-no-magician/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 16:00:38 +0000</pubDate>
		<dc:creator>Voyagerfan5761</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WTF]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[opinion]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://technobabbl.es/?p=1000</guid>
		<description><![CDATA[I've seen some pretty absurd WordPress plugins show up in the Plugins dashboard widget on this site, but the recently-released "Houdini" takes the cake so far. It claims to prevent spammers from copying the contents of any post or page upon which the [houdini] shortcode is placed.
The fact is the internet is open can lead [...]<p>Originally published at <img src="http://voyagerfan5761.googlepages.com/technobabbles_logo_16.png" /> <a href="http://technobabbl.es/?utm_source=feedfooter&utm_medium=link&utm_campaign=feedfooter">Technobabbles</a><br />
Content copyright &copy; 2006-2010 by Voyagerfan5761</p>
]]></description>
			<content:encoded><![CDATA[<p><a ><img src="http://images.technobabbl.es/2010/01/wordpress-the-f.png" alt="" title="WordPress the F***?!" width="250" height="83" class="size-full wp-image-1010" /></a>I've seen some pretty absurd WordPress plugins show up in the Plugins dashboard widget on this site, but the recently-released "<a href="http://wordpress.org/extend/plugins/houdini/" rel="nofollow" >Houdini</a>" takes the cake so far. It claims to prevent spammers from copying the contents of any post or page upon which the <code>[houdini]</code> shortcode is placed.</p>
<blockquote cite="http://wordpress.org/extend/plugins/houdini/"><p>The fact is the internet is open can lead to theft especially to content stealing and plagiarism.</p>
<p>Until now, there was very little to discourage and deter this serious crime. Yes content theft and plagarism is a crime in some jurisdictions.</p>
<p>You cannot rely on others or the authorities to continue to police the internet as they do not have enough resources. You need to protect your content and deter this theft.</p>
<p>The basic form of content theft is to copy and paste your content to another medium.</p>
<p>Well Houdini, prevents this using a little known special algorithm that prevents copying by making the selected text that is targeted by the perps to be copied, to disappear! Yes disappear!!! The only way to recover is to reload the page in the web browser. If they try again, the content disappears again. As long as they keep trying to select and copy your content, the content will disappear before they can get a chance to execute the copy command!</p>
<p>After a few unsuccessful attempts, the theives will move on to a easier target.</p>
<p>Your safe!</p>
<p>— <a href="http://wordpress.org/extend/plugins/houdini/" rel="nofollow" >WordPress › Houdini « WordPress Plugins</a></p></blockquote>
<p>So what can we glean from this <a href="http://wordpress.org/extend/plugins/profile/phkcorp2005" rel="nofollow">PHK Corporation</a> plugin's description, other than the fact that the author has poor English skills? We can most definitely conclude that phkcorp2005 has no understanding of how most copying of Internet content is carried out. As I and others have pointed out many times over in <a href="http://fourisland.com/blog/and-like-magic-nothing-happens/" rel="nofollow"  title="hatkirby's rant">blog</a> and <a href="http://wordpress.org/support/topic/357125" rel="nofollow"  title="I weigh in">forum</a> <a href="http://wordpress.org/support/topic/356761" rel="nofollow"  title="The first doubter's thread">posts</a>, copying is usually <strong>not</strong> done by a person using a mouse to cut and paste, but rather by automated computer programs called scrapers. (For the uninitiated: See <a href="http://en.wikipedia.org/wiki/Blog_scraping" rel="nofollow" >these</a> <a href="http://en.wikipedia.org/wiki/Web_scraping" rel="nofollow" >two</a> Wikipedia articles.)</p>
<p>What is left out of that messy, error-riddled description is the word "JavaScript". It is by no means the only word or phrase that should be inserted, but it is the most important. That fifth "paragraph" (the formatting is also very poor) should say "special <strong>JavaScript</strong> algorithm", which is synonymous in this case with "<strong>useless</strong> JavaScript algorithm". All it does is wait for the user to try to select text in the browser and clear the selection if any is made. Besides, any copy-protection scheme based upon JavaScript is inherently useless by virtue of the fact that it doesn't do anything to prevent copying. There are tons of ways to get around it. Disabling JavaScript, for example (as mentioned below).</p>
<p>For example, take <a href="http://fourisland.com/blog/and-like-magic-nothing-happens/" rel="nofollow"  title="hatkirby's rant">hatkirby's rant</a>. I quote from that post the list of circumvention techniques below:</p>
<blockquote cite="http://fourisland.com/blog/and-like-magic-nothing-happens/"><ol>
<li>Go old fashioned and turn off JavaScript. Yep, the script is rendered useless.</li>
<li>More advanced content thieves likely don't just go around to random blogs and copy/paste off of them. They write screen scrapers, small programs that visit sites and download specific parts of the site. As these do not render pages and simply download from them, the script isn't even seen by the scraper.</li>
<li>Due to the nature of the Internet, anyone, and I mean anyone, can see the source code of a website. It's done differently in different web browsers, but it's always pathetically easy and, as it simply shows HTML code instead of parsing anything, no scripts are run.</li>
<li>RSS. Syndication feeds are normally viewed in feed readers with little to no JavaScript interpreter. Script bypassed.</li>
<li>There's this cool little button on most keyboards that says "Print Screen". Even on the keyboards that don't have it, there's usually a key combination that achieves the same effect. It takes a picture of whatever's on the screen. No selection occurs and yet the thief has a copy of your article. They do, however, have to retype it, so this keeps the lazy thieves out.</li>
</ol>
</blockquote>
<p>That's just a smattering of ways to get around the JavaScript inserted by Houdini.</p>
<p>In the face of all the arguments presented, the plugin's author has insisted that the purpose of Houdini is not to "prevent" copying, but to "deter" copying. I don't think that statement holds any weight whatsoever. It still depends upon the copying being performed in a JavaScript-enabled browser by a human.</p>
<p>There's also the matter of just how absurd copy-protection of any kind is on the Internet. Every single document or file anywhere on the Internet <strong>must be copied</strong> in order for the user-agent (usually a browser in the case of human interaction) to retrieve and display or otherwise make use of the content. This is why it's quite simple for any user to just view the source code of a page. It has to be copied in order to display the content.</p>
<p>Also mentioned in the first (started, chronologically) forum thread is the ability of JavaScript to disable the browser's context menu and thus the "View source" option. That's just as useless as the selection-clearing code, and actually more so because many modern browsers allow specific JavaScript capabilities to be disabled—capabilities like removing or replacing the context menu—as an alternative to disabling all JavaScript. The "View source" option is also present in other places—places such as the browser toolbar's "View" or "Tools" menu—which JavaScript code cannot modify even in the most permissive environment.</p>
<p>Legitimate quoting must also be considered. There are a million and one reasons why someone might legitimately want to copy a few sentences of a blog post. Maybe they like it enough to post a quote to Twitter or Facebook, or perhaps they want to comment on it in a blog post of their own. Content theft is a big problem, but the old methods of periodically searching for and reporting content stolen from one's site are infinitely preferable to this plugin's ineffective method.</p>
<p>Finally, why require the use of a shortcode? Why not just add the script globally to all content pages and forget that stupid "This page is copy protected" header?</p>
<p>At most, Houdini has the ability to add a superfluous <code>&lt;h5&gt;</code> tag to the page and annoy legitimate users with an obnoxious script while doing absolutely nothing to thwart real content thieves. I wonder if WordPress Extend would consider removing this laughable plugin from the directory... Of course, we bloggers would then be denied this ripe opportunity to satirize this particular piece of code. <img src='http://technobabbl.es/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<div id="flaresmith" class="feedflare"><script src="http://feeds.technobabbl.es/~s/voyagerfan5761?i=http://technobabbl.es/2010/01/houdini-plugin-for-wordpress-is-no-magician/" type="text/javascript" charset="utf-8"></script></div><p>Originally published at <img src="http://voyagerfan5761.googlepages.com/technobabbles_logo_16.png" /> <a href="http://technobabbl.es/?utm_source=feedfooter&utm_medium=link&utm_campaign=feedfooter">Technobabbles</a><br />
Content copyright © 2006-2010 by Voyagerfan5761</p>
]]></content:encoded>
			<wfw:commentRss>http://technobabbl.es/2010/01/houdini-plugin-for-wordpress-is-no-magician/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My First WordPress Plugin Patch: Wibiya Toolbar</title>
		<link>http://technobabbl.es/2010/01/wibiya-toolbar-plugin-compatibility-patch/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://technobabbl.es/2010/01/wibiya-toolbar-plugin-compatibility-patch/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 01:46:38 +0000</pubDate>
		<dc:creator>Voyagerfan5761</dc:creator>
				<category><![CDATA[Blogger]]></category>
		<category><![CDATA[My Code]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[ideas]]></category>

		<guid isPermaLink="false">http://technobabbl.es/?p=965</guid>
		<description><![CDATA[The beauty of using WordPress instead of Blogger is, in a nutshell, the freedom that comes with using an open system instead of a closed one. Under Blogger, I had very little freedom to extend the platform. Everything I could do had to be added by someone from Google, with the exception of a few [...]<p>Originally published at <img src="http://voyagerfan5761.googlepages.com/technobabbles_logo_16.png" /> <a href="http://technobabbl.es/?utm_source=feedfooter&utm_medium=link&utm_campaign=feedfooter">Technobabbles</a><br />
Content copyright &copy; 2006-2010 by Voyagerfan5761</p>
]]></description>
			<content:encoded><![CDATA[<p>The beauty of using WordPress instead of Blogger is, in a nutshell, the freedom that comes with using an open system instead of a closed one. Under Blogger, I had very little freedom to extend the platform. Everything I could do had to be added by someone from Google, with the exception of a few JavaScript- and Flash-based sidebar widgets. Under WordPress, I have access to literally thousands of open-source plugins to modify, extend, and replace the functionality of the site.</p>
<p>The beauty of using this open system is that if something doesn't work the way I want it to, I am free to simply change it; every plugin is editable from within WordPress' administrative back-end, and the core code is also hackable (though I don't like messing with it because upgrades will break changes). When I discovered that the <a href="http://wibiya.com/" rel="nofollow" >Wibiya</a> Toolbar (or Wibar) was showing on the mobile version of the website (which is generated by <a href="http://mobilepress.co.za/" rel="nofollow" >MobilePress</a>, another good plugin), I simply looked in the source of Wibiya's plugin to see how the JavaScript for the toolbar was being inserted.</p>
<p>I found that instead of using the <code>wp_enqueue_script()</code> function as WordPress plugin developers are supposed to do, the Wibiya developers simply used <code>echo</code> to output a <code>&lt;script&gt;</code> tag. That explained why only the JavaScript for the Wibar was loading on the mobile site. Rewriting the plugin to use the official WordPress script-injection method solved the problem.</p>
<p>The original relevant code was:</p>
<pre><code>add_action('get_footer', 'filter_footer');
add_action('admin_menu', 'wibiya_config_page');

function filter_footer() {
    $wibiya_toolbarid = get_option('WibiyaToolbarID');
    $wibiya_enabled = get_option('WibiyaToolbarEN');

    if ($wibiya_toolbarid != '' and $wibiya_enabled) {
        echo '&lt;script src="http://cdn.wibiya.com/Loaders/Loader_'.$wibiya_toolbarid.'.js" type="text/javascript"&gt;&lt;/script&gt;';
    }
}</code></pre>
<p>I rewrote it just a little bit. My changes were pretty trivial, really. I changed the function name to be namespaced (including the plugin name) just so it'd be less likely to conflict with another plugin. I also switched actions to enable <code>wp_enqueue_script()</code> to work (<code>get_footer</code> is called too late) and added a check—<code>if( !is_admin() )</code>—to keep the toolbar off of admin pages, preserving the original behavior of the function (and the sanity of anyone using the modifications).</p>
<p>In short, <code>wp_enqueue_script()</code> takes five parameters, three of which are optional. The first two are the <code>$handle</code> and the <code>$src</code>, which specify a name for the script and its source address. Then come <code>$deps</code> (dependencies; Wibiya has none, so set to <code>false</code>), <code>$ver</code> (version; also <code>false</code> because it's irrelevant), and <code>$in_footer</code> (set to <code>true</code> because the toolbar should be inserted above the <code>&lt;/body&gt;</code> tag).</p>
<p>So with my changes, the code block above becomes:</p>
<pre><code>if( !is_admin() ) {
    add_action('wp_print_scripts', 'wibiya_filter_footer');
}
add_action('admin_menu', 'wibiya_config_page');

function wibiya_filter_footer() {
    $wibiya_toolbarid = get_option('WibiyaToolbarID');
    $wibiya_enabled = get_option('WibiyaToolbarEN');

    if ($wibiya_toolbarid != '' and $wibiya_enabled) {
        wp_enqueue_script( 'wibiyabar', 'http://cdn.wibiya.com/Loaders/Loader_'.$wibiya_toolbarid.'.js', false, false, true );
    }
}</code></pre>
<p>Following some light testing, I <a href="http://getsatisfaction.com/wibiya/topics/use_wp_enqueue_script_rather_than_manually_inserting_the_lt_script_gt_tag_in_wordpress" rel="nofollow" >submitted an idea</a> to the Wibiya feedback forum, where my update is currently being reviewed by the company. Hopefully, the change will be included in a future version of the Wibiya WordPress plugin. After all, it changes nothing for Wibiya but works wonders for compatibility with other plugins.</p>
<p>I'll just bet that this won't be the last time I'll send a patch to a plugin developer. I enjoy reporting bugs and coming up with fixes too much to not do it. <img src='http://technobabbl.es/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div id="flaresmith" class="feedflare"><script src="http://feeds.technobabbl.es/~s/voyagerfan5761?i=http://technobabbl.es/2010/01/wibiya-toolbar-plugin-compatibility-patch/" type="text/javascript" charset="utf-8"></script></div><p>Originally published at <img src="http://voyagerfan5761.googlepages.com/technobabbles_logo_16.png" /> <a href="http://technobabbl.es/?utm_source=feedfooter&utm_medium=link&utm_campaign=feedfooter">Technobabbles</a><br />
Content copyright © 2006-2010 by Voyagerfan5761</p>
]]></content:encoded>
			<wfw:commentRss>http://technobabbl.es/2010/01/wibiya-toolbar-plugin-compatibility-patch/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Portable Computing</title>
		<link>http://technobabbl.es/2008/04/portable-computing/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://technobabbl.es/2008/04/portable-computing/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 18:15:00 +0000</pubDate>
		<dc:creator>Voyagerfan5761</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[freeware]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[opinion]]></category>
		<category><![CDATA[strange]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://technobabbles.gtaero.net/2008/04/portable-computing.html</guid>
		<description><![CDATA[I really have no right to talk about this subject, as I have never actually done it.  I thought it might make for a good hypothetical post, though, especially since I don't have any other good ideas right now.  What can I say, it's on my mind.  That's because of where I [...]<p>Originally published at <img src="http://voyagerfan5761.googlepages.com/technobabbles_logo_16.png" /> <a href="http://technobabbl.es/?utm_source=feedfooter&utm_medium=link&utm_campaign=feedfooter">Technobabbles</a><br />
Content copyright &copy; 2006-2010 by Voyagerfan5761</p>
]]></description>
			<content:encoded><![CDATA[<p><span style="font-style: italic;">I really have no right to talk about this subject, as I have never actually done it.  I thought it might make for a good hypothetical post, though, especially since I don't have any other good ideas right now.  What can I say, it's on my mind.  That's because of </span><a href="http://twitter.com/voyagerfan5761/statuses/790454366" rel="nofollow" style="font-style: italic;" >where I was</a><span style="font-style: italic;"> when I wrote this.</span></p>
<p>I'm thinking about portable computing right now because I keep everything on my hard drive.  Well, stuff that isn't email or associated with a Web service.  Applications and stuff all live on my computer.  When I go somewhere else, I can't get at the <acronym title="File Transfer Protocol">FTP</acronym> accounts stored in <a href="http://filezilla-project.org/" rel="nofollow" >FileZilla</a> (except for the one or two whose passwords I know by heart) or my Firefox data (stored passwords, which I don't usually need anyway; history; extensions).</p>
<p>Is that bad?  Depends.  On the one hand other copies of Firefox run a lot faster without all the extensions, but the one I'm using right now is at version 2.0.0.4.  No organization I've seen bothers keeping Firefox up-to-date. The current version is <del>2.0.0.13</del> <ins>2.0.0.14 (updated again today, actually)</ins>, and that could open me (and all the students and faculty) up to security holes, and I don't like that.  Trying to upgrade gets me an error message due to students getting limited accounts.</p>
<p>Aside from the lack of updates, I also don't have any of the comforts of home.  That is, I don't have my theme (which is currently a glorious black space theme) or my extensions (which do everything from notifying me of new email to keeping me apprised of visitors to this site to making sure I'm not trusting a bad site).  I have no history, no bookmarks (which are actually in Google Bookmarks anyway).  I also don't have <a href="http://www.opendns.com/" rel="nofollow" >OpenDNS</a> shortcuts, but that would require configuration changes to the computer's operating system anyway.</p>
<p>Most of these annoyances would be solved if I simply got a <acronym title="Universal Serial Bus">USB</acronym> thumb drive and loaded portable versions of my applications onto it.  Transfer the settings files and I'd be good to go.  Firefox, <a href="http://notepad-plus.sourceforge.net/" rel="nofollow" >Notepad++</a>, and FileZilla already have portable versions, I know for sure, and those are the only applications I really find myself wanting.  I don't even use FileZilla that much anyway; I'm only thinking about it because I wanted to try something with it to fix a bum plugin on CodingExperiments.com.</p>
<p>With Notepad++, I'd probably want to have Apache, MySQL, and PHP along, too, so I could work on website development.  I know there are portable server installations, too.  Those could be added to the list if I got a reasonably sized drive (I'm thinking 16 GB at the moment, plus 500 GB of <acronym title="Redundant Array of Independent Disks">RAID</acronym> 1 storage to leave at home for archival).</p>
<p>I could also bring along my computer, I guess.  It is a laptop.  But it's ailing with power jack issues, which make it really annoying to use if it's not left alone on a table (which it is at home).  So the trade-off is not having my settings.  I can live with it, really.  I only spend an hour or two on foreign computers a week.  Planning for the future, though, is something I should do.  I won't have my own computer forever; it'll be going back at the end of this school year.  And no, my idea of bringing a <acronym title="Universal Serial Bus">USB</acronym> flash drive with me is not new; I'm just writing about it myself for the first time.</p>
<div id="flaresmith" class="feedflare"><script src="http://feeds.technobabbl.es/~s/voyagerfan5761?i=http://technobabbl.es/2008/04/portable-computing/" type="text/javascript" charset="utf-8"></script></div><p>Originally published at <img src="http://voyagerfan5761.googlepages.com/technobabbles_logo_16.png" /> <a href="http://technobabbl.es/?utm_source=feedfooter&utm_medium=link&utm_campaign=feedfooter">Technobabbles</a><br />
Content copyright © 2006-2010 by Voyagerfan5761</p>
]]></content:encoded>
			<wfw:commentRss>http://technobabbl.es/2008/04/portable-computing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Financial Reports Waste Paper; Use the Internet</title>
		<link>http://technobabbl.es/2008/03/financial-reports-waste-paper-use/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://technobabbl.es/2008/03/financial-reports-waste-paper-use/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 13:14:00 +0000</pubDate>
		<dc:creator>Voyagerfan5761</dc:creator>
				<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[opinion]]></category>

		<guid isPermaLink="false">http://technobabbles.gtaero.net/2008/03/financial-reports-waste-paper-use-the-internet.html</guid>
		<description><![CDATA[Financial reports are a colossal waste of paper.  Well, perhaps that's not entirely true.  I'm sure some people read every last character in those thick stacks of paper sent out by investment agencies at the end of the fiscal year.  But most of us just shred them and put them in the [...]<p>Originally published at <img src="http://voyagerfan5761.googlepages.com/technobabbles_logo_16.png" /> <a href="http://technobabbl.es/?utm_source=feedfooter&utm_medium=link&utm_campaign=feedfooter">Technobabbles</a><br />
Content copyright &copy; 2006-2010 by Voyagerfan5761</p>
]]></description>
			<content:encoded><![CDATA[<p>Financial reports are a colossal waste of paper.  Well, perhaps that's not entirely true.  I'm sure some people read every last character in those thick stacks of paper sent out by investment agencies at the end of the fiscal year.  But most of us just shred them and put them in the recycling (or, unfortunately and probably more commonly, the trash).</p>
<p>What's in one of those things?  Usually it's just a summary of all transactions conducted by the agency on your behalf since the last report, with a few statistics thrown in for good measure.  Yes, it can be useful.  No, it does not need to be mailed out to every agency customer, in triplicate (I kid you not; this does happen on occasion).</p>
<p>Before the invention of the Internet, such mailings made sense.  There was simply no other good way of getting the documents.  It was either paper mail or paper fax.  Either way, you used paper.</p>
<p>Now, of course, we have the Internet, and that wonderful thing called email.  Adobe made the <acronym title="Portable Document Format">PDF</acronym> file format, and we should be using that, too.  There's simply no good reason to use paper for these reports in this day and age.</p>
<p>Considering that each report averages around 20 or 30 pages, and that there will often be multiple reports mailed by multiple agencies, that translates into a lot of paper, especially if the amount is multiplied by the number of customers receiving those documents.  As I said, we could definitely email <acronym title="Portable Document Format">PDF</acronym>s instead of putting all these reams of paper in the mail.  What if, just hypothetically, there was a better way?  A better way even than email?</p>
<p>I think there is, and it's kind of making me eat my own words.  What if all the reports were simply generated on-the-fly by a Web-based console?  Each customer would get a login (always transmitted over <acronym title="Secure Sockets Layer">SSL</acronym>, of course, as with the rest of the site), which would get them into a reporting interface tied to their transactions.  Undoubtedly, the transaction data is stored in a database.  That would be an efficient way to store such uniform data.  The site would simply tie into that database (or a replicated read-only copy, for another layer of <del>hacker</del> <ins>cracker</ins> safety).</p>
<p>In my mind, I envision the same sort of powerful reporting interface as those used by applications like Google Analytics.  Date ranges, comparisons, graphs, charts...  All would be quite welcome in a world of financial data.  And the best part of such a system would be the near-obsolescence of paper reports.  The dynamic charting and date-range selection capabilities of the Web application would surely prove more useful than fixed paper reports.</p>
<p>Of course, there would be Luddites intent upon keeping their paper-based reports.  Hence "near-obsolescence" rather than just "obsolescence."  There would have to be an option to receive paper reports, in recognition of the views held by the few people who would want them.  But that option should be turned off by default.  Anyone who wanted paper mailed to them would simply call the agency and say so.  It could even be a question when new customers sign up.  But again, the default would be "no."  As far as I can tell, most people don't use the paper, so why waste it?</p>
<p>It's probably obvious that this is a half-baked idea.  I haven't got any interface mock-ups, server-side code (say, <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> or Python), <acronym title="Structured Query Language">SQL</acronym>, or anything else.  All I have is an ideal, that paper-based reports be sent only -- and <span style="font-style: italic;">only</span> -- to the people who want and use them.</p>
<div id="flaresmith" class="feedflare"><script src="http://feeds.technobabbl.es/~s/voyagerfan5761?i=http://technobabbl.es/2008/03/financial-reports-waste-paper-use/" type="text/javascript" charset="utf-8"></script></div><p>Originally published at <img src="http://voyagerfan5761.googlepages.com/technobabbles_logo_16.png" /> <a href="http://technobabbl.es/?utm_source=feedfooter&utm_medium=link&utm_campaign=feedfooter">Technobabbles</a><br />
Content copyright © 2006-2010 by Voyagerfan5761</p>
]]></content:encoded>
			<wfw:commentRss>http://technobabbl.es/2008/03/financial-reports-waste-paper-use/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debug Constants vs. Secret GET Parameters</title>
		<link>http://technobabbl.es/2008/03/debug-constants-vs-secret-get/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://technobabbl.es/2008/03/debug-constants-vs-secret-get/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 13:05:00 +0000</pubDate>
		<dc:creator>Voyagerfan5761</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[internet]]></category>

		<guid isPermaLink="false">http://technobabbles.gtaero.net/2008/03/debug-constants-vs-secret-get-parameters.html</guid>
		<description><![CDATA[A while back I commented on one of possible248's posts on CodingExperiments.com that secret GET parameters aren't the best way to do debugging.  The problem is that if someone discovers your "secret" parameter (which most people would probably set to just debug=1), they can get all sorts of information about your site's underlying code [...]<p>Originally published at <img src="http://voyagerfan5761.googlepages.com/technobabbles_logo_16.png" /> <a href="http://technobabbl.es/?utm_source=feedfooter&utm_medium=link&utm_campaign=feedfooter">Technobabbles</a><br />
Content copyright &copy; 2006-2010 by Voyagerfan5761</p>
]]></description>
			<content:encoded><![CDATA[<p>A while back <a href="http://codingexperiments.com/archives/24#comment-14" rel="nofollow" >I commented</a> on one of possible248's posts on CodingExperiments.com that secret GET parameters aren't the best way to do debugging.  The problem is that if someone discovers your "secret" parameter (which most people would probably set to just <tt>debug=1</tt>), they can get all sorts of information about your site's underlying code structure.</p>
<p>What I like to do is have debug mode switched in the source code itself, say in a global include file that defines constants and variables for the entire site.  (MediaWiki's LocalSettings.php is a good example.)  Since it's usually wise to do your development on a different set of files (at least, if not on your own machine), you can make changes and set debug mode on while coding, and then turn it off before uploading the code to the live site.  There's no risk of someone discovering a hidden parameter, and you use the same basic <tt>if(debug){print debug stuff}</tt> code that you would otherwise.</p>
<p>It's not necessarily something you would call a "best practice"; it's just the sort of thing that you want to think about before making the decision to use GET params or constants.  If security is important, you should stick with things that can only be switched by modifying the source code.  Barring anyone hacking your server, everything would be safe from GET snoopers.</p>
<p>This is just some food for thought.</p>
<div id="flaresmith" class="feedflare"><script src="http://feeds.technobabbl.es/~s/voyagerfan5761?i=http://technobabbl.es/2008/03/debug-constants-vs-secret-get/" type="text/javascript" charset="utf-8"></script></div><p>Originally published at <img src="http://voyagerfan5761.googlepages.com/technobabbles_logo_16.png" /> <a href="http://technobabbl.es/?utm_source=feedfooter&utm_medium=link&utm_campaign=feedfooter">Technobabbles</a><br />
Content copyright © 2006-2010 by Voyagerfan5761</p>
]]></content:encoded>
			<wfw:commentRss>http://technobabbl.es/2008/03/debug-constants-vs-secret-get/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming Game Show Idea</title>
		<link>http://technobabbl.es/2007/12/programming-game-show-idea/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://technobabbl.es/2007/12/programming-game-show-idea/#comments</comments>
		<pubDate>Wed, 05 Dec 2007 05:18:00 +0000</pubDate>
		<dc:creator>Voyagerfan5761</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://technobabbles.gtaero.net/2007/12/programming-game-show-idea.html</guid>
		<description><![CDATA[My friend i80and had an interesting game show idea the other day.  He thought of a show where contestants (probably two) are given a whiteboard, a marker, and a programming problem, and the person who designs the simplest and most efficient data structures for that situation wins.  It gave me an idea, too.
What [...]<p>Originally published at <img src="http://voyagerfan5761.googlepages.com/technobabbles_logo_16.png" /> <a href="http://technobabbl.es/?utm_source=feedfooter&utm_medium=link&utm_campaign=feedfooter">Technobabbles</a><br />
Content copyright &copy; 2006-2010 by Voyagerfan5761</p>
]]></description>
			<content:encoded><![CDATA[<p>My friend i80and had an interesting <a href="http://i80andtech.blogspot.com/2007/12/game-show-idea.html" rel="nofollow" >game show idea</a> the other day.  He thought of a show where contestants (probably two) are given a whiteboard, a marker, and a programming problem, and the person who designs the simplest and most efficient data structures for that situation wins.  It gave me an idea, too.</p>
<p>What if the show involved not just data structures, but entire class abstractions?  Or perhaps actually writing code for a specified operation within the given situation?  I think I need to give an example.</p>
<p>Let's say the show begins with the original idea of designing data structures.  Whoever comes up with the simplest and most efficient means to store the necessary data gets points, and the other player gets a smaller number of points based on how much less efficient/more complex their idea is.</p>
<p>Next, the challenge would be to write a class (in PHP, Java, JavaScript, or whatever, depending on the problem) to handle the given task, including all member functions and variables, excluding abstraction layers (which could be referenced in contestants' code just the same, with comments to describe what the call is doing).  Again the results would be analyzed for efficiency, and points awarded.</p>
<p>Finally, the contestants would develop a user interface, if applicable to the problem set forth at the beginning, graded on usability.  Tally up the points, and the player with the most points wins a prize such as a trip to Apache, Google, or somewhere (I'd have to work on the destination list).</p>
<p>It's not fully-baked (neither was i80and's idea, let's be honest), but it would be an interesting idea, and probably much more intellectually stimulating than shows like <span style="font-style: italic;">Fear Factor</span>.  What do you all think?</p>
<p><span style="font-weight: bold;">Update (2008-01-04):</span> In light of all the views I've seen this page get, just let me say that if you steal this idea and get some studio to make it, I expect a cut.  Gotta protect intellectual property rights.  And set aside an equal share for my friend i80and, too; I did get my inspiration from him.</p>
<div id="flaresmith" class="feedflare"><script src="http://feeds.technobabbl.es/~s/voyagerfan5761?i=http://technobabbl.es/2007/12/programming-game-show-idea/" type="text/javascript" charset="utf-8"></script></div><p>Originally published at <img src="http://voyagerfan5761.googlepages.com/technobabbles_logo_16.png" /> <a href="http://technobabbl.es/?utm_source=feedfooter&utm_medium=link&utm_campaign=feedfooter">Technobabbles</a><br />
Content copyright © 2006-2010 by Voyagerfan5761</p>
]]></content:encoded>
			<wfw:commentRss>http://technobabbl.es/2007/12/programming-game-show-idea/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>It’s Good to Have Talents</title>
		<link>http://technobabbl.es/2007/10/its-good-to-have-talents/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://technobabbl.es/2007/10/its-good-to-have-talents/#comments</comments>
		<pubDate>Mon, 08 Oct 2007 03:59:00 +0000</pubDate>
		<dc:creator>Voyagerfan5761</dc:creator>
				<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[My Websites]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SW Robotics]]></category>

		<guid isPermaLink="false">http://technobabbles.gtaero.net/2007/10/its-good-to-have-talents.html</guid>
		<description><![CDATA[I deviate from my usual technobabbling to reflect on some of the things that have happened in the last couple of days.  I designed a website for the Southwest High Robotics Team, the launch of which I announced earlier this month, and now the team captain would like me to be the Media Captain, [...]<p>Originally published at <img src="http://voyagerfan5761.googlepages.com/technobabbles_logo_16.png" /> <a href="http://technobabbl.es/?utm_source=feedfooter&utm_medium=link&utm_campaign=feedfooter">Technobabbles</a><br />
Content copyright &copy; 2006-2010 by Voyagerfan5761</p>
]]></description>
			<content:encoded><![CDATA[<p>I deviate from my usual technobabbling to reflect on some of the things that have happened in the last couple of days.  I designed a website for the Southwest High Robotics Team, the launch of which I announced earlier this month, and now the team captain would like me to be the Media Captain, in addition to my current position of Website Captain.  This would mean that I would not only maintain the site, update the upcoming photo galleries and video pages, and develop new features like our planned wiki, but would also take photos and possibly create posters/edit videos.  My skills in the latter two I'm not so sure of, but I have gotten quite a few positive remarks about my picture-taking abilities.  I don't know how much of it is skill and how much is luck, but I'll take whatever compliments I get.</p>
<p>It would definitely make adding new photo galleries easier, not having to get burned CDs from the current photographer, and actually kind of knowing what's going on so I can organize the albums on my own.  It could mean I'd have to delegate some of the more mundane tasks, like filling in album tables with values, to others (who have offered to help).  I might turn into a regular executive-type who never does anything himself.  OK, so that's a stretch, but I seriously could find some excuses to delegate tedious tasks.  Let's see...  Resizing images, filling in HTML templates, adding links, updating website text...  The list could potentially go on for a while.  Depending on what taking the position would involve, perhaps I will take on the extra challenge, if only to exercise my management and photography skills.</p>
<div id="flaresmith" class="feedflare"><script src="http://feeds.technobabbl.es/~s/voyagerfan5761?i=http://technobabbl.es/2007/10/its-good-to-have-talents/" type="text/javascript" charset="utf-8"></script></div><p>Originally published at <img src="http://voyagerfan5761.googlepages.com/technobabbles_logo_16.png" /> <a href="http://technobabbl.es/?utm_source=feedfooter&utm_medium=link&utm_campaign=feedfooter">Technobabbles</a><br />
Content copyright © 2006-2010 by Voyagerfan5761</p>
]]></content:encoded>
			<wfw:commentRss>http://technobabbl.es/2007/10/its-good-to-have-talents/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Southwest Robotics Website Launched</title>
		<link>http://technobabbl.es/2007/10/southwest-robotics-website-launched/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://technobabbl.es/2007/10/southwest-robotics-website-launched/#comments</comments>
		<pubDate>Wed, 03 Oct 2007 02:47:00 +0000</pubDate>
		<dc:creator>Voyagerfan5761</dc:creator>
				<category><![CDATA[My Websites]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SW Robotics]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[w00t]]></category>

		<guid isPermaLink="false">http://technobabbles.gtaero.net/2007/10/southwest-robotics-website-launched.html</guid>
		<description><![CDATA[After weeks of work, the first version of the Southwest Robotics website has been launched.  Upcoming features include a video page, photo galleries, a members' calendar, and possibly a wiki, but the current site has all the basic info and a template that works pretty well in all the major browsers.  Check it [...]<p>Originally published at <img src="http://voyagerfan5761.googlepages.com/technobabbles_logo_16.png" /> <a href="http://technobabbl.es/?utm_source=feedfooter&utm_medium=link&utm_campaign=feedfooter">Technobabbles</a><br />
Content copyright &copy; 2006-2010 by Voyagerfan5761</p>
]]></description>
			<content:encoded><![CDATA[<p>After weeks of work, the first version of the Southwest Robotics website has been launched.  Upcoming features include a video page, photo galleries, a members' calendar, and possibly a wiki, but the current site has all the basic info and a template that works pretty well in all the major browsers.  Check it out at <a href="http://www.swrobotics.com/" rel="nofollow" >http://www.swrobotics.com/</a>.</p>
<div id="flaresmith" class="feedflare"><script src="http://feeds.technobabbl.es/~s/voyagerfan5761?i=http://technobabbl.es/2007/10/southwest-robotics-website-launched/" type="text/javascript" charset="utf-8"></script></div><p>Originally published at <img src="http://voyagerfan5761.googlepages.com/technobabbles_logo_16.png" /> <a href="http://technobabbl.es/?utm_source=feedfooter&utm_medium=link&utm_campaign=feedfooter">Technobabbles</a><br />
Content copyright © 2006-2010 by Voyagerfan5761</p>
]]></content:encoded>
			<wfw:commentRss>http://technobabbl.es/2007/10/southwest-robotics-website-launched/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MediaWiki Developers are Quick</title>
		<link>http://technobabbl.es/2007/09/mediawiki-developers-are-quick/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://technobabbl.es/2007/09/mediawiki-developers-are-quick/#comments</comments>
		<pubDate>Mon, 24 Sep 2007 14:06:00 +0000</pubDate>
		<dc:creator>Voyagerfan5761</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://technobabbles.gtaero.net/2007/09/mediawiki-developers-are-quick.html</guid>
		<description><![CDATA[I submitted a MediaWiki bug this morning (bug 11438) and it was patched in SVN under 30 minutes later.  That's just, wow.  Of course, I have to either patch my current local installation or download a new SVN version (which might have unknown issues that will be fixed before the next release), but [...]<p>Originally published at <img src="http://voyagerfan5761.googlepages.com/technobabbles_logo_16.png" /> <a href="http://technobabbl.es/?utm_source=feedfooter&utm_medium=link&utm_campaign=feedfooter">Technobabbles</a><br />
Content copyright &copy; 2006-2010 by Voyagerfan5761</p>
]]></description>
			<content:encoded><![CDATA[<p>I submitted a MediaWiki bug this morning (<a href="http://bugzilla.wikimedia.org/show_bug.cgi?id=11438" rel="nofollow" >bug 11438</a>) and it was patched in SVN under 30 minutes later.  That's just, wow.  Of course, I have to either patch my current local installation or download a new SVN version (which might have unknown issues that will be fixed before the next release), but by hook or by crook it'll be fixed in the next release.  Special thanks to Niklas Laxström for the quick fix!</p>
<p>A few details: I was trying out a new extension I installed that generates trees from lists and has expandable/collapsible nodes using JavaScript, and tried using it with the experimental Live Preview function in MediaWiki.  I noticed the tree was getting cut off, so I reported a bug to the extension's developer on the extension's talk page at MediaWiki.org.  After going back and forth for a few days, testing various issues, I finally decided it wasn't his problem, given the test results both of us were getting.  I thanked him for his tests and tried something in my wiki (namely pasting a long article from Wikipedia, and then also trying to preview 50 paragraphs of "Lorem ipsum" text), noting that these were also cut off.  I reported the bug to Bugzilla and it was patched just like that.</p>
<p>Whoops, gotta run; I have a message from Bugzilla that probably has patching instructions...</p>
<div id="flaresmith" class="feedflare"><script src="http://feeds.technobabbl.es/~s/voyagerfan5761?i=http://technobabbl.es/2007/09/mediawiki-developers-are-quick/" type="text/javascript" charset="utf-8"></script></div><p>Originally published at <img src="http://voyagerfan5761.googlepages.com/technobabbles_logo_16.png" /> <a href="http://technobabbl.es/?utm_source=feedfooter&utm_medium=link&utm_campaign=feedfooter">Technobabbles</a><br />
Content copyright © 2006-2010 by Voyagerfan5761</p>
]]></content:encoded>
			<wfw:commentRss>http://technobabbl.es/2007/09/mediawiki-developers-are-quick/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Website Goodies</title>
		<link>http://technobabbl.es/2007/05/new-website-goodies/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://technobabbl.es/2007/05/new-website-goodies/#comments</comments>
		<pubDate>Wed, 30 May 2007 22:27:00 +0000</pubDate>
		<dc:creator>Voyagerfan5761</dc:creator>
				<category><![CDATA[My Websites]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://technobabbles.gtaero.net/2007/05/new-website-goodies.html</guid>
		<description><![CDATA[Over the past week or so, I've added some new goodies to my website.  The message banners now have "close" links, so you can get rid of them manually, and the automatic fade-out has been removed.  The design has been tweaked; the current link in the sidebar now has white borders and a [...]<p>Originally published at <img src="http://voyagerfan5761.googlepages.com/technobabbles_logo_16.png" /> <a href="http://technobabbl.es/?utm_source=feedfooter&utm_medium=link&utm_campaign=feedfooter">Technobabbles</a><br />
Content copyright &copy; 2006-2010 by Voyagerfan5761</p>
]]></description>
			<content:encoded><![CDATA[<p>Over the past week or so, I've added some new goodies to <a href="http://web.augsburg.edu/%7Ewerlm/cada/" rel="nofollow" >my website</a>.  The message banners now have "close" links, so you can get rid of them manually, and the automatic fade-out has been removed.  The design has been tweaked; the current link in the sidebar now has white borders and a black background, and the width is increased slightly so it overlaps the border of the content frame.  This provides a more tab-like interface to the site.</p>
<p>Also added are jQuery tooltips (plugin from <a href="http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/" rel="nofollow" >Bassistance.de</a>).  They display on all major links (like the badges and sidebar links) and the login form.  Finally, I developed a settings page for the previously-hidden features for the badges.  You can now officially select what badges you would like (blue, yellow, or none).  The settings are saved in a cookie on your computer.  I hope to add more settings some time.</p>
<div id="flaresmith" class="feedflare"><script src="http://feeds.technobabbl.es/~s/voyagerfan5761?i=http://technobabbl.es/2007/05/new-website-goodies/" type="text/javascript" charset="utf-8"></script></div><p>Originally published at <img src="http://voyagerfan5761.googlepages.com/technobabbles_logo_16.png" /> <a href="http://technobabbl.es/?utm_source=feedfooter&utm_medium=link&utm_campaign=feedfooter">Technobabbles</a><br />
Content copyright © 2006-2010 by Voyagerfan5761</p>
]]></content:encoded>
			<wfw:commentRss>http://technobabbl.es/2007/05/new-website-goodies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
