<?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>TK Studios &#187; Listy</title>
	<atom:link href="http://www.tkstudios.com/category/projects/listy/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tkstudios.com</link>
	<description>Web Application Design &#38; Development</description>
	<lastBuildDate>Tue, 27 Apr 2010 20:41:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>PHP hashing performance experiment</title>
		<link>http://www.tkstudios.com/2010/04/25/php-hashing-performance-experiment/</link>
		<comments>http://www.tkstudios.com/2010/04/25/php-hashing-performance-experiment/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 05:26:52 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Listy]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[hash]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://www.tkstudios.com/?p=150</guid>
		<description><![CDATA[Today, in the never-ending quest to tweak server performance by a few milliseconds, I decided to do a bit of testing of various php hashing methods. I therefore wrote a quick script under php (5.2.11 currently, I need to update), which ran each test case 10,000 times to achieve a decent min/avg/max for each case, [...]]]></description>
			<content:encoded><![CDATA[<p>Today, in the never-ending quest to tweak server performance by a few milliseconds, I decided to do a bit of testing of various php hashing methods. I therefore wrote a quick script under php (5.2.11 currently, I need to update), which ran each test case 10,000 times to achieve a decent min/avg/max for each case, on strings of 10KB, 100KB, and 1,000KB in size.</p>
<p>The short version of the result is that the md5() function won across the board. The comments in the <a title="PHP: hash - Manual" href="http://us.php.net/manual/en/function.hash.php">php.net hash function documentation</a> seemed to indicate a performance increase in using hash(&#8216;md5&#8242;,$str), and an even better increase in hash(&#8216;md4&#8242;,$str). I found this to only partially be the case; While using the hash function, md4 is minutely faster than md5, the md5() function itself is considerably faster than either of these.</p>
<p>So, for any performance sensitive case, I would say md5() is by far the best choice.</p>
<p>Actual results of the test suite can be seen here:</p>
<p><a href="http://listy.us/list/view/153"><img src="http://www.listy.us/list/banner/153" alt="PHP Hash Performance by JSylvanus via Listy.us" /></a></p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=PHP+hashing+performance+experiment+http://is.gd/dXqrM+(@tkstudios)" title="Post to Twitter"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=PHP+hashing+performance+experiment+http://is.gd/dXqrM+(@tkstudios)" title="Post to Twitter">Tweet This Post</a> <a class="tt" href="http://digg.com/submit?url=http://www.tkstudios.com/2010/04/25/php-hashing-performance-experiment/&amp;title=PHP+hashing+performance+experiment" title="Post to Digg"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-digg.png" alt="Post to Digg" /></a> <a class="tt" href="http://digg.com/submit?url=http://www.tkstudios.com/2010/04/25/php-hashing-performance-experiment/&amp;title=PHP+hashing+performance+experiment" title="Post to Digg">Digg This Post</a> <a class="tt" href="http://reddit.com/submit?url=http://www.tkstudios.com/2010/04/25/php-hashing-performance-experiment/&amp;title=PHP+hashing+performance+experiment" title="Post to Reddit"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-reddit.png" alt="Post to Reddit" /></a> <a class="tt" href="http://reddit.com/submit?url=http://www.tkstudios.com/2010/04/25/php-hashing-performance-experiment/&amp;title=PHP+hashing+performance+experiment" title="Post to Reddit">Reddit</a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.tkstudios.com/2010/04/25/php-hashing-performance-experiment/&amp;title=PHP+hashing+performance+experiment" title="Post to StumbleUpon"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-su.png" alt="Post to StumbleUpon" /></a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.tkstudios.com/2010/04/25/php-hashing-performance-experiment/&amp;title=PHP+hashing+performance+experiment" title="Post to StumbleUpon">Stumble This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.tkstudios.com/2010/04/25/php-hashing-performance-experiment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework: Email templating with layouts &amp; views</title>
		<link>http://www.tkstudios.com/2009/12/02/zend-framework-email-templating-with-layouts-views/</link>
		<comments>http://www.tkstudios.com/2009/12/02/zend-framework-email-templating-with-layouts-views/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 16:14:24 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Listy]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.tkstudios.com/?p=99</guid>
		<description><![CDATA[This is a solution that I came up with for sending out welcome emails, comment notifications, etc, with nice standardized HTML &#38; text layouts, using a few components of the Zend Framework. Basically you create a view (here called $renderer) and a layout ($layout), then render your views and layouts for both HTML and text [...]]]></description>
			<content:encoded><![CDATA[<p>This is a solution that I came up with for sending out welcome emails, comment notifications, etc, with nice standardized HTML &amp; text layouts, using a few components of the Zend Framework.</p>
<p>Basically you create a view (here called $renderer) and a layout ($layout), then render your views and layouts for both HTML and text versions. My file tree looks like this:</p>
<pre>
application/
	emails/
		welcome.html.phtml
		welcome.text.phtml
		layouts/
			layout.html.phtml
			layout.text.phtml
</pre>
<p>So, &#8216;welcome&#8217; would be your template name, with html and text versions. The layout is what you want wrapped around either version of every email you send out (header graphics, font settings, contact info, etc).</p>
<p>I keep all of my mail functions in one class, creating a new function for each email that needs to be sent out regularly in an automatic fashion. You could even use this for newsletters, but I prefer more robust environments like <a href="http://www.mailchimp.com/">MailChimp</a> or <a href="http://www.campaignmonitor.com/">CampaignMonitor</a> for that sort of thing.</p>
<p>This simple function handles all the rendering, file paths, etc. It just needs to be called with the proper template name, and an array of items to be passed to the view renderer.</p>
<p>Here&#8217;s the meat of it:</p>
<pre>/**
 * getMailContent
 * Renders mailer content in text and html and passes it back as an array('html'=>content,'text'=>content)
 *
 * @param string $templatename the name of the email template to use (APP/emails/[name].[format].phtml)
 * @param array $substitutions key=>value array of variables to pass to the view renderers
 * @return array
 */
public function getMailContent($templatename, $substitutions) {

    // create a view renderer and set it to app_path/emails/
    $renderer = new Zend_View();
    $renderer->setScriptPath(realpath(APPLICATION_PATH . '/emails/'));

    // create a layout object and set it to app_path/emails/layouts
    $layout = new Zend_Layout(APPLICATION_PATH . '/emails/layouts/');
    $layout->setView($renderer); // this probably isn't even necessary

    // assign all substitutions (e.g. view variables) to the view renderer
    foreach ($substitutions as $key => $sub) $renderer->$key = $sub;

    $output = array(); // output array        

    // render text version of template &#038; assign to output['text']
    $layout->content = $renderer->render($templatename . '.text.phtml');
    $layout->setLayout('layout.text');
    $output['text'] = $layout->render();

    // render html version of template &#038; assign to output['html']
    $layout->content = $renderer->render($templatename . '.html.phtml');
    $layout->setLayout('layout.html');
    $output['html'] = $layout->render();

    // all done, return output
    return $output;

}</pre>
<p>Nice and simple, huh? All you need to do is call it and then assign the output to your Zend_Mail object like so:</p>
<pre>        $bodies = $this->getMailContent('new_comment', array(
            'comment' => $comment,
            'comment_list' => $comment_list,
            'comment_user' => $comment_user,
            'list_owner' => $list_owner
        ));
        $mail->setBodyHtml($bodies['html']);
        $mail->setBodyText($bodies['text']);</pre>
<p>Your email template accesses the variables passed to it just as it would a normal view script:
<pre>$this->[variable]</pre>
<p>Commentary / suggestions / etc welcome in comments.</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Zend+Framework%3A+Email+templating+with+layouts+%26+views+http://is.gd/dXqe9+(@tkstudios)" title="Post to Twitter"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Zend+Framework%3A+Email+templating+with+layouts+%26+views+http://is.gd/dXqe9+(@tkstudios)" title="Post to Twitter">Tweet This Post</a> <a class="tt" href="http://digg.com/submit?url=http://www.tkstudios.com/2009/12/02/zend-framework-email-templating-with-layouts-views/&amp;title=Zend+Framework%3A+Email+templating+with+layouts+%26+views" title="Post to Digg"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-digg.png" alt="Post to Digg" /></a> <a class="tt" href="http://digg.com/submit?url=http://www.tkstudios.com/2009/12/02/zend-framework-email-templating-with-layouts-views/&amp;title=Zend+Framework%3A+Email+templating+with+layouts+%26+views" title="Post to Digg">Digg This Post</a> <a class="tt" href="http://reddit.com/submit?url=http://www.tkstudios.com/2009/12/02/zend-framework-email-templating-with-layouts-views/&amp;title=Zend+Framework%3A+Email+templating+with+layouts+%26+views" title="Post to Reddit"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-reddit.png" alt="Post to Reddit" /></a> <a class="tt" href="http://reddit.com/submit?url=http://www.tkstudios.com/2009/12/02/zend-framework-email-templating-with-layouts-views/&amp;title=Zend+Framework%3A+Email+templating+with+layouts+%26+views" title="Post to Reddit">Reddit</a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.tkstudios.com/2009/12/02/zend-framework-email-templating-with-layouts-views/&amp;title=Zend+Framework%3A+Email+templating+with+layouts+%26+views" title="Post to StumbleUpon"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-su.png" alt="Post to StumbleUpon" /></a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.tkstudios.com/2009/12/02/zend-framework-email-templating-with-layouts-views/&amp;title=Zend+Framework%3A+Email+templating+with+layouts+%26+views" title="Post to StumbleUpon">Stumble This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.tkstudios.com/2009/12/02/zend-framework-email-templating-with-layouts-views/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Listy.us is live, still a work in progress</title>
		<link>http://www.tkstudios.com/2009/11/24/listy-us-is-live-still-a-work-in-progress/</link>
		<comments>http://www.tkstudios.com/2009/11/24/listy-us-is-live-still-a-work-in-progress/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 17:28:42 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Listy]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[creative process]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[listy.us]]></category>
		<category><![CDATA[web applications]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.tkstudios.com/?p=93</guid>
		<description><![CDATA[For those that have been following my work by means other than my blog (twitter, facebook), you already know that my big project, www.listy.us, is alive and kicking. I&#8217;ve been meaning to write an actual blog post about it for some time, since it would seem I forgot to do that back in September when [...]]]></description>
			<content:encoded><![CDATA[<p>For those that have been following my work by means other than my blog (<a href="http://www.twitter.com/tkstudios">twitter</a>, <a href="http://www.facebook.com/jim.sylvanus">facebook</a>), you already know that my big project, <a href="http://www.listy.us/">www.listy.us</a>, is alive and kicking. I&#8217;ve been meaning to write an actual blog post about it for some time, since it would seem I forgot to do that back in September when the site actually launched. It&#8217;s improved a lot since then, I think.</p>
<p>Listy.us is a AJAXified table-based list making application. You create a list, edit it by clicking fields and entering your data, and it&#8217;s updated as you tab from item to item. It&#8217;s open-ended enough that you can use it for just about any kind of list you want to make. I designed Listy.us as an application that I would personally enjoy using, and I do use it. <a title="jsylvanus on listy.us" href="http://www.listy.us/user/jsylvanus">My user profile</a> shows some of the lists I&#8217;ve made on the site so far &#8211; the ones I&#8217;ve marked as public, at least.</p>
<p>There have been a lot of features cut out in order to get the application on the internet and getting feedback. User groups, templates, and hypertemplates — templates with extra functionality such as pulling down extra data from outside sources — are all still on the list of &#8220;things to put back in ASAP.&#8221;</p>
<p>There are a lot of different things in this project to write about, so I&#8217;m going to try and break it up into a lot of smaller blog posts over the next couple weeks. What do you want to hear about? The marketing? Writing the editor javascript? The decision to remove advertising? Design revisions? Bits and pieces of Zend Framework code used on the backend?</p>
<p>Next post, I think I&#8217;ll share how I&#8217;m using some <a href="http://framework.zend.com">Zend Framework</a> components to create a mail templating system for new user emails, comment notifications, and the like.</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Listy.us+is+live%2C+still+a+work+in+progress+http://is.gd/dXqs8+(@tkstudios)" title="Post to Twitter"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Listy.us+is+live%2C+still+a+work+in+progress+http://is.gd/dXqs8+(@tkstudios)" title="Post to Twitter">Tweet This Post</a> <a class="tt" href="http://digg.com/submit?url=http://www.tkstudios.com/2009/11/24/listy-us-is-live-still-a-work-in-progress/&amp;title=Listy.us+is+live%2C+still+a+work+in+progress" title="Post to Digg"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-digg.png" alt="Post to Digg" /></a> <a class="tt" href="http://digg.com/submit?url=http://www.tkstudios.com/2009/11/24/listy-us-is-live-still-a-work-in-progress/&amp;title=Listy.us+is+live%2C+still+a+work+in+progress" title="Post to Digg">Digg This Post</a> <a class="tt" href="http://reddit.com/submit?url=http://www.tkstudios.com/2009/11/24/listy-us-is-live-still-a-work-in-progress/&amp;title=Listy.us+is+live%2C+still+a+work+in+progress" title="Post to Reddit"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-reddit.png" alt="Post to Reddit" /></a> <a class="tt" href="http://reddit.com/submit?url=http://www.tkstudios.com/2009/11/24/listy-us-is-live-still-a-work-in-progress/&amp;title=Listy.us+is+live%2C+still+a+work+in+progress" title="Post to Reddit">Reddit</a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.tkstudios.com/2009/11/24/listy-us-is-live-still-a-work-in-progress/&amp;title=Listy.us+is+live%2C+still+a+work+in+progress" title="Post to StumbleUpon"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-su.png" alt="Post to StumbleUpon" /></a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.tkstudios.com/2009/11/24/listy-us-is-live-still-a-work-in-progress/&amp;title=Listy.us+is+live%2C+still+a+work+in+progress" title="Post to StumbleUpon">Stumble This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.tkstudios.com/2009/11/24/listy-us-is-live-still-a-work-in-progress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Chrome Frame is a Necessity</title>
		<link>http://www.tkstudios.com/2009/10/01/why-chrome-frame-is-a-necessity/</link>
		<comments>http://www.tkstudios.com/2009/10/01/why-chrome-frame-is-a-necessity/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 19:11:53 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Listy]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[chrome frame]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[google fanboy]]></category>
		<category><![CDATA[listy.us]]></category>
		<category><![CDATA[thoughts]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.tkstudios.com/?p=91</guid>
		<description><![CDATA[With a ton of users being granted access to Google Wave, and Wave suggesting the installation of Chrome Frame, there&#8217;s been a bit of griping from Microsoft (and others, but I suspect mostly Microsoft) about not liking the ability for the content to choose the browser agent. I can understand why folks would be irked [...]]]></description>
			<content:encoded><![CDATA[<p>With a ton of users being granted access to Google Wave, and Wave suggesting the installation of <a href="http://news.cnet.com/8301-30685_3-10358380-264.html?tag=mncol;txt">Chrome Frame</a>, there&#8217;s been a bit of griping from Microsoft (and others, but I suspect mostly Microsoft) about not liking the ability for the content to choose the browser agent. I can understand why folks would be irked by this, I really can. It messes with their software</p>
<p>However, as a web designer/developer, I can say for a fact that it is absolutely necessary, and it is Microsoft&#8217;s own damned fault that it has come to this. Practically every other browser is up to date, or at least trying to be, with recent web standards. Those that follow my work may have noticed that <a href="http://www.listy.us">Listy.us</a> makes use of a bit of CSS3 and is set up in HTML5 for future expansion. I would love to use all the latest bells and whistles of HTML5/CSS3. Full HTML5 support allows awesome web apps like Google Wave. CSS3, among other things, lets you do cool stuff like drop shadows and curved corners without messy hacks and semantics nightmares. I want to use these things, and I&#8217;d imagine most other developers and designers do as well. The web would be a better place.</p>
<p>The catch? 34% of my visitors use Internet Explorer. That&#8217;s 34% of users that see the site with hard square edges, slow javascript, funky css behaviors, etc. <strong>Of those 34%,  43% are still using IE6.</strong> IE6 doesn&#8217;t even support PNG transparency without a hack. As a lone developer trying to get a web app up to commercial viability, I find myself focusing on development and letting the site degrade nicely (or as well as possible) to IE users – it still works (as long as you have javascript enabled &#8211; risky in IE), it&#8217;s just not as pretty.</p>
<p>So, why is Google Chrome Frame a necessity? Because <em>it fixes the problem</em>. Because it lets all the IE users out there experience sites like Google Wave the way they&#8217;re meant to be experienced. It exists because of those 34% of users still using IE, those 34%*43% still using old-and-broken IE6. It&#8217;s Google&#8217;s way of saying &#8220;Well, crap, we&#8217;re ready to go. If you can&#8217;t get your browser up to speed, we&#8217;ll do it for you.&#8221;</p>
<p>I fully support it, and if MS doesn&#8217;t get their act together, I&#8217;ll be encouraging the use of Chrome Frame on my own projects.</p>
<p>Now, what can Microsoft do about it? Obviously Microsoft has <a href="http://www.sitepoint.com/blogs/2009/09/12/microsoft-ie6-charity-donations/">no interest in prolonging the life of IE6</a>, but supporting it until 2014 doesn&#8217;t do anyone a service. They&#8217;re even offering <a href="http://www.browserforthebetter.com/">charitable donations for each upgrade from IE6</a> (personally, I would&#8217;ve skipped the background music, guys). The problem with continuing to support old-and-broken technology like IE6 is that folks like Google and Mozilla will begin to create products like Google Chrome Frame because <strong>the web is being held back by Internet Explorer</strong>.</p>
<p>I&#8217;ll bottom line it for Microsoft: It is next to impossible to find a web designer/developer that does not loathe Internet Explorer with every fiber of their being. This is a problem. It needs to be dealt with. The rapid growth of technology means you should not support an <em>8-year-old browser</em> that has no business being used on modern websites. <strong>If you don&#8217;t deal with it, someone else will</strong>.</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Why+Chrome+Frame+is+a+Necessity+http://is.gd/dXpNl+(@tkstudios)" title="Post to Twitter"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Why+Chrome+Frame+is+a+Necessity+http://is.gd/dXpNl+(@tkstudios)" title="Post to Twitter">Tweet This Post</a> <a class="tt" href="http://digg.com/submit?url=http://www.tkstudios.com/2009/10/01/why-chrome-frame-is-a-necessity/&amp;title=Why+Chrome+Frame+is+a+Necessity" title="Post to Digg"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-digg.png" alt="Post to Digg" /></a> <a class="tt" href="http://digg.com/submit?url=http://www.tkstudios.com/2009/10/01/why-chrome-frame-is-a-necessity/&amp;title=Why+Chrome+Frame+is+a+Necessity" title="Post to Digg">Digg This Post</a> <a class="tt" href="http://reddit.com/submit?url=http://www.tkstudios.com/2009/10/01/why-chrome-frame-is-a-necessity/&amp;title=Why+Chrome+Frame+is+a+Necessity" title="Post to Reddit"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-reddit.png" alt="Post to Reddit" /></a> <a class="tt" href="http://reddit.com/submit?url=http://www.tkstudios.com/2009/10/01/why-chrome-frame-is-a-necessity/&amp;title=Why+Chrome+Frame+is+a+Necessity" title="Post to Reddit">Reddit</a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.tkstudios.com/2009/10/01/why-chrome-frame-is-a-necessity/&amp;title=Why+Chrome+Frame+is+a+Necessity" title="Post to StumbleUpon"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-su.png" alt="Post to StumbleUpon" /></a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.tkstudios.com/2009/10/01/why-chrome-frame-is-a-necessity/&amp;title=Why+Chrome+Frame+is+a+Necessity" title="Post to StumbleUpon">Stumble This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.tkstudios.com/2009/10/01/why-chrome-frame-is-a-necessity/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Implementing Web Apps as Finite State Machines</title>
		<link>http://www.tkstudios.com/2009/07/11/implementing-web-apps-as-finite-state-machines/</link>
		<comments>http://www.tkstudios.com/2009/07/11/implementing-web-apps-as-finite-state-machines/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 16:41:43 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Listy]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[listy.us]]></category>
		<category><![CDATA[patterns]]></category>
		<category><![CDATA[software design]]></category>
		<category><![CDATA[web applications]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.tkstudios.com/?p=89</guid>
		<description><![CDATA[The revelation that a web application meshes well with the design pattern of a Finite-State Machine (wikipedia link) isn&#8217;t really new. It&#8217;s discussed in a few other places on the web, usually in a scholarly capacity &#8211; the google search returns a lot of articles and research papers. Still, this struck me as something that [...]]]></description>
			<content:encoded><![CDATA[<p>The revelation that a web application meshes well with the design pattern of a Finite-State Machine (<a title="Finite-State Machine at Wikipedia" href="http://en.wikipedia.org/wiki/Finite_State_Machine" target="_blank">wikipedia link</a>) isn&#8217;t really new. It&#8217;s discussed in a <a href="http://www.google.com/search?q=web+applications+as+finite+state+machines" target="_blank">few other places</a> on the web, usually in a scholarly capacity &#8211; the google search returns a lot of articles and research papers. Still, this struck me as something that really should be taught to every fledgeling web developer.</p>
<p>Wikipedia defines an FSM as &#8220;<em>a model of behavior composed of a finite number of </em><a style="text-decoration: none; color: #002bb8; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial;" title="State (computer science)" href="http://en.wikipedia.org/wiki/State_(computer_science)"><em>states</em></a><em>, transitions between those states, and actions.</em>&#8221;</p>
<p>In other words, it&#8217;s a map of how your application works, with consideration for how you get from point A to B to C. The pattern can be used to design simple to very complicated web applications. Listy.us is currently being built around a fairly simple FSM pattern where every state ultimately  returns to an idle state when finished. Entering the state sets everything up: dynamic elements, events, etc. Exiting tears down the event namespace (see <a href="http://docs.jquery.com/Namespaced_Events" target="_blank">jQuery &#8211; Namespaced events</a>) and does any data saving.</p>
<p>You can read about FSMs as applied to game development at <a href="http://www.ai-junkie.com/architecture/state_driven/tut_state1.html" target="_blank">this site</a> (it&#8217;s more readable than the wiki entry). In fact, if the area of artificial intelligence and/or game development interests you, I&#8217;d recommend <a href="http://www.ai-junkie.com/books/toc_pgaibe.html" target="_blank">picking up the book</a> by that site&#8217;s author.</p>
<p>Simple example:<br />
start -&gt; state:idle (enter, run)<br />
-&gt; (click field) -&gt; transition:editMode (exit idle, enter editMode, run editMode)<br />
-&gt; (click out/keypress) -&gt; transition:idle (exit editMode, enter idle, run idle)</p>
<p>Maybe I&#8217;ll clean up the FSM design and post it sometime.</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Implementing+Web+Apps+as+Finite+State+Machines+http://is.gd/dXuDz+(@tkstudios)" title="Post to Twitter"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Implementing+Web+Apps+as+Finite+State+Machines+http://is.gd/dXuDz+(@tkstudios)" title="Post to Twitter">Tweet This Post</a> <a class="tt" href="http://digg.com/submit?url=http://www.tkstudios.com/2009/07/11/implementing-web-apps-as-finite-state-machines/&amp;title=Implementing+Web+Apps+as+Finite+State+Machines" title="Post to Digg"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-digg.png" alt="Post to Digg" /></a> <a class="tt" href="http://digg.com/submit?url=http://www.tkstudios.com/2009/07/11/implementing-web-apps-as-finite-state-machines/&amp;title=Implementing+Web+Apps+as+Finite+State+Machines" title="Post to Digg">Digg This Post</a> <a class="tt" href="http://reddit.com/submit?url=http://www.tkstudios.com/2009/07/11/implementing-web-apps-as-finite-state-machines/&amp;title=Implementing+Web+Apps+as+Finite+State+Machines" title="Post to Reddit"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-reddit.png" alt="Post to Reddit" /></a> <a class="tt" href="http://reddit.com/submit?url=http://www.tkstudios.com/2009/07/11/implementing-web-apps-as-finite-state-machines/&amp;title=Implementing+Web+Apps+as+Finite+State+Machines" title="Post to Reddit">Reddit</a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.tkstudios.com/2009/07/11/implementing-web-apps-as-finite-state-machines/&amp;title=Implementing+Web+Apps+as+Finite+State+Machines" title="Post to StumbleUpon"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-su.png" alt="Post to StumbleUpon" /></a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.tkstudios.com/2009/07/11/implementing-web-apps-as-finite-state-machines/&amp;title=Implementing+Web+Apps+as+Finite+State+Machines" title="Post to StumbleUpon">Stumble This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.tkstudios.com/2009/07/11/implementing-web-apps-as-finite-state-machines/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Marketing&#8217;s Bad Name</title>
		<link>http://www.tkstudios.com/2009/06/09/marketings-bad-name/</link>
		<comments>http://www.tkstudios.com/2009/06/09/marketings-bad-name/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 20:23:31 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Listy]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[TK Studios]]></category>
		<category><![CDATA[listy.us]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[social networking]]></category>
		<category><![CDATA[web applications]]></category>

		<guid isPermaLink="false">http://www.tkstudios.com/?p=84</guid>
		<description><![CDATA[I&#8217;d like to share an experience I had a few years ago: I was at the supermarket, making smalltalk with the cashier, and she asked what I do for a living. I answered truthfully: &#8220;I work in marketing.&#8221; I&#8217;ve never seen someone go from friendly and cheerful to all business so quickly. From the reaction, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;d like to share an experience I had a few years ago: I was at the supermarket, making smalltalk with the cashier, and she asked what I do for a living. I answered truthfully: &#8220;I work in marketing.&#8221;</p>
<p>I&#8217;ve never seen someone go from <em>friendly and cheerful</em> to <em>all business</em> so quickly. From the reaction, you&#8217;d think I&#8217;d said &#8220;I vivisect puppies.&#8221; I haven&#8217;t told someone &#8220;I work in marketing&#8221; since &#8211; at least not out of context.</p>
<p>The thing is, they&#8217;re partly justified. Think of marketing as a consumer and the first things that come to mind are probably an inbox full of spam, copious handfuls of junk mail (physical spam), phone calls while you&#8217;re eating dinner, commercials interrupting your night on the couch, and so on. Hell, why stop there? Don&#8217;t forget the bots posting nonsensical links in your blogs, or the bots and slimy &#8220;marketers&#8221; on Twitter (those guys with 50-100X more &#8220;following&#8221; than &#8220;followers&#8221;).</p>
<p>Yeah. Nowadays you&#8217;d better clarify: &#8220;I work in marketing, but I&#8217;m not one of the guys you hate.&#8221; Luckily these days I can say &#8220;I run my own business through websites,&#8221; and folks don&#8217;t always realize that that job description <em>includes </em>marketing. Being an entrepreneur is much more smalltalk-friendly than working in marketing.</p>
<p>Rule number 1 of modern marketing: <strong>Don&#8217;t be a dick. </strong></p>
<p>Don&#8217;t send people any marketing materials they didn&#8217;t ask for: No spam, no junk mail. Blog comment spam, twitter spammers, etc, are Internet extensions of the old-and-broken mechanic of &#8220;I will interrupt people, steal their attention and valuable time, and they will buy my product.&#8221; People don&#8217;t react like that anymore. They hate you for it. I know I do. Don&#8217;t do it.</p>
<p>My projects will never spam you. I refuse to be that guy.</p>
<p><strong>Listy</strong><strong>.us</strong> will feature Google ads for non-paid accounts. Context sensitivity is it&#8217;s main selling point; If I have no choice but to show ads to support a project, I&#8217;m going to make sure those ads are something you want to see. As soon as a site can stand on its own without ads, the ads will be gone.</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Marketing%E2%80%99s+Bad+Name+http://is.gd/dXtyM+(@tkstudios)" title="Post to Twitter"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Marketing%E2%80%99s+Bad+Name+http://is.gd/dXtyM+(@tkstudios)" title="Post to Twitter">Tweet This Post</a> <a class="tt" href="http://digg.com/submit?url=http://www.tkstudios.com/2009/06/09/marketings-bad-name/&amp;title=Marketing%E2%80%99s+Bad+Name" title="Post to Digg"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-digg.png" alt="Post to Digg" /></a> <a class="tt" href="http://digg.com/submit?url=http://www.tkstudios.com/2009/06/09/marketings-bad-name/&amp;title=Marketing%E2%80%99s+Bad+Name" title="Post to Digg">Digg This Post</a> <a class="tt" href="http://reddit.com/submit?url=http://www.tkstudios.com/2009/06/09/marketings-bad-name/&amp;title=Marketing%E2%80%99s+Bad+Name" title="Post to Reddit"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-reddit.png" alt="Post to Reddit" /></a> <a class="tt" href="http://reddit.com/submit?url=http://www.tkstudios.com/2009/06/09/marketings-bad-name/&amp;title=Marketing%E2%80%99s+Bad+Name" title="Post to Reddit">Reddit</a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.tkstudios.com/2009/06/09/marketings-bad-name/&amp;title=Marketing%E2%80%99s+Bad+Name" title="Post to StumbleUpon"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-su.png" alt="Post to StumbleUpon" /></a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.tkstudios.com/2009/06/09/marketings-bad-name/&amp;title=Marketing%E2%80%99s+Bad+Name" title="Post to StumbleUpon">Stumble This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.tkstudios.com/2009/06/09/marketings-bad-name/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Virtual Currency and Freemium Services</title>
		<link>http://www.tkstudios.com/2009/04/19/virtual-currency-and-freemium-services/</link>
		<comments>http://www.tkstudios.com/2009/04/19/virtual-currency-and-freemium-services/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 00:18:43 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Listy]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[freemium]]></category>
		<category><![CDATA[GDC]]></category>
		<category><![CDATA[metaplace]]></category>
		<category><![CDATA[offer-based marketing]]></category>
		<category><![CDATA[virtual currency]]></category>

		<guid isPermaLink="false">http://www.tkstudios.com/?p=73</guid>
		<description><![CDATA[Here&#8217;s a monetization idea I&#8217;ve been playing with since participating in post-GDC &#8220;Idea Exchange: Emerging Trends in Game Development,&#8221; a sort of virtual conference that was held in both Metaplace and Second Life via a chat bridge between the two (pretty cool in itself). You can see a side-by-side screen comparison here. During that chat, [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a monetization idea I&#8217;ve been playing with since participating in post-GDC &#8220;<em>Idea Exchange: Emerging Trends in Game Development,</em>&#8221; a sort of virtual conference that was held in both Metaplace and Second Life via a chat bridge between the two (pretty cool in itself). You can see a side-by-side screen comparison <a href="http://farm4.static.flickr.com/3639/3429997006_0c46d40d4d_o.jpg">here</a>.</p>
<p>During that chat, a lot of ideas were covered, and Raph briefly touched on how he thought offer-based marketing was a big new trend at GDC. Here&#8217;s the chat log, edited for relevance:</p>
<p><span id="more-73"></span></p>
<blockquote><p><strong>SL: Kim Chihuly:</strong> so fremium and microtransactions &#8211; any other new busines model stuff from GDC?<br />
<strong>Raph:</strong> Yes! offer-based marketing<br />
<strong>Raph:</strong> Huge new trend<br />
<strong>gracemcdunnough:</strong> Raph, explain?<br />
<strong>Raph:</strong> Offer-based marketing: where users are offered discounts/coupons/special access to partner programs, and referral revenue is paid to the oeprator<br />
<strong>Raph:</strong> Reports from companies exploring this is that it has resulted in a 30% or so increase in their revenues<br />
<strong>WorldMaker:</strong> Isn&#8217;t offer-based marketing entirely too 1990s Web 1.0?<br />
<strong>SL: Dave Zeeman:</strong> Sounds like those &#8220;Get a free XBox 360!&#8221; ads.<br />
<strong>SL: Adri Saarinen:</strong> Oh man, Offerpal was all over GDC<br />
<strong>SL: Dave Zeeman:</strong> only in reverse<br />
<strong>gracemcdunnough:</strong> Bounties, those were popular in the early web days</p>
<p><a href="http://beta.metaplace.com/forums/posts/listing/3679">Full log here</a> (Requires Metaplace beta account)</p></blockquote>
<p>So I tossed &#8220;Research Offer-based Marketing&#8221; into my notebook, and forgot about it for a few days. Upon reading it again, I hit up good ol&#8217; Google for some info. Probably the best article I came across was <a href="http://venturebeat.com/2009/04/01/super-rewards-brings-offer-based-virtual-currency-to-the-web-whats-it-worth/">this one at VentureBeat</a>. Good stuff.</p>
<p>How does this apply to my own interests, Listy in particular? Well, I&#8217;m always interested in marketing ideas &#8211; that&#8217;s just how I am. I&#8217;m particularly interested in marketing that doesn&#8217;t inconvenience the audience. No annoyance, etc. Given that, this seemed like a pretty good idea &#8211; I get revenue, user gets two somethings instead of one.</p>
<p>Now throw in virtual currency. What if the premium services on your web app cost a specific amount per month in virtual cash, and you can pick and choose the services you want (rather than free/premium boolean style)? Each service costs a little bit, user&#8217;s pages can have tip jars (tie it into twitter, even: <em>@listybot: tip @tkstudios 100), </em>users can buy points, or get &#8216;em via free offers.</p>
<p>It&#8217;s a pretty fun concept. A bit more complex than just having paid accounts, but definitely much cooler, and more importantly, much more fun. And <a href="http://www.tkstudios.com/2009/03/22/3-disciplines-that-shape-my-work/">fun&#8217;s what it&#8217;s all about</a>, isn&#8217;t it? I mean, besides functionality and usefulness and a hundred other factors&#8230;</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Virtual+Currency+and+Freemium+Services+http://is.gd/dXrHL+(@tkstudios)" title="Post to Twitter"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Virtual+Currency+and+Freemium+Services+http://is.gd/dXrHL+(@tkstudios)" title="Post to Twitter">Tweet This Post</a> <a class="tt" href="http://digg.com/submit?url=http://www.tkstudios.com/2009/04/19/virtual-currency-and-freemium-services/&amp;title=Virtual+Currency+and+Freemium+Services" title="Post to Digg"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-digg.png" alt="Post to Digg" /></a> <a class="tt" href="http://digg.com/submit?url=http://www.tkstudios.com/2009/04/19/virtual-currency-and-freemium-services/&amp;title=Virtual+Currency+and+Freemium+Services" title="Post to Digg">Digg This Post</a> <a class="tt" href="http://reddit.com/submit?url=http://www.tkstudios.com/2009/04/19/virtual-currency-and-freemium-services/&amp;title=Virtual+Currency+and+Freemium+Services" title="Post to Reddit"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-reddit.png" alt="Post to Reddit" /></a> <a class="tt" href="http://reddit.com/submit?url=http://www.tkstudios.com/2009/04/19/virtual-currency-and-freemium-services/&amp;title=Virtual+Currency+and+Freemium+Services" title="Post to Reddit">Reddit</a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.tkstudios.com/2009/04/19/virtual-currency-and-freemium-services/&amp;title=Virtual+Currency+and+Freemium+Services" title="Post to StumbleUpon"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-su.png" alt="Post to StumbleUpon" /></a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.tkstudios.com/2009/04/19/virtual-currency-and-freemium-services/&amp;title=Virtual+Currency+and+Freemium+Services" title="Post to StumbleUpon">Stumble This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.tkstudios.com/2009/04/19/virtual-currency-and-freemium-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Theme and a Project Name</title>
		<link>http://www.tkstudios.com/2009/04/07/new-theme-and-a-project-name/</link>
		<comments>http://www.tkstudios.com/2009/04/07/new-theme-and-a-project-name/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 01:44:08 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Listy]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[TK Studios]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[code samples]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[listy.us]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.tkstudios.com/?p=60</guid>
		<description><![CDATA[The new blog theme has been live for a couple days now. It still has a few tweaks to be done (single post page lacks styles for the next/previous links, for example), possibly some component rearranging, but it&#8217;s okay for now. The look and feel now matches the background on my twitter page, or you [...]]]></description>
			<content:encoded><![CDATA[<p>The new blog theme has been live for a couple days now. It still has a few tweaks to be done (single post page lacks styles for the next/previous links, for example), possibly some component rearranging, but it&#8217;s okay for now. The look and feel now matches the background on <a href="http://www.twitter.com/tkstudios">my twitter page</a>, or you could say the background on the twitter page now matches the blog, as it was the blog that was designed first.</p>
<p>This is probably my first real attempt at a grid-based layout. Vertically it falls short of perfect baseline alignment, simply because I didn&#8217;t feel it was worth the effort to get it perfect. This is a blog. If it were a corporate product page, then yes, it would be worth the trouble to get everything in a perfect rhythm, but it&#8217;s not.</p>
<p>Also, I have not tested this in IE 6 or 7. Out of curiosity, I tested it in 8 a few seconds ago and it looks fine. Obviously, ignoring IE isn&#8217;t a luxury I can afford in the future, but in the current &#8220;<em>I </em><em>just want to get this WP theme done so I&#8217;m using something more appropriate than a public theme</em>&#8221; context, it works.</p>
<p><span id="more-60"></span></p>
<p>I&#8217;ve also added a link to Listy.us, my primary project. There&#8217;s nothing there yet, so don&#8217;t bother clicking the link. The logo is a result of a number of failed attempts and a number of discussions with my girlfriend. The logo&#8217;s meant to be warm, playful, and casual. Most importantly casual. Other list services out there—my would-be competition, at any rate—are too impersonal, too boring. I want Listy.us to be fun. That&#8217;s my goal. If I can make some money along the way, peachy.</p>
<p>Somewhat related, here&#8217;s the Zend_Db Table cheatsheet I promised in Twitter:</p>
<pre style="font-family:Consolas,'Courier New',Courier,sans-serif;padding:18px 0 18px 40px;border:1px solid #888;background-color:#ddd;font-size:0.8em;margin-bottom:18px;">public Thingies extends Zend_Db_Table_Abstract {

	protected $_name	= 'thingies'; // actual table name

	// for a standard primary key:
	protected $_primary	= 'id';	// our primary key

	// OR, for multiple keys, omit above and use:
	protected $_primary	= array('widget_id','thingy_id');
	protected $_sequence	= false;

	// for tables referencing this one:
	protected $_dependantTables = array('Widgets','Thingies');
	// note use of class names instead of table names

	// for tables this references:
	protected $_referenceMap = array(
		'Doodad'	=&gt; array(
			'columns' =&gt; 'doodad_id',  // column name that references doodads table
			'refTableClass' =&gt; 'Doodads',  // class that encapsulates doodads table
			'refColumns' =&gt; 'id'  // column in doodads table that doodad_id references
		)
	);

	// all your CRUD goes here

}</pre>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=New+Theme+and+a+Project+Name+http://is.gd/dXsvs+(@tkstudios)" title="Post to Twitter"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=New+Theme+and+a+Project+Name+http://is.gd/dXsvs+(@tkstudios)" title="Post to Twitter">Tweet This Post</a> <a class="tt" href="http://digg.com/submit?url=http://www.tkstudios.com/2009/04/07/new-theme-and-a-project-name/&amp;title=New+Theme+and+a+Project+Name" title="Post to Digg"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-digg.png" alt="Post to Digg" /></a> <a class="tt" href="http://digg.com/submit?url=http://www.tkstudios.com/2009/04/07/new-theme-and-a-project-name/&amp;title=New+Theme+and+a+Project+Name" title="Post to Digg">Digg This Post</a> <a class="tt" href="http://reddit.com/submit?url=http://www.tkstudios.com/2009/04/07/new-theme-and-a-project-name/&amp;title=New+Theme+and+a+Project+Name" title="Post to Reddit"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-reddit.png" alt="Post to Reddit" /></a> <a class="tt" href="http://reddit.com/submit?url=http://www.tkstudios.com/2009/04/07/new-theme-and-a-project-name/&amp;title=New+Theme+and+a+Project+Name" title="Post to Reddit">Reddit</a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.tkstudios.com/2009/04/07/new-theme-and-a-project-name/&amp;title=New+Theme+and+a+Project+Name" title="Post to StumbleUpon"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-su.png" alt="Post to StumbleUpon" /></a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.tkstudios.com/2009/04/07/new-theme-and-a-project-name/&amp;title=New+Theme+and+a+Project+Name" title="Post to StumbleUpon">Stumble This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.tkstudios.com/2009/04/07/new-theme-and-a-project-name/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Workspace Photo</title>
		<link>http://www.tkstudios.com/2009/03/21/a-workspace-photo/</link>
		<comments>http://www.tkstudios.com/2009/03/21/a-workspace-photo/#comments</comments>
		<pubDate>Sun, 22 Mar 2009 00:46:03 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Listy]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[TK Studios]]></category>
		<category><![CDATA[photos]]></category>
		<category><![CDATA[progress]]></category>

		<guid isPermaLink="false">http://www.tkstudios.com/?p=38</guid>
		<description><![CDATA[I spent about 4 hours today on modeling the database for one project. Other time was spent reading up on the Zend framework in order to lighten my load a bit—I figure a couple days learning it will save me weeks of programming work. I also took half an hour to read up on all [...]]]></description>
			<content:encoded><![CDATA[<p>I spent about 4 hours today on modeling the database for one project. Other time was spent reading up on the Zend framework in order to lighten my load a bit—I figure a couple days learning it will save me weeks of programming work. I also took half an hour to read up on all the manual settings on my camera, and celebrated my newfound knowledge with a photo of my (almost) newly cleaned workspace:</p>
<div id="attachment_39" class="wp-caption alignnone" style="width: 550px"><img class="size-full wp-image-39 " title="tk_desktop_mar_2009" src="http://www.tkstudios.com/wp-content/uploads/2009/03/tk_desktop_mar_2009.jpg" alt="The desk surface in my office" width="540" height="335" /><p class="wp-caption-text">The desk surface in my office</p></div>
<p>I&#8217;ve missed having a camera with manual settings. My most recent before this one didn&#8217;t have a fully-manual mode, or manual focus, and was therefore only good for tourist photography—point and click but nothing artsy. New one has a very nice manual mode: It&#8217;s a Canon Powershot A590. It&#8217;s no DSLR, but for the money (less than $100), it&#8217;s pretty damned nice. I still need to do a little Photoshop tweaking to perfect the image, though. </p>
<p>I guess I should set up a Flickr account, huh?</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=A+Workspace+Photo+http://is.gd/dXyll+(@tkstudios)" title="Post to Twitter"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=A+Workspace+Photo+http://is.gd/dXyll+(@tkstudios)" title="Post to Twitter">Tweet This Post</a> <a class="tt" href="http://digg.com/submit?url=http://www.tkstudios.com/2009/03/21/a-workspace-photo/&amp;title=A+Workspace+Photo" title="Post to Digg"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-digg.png" alt="Post to Digg" /></a> <a class="tt" href="http://digg.com/submit?url=http://www.tkstudios.com/2009/03/21/a-workspace-photo/&amp;title=A+Workspace+Photo" title="Post to Digg">Digg This Post</a> <a class="tt" href="http://reddit.com/submit?url=http://www.tkstudios.com/2009/03/21/a-workspace-photo/&amp;title=A+Workspace+Photo" title="Post to Reddit"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-reddit.png" alt="Post to Reddit" /></a> <a class="tt" href="http://reddit.com/submit?url=http://www.tkstudios.com/2009/03/21/a-workspace-photo/&amp;title=A+Workspace+Photo" title="Post to Reddit">Reddit</a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.tkstudios.com/2009/03/21/a-workspace-photo/&amp;title=A+Workspace+Photo" title="Post to StumbleUpon"><img class="nothumb" src="http://www.tkstudios.com/wp-content/plugins/tweet-this/icons/tt-su.png" alt="Post to StumbleUpon" /></a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.tkstudios.com/2009/03/21/a-workspace-photo/&amp;title=A+Workspace+Photo" title="Post to StumbleUpon">Stumble This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.tkstudios.com/2009/03/21/a-workspace-photo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
