<?xml version="1.0" encoding="utf-8"?>

			<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://web.resource.org/cc/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">

			<channel>
			<title>Rob&apos;s Ramblings</title>
			<link>http://barthle.com/blog/index.cfm</link>
			<description>ColdFusion, life, and everything in between</description>
			<language>en-us</language>
			<pubDate>Fri, 18 May 2012 22:45:52 -0500</pubDate>
			<lastBuildDate>Fri, 06 Jan 2012 23:55:00 -0500</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>rob@barthle.com</managingEditor>
			<webMaster>rob@barthle.com</webMaster>
			<itunes:subtitle></itunes:subtitle>
			<itunes:summary></itunes:summary>
			<itunes:category text="Technology" />
			<itunes:category text="Technology">
				<itunes:category text="Podcasting" />
			</itunes:category>
			<itunes:category text="Technology">
				<itunes:category text="Tech News" />
			</itunes:category>
			<itunes:keywords></itunes:keywords>
			<itunes:author></itunes:author>
			<itunes:owner>
				<itunes:email>rob@barthle.com</itunes:email>
				<itunes:name></itunes:name>
			</itunes:owner>
			
			<itunes:explicit>no</itunes:explicit>
			
			<item>
				<title>What I Learned Today - CFEXECUTE is not Unix-friendly</title>
				<link>http://barthle.com/blog/index.cfm/2012/1/6/What-I-Learned-Today--CFEXECUTE-is-not-Unixfriendly</link>
				<description>
				
				&lt;em&gt;Update: Based on a conversation with &lt;a href=&quot;http://blog.kukiel.net/&quot; target=&quot;_blank&quot;&gt;Paul Kukiel&lt;/a&gt;, this issue does not seem to exist in Ubuntu Linux. Definitely confirmed in Solaris, unsure about other Unix flavors.&lt;/em&gt;

For the first time ever, I needed to use the oft-maligned CFEXECUTE tag on a project. I was developing an intranet application to track the health of about 30 Unix-based servers in real time, using a variety of metrics. The application also resides on a Unix server. 

One of the metrics was to ping the servers to make sure they are up. That required the usage of CFEXECUTE to run a shell script I had written to do the task. 

The first issue I found was that on Unix-based systems (OS X and Unix), the tag was not returning the ping results to me, even though I was using the variable attribute. The variable was empty. After hours of trying, I ended up writing the contents of the ping to a file to read. That led me to my second issue.

My first choice was to write to the virtual filesystem. The thought was that since I would be doing 30 pings every five minutes it would be best to not have to make all those writes to the disk. The problem that brought about was that if the ping took too long to finish, CFEXECUTE wasn&apos;t waiting around for the script to finish before moving on. If the server was down it could take up to 20 seconds for the ping failure to come back. Forcing the application to wait that long every time around wasn&apos;t the answer, so I had to step back and look at the solution again.

While focusing on other aspects of the application, I ran across the third and largest issue with CFEXECUTE - it&apos;s a resource killer of alarming degree on Unix. CFEXECUTE uses the fork() method to run processes. I have found the following warning (in various forms) on multiple blogs and message boards regarding this.

&quot;Because of the way the fork() method was implemented on unix systems (which is what cfexecute calls under the hood to run the external process) it duplicates the amount of memory of the calling process to run the external process, which is crazy. So, for example, if your JRun process is currently taking up 1 GB of RAM (a pretty common JVM size), then cfexecute will run the external process using 1 GB of RAM, which will very quickly throw an Out of Memory exception.&quot;

I ran into this problem on our QA server, which only has 384MB of swap space free and only 4GB on onboard memory. Our JVM is set for 1GB minimum so there was no way CFEXECUTE would find the space needed to make the duplicate environment.

Once I learned about this, I quickly decided to pull CFEXECUTE altogether. Instead I have a cron job that runs once a minute and outputs the ping results for each server to a separate file on the hard disk, overwriting existing files to limit space usage. The application will read these files in, and they&apos;re real-time enough in that 3-4 updates will have been made to the ping statuses by the time the next background polling is done by the application to read in the files.

I now completely understand why so many hosting services disable this tag. In addition to the security risks inherent to it, the toll it can take on your server (unless it&apos;s loaded up big time in memory) just is not worth it when there are other options to solving the problem. 
				</description>
				
				<category>Web Development</category>
				
				<category>What I Learned Today</category>
				
				<category>Unix</category>
				
				<category>ColdFusion</category>
				
				<pubDate>Fri, 06 Jan 2012 23:55:00 -0500</pubDate>
				<guid>http://barthle.com/blog/index.cfm/2012/1/6/What-I-Learned-Today--CFEXECUTE-is-not-Unixfriendly</guid>
				
				
			</item>
			
			<item>
				<title>My Review of the iPhone 4S</title>
				<link>http://barthle.com/blog/index.cfm/2011/11/21/My-Review-of-the-iPhone-4S</link>
				<description>
				
				I have had my iPhone 4S (on AT&amp;T) for almost three weeks now. I upgraded from an iPhone 4. I wanted to write something about my experiences with it, since there seems to be a lot of conflicting opinions on if it&apos;s a worthy upgrade.

In my opinion: It&apos;s worth every penny.

I was able to get the discounted upgrade pricing from AT&amp;T for this one. I have to admit being surprised by that, but I wasn&apos;t going to look a gift horse in the mouth. I&apos;ve kept my iPhone 4 and converted it to an iPod Touch that my children can use from time to time (heavily locked down, hand-picked apps only, no Safari, Youtube, etc., and put in it&apos;s Otterbox Defender case to resist their best attempts to &quot;toddler&quot; it), but otherwise according to Gazelle I could have been looking at upgrading for almost no cost at all.

So, here are the features that have made me glad I upgraded.

&lt;b&gt;Siri&lt;/b&gt;

This was the single biggest reason I wanted to upgrade, and it has not disappointed in the least. I&apos;ve tried apps like Vlingo on my old iPhone, and I&apos;ve tried out Android&apos;s voice control. For me personally, none of them have been close to the good experience that Siri has been for me. It literally has changed the way I use my phone. For starters, as a father of 3 kids ages 4 and under - and soon to be 4 kids - my forgetfulness has ramped up to new levels over the past few years. As you can imagine, when something pops in your head, or when the wife asks me to remember to do something later, trying to keep track of those thoughts while splitting my attention three ways leads to a low success rate of remembering it. And it&apos;s not like there&apos;s tons of time to stop, open up the phone, and type in the reminder/appointment/text/email/etc., especially with the youngest one just learning to walk and therefore a head injury waiting to happen in left unsupervised for long.

Enter Siri. Now all I have to do is speak in my words, confirm they were captured correctly, and it&apos;s done. Siri&apos;s voice recognition has been far better than Vlingo or Android&apos;s were for me as well. Not 100%, but probably around 90%. And it learns as it goes along. At first it constantly confused &quot;Ryan&quot; as being &quot;Brian&quot;, but after a few times correcting it, it now assumes Ryan as the default.

One thing I use a lot is the iOS5 Reminders app for adding to the shopping lists. Taking a cue from a blog post I read, I created lists for Target and Kroger (groceries) and so when I see that we need something I just add to those lists instead of trying to remember what it was we needed when the time for the trip to the store actually happens.

I love the voice integration with the iOS keyboard as well, voice control doesn&apos;t get done just from the Siri app itself. hat makes it nearly universal in any application requiring input.

There are places I&apos;d like to see Siri tied into, mainly other apps I use in place of the native apps. Having directions be opened in my Motion-X GPS app instead of in Maps would be the most notable. I&apos;m hoping that will become a reality in the not too distant future.

Bottom line: This was the game changer that made the phone worth having.

&lt;b&gt;Performance&lt;/b&gt;

There is a definite speed increase in the 4S from the 4. And the 4 wasn&apos;t too shabby to begin with. It;s one of those things that you don&apos;t buy the phone for, but you notice it when it&apos;s there.

&lt;b&gt;Camera&lt;/b&gt;

Ever since they increased the shutter speed of the camera on the iPhone back in iOS4, I stopped using any other camera for stills, and most videos as well. iOS5 adding the ability to access the camera from the lock screen as well as using the volume button for a shutter made it better. the new 8MP camera on the iPhone hsa made it even better. Life moves by fast in this household, and the ability to snap off a bunch of shots fast to make sure I get one good one to use as a  keepsake has been a Godsend for me. It was good in the iPhone 4, it&apos;s better in the iPhone 4S.

&lt;b&gt;Call quality&lt;/b&gt;

Living outside of the major metro areas, I don&apos;t suffer from the issues others report with AT&amp;T. Over the last year they have added some towers around here that have pretty much killed all the dead spots around here, with only a couple of exceptions. But I&apos;ve not experienced any dropped calls that I can recall with this phone so far. I didn&apos;t have many before so it can definitely be attributed to small sample size. At a minimum I can say things aren&apos;t any different than they were before.

&lt;b&gt;A note about battery life&lt;/b&gt;

Much has been made about the battery, and at first I saw it as well. But even before iOS 5.0.1 came out, I found that by doing a couple of things I was able to make my battery life a lot better. First off, I went into Location Services and disabled Time Zone support. Since I have spent 99.6% of my 39 years of life in the Eastern Time Zone, I don&apos;t see the need to have my phone checking to see if it&apos;s somewhere else. Also, I let the battery completely drain out, like down to shutting itself down. I recharged it fully, and from that point forward saw improvements. Then iOS 5.0.1 came out and - unscientifically - it seems even better.

Here is what I have seen about the battery life now. What I think was fixed by iOS 5.0.1 was that it dramatically improved the standby life of the phone. When not in use, my phone sips energy just like my previous iPhones did. When it&apos;s in use, the battery does drain faster - but I can understand it because with the increased CPU specs that&apos;s going to eat a battery faster by it&apos;s nature. I can accept that just fine.

So the bottom line is if I use it a lot, I may have to recharge after a day and a half. Under lighter usage, I have been able to go as long as 3 days between charges. I still drain it down to the bottom when I can. If I know I&apos;m going to be out of range of a charger for a while, I&apos;ll make sure there&apos;s enough juice to not have to think about it. But I don&apos;t fret about being tied to a charger with this phone, like others are saying they have been.

So there it is. I love this phone. I am definitely happy I upgraded. 
				</description>
				
				<category>iPhone</category>
				
				<pubDate>Mon, 21 Nov 2011 16:56:00 -0500</pubDate>
				<guid>http://barthle.com/blog/index.cfm/2011/11/21/My-Review-of-the-iPhone-4S</guid>
				
				
			</item>
			
			<item>
				<title>CF Admin Not Showing Settings?</title>
				<link>http://barthle.com/blog/index.cfm/2011/11/15/CF-Admin-Not-Showing-Settings</link>
				<description>
				
				I&apos;m running into an odd issue with CF9 admin. I just updated my local development CF9 to the latest hotfix version using David Epler&apos;s great &lt;a href=&quot;http://uu2.riaforge.org/&quot; target=&quot;_blank&quot;&gt;Unofficial Updater 2 Ant script&lt;/a&gt;, and I wanted to verify the changes had been made. When I logged into CF9 admin, and clicked the System Information icon, the page just kept hanging at the request phase. 

Other pages in the CF admin work fine, and testing my sites CF is running fine.

Any thoughts on this?

UPDATE: I now can no longer access the Settings Summary page either. 
				</description>
				
				<category>ColdFusion</category>
				
				<pubDate>Tue, 15 Nov 2011 13:06:00 -0500</pubDate>
				<guid>http://barthle.com/blog/index.cfm/2011/11/15/CF-Admin-Not-Showing-Settings</guid>
				
				
			</item>
			
			<item>
				<title>Question on Managing 404 errors</title>
				<link>http://barthle.com/blog/index.cfm/2011/7/28/Question-on-Managing-404-errors</link>
				<description>
				
				I have a bit of an issue I was wondering if someone had an answer for.

I have a requirement to develop a custom 404 error handler to trap and handle 404 errors for CFM and CFC templates. That part is simple.

It also needs to still log the 404 error in the web server logs (Websphere/Apache) like it did before, for reporting purposes. That part is the sticking point.

First off, I found that setting a 404 error handler inside the CF admin will do one of two things, all based on what the error handler file does. In the first test case, the error handler logs the error in the CF logs, and then uses CFINCLUDE to display a styled error page. Because CF has now handled the file request with a fully working and existing template, it no longer tells the web server to log it as a 404 error. The web server now treats this as a 200 OK response. 

Test case #2 is an error handler that logs the error, then uses CFLOCATION to send them to a safe place. Apache logs that as a 302 code for the redirect. It is interesting that CF can differentiate this, but there still is no way to alter this that I can determine.

I then took to setting up Apache&apos;s 404 error handling. I was able to get it to point to my CF 404 error handler template, which at first I thought would solve all the problems for non CFM/CFC templates. But then I found two major flaws in that. 

Firstly all the Apache 404 error handler does is redirect the request to the error handler, again identifying it as a 302 status code instead of a 404. 

The second issue is that it redirects the request so that CF has no way to get to the information regarding the file that was not found. When triggered through the CF admin 404 error handler, the error template has access to the CGI scope for the request to the missing file, which is how we properly log the request. Apache just does a redirect, leaving behind no CGI scope information that identifies the missing template. There is no HTTP_REFERER value, and the rest of the CGI scope refers to the error template itself, making it useless for us to use for logging.

And the Apache 404 error handler did NOT handle CFM or CFC files either. That surprised me.

So, I&apos;m looking for any other options here to get it logged in the access_log file as a 404 while still handling and dealing with the error.

Thoughts? 
				</description>
				
				<category>Web Development</category>
				
				<category>Apache</category>
				
				<category>ColdFusion</category>
				
				<pubDate>Thu, 28 Jul 2011 16:59:00 -0500</pubDate>
				<guid>http://barthle.com/blog/index.cfm/2011/7/28/Question-on-Managing-404-errors</guid>
				
				
			</item>
			
			<item>
				<title>CF9 on OS X Lion anyone? (update: it works)</title>
				<link>http://barthle.com/blog/index.cfm/2011/7/20/CF9-on-OS-X-Lion-anyone</link>
				<description>
				
				I use my Macbook Pro daily as my primary development computer, and before I pull the trigger on upgrading to 10.7 Lion I need to know how CF9 will perform because I cannot afford any downtime. I cannot find anything on this on the net so far, it looks like nobody tested it out officially.

If anyone has upgraded to 10.7, can you please let me know what issues you had with ColdFusion 9 running on it?

My first concern was the lack of Java in Lion. Even with the capability to download &lt;a href=&quot;http://support.apple.com/kb/DL1421&quot; taget=&quot;_blank&quot;&gt;Java for Lion&lt;/a&gt; I&apos;m concerned that there will be problems. 

If I wasn&apos;t using CF9 daily for my work, I&apos;d be glad to be a guinea pig. But I don&apos;t have that luxury so I need others to be instead. :-)

&lt;em&gt;Update: I installed Lion, and after installing Java for Lion have had no issues with CF9, MAMP Pro, or my MySQL and MSSQL databases. Only thing that happened to me was the internal IP address of my VMware Win7 instance changed, so I had to update the MSSQL  datasources to use the new address.&lt;/em&gt; 
				</description>
				
				<category>OS X</category>
				
				<category>ColdFusion</category>
				
				<pubDate>Wed, 20 Jul 2011 17:49:00 -0500</pubDate>
				<guid>http://barthle.com/blog/index.cfm/2011/7/20/CF9-on-OS-X-Lion-anyone</guid>
				
				
			</item>
			
			<item>
				<title>What I Learned Today - createObject() has one big downside</title>
				<link>http://barthle.com/blog/index.cfm/2011/6/30/What-I-Learned-Today--createObject-has-one-big-downside</link>
				<description>
				
				Recently I talked about conforming to using init() methods in my components. I had planned to use createObject().init() to make the call in one nice quick line.

There&apos;s just one problem, createObject() won&apos;t work for me in my preferred site structuring.

I like to house all my application-level and session-level variables in separate include files in an includes/ directory beneath the web root. In Application.cfc, I call to those files in onApplicationStart() and onSessionStart(). It&apos;s a nice way for me to compartmentalize code and keep Application.cfc from getting too messy. I&apos;ve done this for years now in dozens of sites.

I keep all my components in a components directory on the same level as the includes directory. I initialize the components in the application scope because they change so little (only when a code release is done) that it makes sense to keep them there to limit overhead by only creating the object one time. 

Until recently I would use CFOBJECT to create the component variable. I would call it like this:

&lt;code&gt;
&lt;cfobject name=&quot;application.mySite.cfc.myComponent&quot; component=&quot;components.myComponent&quot; /&gt;
&lt;/code&gt;

Never a problem. I try to change it to:

&lt;code&gt;
&lt;cfset application.mySite.cfc.myComponent = createObject(&quot;component&quot;,&quot;components.myComponent&quot;).init() /&gt;
&lt;/code&gt;

and it blows up with the error &lt;em&gt;&quot;Could not find the ColdFusion component or interface components.myComponent&quot;&lt;/em&gt;. 

For an hour I could not figure out why until digging enough showed me one huge difference between createObject() and CFOBJECT. While CFOBJECT is smart enough to know that the dot notation of the directory structure begins at the site root, createObject() only looks from the location of the template the call resides in. In this case it&apos;s the includes directory. 

For kicks I added the createObject() call directly into the onApplicationStart() function in Application.cfc. It worked fine, confirming my lesson of the night that it has no capability to traverse up a directory structure, only down.

So it looks like I&apos;ll be sticking with CFOBJECT after all, at least until Adobe decides to give createObject() a little more flexibility. What stinks is that I&apos;ll have to make separate calls to the init() functions to get them run. Kinda defeats the purpose of them a little bit I think. 
				</description>
				
				<category>What I Learned Today</category>
				
				<category>ColdFusion</category>
				
				<pubDate>Thu, 30 Jun 2011 02:02:00 -0500</pubDate>
				<guid>http://barthle.com/blog/index.cfm/2011/6/30/What-I-Learned-Today--createObject-has-one-big-downside</guid>
				
				
			</item>
			
			<item>
				<title>My embracing of the init() function</title>
				<link>http://barthle.com/blog/index.cfm/2011/6/15/My-embracing-of-the-init-function</link>
				<description>
				
				This entry comes from the &quot;better late than never&quot; department.

For years I have been coding with ColdFusion components. And for years I have resisted the calls to use an init() function, mainly because none of my components to date had ever been initializing anything. I would either pass in arguments to functions as needed, or I would use the application scope for things like datasources or file directories. It was one of those &quot;What good is it?&quot; type of deals.

Well, for the first time I am working on a project that I might decide to release out to the public if it goes as I hope. It&apos;s an error-handling project, based on methods I have been using for over six years now. So my thoughts have turned to how to make this portable, not just to my sites where I have a very consistent approach to coding but to others who probably code completely differently from me. I wanted to keep databases out of this project (what good is an error handler storing errors in a database if the database is the problem, and also as another way to make it portable) so I am using an XML file for configuration information. Where best to read this in? An init() function! Now I have my first need of it and am using it. 

In the course of my research on best practices for using it, I ran across the &lt;a href=&quot;http://www.objectorientedcoldfusion.org/wiki/The_Init%28%29_Function&quot; target=&quot;_blank&quot;&gt;Object Oriented ColdFusion site&lt;/a&gt; and their writeup on using init() had this in it:

&lt;em&gt;&quot;When you first create a new component the init() function may have no apparent need, but as your application grows you may find that your component changes and you need to initialise your objects into a particular state.&quot;&lt;/em&gt;

That struck a chord in me, and so from this point forward I am embracing the standards of using an init() function in every component I write, even if at the time it does nothing. I may be slow to change, but I&apos;m not completely stubborn. Some of the time, at least. 
				</description>
				
				<category>Web Development</category>
				
				<category>ColdFusion</category>
				
				<pubDate>Wed, 15 Jun 2011 14:42:00 -0500</pubDate>
				<guid>http://barthle.com/blog/index.cfm/2011/6/15/My-embracing-of-the-init-function</guid>
				
				
			</item>
			
			<item>
				<title>Getting Organized Digitally</title>
				<link>http://barthle.com/blog/index.cfm/2011/6/7/Getting-Organized-Digitally</link>
				<description>
				
				One of the things I&apos;m not the best at is staying organized. For things like bills, receipts, and documents my approach is more or less hoarding. This has gotten to be a problem now when I have 10+ years of old paper bills filling up multiple storage boxes and taking up half my office here. While I&apos;ve given in some on the keeping of old bills (apparently nobody I know keeps more than a year or two of bills), I am also going to stop storing them in paper form. Today, the new era of my organizing these things digitally begins!

It starts with managing bills. I get most of my bills through the mail because paperless is not an option. For those, I am making scanning them a part of my bill paying routine, which I do online through Bank of America. Either with my desktop scanner, or on my iPhone through JotNot Pro. I&apos;ll combine them all into one monthly PDF, then encrypt and save them in a central location that is backed up both locally (Time Machine) and to the cloud (CrashPlan). I have a few places that I get e-bills and I&apos;ll save PDF copies to combine with my scanned ones. I&apos;ll still keep a paper copy of the bills but only until the end of the calendar year. Then, instead of just packing the paper bills together and into a container, I&apos;ll shred or burn them.

Repeat the process with things like important receipts, warranties, service invoices, and business cards. Tax Returns will be trickier to manage now that I&apos;m getting away from Turbo Tax (taxes becoming a little too complex to do myself), but I&apos;ll figure that out as I go.

The end result should be the reclamation of about a dozen storage boxes and 100 square feet of space, all of which can be put to better use than they are now. 
				</description>
				
				<category>Family</category>
				
				<category>Digital Organization</category>
				
				<pubDate>Tue, 07 Jun 2011 14:25:00 -0500</pubDate>
				<guid>http://barthle.com/blog/index.cfm/2011/6/7/Getting-Organized-Digitally</guid>
				
				
			</item>
			
			<item>
				<title>Charting Software Recommendations Needed</title>
				<link>http://barthle.com/blog/index.cfm/2011/6/6/Charting-Software-Recommendations-Needed</link>
				<description>
				
				A project I am working on makes extensive use of CFCHART. We have run into quite a few usage and performance issues with CFCHART, so I have been tasked to look at some third-party solutions to try out and recommend. 

Anybody have some reviews and recommendations they&apos;d care to share? 
				</description>
				
				<category>ColdFusion</category>
				
				<pubDate>Mon, 06 Jun 2011 18:25:00 -0500</pubDate>
				<guid>http://barthle.com/blog/index.cfm/2011/6/6/Charting-Software-Recommendations-Needed</guid>
				
				
			</item>
			
			<item>
				<title>What I Learned Today - Tesing IE7 - IE9 in one place</title>
				<link>http://barthle.com/blog/index.cfm/2011/6/2/What-I-Learned-Today--Tesing-IE7--IE9-in-one-place</link>
				<description>
				
				This probably isn&apos;t news to many of you, but I am one of those that actively avoids Internet Explorer as a browser. In fact it&apos;s fair to say that 99% of my usage of IE comes either from testing for cross-browser support or connecting remotely to the servers at work (considering that the education field is so Mac-friendly, it&apos;s somewhat ironic that ED itself has practically no support for Macs).

That being said, I am a very vocal advocate of cross-browser support for all major browsers. Based on the logs for the sites I host and at work, that means supporting IE7 and IE8, which account for about 60% of the traffic on average combined. Thankfully IE6 is down to less than 5% overall usage, so it&apos;s off my radar unless explicitly asked for (thank God!). But IE9 has started to catch on since it&apos;s release, with about the same usage rate as IE6 but trending upwards. 

Knowing that I will be needing to support IE9 going forward for my own work (and guessing that a mandate to support it is not too far off at my day job), I recently upgraded my VM from WinXP to Win7, and installed IE9 on it. I then was going to install the &lt;a href=&quot;http://finalbuilds.edskes.net/iecollection.htm&quot; target=&quot;_blank&quot;&gt;IE Collections&lt;/a&gt; software package to get all the IE browsers I needed, as I did on WinXP, when I learned that this was no longer needed for me. 

IE9 has a Developer Toolbar like Firefox and Chrome, accessed by the F12 key. On it is the option to choose what version of IE to render the page in. You can choose IE7, IE8, or IE9. No more third party software for this task!

As much as it pains me to say this, Microsoft actually got something right with this one.

For those not on IE9, I would recommend giving the IE Collections site a look. It&apos;s a hack for them to be able to have multiple versions of IE on one machine, but it always worked for me. 
				</description>
				
				<category>Web Development</category>
				
				<category>Cross-Browser Support</category>
				
				<category>What I Learned Today</category>
				
				<pubDate>Thu, 02 Jun 2011 10:55:00 -0500</pubDate>
				<guid>http://barthle.com/blog/index.cfm/2011/6/2/What-I-Learned-Today--Tesing-IE7--IE9-in-one-place</guid>
				
				
			</item>
			
			<item>
				<title>Mobile Site fixed</title>
				<link>http://barthle.com/blog/index.cfm/2011/6/1/Mobile-Site-fixed</link>
				<description>
				
				Turns out converting a blog in the middle of the night isn&apos;t the best idea. You sometimes forget things. Like testing all the functions of the site before calling it a night. In particular the mobile site was down because it needed a soft link to the components so it could, you know, actually see them. Oops.

Judging by the 100+ errors I got overnight, I owe a few people an apology. Sorry! 
				</description>
				
				<category>Miscellaneous</category>
				
				<pubDate>Wed, 01 Jun 2011 11:17:00 -0500</pubDate>
				<guid>http://barthle.com/blog/index.cfm/2011/6/1/Mobile-Site-fixed</guid>
				
				
			</item>
			
			<item>
				<title>I am now a member of the BlogCFC Army</title>
				<link>http://barthle.com/blog/index.cfm/2011/6/1/I-am-now-a-member-of-the-BlogCFC-Army</link>
				<description>
				
				If you couldn&apos;t tell, I switched blog engines. What gave it away? Was it the fresh coat of paint, done in the classic &quot;default blog theme&quot;? The &quot;new blog engine&quot; smell? What&apos;s that...? Oh, I gave it all away in the title? Talk about anti-climactic.

Okay so the reasons are varied, but I am now running on Blog CFC. I used &lt;a href=&quot;http://nil.checksite.co.uk/index.cfm/2010/10/20/Moving-MangoBlog-Database-entries-to-BlogCFC&quot; target=&quot;_blank&quot;&gt;Stephen Moretti&apos;s guide&lt;/a&gt; to port my entries and data over from Mango. It was pretty smooth overall, with only a couple of issues related to my Mango setup being a bit different than normal.

One thing to note, all subscriptions were lost in the move, that&apos;s the one known downside to the porting scripts. I tried to manually update the entries here, but I may have missed some. So I apologize but you&apos;ll have to do that part again possibly.

At some point I&apos;ll get my own look and feel on this blog. It&apos;s not quite in the top 10 on my to-do list, but it&apos;s close. 
				</description>
				
				<category>Miscellaneous</category>
				
				<pubDate>Wed, 01 Jun 2011 02:41:00 -0500</pubDate>
				<guid>http://barthle.com/blog/index.cfm/2011/6/1/I-am-now-a-member-of-the-BlogCFC-Army</guid>
				
				
			</item>
			
			<item>
				<title>What I Learned Today - using CFCATCH as a struct</title>
				<link>http://barthle.com/blog/index.cfm/2011/5/25/What-I-Learned-Today--using-CFCATCH-as-a-struct</link>
				<description>
				
				&lt;p&gt;I&apos;ve been working on a error handling application and ran into an issue. I could not pass along the CFCATCH scope as a struct as an argument. I could do it for any other scope. Testing revealed a weird oddity where ColdFusion does not see the CFCATCH scope as a struct.&lt;/p&gt;
&lt;p&gt;Try this code&lt;/p&gt;
&lt;code&gt;
&lt;cftry&gt;
	&lt;cfthrow type=&quot;Application&quot; message=&quot;This is a test error&quot;&gt;
	&lt;cfcatch type=&quot;any&quot;&gt;
		&lt;cfoutput&gt;#isStruct(cfcatch)#&lt;/cfoutput&gt;
		&lt;cfset variables.copyOfCactch = duplicate(cfcatch) /&gt;
		&lt;cfdump expand=&quot;true&quot; label=&quot;cfcatch&quot; var=&quot;#cfcatch#&quot; /&gt;
		&lt;cfoutput&gt;#isStruct(variables.copyOfCactch)#&lt;/cfoutput&gt;
		&lt;cfdump expand=&quot;true&quot; label=&quot;variables.copyOfCactch&quot; var=&quot;#variables.copyOfCactch#&quot; /&gt;
	&lt;/cfcatch&gt;
&lt;/cftry&gt;

&lt;/code&gt;
&lt;p&gt;and this is what it returns:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NO YES&lt;/strong&gt;&lt;/p&gt; (plus the related dumps) 
				</description>
				
				<category>What I Learned Today</category>
				
				<category>ColdFusion</category>
				
				<pubDate>Wed, 25 May 2011 22:15:00 -0500</pubDate>
				<guid>http://barthle.com/blog/index.cfm/2011/5/25/What-I-Learned-Today--using-CFCATCH-as-a-struct</guid>
				
				
			</item>
			
			<item>
				<title>Why do you use a tablet?</title>
				<link>http://barthle.com/blog/index.cfm/2011/5/22/why-do-you-use-a-tablet</link>
				<description>
				
				&lt;p&gt;I pose this three-part question to anyone that reads this: &lt;/p&gt;
&lt;p&gt;If you own a tablet of any kind...&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Why did you get it? &lt;/li&gt;
&lt;li&gt;What role does it fill in your life?&lt;/li&gt;
&lt;li&gt;Are you glad you made the purchase?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now the background for this: I am a full-time developer who works from home, and my wife and I have three kids 3 and under. I live in a fairly tech-deficient area, where most people own computers more than 5 years old and maybe you see some smartphones here and there. Ever since the iPad started the tablet revolution, I&apos;ve always thought I might like one, but that was my inner geek talking, the one swayed by shiny new toys. But recently when attending cf.objective(), I noticed a lot of people had tablets of some kind. And it got me to thinking that I should poll people of a more similar background to me about why they pulled the trigger.&lt;/p&gt;
&lt;p&gt;I&apos;ll be upfront and say that if/when I get a tablet, it will be from the iPad family. That&apos;s because I am a big fan of Apple products and use them every day, so I like to keep things in the same family. Nothing against Android or Blackberry, just not my personal cup of tea. Also, my birthday is coming up in late September, and I&apos;m thinking that if I got ideas on how it could be a good fit in to my life in a useful way, I might answer everyone&apos;s question of &quot;what do you want?&quot; with an idea of all going in together on a tablet.&lt;/p&gt;
&lt;p&gt;So... anyone willing to share their stories, please comment to this. Please don&apos;t spend time trying to convince me of which one to get, like I said I&apos;ve already made up my mind on that front. I just could really use help on why to get it.&lt;/p&gt;
&lt;p&gt;Thanks.&lt;/p&gt;
&lt;h6&gt;&lt;em&gt;Comments are moderated solely for spam-prevention purposes.&lt;/em&gt;&lt;br /&gt;&lt;/h6&gt; 
				</description>
				
				<category>Tablets</category>
				
				<category>Miscellaneous</category>
				
				<pubDate>Sun, 22 May 2011 15:36:49 -0500</pubDate>
				<guid>http://barthle.com/blog/index.cfm/2011/5/22/why-do-you-use-a-tablet</guid>
				
				
			</item>
			
			<item>
				<title>In search of... a truly good jQuery rounded corners plugin</title>
				<link>http://barthle.com/blog/index.cfm/2011/3/17/in-search-of-a-truly-good-jquery-rounded-corners-plugin</link>
				<description>
				
				&lt;p&gt;So a while back I blogged about a jQuery plugin I used for rounding corners, the &lt;a href=&quot;http://www.curvycorners.net/&quot; target=&quot;_blank&quot;&gt;CurvyCorners&lt;/a&gt; plugin. At first I thought it was great, and I have used it on two sites since finding it. But I have also found that this plugin does not play nice with IE 6-8. There are a lot of headaches involved with those browsers. &lt;/p&gt;
&lt;p&gt;Here is a list of the issues and/or tradeoffs I had to make to get this to work in IE 6-8. Keep in mind I never ran into these issues with Firefox, Safari, or Chrome during testing.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;In IE 6-8, you cannot use this tag with a fluid box. Whatever proportions the box is when you load the page, that is how they will remain no matter how you resize your browser. This was not a problem for one site that had a fixed width design, but for the one that did have it, I had to turn it into a fixed width design for IE browsers using some conditional comments and CSS. I picked a width that will work for the amjority of screens, but I don&apos;t like that I had to do it to begin with.&lt;/li&gt;
&lt;li&gt;I ran into a problem where a page using jQuery for a form was not executing the jQuery (in a document.ready() block in a SCRIPT tag placed in the HEAD tag by a CFHTMLHEAD call) the first time you went to the page after opening an IE 6-8 browser. Refreshing the page or clicking a link to go to the page again fixed it, but that very first time it would not work. In the end, the issue was that I had placed the call to this plugin before the jQuery code block. I cannot fully understand why that was a problem, but because of that, the corner rounding was somehow blocking the rest of the cript being processed by the browser, for some reason. The fix for this was to place the call to the plugin as the very last tag in the HEAD. For whatever reason, that solved it.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;As of today, my postings of these issues to the CurvyCorners Google Groups support forum have gone unanswered.&lt;/p&gt;
&lt;p&gt;Because of these, I am now in search of a better solution if one exists. I could code the CSS manually, but now that I know these quicker solutions are out there my desire to do it longhand has faded. I also hate making tradeoffs when I know it should not be neccesary.&lt;/p&gt;
&lt;h6&gt;&lt;em&gt;Comments are moderated solely for spam-prevention purposes.&lt;/em&gt;&lt;br /&gt;&lt;/h6&gt; 
				</description>
				
				<category>jQuery</category>
				
				<category>Web Development</category>
				
				<pubDate>Thu, 17 Mar 2011 12:23:28 -0500</pubDate>
				<guid>http://barthle.com/blog/index.cfm/2011/3/17/in-search-of-a-truly-good-jquery-rounded-corners-plugin</guid>
				
				
			</item>
			</channel></rss>
