<?xml version="1.0" encoding="UTF-8" ?><?xml-stylesheet type="text/xsl" href="/css/feed.xsl" ?><rss version="2.0"><channel><title>Recent Writing - Mark Story</title><link>http://mark-story.com/posts/rss</link><description>Recent writing and musings of Mark Story</description><language>en-us</language><managingEditor>mark@mark-story.com (Mark Story)</managingEditor><item><title>The CakeRequest object in CakePHP 2.0</title><link>http://mark-story.com/posts/view/the-cakerequest-object-in-cakephp-2-0?utm_source=rss</link><guid>http://mark-story.com/posts/view/the-cakerequest-object-in-cakephp-2-0?utm_source=rss</guid><description>	Work on CakePHP 2.0 is moving along, and I wanted to take some time to discuss and explain one of the sizeable refactorings that has been done for 2.0.  In previous versions request parameters were just a bunch of arrays that were copied to the various places they were needed in the framework.</description><pubDate>Sun, 29 Aug 2010 23:12:13 -0400</pubDate></item><item><title>PHP floats, localization and landmines</title><link>http://mark-story.com/posts/view/php-floats-localization-and-landmines?utm_source=rss</link><guid>http://mark-story.com/posts/view/php-floats-localization-and-landmines?utm_source=rss</guid><description>	Since PHP lacks a decimal type, it only has floats and integers.  Arbitrary precision floating points are reasonable once you stop expecting them to be precise.  I&#8217;ve learned to deal with PHP&#8217;s floats, and arbitrary precision floats in general.  However, floats behaving totally different based on the current locale, was something I didn&#8217;t expect.</description><pubDate>Thu, 19 Aug 2010 00:01:35 -0400</pubDate></item><item><title>Making custom tags in Twig</title><link>http://mark-story.com/posts/view/making-custom-tags-in-twig?utm_source=rss</link><guid>http://mark-story.com/posts/view/making-custom-tags-in-twig?utm_source=rss</guid><description>	I&#8217;ve been playing around with Twig in the last few weeks. I was in need of a template parser and wanted to avoid Smarty as I&#8217;ve had unpleasant experiences with it in the past, which lead me to Twig.</description><pubDate>Mon, 02 Aug 2010 23:30:12 -0400</pubDate></item><item><title>AssetCompress 0.2 released</title><link>http://mark-story.com/posts/view/assetcompress-0-2-released?utm_source=rss</link><guid>http://mark-story.com/posts/view/assetcompress-0-2-released?utm_source=rss</guid><description>	Over the weekend I put some time into my AssetCompress plugin.  A few remaining issues were fixed and a few new features have been added since the previous release.</description><pubDate>Sat, 10 Jul 2010 18:38:25 -0400</pubDate></item><item><title>Getting familiar with PHPUnit Mocks</title><link>http://mark-story.com/posts/view/getting-familiar-with-phpunit-mocks?utm_source=rss</link><guid>http://mark-story.com/posts/view/getting-familiar-with-phpunit-mocks?utm_source=rss</guid><description>	As you may or may not know CakePHP is transitioning to PHPUnit and with this transition comes a totally new Mock object interface/implementation.</description><pubDate>Wed, 23 Jun 2010 21:53:41 -0400</pubDate></item><item><title>Deploying a CakePHP site with Capistrano</title><link>http://mark-story.com/posts/view/deploying-a-cakephp-site-with-capistrano?utm_source=rss</link><guid>http://mark-story.com/posts/view/deploying-a-cakephp-site-with-capistrano?utm_source=rss</guid><description>	In the past I&#8217;ve used a variety of tools to deploy client sites, most often using version control.  However, for my blog I&#8217;ve always used FTP.  Its a pretty old-school approach, and something that I&#8217;ve been lacking the time to correct. Last weekend I finally took the plunge and figured out how to get Capistrano to deploy my site.</description><pubDate>Sun, 30 May 2010 11:45:54 -0400</pubDate></item><item><title>CakePHP and PHPUnit</title><link>http://mark-story.com/posts/view/cakephp-and-phpunit?utm_source=rss</link><guid>http://mark-story.com/posts/view/cakephp-and-phpunit?utm_source=rss</guid><description>	In the recent bakery article concerning the ongoing development of CakePHP 2.0. The already underway migration from SimpleTest to PHPUnit was introduced.  I wanted to go into some of the reasons and motivations for that decision as well as explain some of the long term benefits.</description><pubDate>Mon, 17 May 2010 18:32:34 -0400</pubDate></item><item><title>Introspecting your CakePHP application with the App class</title><link>http://mark-story.com/posts/view/introspecting-your-cakephp-application-with-the-app-class?utm_source=rss</link><guid>http://mark-story.com/posts/view/introspecting-your-cakephp-application-with-the-app-class?utm_source=rss</guid><description>	Normally when people think of the App class, they think of a file loader.  However, App is also able to introspect your application and provide information about the resources it contains.</description><pubDate>Sun, 02 May 2010 16:58:31 -0400</pubDate></item><item><title>E_NOTICE is your friend</title><link>http://mark-story.com/posts/view/e_notice-is-your-friend?utm_source=rss</link><guid>http://mark-story.com/posts/view/e_notice-is-your-friend?utm_source=rss</guid><description>	Errors and error reporting an important part of the development and debugging cycle. In interpreted languages, there are a number of runtime errors that can really help you debug your code.  Some languages like python don&#8217;t give you a way to make the errors go away, but for better or worse PHP does.</description><pubDate>Sun, 18 Apr 2010 22:08:46 -0400</pubDate></item><item><title>Using MongoDb with CakePHP</title><link>http://mark-story.com/posts/view/using-mongodb-with-cakephp?utm_source=rss</link><guid>http://mark-story.com/posts/view/using-mongodb-with-cakephp?utm_source=rss</guid><description>	NoSQL datasources are becoming a bigger part of our everyday life as web developers.  If you haven&#8217;t heard about it before, MongoDB is a SQL free database built in C++.</description><pubDate>Sun, 28 Mar 2010 22:49:44 -0400</pubDate></item><item><title>Asset Compress plugin released</title><link>http://mark-story.com/posts/view/asset-compress-plugin-released?utm_source=rss</link><guid>http://mark-story.com/posts/view/asset-compress-plugin-released?utm_source=rss</guid><description>	I&#8217;ve just released another plugin for CakePHP.  This one helps reduce the number of HTTP requests made by helping you concatenate and compress your asset files.  I&#8217;ve been working on it on and off for about 3 months now, and am pretty happy with where it is.  It includes both server side and client side libraries for loading compressed files.</description><pubDate>Sat, 20 Mar 2010 12:53:14 -0400</pubDate></item><item><title>The value of a simple release process</title><link>http://mark-story.com/posts/view/the-value-of-a-simple-release-process?utm_source=rss</link><guid>http://mark-story.com/posts/view/the-value-of-a-simple-release-process?utm_source=rss</guid><description>	I&#8217;ve been doing many of the CakePHP releases, since &#8220;the great framework apocalypse of imminent doom&#8221;.  Between then and now, CakePHP has had quite a few releases. During these past few months, I&#8217;ve really begun to understand the value of a simple release process.  When I initially started doing releases for CakePHP, our release process involved many steps and I was doing them all manually.</description><pubDate>Sun, 07 Mar 2010 21:46:10 -0500</pubDate></item><item><title>Acl Extras Updated to CakePHP 1.3</title><link>http://mark-story.com/posts/view/acl-extras-updated-to-cakephp-1-3?utm_source=rss</link><guid>http://mark-story.com/posts/view/acl-extras-updated-to-cakephp-1-3?utm_source=rss</guid><description>	Over the long Ontario weekend, I took some time to update Acl Extras.  It now works with plugins and the improvements made to the Auth + Acl for 1.3.  The master branch contains the CakePHP 1.3 compatible version.  While the 1.0.0 tag, and 1.0 branch are still compatible with CakePHP 1.2.</description><pubDate>Mon, 15 Feb 2010 22:29:20 -0500</pubDate></item><item><title>Cleaning house and sprucing up the place</title><link>http://mark-story.com/posts/view/cleaning-house-and-sprucing-up-the-place?utm_source=rss</link><guid>http://mark-story.com/posts/view/cleaning-house-and-sprucing-up-the-place?utm_source=rss</guid><description>	Its been a few weeks of working in the evenings but its pretty much done.  I&#8217;ve been wanting to do this redesign for a while now.  2 years ago when I built the version of this domain you&#8217;ve all come to know, I attempted to create a design that was different from other programming blogs, and fused my interests in both design and programming. I feel it turned out well.</description><pubDate>Mon, 01 Feb 2010 21:41:26 -0500</pubDate></item><item><title>Using custom Route classes in CakePHP</title><link>http://mark-story.com/posts/view/using-custom-route-classes-in-cakephp?utm_source=rss</link><guid>http://mark-story.com/posts/view/using-custom-route-classes-in-cakephp?utm_source=rss</guid><description>	New for CakePHP 1.3 is the ability to create and use custom route classes for your application&#8217;s routing.  In the past the router did double duty, managing route collections and routes were just arrays. In 1.3 Router underwent some surgery and CakeRoute was extracted as an object to represent a single route. While Router was left as a manager of routes.</description><pubDate>Wed, 27 Jan 2010 18:06:32 -0500</pubDate></item><item><title>The argument for flag arguments </title><link>http://mark-story.com/posts/view/the-argument-for-flag-arguments?utm_source=rss</link><guid>http://mark-story.com/posts/view/the-argument-for-flag-arguments?utm_source=rss</guid><description>	I recently read &#8220;Clean Code&#8221; by Robert Martin an excellent book on writing clear, easy to maintain and well factored code.  In it Robert Martin raises the point that methods should do what their names say, shouldn&#8217;t have &#8216;flag arguments&#8217;, and should do only one thing.  This implies that overloaded methods are out.</description><pubDate>Thu, 14 Jan 2010 20:34:44 -0500</pubDate></item><item><title>hashgrid for Mootools</title><link>http://mark-story.com/posts/view/hashgrid-for-mootools?utm_source=rss</link><guid>http://mark-story.com/posts/view/hashgrid-for-mootools?utm_source=rss</guid><description>	You may have seen the Analog.coop site recently and found some of the easter eggs, like the grid hot keys.  I loved the concept, and made a mental note to spend some time reverse engineering/rebuilding it for my own uses.  Well it just so happens that the guys at Analog have released the #grid on Github, which is great because it made it easier for me to adapt the code and do some small improvements.</description><pubDate>Wed, 30 Dec 2009 23:17:21 -0500</pubDate></item><item><title>DebugKit 1.2 released</title><link>http://mark-story.com/posts/view/debugkit-1-2-released?utm_source=rss</link><guid>http://mark-story.com/posts/view/debugkit-1-2-released?utm_source=rss</guid><description>	Earlier today I tagged and packaged up the 1.2 release of DebugKit.  DebugKit 1.2 features a number of improvements and features over 1.1 which include:</description><pubDate>Sat, 12 Dec 2009 22:22:24 -0500</pubDate></item><item><title>Updating to Cake 1.3</title><link>http://mark-story.com/posts/view/updating-to-cake-1-3?utm_source=rss</link><guid>http://mark-story.com/posts/view/updating-to-cake-1-3?utm_source=rss</guid><description>	Last night I updated this site to run on the latest 1.3 build. While I know I should have done it earlier, I simply haven&#8217;t had the time.  And since I went through it, I figured I could document it and share what the upgrade process is like for a small site, that doesn&#8217;t see a ton of maintenance action like this one.</description><pubDate>Thu, 03 Dec 2009 05:06:27 -0500</pubDate></item><item><title>Learning Raphaël Js - Boxes filled with diagonal lines</title><link>http://mark-story.com/posts/view/learning-rapha-l-js-boxes-filled-with-diagonal-lines?utm_source=rss</link><guid>http://mark-story.com/posts/view/learning-rapha-l-js-boxes-filled-with-diagonal-lines?utm_source=rss</guid><description>	I&#8217;ve been working on a client project that involved some reasonable amount of SVG/VML work.  In order to make my life more sane, I&#8217;ve been using Raphaël JS to do what it does best, which is provide a great API for making sexy vector graphics.</description><pubDate>Fri, 13 Nov 2009 05:15:04 -0500</pubDate></item></channel></rss>