<?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>BarneyBlog &#187; meta</title>
	<atom:link href="http://www.barneyb.com/barneyblog/category/meta/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.barneyb.com/barneyblog</link>
	<description>Thoughts, rants, and even some code from the mind of Barney Boisvert.</description>
	<lastBuildDate>Mon, 02 Mar 2020 13:20:35 +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>A Final Note</title>
		<link>https://www.barneyb.com/barneyblog/2012/01/01/a-final-note/</link>
		<comments>https://www.barneyb.com/barneyblog/2012/01/01/a-final-note/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 08:00:26 +0000</pubDate>
		<dc:creator>barneyb</dc:creator>
				<category><![CDATA[meta]]></category>
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=1756</guid>
		<description><![CDATA[The past years, months and weeks have had a huge amount of change wrapped up within them for me.  Much of that change had immediate effects, but some of it has been more subtle.  There are three major effects which are manifesting at the present time: a new career, a new job, and a new [...]]]></description>
			<content:encoded><![CDATA[<p>The past years, months and weeks have had a huge amount of change wrapped up within them for me.  Much of that change had immediate effects, but some of it has been more subtle.  There are three major effects which are manifesting at the present time: a new career, a new job, and a new blog.  All are manifesting at the year boundary which is, for some reason, the usual for major change in my life.</p>
<p>First, I am embarking on a new career, that of a software craftsman.  I have been a CFML developer for over a decade, and while it has earned me a nice income, it hasn't been terribly fulfilling.  CFML itself is part of the problem, but the places where CFML is widely accepted and adopted are a bigger portion.  I seem to be quite proficient at using CFML to build web applications  above spec and under budget, but I've come to realize over the years that my objectives are within the craft of software development, not in making piles of money.</p>
<p>Facilitating this shift of focus is a change of jobs.  I've worked at Mentor Graphics for just over five years and the team I have been a part of has grown in leaps and bounds.  We have morphed from a group of CommonSpot hackers to a team responsible for a pile of CFML, Python, and PHP applications, along with all the infrastructure to run it scalably and reliably.  It's worth mentioning that our team is a chunk of Mentor's corporate marketing department, and our IT department comes to us for expert opinions.   I have given my notice and my last day at Mentor will be January 6<sup>th</sup>, 2012.</p>
<p>On the 9<sup>th</sup> I will be starting a new job with a company providing healthcare information management and analytics software.  The company (ARMUS) recently was acquired by Burr Pilger Mayer (the largest accounting firm in California), though it still runs as a largely autonomous division within.  The team is small, the projects are fast, the impact is huge, and the business puts the focus is on internal quality not just external deliverables.  Plus it's centered around huge masses of data and the extraction of interesting information, which is something I'm quite fond of.  I don't think it's coincidence that Kim is an epidemiologist, doing the job ARMUS's software is intended to facilitate.</p>
<p>Finally, I'm moving my online home to <a href="http://programmerluddite.com/">programmerluddite.com</a> instead of barneyb.com.  You can read more about the reasons <a href="http://programmerluddite.com/2012/01/programmer-luddite/">over there</a>.  I'll still be writing about software development and whatever else suits my fancy, but starting afresh.  This will be the final post I make on this blog, excepting a couple  updates to a couple open source projects in the coming month.</p>
<p>This sort of "leave everything behind" transition is very uncharacteristic of my nature.  However, in this case I feel that a transition would be exactly the opposite of what is needed.  Yes, that means you'll need to update your feed readers, but no content is changing homes.  The downloads, post links, and comment subscriptions here on BarneyBlog will remain exactly as before, as will all the other bits and pieces on barneyb.com.</p>
<p>Hope to see you all over at my new home, though I will probably be rather quiet for a bit as the rest of this welling change stabilizes.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.barneyb.com/barneyblog/2012/01/01/a-final-note/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migration Complete!</title>
		<link>https://www.barneyb.com/barneyblog/2011/09/28/migration-complete/</link>
		<comments>https://www.barneyb.com/barneyblog/2011/09/28/migration-complete/#comments</comments>
		<pubDate>Wed, 28 Sep 2011 22:56:19 +0000</pubDate>
		<dc:creator>barneyb</dc:creator>
				<category><![CDATA[amazon]]></category>
		<category><![CDATA[meta]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[potd]]></category>

		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=1738</guid>
		<description><![CDATA[This morning I cut barneyb.com and all it's associated properties over from my old CentOS 5 box at cari.net to a new Amazon Linux "box" in Amazon Web Service's us-east-1 region.Â  Migration was pretty painless.Â  I followed the "replace hardware with cloud resources" approach that I advocate and have spoken on at various places.Â  The [...]]]></description>
			<content:encoded><![CDATA[<p>This morning I cut <code>barneyb.com</code> and all it's associated properties over from my old CentOS 5 box at cari.net to a new Amazon Linux "box" in Amazon Web Service's <code>us-east-1</code> region.Â  Migration was pretty painless.Â  I followed the "replace hardware with cloud resources" approach that I advocate and have spoken on at various places.Â  The process looks like this:</p>
<ol>
<li>launch a virgin EC2 instance (I used the console and based it on <code>ami-7f418316</code>).</li>
<li>create a data volume and attach it to the instance.</li>
<li>allocate an Elastic IP and associate it with the instance.</li>
<li>set up an A record for the Elastic IP.</li>
<li>build a setup script which will configure the instance as needed.Â  I feel it's important to use a script for this so that if your instance dies for some reason you can create a new one without too much fuss.Â  It's not strictly necessary, but part of the cloud mantra is "don't repair, replace" because new resources are so inexpensive.Â  Don't forget to store it on your volume, not the root drive or an ephemeral store.Â  Here's one useful snippet for modifying /etc/sudoers that took me a little digging to figure out:
<pre>bash -c "chmod 660 /etc/sudoers;sed -i -e 's/^\# \(%wheel.*NOPASSWD.*\)/\1/' /etc/sudoers;chmod 440 /etc/sudoers"</pre>
</li>
<li>rsync all the various data files from the current server to the new one (everything goes on the volume; symlink &#8211; via your setup script &#8211; where necessary).Â  Again, use a script.</li>
<li>once you're happy that your scripts work, kill your instance,</li>
<li>launch a new virgin EC2 instance,</li>
<li>attach your data volume,</li>
<li>associate your Elastic IP,</li>
<li>run your setup script,</li>
<li>if anything didn't turn out the way you wanted, fix it, and go back to step 8.</li>
<li>shut down all the state-mutating daemons on the old box.</li>
<li>shut down all the daemons on the new instance.</li>
<li>set up a downtime message in Apache on the old box.Â  I used these directives:
<pre>RewriteEngine  On
RewriteRule    ^/.+/.*    /index.html    [R]
DocumentRoot   /var/www/downtime</pre>
</li>
<li>run the rsync script.</li>
<li>turn on all the daemons on your new instance.</li>
<li>add <code>/etc/hosts</code> records to the old box and update DNS with the Elastic IP.</li>
<li>change Apache on the old box to proxy to the new instance (so people will get the new site without having to wait for DNS to flush).
<pre>ProxyPreserveHostÂ Â  On
ProxyPassÂ Â          /Â Â  http://www.barneyb.com/
ProxyPassReverseÂ Â Â  /Â Â  http://www.barneyb.com/</pre>
<p>These directives are why you need the rules in <code>/etc/hosts</code>, otherwise you'll be in an endless proxy loop.Â  You'll need to tweak them slightly for your SSL vhost.Â  The ProxyPreserveHost directive is important so that the new instance still gets the original Host header, allowing it to serve from the proper virtual host.Â  This lets you proxy all your traffic with a single directive and still have it split by host on the new box.</li>
</ol>
<p>The net result was a nearly painless transition.Â  There was a bit of downtime during the rsync copy (I had to sync about 4GB of data), but only a few minutes.Â  Once the new box was populated and ready to go, the proxy rules allowed everyone to keep using the sites, even before DNS was fully propagated.Â  Now, a few hours later, the only traffic still going to my old box is from <code>Baiduspider/2.0; +http://www.baidu.com/search/spider.html</code>, whatever that is.Â  Hopefully it'll update it's DNS cache like a well-behaved spider should, but not according to my TTLs.Â  Hmph.</p>
<p>Steps 1-12 (the setup) took me about 4 hours to do for my box.Â  Just for reference, I host a couple Magnolia-backed sites, about 10 WordPress sites (including this one), a WordPressMU site, and a whole pile of CFML apps (all running within a single Railo).Â  I also host MySQL on the same box which everything uses for storage.Â  Steps 13-19 took about an hour, most of that being waiting for the rsync and then running through all the DNS changes (about 20 domains with between 1 and 10 records each).</p>
<p>And now I have extra RAM.Â  Which is a good thing.Â  I'm sure a few little bits and pieces will turn up broken over the next few days, but I'm quite happy with both the process and the result.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.barneyb.com/barneyblog/2011/09/28/migration-complete/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Scheduled Downtime This Evening</title>
		<link>https://www.barneyb.com/barneyblog/2010/08/25/scheduled-downtime-this-evening/</link>
		<comments>https://www.barneyb.com/barneyblog/2010/08/25/scheduled-downtime-this-evening/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 18:37:05 +0000</pubDate>
		<dc:creator>barneyb</dc:creator>
				<category><![CDATA[meta]]></category>

		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=1576</guid>
		<description><![CDATA[Just a heads up that the server hosting barneyb.com and all it's various offspring (PotD, EventLog, etc.) will be going down about eight this evening to replace a faulty cooling fan.Â  Total outage should be less than 15 minutes, and it will be a complete outage (the IPs will be dead).
]]></description>
			<content:encoded><![CDATA[<p>Just a heads up that the server hosting barneyb.com and all it's various offspring (PotD, EventLog, etc.) will be going down about eight this evening to replace a faulty cooling fan.Â  Total outage should be less than 15 minutes, and it will be a complete outage (the IPs will be dead).</p>
]]></content:encoded>
			<wfw:commentRss>https://www.barneyb.com/barneyblog/2010/08/25/scheduled-downtime-this-evening/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I&#039;m WPTouch Enabled</title>
		<link>https://www.barneyb.com/barneyblog/2010/04/07/i-am-wptouch-enabled/</link>
		<comments>https://www.barneyb.com/barneyblog/2010/04/07/i-am-wptouch-enabled/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 23:02:45 +0000</pubDate>
		<dc:creator>barneyb</dc:creator>
				<category><![CDATA[meta]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=1470</guid>
		<description><![CDATA[Over lunch I installed the WPTouch plugin to provide a iPhone OS-like interface for those of you who want to read site on your phone but not with the full layout.Â  Mmobile devices will still see the normal layout by default; you must enable the new interface using the toggle in the footer.Â  Once toggled, [...]]]></description>
			<content:encoded><![CDATA[<p>Over lunch I installed the <a href="http://www.bravenewcode.com/products/wptouch/">WPTouch</a> plugin to provide a iPhone OS-like interface for those of you who want to read site on your phone but not with the full layout.Â  Mmobile devices will still see the normal layout by default; you must enable the new interface using the toggle in the footer.Â  Once toggled, subsequent visits will continue to use the mobile interface.Â  The plugin works by intercepting requests and completely subverting the configured theme and replacing it with a mobile-specific layout.</p>
<p>When I did the real layout for the site I considered mobile devices, picking a font size and column width that I thought reasonable to read in landscape mode on an iPhone-sized screen.Â  As well as meaning less work and providing a more consistent interface, PRE-formatted code renders without being sliced off to the right, which is a big win over the mobile interface.</p>
<p>No question, neither one is perfect, but the choice is now yours.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.barneyb.com/barneyblog/2010/04/07/i-am-wptouch-enabled/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Goodbye ColdFusion, Hello Railo</title>
		<link>https://www.barneyb.com/barneyblog/2010/03/31/goodbye-coldfusion-hello-railo/</link>
		<comments>https://www.barneyb.com/barneyblog/2010/03/31/goodbye-coldfusion-hello-railo/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 17:23:09 +0000</pubDate>
		<dc:creator>barneyb</dc:creator>
				<category><![CDATA[cfml]]></category>
		<category><![CDATA[coldfusion]]></category>
		<category><![CDATA[meta]]></category>
		<category><![CDATA[railo]]></category>

		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=1413</guid>
		<description><![CDATA[I've been working towards this for quite some time, and last night I finally replaced ColdFusion with Railo on my personal server.Â  By and large the switch went flawlessly.Â  I made a few compatibility changes ahead of time and found and fixed a few issues subsequently, but really smooth overall.Â  Even better, the memory footprint [...]]]></description>
			<content:encoded><![CDATA[<p>I've been working towards this for quite some time, and last night I finally replaced ColdFusion with Railo on my personal server.Â  By and large the switch went flawlessly.Â  I made a few compatibility changes ahead of time and found and fixed a few issues subsequently, but really smooth overall.Â  Even better, the memory footprint is significantly reduced with Railo, and I'm always memory constrained.Â  I'll run through the migration process and the issues I had in a moment, but first a couple memory charts:</p>
<p><img class="aligncenter size-full wp-image-1414" title="resident_memory" src="http://www.barneyb.com/barneyblog/wp-content/uploads/2010/03/resident_memory.png" alt="" width="640" height="300" /></p>
<p><img class="aligncenter size-full wp-image-1415" title="virtual_memory" src="http://www.barneyb.com/barneyblog/wp-content/uploads/2010/03/virtual_memory.png" alt="" width="640" height="250" /></p>
<p><img class="aligncenter size-full wp-image-1416" title="page_faults" src="http://www.barneyb.com/barneyblog/wp-content/uploads/2010/03/page_faults.png" alt="" width="640" height="250" /></p>
<p>Conversion, as you might imagine, happend right about 20:30.Â  The jaggies you see on the MySQL line are from me manually reducing and then reincreasing it's memory caches.Â  I wanted to make sure it was mostly out of the way while I was converting, and willing to pay a little performance to get it.Â  Unfortunately it makes the charts a little dirtier, but oh well.</p>
<p>The actual migration process was really simple.Â  I spun up a Railo instance on my home computer, configured the server settings, set up my DSNs and mappings, and then shut it down.Â  Then I stopped Tomcat on my production server, moved the WEB-INF folder out of the way, rsynced up Railo's WEB-INF from my home machine to take it's place, and restarted Tomcat.Â  Done.</p>
<p>As for the CFML itself, I ran into a very small number of distinct issues, though they manifested in different ways:</p>
<ul>
<li>Railo doesn't support the column-as-array notation for queries that ColdFusion does (e.g. arrayMax(query["column"])), which I had used extensively in building Google Charts.Â  Fortunately they expose valueArray to compliment valueList, as well as supporting a string (static or dynamic) rather than just the reference (all CF allows).Â  This change made most of the instances cleaner, though you have to use a temp variable if your query isn't in an implicitly referenceable scope or nested within a complex structure, because the string must two-part.</li>
<li>Railo doesn't support escaping keywords in queries of queries.Â  Fortunately it's not as anal about keywords (e.g., allowing "get"), but if you want to alias a column to "count", you're screwed.Â  Interestingly, you can happily select from a column named "count", just not alias to it.Â  It also has some weird issues when combining aggregation and union on timestamp fields (they get truncated to dates).</li>
<li>Railo arrays don't support the .subList method from java.util.List.Â  It's implemented, but is hard coded to throw a RuntimeException.Â  I beat this via a subList UDF:
<pre>&lt;cffunction name="subList" output="false"&gt;
  &lt;cfargument name="a" /&gt;
  &lt;cfargument name="s" /&gt;
  &lt;cfargument name="e" /&gt;
  &lt;cfset var aa = [] /&gt;
  &lt;cfset var i = "" /&gt;
  &lt;cfloop from="#s + 1#" to="#e#" index="i"&gt;
    &lt;cfset arrayAppend(aa, a[i]) /&gt;
  &lt;/cfloop&gt;
  &lt;cfreturn aa /&gt;
&lt;/cffunction&gt;</pre>
<p>It doesn't carry the same semantic as List.subList (which returns a view of the original list, not a new list), but for my purposes it was sufficient.</li>
<li>Inline CFMAILPARAM attachments that use a contentId must have the id manually wrapped with angle brackets as Railo doesn't do the wrapping for you like ColdFusion does.Â  Easily fixed, though this one was actually caught by an end user.Â  Oops.</li>
<li>"url is not a valid unscoped variable name as Railo assumes it means the url scope.Â  You must either qualify it with a scope, or avoid the name.Â  "cluster" has the same problem.Â  As you might imagine, the url-scraping acquisition and cluster-based prioritization of PotD made these two names quite common, so I had to fix a lot of instances.Â  But it was my fault for being lazy and not scoping to begin with.</li>
<li>Railo respects and enforces an "abstract" attribute on CFFUNCTION that requires the body to be empty (just like CFFUNCTION within CFINTERFACE).Â  I use an "abstract" attribute frequently for metadata inspection, but always implement the method with a single CFTHROW tag (since CF doesn't understand abstractness).Â  The error message Railo generates is misleading ("cannot nest CFTHROW within CFFUNCTION" rather than "abstract functions cannot have a body"), but once I figured out what the issue was fixing it was simple.</li>
<li>imageSetDrawingColor accepts three comma-seperated decimal values (e.g., "128,128,256&#8243; for a blueish hue), but Railo does not.Â  Easily fixed with formatBaseN.</li>
</ul>
<p>All in all, a pretty transparent migration.Â  I'm quite pleased.Â  And now I'm in a position to get CFML-based ORM without having to fork over the $4,000 to upgrade to CF9, which is a big win for me.Â  I'm sure little stuff will probably crop up over the next week or two, but all the major pieces (and all the minor bits I checked) seem to have worked flawlessly.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.barneyb.com/barneyblog/2010/03/31/goodbye-coldfusion-hello-railo/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>BEWARE: Impending Sporadic Brokenness</title>
		<link>https://www.barneyb.com/barneyblog/2010/03/30/impending-sporadic-brokenness/</link>
		<comments>https://www.barneyb.com/barneyblog/2010/03/30/impending-sporadic-brokenness/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 00:40:17 +0000</pubDate>
		<dc:creator>barneyb</dc:creator>
				<category><![CDATA[meta]]></category>

		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=1411</guid>
		<description><![CDATA[Tonight I'm switching from my CFML from ColdFusion 8 to Railo 3.1.2.010 (bleeding edge).Â  So starting here in a couple hours there is undoubtedly going to be broken stuff.Â  Pic of the Day, of course, is the primary focus of the upgrade and I've already done extensive testing of that codebase on Railo so it [...]]]></description>
			<content:encoded><![CDATA[<p>Tonight I'm switching from my CFML from ColdFusion 8 to Railo 3.1.2.010 (bleeding edge).Â  So starting here in a couple hours there is undoubtedly going to be broken stuff.Â  Pic of the Day, of course, is the primary focus of the upgrade and I've already done extensive testing of that codebase on Railo so it should come across without issue.Â  Other than that, however, I've tested virtually none of my active CFML on Railo, so it'll be a bit of an adventure.Â  Fortunately, nothing I run is mission critical, so this sort of ad hoc approach should serve reasonably well.Â  I wouldn't recommend this technique without careful consideration.</p>
<p>So.Â  There's your warning.Â  Hopefully all will go well and within an hour or so I'll have vetted the various microapps to ensure all is well, and fixed any issues that come up, but we shall see.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.barneyb.com/barneyblog/2010/03/30/impending-sporadic-brokenness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moving Pic of the Day Foiled Again</title>
		<link>https://www.barneyb.com/barneyblog/2010/03/10/moving-pic-of-the-day-foiled-again/</link>
		<comments>https://www.barneyb.com/barneyblog/2010/03/10/moving-pic-of-the-day-foiled-again/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 06:03:10 +0000</pubDate>
		<dc:creator>barneyb</dc:creator>
				<category><![CDATA[coldfusion]]></category>
		<category><![CDATA[meta]]></category>
		<category><![CDATA[potd]]></category>
		<category><![CDATA[railo]]></category>

		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=1365</guid>
		<description><![CDATA[A while back I made an attempt to move Pic of the Day (NSFW) off of ColdFusion 8 and onto Railo 3.Â  I can't afford a license of CF9, so my only upgrade path is through a free alternative.Â  Unless someone has an extra four grand they want to give me&#8230;.
Last time I was foiled [...]]]></description>
			<content:encoded><![CDATA[<p>A while back I made an attempt to move <a href="http://potd.barneyb.com/how.html">Pic of the Day</a> (NSFW) off of <a href="http://www.adobe.com/go/coldfusion">ColdFusion</a> 8 and onto <a href="http://www.getrailo.org/">Railo</a> 3.Â  I can't afford a license of CF9, so my only upgrade path is through a free alternative.Â  Unless someone has an extra four grand they want to give me&#8230;.</p>
<p>Last time I was foiled by CFHTTP adding a spurious Content-Type header on GET requests, which breaks secure downloads from S3 (which is where I host all the content).Â  I reported the bug and it got fixed, but I hadn't had time to revisit the migration process so there it sat.Â  Until this evening, that is.</p>
<p>I'm glad to say that the issue with GET requests has been completely resolved.Â  The bleeding edge is also a lot smoother than last time I pulled down a new version, so props to those guys.Â  Setting up a migration test environment actually proved pretty straightforward, even with all the crazy Apache and OS integration PotD leverages.</p>
<p>As expected, there were errors on the first page load, but nothing some trickery with mappings and rewriting a couple query of queries couldn't fix.Â  After that, everything just worked.Â  Thumbnail generation, S3 access, emailing, everything.Â  Except that it wasn't everything.Â  Turns out that exactly the same problem I had with GET requests before has no manifested itself with DELETE requests.Â  So I'm again stuck.</p>
<p>The way PotD is implemented, images are spidered and pushed immediately onto S3.Â  Then they go through the filter pipeline, and many (most?) of them are deleted.Â  So being able to remove stuff from S3 is a pretty core feature, otherwise I'd have piles and piles of orphaned files up there, and that just costs me money for no reason.Â  Sadly, this makes Railo a no-go again, and leaves me with CF8 for a while longer.</p>
<p>I've actually got a lot of stuff in the works surrounding my personal sites and projects, but the CF to Railo conversion is one of the larger ones as well as the one with the largest potential impact on server resources (which I'm continually constrained by).Â  The move from JRun to Tomcat was a huge help, but I could definitely use more and Railo gives all apperances of being able to give it to me.Â  Also have some major WordPress infrastructure changes, a whole rebranding of this (my blog), and a few other corollary improvements.</p>
<p>The overarching goal is to simplify my URL space so I don't have as much interleaving between separate applications.Â  www.barneyb.com's URL space, for example, houses 3 different blogs, two static sites, and a pile of little CFML apps.Â  ssl.barneyb.com houses SVN, Trac, PotD, and several other CFML apps.Â  It's a mess, but that'll be a lot better, regardless of what happens with the CFML engine stuff.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.barneyb.com/barneyblog/2010/03/10/moving-pic-of-the-day-foiled-again/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A Drastic Change</title>
		<link>https://www.barneyb.com/barneyblog/2010/03/01/a-drastic-change/</link>
		<comments>https://www.barneyb.com/barneyblog/2010/03/01/a-drastic-change/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 03:45:31 +0000</pubDate>
		<dc:creator>barneyb</dc:creator>
				<category><![CDATA[meta]]></category>

		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=1286</guid>
		<description><![CDATA[So today I decided to upgrade to WordPress 2.9.2 (I'd been running 2.7 since forever), and unfortunately it broke K2, which is the theme I've been using since I switched to WordPress years ago.Â  K2 was a solid theme, but it started getting rather unstable I thought, so it was hard to get a good [...]]]></description>
			<content:encoded><![CDATA[<p>So today I decided to upgrade to <a href="http://wordpress.org/">WordPress</a> 2.9.2 (I'd been running 2.7 since forever), and unfortunately it broke <a href="http://getk2.com/">K2</a>, which is the theme I've been using since I switched to WordPress years ago.Â  K2 was a solid theme, but it started getting rather unstable I thought, so it was hard to get a good release.Â  And it's really heavy, bloated with JavaScript, and just wasn't what I wanted anymore.Â  However, with a busted site, it wasn't the time to go theme shopping.Â  A little digging around the WP core showed that they'd deprecated (and then changed the API of) the attribute_escape function, and K2 depended on the old behaviour (automatic spreading across an array).Â  A couple quick patches and things were back on their feet.</p>
<p>Being the idiot I am, I figured I may as well upgrade K2 (since it would have those same fixes I made, along with other related ones I didn't catch), and that went horribly.Â  Their 1.0.3 release pretty much failed, and is even more bloated than before.Â  So now, with an again-broken site, I went theme shopping.</p>
<p>Fortunately, I'd just received a couple recommendations on a K2 replacement, and <a href="http://themehybrid.com/">Theme Hybrid</a> with the <a href="http://themehybrid.com/blog/wp-content/themes/fusion/images/life-collage-preview.jpg">Life Collage</a> child theme appeared to be relatively close to what I wanted.Â  So after tossing that in, I again had a non-broken site.Â  After another hour or so of <a href="http://www.barneyb.com/barneyblog/wp-content/themes/lighthouse/style.css">CSS hackery</a> atop the Life Collage CSS (but just the Hybrid HTML), I again have a site I'm relatively happy with.Â  Unfortunately WordPress doesn't let child themes extend other child themes (only "root" themes), so I couldn't get all the Life Collage HTML goodies (at least without copying), but no great loss there, I don't think.</p>
<p>As an added bonus, the theme supports dropdown menus for the top nav (based on subpages), which is something I've wanted for my project list for a while, but never got around to building with K2.Â  So one less project I have to do, and that's always a good thing.</p>
<p>The only remaining major issues are that there doesn't seem to be a no-comments template for pages (which is unfortunate, I think), and <span style="text-decoration: line-through;">WP apparently did away with the recent posts sidebar widget (no idea why)</span>. <em>[ed. They didn't get rid of it, they just changed it to be a 'postbypost' archive widget.]</em> I'm not sure I'm going to stick with Life Collage's base styling, but I'll probably stick with Hybrid as a root theme.Â  Both are a little id-heavier than I could wish for, but they've got pretty solid markup which makes styling pretty straightforward.</p>
<p>Just for the sake of completeness, the other couple suggested theme replacements were <a href="http://wpframework.com/">WP Framework</a> by Ptah Dunbar and <a href="http://themeshaper.com/thematic/">Thematic</a> by Ian Stewart.Â  Of the three, Hybrid looked the best out of the box, I thought, though they were all very similar.Â  It also happened to have prepackaged child themes, which was a win for me with the state of my site at the time.Â  But even without that, I think I'd still have picked Hybrid.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.barneyb.com/barneyblog/2010/03/01/a-drastic-change/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wow Am I UGLY!!</title>
		<link>https://www.barneyb.com/barneyblog/2010/03/01/wow-am-i-ugly/</link>
		<comments>https://www.barneyb.com/barneyblog/2010/03/01/wow-am-i-ugly/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 01:08:30 +0000</pubDate>
		<dc:creator>barneyb</dc:creator>
				<category><![CDATA[aside]]></category>
		<category><![CDATA[meta]]></category>

		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=1271</guid>
		<description><![CDATA[Yeah, so apparently WordPress 2.9 totally broke K2.Â  My apologies for the horrific appearance of the site, though I'm delighted to say the admin area still looks awesome!Â  Or something.Â  I'll get it fixed here shortly, I promise&#8230;.
UPDATE: apparently WordPress not only deprecated `attribute_escape`, they also changed it's functionality (despite it's widespread use in the [...]]]></description>
			<content:encoded><![CDATA[<p>Yeah, so apparently WordPress 2.9 totally broke K2.Â  My apologies for the horrific appearance of the site, though I'm delighted to say the admin area still looks awesome!Â  Or something.Â  I'll get it fixed here shortly, I promise&#8230;.</p>
<p><strong>UPDATE:</strong> apparently WordPress not only deprecated `attribute_escape`, they also changed it's functionality (despite it's widespread use in the app) to no longer correctly process arrays.Â  I don't know.Â  In any case, replacing a couple instances of it within K2 with an `array_map` application of `esc_attr` fixed it.Â  The actual problem was that the BODY classes weren't being correctly generated, thereby throwing off all the CSS selectors.</p>
<p><strong>UPDATE 2:</strong> I've been wanting to get away from K2 for a while.Â  It was awesome, but now it's kind of broken.Â  And upgrading to 1.0.3 left me with all kinds of weirdness.Â  So I kicked it to the curb, and am going to be starting afresh.Â  Should be good.</p>
<p><strong>UPDATE 3:</strong> So I've obviously reskinned.Â  For an hour of hakcing a previously-unknown theme's CSS I'm pretty happy, but definitely still pretty rough around the edges.Â  But it's good enough, so now it's time for dinner.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.barneyb.com/barneyblog/2010/03/01/wow-am-i-ugly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testing LaTeX Support</title>
		<link>https://www.barneyb.com/barneyblog/2010/02/18/testing-latex-support/</link>
		<comments>https://www.barneyb.com/barneyblog/2010/02/18/testing-latex-support/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 00:47:10 +0000</pubDate>
		<dc:creator>barneyb</dc:creator>
				<category><![CDATA[meta]]></category>

		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=1227</guid>
		<description><![CDATA[I just set up the WordPress  plugin so I can do some formula stuff here.Â  This is just a little test post with some example formulas taken from my sun/earth collision model.
Euler's Identity (at different sizes): 
Gravitational Constant: 
Force due to gravity: 
Inline also works (e.g., ).
If you use shortcodes within a paragraph (e.g., [...]]]></description>
			<content:encoded><![CDATA[<p>I just set up the <a href="http://wordpress.org/extend/plugins/wp-latex/">WordPress <img src='http://s.wordpress.com/latex.php?latex=%5CLaTeX&#038;bg=T&#038;fg=000000&#038;s=0' alt='\LaTeX' title='\LaTeX' class='latex' /> plugin</a> so I can do some formula stuff here.Â  This is just a little test post with some example formulas taken from my <a href="http://www.barneyb.com/r/sun_earth.html">sun/earth collision model</a>.</p>
<p>Euler's Identity (at different sizes): <img src='http://s.wordpress.com/latex.php?latex=e%5E%7Bi%20%5Cpi%7D%20%2B%201%20%3D%200&#038;bg=T&#038;fg=000000&#038;s=-1' alt='e^{i \pi} + 1 = 0' title='e^{i \pi} + 1 = 0' class='latex block' /></p>
<img src='http://s.wordpress.com/latex.php?latex=e%5E%7Bi%20%5Cpi%7D%20%2B%201%20%3D%200&#038;bg=T&#038;fg=000000&#038;s=2' alt='e^{i \pi} + 1 = 0' title='e^{i \pi} + 1 = 0' class='latex block' />
<p>Gravitational Constant: <img src='http://s.wordpress.com/latex.php?latex=G%3D%206.673%20%5Ctimes%2010%5E%7B-11%7D%20m%5E3%5C%3A%20kg%5E%7B-1%7D%5C%3A%20s%5E%7B-2%7D%20%3D%206.673%20%5Ctimes%2010%5E%7B-11%7D%20%5Cfrac%7Bm%5E3%7D%7Bkg%5C%3As%5E2%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='G= 6.673 \times 10^{-11} m^3\: kg^{-1}\: s^{-2} = 6.673 \times 10^{-11} \frac{m^3}{kg\:s^2}' title='G= 6.673 \times 10^{-11} m^3\: kg^{-1}\: s^{-2} = 6.673 \times 10^{-11} \frac{m^3}{kg\:s^2}' class='latex block' /></p>
<p>Force due to gravity: <img src='http://s.wordpress.com/latex.php?latex=F%20%3D%20G%20%5Cfrac%7BM_1%20M_2%7D%7Br%5E2%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='F = G \frac{M_1 M_2}{r^2}' title='F = G \frac{M_1 M_2}{r^2}' class='latex block' /></p>
<p>Inline also works (e.g., <img src='http://s.wordpress.com/latex.php?latex=2%20%2B%202%20%3D%204&#038;bg=T&#038;fg=000000&#038;s=0' alt='2 + 2 = 4' title='2 + 2 = 4' class='latex' />).</p>
<p>If you use shortcodes within a paragraph (e.g., <img src='http://s.wordpress.com/latex.php?latex=3%20%2B%201%20%3D%204&#038;bg=T&#038;fg=000000&#038;s=0' alt='3 + 1 = 4' title='3 + 1 = 4' class='latex block' />) instead of the inline notation, you'll get a block. (This is a custom mod.)</p>
<p>Finally, if you put an inline in its own paragraph, it'll do this:</p>
<p><img src='http://s.wordpress.com/latex.php?latex=8%20%5Cdiv%202%20%3D%204&#038;bg=T&#038;fg=000000&#038;s=0' alt='8 \div 2 = 4' title='8 \div 2 = 4' class='latex' /></p>
<p>Unless you explicitly state that it is a block:</p>
<p><img src='http://s.wordpress.com/latex.php?latex=8%20%5Cdiv%202%20%3D%204&#038;bg=T&#038;fg=000000&#038;s=0' alt='8 \div 2 = 4' title='8 \div 2 = 4' class='latex block' /></p>
<p>The reverse of that, as you'd expect, lets in-paragraph shortcodes work too (e.g., <img src='http://s.wordpress.com/latex.php?latex=3%20%2B%201%20%3D%204&#038;bg=T&#038;fg=000000&#038;s=0' alt='3 + 1 = 4' title='3 + 1 = 4' class='latex' />).</p>
<p>If you want to see the raw <img src='http://s.wordpress.com/latex.php?latex=%5CLaTeX&#038;bg=T&#038;fg=000000&#038;s=0' alt='\LaTeX' title='\LaTeX' class='latex' />, it's in the tooltip/title of the image.Â  WordPress.com provides the encoding service, though the plugin supports a local/third-party image service as well.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.barneyb.com/barneyblog/2010/02/18/testing-latex-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
