<?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>Frank Glandorf</title>
	<atom:link href="http://frankglandorf.com/feed" rel="self" type="application/rss+xml" />
	<link>http://frankglandorf.com</link>
	<description>Frank&#039;s Home Page</description>
	<lastBuildDate>Tue, 10 Apr 2012 16:30:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CQ page property</title>
		<link>http://frankglandorf.com/work/cq-page-property</link>
		<comments>http://frankglandorf.com/work/cq-page-property#comments</comments>
		<pubDate>Tue, 10 Apr 2012 16:30:24 +0000</pubDate>
		<dc:creator>glandorf</dc:creator>
				<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://frankglandorf.com/?p=1105</guid>
		<description><![CDATA[How to get a page property for code in the html&#8217;s head element.

1
2
3
4
5
6
7
8
9
10
&#60;% 
Node node = currentPage.adaptTo&#40;Node.class&#41;;
node = node.getNode&#40;javax.jcr.Node.JCR_CONTENT&#41;;
&#160;
if &#40;node.hasProperty&#40;&#34;hideInNav&#34;&#41;&#41; &#123;
	Property p = node.getProperty&#40;&#34;hideInNav&#34;&#41;;
	p.getString&#40;&#41;;
	%&#62;&#60;meta name=&#34;robots&#34; content=&#34;noindex&#34;/&#62;&#60;%
&#125;
%&#62;

]]></description>
		<wfw:commentRss>http://frankglandorf.com/work/cq-page-property/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CQ Response already committed</title>
		<link>http://frankglandorf.com/work/cq-response-already-committed</link>
		<comments>http://frankglandorf.com/work/cq-response-already-committed#comments</comments>
		<pubDate>Mon, 26 Mar 2012 19:11:45 +0000</pubDate>
		<dc:creator>glandorf</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[CQ5]]></category>

		<guid isPermaLink="false">http://frankglandorf.com/?p=1103</guid>
		<description><![CDATA[
26.03.2012 15:09:07.640 *ERROR* [0:0:0:0:0:0:0:1 [1332788947102] POST /content/demosite/forms.html HTTP/1.1] com.day.cq.wcm.core.impl.WCMDebugFilter Error during include of SlingRequestPathInfo: path='/content/demosite/forms/jcr:content/par
/start', selectorString='form', extension='html', suffix='null' java.lang.IllegalStateException: Response already committed

]]></description>
		<wfw:commentRss>http://frankglandorf.com/work/cq-response-already-committed/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shared templates in CQ5</title>
		<link>http://frankglandorf.com/work/shared-templates-in-cq5</link>
		<comments>http://frankglandorf.com/work/shared-templates-in-cq5#comments</comments>
		<pubDate>Fri, 16 Mar 2012 18:55:13 +0000</pubDate>
		<dc:creator>glandorf</dc:creator>
				<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://frankglandorf.com/?p=1093</guid>
		<description><![CDATA[CQ has many pitfalls to trap the unwary novice. One of them is the use of &#8220;resources&#8221; which are bits of content on a page. In this case I wanted two templates to share the &#60;head&#62; section.
Each page in CQ5 has a designated template or page structure. The page content is built from components which [...]]]></description>
		<wfw:commentRss>http://frankglandorf.com/work/shared-templates-in-cq5/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP Security component</title>
		<link>http://frankglandorf.com/work/cakephp-security-component</link>
		<comments>http://frankglandorf.com/work/cakephp-security-component#comments</comments>
		<pubDate>Tue, 06 Sep 2011 19:08:37 +0000</pubDate>
		<dc:creator>glandorf</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://frankglandorf.com/?p=908</guid>
		<description><![CDATA[Lately I added CakePHP&#8217;s Security component to a controller. Using the example from the cakephp cookbook caused the $_POST array to be null. Turns out the Security component does not like hidden input fields and will null all the input fields you set validatePost = false.
My controller now looks like:

    var $components [...]]]></description>
		<wfw:commentRss>http://frankglandorf.com/work/cakephp-security-component/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Accessing CRX with Python</title>
		<link>http://frankglandorf.com/work/accessing-crx-the-python</link>
		<comments>http://frankglandorf.com/work/accessing-crx-the-python#comments</comments>
		<pubDate>Wed, 02 Feb 2011 21:02:25 +0000</pubDate>
		<dc:creator>glandorf</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[content management system]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://frankglandorf.com/?p=887</guid>
		<description><![CDATA[As a complement to my previous post about accessing CRX with Ruby, here&#8217;s the equivalent code in Python (or rather Jython). Just remember to add the jackrabbit jar file to the classpath.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import java.lang.String as String
import javax.jcr.Repository as Repository
import javax.jcr.SimpleCredentials as SimpleCredentials
import org.apache.jackrabbit.rmi.client.ClientRepositoryFactory
import org.apache.jackrabbit.commons.JcrUtils as JcrUtils
&#160;
def listChildren &#40;indent, node&#41;:
  print indent+ node.getPath&#40;&#41;
  for n [...]]]></description>
		<wfw:commentRss>http://frankglandorf.com/work/accessing-crx-the-python/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Accessing CRX with Ruby</title>
		<link>http://frankglandorf.com/work/accessing-crx-with-ruby</link>
		<comments>http://frankglandorf.com/work/accessing-crx-with-ruby#comments</comments>
		<pubDate>Wed, 02 Feb 2011 20:14:09 +0000</pubDate>
		<dc:creator>glandorf</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[content management system]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://frankglandorf.com/?p=875</guid>
		<description><![CDATA[Occasionally I make an attempt to learn Ruby. The language has a nicely orthogonal OOP implementation but it&#8217;s not one of the C-like languages I know so the learning curve is steep. I thought I&#8217;d try using Ruby to access our new CMS.
Our web content management system (CMS) uses a data storage system called Content [...]]]></description>
		<wfw:commentRss>http://frankglandorf.com/work/accessing-crx-with-ruby/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Burned by CakePHP (again)</title>
		<link>http://frankglandorf.com/work/burned-by-cakephp-again</link>
		<comments>http://frankglandorf.com/work/burned-by-cakephp-again#comments</comments>
		<pubDate>Tue, 18 Jan 2011 14:02:15 +0000</pubDate>
		<dc:creator>glandorf</dc:creator>
				<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://frankglandorf.com/?p=872</guid>
		<description><![CDATA[Over the weekend we had a php application that was scheduled to close at midnight. Instead about 7pm the complaints started to roll in that the application had closed early. The application used the php function strtotime to determine when to close. If past the deadline then the application redirected to a message page.

1
2
3
4
  [...]]]></description>
		<wfw:commentRss>http://frankglandorf.com/work/burned-by-cakephp-again/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CodeIgniter partial,nested views for common headers/footers</title>
		<link>http://frankglandorf.com/work/codeigniter-partialnested-views-for-common-headersfooters</link>
		<comments>http://frankglandorf.com/work/codeigniter-partialnested-views-for-common-headersfooters#comments</comments>
		<pubDate>Wed, 15 Dec 2010 19:56:33 +0000</pubDate>
		<dc:creator>glandorf</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://frankglandorf.com/?p=818</guid>
		<description><![CDATA[Unlike the CakePHP framework, CodeIgniter has no direct support for common headers/footers. There are a few suggests in their wiki but they have disadvantages. Compared to extending the Controller class or a separate template library; nested/partial views has the advantage of simplicity by using built-in facilities. 
Here&#8217;s a small example I use for illustration.
 In [...]]]></description>
		<wfw:commentRss>http://frankglandorf.com/work/codeigniter-partialnested-views-for-common-headersfooters/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comparing CakePHP and CodeIgniter MVC controllers</title>
		<link>http://frankglandorf.com/work/comparing-cakephp-and-codeigniter-mvc-controllers</link>
		<comments>http://frankglandorf.com/work/comparing-cakephp-and-codeigniter-mvc-controllers#comments</comments>
		<pubDate>Tue, 14 Dec 2010 17:14:05 +0000</pubDate>
		<dc:creator>glandorf</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://frankglandorf.com/?p=812</guid>
		<description><![CDATA[Recently our group reviewed several PHP MVC frameworks. MVC is model, view, controller; a software system architecture that separates data from user presentation from business logic. Four of the most popular are CakePHP, CodeIgniter, Symfony, and Zend Framework. Google trends has a nice graph. We eliminated symfony and Zend Frameworks due to complexity and steep [...]]]></description>
		<wfw:commentRss>http://frankglandorf.com/work/comparing-cakephp-and-codeigniter-mvc-controllers/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using php&#8217;s json_encode to reduce code</title>
		<link>http://frankglandorf.com/work/using-phps-json_encode-to-reduce-code</link>
		<comments>http://frankglandorf.com/work/using-phps-json_encode-to-reduce-code#comments</comments>
		<pubDate>Mon, 29 Nov 2010 01:43:45 +0000</pubDate>
		<dc:creator>glandorf</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[json_encode]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://frankglandorf.com/?p=805</guid>
		<description><![CDATA[Of late I&#8217;ve become enamored with PHP&#8217;s json_encode function. This flexible function takes any PHP item like an object or array and encodes it as a json string. This string is then sent to a client JavaScript application. Since the string is JavaScript, native syntax like dot and brackets are used to access the objects [...]]]></description>
		<wfw:commentRss>http://frankglandorf.com/work/using-phps-json_encode-to-reduce-code/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

