<?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>John K Sawers</title>
	<atom:link href="http://johnksawers.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://johnksawers.com</link>
	<description>Programming and bootstrapping</description>
	<lastBuildDate>Tue, 23 Apr 2013 00:52:39 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Image Uploads to AWS S3 using Rails 3, Paperclip and PLUpload</title>
		<link>http://johnksawers.com/image-uploads-to-aws-s3-using-rails-3-paperclip-and-plupload/</link>
		<comments>http://johnksawers.com/image-uploads-to-aws-s3-using-rails-3-paperclip-and-plupload/#comments</comments>
		<pubDate>Sun, 21 Apr 2013 21:59:31 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=100</guid>
		<description><![CDATA[For the Invest Your Heart project, I&#8217;ve been working on getting image uploads perfected. That&#8217;s easy enough with the Paperclip gem. But storing uploads on your Heroku dyno isn&#8217;t a good idea, so I wanted to use S3. Oh and &#8230; <a href="http://johnksawers.com/image-uploads-to-aws-s3-using-rails-3-paperclip-and-plupload/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>For the <a href="http://investyourheart.com/">Invest Your Heart</a> project, I&#8217;ve been working on getting image uploads perfected. That&#8217;s easy enough with the <a href="https://github.com/thoughtbot/paperclip">Paperclip gem</a>. But storing uploads on your Heroku dyno isn&#8217;t a good idea, so I wanted to use S3. Oh and throw in upload previews, resizing and a progress bar. </p>
<p>I managed to get it all working, though it took a lot because there are so many moving parts. I&#8217;m using the <a href="http://www.plupload.com/">PLUpload</a> code to provide uploads and progress var interface and Paperclip for resizing. And I&#8217;m uploading directly to S3, to avoid timeouts on Heroku when large files are uploaded. After the initial upload, Paperclip actually downloads the image, processes it, and uploads the different resized versions back to S3.</p>
<p>I couldn&#8217;t have done it without these two incredibly helpful sites: The <a href="https://github.com/iwasrobbed/Rails3-S3-Uploader-Plupload">Rails-S3-Plupload</a> demo project, and <a href="http://www.swarut.com/node/320">Swarut&#8217;s post</a>. Thanks guys! I would never have gotten it working without you. </p>
<p>Swarut also turned me on to the <a href="https://github.com/gazay/gon">Gon gem</a> which provides a simple way to send data from your controllers and JS variables. Very handy for when your app doesn&#8217;t need something like Backbone.js</p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/image-uploads-to-aws-s3-using-rails-3-paperclip-and-plupload/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>StartupBus Status Update: Invest Your Heart</title>
		<link>http://johnksawers.com/startupbus-status-update/</link>
		<comments>http://johnksawers.com/startupbus-status-update/#comments</comments>
		<pubDate>Thu, 08 Mar 2012 18:57:58 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=96</guid>
		<description><![CDATA[I&#8217;ve been so busy hacking and hustling that I haven;t had much any time to update here, but after a day and a half, we&#8217;ve made great progress. We have a four person team building Invest Your Heart. InvestYourHeart is &#8230; <a href="http://johnksawers.com/startupbus-status-update/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been so busy hacking and hustling that I haven;t had much any time to update here, but after a day and a half, we&#8217;ve made great progress.</p>
<p>We have a four person team building <a href="http://investyourheart.com">Invest Your Heart</a>.</p>
<blockquote><p>InvestYourHeart is a collaborative social change investment platform for people who believe:</p>
<p>What’s in your heart is just as valuable as what’s in your wallet.<br />
InvestYourHeart creates an opportunity for heartful, conscious, intentional giving to causes you care about.  Each time you invest, you’ll be invited to share what’s in your heart while you’re making the investment by creating a “heartspace”.  These “heartspaces” will be visually displayed on the landing page, and contributors will be able to offer them as virtual gifts to friends and family by designating a contribution in their honor.</p>
<p>We’re all in this together.<br />
Instead of initiating separate, independent fundraising &amp; social action campaigns for each project on the site, instead, we’ll mount themed campaigns in which like-minded nonprofits may participate as affiliates.   By collaborating common campaigns, we can achieve critical mass that attracts more visibility and resources to all participating projects.</p>
<p>Funding is just the beginning.<br />
So often, crowdfunding sites encourage attention to a project ony until it’s been funded.  At InvestYourHeart, we know funding is only the beginning, and we know people who have invested their hearts in your efforts are interested in more than seeing a fundraising goal met.  We provide unique opportunities to interact online with the people &amp; communities that are transformed through our collaborative investments and provide ongoing updates so you can see the love you’ve manifested in the world, not just the money you’ve helped to raise.</p></blockquote>
<p>As expected, we have a <a href="http://facebook.com/InvestYourHeart">Facebook Page </a>and <a href="http://twitter.com/#!/InvestYourHeart">twitter account</a> set up. </p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/startupbus-status-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>All aboard the StartupBus</title>
		<link>http://johnksawers.com/aboard-startupbus/</link>
		<comments>http://johnksawers.com/aboard-startupbus/#comments</comments>
		<pubDate>Sat, 03 Mar 2012 05:39:52 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=79</guid>
		<description><![CDATA[I&#8217;ve decided to break out of some ruts and join the StartupBus (@startupbusfl), a 3 day moving hackathon on a bus to Austin, TX for South by Southwest Interactive (SxSWi). I&#8217;ll be posting a whole lot more about it as I &#8230; <a href="http://johnksawers.com/aboard-startupbus/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve decided to break out of some ruts and join the <a href="http://startupbus.com">StartupBus</a> (<a href="http://twitter.com/#!/startupbusfl">@startupbusfl</a>), a 3 day moving hackathon on a bus to Austin, TX for <a href="http://sxsw.com">South by Southwest</a> Interactive (SxSWi).</p>
<p>I&#8217;ll be posting a whole lot more about it as I go along, so I&#8217;ll start here with just the list of things that I&#8217;m packing to bring along (aside form the obvious tech):</p>
<ol>
<li>Sketchpad</li>
<li>Dry-erase markers</li>
<li>Post-its</li>
<li>Headphones</li>
<li>My Ideas To Pitch</li>
<li>Luna Bars</li>
<li><a href="http://mypressi.com/">MyPressi Portable Espresso Machine</a></li>
<li><a title="Upgraded Coffee" href="http://www.bulletproofexec.com/coffee/">Upgraded Coffee</a></li>
<li>100GB of music</li>
<li>Pre-built Rails application skeleton (I&#8217;ll tell you about that in another post. soon!)</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/aboard-startupbus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mini Upgrade</title>
		<link>http://johnksawers.com/mini-upgrade/</link>
		<comments>http://johnksawers.com/mini-upgrade/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 03:16:10 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=63</guid>
		<description><![CDATA[Thanks to this tutorial, I was able to upgrade my Mac Mini media server to 3GB of RAM. That allowed me to upgrade it to Mac OS X Lion as well (it only had 1GB before, and Lion requires 2GB). &#8230; <a href="http://johnksawers.com/mini-upgrade/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><img class="alignright" style="float: right; margin: 20px;" src="http://johnksawers.com/wp-content/uploads/2011/12/macmini1zr8-300x225.jpg" alt="image by 'smee' at Apple Insider" width="300" height="225" />Thanks to <a title="this tuorial" href="http://forums.appleinsider.com/showthread.php?t=81881">this tutorial</a>, I was able to upgrade my Mac Mini media server to 3GB of RAM. That allowed me to upgrade it to Mac OS X Lion as well (it only had 1GB before, and Lion requires 2GB). That&#8217;s made quite an improvement in file sharing responsiveness. If you recall, even on Snow Leopard, it could take 30 seconds to connect to a server. Initially, I had tried to use the DIMMs left over form my MacBook Pro upgrade (to 8GB), but they were too advanced. Luckily, I had an old white MacBook in the closet with a bad motherboard which happened to have matching DIMMs, so I was able to complete the upgrade.</p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/mini-upgrade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pow and WordPress on the same machine</title>
		<link>http://johnksawers.com/pow-and-wordpress-on-the-same-machine/</link>
		<comments>http://johnksawers.com/pow-and-wordpress-on-the-same-machine/#comments</comments>
		<pubDate>Sat, 15 Oct 2011 22:31:12 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/2011/10/pow-and-wordpress-on-the-same-machine/</guid>
		<description><![CDATA[While developing the InnerLightTools application on my local machine, I&#8217;m using the Pow web/rack server. It&#8217;s a great way to run rails apps locally. At the same time I&#8217;m working on WordPress development locally as well, and for that I &#8230; <a href="http://johnksawers.com/pow-and-wordpress-on-the-same-machine/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>While developing the InnerLightTools application on my local machine, I&#8217;m using the<a href="http://pow.cx/" target="_blank"> Pow web/rack server</a>. It&#8217;s a great way to run rails apps locally. At the same time I&#8217;m working on WordPress development locally as well, and for that I need Apache. By default Pow runs on port 80, just like Apache, so I couldn&#8217;t do both at the same time. Initially I set Apache to run on a different port, but discovered the WordPress Multisite won&#8217;t run on ports other than 80 and 443. So, I found the <a href="http://pow.cx/docs/configuration.html" target="_blank">Pow configuration page</a> contained information about setting Pow to run on an alternate port. It&#8217;s pretty simple, just add</p>
<blockquote><p><strong>export POW_DST_PORT=&lt;any port num&gt; </strong></p>
</blockquote>
<p>to your ~/.powconfig file and restart. My Pow is finicky, so I often have to reinstall it to get things to work properly. Fortunatley that&#8217;s trivial with the <a href="https://github.com/Rodreegez/powder" target="_blank">Powder gem</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/pow-and-wordpress-on-the-same-machine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lion, Rails 3.1 and WordPress Clients</title>
		<link>http://johnksawers.com/lion-rails-3-1-and-wordpress-clients/</link>
		<comments>http://johnksawers.com/lion-rails-3-1-and-wordpress-clients/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 22:30:02 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/2011/09/lion-rails-3-1-and-wordpress-clients/</guid>
		<description><![CDATA[I haven’t gotten much done on Inner Light Tools on the last few months. My day job had taken over all of my free time, at the same time, I was waiting for Rails 3.1 to finish up. I’d begun &#8230; <a href="http://johnksawers.com/lion-rails-3-1-and-wordpress-clients/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I haven’t gotten much done on Inner Light Tools on the last few months. My day job had taken over all of my free time, at the same time, I was waiting for Rails 3.1 to finish up. I’d begun converting the code over with one of the early Release Candidates, but when I updated my MacBook to Lion, things broke. At the same time I’d tried renaming the Xcode directory, and then <em>make</em> and <em>gcc</em> stopped working. Even when I moved the folder back they wouldn’t work.</p>
<p>Because I couldn’t compile any native code, the upgrade to rails 3.1 final would’t work. I couldn’t get Xcode to reinstall from the App Store either. So I reinstalled it on another machine, and made a copy of the installer before it was finished (when it gets deleted). With that I was able to reinstall, and everything started working again, thankfully.</p>
<p>Now that I had a final version of Rails. I could get on with the code. Over the weekend I spent some time deleting parts of the app. Originally I’d planned to allow users to build customized intake forms, but dealing with all the complexity that brought was driving me nuts, and taking forever to code. So I’ve cut it out, and it’s not just a simple model.</p>
<p>I may go back to that idea in the future, if my users actually want that kind of thing. I’ll ask them first.</p>
<p>Also, I’m trying out WordPress clients, trying to decide between <a href="http://www.red-sweater.com/marsedit/">MarsEdit</a> and <a href="http://www.marinersoftware.com/products/macjournal/">MacJournal</a>. I’ll let you know which one wins.</p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/lion-rails-3-1-and-wordpress-clients/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress!</title>
		<link>http://johnksawers.com/wordpress/</link>
		<comments>http://johnksawers.com/wordpress/#comments</comments>
		<pubDate>Sat, 30 Jul 2011 22:29:32 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=52</guid>
		<description><![CDATA[I&#8217;m disappointed in Drupal. It looked like they were doing great things with the 7.0 upgrade, and I was looking forward to it. I have 7 different sites running Drupal 6 right now. As soon as 7 was release I &#8230; <a href="http://johnksawers.com/wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m disappointed in <a href="http://drupal.org" target="_blank">Drupal</a>. It looked like they were doing great things with the 7.0 upgrade, and I was looking forward to it. I have 7 different sites running Drupal 6 right now. As soon as 7 was release I upgraded this site to it. That process was not as seamless as I would have hoped.</p>
<p>for the 8 months prior to 7.0, it seemed like every plugin author has added a compatibility pledge to their listing, saying that they&#8217;d have a working version on the day 7.0 was released. This made me even more eager to jump in. Unfortunately not everyone was onboard.</p>
<p>Prior to the upgrade there was no easy way to test whether your plugin has a 7.0 compatible version available. I could have visited the nodes for ever one of my plugins, but there is no easy way to find links to those pages, even with the module installed. So would have had to go to the drupal site and do a search for every one of the 20 or so modules. And the names are fairly generic, so sometimes it&#8217;s hard to find the right plugin, or nodes discussing the plugin flood the results and you have to spend a while digging through to find the right node.</p>
<p>So I just went for it and upgraded, and what a mess it was. half my plugins broke, so I had to install alpha or beta versions of those. If they were available, many times there wasn&#8217;t even that. So, I lost a lot of functionality including core things like MetaWeblog API support. For months I&#8217;d check on the nodes for those modules, hoping for an update. Few came.</p>
<p>I have a lot of time and knowledge invested in Drupal, but things were handled so poorly that I&#8217;ve given up. Usability even went downhill in 7.0, with some setting taking me months to find. <strong>This site is now running <a href="http://wordpress.org/" target="_blank">wordpress</a>.</strong></p>
<p>What a difference! Whereas the Drupal experience is clunky, disorganized and rough, WordPress is a joy to use and install. the UI polish is an order of magnitude greater, and really makes it feel like the developers care about your experience. Plugins actually have ratings, so you can compare them easily. Installation is trivial, and the number of classy professional themes available is staggering.</p>
<p>In short, I&#8217;m pissed that I waited so long.</p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First landing page</title>
		<link>http://johnksawers.com/first-landing-page/</link>
		<comments>http://johnksawers.com/first-landing-page/#comments</comments>
		<pubDate>Sat, 02 Apr 2011 05:22:57 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=9</guid>
		<description><![CDATA[My first landing page for Inner Light Tools is up: reiki software. It&#8217;s pretty rough, but I want the search engines to get something in there for those keywords. It&#8217;s not a very competitive phrase, so I hope I can &#8230; <a href="http://johnksawers.com/first-landing-page/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even">
<p>My first landing page for Inner Light Tools is up: <a href="http://innerlighttools.com/reiki/software">reiki software</a>. It&#8217;s pretty rough, but I want the search engines to get something in there for those keywords. It&#8217;s not a very competitive phrase, so I hope I can get to the top ten as easily as I did for &#8216;alternative health practice management&#8217;. Then I&#8217;ll rank for <strong>two</strong> phrases that nobody searches for <img src='http://johnksawers.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><a href="http://innerlighttools.com/">Massage software</a> is next.</p>
</div>
</div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/TU6IEzv2HOU" alt="" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/first-landing-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MicroConf 2011: A conference for micropreneurs, single founder startups</title>
		<link>http://johnksawers.com/microconf-2011-a-conference-for-micropreneurs-single-founder-startups/</link>
		<comments>http://johnksawers.com/microconf-2011-a-conference-for-micropreneurs-single-founder-startups/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 17:53:48 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=10</guid>
		<description><![CDATA[The guys behind the Micropreneur Academy have just launch a conference taking place in June 2011. They&#8217;re calling it MicroConf: The Conference for Self-Funded Startups and Single Founders and it sounds great. Who knows if I&#8217;ll have the money to &#8230; <a href="http://johnksawers.com/microconf-2011-a-conference-for-micropreneurs-single-founder-startups/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>The guys behind the <a href="http://micropreneur.com">Micropreneur Academy</a> have just launch a conference taking place in June 2011. They&#8217;re calling it <a href="http://www.microconf.com">MicroConf: The Conference for Self-Funded Startups and Single Founders</a> and it sounds great. Who knows if I&#8217;ll have the money to attend, but it sounds like a great time. I&#8217;d love to meet them all, and especially <a href="http://www.kalzumeus.com/">Patrick Mackenzie</a>.</p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/9rQF2WIlXxc" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/microconf-2011-a-conference-for-micropreneurs-single-founder-startups/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intake forms</title>
		<link>http://johnksawers.com/intake-forms/</link>
		<comments>http://johnksawers.com/intake-forms/#comments</comments>
		<pubDate>Sun, 06 Mar 2011 05:26:19 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=11</guid>
		<description><![CDATA[I&#8217;m building a system whereby each practitioner can customize their intake form. I&#8217;ll provide a wide range of sections that can be added/removed and re-ordered. This is obviously a bit of a challenge. I still haven&#8217;t figured out how I&#8217;ll &#8230; <a href="http://johnksawers.com/intake-forms/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m building a system whereby each practitioner can customize their intake form. I&#8217;ll provide a wide range of sections that can be added/removed and re-ordered. This is obviously a bit of a challenge. I still haven&#8217;t figured out how I&#8217;ll handle validation, I&#8217;ll probably have to write something custom.</p>
<p>Today was a big push in that direction. I build a nice UI with jQuery drag and drop to re-order the modules. I still have to build the adding modules part, and saving the new order to the DB. I&#8217;ve laid the groundwork there though, by changing the model relationships. Initially Users had <code>:has_and_belongs_to_many</code> relationships with <strong>FormSections</strong>. But that didn&#8217;t let me save the order in which the <strong>FormSections</strong> were saved. So I fleshed out the <strong>FormSectionsUsers</strong> model to be fully fledged with id and order columns, and some indices. Then I changed the relationshop to <code>:has_many, :through</code>.</p>
<p>One thing that&#8217;s so easy to miss in the <a href="http://guides.rubyonrails.org/association_basics.html#the-has_many-through-association">Guide</a> is that you need <code>:has_many</code> definitions for both the target of the association, and for the association model itself. Don&#8217;t forget the asterisked lines below (from the Association Guide):</p>
<pre class="brush: ruby; title: ; notranslate">
class Physician
***has_many :appointments***
has_many :patients, :through =&amp;gt; :appointments
end

class Appointment
belongs_to :physician
belongs_to :patient
end

class Patient
***has_many :appointments***
has_many :physicians, :through =&amp;gt; :appointments
end
</pre>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/intake-forms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Theme</title>
		<link>http://johnksawers.com/new-theme/</link>
		<comments>http://johnksawers.com/new-theme/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 04:02:41 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=12</guid>
		<description><![CDATA[Over the weekend, I re-created the theme for this blog. My goal was to jettison the old base theme that I&#8217;d used to create the previous theme, because it was never quite complete, and the underlying theme code was buggy. &#8230; <a href="http://johnksawers.com/new-theme/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>Over the weekend, I re-created the theme for this blog. My goal was to jettison the old base theme that I&#8217;d used to create the previous theme, because it was never quite complete, and the underlying theme code was buggy. You may have seen some errors here from time to time. </p>
<p>I wanted to go super-modern when I did this, so I selected two candidates, <a href="http://drupal.org/project/adaptivetheme">AdaptiveTheme</a>, and <a href="http://drupal.org/project/zentropy">Zentropy</a>. I was drawn to Adaptive because they prominently display HTML5 compatability, and I was interested in Zentropy because it incorporates <a href="http://html5boilerplate.com/">HTML5 Boilerplate</a>. </p>
<p>I love the idea of HTML5 Boilerplate, and I&#8217;m going to incorporate it into <a href="http://innerlighttools.com/">my alternative health management application, Inner Light Tools</a>. </p>
<p>I ended up selecting AdaptiveTheme because it&#8217;s built for easy sub-themeing. I prefer building as a subtheme simply because my code and their code is separated, and I can update the base theme as needed for bug fixes. </p>
<p>Deploying the new theme turned out to be a pin in the ass, on Drupal 6, because it had built it using the D7 that I have installed locally. So I bit the bullet and upgraded this installation to Drupal 7 Friday night. It was pretty smooth for an upgrade that big. I&#8217;m still learning my way around D7, so some things are still a bit wonky. But it&#8217;s a massive improvement, so I&#8217;m glad it&#8217;s done now. </p>
<p><i>Bugger, WYSIWYG editing is still broken for me, it just posts empty content. I had to go back and disable it, then repost this</i></p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/fnDnCyAWplA" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/new-theme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8230;On Long Passwords</title>
		<link>http://johnksawers.com/on-long-passwords/</link>
		<comments>http://johnksawers.com/on-long-passwords/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 14:34:22 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=13</guid>
		<description><![CDATA[I like to think I&#8217;m fairly security conscious. I have a different password for most of the sites I use. I track them all using Passpack.com. I use it to auto-generate complex passwords whenever I create a new login. I &#8230; <a href="http://johnksawers.com/on-long-passwords/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>I like to think I&#8217;m fairly security conscious. I have a different password for most of the sites I use. I track them all using <a href="http://passpack.com">Passpack.com</a>. I use it to auto-generate complex passwords whenever I create a new login. </p>
<p>I also use <a href="http://www.creditkeeper.com">CreditKeeper</a>, which gives me a monthly look at  my credit score from all three angencies. Yesterday, I decided to improve the security of  my password there. I discovered the following requirements on their password field: length 6-10, only letters and numbers. </p>
<p>That&#8217;s unbelievably crappy. Kinda as bad as you can get. They recommend not using dictionary words, but I&#8217;ll bet you $100 they don&#8217;t check that when you submit.</p>
<p>So, I wrote them the following message:</p>
<blockquote><p>
The extra password that you&#8217;ve added to the login system is a fine security improvement. However, as the one site on the internet which contains THE MOST concentrated collection of my financial data, I find it galling that you limit my main password to 10 letters and numbers. That&#8217;s a pitiful level of security. I would really like to use a password like this: R
</p>
<p>But no, your system is actively preventing me from using a secure password. Thanks.
</p>
</blockquote>
<p>As expected, I go a non-answer back from them, basically blowing me off. </p>
<p>Time to go looking for another tri-bureau credit report that<br />
a) doesn&#8217;t suck<br />
b) is marginally readable<br />
c) doesn&#8217;t cost a colossal amount<br />
d) doesn&#8217;t run on a VAX in the basement<br />
e) understands how to handle a password </p>
<p>I fear the chance of that is about 0.01%, Just wading through the spam when I do the search is going to be an nightmare.</p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/DYjLPAg5dcs" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/on-long-passwords/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>In the End</title>
		<link>http://johnksawers.com/in-the-end/</link>
		<comments>http://johnksawers.com/in-the-end/#comments</comments>
		<pubDate>Mon, 21 Feb 2011 00:12:53 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=14</guid>
		<description><![CDATA[I&#8217;m done. I&#8217;ve made good improvements in the look of the &#8216;day view&#8217; calendar stuff, though it still needs work before I&#8217;ll show it to you. I learned a bit about ruby&#8217;s date handling and rails&#8217; i18n in the process. &#8230; <a href="http://johnksawers.com/in-the-end/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>I&#8217;m done.</p>
<p>I&#8217;ve made good improvements in the look of the &#8216;day view&#8217; calendar stuff, though it still needs work before I&#8217;ll show it to you. I learned a bit about ruby&#8217;s date handling and rails&#8217; i18n in the process. </p>
<p>I also finished the mailchimp templates, which look decent now, though they could use a polish at some point. </p>
<p>Overall, I can call this codeathon a success. I&#8217;ve made a significant improvement in the functionality of the app. I&#8217;ve now got a few roads I can travel to really fill out the features that I&#8217;ve build this weekend. I like having starting places, it makes deciding what to do next easier. </p>
<p>One of the techniques I&#8217;ve  used to fight through this weekend is to focus on the list I&#8217;ve prepared, and not get pulled off into coding cul-de-sacs. While all of the work in said cul-de-sac needs to be done, it doesn&#8217;t need to be done now. </p>
<p>The other thing I&#8217;ve had to do is give up on nuanced implementations &#8211; there are a few places where I wished to build modules that handled all the special cases and ambiguities that I know are there. But I had to keep telling myself that working code is what I&#8217;m after, and that it&#8217;s easier to build future code on a working base than to try and get the complex case right the first time. So I build the näive case and live to fight another day. </p>
<ul>
<li><strike>appointment model</strike></li>
<li><strike>appointment controller</strike></li>
<li><strike>appointment view for user, with basic CSS</strike></li>
<li><strike>expand user registration to handle business name</strike></li>
<li><strike>seed data for a few users/appointments/events</strike></li>
<li><strike>subdomain handling in dev, and on server</strike></li>
<li><strike>appointment view for anonymous patient</strike></li>
<li><strike>appointment list for next two days on Center page</strike></li>
<li><strike>super-simple mailchimp template</strike></li>
<li><strike>mailchimp setup for confirmation email</strike></li>
</ul>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/rUcje4VmpFE" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/in-the-end/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Patient login</title>
		<link>http://johnksawers.com/patient-login/</link>
		<comments>http://johnksawers.com/patient-login/#comments</comments>
		<pubDate>Sun, 20 Feb 2011 17:06:58 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=15</guid>
		<description><![CDATA[I just realized that adding Patient login is going to be a very complex change, because now both Practitioners and Patients can be logged in, and I&#8217;ll need to heavily differentiate between their experiences. So, I&#8217;m canceling those two items &#8230; <a href="http://johnksawers.com/patient-login/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>I just realized that adding Patient login is going to be a very complex change, because now both Practitioners and Patients can be logged in, and I&#8217;ll need to heavily differentiate between their experiences. </p>
<p>So, I&#8217;m canceling those two items on my list and moving on to the mailchimp changes. </p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/gaZr8ufPnXs" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/patient-login/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>D&#8217;oh</title>
		<link>http://johnksawers.com/doh/</link>
		<comments>http://johnksawers.com/doh/#comments</comments>
		<pubDate>Sun, 20 Feb 2011 05:17:18 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=16</guid>
		<description><![CDATA[I thought there was a bug in Clearance, because I didn&#8217;t see the password change in the DB. Of course it wasn&#8217;t changing because I was setting it to the same thing every time. Ug. I spent some quality time &#8230; <a href="http://johnksawers.com/doh/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>I thought there was a bug in Clearance, because I didn&#8217;t see the password change in the DB. Of course it wasn&#8217;t changing because I was setting it to the same thing every time. Ug. I spent some quality time with the Clearence code in the debugger though. </p>
<p>I&#8217;m calling it a night though, my neck is killing me. </p>
<p>For tomorrow:</p>
<ul>
<li>patient registration</li>
<li>logged in patient appointment scheduling</li>
<li>super-simple mailchimp template</li>
<li>mailchimp setup for confirmation email</li>
</ul>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/MUXpZ1bo0OY" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/doh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>We have Clearance, Clarence</title>
		<link>http://johnksawers.com/we-have-clearance-clarence/</link>
		<comments>http://johnksawers.com/we-have-clearance-clarence/#comments</comments>
		<pubDate>Sun, 20 Feb 2011 03:18:16 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=17</guid>
		<description><![CDATA[So, I&#8217;ve spent the last few hours mucking with the Clearance based authentication system I&#8217;m using. I&#8217;m trying to get it to reset passwords correctly. I haven&#8217;t gotten that working yet, but I have cleaned up a bunch of stuff &#8230; <a href="http://johnksawers.com/we-have-clearance-clarence/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>So, I&#8217;ve spent the last few hours mucking with the <a href="https://github.com/thoughtbot/clearance">Clearance based</a> authentication system I&#8217;m using. I&#8217;m trying to get it to reset passwords correctly. I haven&#8217;t gotten that working yet, but I have cleaned up a bunch of stuff related to new accounts and logging in, so it&#8217;s been worth it. </p>
<p>I&#8217;ve basically subclassed all the Clearance classes, mostly so that I can define a layout for the pages, but there are a few cases where I&#8217;ve overridden the functionality. </p>
<p>The trickiest part is figuring out all the routes. Clearance installs a bunch of routes, and they&#8217;re not always obvious. Fortunately there&#8217;s:<br /><code><br />
rake routes<br /></code></p>
<p>To list everything that&#8217;s defined, even if it&#8217;s deep down in a gem.</p>
<p>The Clearance guys were nice enough to link to the <a>relevant video</a> on their readme page.</p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/RKOzubu0qLM" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/we-have-clearance-clarence/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Public Calendars</title>
		<link>http://johnksawers.com/public-calendars/</link>
		<comments>http://johnksawers.com/public-calendars/#comments</comments>
		<pubDate>Sun, 20 Feb 2011 01:04:03 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=18</guid>
		<description><![CDATA[Before I took a break to make some drinking chocolate and watch Mega-Shark vs. Giant Octopus (Starring Debbie Gibson), I got public calendars working. If you&#8217;re logged in, you see the full event details on the calendar, if you&#8217;re not &#8230; <a href="http://johnksawers.com/public-calendars/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>Before I took a break to make some drinking chocolate and watch <i>Mega-Shark vs. Giant Octopus</i> (Starring Debbie Gibson), I got public calendars working. If you&#8217;re logged in, you see the full event details on the calendar, if you&#8217;re not logged in, you just see &#8216;unavailable&#8217;.</p>
<p>I also set up subdomain handling, so that if you go to, say, reiki-center.innerlighttools.com/calendar/2011/02, you&#8217;ll see the calendar for that practitioner. I&#8217;ll be using the subdomain stuff all over the place in the future. It was actually trivial to do once I read <a href="http://www.railsdev.ws/blog/10/using-subdomains-in-rails-apps/">this turorial</a>.</p>
<ul>
<li><strike>appointment model</strike></li>
<li><strike>appointment controller</strike></li>
<li><strike>appointment view for user, with basic CSS</strike></li>
<li><strike>expand user registration to handle business name</strike></li>
<li>seed data for a few users/appointments/events</li>
<li><strike>subdomain handling in dev</strike></li>
<li><strike>appointment view for anonymous patient</strike></li>
<li>appointment list for next two days on Center page</li>
<li>patient registration</li>
<li>logged in patient appointment scheduling</li>
<li>super-simple mailchimp template</li>
<li>mailchimp setup for confirmation email</li>
</ul>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/zXP1RtT3WfM" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/public-calendars/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>:has_one, :idiot</title>
		<link>http://johnksawers.com/has_one-idiot/</link>
		<comments>http://johnksawers.com/has_one-idiot/#comments</comments>
		<pubDate>Sat, 19 Feb 2011 21:02:33 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=19</guid>
		<description><![CDATA[So, I just learned the following: :has_one Specifies a one-to-one association with another class. This method should only be used if the other class contains the foreign key. I had thought, erroneously, that when you created a :has_one relationship, that &#8230; <a href="http://johnksawers.com/has_one-idiot/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>So, I just learned the following:</p>
<h3>:has_one</h3>
<blockquote><p>
<i>Specifies a one-to-one association with another class. This method should only be used if the other class contains the foreign key.</i>
</p>
</blockquote>
<p>I had thought, erroneously, that when you created a :has_one relationship, that you also set :belongs_to on the associated object. This is often shown in examples &#8211; but it only works of you&#8217;ve set a foreign key field on both Models. I only had it on one, so my code kept breaking trying to access the associated model from the main model. So it comes down to whether you use :has_one or :belongs_to entirely depends on which one of them has the key. At least it&#8217;s working now.</p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/85HWZeJCPhg" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/has_one-idiot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Day 2: In which I start with the low hanging fruit</title>
		<link>http://johnksawers.com/day-2-in-which-i-start-with-the-low-hanging-fruit/</link>
		<comments>http://johnksawers.com/day-2-in-which-i-start-with-the-low-hanging-fruit/#comments</comments>
		<pubDate>Sat, 19 Feb 2011 15:47:11 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=20</guid>
		<description><![CDATA[I have coffee, I&#8217;m ready to go. Here is the list: appointment model appointment controller refactor appointment into event appointment view for user, with basic CSS expand user registration to handle business name seed data for a few users/appointments/events subdomain &#8230; <a href="http://johnksawers.com/day-2-in-which-i-start-with-the-low-hanging-fruit/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>I have coffee, I&#8217;m ready to go. Here is the list:</p>
<ul>
<li><del>appointment model</del></li>
<li><del>appointment controller</del></li>
<li><del>refactor appointment into event</del></li>
<li>appointment view for user, with basic CSS</li>
<li>expand user registration to handle business name</li>
<li>seed data for a few users/appointments/events</li>
<li>subdomain handling in dev, and on server</li>
<li>appointment view for anonymous patient</li>
<li>appointment lis for next two days on Center page</li>
<li>patient registration</li>
<li>logged in patient appointment scheduling</li>
<li>super-simple mailchimp template</li>
<li>mailchimp setup for confirmation email</li>
</ul>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/8gSaofXm2qc" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/day-2-in-which-i-start-with-the-low-hanging-fruit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scopes (Not the Monkey Trial) in Rails 3</title>
		<link>http://johnksawers.com/scopes-not-the-monkey-trial-in-rails-3/</link>
		<comments>http://johnksawers.com/scopes-not-the-monkey-trial-in-rails-3/#comments</comments>
		<pubDate>Sat, 19 Feb 2011 06:55:22 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=21</guid>
		<description><![CDATA[OK, bad pun. This is the life I lead. Tonight was the first time I&#8217;ve gotten to use the Scopes feature in Rails. I&#8217;d heard about named_scopes a while back, but hadn&#8217;t gotten to a point where I needed one, &#8230; <a href="http://johnksawers.com/scopes-not-the-monkey-trial-in-rails-3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>OK, bad pun. This is the life I lead.</p>
<p>Tonight was the first time I&#8217;ve gotten to use the Scopes feature in Rails. I&#8217;d heard about named_scopes a while back, but hadn&#8217;t gotten to a point where I needed one, so I didn&#8217;t really know how they worked, despite skimming a few articles on them. </p>
<p>I started with the <a href="http://railscasts.com/episodes/108-named-scope">Railscast on named_scope</a>, which is a great intro, but I soon discovered that they&#8217;d changed the syntax in Rails 3. Fortunately I had enough of a grasp on it by then that I was able to change my code to <a href="http://edgerails.info/articles/what-s-new-in-edge-rails/2010/02/23/the-skinny-on-scopes-formerly-named-scope/index.html">the new style</a> with the help of EdgeRails.info. </p>
<p>It was an easy change, and made my code much cleaner. </p>
<p>What I did was add a &#8216;today&#8217; scope to the slot class, so that I can grab all slots for a given day like so:</p>
<p><code><br />
  scope :today, lambda {<br />
	dt = Date.today<br />
	where("slots.start_at &gt;= ? AND slots.end_at<br />
           dt.beginning_of_day, dt.end_of_day)<br />
  }<br /></code></p>
<p>I had to use a lambda in there so that the date code would evaluate when the scope was called, not when the class was first loaded. The syntactic sugar that Rails adds for date handling is wonderful, it makes the code quite a bit easier to read.</p>
<p>That&#8217;s it for tonight, I&#8217;ll hit the low hanging fruit on appointments in the morning.</p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/uq26FawmBxo" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/scopes-not-the-monkey-trial-in-rails-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Calendars in Rails, redux</title>
		<link>http://johnksawers.com/calendars-in-rails-redux/</link>
		<comments>http://johnksawers.com/calendars-in-rails-redux/#comments</comments>
		<pubDate>Sat, 19 Feb 2011 06:43:58 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=22</guid>
		<description><![CDATA[I ended up making a few decisions. First, I figured out how to refactor the appointments and the events into a single Event class that contains many time Slot objects. Because I didn&#8217;t need the day-spanning feature in event-calendar, I &#8230; <a href="http://johnksawers.com/calendars-in-rails-redux/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>I ended up making a few decisions. First, I figured out how to refactor the appointments and the events into a single Event class that contains many time Slot objects. </p>
<p>Because I didn&#8217;t need the day-spanning feature in event-calendar, I decided to kill it and go with a simpler solution based on the Railscasts code I mentioned previously. What that gives me is a nice bare Calendar framework that I can customize all I want without breaking any of the magic that may be hiding under the covers. I hate to end up in Not Invented Here territory, but I think in the end it&#8217;ll make me more agile if I really understand the calendaring code. I suspect a lot of my future work will be in that area.</p>
<p>So now I have a calendar grid displaying with time slots listed in it. I need to build a Day View for scheduling hour-by-hour. I also need to finish ripping out he appointment code and replacing it with the Event classes.</p>
<p>I updated to Rails 3.0.4 as well.</p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/Na444ck3tic" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/calendars-in-rails-redux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Born Slippy &#8211; Underworld</title>
		<link>http://johnksawers.com/born-slippy-underworld/</link>
		<comments>http://johnksawers.com/born-slippy-underworld/#comments</comments>
		<pubDate>Sat, 19 Feb 2011 04:40:47 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=23</guid>
		<description><![CDATA[That was one of the best techno songs of the 90&#8242;s &#8211; a real nostalgia trip for me. I was coding to it 14 years ago. *gulp*]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>That was one of the best techno songs of the 90&#8242;s &#8211; a real nostalgia trip for me. I was coding to it 14 years ago. *gulp*</p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/ABK2jB0k1YI" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/born-slippy-underworld/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Calendaring</title>
		<link>http://johnksawers.com/calendaring/</link>
		<comments>http://johnksawers.com/calendaring/#comments</comments>
		<pubDate>Sat, 19 Feb 2011 03:15:31 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=24</guid>
		<description><![CDATA[I&#8217;m debating whether it was the right choice to use the event-calendar gem. It seems to work, but may not be ideally suited for my needs. I chose it because it had a good looking calendar display, but I realized &#8230; <a href="http://johnksawers.com/calendaring/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>I&#8217;m debating whether it was the right choice to use the <a href="https://github.com/elevation/event_calendar">event-calendar gem</a>. It seems to work, but may not be ideally suited for my needs. I chose it because it had a good looking calendar display, but I realized that I can create one of those fairly easily as long as the code is flexible enough. </p>
<p>I&#8217;m now looking at <a href="https://code.google.com/p/calendardateselect/">calendardateselect</a>, which has a <a href="http://railscasts.com/episodes/213-calendars">Railscast</a>. Also checking out <a href="https://github.com/bcalloway/rails-calendar">rails-calendar</a>.</p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/bEB4wBoOsAQ" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/calendaring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>appointments</title>
		<link>http://johnksawers.com/appointments/</link>
		<comments>http://johnksawers.com/appointments/#comments</comments>
		<pubDate>Sat, 19 Feb 2011 00:37:45 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=25</guid>
		<description><![CDATA[I&#8217;ve already created a system to handle &#8216;Events&#8217; &#8211; the generic term for classes and seminars. I&#8217;m wonering whether the &#8216;Appointment&#8217; model and controller are similar enough to the Events that I can use the same code for both. In &#8230; <a href="http://johnksawers.com/appointments/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>I&#8217;ve already created a system to handle &#8216;Events&#8217; &#8211; the generic term for classes and seminars. I&#8217;m wonering whether the &#8216;Appointment&#8217; model and controller are similar enough to the Events that I can use the same code for both. In order to maintain functionlality in the Event code, I&#8217;m going to keep them separate for now. It&#8217;s possible that as I work the Appointment design will deviate (or converge) from the Event design. In either case I can refactor later once I have working code. </p>
<p>Though I&#8217;m not doing TDD yet, I&#8217;m going to stick with a red-green-refactor kind of thing and not overthink it before I&#8217;ve written a line of code.</p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/yVRaFwr8DXU" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/appointments/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It Begins&#8230;</title>
		<link>http://johnksawers.com/it-begins/</link>
		<comments>http://johnksawers.com/it-begins/#comments</comments>
		<pubDate>Sat, 19 Feb 2011 00:13:09 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=26</guid>
		<description><![CDATA[So, 7pm Friday night, I&#8217;m starting out. My list of tasks is this: appointment model appointment controller appointment view for user, with basic CSS expand user registration to handle business name seed data for a few users/appointments/events subdomain handling in &#8230; <a href="http://johnksawers.com/it-begins/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>So, 7pm Friday night, I&#8217;m starting out. My list of tasks is this:</p>
<ul>
<li>appointment model</li>
<li>appointment controller</li>
<li>appointment view for user, with basic CSS</li>
<li>expand user registration to handle business name</li>
<li>seed data for a few users/appointments/events</li>
<li>subdomain handling in dev, and on server</li>
<li>appointment view for anonymous patient</li>
<li>appointment lis for next two days on Center page</li>
<li>patient registration</li>
<li>logged in patient appointment scheduling</li>
<li>super-simple mailchimp template</li>
<li>mailchimp setup for confirmation email</li>
</ul>
<p>I have no idea if I&#8217;ll get through all of these, or if I&#8217;ll need to find 10 more halfway through tomorrow. But I have Starbucks and Pizza to get me through.</p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/GqMBDcNfYFM" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/it-begins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Codathon 2011 Part 1: The Codening</title>
		<link>http://johnksawers.com/codathon-2011-part-1-the-codening/</link>
		<comments>http://johnksawers.com/codathon-2011-part-1-the-codening/#comments</comments>
		<pubDate>Thu, 10 Feb 2011 16:20:10 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=27</guid>
		<description><![CDATA[I have a 3 day weekend coming up with President&#8217;s day. I figured that would be a good time to hit a turbo-boost on the coding for InnerLightTools. So my plan is to start @ 6pm Friday night. I&#8217;ll write &#8230; <a href="http://johnksawers.com/codathon-2011-part-1-the-codening/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>I have a 3 day weekend coming up with President&#8217;s day. I figured that would be a good time to hit a turbo-boost on the coding for InnerLightTools. So my plan is to start @ 6pm Friday night. I&#8217;ll write as much, and sleep as little, as I can between then and Sunday @6pm.  I&#8217;ll try to blog about it every few hours to fill people in on the progress. My next post will be a schedule of things to tackle over that weekend.</p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/DTNoyKKdC_8" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/codathon-2011-part-1-the-codening/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inner Light Tools</title>
		<link>http://johnksawers.com/inner-light-tools/</link>
		<comments>http://johnksawers.com/inner-light-tools/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 03:04:24 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=28</guid>
		<description><![CDATA[I can agonize forever about when the site I&#8217;m building will be ready for public consumption, so I decided that it&#8217;s &#8220;good enough&#8221; now, and I should bite the bullet. The project I&#8217;ve been working on since last spring is &#8230; <a href="http://johnksawers.com/inner-light-tools/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>I can agonize forever about when the site I&#8217;m building will be ready for public consumption, so I decided that it&#8217;s &#8220;good enough&#8221; now, and I should bite the bullet. </p>
<p>The project I&#8217;ve been working on since last spring is Inner Light Tools. A website to help massage therapists, reiki practitioners, and other alternative healers to <a href="http://innerlighttools.com/">manage their healing practice</a>. It&#8217;s just a landing page right now. Users will be able to manage client information, arrange classes and post sign-up forms, let clients schedule their own appointments. All the good stuff. </p>
<p>I&#8217;ll be launching a blog over there for topics relevant to healing and running a healing business. I&#8217;ll be posting my technical and business info here, as ever.</p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/1C8VzX_NZYc" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/inner-light-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL configuration settings</title>
		<link>http://johnksawers.com/mysql-configuration-settings/</link>
		<comments>http://johnksawers.com/mysql-configuration-settings/#comments</comments>
		<pubDate>Sat, 27 Nov 2010 01:34:48 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=29</guid>
		<description><![CDATA[I&#8217;m posting this here because I don&#8217;t want to forget it. I&#8217;ve used MySQL for almost 10 years, and I never picked up this tidbit of information. Knowing it long ago would have saved me some headaches. If you&#8217;re setting &#8230; <a href="http://johnksawers.com/mysql-configuration-settings/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>I&#8217;m posting this here because I don&#8217;t want to forget it. I&#8217;ve used MySQL for almost 10 years, and I never picked up this tidbit of information. Knowing it long ago would have saved me some headaches. </p>
<p>If you&#8217;re setting up a MySQL connect string, if you use &#8216;localhost&#8217;, the driver will attempt to use the mysql.sock defined for your system. If you use &#8217;127.0.0.1&#8242; it uses the 3306 port that we&#8217;re all used to. </p>
<p>Here I was thinking that localhost:3306 would use the port. </p>
<p>This is particularly important on MacOS 10.6 Snow Leopard because the mysql.sock file isn&#8217;t in the expected location. I was installing a dev version of Drupal to test my themes locally and I kept hitting this error</p>
<p><code>Failed to connect to your MySQL database server. MySQL reports the following message: No such file or directory.</code></p>
<p>Changing to 127.0.0.1 fixed it.</p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/toN_BrAtvpo" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/mysql-configuration-settings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A note about Drupal&#8217;s XML Sitemap module</title>
		<link>http://johnksawers.com/a-note-about-drupals-xml-sitemap-module/</link>
		<comments>http://johnksawers.com/a-note-about-drupals-xml-sitemap-module/#comments</comments>
		<pubDate>Sun, 21 Nov 2010 03:57:48 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=30</guid>
		<description><![CDATA[I&#8217;ve been setting up Drupal&#8217;s XML Sitemap Module and I ran into a problem with a non-obvious solution. When you initially install the module, it sets most content, particularly blog posts, to be excluded from the sitemap. I spent a &#8230; <a href="http://johnksawers.com/a-note-about-drupals-xml-sitemap-module/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>I&#8217;ve been setting up Drupal&#8217;s <a href="http://drupal.org/project/xmlsitemap">XML Sitemap Module</a> and I ran into a problem with a non-obvious solution. When you initially install the module, it sets most content, particularly blog posts, to be excluded from the sitemap. I spent a while poking around Admin looking for a way to include it, since all I have is blog posts. I figured I&#8217;d be able to changed it in the module settings page, but while the &#8216;excluded&#8217; status is listed there for each content-type, you can&#8217;t change it. </p>
<p>Some googling led me to a post pointing out that the include/exclude setting is on the configuration page for the content-type itself, namely blog-post. From there it&#8217;s an easy change.</p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/I2y0GGLBvns" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/a-note-about-drupals-xml-sitemap-module/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bulking up my Drupal install with SEO plugins</title>
		<link>http://johnksawers.com/bulking-up-my-drupal-install-with-seo-plugins/</link>
		<comments>http://johnksawers.com/bulking-up-my-drupal-install-with-seo-plugins/#comments</comments>
		<pubDate>Sun, 21 Nov 2010 03:29:41 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=31</guid>
		<description><![CDATA[I&#8217;m a bit overwhelmed by the sheer number of SEO plugins for drupal. This list of modules is really only a start. I&#8217;ve got all the &#8216;required&#8217; modules installed and a few of the others. It&#8217;ll be tiring to list &#8230; <a href="http://johnksawers.com/bulking-up-my-drupal-install-with-seo-plugins/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>I&#8217;m a bit overwhelmed by the sheer number of SEO plugins for drupal. <a href="http://www.kristen.org/content/drupal-seo-modules">This list of modules</a> is really only a start. I&#8217;ve got all the &#8216;required&#8217; modules installed and a few of the others. It&#8217;ll be tiring to list all of them, but <a href="http://drupal.org/project/pathauto">pathauto</a><a></a> and <a href="http://drupal.org/project/seo_friend">SEO Friend</a> are already very useful after only a few minutes of being installed.</p>
<p>I am by no means an SEO expert, but I&#8217;m learning a lot as I go forward. I don&#8217;t plan to get crazy with the dark arts of SEO, for that is a deep rabbit-hole. But it just makes sense to have the basics covered: page titles, meta tags, canonical urls, 301 redirects and a few other bits.</p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/D9dqvGK2eJ8" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/bulking-up-my-drupal-install-with-seo-plugins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Micropreneur</title>
		<link>http://johnksawers.com/micropreneur/</link>
		<comments>http://johnksawers.com/micropreneur/#comments</comments>
		<pubDate>Sat, 13 Nov 2010 00:34:15 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=32</guid>
		<description><![CDATA[I only learned the word &#8220;micropreneur&#8221; recently. I don&#8217;t know if it was coined by Rob Walling, but he introduced me to it. It is a &#8220;business style&#8221; where the goal is sustainable long-term income, and little, if any hiring. &#8230; <a href="http://johnksawers.com/micropreneur/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>I only learned the word &#8220;micropreneur&#8221; recently. I don&#8217;t know if it was coined by <a href="http://www.softwarebyrob.com">Rob Walling</a>, but he introduced me to it. It is a &#8220;business style&#8221; where the goal is sustainable long-term income, and little, if any hiring. The micropreneur usually runs one more more small websites that actually make money. The difference between that and the usual startup path is there is no exit strategy, no IPOs, VC funding, or crazy growth.</p>
<p>That&#8217;s exactly teh type of business I am hoping to build. I really enjoyed reading Rework, and I had been thinking along those lines. But I didn&#8217;t know there was a name for it until I stumbled across <a href="http://startupbook.net">Start Small, Stay Small</a> and a few of Rob&#8217;s blog posts. </p>
<p>That book has been very informative. It validated some of my initial decisions, and laid out a panoply of guidance that I would have otherwise been without. Very smart, practical stuff.</p>
<p>I&#8217;ve also joined <a href="http://www.micropreneur.com/">the Micropreneur Academy</a> which expands on the information in the book even further, and has a community of founders all doing the same thing together. </p>
<p>I&#8217;m getting ready to launch my &#8220;sales site&#8221; which is a simple one page web page that gives a bit of information about the product and lets people sign up to be notified when I launch. Since launch is still months away, I&#8217;ll have a web presence that I can point people to, and I&#8217;ll hopefully collect a good mailing list that I can leverage at launch time to get a nice bump in traffic. It also allows me to test various SEO and SEM strategies long before I&#8217;ve polished up the code. When I launch, all my SEO will be fully primed in Google. I would not have done it this way without Rob&#8217;s advice.</p>
<p>I&#8217;m almost done finalizing the name of my new product. Once that&#8217;s done, I&#8217;ll let you all know and link over to the sales site.</p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/IGTy35eU2rc" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/micropreneur/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;m Just Getting Started</title>
		<link>http://johnksawers.com/im-just-getting-started/</link>
		<comments>http://johnksawers.com/im-just-getting-started/#comments</comments>
		<pubDate>Sat, 18 Sep 2010 04:59:03 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=33</guid>
		<description><![CDATA[I&#8217;ve been working for the last few months on a new project. I&#8217;m not ready to publicize the details yet though. Once I&#8217;m farther along, I&#8217;ll post all the details. In fact, I&#8217;ll be blogging my progress here as I &#8230; <a href="http://johnksawers.com/im-just-getting-started/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>I&#8217;ve been working for the last few months on a new project. I&#8217;m not ready to publicize the details yet though. Once I&#8217;m farther along, I&#8217;ll post all the details. In fact, I&#8217;ll be blogging my progress here as I go. Suffice it to say I&#8217;m building a web application (SaaS style). </p>
<p>The basics: </p>
<ul>
<li>I&#8217;ll be using Rails 3. I started building with 2.3.8, and I&#8217;m very excited now that 3.0 is out and the plugins I&#8217;m using are now compatible.</li>
<li>I&#8217;m using <a href="http://www.haml-lang.org">Haml</a>, <a href="http://www.sass-lang.org">Sass</a>, <a href="http://github.com/thoughtbot/clearance">Clearance</a> and <a href="http://github.com/justinfrench/formtastic">Formtastic</a>. doubtless I&#8217;ll add more tools later, but that&#8217;s what I&#8217;m starting with. I really like working with Haml and Sass, the learning curve is a little bumpy, but now that I working templates I just love working with them. The markup is so clean!</li>
<li>I&#8217;ll be hosting on <a href="http://www.heroku.com">Heroku</a>, when I get to that point. I really like the flexibility of their offering, I can really tune it to my needs as I grow. I&#8217;ve used Engine Yard Solo, and it&#8217;s a fine service, but it seems less flexible and more manual ( though that could make it more flexible for some). I;ve used plain Ec2 before, but I like the interface that Heroku has built. I haven&#8217;t tried <a href="http://www.scalr.net">Scalr</a>.</li>
</ul>
<p>Coming up: analytics tools, design decisions and more.</p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/uQvunK71_Qs" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/im-just-getting-started/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stupidity</title>
		<link>http://johnksawers.com/stupidity/</link>
		<comments>http://johnksawers.com/stupidity/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 17:52:00 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=34</guid>
		<description><![CDATA[&#8220;Probably it&#8217;s simply that stupidity more often takes the form of having few ideas than wrong ones.&#8221;&#8211;Paul Graham]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>&#8220;Probably it&#8217;s simply that stupidity more often takes the form of having few ideas than wrong ones.&#8221;&#8211;Paul Graham</p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/xd2aLemP_-w" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/stupidity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ups and Downs with Capistrano</title>
		<link>http://johnksawers.com/ups-and-downs-with-capistrano/</link>
		<comments>http://johnksawers.com/ups-and-downs-with-capistrano/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 01:53:00 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=35</guid>
		<description><![CDATA[Capistrano is an insanely useful deployment system for Rails (among other things). But I just spent two hours banging against an annoying issue.After Cap extracts the latest code from my source repo (hg), it tries to set the group permissions &#8230; <a href="http://johnksawers.com/ups-and-downs-with-capistrano/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>Capistrano is an insanely useful deployment system for Rails (among other things). But I just spent two hours banging against an annoying issue.After Cap extracts the latest code from my source repo (hg), it tries to set the group permissions on the files. Due to some oddness in the setup on my server this fails, even though they already have g+w set on them. It was outputting this:<code>* executing "chmod -R g+w /wwwDocs/foo/releases/20080303233346"</code>And then listing a series of files with &#8220;Operation not permitted&#8221;. At least I had the benefit of this output. Some stories I ready involved FastCGI failing silently after the permissions changed. Man. I got lucky.Some quick googling led me to a number of stories mentioning that cap is running &#8220;set_permissions&#8221; after the code update, and that overriding it like so will stop it from doing that:<code>task :set_permissions, :except =&gt; { :no_release =&gt; true } do  # do nothingend</code>However, that had zero effect. I tried many different permutations. Once I finally dug into the actual cap recipes file (which I should have done earlier), I discovered that in my (apparently newer [2.2.0]) version of capistrano, they helpfully moved the activation of this code to a flag<code> task :finalize_update, :except =&gt; { :no_release =&gt; true } do    run "chmod -R g+w #{latest_release}" if fetch(:group_writable, true)</code>So, I set that flag and all was finally well. Too bad there is so much info out there that&#8217;s misleading. It&#8217;s not the fault of the people who posted it, they were being helpful at the time. Anyway, I hope this post helps some other people out of the same jam.</p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/4tShlj04sVM" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/ups-and-downs-with-capistrano/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I like the whimsy of it</title>
		<link>http://johnksawers.com/i-like-the-whimsy-of-it/</link>
		<comments>http://johnksawers.com/i-like-the-whimsy-of-it/#comments</comments>
		<pubDate>Wed, 27 Feb 2008 18:52:00 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=36</guid>
		<description><![CDATA[I was perusing this post on programming.reddit.com and in the first 10 comments I found this: &#8220;The janitors at MIT have mops whose bristles are made from the parenthesis discarded by the first-year students in their programming classes.&#8221;]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>I was perusing <a href="http://reddit.com/info/6dnll/comments/">this</a> post on <a href="http://programming.reddit.com/">programming.reddit.com</a> and in the first 10 comments I found this:</p>
<blockquote><p>&#8220;The janitors at MIT have mops whose bristles are made from the parenthesis discarded by the first-year students in their programming classes.&#8221;</p></blockquote>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/-afg5y6axb4" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/i-like-the-whimsy-of-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby in Leopard</title>
		<link>http://johnksawers.com/ruby-in-leopard/</link>
		<comments>http://johnksawers.com/ruby-in-leopard/#comments</comments>
		<pubDate>Thu, 21 Feb 2008 20:07:00 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=37</guid>
		<description><![CDATA[Just in case you were as bewildered as I was trying to figure out where all the ruby files in leopard live, here is a thorough explanation:WhatsNewInLeopard&#8220;locate ruby&#8221; shows files in a number of different places, and this explains what &#8230; <a href="http://johnksawers.com/ruby-in-leopard/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>Just in case you were as bewildered as I was trying to figure out where all the ruby files in leopard live, here is a thorough explanation:<a href="http://trac.macosforge.org/projects/ruby/wiki/WhatsNewInLeopard">WhatsNewInLeopard</a>&#8220;locate ruby&#8221; shows files in a number of different places, and this explains what each one is. Very handy.</p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/pUhee1ZqCVg" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/ruby-in-leopard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More reasons why browsers and flash suck</title>
		<link>http://johnksawers.com/more-reasons-why-browsers-and-flash-suck/</link>
		<comments>http://johnksawers.com/more-reasons-why-browsers-and-flash-suck/#comments</comments>
		<pubDate>Wed, 30 Jan 2008 22:15:00 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/?p=38</guid>
		<description><![CDATA[Mac Firefox (2.0.0.11) has a few bugs. One of them is this weird font anti-aliasing bug where fonts are anti-aliased at one setting in a normal page, but if you set the opacity of any object on that page, then &#8230; <a href="http://johnksawers.com/more-reasons-why-browsers-and-flash-suck/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded">
<p>Mac Firefox (2.0.0.11) has a few bugs. One of them is this weird font anti-aliasing bug where fonts are anti-aliased at one setting in a normal page, but if you set the opacity of any object on that page, then they swap into a different mode. You can see the font strokes getting thicker or thinner. It&#8217;s really obvious with bold fonts. We ran into this issue with a recent release. On our home page were two rotating banners, we use Scriptaculous to Fade() and Appear() each one, so they cross fade into each other. Saves real-estate nicely. However, when it started the cross fade, the fonts would thin, then when it was done, they would thicken back up. It didn&#8217;t bother me, but the higher ups thought it was a catastrophe, so I hunted around for a solution. Eventually we hit on setting &#8220;-moz-opacity: 99&#8243; on the body element, forcing it into one mode all the time. So we cruise along with that for 6 months until we add some flash to another page in the site. Works great for everyone but poor little old me in FF Mac. If the flash has &#8220;wmode&#8221; set to &#8220;transparent&#8221; the flash object appears, but then goes blank, and only appears in parts where my mouse drags over it. In that setting our DHTML menus don&#8217;t appear in front of it, so it&#8217;s useless.So we switch to &#8220;wmode=opaque&#8221; and it &#8220;solves&#8221; that problem, now the flash box is completely empty all the time. Some googling around points me to problems between flash and CSS opacity, so my first thought was to take out that -moz-opacity declaration and whaddayaknow, everything works. So we override that opacity setting on the flash page and we&#8217;re all good.</p>
</div></div>
<p><img src="http://feeds.feedburner.com/~r/johnksawers/BmnS/~4/4KruYJYvzh0" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/more-reasons-why-browsers-and-flash-suck/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bad Idea Fridays</title>
		<link>http://johnksawers.com/bad-idea-fridays/</link>
		<comments>http://johnksawers.com/bad-idea-fridays/#comments</comments>
		<pubDate>Fri, 10 Dec 2004 23:37:00 +0000</pubDate>
		<dc:creator>johnksawers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnksawers.com/2004/12/bad-idea-fridays/</guid>
		<description><![CDATA[When you don&#8217;t have any milk, and you need to make Kraft Macaroni &#38; Cheese, use a Starbucks DoubleShot instead.]]></description>
				<content:encoded><![CDATA[<ol>
<li>When you don&#8217;t have any milk, and you need to make Kraft Macaroni &amp; Cheese, use a Starbucks DoubleShot instead.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://johnksawers.com/bad-idea-fridays/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
