<?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"
	>

<channel>
	<title>Framework for Objective Web</title>
	<atom:link href="http://fow.farcaller.net/blog/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://fow.farcaller.net/blog</link>
	<description>Web development in Objective-C</description>
	<pubDate>Mon, 15 Jun 2009 08:38:37 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>Big refactoring is pending</title>
		<link>http://fow.farcaller.net/blog/index.php/2009/06/big-refactoring-is-pending/</link>
		<comments>http://fow.farcaller.net/blog/index.php/2009/06/big-refactoring-is-pending/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 08:38:37 +0000</pubDate>
		<dc:creator>farcaller</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://fow.farcaller.net/blog/?p=61</guid>
		<description><![CDATA[FOW is officially suspended until I do some refactoring to code and make the repo more structured than it is now.
]]></description>
			<content:encoded><![CDATA[<p>FOW is officially suspended until I do some refactoring to code and make the repo more structured than it is now.</p>
]]></content:encoded>
			<wfw:commentRss>http://fow.farcaller.net/blog/index.php/2009/06/big-refactoring-is-pending/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Primary repo switched to git</title>
		<link>http://fow.farcaller.net/blog/index.php/2008/12/primary-repo-switched-to-git/</link>
		<comments>http://fow.farcaller.net/blog/index.php/2008/12/primary-repo-switched-to-git/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 20:38:38 +0000</pubDate>
		<dc:creator>farcaller</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://fow.farcaller.net/blog/?p=59</guid>
		<description><![CDATA[Primary FOW repo has switched to git. You can see it via web here and clone from this url:
git://git.hackndev.com/farcaller/fow.git
Mercurial repo is kept in sync.
]]></description>
			<content:encoded><![CDATA[<p>Primary FOW repo has switched to git. You can see it via web <a href="http://git.hackndev.com/?p=farcaller/fow.git;a=summary" onclick="pageTracker._trackPageview('/outgoing/git.hackndev.com/?p=farcaller/fow.git_a=summary&referer=');">here</a> and clone from this url:</p>
<pre>git://git.hackndev.com/farcaller/fow.git</pre>
<p>Mercurial repo is kept in sync.</p>
]]></content:encoded>
			<wfw:commentRss>http://fow.farcaller.net/blog/index.php/2008/12/primary-repo-switched-to-git/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SQLitePersistentObjects are now working!</title>
		<link>http://fow.farcaller.net/blog/index.php/2008/12/sqlitepersistentobjects-are-now-working/</link>
		<comments>http://fow.farcaller.net/blog/index.php/2008/12/sqlitepersistentobjects-are-now-working/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 15:27:44 +0000</pubDate>
		<dc:creator>farcaller</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://fow.farcaller.net/blog/?p=57</guid>
		<description><![CDATA[I&#8217;ve did a port of SQLitePersistentObjects to Cocotron, and now it&#8217;s part of libFOW (enabled via BUILD_SQLITEPO option).
Cocotron&#8217;s Obj-C runtime doesn&#8217;t support properties introspection, so for each descendant of SQLitePersistentObject you must define following selector:

+ &#40;NSArray *&#41;getPropertiesList;

It must return an array of all properties in form of NSArrays with two items: property name and encoded [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve did a port of <a href="http://code.google.com/p/sqlitepersistentobjects/" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/sqlitepersistentobjects/?referer=');">SQLitePersistentObjects</a> to Cocotron, and now it&#8217;s part of libFOW (enabled via BUILD_SQLITEPO option).</p>
<p>Cocotron&#8217;s Obj-C runtime doesn&#8217;t support properties introspection, so for each descendant of SQLitePersistentObject you must define following selector:</p>

<div class="wp_syntax"><div class="code"><pre class="objc"><span style="color: #002200;">+</span> <span style="color: #002200;">&#40;</span><span style="color: #0000ff;">NSArray</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>getPropertiesList;</pre></div></div>

<p>It must return an array of all properties in form of NSArrays with two items: property name and encoded type:</p>

<div class="wp_syntax"><div class="code"><pre class="objc"><span style="color: #002200;">+</span> <span style="color: #002200;">&#40;</span><span style="color: #0000ff;">NSArray</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>getPropertiesList
<span style="color: #002200;">&#123;</span>
        <span style="color: #0000ff;">return</span> <span style="color: #002200;">&#91;</span><span style="color: #0000ff;">NSArray</span> arrayWithObjects<span style="color: #002200;">:</span>
                <span style="color: #002200;">&#91;</span><span style="color: #0000ff;">NSArray</span> arrayWithObjects<span style="color: #002200;">:</span>@<span style="color: #666666;">&quot;name&quot;</span>, @<span style="color: #666666;">&quot;@<span style="color: #666666; font-weight: bold;">\&quot;</span>NSString<span style="color: #666666; font-weight: bold;">\&quot;</span>&quot;</span>, <span style="color: #0000ff;">nil</span><span style="color: #002200;">&#93;</span>,
                <span style="color: #002200;">&#91;</span><span style="color: #0000ff;">NSArray</span> arrayWithObjects<span style="color: #002200;">:</span>@<span style="color: #666666;">&quot;favoriteInt&quot;</span>, @<span style="color: #666666;">&quot;i&quot;</span>, <span style="color: #0000ff;">nil</span><span style="color: #002200;">&#93;</span>,
                <span style="color: #002200;">&#91;</span><span style="color: #0000ff;">NSArray</span> arrayWithObjects<span style="color: #002200;">:</span>@<span style="color: #666666;">&quot;birthDate&quot;</span>, @<span style="color: #666666;">&quot;@<span style="color: #666666; font-weight: bold;">\&quot;</span>NSDate<span style="color: #666666; font-weight: bold;">\&quot;</span>&quot;</span>, <span style="color: #0000ff;">nil</span><span style="color: #002200;">&#93;</span>,
        <span style="color: #0000ff;">nil</span><span style="color: #002200;">&#93;</span>;
<span style="color: #002200;">&#125;</span></pre></div></div>

<p>You can get full list of types either from SQLitePersistentObject.h or <a href="http://developer.apple.com/DOCUMENTATION/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/chapter_7_section_1.html" onclick="pageTracker._trackPageview('/outgoing/developer.apple.com/DOCUMENTATION/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/chapter_7_section_1.html?referer=');">Cocoa documentation</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://fow.farcaller.net/blog/index.php/2008/12/sqlitepersistentobjects-are-now-working/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ab-comparing FOW and Django</title>
		<link>http://fow.farcaller.net/blog/index.php/2008/12/ab-comparing-fow-and-django/</link>
		<comments>http://fow.farcaller.net/blog/index.php/2008/12/ab-comparing-fow-and-django/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 19:06:57 +0000</pubDate>
		<dc:creator>farcaller</dc:creator>
		
		<category><![CDATA[Prototyping]]></category>

		<guid isPermaLink="false">http://fow.farcaller.net/blog/?p=55</guid>
		<description><![CDATA[I&#8217;ve fixed all the stuff that prevented CTemplate from running on linux and did a quick test of FOW and Django using ab (apache benchmark).
Benchmark consisted of resolving a typical URL regexp, loading handler, loading template and rendering static context onto it. Both Django and FOW were running with 2 threads attached to lighttpd via [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve fixed all the stuff that prevented CTemplate from running on linux and did a quick test of FOW and Django using ab (apache benchmark).</p>
<p>Benchmark consisted of resolving a typical URL regexp, loading handler, loading template and rendering static context onto it. Both Django and FOW were running with 2 threads attached to lighttpd via FCGI.</p>
<p><strong>Django</strong>:</p>
<pre>Concurrency Level:      20
Time taken for tests:   0.403 seconds
Complete requests:      500
Failed requests:        421
   (Connect: 0, Receive: 0, Length: 421, Exceptions: 0)
Write errors:           0
Non-2xx responses:      421
Keep-Alive requests:    403
Total transferred:      257544 bytes
HTML transferred:       173835 bytes
Requests per second:    1239.72 [#/sec] (mean)
Time per request:       16.133 [ms] (mean)
Time per request:       0.807 [ms] (mean, across all concurrent requests)
Transfer rate:          623.60 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.2      0       3
Processing:     1   12  23.1      3     188
Waiting:        1   12  22.7      3     162
Total:          1   12  23.3      3     188

Percentage of the requests served within a certain time (ms)
  50%      3
  66%      3
  75%      3
  80%      4
  90%     64
  95%     66
  98%     68
  99%     76
 100%    188 (longest request)</pre>
<p><strong>FOW</strong>:</p>
<pre>Concurrency Level:      20
Time taken for tests:   0.916 seconds
Complete requests:      500
Failed requests:        0
Write errors:           0
Keep-Alive requests:    480
Total transferred:      179400 bytes
HTML transferred:       104000 bytes
Requests per second:    545.79 [#/sec] (mean)
Time per request:       36.644 [ms] (mean)
Time per request:       1.832 [ms] (mean, across all concurrent requests)
Transfer rate:          191.24 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.1      0       1
Processing:     7   36  14.8     29      83
Waiting:        7   36  14.8     29      83
Total:          7   36  14.8     29      83

Percentage of the requests served within a certain time (ms)
  50%     29
  66%     32
  75%     41
  80%     45
  90%     53
  95%     81
  98%     82
  99%     82
 100%     83 (longest request)</pre>
]]></content:encoded>
			<wfw:commentRss>http://fow.farcaller.net/blog/index.php/2008/12/ab-comparing-fow-and-django/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FOW source code at hackndev.com</title>
		<link>http://fow.farcaller.net/blog/index.php/2008/11/fow-source-code-at-hackndevcom/</link>
		<comments>http://fow.farcaller.net/blog/index.php/2008/11/fow-source-code-at-hackndevcom/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 12:40:07 +0000</pubDate>
		<dc:creator>farcaller</dc:creator>
		
		<category><![CDATA[Building]]></category>

		<guid isPermaLink="false">http://fow.farcaller.net/blog/?p=51</guid>
		<description><![CDATA[I&#8217;ve made FOW repository available for viewing and cloning. You can browse source in trac or use hgweb on Hack&#38;Dev server to browse and clone repository.
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve made FOW repository available for viewing and cloning. You can <a href="http://fow.farcaller.net/trac/browser">browse source in trac</a> or use hgweb on <a href="http://hg.hackndev.com/hgwebdir.cgi/farcaller/fow/" onclick="pageTracker._trackPageview('/outgoing/hg.hackndev.com/hgwebdir.cgi/farcaller/fow/?referer=');">Hack&amp;Dev server</a> to browse and clone repository.</p>
]]></content:encoded>
			<wfw:commentRss>http://fow.farcaller.net/blog/index.php/2008/11/fow-source-code-at-hackndevcom/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FOW, running on real server</title>
		<link>http://fow.farcaller.net/blog/index.php/2008/11/fow-running-on-real-server/</link>
		<comments>http://fow.farcaller.net/blog/index.php/2008/11/fow-running-on-real-server/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 18:16:39 +0000</pubDate>
		<dc:creator>farcaller</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://fow.farcaller.net/blog/?p=47</guid>
		<description><![CDATA[
Today I&#8217;ve thought that FOW is mature enough to be tested on my linux hardware, so I&#8217;ve got updated Cocotron and built FOW on linux.
I have to say lots of thanks to Johannes Fortmann, who has been answering all my stupid questions about GCC, Obj-C runtime and Cocotron.
Now, it is time to really publish some [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://fow.farcaller.net/blog/wp-content/uploads/2008/11/screenshot-2008-11-03-20h-09m-33s.png"><img src="http://fow.farcaller.net/blog/wp-content/uploads/2008/11/screenshot-2008-11-03-20h-09m-33s-300x254.png" alt="" title="fow screenshot" width="300" height="254" class="aligncenter size-medium wp-image-48" /></a></p>
<p>Today I&#8217;ve thought that FOW is mature enough to be tested on my linux hardware, so I&#8217;ve got updated Cocotron and built FOW on linux.</p>
<p>I have to say <strong>lots of thanks</strong> to Johannes Fortmann, who has been answering all my stupid questions about GCC, Obj-C runtime and Cocotron.</p>
<p>Now, it is time to really publish some sources <img src='http://fow.farcaller.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://fow.farcaller.net/blog/index.php/2008/11/fow-running-on-real-server/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Bundle loader in FOWCore</title>
		<link>http://fow.farcaller.net/blog/index.php/2008/11/bundle-loader-in-fowcore/</link>
		<comments>http://fow.farcaller.net/blog/index.php/2008/11/bundle-loader-in-fowcore/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 14:49:15 +0000</pubDate>
		<dc:creator>farcaller</dc:creator>
		
		<category><![CDATA[fowcore]]></category>

		<guid isPermaLink="false">http://fow.farcaller.net/blog/?p=44</guid>
		<description><![CDATA[I&#8217;ve made a basic bundle loader in FOWCore, so now it&#8217;s absolutely usable.
What&#8217;s FOWCore? That&#8217;s an FOW-based application, that you can use if you don&#8217;t want to go low-level with FOW. You write handlers in bundles, and then FOWCore will dynamically load and register handling stuff.
Currently that works via config file. First you list all [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve made a basic bundle loader in FOWCore, so now it&#8217;s absolutely usable.</p>
<p>What&#8217;s FOWCore? That&#8217;s an FOW-based application, that you can use if you don&#8217;t want to go low-level with FOW. You write handlers in bundles, and then FOWCore will dynamically load and register handling stuff.</p>
<p>Currently that works via config file. First you list all the bundles you use:</p>

<div class="wp_syntax"><div class="code"><pre class="xml">	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;key<span style="font-weight: bold; color: black;">&gt;</span></span></span>bundles<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/key<span style="font-weight: bold; color: black;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;array<span style="font-weight: bold; color: black;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;string<span style="font-weight: bold; color: black;">&gt;</span></span></span>../test_servers/TestBundle/build/Debug/TestBundle.bundle<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/string<span style="font-weight: bold; color: black;">&gt;</span></span></span>
		...
	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/array<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre></div></div>

<p>then you configure URL mappings, by providing URL regexp, class name, bundle for class and selector:</p>

<div class="wp_syntax"><div class="code"><pre class="xml">	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;key<span style="font-weight: bold; color: black;">&gt;</span></span></span>handlers<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/key<span style="font-weight: bold; color: black;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;array<span style="font-weight: bold; color: black;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;dict<span style="font-weight: bold; color: black;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;key<span style="font-weight: bold; color: black;">&gt;</span></span></span>url<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/key<span style="font-weight: bold; color: black;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;string<span style="font-weight: bold; color: black;">&gt;</span></span></span>get/(.*)<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/string<span style="font-weight: bold; color: black;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;key<span style="font-weight: bold; color: black;">&gt;</span></span></span>bundle<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/key<span style="font-weight: bold; color: black;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;string<span style="font-weight: bold; color: black;">&gt;</span></span></span>org.hackndev.TestBundle<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/string<span style="font-weight: bold; color: black;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;key<span style="font-weight: bold; color: black;">&gt;</span></span></span>class<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/key<span style="font-weight: bold; color: black;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;string<span style="font-weight: bold; color: black;">&gt;</span></span></span>TestBundle<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/string<span style="font-weight: bold; color: black;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;key<span style="font-weight: bold; color: black;">&gt;</span></span></span>selector<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/key<span style="font-weight: bold; color: black;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;string<span style="font-weight: bold; color: black;">&gt;</span></span></span>handleGet:<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/string<span style="font-weight: bold; color: black;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/dict<span style="font-weight: bold; color: black;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;dict<span style="font-weight: bold; color: black;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;key<span style="font-weight: bold; color: black;">&gt;</span></span></span>url<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/key<span style="font-weight: bold; color: black;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;string<span style="font-weight: bold; color: black;">&gt;</span></span></span>post/(.*)<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/string<span style="font-weight: bold; color: black;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;key<span style="font-weight: bold; color: black;">&gt;</span></span></span>bundle<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/key<span style="font-weight: bold; color: black;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;string<span style="font-weight: bold; color: black;">&gt;</span></span></span>org.hackndev.TestBundle<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/string<span style="font-weight: bold; color: black;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;key<span style="font-weight: bold; color: black;">&gt;</span></span></span>class<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/key<span style="font-weight: bold; color: black;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;string<span style="font-weight: bold; color: black;">&gt;</span></span></span>TestBundle<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/string<span style="font-weight: bold; color: black;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;key<span style="font-weight: bold; color: black;">&gt;</span></span></span>selector<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/key<span style="font-weight: bold; color: black;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;string<span style="font-weight: bold; color: black;">&gt;</span></span></span>handlePost:<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/string<span style="font-weight: bold; color: black;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/dict<span style="font-weight: bold; color: black;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/array<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre></div></div>

<p>I&#8217;m considering two ways to configure a running FOWCore application: either by web interface (there would be thing like &#8220;webconf.bundle&#8221; in FOWCore) or by a configuration utility that would connect to FOWCore instance via unix socket.</p>
]]></content:encoded>
			<wfw:commentRss>http://fow.farcaller.net/blog/index.php/2008/11/bundle-loader-in-fowcore/feed/</wfw:commentRss>
		</item>
		<item>
		<title>GET and POST. Session stuff</title>
		<link>http://fow.farcaller.net/blog/index.php/2008/11/get-and-post-session-stuff/</link>
		<comments>http://fow.farcaller.net/blog/index.php/2008/11/get-and-post-session-stuff/#comments</comments>
		<pubDate>Sat, 01 Nov 2008 09:10:45 +0000</pubDate>
		<dc:creator>farcaller</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://fow.farcaller.net/blog/?p=41</guid>
		<description><![CDATA[I&#8217;ve just implemented nearly all the GET/POST support code in FOWRequest. New implementaion is working better, faster and more secure. All the thread handlers are now wrapped with @try/@catch so server is not going to die on runtime exceptions anymore.
Now working on sessions implementation. Still considering between memcached and sqlite3, but seems that latter is [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just implemented nearly all the GET/POST support code in FOWRequest. New implementaion is working better, faster and more secure. All the thread handlers are now wrapped with @try/@catch so server is not going to die on runtime exceptions anymore.</p>
<p>Now working on sessions implementation. Still considering between memcached and sqlite3, but seems that latter is winning. Sessions are more about persistance than speed.</p>
]]></content:encoded>
			<wfw:commentRss>http://fow.farcaller.net/blog/index.php/2008/11/get-and-post-session-stuff/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Notes on ORM and templates</title>
		<link>http://fow.farcaller.net/blog/index.php/2008/10/notes-on-orm-and-templates/</link>
		<comments>http://fow.farcaller.net/blog/index.php/2008/10/notes-on-orm-and-templates/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 17:12:33 +0000</pubDate>
		<dc:creator>farcaller</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://fow.farcaller.net/blog/?p=39</guid>
		<description><![CDATA[As usual, not much news here, but I&#8217;m still working on FOW ;) Here goes the summary of last updates:

Got HTTP server from Google Toolbox. It might be useful for testing the code;
ActiveRecord looked too complex for me. You can use anything you want for your ORM, but seems that there will be only some DB [...]]]></description>
			<content:encoded><![CDATA[<p>As usual, not much news here, but I&#8217;m still working on FOW ;) Here goes the summary of last updates:</p>
<ul>
<li>Got HTTP server from Google Toolbox. It might be useful for testing the code;</li>
<li>ActiveRecord looked too complex for me. You can use anything you want for your ORM, but seems that there will be only some DB abstraction layer in FOW for now (yup, plain old SQL);</li>
<li><a href="http://mattgemmell.com/2008/05/20/mgtemplateengine-templates-with-cocoa" onclick="pageTracker._trackPageview('/outgoing/mattgemmell.com/2008/05/20/mgtemplateengine-templates-with-cocoa?referer=');">MGTemplateEngine</a> is a very interesting django-looking thing. Might be bundled alongside with Google&#8217;s CTemplate engine;</li>
<li>Source code tree is mostly stabilised now.</li>
</ul>
<p>I have some plans to bundle FOW with a launcher code, that would allow one to have an already compiled fcgi application that would just load handler bundles (and unload, so you could update code in nearly runtime). Flexibility is good. Complexity is not.</p>
<ul></ul>
]]></content:encoded>
			<wfw:commentRss>http://fow.farcaller.net/blog/index.php/2008/10/notes-on-orm-and-templates/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Servers are not the same</title>
		<link>http://fow.farcaller.net/blog/index.php/2008/09/servers-are-not-the-same/</link>
		<comments>http://fow.farcaller.net/blog/index.php/2008/09/servers-are-not-the-same/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 19:30:20 +0000</pubDate>
		<dc:creator>farcaller</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://fow.farcaller.net/blog/index.php/2008/09/servers-are-not-the-same/</guid>
		<description><![CDATA[Today was the day when I finally stopped tweaking ugly builtin Apache config and installed lighttpd on my OSX. Bad news, I&#8217;ve coded rather big part of FOWRequest based on mod_rewrite-specific variables!
It took some time to re-implement old functionality, unit tests are still broken, but now I consider some of the advertised functionality as useless. [...]]]></description>
			<content:encoded><![CDATA[<p>Today was the day when I finally stopped tweaking ugly builtin Apache config and installed lighttpd on my OSX. Bad news, I&#8217;ve coded rather big part of FOWRequest based on mod_rewrite-specific variables!</p>
<p>It took some time to re-implement old functionality, unit tests are still broken, but now I consider some of the advertised functionality as useless. I&#8217;ll implement it later if I would really require things like reconstructing request URL or detecting https.</p>
<p>More new stuff. Now FOWRequest parses GET and simple POST requests on its own (still have to implement multipart stuff).</p>
<p>I&#8217;ve got some plans for session manager. Most possibly it would be based on configurable sqlite (one more dependency) storage. You can choose either in-memory or disk file based on your needs.</p>
<p>Still have to fix Cocotron build script, I really hope to make pre-pre-alpha release this week <img src='http://fow.farcaller.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://fow.farcaller.net/blog/index.php/2008/09/servers-are-not-the-same/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
