<?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's Home Page</description>
	<lastBuildDate>Tue, 06 Sep 2011 19:08:37 +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>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:

1
2
3
4
5
6
7
8
9
10
11
12
    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>
		<item>
		<title>Using CakePHP to insert binary data in SQL Server</title>
		<link>http://frankglandorf.com/work/using-cakephp-to-insert-binary-data-in-sql-server</link>
		<comments>http://frankglandorf.com/work/using-cakephp-to-insert-binary-data-in-sql-server#comments</comments>
		<pubDate>Mon, 22 Nov 2010 21:42:58 +0000</pubDate>
		<dc:creator>glandorf</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[mssql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[sql server]]></category>

		<guid isPermaLink="false">http://frankglandorf.com/?p=783</guid>
		<description><![CDATA[Some people prefer to store their binary data such as images or documents in a database. There are advantages for this. It keeps the all the data in sync and there&#8217;s only one thing to backup. Most databases support arbitrarily large, variable length data through a data type of text or blob. In MS SQL [...]]]></description>
		<wfw:commentRss>http://frankglandorf.com/work/using-cakephp-to-insert-binary-data-in-sql-server/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamically creating HTML tables with jQuery templates and AJAX</title>
		<link>http://frankglandorf.com/work/dynamically-creating-html-tables-with-jquery-templates-and-ajax</link>
		<comments>http://frankglandorf.com/work/dynamically-creating-html-tables-with-jquery-templates-and-ajax#comments</comments>
		<pubDate>Wed, 10 Nov 2010 21:41:45 +0000</pubDate>
		<dc:creator>glandorf</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[table]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://frankglandorf.com/?p=770</guid>
		<description><![CDATA[HTML tables are often created dynamically from a database. Typically the HTML is created on the server and the page sent to the client. Instead, think of HTML tables as if they are just another externally sourced element in a page, like images. This has ramifications for both the server and client. Each table would [...]]]></description>
		<wfw:commentRss>http://frankglandorf.com/work/dynamically-creating-html-tables-with-jquery-templates-and-ajax/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL prepared statements in classic ASP</title>
		<link>http://frankglandorf.com/work/sql-prepared-statements-in-classic-asp</link>
		<comments>http://frankglandorf.com/work/sql-prepared-statements-in-classic-asp#comments</comments>
		<pubDate>Tue, 20 Jul 2010 18:28:01 +0000</pubDate>
		<dc:creator>glandorf</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[SQL injection]]></category>
		<category><![CDATA[SQL prepared statements]]></category>

		<guid isPermaLink="false">http://frankglandorf.com/?p=724</guid>
		<description><![CDATA[One of the more critical web-based application security vulnerabilities is an SQL Injection attack. In this attack, unfiltered user input contains bad SQL which are then executed by your database. Such attacks could do little more than display unauthorized information or an SQL error message. These messages could then be further exploited, e.g. delete all [...]]]></description>
		<wfw:commentRss>http://frankglandorf.com/work/sql-prepared-statements-in-classic-asp/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

