<?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>Aren Cambre&#039;s Blog &#187; Technology</title>
	<atom:link href="http://arencambre.com/blog/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://arencambre.com/blog</link>
	<description>Technology, politics, and stuff</description>
	<lastBuildDate>Sat, 13 Mar 2010 05:28:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Just bought a new printer</title>
		<link>http://arencambre.com/blog/2010/02/27/just-bought-a-new-printer/</link>
		<comments>http://arencambre.com/blog/2010/02/27/just-bought-a-new-printer/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 04:22:21 +0000</pubDate>
		<dc:creator>Aren Cambre</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://arencambre.com/blog/?p=1012</guid>
		<description><![CDATA[Exciting headline, eh?
I just bought a new printer. Here&#8217;s the thought process.
I rejected Canon, Epson, and Brother out of hand:

Canon: Saw too many problems with Bubblejet printers back in my tech support days. My current printer, a Canon Pixma MP-970, is junk. Ink&#8217;s too pricey, and Canon rigged it to drink ink in duplex mode. [...]]]></description>
			<content:encoded><![CDATA[<p>Exciting headline, eh?</p>
<p>I just bought a new printer. Here&#8217;s the thought process.</p>
<p>I rejected Canon, Epson, and Brother out of hand:</p>
<ul>
<li><strong>Canon:</strong> Saw too many problems with Bubblejet printers back in my tech support days. My current printer, a Canon Pixma MP-970, is junk. Ink&#8217;s too pricey, and Canon <a href="http://arencambre.com/blog/2008/10/12/canon-pixma-printers-guzzle-ink-in-duplex-mode/">rigged it to drink ink in duplex mode</a>. Driver feel like they were rushed out before usability testing. After just 2 years old, prints shift so that vertical lines aren&#8217;t straight anymore.</li>
<li><strong>Epson:</strong> That company&#8217;s &#8217;80s and &#8217;90s dot matrix printers were horrible. Never found one that fed paper consistently. Quality was so inconsistent that I trusted my 9 pin Panasonic KX-P1191 over any Epson 24-pin.</li>
<li><strong>Brother:</strong> Another hard-to-trust brand after owning a fax machine in the late &#8217;90s with intentionally costly print consumables.</li>
</ul>
<p>OK, I really didn&#8217;t reject totally, but they started out with huge demerits. Consumer Reports didn&#8217;t consistently rate either brand well, so they&#8217;re done.</p>
<p>So I was down to a few HP models and a Lexmark.</p>
<p>An hour of &#8220;analysis by paralysis&#8221; narrowed me to the HP OfficeJet 8500 and the Lexmark Platinum Pro905. Mathematically, either&#8217;s lower print costs were worth the premium over otherwise good HP Photosmart models. The 8500 would pay for itself after only 7 reams of paper.</p>
<p>I finally rejected the Lexmark. It had too many mediocre reviews and customer gripes. Sounds like Lexmark would have been good if not for incompetent R&amp;D and software architects.</p>
<p>So now I have a HP OfficeJet 8500 waiting at some Amazon.com facility for my shipping label. Better yet, HP is paying me $75 for my old Canon! Can&#8217;t wait to get rid of it!</p>
]]></content:encoded>
			<wfw:commentRss>http://arencambre.com/blog/2010/02/27/just-bought-a-new-printer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Lancet, research, future of journals, and global warming</title>
		<link>http://arencambre.com/blog/2010/02/06/the-lancet-research-future-of-journals-and-global-warming/</link>
		<comments>http://arencambre.com/blog/2010/02/06/the-lancet-research-future-of-journals-and-global-warming/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 17:25:43 +0000</pubDate>
		<dc:creator>Aren Cambre</dc:creator>
				<category><![CDATA[Academics]]></category>
		<category><![CDATA[Interesting]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://arencambre.com/blog/?p=995</guid>
		<description><![CDATA[I am listening to a podcast of A Shot of Reality on NPR&#8217;s On The Media&#8217;s Feb. 5, 2010 show.
The host is interviewing Richard Horton, the editor of The Lancet, a British medical journal recently made (in)famous for feeding the vaccine/autism hoax.
The editor says The Lancet must be more careful in the future.
Translation: more of [...]]]></description>
			<content:encoded><![CDATA[<p>I am listening to a podcast of <a href="http://www.onthemedia.org/transcripts/2010/02/05/01">A Shot of Reality</a> on NPR&#8217;s On The Media&#8217;s Feb. 5, 2010 show.</p>
<p>The host is interviewing Richard Horton, the editor of <em>The Lancet</em>, a British medical journal recently made (in)famous for feeding the vaccine/autism hoax.</p>
<p>The editor says <em>The Lancet </em>must be more careful in the future.</p>
<p>Translation: more of <em>The Lancet</em>&#8217;s future articles will support the status quo. This will reduce hoaxes, but it crowds out legitimate alternative theories.</p>
<p>Are academic journals even relevant? Whatever relevancy they have is mainly because the research community is clinging to an outdated model. And let&#8217;s don&#8217;t forget these wickedly expensive journals have their own fiscal incentive to perpetuate themselves.</p>
<p>Research is living and constantly evolving. Why then rely on a content delivery method that can only create frozen, dead documents? Where corrections require new, frozen documents? This is silly.</p>
<p>Some say if we don&#8217;t have journals, we effectively lose the peer review process because respected academics aren&#8217;t the gatekeepers. Hardly. Wikipedia&#8217;s not perfect, but it shows that a completely open model, that even allows anonymous editing, can produce highly reliable information. Services like the Educause-sponsored academia.edu show it shouldn&#8217;t be hard to limit involvement just to the research community&#8211;not to the &#8220;select few&#8221; researchers but the entire community. This increases veracity by at least an order of magnitude.</p>
<p>Richard Horton said that Dr. Andrew Wakefield, the originator of the fraudulent research, was respected politically and academically for years, and his words were taken as &#8220;gospel truth.&#8221;</p>
<p>Doesn&#8217;t this sound familiar? Doesn&#8217;t this sound like James Hansen, Al Gore, IPCC, etc.? All of whom deliver polemic research so political, agenda-driven, and error-full that people are stating to question the scientific basis of global warming?</p>
]]></content:encoded>
			<wfw:commentRss>http://arencambre.com/blog/2010/02/06/the-lancet-research-future-of-journals-and-global-warming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drupal doesn&#8217;t &#8220;get&#8221; enterprise</title>
		<link>http://arencambre.com/blog/2010/01/21/drupal-doesnt-get-enterprise/</link>
		<comments>http://arencambre.com/blog/2010/01/21/drupal-doesnt-get-enterprise/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 04:30:44 +0000</pubDate>
		<dc:creator>Aren Cambre</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://arencambre.com/blog/?p=985</guid>
		<description><![CDATA[If http://www.databasepublish.com/blog/presentation-scaling-drupal-enterprise represents Drupal&#8217;s enterprise thinking, Drupal doesn&#8217;t &#8220;get&#8221; enterprise.
Drupal apparently thinks enterprise is just performance. That misses other important factors where Drupal falls on its face. For example:

It&#8217;s security model is stuck in a departmental model. At my work, we looked into an enterprise Drupal calendar, but we passed because it requires fantastic workarounds [...]]]></description>
			<content:encoded><![CDATA[<p>If <a href="http://www.databasepublish.com/blog/presentation-scaling-drupal-enterprise">http://www.databasepublish.com/blog/presentation-scaling-drupal-enterprise</a> represents Drupal&#8217;s enterprise thinking, Drupal doesn&#8217;t &#8220;get&#8221; enterprise.</p>
<p>Drupal apparently thinks enterprise is just performance. That misses other important factors where Drupal falls on its face. For example:</p>
<ul>
<li>It&#8217;s security model is stuck in a departmental model. At my work, we looked into an enterprise Drupal calendar, but we passed because it requires fantastic workarounds just to <em>roughly approximate </em>enterprise security.</li>
<li>Manageability is improving with the <a href="http://groups.drupal.org/aegir-hosting-system">Aegir hosting system</a>, but this just simplifies base management tasks. Enterprise Drupal is still a collection of discrete, departmental-class web systems, each of which has substantially independent configuration.</li>
</ul>
<p>Drupal has its place in the enterprise for certain departmental solutions. But it&#8217;s a huge stretch to intimate that Drupal is &#8220;enterprise software.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://arencambre.com/blog/2010/01/21/drupal-doesnt-get-enterprise/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Texas GOP&#8217;s new web site on kludge</title>
		<link>http://arencambre.com/blog/2009/11/20/texas-gops-new-web-site-on-kludge/</link>
		<comments>http://arencambre.com/blog/2009/11/20/texas-gops-new-web-site-on-kludge/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 04:07:59 +0000</pubDate>
		<dc:creator>Aren Cambre</dc:creator>
				<category><![CDATA[Politics]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://arencambre.com/blog/?p=938</guid>
		<description><![CDATA[The Texas GOP recently rolled out a new web site at http://www.texasgop.org/.
If you surf it, you&#8217;ll see asp file extensions. For example: http://www.texasgop.org/inner.asp?z=6
That means the Texas GOP&#8217;s runs its brand new site on a kludge CMS!
&#8220;Woah, Aren, isn&#8217;t that severe?&#8221;
No.
ASP&#8217;s most recent version is from 1999.
Microsoft replaced it with ASP.Net 1.0 in January 2002. ASP.Net [...]]]></description>
			<content:encoded><![CDATA[<p>The Texas GOP recently rolled out a new web site at <a href="http://www.texasgop.org/">http://www.texasgop.org/</a>.</p>
<p>If you surf it, you&#8217;ll see asp file extensions. For example: <strong>http://www.texasgop.org/inner.<span style="background-color: #ffff00;">asp</span>?z=6</strong></p>
<p>That means the Texas GOP&#8217;s runs its brand new site on a kludge CMS!</p>
<p>&#8220;Woah, Aren, isn&#8217;t that severe?&#8221;</p>
<p>No.</p>
<p>ASP&#8217;s most recent version is from 1999.</p>
<p>Microsoft replaced it with <a href="http://en.wikipedia.org/wiki/ASP.NET">ASP.Net</a> 1.0 in January 2002. ASP.Net is now on 3.5, and 4.0 is around the corner.</p>
<p>Vendors still delivering classic ASP code in November 2009 have colossally failed to invest or innovate and may be incompetent.</p>
<p>When I review products, those still on ASP start out such a disadvantage that they&#8217;ll probably never make the selection.</p>
<p>What is up with the Texas GOP? How did it get hoodwinked into a kludge CMS?</p>
]]></content:encoded>
			<wfw:commentRss>http://arencambre.com/blog/2009/11/20/texas-gops-new-web-site-on-kludge/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PEAR Text_Diff doesn&#8217;t split words on punctuation</title>
		<link>http://arencambre.com/blog/2009/11/09/pear-text_diff-doesnt-split-words-on-punctuation/</link>
		<comments>http://arencambre.com/blog/2009/11/09/pear-text_diff-doesnt-split-words-on-punctuation/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 04:09:47 +0000</pubDate>
		<dc:creator>Aren Cambre</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://arencambre.com/blog/?p=934</guid>
		<description><![CDATA[The PEAR Text_Diff system&#8217;s inline parser has a silly word splitting algorithm: it only defines word boundaries as spaces or newlines (\n).
This causes problems with punctuation. Suppose you are diffing the following two sentences:
The quick cat jumped over the lazy fox.
The quick cat jumped over the lazy dog.
The final rendered output will look like this:
The [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://pear.php.net/package/Text_Diff">PEAR Text_Diff</a> system&#8217;s inline parser has a silly word splitting algorithm: it only defines word boundaries as spaces or newlines (<strong>\n</strong>).</p>
<p>This causes problems with punctuation. Suppose you are diffing the following two sentences:</p>
<p><strong>The quick cat jumped over the lazy fox.</strong><strong><br />
The quick cat jumped over the lazy dog.</strong></p>
<p>The final rendered output will look like this:</p>
<p><strong>The quick cat jumped over the lazy <span style="color: #ff0000;"><span style="text-decoration: line-through;">fox.</span></span><span style="color: #339966;"><span style="text-decoration: underline;">dog.</span></span></strong></p>
<p>Notice how the period is included in the word boundary? That makes messy markup. This comparison is worse:</p>
<p><strong>The quick cat jumped over the lazy fox, who was totally lazy and should be shot.<br />
</strong><strong>The quick cat jumped over the lazy fox.</strong></p>
<p>Here&#8217;s how PEAR Text_Diff does the diff:</p>
<p><strong>The quick cat jumped over the lazy <span style="color: #ff0000;"><span style="text-decoration: line-through;">fox, who was totally lazy and should be shot.</span></span><span style="color: #339966;"><span style="text-decoration: underline;">fox.</span></span></strong></p>
<p>This final diff is difficult to read. You are not deleting and reinserting <strong>fox</strong>, you are in fact just changing the punctuation on its right. But because the inline diff renderer only considers space and newline as word boundaries, it doesn&#8217;t catch this basic punctuation issue.</p>
<p>The fix took me 1.5 hours of PHP code review to figure out the system, but it&#8217;s painfully easy to do it. Edit <strong>PEAR/Text/Diff/Renderer/inline.php</strong>. At lines 158 and 159 (per the online source code), you&#8217;ll see <strong><code>" \n"</code></strong> at the end. That is a collection of word boundaries, passed as a mask to the <a href="http://us3.php.net/strspn">PHP strspn function</a>. Simply add your word boundaries between the quotes, and the diff engine works correctly.</p>
<p>I&#8217;ve reported this as <a href="https://pear.php.net/bugs/bug.php?id=16774">PHP PEAR bug 16774</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://arencambre.com/blog/2009/11/09/pear-text_diff-doesnt-split-words-on-punctuation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Gallery 3, Windows 2008 R2, and IIS 7</title>
		<link>http://arencambre.com/blog/2009/08/18/gallery-3-windows-2008-r2-and-iis-7/</link>
		<comments>http://arencambre.com/blog/2009/08/18/gallery-3-windows-2008-r2-and-iis-7/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 17:19:55 +0000</pubDate>
		<dc:creator>Aren Cambre</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://arencambre.com/blog/?p=899</guid>
		<description><![CDATA[EDIT: Gallery&#8217;s maintainers decline to fully support Gallery 3 on IIS. See http://gallery.menalto.com/node/90281 for more info.
Yes, you can run Gallery 3 on Windows 2008 and IIS 7. Here&#8217;s how I did it:

Clean install of Windows 2008 R2 x64. NOTE: These days, 32 bit is pretty ridiculous. The instructions below are only guaranteed to work on [...]]]></description>
			<content:encoded><![CDATA[<p><strong>EDIT:</strong> Gallery&#8217;s maintainers decline to fully support Gallery 3 on IIS. See <a href="http://gallery.menalto.com/node/90281">http://gallery.menalto.com/node/90281</a> for more info.</p>
<p>Yes, you <em>can</em> run Gallery 3 on Windows 2008 and IIS 7. Here&#8217;s how I did it:</p>
<ol>
<li>Clean install of Windows 2008 R2 x64. <strong>NOTE</strong>: These days, 32 bit is pretty ridiculous. The instructions below are only guaranteed to work on x64.</li>
<li>Install the <strong>Web Server (IIS)</strong> role. I think this will also force a portion of the <strong>Application Server </strong>role to be installed, too.</li>
<li>Install PHP 5.3. Just go through the default installation steps. I used the latest VC9 x86 Non Thread Safe version from the <a href="http://windows.php.net/download/">Windows binary download page</a>.</li>
<li>Install <a href="http://mysql.com/">MySql</a> Community Edition for Windows x64. I used default options through the process.</li>
<li>Download <a href="http://www.phpmyadmin.net/">phpMyAdmin</a>. Unzip and copy files to <strong>C:\inetpub\wwwroot\phpmyadmin</strong>.</li>
<li>Visit <strong>http://localhost/phpmyadmin</strong>, sign in using your MySql&#8217;s root account, and create a new database for Gallery 3.</li>
<li>Download <a href="http://gallery.menalto.com/">Gallery 3</a>. As of this writing, the latest version is beta 2.</li>
<li>Extract files and place in <strong>C:\inetpub\wwwroot\gallery3</strong>.</li>
<li>If you run Gallery right now, it will squawk about missing some PHP settings that are in its .htaccess file. That file is not read by IIS, so you must implement differently:
<ol>
<li>Create <strong>C:\inetpub\wwwroot\gallery3\.user.ini</strong> (<a href="http://us3.php.net/manual/en/configuration.file.per-user.php">more info on .user.ini</a>) and open with a text editor. (Might need to use Notepad launched as administrator because of the protection Windows gives to files in <strong>C:\inetpub\</strong>.) Yes, you do need the period before <strong>user</strong> in the filename.</li>
<li>Add these lines:<br />
<strong><code>short_open_tag    =    1<br />
magic_quotes_gpc   =   0<br />
magic_quotes_sybase =  0<br />
magic_quotes_runtime = 0<br />
register_globals  =    0<br />
session.auto_start =   0<br />
upload_max_filesize =  20M<br />
post_max_size =      100M<br />
date.timezone = "America/Chicago"</code></strong><br />
Note that the date.timezone is because of an additional problem with Gallery 3&#8217;s underlying <a href="http://www.kohanaphp.com/">Kohana framework</a> and PHP 5.3 (<a href="http://forum.kohanaphp.com/comments.php?DiscussionID=3105&amp;Focus=22801">link</a>).</li>
</ol>
</li>
<li>Create a new directory at <strong>C:\inetpub\wwwroot\gallery3\var</strong>. Edit its permissions and give the <strong>Users </strong>and <strong>IIS_IUSRS </strong>groups <strong>Modify</strong> permissions. <strong>NOTE WELL</strong>: Generally, you should use the <a href="http://en.wikipedia.org/wiki/Principle_of_least_privilege">principle of least privilege</a> and only give enhanced privileges to the smallest number of users possible, which means <em>not </em>the <strong>Users </strong>group. I&#8217;ll revise in the future if I confirm that only <strong>IIS_IUSRS</strong>&#8211;or even a specific account&#8211;is all you need.</li>
<li>Set up mod_rewrite:
<ol>
<li>Download and install the <a href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;g=6&amp;i=1692">URL Rewrite Module x64</a>.</li>
<li>In <strong>Server Manager</strong>, click on <strong>Server Manager &gt; Roles &gt; Web Server (IIS) &gt; Internet Information Services (IIS) Manager</strong>. To the right, find your gallery3&#8217;s directory under your web server under <strong>Sites</strong>. Click on that directory.</li>
<li>Click <strong>URL Rewrite </strong>then <strong>Import Rules&#8230;</strong></li>
<li>Copy the mod_rewrite rules, including the <strong>IfModule </strong>directives, from the end of Gallery3&#8217;s <strong>.htaccess </strong>file and paste into the <strong>Rewrite rules </strong>field of the <strong>Import mod_rewrite rules</strong> screen. Remove the # characters at the beginning of each line; otherwise, they are just code comments.</li>
<li>Delete the line containing <strong>RewriteBase</strong>. It is not supported, and the rules will not import until that is fixed.</li>
<li>Click <strong>Apply</strong> on the right hand side.</li>
</ol>
</li>
<li>Now run Gallery 3 setup at <strong>http://localhost/gallery3</strong>.</li>
</ol>
<p>Viola, you have Gallery 3 on IIS.</p>
<p>This may seem like a lot of steps, but it&#8217;s actually not much different than a setup on Ubuntu. It&#8217;s easier than how it used to be with IIS 6 or PHP 5.2. Kudos to Microsoft and The PHP Group for a dramatically easier setup process.</p>
]]></content:encoded>
			<wfw:commentRss>http://arencambre.com/blog/2009/08/18/gallery-3-windows-2008-r2-and-iis-7/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Consumer Reports&#8217;s liberal hubris</title>
		<link>http://arencambre.com/blog/2009/08/01/consumer-reportss-liberal-hubris/</link>
		<comments>http://arencambre.com/blog/2009/08/01/consumer-reportss-liberal-hubris/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 15:43:40 +0000</pubDate>
		<dc:creator>Aren Cambre</dc:creator>
				<category><![CDATA[Politics]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://arencambre.com/blog/?p=881</guid>
		<description><![CDATA[Consumer Reports shows its liberal hubris in Apple rejection of the Google Voice app slammed by advocates. The mag now faults Apple for not adopting a competitor&#8217;s proprietary technology!
Wow, CR, if business and technology is as easy armchair quarterbacking, why aren&#8217;t you in the business?
]]></description>
			<content:encoded><![CDATA[<p>Consumer Reports shows its liberal hubris in <a href="http://blogs.consumerreports.org/electronics/2009/07/google-voice-iphone-rejection-consumers-union.html">Apple rejection of the Google Voice app slammed by advocates</a>. The mag now faults Apple for not adopting a <em>competitor&#8217;s proprietary technology</em>!</p>
<p>Wow, CR, if business and technology is as easy armchair quarterbacking, why aren&#8217;t you in the business?</p>
]]></content:encoded>
			<wfw:commentRss>http://arencambre.com/blog/2009/08/01/consumer-reportss-liberal-hubris/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mint.com = fail</title>
		<link>http://arencambre.com/blog/2009/06/27/mint-com-fail/</link>
		<comments>http://arencambre.com/blog/2009/06/27/mint-com-fail/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 05:01:52 +0000</pubDate>
		<dc:creator>Aren Cambre</dc:creator>
				<category><![CDATA[Finance]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://arencambre.com/blog/?p=837</guid>
		<description><![CDATA[This blog post was to be about converting to Mint.com. I&#8217;m instead sticking with Microsoft Money.
Mint.com&#8217;s philosophy, and biggest failure, is low effort. They want a low effort user experience, but they have a low effort technical staff: instead of finding simplified ways of doing complex tasks, they just leave them out!
For example, recurring transactions. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-841" title="250px-Mintcom" src="http://arencambre.com/blog/wp-content/uploads/2009/06/250px-Mintcom.png" alt="250px-Mintcom" width="250" height="188" />This blog post was to be about converting to Mint.com. I&#8217;m instead sticking with Microsoft Money.</p>
<p>Mint.com&#8217;s philosophy, and biggest failure, is low effort. They want a low effort user experience, but they have a low effort technical staff: instead of finding simplified ways of doing complex tasks, they just leave them out!</p>
<p>For example, recurring transactions. Microsoft Money has a &#8220;bills&#8221; feature that tracks and auto-enters my recurring transactions&#8211;paychecks, investments, mortgage payment, church donation, utility bills, etc.</p>
<p>Sure, this is &#8220;complicated&#8221; because I must manually schedule these transactions. But it <em>removes </em>complexity because they are pre-entered before my monthly bill-paying session.</p>
<p>Mint.com doesn&#8217;t have a <em>hint</em> of this. It even lacks logic to <em>suggest </em>recurring transactions&#8211;that could have allowed them to simplify an otherwise complex feature.</p>
<p>Another is manual transactions. Mint.com is reactive: it only has what it downloads from financial service providers. <strong>You can&#8217;t enter transactions.</strong></p>
<p>This works fine for my credit cards because I am never near my limits. But it&#8217;s a disaster for my checking account. I have no record of a check until it&#8217;s deposited!</p>
<p>How do you track outstanding checks, including ones that have sat undeposited for months or weeks? How do you know your true available balance? Currently, it must be some other log that you must constantly monitor and update. No way, that&#8217;s terribly error-prone!</p>
<p>Thanks to Microsoft Money, I have minimal checking account padding <em>and </em>don&#8217;t bounce checks!</p>
<p>Mint.com, on the other hand, requires a gigantic cash pad, loins girded for overdraft fees, or tricky accounting using other programs.</p>
<p>Mint.com is a fail. Its slick user interface redeems it from epic fail. But behind the user interface is a painfully simplistic system. I can appreciate the complexity of the infrastructure needed to support this system, but I cringe at how little it really does for its users.</p>
<p>Above, I wrote I am using Microsoft Money &#8220;for now.&#8221; I don&#8217;t know where I&#8217;m going. Quicken suffers from a kludgy user interface and Intuit&#8217;s anti-consumer business practices. Plus it <a href="http://quicken.custhelp.com/cgi-bin/quicken.cfg/php/enduser/std_adp.php?p_faqid=5521">can&#8217;t convert</a> my Money data yet.</p>
<p>Rumor has it that Quicken 2010 will have better Microsoft Money import capabilities. I&#8217;m still with Microsoft Money for a few more months.</p>
]]></content:encoded>
			<wfw:commentRss>http://arencambre.com/blog/2009/06/27/mint-com-fail/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>I called it: Microsoft Money IS dead</title>
		<link>http://arencambre.com/blog/2009/06/12/i-called-it-microsoft-money-is-dead/</link>
		<comments>http://arencambre.com/blog/2009/06/12/i-called-it-microsoft-money-is-dead/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 14:41:34 +0000</pubDate>
		<dc:creator>Aren Cambre</dc:creator>
				<category><![CDATA[Finance]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://arencambre.com/blog/?p=822</guid>
		<description><![CDATA[I predicted this last August, and it came true: Microsoft ditched Microsoft Money, effective the end of this month.
Time to find a new product. Argh.
]]></description>
			<content:encoded><![CDATA[<p>I <a href="http://arencambre.com/blog/2008/08/10/prediction-microsoft-money-is-dead/">predicted</a> this last August, and it came true: Microsoft <a href="http://www.microsoft.com/MONEY/default.mspx">ditched</a> Microsoft Money, effective the end of this month.</p>
<p>Time to find a new product. Argh.</p>
]]></content:encoded>
			<wfw:commentRss>http://arencambre.com/blog/2009/06/12/i-called-it-microsoft-money-is-dead/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>How I got field diffs working with Drupal, PEAR Text_Diff, and Dreamhost</title>
		<link>http://arencambre.com/blog/2009/05/17/how-i-got-field-diffs-working-with-drupal-pear-text_diff-and-dreamhost/</link>
		<comments>http://arencambre.com/blog/2009/05/17/how-i-got-field-diffs-working-with-drupal-pear-text_diff-and-dreamhost/#comments</comments>
		<pubDate>Mon, 18 May 2009 04:30:36 +0000</pubDate>
		<dc:creator>Aren Cambre</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://arencambre.com/blog/?p=817</guid>
		<description><![CDATA[I have a Drupal site where I will propose major changes to a policy document. The site has nodes with current and proposed versions of document sections.
I want auto-generated diffs to make the proposed changes obvious. The diff needs to look like legislation, where deletions are struck through and additions are underlined.
Here&#8217;s all the steps [...]]]></description>
			<content:encoded><![CDATA[<p>I have a Drupal site where I will propose major changes to a policy document. The site has nodes with current and proposed versions of document sections.</p>
<p>I want auto-generated diffs to make the proposed changes obvious. The diff needs to look like legislation, where <span style="text-decoration: line-through;">deletions are struck through</span> and <span style="text-decoration: underline;">additions are underlined</span>.</p>
<p>Here&#8217;s all the steps to make this work. This assumes you already have a working Drupal install.</p>
<h3>1. Drupal Computed Field module</h3>
<p>The <a href="http://drupal.org/project/computed_field">Computed Field module</a> is a great concept: it executes PHP code to populate a new field with calculations based on other fields or any other data accessible to the PHP engine. Since the module can execute <em>any</em> PHP script, you can actually do anything available to the PHP system or Drupal API upon node save. It doesn&#8217;t have to save values to a field.</p>
<p>Computed Field for Drupal 6 has rough edges, however. It has been stuck on beta 1 for <em>7 months</em>, and its MySql&#8217;s longtext field type is <a href="http://drupal.org/node/367281">broken</a> (I found a workaround).</p>
<p>How to configure the module:</p>
<ul>
<li>Create a new Computed Field type in your node with <strong>Store using the database settings below</strong> set to <strong>varchar</strong> with a large enough <strong>Data Length</strong> to prevent data overflow errors. (This is the workaround to the broken longtext field.)</li>
<li>Put this code in the <strong>Computed Code</strong> field:<br />
<strong style="font-family: consolas, courier new, courier">$path = &#8216;/<span style="color: #0000ff;"><em>pathToPear&#8217;sParentDirectory</em></span>/pear/PEAR&#8217;;<br />
set_include_path(get_include_path() . PATH_SEPARATOR . $path);</strong></p>
<p><strong style="font-family: consolas, courier new, courier">require_once &#8216;PEAR.php&#8217;;<br />
include_once &#8220;Text/Diff.php&#8221;;<br />
include_once &#8220;Text/Diff/Renderer.php&#8221;;<br />
include_once &#8220;Text/Diff/Renderer/inline.php&#8221;;</strong><strong style="font-family: consolas, courier new, courier"></strong></p>
<p><strong style="font-family: consolas, courier new, courier">$diff = &amp;new Text_Diff(&#8216;auto&#8217;, array(array($node-&gt;field_<span style="color: #0000ff;"><em>nameOfOneFieldToCompare</em></span>[0]['value']), array($node-&gt;field_<span style="color: #0000ff;">nameOfOtherFieldToCompare</span>[0]['value'])));<br />
$renderer = &amp;new Text_Diff_Renderer_inline();</strong></p>
<p><strong style="font-family: consolas, courier new, courier">$node_field[0]['value'] = $renderer-&gt;render($diff);</strong></li>
</ul>
<p>TechRepublic confused me: they got the <a href="http://pear.php.net/package/Text_Diff/docs/latest/Text_Diff/Text_Diff.html#methodText_Diff">Text_Diff constructor signature</a> wrong in <a href="http://articles.techrepublic.com.com/5100-10878_11-6174867.html">Compare file contents and render the output with PHP and PEAR</a>. You don&#8217;t pass two files, you pass a string and an array. I credit them, however, for pointing me to the inline renderer.</p>
<h3>2. Install your own <a href="http://en.wikipedia.org/wiki/PHP_Extension_and_Application_Repository">PEAR</a></h3>
<p>Dreamhost&#8217;s main PEAR install is out of date. It cannot install up to date  PEAR components such as <a href="http://pear.php.net/package/Text_Diff/">Text_Diff</a> 1.1.0.</p>
<p>Solution: install your own PEAR.</p>
<p>I used <a href="http://pear.php.net/go-pear">http://pear.php.net/go-pear</a>. Save that page as <strong>go-pear.php </strong>in a <strong>pear</strong> directory off your account&#8217;s home directory (if you&#8217;re not sure, get to it with <strong>cd ~</strong> from the command line). Run it from the command line using <strong>php -q go-pear.php</strong>.</p>
<p>I accepted all defaults.</p>
<p>It will instruct you to fix your php.ini. You may not need to do anything; see the optional section below.</p>
<h3>3. Install Text_Diff</h3>
<p>As simple as <strong>pear install pear/Text_Diff</strong>. You may need to prefix the <strong>pear </strong>executable with the path to your new install so you don&#8217;t run Dreamhost&#8217;s old install.</p>
<h3>OPTIONAL: Override Dreamhost&#8217;s PHP configuration</h3>
<p>Dreamhost runs PHP in CGI mode. That gives security and usability improvements, but it disallows local php.ini files or the <strong>php_value include_path &#8220;</strong><strong><em>path statement goes here</em>&#8220;</strong> in the .htaccess file.</p>
<p>To change values in the php.ini, you must either use PHP&#8217;s <strong><a href="http://us2.php.net/set_include_path">set_include_path</a></strong> or <a href="http://wiki.dreamhost.com/PHP.ini">override Dreamhost&#8217;s master php.ini</a>.</p>
<p>I chose <strong>set_include_path.</strong> I probably won&#8217;t have many PEAR-dependent computed fields, so this is easy to maintain.</p>
<p>However, if you will use PEAR a lot, you may want to override the php.ini. Use the <a href="http://wiki.dreamhost.com/PHP.ini#Custom_php.ini_across_Multiple_domains"><strong>Custom php.ini across Multiple domains</strong></a> section as it is the most flexible solution.</p>
<p>A pitfall with overriding the php.ini is you won&#8217;t get php.ini changes made by Dreamhost. I just checekd, and the last update was only 5 days ago. While I can manage my own php.ini, I use a hosting provider because I&#8217;d rather let someone else handle infrastructure and operations.</p>
<h3>The result</h3>
<p><strong>Field A: </strong>The quick brown fox jumped over the lazy dog.</p>
<p><strong>Field B: </strong>The red fox is awesome.</p>
<p><strong>Difference (auto generated): </strong>The <span style="text-decoration: line-through;">quick brown</span><span style="text-decoration: underline;">red</span> fox <span style="text-decoration: line-through;">jumped over the lazy dog</span><span style="text-decoration: underline;">is awesome</span>.</p>
]]></content:encoded>
			<wfw:commentRss>http://arencambre.com/blog/2009/05/17/how-i-got-field-diffs-working-with-drupal-pear-text_diff-and-dreamhost/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
