<?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>Ramblings of a Geek - Jeremy Johnstone &#187; Programming</title>
	<atom:link href="http://www.jeremyjohnstone.com/tag/programming/feed" rel="self" type="application/rss+xml" />
	<link>http://www.jeremyjohnstone.com</link>
	<description>Ramblings of a Geek</description>
	<lastBuildDate>Sat, 04 Feb 2012 18:33:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Friend&#8217;s new blog</title>
		<link>http://www.jeremyjohnstone.com/blog/2010-01-06-friends-new-blog.html</link>
		<comments>http://www.jeremyjohnstone.com/blog/2010-01-06-friends-new-blog.html#comments</comments>
		<pubDate>Wed, 06 Jan 2010 07:28:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[math]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.jeremyjohnstone.com/?p=1479</guid>
		<description><![CDATA[A good friend of mine started a new blog on Math and Programming related topics. She has an interest in Ruby development, especially with an abstract algebra / math focus, so if you&#8217;re interested in either Ruby or Mathematics, I&#8217;m sure there will be posts there which you will find useful. Already she&#8217;s off to [...]]]></description>
			<content:encoded><![CDATA[<p>A good friend of mine started a new <a title="Math and Programming blog" href="http://mathandprogramming.blogspot.com/" target="_blank">blog on Math and Programming related topics</a>. She has an interest in Ruby development, especially with an abstract algebra / math focus, so if you&#8217;re interested in either Ruby or Mathematics, I&#8217;m sure there will be posts there which you will find useful. Already she&#8217;s off to a great start with a handful of informative Ruby related posts.</p>
<p>Here&#8217;s a sampling of a few to get you started:</p>
<ul>
<li><a title="Math &amp; Programming Blog: Ruby testing of private methods" href="http://mathandprogramming.blogspot.com/2010/01/ruby-testing-private-methods.html" target="_blank">Testing of private class methods in Ruby</a></li>
<li><a title="Math &amp; Programming Blog: Optimal Control Gem for Conway's Game of Life" href="http://mathandprogramming.blogspot.com/2010/01/ruby-gem-for-optimal-control-for.html" target="_blank">Ruby Gem of a library for finding an optimal control strategy for Conway&#8217;s Game of Life</a></li>
<li><a title="Math &amp; Programming Blog: Using Slime.vim to provide irb support to VIM" href="http://mathandprogramming.blogspot.com/2010/01/vim-for-irb.html" target="_blank">Vim for irb</a></li>
<li><a title="Math &amp; Programming Blog: Using obj.send in Ruby 1.9" href="http://mathandprogramming.blogspot.com/2010/01/objectsend-in-ruby-19.html" target="_blank">obj.send available in Ruby 1.9 despite reports</a></li>
</ul>
<p>She&#8217;s also got a post on getting <a title="Math &amp; Programming Blog: Syntax highlighting for blogger" href="http://mathandprogramming.blogspot.com/2010/01/syntax-highlighting-on-blogger.html" target="_blank">syntax highlighting up and running on Blogger</a> as well as a quick <a title="Math &amp; Programming Blog: Git alias tips" href="http://mathandprogramming.blogspot.com/2010/01/git-pushing-to-multiple-repositories.html" target="_blank">Git alias tip</a>.</p>
<p>All this in less than a week? Will be interesting to see if she keeps up this pace.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremyjohnstone.com/blog/2010-01-06-friends-new-blog.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finally updated my website!</title>
		<link>http://www.jeremyjohnstone.com/blog/2008-04-13-finally-updated-my-website.html</link>
		<comments>http://www.jeremyjohnstone.com/blog/2008-04-13-finally-updated-my-website.html#comments</comments>
		<pubDate>Sun, 13 Apr 2008 11:29:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.jeremyjohnstone.com/blog/?p=375</guid>
		<description><![CDATA[It&#8217;s been a long time in the coming, but I have finally updated my website. I&#8217;ve still got a couple pieces to finish porting to the new design, namely the photo and code galleries, and a couple things I need to build still but for the most part it&#8217;s now live.
The main changes are:

New visual [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a long time in the coming, but I have finally updated my website. I&#8217;ve still got a couple pieces to finish porting to the new design, namely the photo and code galleries, and a couple things I need to build still but for the most part it&#8217;s now live.</p>
<p>The main changes are:</p>
<ol>
<li>New visual theme (pretty obvious to anyone who visited before)</li>
<li>Homepage now shows a little &#8220;About me&#8221; and my latest blog post / latest three tweets instead of just dumping you into the blog directly</li>
<li>Tweets are now clearly separated from blog posts. Blog posts remain on <a title="My Blog" href="http://www.jeremyjohnstone.com/blog">/blog</a> while Tweets have now moved to <a title="Twitter Blog" href="http://www.jeremyjohnstone.com/twitter">/twitter</a>. There are also separate RSS feeds for each now. If there is demand, I will make a combined feed, but as of now one doesn&#8217;t exist.</li>
<li>(coming very soon) I am now hosting a photo gallery on my site. This will more or less be a portfolio of my work. You can still go to <a title="My Flickr Photostream" href="http://www.flickr.com/photos/jeremyjohnstone">Flickr</a> as always to see the latest stuff, but the photos here will be more hand picked and showcase my better ones.</li>
<li>Bunch of backend management pieces + tons of automation</li>
<li>Moved the site from Dreamhost.com to Bluehost.com. While Bluehost&#8217;s cPanel installation is completely horrid, their performance is so much better than Dreamhost it&#8217;s not even funny. On average, pageload time is an order of magnitude faster, but there has been times it&#8217;s been two orders of magnitude faster. I&#8217;ve had an account on both for quite a while, so will see which works best long term and adjust accordingly.</li>
</ol>
<p>I&#8217;m pretty excited this is now live and hopefully more changes will be coming very soon. I have tested with all browsers that I care about personally (aka not IE6), but if you see an issue with your specific browser please let me know in a comment and I will be sure and take a look.</p>
<p>Enjoy!<br />
-Jeremy</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremyjohnstone.com/blog/2008-04-13-finally-updated-my-website.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Useful Javascript OO pattern</title>
		<link>http://www.jeremyjohnstone.com/blog/2007-12-27-useful-javascript-oo-pattern.html</link>
		<comments>http://www.jeremyjohnstone.com/blog/2007-12-27-useful-javascript-oo-pattern.html#comments</comments>
		<pubDate>Fri, 28 Dec 2007 05:52:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.jeremyjohnstone.com/blog/?p=259</guid>
		<description><![CDATA[I&#8217;ve spent the majority of the day (and a good chunk of the evening) refactoring the HTML, CSS, JS, and PHP for the Yahoo! Web Messenger products (we are known internally as the &#8220;Eden Team&#8220;). Being that all but one of our products (the messenger inside Yahoo! Mail, which still uses a Flash based SDK [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve spent the majority of the day (and a good chunk of the evening) refactoring the HTML, CSS, JS, and PHP for the <a href="http://webmessenger.yahoo.com">Yahoo! Web Messenger</a> products (we are known internally as the &#8220;<a href="http://flickr.com/photos/jeremyjohnstone/sets/72157600942931740/">Eden</a> <a href="http://flickr.com/photos/jeremyjohnstone/sets/72157603022215734/">Team</a>&#8220;). Being that all but one of our products (the messenger inside <span id="lw_1198820906_0" class="yshortcuts">Yahoo! Mail</span>, which still uses a <span id="lw_1198820906_1" class="yshortcuts">Flash</span> based SDK for the network transport) we developed on this team are mostly Flash based (Flex/AS3 technically), the non-Flash based components have badly needed some love for a while. Before digging into the Javascript I decided to browse around for a better OO pattern for Javascript classes. Not being someone who likes coding in Javascript much (part of why I joined this team), it&#8217;s not something I have been staying current on lately. Looking at the code for <a href="http://www.swffix.org/devblog/">SWFObject 2.0</a> I discovered they had a pretty clever approach which gives you public and private class variables, public and private methods, and even something akin to a static initializer. Here&#8217;s a bit of sample code to illustrate the concept:<span id="more-259"></span></p>
<pre class="brush: jscript">
var myObj = function() {
    // private instance variables
    var foo = 33;

    // pseudo static initializer
    var staticInitializer = function() {
        // do some code here, will run only once
    }();

    // private method
    function foobar() {
        // do something
    }

    // public api
    return {
        publicMethod: function() {
            // do something
        },

        publicVariable: 42,

        publicMethod2: function() {
             // do something
        }
    }
}();
</pre>
<p>None of the above was new to me, but I had never seen it put all together like that. I liked it enough that I&#8217;ve adopted it as my preferred pattern for JS code going forward. Now, once I get the PHP code looking respectable I can finally sleep a little better at night!</p>
<p><strong>Update:</strong><br />
Yes, the Eden team is the same team which is developing <a href="http://mym.com">myM</a>, and no, I won&#8217;t get you an invite (not this year at least).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremyjohnstone.com/blog/2007-12-27-useful-javascript-oo-pattern.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Yahoo! Search for Safari plugin</title>
		<link>http://www.jeremyjohnstone.com/blog/2007-12-26-yahoo-search-for-safari-plugin.html</link>
		<comments>http://www.jeremyjohnstone.com/blog/2007-12-26-yahoo-search-for-safari-plugin.html#comments</comments>
		<pubDate>Thu, 27 Dec 2007 05:42:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[Safari Plugins]]></category>
		<category><![CDATA[SIMBL]]></category>

		<guid isPermaLink="false">http://www.jeremyjohnstone.com/blog/?p=257</guid>
		<description><![CDATA[Today I went in search of a basic plugin which switched the search provider for Safari 3 to use Yahoo! Search. I found a number of different SIMBL plugins, but all of them did a lot more than I wanted and/or were unstable. AcidSearch is unstable currently and also adds two menu items into the [...]]]></description>
			<content:encoded><![CDATA[<p>Today I went in search of a basic plugin which switched the search provider for Safari 3 to use <span id="lw_1198734657_0" class="yshortcuts">Yahoo! Search</span>. I found a number of different SIMBL plugins, but all of them did a lot more than I wanted and/or were unstable. <a href="http://www.pozytron.com/">AcidSearch</a> is unstable currently and also adds two menu items into the right click menu. This is annoying as I routinely right click on links to &#8220;open in new tab&#8221; and with it adding two options at the top it would always cause me to click on it instinctively instead of the option I really wanted. I also tried out <a href="http://www.inquisitorx.com/safari/">Inquisitor 3</a> and while it was stable, it had a boatload more functionality than I needed or wanted (why go to Niagra falls when all you need is a single drop of water?). Not finding anything really to serve my rather specific desires, I decided to set out and learn SIMBL myself and write a plugin.</p>
<p>Being a newb so to speak in Objective-C it wasn&#8217;t an easy path to go down. Unfortunately Apple&#8217;s documentation leaves a lot to be desired, especially in regards to documenting what methods are inherited from parent classes. Thankfully I have a few OSX developer buddies who were able to come to my rescue a couple times. One really kewl tool I learned about in the process is called <a href="http://www.fscript.org">F-Script</a>. It allows you to introspect applications as they are running and run scripts poking and prodding deep inside an application. This combined with <a href="http://www.codethecode.com/projects/class-dump/">class-dump</a> provided me with the information I needed to be able to make my modifications.</p>
<p>Thankfully I knew a bit about <a href="http://search.yahoo.com/search?p=method%20swizzling">method swizzling</a> and how that works from a couple other previous pet projects I worked on. It&#8217;s still something I consider a black magic hack, but at least I was comfortable enough with the concept to know what to do. I&#8217;ve seen several ways of implementing method swizzling before, but I found the one inside <a href="http://kisonecat.com/software/forget-me-not/">ForgetMeNot</a> and <a href="http://culater.net/wiki/moin.cgi/CocoaReverseEngineering">SIMBL&#8217;s documentation</a> to be the simplest, so I used it instead of what I used previously.</p>
<p>The first thing I needed to do was figure out what created the URL that Safari used to load up the search results for a specific query. Digging around for a while using <a href="http://www.fscript.org">F-Script Anywhere</a>, I found that was done by the <strong>URLWithSearchCriteria</strong> method of the <strong>GoogleSearchChannel</strong> class. I started off by writing a simple wrapper method which NSLog&#8217;d the input of the function as well as the output. After I learned what it did fully, I then wrote the following replacement method:</p>
<pre class="brush: c">
- (NSURL *)_jj_URLWithSearchCriteria: (NSString *)searchCriteria
{
NSURL *yurl = [NSURL URLWithString: [[NSString stringWithFormat:@"http://search.yahoo.com/search?p=%@", searchCriteria] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];
NSURL *url = [self _safari_URLWithSearchCriteria: searchCriteria];

NSLog(@"Search Criteria: %@", searchCriteria);
NSLog(@"Google URL: %@", url);
NSLog(@"Yahoo URL: %@", yurl);

return yurl;
}
</pre>
<p>I then needed to find a way to replace the placeholder text inside the <strong>SearchField</strong> with &#8220;Yahoo!&#8221; instead of &#8220;<span id="lw_1198734657_1" class="yshortcuts">Google</span>&#8220;. This unfortunately took a lot longer than I had hoped as I had trouble finding how to get access to the SearchField since it&#8217;s obviously not an easily accessible global variable or anything like that. Thankfully I finally was able to trace the stack and find it was defined inside <strong>_toolbarController</strong> in the <strong>BrowserWindowController</strong> class. I had already figured out how to set the text using F-Script, so it was a simple matter of finding a method to swizzle inside BrowserWindowController which would allow me to latch in. Viewing the class dump for Safari, I found my target pretty quickly, <strong>_setUpSearchField</strong> looked like a perfect candidate. Unfortunately I had trouble grabbing ahold of the private instance variable, but this was one of the spots where a buddy of mine was able to provide a solution. By using <strong>object_getInstanceVariable</strong> I was able to access it and thus could go on with my changes. Here&#8217;s the final replacement method which changes the &#8220;Google&#8221; placeholder text to &#8220;Yahoo!&#8221;:</p>
<pre class="brush: c">
- (void)_jj_setUpSearchField
{
// Call the "parent" first so it does it's business
[self _safari_setUpSearchField];

id _toolbarControllerObj;
object_getInstanceVariable(self, [@"_toolbarController" UTF8String], &amp;_toolbarControllerObj);

// Now change the placeholder string from "Google" to "Yahoo!"
[[[_toolbarControllerObj searchField] cell] setPlaceholderString:@"Yahoo!"];

NSLog(@"Search placeholder string changed to Yahoo! from Google");
}
</pre>
<p>There are a few other spots which I could replace &#8220;Google&#8221; with &#8220;Yahoo!&#8221; (like the error dialog which happens when you press enter without typing anything or the toolbar editor), but I decided those weren&#8217;t important right now. If you would like to see the source code to this plugin, please go here:</p>
<p><a href="http://safari-yahoo-search.googlecode.com/svn/trunk/YahooSearchPlugin">http://safari-yahoo-search.googlecode.com/svn//trunk/YahooSearchPlugin/</a></p>
<p>You can also download the installer here (which also includes the source code inside the disk image):</p>
<p><a href="http://safari-yahoo-search.googlecode.com/files/YahooSearchPlugin.dmg">http://safari-yahoo-search.googlecode.com/files/YahooSearchPlugin.dmg</a></p>
<p>Please note that while I work for Yahoo!, this plugin is not endorsed or supported in any way by my employer. Use is at your own risk and I make no guarantees it won&#8217;t blow up your computer, &#8220;eat babies&#8221; (stealing a term a coworker uses when an app does something bad), or generally cause you any multitude of different problems. You have been warned!</p>
<p>I&#8217;ll try and write up a good tutorial based on what I learned today in the near future. Please feel free to leave a comment with any comments, feedback, or questions and I will do my best to respond.</p>
<p><strong>Update:</strong> This has only been tested on Safari 3.0.4 using SIMBL 0.82 on OSX 10.4.11 (aka Tiger). I will do my best to test this on Leopard as soon as possible.</p>
<p><strong>Update:</strong> Since <a href="http://www.dreamhost.com">DreamHost</a> is having serious performance issues today (first time it has been really bad for me, despite what others have experienced with them), I decided to copy the source code and download location over to <a href="http://code.google.com/p/safari-yahoo-search/">Google Code</a>. The URLs above have been updated above accordingly, please use them going forward.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremyjohnstone.com/blog/2007-12-26-yahoo-search-for-safari-plugin.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>You are what you read?</title>
		<link>http://www.jeremyjohnstone.com/blog/2007-12-08-you-are-what-you-read.html</link>
		<comments>http://www.jeremyjohnstone.com/blog/2007-12-08-you-are-what-you-read.html#comments</comments>
		<pubDate>Sun, 09 Dec 2007 01:01:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Photography]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[World Views]]></category>

		<guid isPermaLink="false">http://www.jeremyjohnstone.com/blog/?p=231</guid>
		<description><![CDATA[A friend recently made the statement to me &#8220;you can learn a lot about a person by what they read&#8221;. Not quite believing in that premise, I decided today to round up the books I have read or are currently am reading over the past year. Surprisingly, I have more (at least) partially read books [...]]]></description>
			<content:encoded><![CDATA[<p>A friend recently made the statement to me &#8220;you can learn a lot about a person by what they read&#8221;. Not quite believing in that premise, I decided today to round up the books I have read or are currently am reading over the past year. Surprisingly, I have more (at least) partially read books than I can count. Ok, I lied, I know of at least 55 books in the past year alone. That&#8217;s averaging like one book a week and mind you, many of these books are 400 pages or more (of course I haven&#8217;t finished the majority of them either).</p>
<p>After dividing them up into groups, I&#8217;ve found several general &#8220;themes&#8221; emerge. A big shocker to anyone who knows me I&#8217;m sure (hint sarcasm), but the biggest theme this past year was photography. I found 16 books at home alone that I have read in the past year. Interestingly, of all the &#8220;themes&#8221; this category had the highest percentage of books I actually finished reading cover to cover (roughly 60%). Not sure exactly why photography books I am more likely to finish, but could be the writing style or the fact it&#8217;s a fairly new subject for me to be reading. Of the books, about half are Photoshop books (with a lean towards photography and not graphics design) with most of the remaining falling into lighting or composition.</p>
<p>The next largest group (14 books, none of which fully read) is programming and technology related books. These books range from three books on OSX programming, couple ajax books, a handful of compiler theory/design books, to general stuff like Asterisk (a linux PBX software package). Something I found rather odd was the fact I don&#8217;t own a single Flex/Actionscript book, despite the fact over the past 6 months that&#8217;s been my day job (and something I had minimal experience with previously). I guess that can be attributed to how easy the language is to pickup because I feel I can hold my own against many with what I have learned in such a short amount of time (definitely not an &#8220;expert&#8221; yet though by any means).</p>
<p>The next group of books (14 books) in line is related to religion, social responsibility, and other thought provoking topics. The religious books cover a wide range of religions, from Christianity to Sufism to Taoism to Hindu. Several books that are also loosely related are around meditation. Other books in this group include a book on dreaming, Bill Clinton&#8217;s book &#8220;Giving&#8221;, &#8220;The Omnivore&#8217;s Dilemma&#8221;, &#8220;World Changing: A user&#8217;s guide for the 21st century&#8221;, &#8220;Holy Blood, Holy Grail&#8221; (a book I have been reading off and on for several years), and the classic &#8220;A Brief History of Time&#8221; which I reread in it&#8217;s 10th anniversary edition. This group also has the second highest fully read percentage hovering around 20% and the unique distinction of having every book had at least a few pages read.</p>
<p>The last group of books (11 books) are just what was left, a mix of random stuff. These include productivity books like &#8220;Getting things done&#8221;, to fictional books like the classic &#8220;The Time Quartet&#8221; (a collection of books from my childhood I wanted to reread), to general fact books like &#8220;What are the seven wonders of the world?&#8221; (a gift from my mother for Christmas last year). I also have a set of three books by Orson Scott Card, the &#8220;Ender&#8217;s&#8221; series, which a good friend suggested I buy that I haven&#8217;t had time to open yet.</p>
<p>So that said, based on the above books (and solely the above books) what do you think that says about &#8220;who I am&#8221;? I&#8217;d be interested in hearing your comments (either publicly on the blog or sent personally to me).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremyjohnstone.com/blog/2007-12-08-you-are-what-you-read.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Catching Up #2</title>
		<link>http://www.jeremyjohnstone.com/blog/2007-07-16-catching-up-2.html</link>
		<comments>http://www.jeremyjohnstone.com/blog/2007-07-16-catching-up-2.html#comments</comments>
		<pubDate>Mon, 16 Jul 2007 22:41:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Photography]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.jeremyjohnstone.com/blog/?p=104</guid>
		<description><![CDATA[So, in the spirit of catching the world back up with what&#8217;s been keeping me busy, here comes post #2 on the subject. As you might have gathered by my last post (assuming you looked at the photos, which you did do, right?) my interest in photography has improved immensely. It&#8217;s something I have always [...]]]></description>
			<content:encoded><![CDATA[<p>So, in the spirit of catching the world back up with what&#8217;s been keeping me busy, here comes post #2 on the subject. As you might have gathered by my last post (assuming you looked at the photos, which you did do, right?) my interest in photography has improved immensely. It&#8217;s something I have always considered a fun hobby, just never spent the time, money, and effort as I have this year. Please look through my photos when you have time and leave comments here or on <a href="http://www.flickr.com/photos/jeremyjohnstone">Flickr</a>. I am always looking to learn new tips/tricks, so if you have something to share, please do. I&#8217;m also always looking for new gear, so if you have something to sell, be sure to contact me. Later this week, I will probably do a couple posts on things I have learned, so be sure and check back if you&#8217;re interested.</p>
<p>One another topic which has kept me insanely busy (sadly, I am still behind on), I&#8217;m also writing a book for <a href="http://www.wrox.com/">WROX Press</a> (the company with the red/yellow books, you know the ones) on PHP. Yet another book on PHP you say? Yes, yes, but at least the one I am writing has a little twist which makes it different than most (but not all) PHP books already in print. The book is very much an intermediate / advanced programmer book (you won&#8217;t find any history of PHP in the opening chapters) which takes you on a journey through building a community website from start to finish. I heavily cover best practices on various topics which are important to sites which might grow into something really big (aka, what many independent coders dream about, being the next Yahoo! / MySpace / Facebook / &lt;insert name of site with lots of traffic and many users&gt;). Having written the codebase (along with a handful of other gifted engineers) to a significant <a href="http://address.yahoo.com">Yahoo! property</a> with billions of monthly pageviews (sorry, can&#8217;t be specific obviously), I hope I can impart some of the knowledge the reader of the book will need to scale their sites appropriately. We of course knew from the beginning (since it was an existing site we rewrote from the ground up) how much traffic to expect, but many of the principals remain the same whether you start out big, or grow big. Two other areas which get significant coverage in the book are security and internationalization. I won&#8217;t go into all the details here (I want you to buy the book after all), but with any luck it will be worth the wait and something you will enjoy and learn something from.</p>
<p>In final parting is something I stumbled upon today which hopefully will be useful to others. I have been constantly trying to find a good solution to organizing the endless amount of email I receive as well as always have it available on all my devices (Mac Pro desktop at work, Mac Book Pro laptop when away from desk, Powerbook at home, and iPhone for the remaining times). While this isn&#8217;t an all encompassing solution (only covers part of the first problem), it definitely is a good step in the right direction. Check out this <a href="http://daringfireball.net/2007/07/simple_inbox_sweeper">blog post</a> on <a href="http://daringfireball.net/">Daring Fireball</a> which talks about a simple Applescript which automagically moves your read (but not flagged) email to your Archive folder. Yes, I know the script isn&#8217;t revolutionary, but sometimes its the simple details which make a big difference. Be sure and tell me what you think!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremyjohnstone.com/blog/2007-07-16-catching-up-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP interface to Picasa Web Albums</title>
		<link>http://www.jeremyjohnstone.com/blog/2006-06-25-php-interface-to-picasa-web-albums.html</link>
		<comments>http://www.jeremyjohnstone.com/blog/2006-06-25-php-interface-to-picasa-web-albums.html#comments</comments>
		<pubDate>Mon, 26 Jun 2006 05:14:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.jeremyjohnstone.com/blog/?p=100</guid>
		<description><![CDATA[Got bored this weekend and decided to play around with Picasa Web Albums. After a little poking around, found the protocol was pretty basic and decided to see what could be done with it. The first thing I decided to do was to reimplement the &#8220;client side&#8221; functionality. Using the PHP code found here:


Code Gallery



You [...]]]></description>
			<content:encoded><![CDATA[<p>Got bored this weekend and decided to play around with Picasa Web Albums. After a little poking around, found the protocol was pretty basic and decided to see what could be done with it. The first thing I decided to do was to reimplement the &#8220;client side&#8221; functionality. Using the PHP code found here:</p>
<table width="100%">
<tr>
<td align="center"><a href="http://www.jeremyjohnstone.com/code-gallery">Code Gallery</a></td>
</tr>
</table>
<p>
You can get a list of albums (including album meta information), a list of photos in an album (including image meta info), have the ability to create new albums, and the ability to upload images to your online gallery. I am also implementing a proxy server which will allow you to upload via Picasa to Flickr, Y! Photos, or Gallery. I should have that part online so you can download it in the near future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremyjohnstone.com/blog/2006-06-25-php-interface-to-picasa-web-albums.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>‘Writing Your Own PHP Extensions: How &amp; Why from A-Z’ at OSCON 2006</title>
		<link>http://www.jeremyjohnstone.com/blog/2006-04-16-93.html</link>
		<comments>http://www.jeremyjohnstone.com/blog/2006-04-16-93.html#comments</comments>
		<pubDate>Sun, 16 Apr 2006 15:52:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.jeremyjohnstone.com/blog/?p=97</guid>
		<description><![CDATA[This year I will be speaking at a bit larger of a conference than last year. I was invited to speak at the O&#8217;Reilly Open Source Convention in Portland at the end of July. Looking at the topics list, it is sure to be a fantastic conference again this year. My talk is entitled &#8220;Writing [...]]]></description>
			<content:encoded><![CDATA[<p>This year I will be speaking at a bit larger of a conference than last year. I was invited to speak at the <a href="http://conferences.oreillynet.com/os2006/">O&#8217;Reilly Open Source Convention</a> in Portland at the end of July. Looking at the topics list, it is sure to be a fantastic conference again this year. My talk is entitled &#8220;Writing Your Own PHP Extensions: How &#038; Why from A-Z&#8221; and has the title would lead you to think, it&#8217;s all about PHP Extensions. In this talk I will give a beginners guide to writing PHP extensions explaining reasons for doing so, how to start, and where to go from there. Code examples will be abundant and won&#8217;t be your typical &#8220;Hello World!&#8221; type extensions either, so be ready for useable code which will let you hit the ground running. For updated scheduling information about when the talk will be, look no further than right <a href="http://conferences.oreillynet.com/cs/os2006/view/e_sess/8658">here</a>. For other great PHP talks, looks right <a href="http://conferences.oreillynet.com/cs/os2006/print/e_trak/312">here</a>. As happened last year, look me up during the conference and I will try and hook you up with some free Yahoo! schwag. I look forward to seeing you all there!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremyjohnstone.com/blog/2006-04-16-93.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Heading back to Europe for IPC 2005 Fall Edition</title>
		<link>http://www.jeremyjohnstone.com/blog/2005-07-19-heading-back-to-europe-for-ipc-2005-fall-edition.html</link>
		<comments>http://www.jeremyjohnstone.com/blog/2005-07-19-heading-back-to-europe-for-ipc-2005-fall-edition.html#comments</comments>
		<pubDate>Tue, 19 Jul 2005 22:40:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.jeremyjohnstone.com/blog/?p=64</guid>
		<description><![CDATA[Just got confirmation that I will be heading back to Europe this fall for the International PHP Conference 2005 Fall Edition. This time it will be held in Frankfurt, Germany at the beautiful NH Hotel (or so I heard). I&#8217;ll post more information as soon as I get a speaking schedule (looks like I will [...]]]></description>
			<content:encoded><![CDATA[<p>Just got confirmation that I will be heading back to Europe this fall for the International PHP Conference 2005 Fall Edition. This time it will be held in Frankfurt, Germany at the beautiful NH Hotel (or so I heard). I&#8217;ll post more information as soon as I get a speaking schedule (looks like I will be giving more talks this time around). Make sure and keep an eye here and on the offical IPC website for more information:<br />
<a href="http://www.phpconference.com/konferenzen/psecom,id,331,nodeid,331,_language,uk.html">http://www.phpconference.com/konferenzen/psecom,id,331,nodeid,331,_language,uk.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremyjohnstone.com/blog/2005-07-19-heading-back-to-europe-for-ipc-2005-fall-edition.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pushed the limits a bit further w/ Google Maps</title>
		<link>http://www.jeremyjohnstone.com/blog/2005-07-17-pushed-the-limits-a-bit-further-w-google-maps.html</link>
		<comments>http://www.jeremyjohnstone.com/blog/2005-07-17-pushed-the-limits-a-bit-further-w-google-maps.html#comments</comments>
		<pubDate>Mon, 18 Jul 2005 07:43:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.jeremyjohnstone.com/blog/?p=63</guid>
		<description><![CDATA[This weekend I spent a little time learning the inside and out of Google Maps (both API and the main site). Along the way I learned lots of valuable information about Google&#8217;s new service. Part of that can be seen here: 
http://www.jeremyjohnstone.com/maps/routing-example.html

Right now, the map is just an example of doing routing/directions display. Look for [...]]]></description>
			<content:encoded><![CDATA[<p>This weekend I spent a little time learning the inside and out of Google Maps (both API and the main site). Along the way I learned lots of valuable information about Google&#8217;s new service. Part of that can be seen here: </p>
<p><a href="http://www.jeremyjohnstone.com/maps/routing-example.html">http://www.jeremyjohnstone.com/maps/routing-example.html</a><br />
<br />
Right now, the map is just an example of doing routing/directions display. Look for some impressive things to come in the future now that I know what all is possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremyjohnstone.com/blog/2005-07-17-pushed-the-limits-a-bit-further-w-google-maps.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Maps API</title>
		<link>http://www.jeremyjohnstone.com/blog/2005-07-08-google-maps-api.html</link>
		<comments>http://www.jeremyjohnstone.com/blog/2005-07-08-google-maps-api.html#comments</comments>
		<pubDate>Sat, 09 Jul 2005 01:57:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.jeremyjohnstone.com/blog/?p=61</guid>
		<description><![CDATA[Seems while I was gone on vacation Google released a new API to their maps. I played with it a little last night when I got home and you can see the simple results of that work here:
http://www.jeremyjohnstone.com/maps/work-apt.html
Look for new and cool map things coming soon from me. The posibilities are limitless, time is the [...]]]></description>
			<content:encoded><![CDATA[<p>Seems while I was gone on vacation Google released a new API to their maps. I played with it a little last night when I got home and you can see the simple results of that work here:</p>
<p><a href="http://www.jeremyjohnstone.com/maps/work-apt.html">http://www.jeremyjohnstone.com/maps/work-apt.html</a></p>
<p>Look for new and cool map things coming soon from me. The posibilities are limitless, time is the only bottleneck!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremyjohnstone.com/blog/2005-07-08-google-maps-api.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgraded to Wordpress 1.5.1.3</title>
		<link>http://www.jeremyjohnstone.com/blog/2005-07-07-upgraded-to-wordpress-1513.html</link>
		<comments>http://www.jeremyjohnstone.com/blog/2005-07-07-upgraded-to-wordpress-1513.html#comments</comments>
		<pubDate>Thu, 07 Jul 2005 20:33:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.jeremyjohnstone.com/blog/?p=57</guid>
		<description><![CDATA[Yet another post I am making a little after the fact, I recently upgraded to WordPress 1.5.1.3. Let me tell ya, that definitely wasn&#8217;t an easy upgrade with all the changes I had made to the source to get the l&#038;f I wanted. On the bright side, it forced me to do a cleanup on [...]]]></description>
			<content:encoded><![CDATA[<p>Yet another post I am making a little after the fact, I recently upgraded to WordPress 1.5.1.3. Let me tell ya, that definitely wasn&#8217;t an easy upgrade with all the changes I had made to the source to get the l&#038;f I wanted. On the bright side, it forced me to do a cleanup on the design and the CSS which was drastically overdue, so now the site should look nearly identical in all supported browsers (if not exactly identical). Although it could be purely psychological on my part, I definitely think it looks overall a bit cleaner in appearance. I wish I knew exactly why I felt that way, but atleast I&#8217;m happy with how it looks now, so I guess that&#8217;s the important part.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremyjohnstone.com/blog/2005-07-07-upgraded-to-wordpress-1513.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Code Gallery Online</title>
		<link>http://www.jeremyjohnstone.com/blog/2005-06-29-new-code-gallery-online.html</link>
		<comments>http://www.jeremyjohnstone.com/blog/2005-06-29-new-code-gallery-online.html#comments</comments>
		<pubDate>Wed, 29 Jun 2005 01:22:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.jeremyjohnstone.com/blog/?p=58</guid>
		<description><![CDATA[This weekend I decided I wanted something to parse my Gmail account and show some statistics parsed from it. Thankfully from a few examples I found, this was pretty easy to do. After finishing that in about an hour or two&#8217;s time, it then dawned on me I had never finished a project I started [...]]]></description>
			<content:encoded><![CDATA[<p>This weekend I decided I wanted something to parse my Gmail account and show some statistics parsed from it. Thankfully from a few examples I found, this was pretty easy to do. After finishing that in about an hour or two&#8217;s time, it then dawned on me I had never finished a project I started to put a code &#8220;gallery&#8221; online so others could see code snippets (like the aforementioned Gmail parser) I write from time to time. I then decided to finish up that code gallery and quit making excuses about why I hadn&#8217;t finished it. If you visit the following URL:</p>
<p><a href="http://www.jeremyjohnstone.com/code-gallery/">http://www.jeremyjohnstone.com/code-gallery/</a></p>
<p>you can now see my code gallery. The Code Gallery doesn&#8217;t use any DB backend (parses XML files for the info), and isn&#8217;t the prettiest thing in the world, but it serves my needs. Right now it only includes the Gmail Parser code (PHP5 only) and the Code Gallery&#8217;s code itself (quick and dirty PHP4 code), but I plan to add additional items as time permits. Please feel free to share your opinions either via the comments system or in an email to me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremyjohnstone.com/blog/2005-06-29-new-code-gallery-online.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Zend/PHP Conference 2005</title>
		<link>http://www.jeremyjohnstone.com/blog/2005-06-23-zendphp-conference-2005.html</link>
		<comments>http://www.jeremyjohnstone.com/blog/2005-06-23-zendphp-conference-2005.html#comments</comments>
		<pubDate>Thu, 23 Jun 2005 00:21:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.jeremyjohnstone.com/blog/?p=55</guid>
		<description><![CDATA[





Just wanted to make a post on the upcoming Zend/PHP Conference this fall from October 18th-21st, 2005. Based on the inside scoop I have heard, it will be quite the conference to attend in the US this year, so if you&#8217;re involved in PHP in any way I would highly advise you make plans to [...]]]></description>
			<content:encoded><![CDATA[<table width="100%" border="0">
<tr>
<td align="center"><a href="http://zend.kbconferences.com/"><img src="http://www.jeremyjohnstone.com/images/zend_conf.png" alt="Zend Conference logo" /></a></td>
</tr>
</table>
<p>
Just wanted to make a post on the upcoming Zend/PHP Conference this fall from October 18th-21st, 2005. Based on the inside scoop I have heard, it will be quite the conference to attend in the US this year, so if you&#8217;re involved in PHP in any way I would highly advise you make plans to attend now. I have several proposals pending for talks at the conference, so with any luck you might see me there as a speaker. If not, there is a chance the company I work for (<a href="http://www.cerberusweb.com?src=jeremy-blog">www.cerberusweb.com</a>) might have a booth there. At the very least, I should be there myself, so look me up if you do go and I will be happy to buy you a beer or something. For more information on the conference, click here: <a href="http://zend.kbconferences.com/">http://zend.kbconferences.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremyjohnstone.com/blog/2005-06-23-zendphp-conference-2005.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Long time overdue &#8211; Conference Day 3</title>
		<link>http://www.jeremyjohnstone.com/blog/2005-06-19-long-time-overdue-conference-day-3.html</link>
		<comments>http://www.jeremyjohnstone.com/blog/2005-06-19-long-time-overdue-conference-day-3.html#comments</comments>
		<pubDate>Sun, 19 Jun 2005 20:32:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.jeremyjohnstone.com/blog/?p=51</guid>
		<description><![CDATA[After an entirely way to long time, I am going to post the wrap up to the conference. I apologize for the delay, but other obligations have kept me busy.

May 4th
I started the morning off with Dan Scott&#8217;s interesting piece on DB2. It really opened my eyes to some of the potential for DB2 in [...]]]></description>
			<content:encoded><![CDATA[<p>After an entirely way to long time, I am going to post the wrap up to the conference. I apologize for the delay, but other obligations have kept me busy.<br />
<strong><br />
May 4th</strong><br />
I started the morning off with Dan Scott&#8217;s interesting piece on DB2. It really opened my eyes to some of the potential for DB2 in PHP and thus is something I will seriously keep in mind for the future. Do to a scheduling mixup, Dan&#8217;s presentation didn&#8217;t start on time, but I felt he did a good job of overcoming that and I applaud him. The next session of the day was of course mine. I feel the presentation went decent, but I covered some of the material too quickly. Overall I would say the session was a success, but it was definitely shorter than it was supposed to be. Later that day (and since then via email) I have received numerous questions and a couple thank you&#8217;s so hopefully most enjoyed the session and possibly learned something from it. If anyone else needs further information and hasn&#8217;t emailed me, please do not hesitate to contact me! I then went to Ben&#8217;s session on PHP-GTK desktop applications. Although he didn&#8217;t really cover anything new to me, I know a lot of people in there did learn a lot from talking after the session, so again, it was a good session. After lunch, Andre, Jani, and I went to Derick&#8217;s session entitled &#8220;Dominating the World&#8221;. It was a another very informative session on PHP Internationalization. I would make sure and check the photo&#8217;s in my gallery for that session, as I do have a few humorous ones of Derick while he spoke. The conference was a lot of fun and very informative at the same time. Hopefully I will be going back to the fall edition (if not as a speaker, atleast as an attendee), so I look forward to seeing you all there again.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremyjohnstone.com/blog/2005-06-19-long-time-overdue-conference-day-3.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conference Day 2</title>
		<link>http://www.jeremyjohnstone.com/blog/2005-05-09-conference-day-2.html</link>
		<comments>http://www.jeremyjohnstone.com/blog/2005-05-09-conference-day-2.html#comments</comments>
		<pubDate>Mon, 09 May 2005 16:56:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.jeremyjohnstone.com/blog/?p=48</guid>
		<description><![CDATA[May 3rd:
Today was spent almost exclusively at the conference. I started the morning off with a very informative speach given by Andrei on PHP &#038; Unicode. The work they are doing to bring true Unicode support to PHP is nothing short of awesome. I can&#8217;t wait until this gets added into the main branch so [...]]]></description>
			<content:encoded><![CDATA[<p><strong>May 3rd:</strong><br />
Today was spent almost exclusively at the conference. I started the morning off with a very informative speach given by Andrei on PHP &#038; Unicode. The work they are doing to bring true Unicode support to PHP is nothing short of awesome. I can&#8217;t wait until this gets added into the main branch so more can play with it.<br />
I then attended Andrei&#8217;s second presentation of that morning, this time on PHP-GTK2. Of course I already knew a lot about what&#8217;s happening on PHP-GTK2 because of my involvement on the lists and with my new entry into the documentation team for it, but man some of the stuff coming literally blew me away. The ability to have tree&#8217;s and tables dynamically redrawn based on changes to a data store are long overdue. For those of you who know Java, think JFace/Swing. No longer will you have to add and remove rows manually each time the model changes, you can simply update the model and the changes are reflected instantly in the display. Another thing which caught me by surprise is custom cell renderers. You can now put virtually anything inside a table cell. My wheels were already turning at this point thinking of the next app I will write using PHP-GTK2. I highly advise you checkout <a href="http://www.gravitonic.com/talks/">Andrei&#8217;s slides</a> to see all that is instore for the future.<br />
## Continued on next page ##</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremyjohnstone.com/blog/2005-05-09-conference-day-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conference Blog Posting Delays</title>
		<link>http://www.jeremyjohnstone.com/blog/2005-05-09-conference-blog-posting-delays.html</link>
		<comments>http://www.jeremyjohnstone.com/blog/2005-05-09-conference-blog-posting-delays.html#comments</comments>
		<pubDate>Mon, 09 May 2005 16:17:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.jeremyjohnstone.com/blog/?p=45</guid>
		<description><![CDATA[This post is coming a little late, but better late than never. I was really beginning to feel in the dark ages of the Internet until today when I finally got to Frankfurt. The conference&#8217;s switch broke so we lost Internet connectivity the last day and the Novotel had an entirely way to expensive fee [...]]]></description>
			<content:encoded><![CDATA[<p>This post is coming a little late, but better late than never. I was really beginning to feel in the dark ages of the Internet until today when I finally got to Frankfurt. The conference&#8217;s switch broke so we lost Internet connectivity the last day and the Novotel had an entirely way to expensive fee for Wifi (I refuse to pay 25 euro a day and be forced to stay in the lobby). Conditions didn&#8217;t improve in Prague either, so thankfully Frankfurt has nice high-speed and it&#8217;s free w/ the hotel stay as well!</p>
<p>Now that we are passed that part, next comes a series of posts about the conference and my trip in general!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremyjohnstone.com/blog/2005-05-09-conference-blog-posting-delays.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Article in upcoming PHP magazine issue</title>
		<link>http://www.jeremyjohnstone.com/blog/2005-04-13-article-in-upcoming-php-magazine-issue.html</link>
		<comments>http://www.jeremyjohnstone.com/blog/2005-04-13-article-in-upcoming-php-magazine-issue.html#comments</comments>
		<pubDate>Wed, 13 Apr 2005 20:27:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.jeremyjohnstone.com/blog/?p=38</guid>
		<description><![CDATA[The company who does the International PHP Conference, and who also publishes the International PHP Magazine (http://www.phpmag.net/), has asked me to write an article based more or less on my presentation I will be giving at the conference for their next issue of the magazine. The next issue is due out sometime in June, so [...]]]></description>
			<content:encoded><![CDATA[<p>The company who does the International PHP Conference, and who also publishes the International PHP Magazine (<a href="http://www.phpmag.net/">http://www.phpmag.net/</a>), has asked me to write an article based more or less on my presentation I will be giving at the conference for their next issue of the magazine. The next issue is due out sometime in June, so make sure you keep an eye out for it! For those of you who can&#8217;t make it to the conference for whatever reason here&#8217;s your chance.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremyjohnstone.com/blog/2005-04-13-article-in-upcoming-php-magazine-issue.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Now XHTML 1.1 Compliant</title>
		<link>http://www.jeremyjohnstone.com/blog/2005-02-12-now-xhtml-11-compliant.html</link>
		<comments>http://www.jeremyjohnstone.com/blog/2005-02-12-now-xhtml-11-compliant.html#comments</comments>
		<pubDate>Sat, 12 Feb 2005 07:38:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.jeremyjohnstone.com/blog/?p=29</guid>
		<description><![CDATA[The majority of my site has been XHTML 1.1 compliant for a while, but because of Google&#8217;s search box code I was forced to keep the site&#8217;s doctype as XHTML 1.0 Transitional. Finally I decided that had to change and sent Google an email about. Thankfully they understood my standpoint and allowed me a conditional [...]]]></description>
			<content:encoded><![CDATA[<p>The majority of my site has been XHTML 1.1 compliant for a while, but because of Google&#8217;s search box code I was forced to keep the site&#8217;s doctype as XHTML 1.0 Transitional. Finally I decided that had to change and sent Google an email about. Thankfully they understood my standpoint and allowed me a conditional exception to their T&#038;C which allowed me to edit the HTML to be compliant. Please note if you want to do the same, you must email them as well or you will be in violation of their T&#038;C&#8217;s.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremyjohnstone.com/blog/2005-02-12-now-xhtml-11-compliant.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>International PHP Conference 2005 Spring Edition</title>
		<link>http://www.jeremyjohnstone.com/blog/2005-01-24-international-php-conference-2005-spring-edition.html</link>
		<comments>http://www.jeremyjohnstone.com/blog/2005-01-24-international-php-conference-2005-spring-edition.html#comments</comments>
		<pubDate>Mon, 24 Jan 2005 20:36:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.jeremyjohnstone.com/blog/?p=26</guid>
		<description><![CDATA[Today I got an email announcing I would have the distinct honor of being one of the speakers at the International PHP Conference 2005 Spring Edition held in Amsterdam May 2nd &#8211; 4th. The description of the topic I will be presenting on is as follows:
As the developer who wrote Hotscripts.com, the leading web script [...]]]></description>
			<content:encoded><![CDATA[<p>Today I got an email announcing I would have the distinct honor of being one of the speakers at the International PHP Conference 2005 Spring Edition held in Amsterdam May 2nd &#8211; 4th. The description of the topic I will be presenting on is as follows:</p>
<p><em>As the developer who wrote Hotscripts.com, the leading web script repository on the Internet, I had to overcome many challenges to having a 100% dynamic site with it&#8217;s traffic level. In this talk I will teach others how to optimize site design for speed and ease of adding new features based on my own hybrid MVC pattern. I will also highlight on common security concerns and how to overcome them.</em></p>
<p>For more information on the conference, visit the conference&#8217;s website at <a href="http://www.phpconference.com">http://www.phpconference.com</a>. I look forward to seeing you all there as it should be a very good conference and lots of fun for all who attend.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremyjohnstone.com/blog/2005-01-24-international-php-conference-2005-spring-edition.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

