<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
    <title>Jeremy Knope dot com</title>
    <subtitle>Random ramblings of Jerome</subtitle>
    <id>http://jeremyknope.com/feed/</id>
    <updated>2008-12-16T23:54:03-05:00</updated>
    
    <link href="http://jeremyknope.com" />
    <generator uri="http://chyrp.net/" version="2.0 RC3">Chyrp</generator>
    <link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-sa/2.0/" /><link rel="self" href="http://feeds.feedburner.com/JeremyKnopeDotCom" type="application/atom+xml" /><entry>
        <title type="html">Using Chyrp</title>
        <id>tag:jeremyknope.com,2008-12-17:/id/149/</id>
        <updated>2008-12-17T00:03:14-05:00</updated>
        <published>2008-12-16T23:54:03-05:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JeremyKnopeDotCom/~3/kenXCIO2llA/" />
        <author>
            <name>jerome</name>
            <uri>http://jeremyknope.com</uri>
        </author>
        <content type="html">&lt;p&gt;Switched to &lt;a href="http://chyrp.net"&gt;chyrp&lt;/a&gt; for my blog, I really like what I've seen so far.  Looks to be well written and extensible in some cool ways.  Hopefully can play with it some more soon, possibly extend it in some ways I might like.&lt;/p&gt;

&lt;p&gt;Suppose maybe I'll post here more often? Probably not, I'll just keep &lt;a href="http://twitter.com/jeromejtk"&gt;twittering&lt;/a&gt; instead :)&lt;/p&gt;
</content>
    <feedburner:origLink>http://jeremyknope.com/2008/12/16/using-chyrp/</feedburner:origLink></entry>
    <entry>
        <title type="html">Yay another project!</title>
        <id>tag:jeremyknope.com,2008-06-15:/id/147/</id>
        <updated>2008-06-15T14:12:25-05:00</updated>
        <published>2008-06-15T14:12:25-05:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JeremyKnopeDotCom/~3/FBNAdhi4HuM/" />
        <author>
            <name>jerome</name>
            <uri>http://jeremyknope.com</uri>
        </author>
        <content type="html">&lt;p&gt;
I just posted a blog entry about the open source Twitter client I've been working on.  It's over at &lt;a href="http://buttered-cat.com/blog/2008/06/15/open-source-twitter-client/"&gt;Buttered Cat Blog&lt;/a&gt;.  Hopefully some help will start trickling in.
&lt;/p&gt;

&lt;p&gt;
Looking for a new name for it instead of TweetTweet, what do you all say about Tweetldum?  Seems to be the liked one so far.
&lt;/p&gt;
</content>
    <feedburner:origLink>http://jeremyknope.com/2008/06/15/yay-another-project/</feedburner:origLink></entry>
    <entry>
        <title type="html">Old posts coming back soon!</title>
        <id>tag:jeremyknope.com,2008-05-07:/id/146/</id>
        <updated>2008-05-07T23:03:43-05:00</updated>
        <published>2008-05-07T23:03:43-05:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JeremyKnopeDotCom/~3/lpYTqvyzXtI/" />
        <author>
            <name>jerome</name>
            <uri>http://jeremyknope.com</uri>
        </author>
        <content type="html">&lt;p&gt;I've been super lazy and haven't gotten my old posts from Typo imported into wordpress, I definitely know there's a few articles that get linked a bit so hopefully I'll get them back soon.&lt;/p&gt;
</content>
    <feedburner:origLink>http://jeremyknope.com/2008/05/07/old-posts-coming-back-soon/</feedburner:origLink></entry>
    <entry>
        <title type="html">Wikileaks Censorship has Inverse Affect</title>
        <id>tag:jeremyknope.com,2008-02-18:/id/145/</id>
        <updated>2008-02-18T23:22:00-05:00</updated>
        <published>2008-02-18T23:22:00-05:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JeremyKnopeDotCom/~3/RHZsGkisULI/" />
        <author>
            <name>jerome</name>
            <uri>http://jeremyknope.com</uri>
        </author>
        <content type="html">&lt;p&gt;
    So apparently there's this website &lt;a href="http://wikileaks.be"&gt;Wikileaks&lt;/a&gt; who recently got &lt;a href="http://www.boingboing.net/2008/02/18/california-judge-shu.html"&gt;censored by a California judge&lt;/a&gt;.
The funny thing is that I hadn't even heard about until now.  I recall seeing a few articles in my RSS feeds that mentioned &lt;a href="http://88.80.13.160/"&gt;Wikileaks&lt;/a&gt; but it never really triggered a response for me to read them.  I didn't really look into what it was until I saw it &lt;a href="http://daringfireball.net/linked/2008/february#mon-18-wikileaks"&gt;mentioned&lt;/a&gt; on &lt;a href="http://daringfireball.net/"&gt;Daring Fireball&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
    The interesting part is that the link I discovered it through is in itself a link to boing boing, which is then referencing another site.  Basically the news causes a chain reaction on the internet, since it ends up on high traffic places like boing boing and then just about everybody else starts mentioning or finding out about it like me.
&lt;/p&gt;

&lt;p&gt;
    I wonder what they attempt to accomplish since there's a ton of alternate domain names across many countries, not to mention using the IP address directly, that you can use to still read all the material on Wikileaks.  They couldn't get an injunction on the hosting since I believe it's hosted outside of the US.  Wikileaks was also given almost no warning, and didn't even have representation in the hearing.
&lt;/p&gt;

&lt;p&gt;
    So now that they've censored it, they probably just increased the visibility of the site instead of what they intended.  And I just found some excellent evidence of that: &lt;a href="http://technorati.com/chart/wikileaks?language=en&amp;authority=a4"&gt;Graph of blog posts mentioning 'wikileaks' in past 90 days&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;UPDATE: &lt;/strong&gt; Looks like it probably hit just about every major news site, it was on digg and slashdot, which both have the readership to destroy a web server.
&lt;/p&gt;
</content>
    <feedburner:origLink>http://jeremyknope.com/2008/02/18/wikileaks-censorship-has-inverse-affect/</feedburner:origLink></entry>
    <entry>
        <title type="html">Switching RSS Readers (and shared items)</title>
        <id>tag:jeremyknope.com,2008-01-09:/id/144/</id>
        <updated>2008-01-09T22:33:26-05:00</updated>
        <published>2008-01-09T22:33:26-05:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JeremyKnopeDotCom/~3/7Uq-V7nTG1Y/" />
        <author>
            <name>jerome</name>
            <uri>http://jeremyknope.com</uri>
        </author>
        <content type="html">&lt;p&gt;
So with the news that &lt;a href="http://inessential.com/2008/01/09.php"&gt;NetNewsWire is now free&lt;/a&gt;, I decided I should try to fully switch to using it along with using delicious in place of google reader's shared items.
&lt;/p&gt;

&lt;p&gt;So if you follow my shared items, use my delicious feed instead, here:&lt;/p&gt;

&lt;p&gt;
Web: &lt;a href="http://del.icio.us/jfro/shared"&gt;http://del.icio.us/jfro/shared&lt;/a&gt;&lt;br /&gt;
RSS: &lt;a href="http://del.icio.us/rss/jfro/shared"&gt;http://del.icio.us/rss/jfro/shared&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
If you really want to see everything I jam into delicious, use my regular feed at &lt;a href="http://del.icio.us/rss/jfro"&gt;http://del.icio.us/rss/jfro&lt;/a&gt;
&lt;/p&gt;
</content>
    <feedburner:origLink>http://jeremyknope.com/2008/01/09/switching-rss-readers-and-shared-items/</feedburner:origLink></entry>
    <entry>
        <title type="html">A couple days with Git</title>
        <id>tag:jeremyknope.com,2007-12-12:/id/143/</id>
        <updated>2007-12-12T13:16:05-05:00</updated>
        <published>2007-12-12T13:16:05-05:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JeremyKnopeDotCom/~3/gOdgMnGabmI/" />
        <author>
            <name>jerome</name>
            <uri>http://jeremyknope.com</uri>
        </author>
        <content type="html">&lt;p&gt;
So my first impressions with &lt;a href="http://git.or.cz/"&gt;Git&lt;/a&gt; which I've heard some various discussions about in &lt;a href="http://macsb.ironcoder.org/wiki/Main_Page"&gt;#macsb&lt;/a&gt; has been quite good.  It's pretty easy to get started with, specially with the decentralized nature, meaning you don't need to setup a repository and do the whole import/checkout dance that you have to do with subversion.  If I have a project that I want to start versioning, I just jump right in and tell git to fire it up, add all the files (save a few like say build/) and then commit and I'm already versioning.  
&lt;/p&gt;

&lt;p&gt;I always found the starting of a new project with subversion to be a bit confusing and awkward.  It involved setting up a repository if there isn't one, or a new folder in an existing, Importing the project somewhere into the repository, Finally checking out a fresh working copy of the project, moving aside your previous copy of it.  There may be some better way that doesn't involve shuffling your old pre-svn copy out of the way, but its still kinda clunky.  From then on it's not really that bad though.
&lt;/p&gt;

&lt;p&gt;
One of the first things I noticed which was different, but that I actually like, is that by default you have to explicitly tell git what you're going to commit.  You go though and add any new or modified files that you want to be part of the commit.  I like this since very often I find myself committing bits and pieces of a project, but not committing every modification I've made.  In subversion I either have to do separate commits, or specify each thing after 'svn commit' which is not as elegant as actually &lt;em&gt;marking&lt;/em&gt; items for a commit like the approach git seems to take.  It agrees with my method of going through a lot of changes and approving certain changes for actual committing.
&lt;/p&gt;

&lt;p&gt;There's also some other benefits that I have yet to dive into beyond reading about, but one of the other strengths of git that people talk about, which is branching.  Git allows branching in such a simple efficient way that you can easily branch off and experiment with stuff, easily coming back to your stable branch, merging anything that might have been a success.  I've always found the procedure for branching in subversion to be a bit daunting, git's in comparison is trivial.  Creating a branch in git is literally a single command, making it much more attractive to allow you to mess around, track changes, but easily keep things cleanly organized.  This I will definitely have to experiment to see if it really is as awesome as it looks.
&lt;/p&gt;

&lt;p&gt;
I'd definitely recommend giving git a serious look, specially for anybody that isn't already invested in a particular versioning system.  It seems to be a decent fit for an independent developer like myself, and even sounds like it would work well at work if we weren't already heavily using subversion.  Since my personal projects only have me working on them, it works well for me to get going quickly with tracking changes, not having to do the bit lengthier setup that seems to come with subversion.  
&lt;/p&gt;

&lt;p&gt;
Check out the &lt;a href="http://www.kernel.org/pub/software/scm/git/docs/tutorial.html"&gt;Git Tutorial&lt;/a&gt; to get a good feel of how git works.  See if it may appeal to your way of doing things.
&lt;/p&gt;
</content>
    <feedburner:origLink>http://jeremyknope.com/2007/12/12/a-couple-days-with-git/</feedburner:origLink></entry>
    <entry>
        <title type="html">Portals, short but sweet</title>
        <id>tag:jeremyknope.com,2007-11-21:/id/142/</id>
        <updated>2007-11-21T07:56:23-05:00</updated>
        <published>2007-11-21T07:56:23-05:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JeremyKnopeDotCom/~3/_YofzMxkl_4/" />
        <author>
            <name>jerome</name>
            <uri>http://jeremyknope.com</uri>
        </author>
        <content type="html">&lt;p&gt;I rented &lt;a href="http://en.wikipedia.org/wiki/The_Orange_Box"&gt;The Orange Box&lt;/a&gt; recently, purely to play &lt;a href="http://en.wikipedia.org/wiki/Portal_%28video_game%29"&gt;Portal&lt;/a&gt; which I've heard great things about.  The reviews I read were very correct, it's a gem.  I started the game last night before dinner, and finished before bed, it's definitely short but it was great.  The game mechanics involving creating a portal to solve how you get out were not only cool, but the plot and humor throughout it was good too.  All leading up to a decent ending with hilarious credits.  It's great.  I don't even really care to play anything else in bundle of games, Portal was worth the rental.&lt;/p&gt;
</content>
    <feedburner:origLink>http://jeremyknope.com/2007/11/21/portals-short-but-sweet/</feedburner:origLink></entry>
    <entry>
        <title type="html">So Long Myspace</title>
        <id>tag:jeremyknope.com,2007-10-11:/id/141/</id>
        <updated>2007-10-11T08:09:28-05:00</updated>
        <published>2007-10-11T08:09:28-05:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JeremyKnopeDotCom/~3/HJkfdXDh2xM/" />
        <author>
            <name>jerome</name>
            <uri>http://jeremyknope.com</uri>
        </author>
        <content type="html">&lt;p&gt;So I went ahead and cancelled my myspace account yesterday.  After getting yet another porn related friend request decided I might as well just kill the account.  Plus with everybody I know on &lt;a href="http://www.facebook.com/"&gt;facebook&lt;/a&gt; and with Google &lt;a href="http://scobleizer.com/2007/10/09/google-making-big-social-media-moves/"&gt;looking to bring new stuff&lt;/a&gt; into the social network game, why should I keep open an account on what I consider an abomination of web development.  Glad to rid of that nasty place from the list of sites I hold accounts with.&lt;/p&gt;
</content>
    <feedburner:origLink>http://jeremyknope.com/2007/10/11/so-long-myspace/</feedburner:origLink></entry>
    <entry>
        <title type="html">Typo/Rails bugging me</title>
        <id>tag:jeremyknope.com,2007-10-08:/id/140/</id>
        <updated>2007-10-08T16:12:00-05:00</updated>
        <published>2007-10-08T16:12:00-05:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JeremyKnopeDotCom/~3/rxpguK3aSf8/" />
        <author>
            <name>jerome</name>
            <uri>http://jeremyknope.com</uri>
        </author>
        <content type="html">&lt;p&gt;So I just modified the layout slightly to my blog here, and what happened?  Oh the front page stopped rendering, due to some filter chain stuff, which I know nothing about.&lt;/p&gt;

&lt;p&gt;WTF?  I had this happen before, forget what fixed it.  It's been restarted, now let's see if this post helps&lt;/p&gt;
</content>
    <feedburner:origLink>http://jeremyknope.com/2007/10/08/typo-rails-bugging-me/</feedburner:origLink></entry>
    <entry>
        <title type="html">Sparkle to get overhaul</title>
        <id>tag:jeremyknope.com,2007-09-10:/id/139/</id>
        <updated>2007-09-10T20:41:30-05:00</updated>
        <published>2007-09-10T20:41:30-05:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JeremyKnopeDotCom/~3/w-4YyPkk4-s/" />
        <author>
            <name>jerome</name>
            <uri>http://jeremyknope.com</uri>
        </author>
        <content type="html">&lt;p&gt;Glad to &lt;a href="http://andymatuschak.org/articles/2007/09/10/it-begins/"&gt;see&lt;/a&gt; the much talked about &lt;a href="http://sparkle.andymatuschak.org/wiki/Sparkle2"&gt;future&lt;/a&gt; for &lt;a href="http://sparkle.andymatuschak.org/"&gt;Sparkle&lt;/a&gt; is undergoing construction.  The idea was to centralize the Sparkle update process, to be very similar to Apple's own software update.  This would allow you to keep much of the 3rd party software up-to-date without interruption within the applications themselves, and to easily keep them all up-to-date regardless of when you open them.  &lt;/p&gt;

&lt;p&gt;I think the big thing is actually the lack of interuption, sometimes you're not so happy to have the sparkle software update window popping up in your face unexpected.  This will be a savior for background applications like &lt;a href="http://www.noodlesoft.com/hazel.php"&gt;Hazel&lt;/a&gt; which is a pretty cool background system for organizing files.&lt;/p&gt;

&lt;p&gt;I look forward to seeing this new iteration of Sparkle from &lt;a href="http://andymatuschak.org/"&gt;Andy Matuschak&lt;/a&gt; come into fruition&lt;/p&gt;

&lt;!-- Technorati Tags Start --&gt;

&lt;p&gt;Technorati Tags:
&lt;a href="http://technorati.com/tag/mac" rel="tag"&gt;mac&lt;/a&gt;, &lt;a href="http://technorati.com/tag/macsb" rel="tag"&gt;macsb&lt;/a&gt;, &lt;a href="http://technorati.com/tag/programming" rel="tag"&gt;programming&lt;/a&gt;, &lt;a href="http://technorati.com/tag/software" rel="tag"&gt;software&lt;/a&gt;, &lt;a href="http://technorati.com/tag/sparkle" rel="tag"&gt;sparkle&lt;/a&gt;
&lt;/p&gt;

&lt;!-- Technorati Tags End --&gt;
</content>
    <feedburner:origLink>http://jeremyknope.com/2007/09/10/sparkle-to-get-overhaul/</feedburner:origLink></entry>
    <entry>
        <title type="html">Trying MarsEdit 2.0</title>
        <id>tag:jeremyknope.com,2007-09-07:/id/138/</id>
        <updated>2007-09-07T15:21:08-05:00</updated>
        <published>2007-09-07T15:21:08-05:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JeremyKnopeDotCom/~3/CzUo4GAFNyo/" />
        <author>
            <name>jerome</name>
            <uri>http://jeremyknope.com</uri>
        </author>
        <content type="html">&lt;p&gt;So giving &lt;a href="http://www.red-sweater.com/marsedit/"&gt;MarsEdit 2.0&lt;/a&gt; a run, I've used ecto for a while mostly out of laziness, liking the WYSIWYG editor.  It looks like MarsEdit 2 has features that make me happy, so I'm trying it out to see how it goes.&lt;/p&gt;

&lt;p&gt;Flickr interface is pretty cool, check it out!&lt;br /&gt;
&lt;a href="http://www.flickr.com/photos/25259640@N00/801920440" title="View 'Finally removed' on Flickr.com" rel="lightbox"&gt;&lt;img src="http://farm2.static.flickr.com/1077/801920440_0688faf18a_s.jpg" alt="Finally removed" border="0" width="75" height="75" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Spiffy, next up, blogging about &lt;a href="http://www.magentocommerce.com/"&gt;Magento&lt;/a&gt;&lt;/p&gt;
</content>
    <feedburner:origLink>http://jeremyknope.com/2007/09/07/trying-marsedit-2-0/</feedburner:origLink></entry>
    <entry>
        <title type="html">QuickBoot 1.0 released, and Buttered Cat Software!</title>
        <id>tag:jeremyknope.com,2007-07-18:/id/137/</id>
        <updated>2007-07-18T19:05:28-05:00</updated>
        <published>2007-07-18T19:05:28-05:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JeremyKnopeDotCom/~3/EBN7iE2IP_E/" />
        <author>
            <name>jerome</name>
            <uri>http://jeremyknope.com</uri>
        </author>
        <content type="html">&lt;p&gt;
So I setup &lt;a href="http://buttered-cat.com/"&gt;Buttered Cat Software&lt;/a&gt; with a &lt;a href="http://www.oswd.org/design/preview/id/3376"&gt;free design&lt;/a&gt; so I can start getting stuff out there, one of them being a simple utility I whipped together after a quick discussion about not wanting to hold option with someone.  &lt;a href="http://buttered-cat.com/products/view/quickboot"&gt;QuickBoot&lt;/a&gt; lets you choose another system to boot to, but only temporarily, rebooting after using that system will bring you back to your default system.  The main purpose is just avoiding the need to hold option, including the possibility of restarting your mac and actually missing your chance to hold option.
&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://buttered-cat.com/products/view/quickboot"&gt;Check out QuickBoot&lt;/a&gt;
&lt;/p&gt;

&lt;!-- technorati tags start --&gt;

&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/mac" rel="tag"&gt;mac&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/software" rel="tag"&gt;software&lt;/a&gt;&lt;/p&gt;

&lt;!-- technorati tags end --&gt;
</content>
    <feedburner:origLink>http://jeremyknope.com/2007/07/18/quickboot-1-0-released-and-buttered-cat-software/</feedburner:origLink></entry>
    <entry>
        <title type="html">Mac Software Site Framework</title>
        <id>tag:jeremyknope.com,2007-07-15:/id/136/</id>
        <updated>2007-07-15T15:30:43-05:00</updated>
        <published>2007-07-15T15:30:43-05:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JeremyKnopeDotCom/~3/ihzWlMUswbo/" />
        <author>
            <name>jerome</name>
            <uri>http://jeremyknope.com</uri>
        </author>
        <content type="html">&lt;p&gt;
So I'm currently working on a new site for hosting my mac software projects and wanted to include support for some popular things used by mac programs. For example many programs use &lt;a href="http://sparkle.andymatuschak.org/"&gt;Sparkle&lt;/a&gt; for doing automatic updates, or even &lt;a href="http://code.google.com/p/sparkleplus/"&gt;Sparkle+&lt;/a&gt; for tracking system information from the updating applications.  So I wanted to go about making a site that would let me manage programs, their downloads, and possibly auto-generate appcasts for use by Sparkle updaters.
&lt;/p&gt;

&lt;p&gt;
So I currently have quite a bit of the front-end going, no administration yet.  I have a system that has products, product releases (downloads), download stats, sparkle profile tracking and appcast generation, and download stats integration for sparkle downloads.  A lot of this is or will be configurable if this proves to be useful for other people to use.
&lt;/p&gt;

&lt;p&gt;
It's using a PHP MVC framework also, providing nice URls for everything, some examples:
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;example.com/products/view/MetaGrowler&lt;/li&gt;
&lt;li&gt;example.com/downloads/get/6&lt;/li&gt;
&lt;li&gt;example.com/downloads/product/MetaGrowler&lt;/li&gt;
&lt;li&gt;example.com/downloads/get/6/fromsparkle/MetaGrowler_0.1.1.zip&lt;/li&gt;
&lt;li&gt;example.com/appcast/MetaGrowler&lt;/li&gt;
&lt;li&gt;example.com/sparkleProfile/MetaGrowler?profilerArgsHere&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
That's just some of the basic stuff I've got so far, I mostly wanted a nice way of managing various products and their downloads, I'd want purchase ability eventually too.  I've heard there's someone that might be working on a similar project too, mentioned on the macsb yahoo group but that's currently not searchable due to some error.
&lt;/p&gt;

&lt;p&gt;
I'd like to hear any feedback, and also see what the other projects are (only know of &lt;a href="http://www.potionfactory.com/potionstore"&gt;PotionStore&lt;/a&gt; as a similar rails-based project.)  I'm mostly geared to build my own site right now but trying to keep in mind it might be useful for others, so any input is helpful.  I hope I'm not duplicating someone else's work, but maybe can work together if there's similar goals, if anybody knows the post, or maybe if yahoo starts working again soon can see what's up.
&lt;/p&gt;

&lt;p&gt;
Email me at jerome AT jeremyknope DOT com to talk about it if interested or if you're working on something similar and want to discuss it.
&lt;/p&gt;

&lt;!-- technorati tags start --&gt;

&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/framework" rel="tag"&gt;framework&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/mac" rel="tag"&gt;mac&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/php" rel="tag"&gt;php&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/software" rel="tag"&gt;software&lt;/a&gt;&lt;/p&gt;

&lt;!-- technorati tags end --&gt;
</content>
    <feedburner:origLink>http://jeremyknope.com/2007/07/15/mac-software-site-framework/</feedburner:origLink></entry>
    <entry>
        <title type="html">Experience with Zend_Acl and usage example</title>
        <id>tag:jeremyknope.com,2007-06-18:/id/135/</id>
        <updated>2007-06-18T22:15:37-05:00</updated>
        <published>2007-06-18T22:15:37-05:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JeremyKnopeDotCom/~3/ipj-Za56UyQ/" />
        <author>
            <name>jerome</name>
            <uri>http://jeremyknope.com</uri>
        </author>
        <content type="html">&lt;p&gt;
So I decided to write a bit about my experience and implementation of the &lt;a href="http://framework.zend.com/manual/en/zend.acl.html"&gt;Zend_Acl&lt;/a&gt; component, it's a bit rough but I hope it gives an idea of how to possibly implement Zend_Acl.  Let me know if there's anything not very clear, I'm no english major so there's bound to be some awful sections.
&lt;br /&gt;&lt;strong&gt;
&lt;br /&gt;Background&lt;/strong&gt;
&lt;br /&gt;So where I work, at &lt;a href="http://www.rainstormconsulting.com/"&gt;RainStorm Consulting&lt;/a&gt;, we have a large web application system that drives parts of client's websites.  It currently does not have a public facing site that I could provide for more information, but it's something that's evolved over time to facilitate common needs among clients, eventually turning into a central service-providing administration site that clients can go to one place for to administer various dynamic content.  It's also a &lt;a href="http://en.wikipedia.org/wiki/Multitenancy"&gt;multi-tenant&lt;/a&gt; system, currently only with basic privileges, super administrator, site administrator, and a basic user that can only edit their 'profile' for a couple applications.  There's now a client with desire for more fine-grained permissions so &lt;a href="http://framework.zend.com/manual/en/zend.acl.html"&gt;Zend_Acl&lt;/a&gt; fit the bill.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Implementation&lt;/strong&gt;
&lt;br /&gt;After brainstorming a bit, what exactly we needed for permission control and much frustration wrapping my head around the idea of &lt;a href="http://en.wikipedia.org/wiki/Access_control_list"&gt;ACL&lt;/a&gt;, taking it's full capabilities into my head and getting confused.  I basically ended up at the end with an ACL implementation that is similar to &lt;a href="http://drupal.org/"&gt;Drupal's&lt;/a&gt;.  I didn't go into a full implementation of the hierarchy that Zend_Acl offers for both resources and roles.  Our system has modules(separate applications) which will map directly to a resource, so say NewsStorm will have a resource by the same name.  A role will then have various resource &amp;#38; permission words mapped to it, with a flag for allow or deny.  The basic schema is sketched out roughly in this diagram:
&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://jeremyknope.com/files/acl-schema.jpg" rel="lightbox"&gt;&lt;img src="http://jeremyknope.com/files/acl-schema-tm.jpg" height="113" width="150" align="" border="1" hspace="4" vspace="4" alt="acl-schema" title="acl-schema" longdesc="" /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
I still haven't finalized the best way for providing possible permissions from a module, but possibly a central module file that al modules will have, possibly containing a class.  Currently it's stored in the modules table in the database, modules create a record there on installation.  A simple field right now has a csv of permissions, for example NewsStorm might have "manage categories, new post, edit post, delete post, publish post" which are provided in the permission management, which is modeled after drupal's.  
&lt;/p&gt;

&lt;p&gt;
Shot of the client's version of this permission management tool:
&lt;br /&gt;&lt;a href="http://jeremyknope.com/files/Siteturbine-acl.png" rel="lightbox"&gt;&lt;img src="http://jeremyknope.com/files/Siteturbine-acl-tm.jpg" height="122" width="150" align="" border="1" hspace="4" vspace="4" alt="Siteturbine-Acl" title="" longdesc="" /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
The actual setup so permissions can be checked happens in the core class in setupAcl(), it pulls everything from the database and builds the ACL tree.  We have 2 core roles, Administrator which is just hard-coded and Site Administrator which exists in the database and is meant for almost full control over every module for a site.  We fetch all the roles and add them, along with resources.  
&lt;/p&gt;

&lt;p&gt;&lt;pre name="code" class="php"&gt;
$acl = new Zend_Acl();&lt;/p&gt;

&lt;p&gt;$roles = Siteturbine_Acl_Role::find('all', array('parent_id is null'));
foreach($roles as $role) {
    $acl-&amp;gt;addRole($role);
}
$resources = Siteturbine_Acl_Resource::find('all', array('parent_id is null'));
foreach($resources as $resource) {
    $acl-&amp;gt;add($resource);
}
$acl-&amp;gt;allow('Administrator', null, null);&lt;/p&gt;

&lt;p&gt;foreach($roles as $role) {
    $query = "SELECT ro.name as role,re.name as resource,GROUP_CONCAT(rr.permission SEPARATOR ',') as perm
  FROM acl_roles ro 
  LEFT OUTER JOIN acl_resources_roles rr ON rr.role_id = ro.id 
  LEFT OUTER JOIN acl_resources re ON re.id = rr.resource_id 
  WHERE ro.id = ? AND rr.allow = 1
  GROUP BY rr.resource_id";
    $allows = Siteturbine_Acl_Resource::findBySql(array($query, $role-&amp;gt;id));
    $has_allow = false;
    foreach($allows as $a) {
        $has_allow = true;
        $acl-&amp;gt;allow($role, $a-&amp;gt;resource, explode(',', $a-&amp;gt;perm));
    }
    if($has_allow) {
        $acl-&amp;gt;allow($role, $a-&amp;gt;resource, null);
        $acl-&amp;gt;allow($role, $a-&amp;gt;resource, 'view');
    }&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$query = "SELECT ro.name as role,re.name as resource,GROUP_CONCAT(rr.permission SEPARATOR ',') as perm
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;FROM acl_roles ro 
  LEFT OUTER JOIN acl_resources_roles rr ON rr.role_id = ro.id 
  LEFT OUTER JOIN acl_resources re ON re.id = rr.resource_id 
  WHERE ro.id = ? AND rr.deny = 1
  GROUP BY rr.resource_id";
    $allows = Siteturbine_Acl_Resource::findBySql(array($query, $role-&amp;gt;id));
    foreach($allows as $a) {
        $acl-&amp;gt;deny($role, $a-&amp;gt;resource, explode(',', $a-&amp;gt;perm));
    }
}
&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;
So tons of stuff going on in here I suppose, basically I query out the resource-permission maps into separate rows that I can loop through and call $acl-&amp;gt;allow() or $acl-&amp;gt;deny() as appropriate.  If a role has any allow permission at all, I also set a hard-coded allow to the 'view' permission, which I use as a way to see if someone has ANY module permission at all, used in navigation.
&lt;/p&gt;

&lt;p&gt;
After all that, I can call a helper type function I have for checking if the current user has permission for a specific area or task.  This function takes care of automatically getting the current user and also the module if one isn't specified.
&lt;/p&gt;

&lt;p&gt;&lt;pre name="code" class="php"&gt;
    function isAllowed($permission, $module=null)
&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;
so $this-&amp;gt;isAllowed('new post') might return true if the current user has a role that allows the 'new post' permission on the current module.
&lt;/p&gt;

&lt;p&gt;
This was a pretty rough post, but I'm not so great at writing but I hope it might be useful.  Let me know if it could use more clarification, I probably glossed over a lot.
&lt;/p&gt;

&lt;p&gt;&lt;script class="javascript" src="/javascripts/shCore.js"&gt;&lt;/script&gt;
&lt;script class="javascript" src="/javascripts/shBrushPhp.js"&gt;&lt;/script&gt;&lt;/p&gt;

&lt;script class="javascript"&gt;
dp.SyntaxHighlighter.ClipboardSwf = 'Scripts/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');
&lt;/script&gt;

&lt;!-- technorati tags start --&gt;

&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/php" rel="tag"&gt;php&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/framework" rel="tag"&gt;framework&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/zend" rel="tag"&gt;zend&lt;/a&gt;&lt;/p&gt;

&lt;!-- technorati tags end --&gt;
</content>
    <feedburner:origLink>http://jeremyknope.com/2007/06/18/experience-with-zend_acl-and-usage-example/</feedburner:origLink></entry>
    <entry>
        <title type="html">PHP Database APIs MySQL Edition</title>
        <id>tag:jeremyknope.com,2007-05-31:/id/134/</id>
        <updated>2007-05-31T20:53:43-05:00</updated>
        <published>2007-05-31T20:53:43-05:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JeremyKnopeDotCom/~3/RLXGAEue8sg/" />
        <author>
            <name>jerome</name>
            <uri>http://jeremyknope.com</uri>
        </author>
        <content type="html">&lt;p&gt;
So I decided to do a simple performance test after a friend linked me to &lt;a href="http://joseph.randomnetworks.com/archives/2006/04/04/php-database-functions-vs-peardb-vs-adodb/"&gt;this blog post&lt;/a&gt; of someone doing a comparison against a PostgreSQL database.  I use MySQL at work so I wondered if there was much difference with the mysql drivers for these various APIs.  The results actually seem to show PDO to be the winner when querying a MySQL database.
&lt;/p&gt;

&lt;p&gt;
Here's the results:
&lt;/p&gt;

&lt;table border="1" cellspacing="0" cellpadding="5"&gt;
    &lt;tr&gt;
        &lt;th&gt;Method&lt;/th&gt;
        &lt;th&gt;Time (ms)&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;PDO Prepared:&lt;/td&gt;&lt;td&gt;0.01632&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;PDO Query:&lt;/td&gt;&lt;td&gt;0.01809&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;MySQL Query:&lt;/td&gt;&lt;td&gt;0.11709&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;MySQLi:&lt;/td&gt;&lt;td&gt;0.17366&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;ADOdb:&lt;/td&gt;&lt;td&gt;0.52558&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Zend_Db:&lt;/td&gt;&lt;td&gt;0.74503&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;PEAR::DB:&lt;/td&gt;&lt;td&gt;1.21966&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;MDB2:&lt;/td&gt;&lt;td&gt;1.31814&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;
This test was run on a Ubuntu PC, an AMD 1800+ (1.53Ghz) PHP 5.2.2 machine.  A simple query was run 250 times returned about 270 rows, similar to the blog post I mentioned.  The 250 query iterations were also run 10 times per API and the average of that is taken.  The results fluctuate a little but are usually pretty close to the same.  So it seems like for MySQL PDO does a pretty good job.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Edit:&lt;/strong&gt; Added Zend_Db results, which uses PDO behind the scenes
&lt;/p&gt;

&lt;!-- technorati tags start --&gt;

&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/database" rel="tag"&gt;database&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/mysql" rel="tag"&gt;mysql&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/performance" rel="tag"&gt;performance&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/php" rel="tag"&gt;php&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/programming" rel="tag"&gt;programming&lt;/a&gt;&lt;/p&gt;

&lt;!-- technorati tags end --&gt;
</content>
    <feedburner:origLink>http://jeremyknope.com/2007/05/31/php-database-apis-mysql-edition/</feedburner:origLink></entry>
    <entry>
        <title type="html">Zend Core First Impression</title>
        <id>tag:jeremyknope.com,2007-05-17:/id/133/</id>
        <updated>2007-05-17T11:13:00-05:00</updated>
        <published>2007-05-17T11:13:00-05:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JeremyKnopeDotCom/~3/t__D2grmfMo/" />
        <author>
            <name>jerome</name>
            <uri>http://jeremyknope.com</uri>
        </author>
        <content type="html">&lt;p&gt;
So &lt;a href="http://www.zend.com/products/zend_core"&gt;Zend Core&lt;/a&gt; recently released an update which has the &lt;a href="http://www.php.net/pdo"&gt;PDO&lt;/a&gt; extension so I can now use it since all my applications run off of PDO for data access.  Problem is I'm trying this on Mac OS X which currently has a &lt;a href="http://bugs.php.net/bug.php?id=36708"&gt;problem with building PDO separately&lt;/a&gt; for PHP.  So I had to wait for Zend Core to integrate the core PDO extension to even use it.
&lt;/p&gt;

&lt;p&gt;
Zend Core offers a simple installation and management suite for a PHP installation.  It installs PHP and it's components along with some optional components (like &lt;a href="http://www.phpmyadmin.net/"&gt;phpMyAdmin&lt;/a&gt; and the likes and even Apache 2) and gives you a web interface for managing your php configuration, seeing general status of Apache, benchmark (ap), and grab updates automatically or manually for Zend Core.  It's also free to use it seems, you pay if you want support.
&lt;/p&gt;

&lt;p&gt;
My favorite part of this is probably the offline searchable PHP manual it also includes and the easy to use php.ini editor that lets you edit settings &amp;#38; load extensions easily.  Check out some screenshots.
&lt;/p&gt;

&lt;p&gt;

&lt;typo:lightbox img="502180495" thumbsize="thumbnail" displaysize="large" /&gt;
&lt;typo:lightbox img="502180523" thumbsize="thumbnail" displaysize="large" /&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;typo:lightbox img="502180561" thumbsize="thumbnail" displaysize="large" /&gt;
&lt;typo:lightbox img="502144166" thumbsize="thumbnail" displaysize="large" /&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;typo:lightbox img="502180629" thumbsize="thumbnail" displaysize="large" /&gt;
&lt;typo:lightbox img="502144242" thumbsize="thumbnail" displaysize="large" /&gt;
&lt;/p&gt;

&lt;!-- Technorati Tags Start --&gt;

&lt;p&gt;Technorati Tags:
&lt;a href="http://technorati.com/tag/php" rel="tag"&gt;php&lt;/a&gt;, &lt;a href="http://technorati.com/tag/programming" rel="tag"&gt;programming&lt;/a&gt;, &lt;a href="http://technorati.com/tag/zend" rel="tag"&gt;zend&lt;/a&gt;, &lt;a href="http://technorati.com/tag/review" rel="tag"&gt;review&lt;/a&gt;
&lt;/p&gt;

&lt;!-- Technorati Tags End --&gt;
</content>
    <feedburner:origLink>http://jeremyknope.com/2007/05/17/zend-core-first-impression/</feedburner:origLink></entry>
    <entry>
        <title type="html">Mint within Typo (or other rails apps)</title>
        <id>tag:jeremyknope.com,2007-04-12:/id/132/</id>
        <updated>2007-04-12T11:03:24-05:00</updated>
        <published>2007-04-12T11:03:24-05:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JeremyKnopeDotCom/~3/-oE_5dJDJ2Y/" />
        <author>
            <name>jerome</name>
            <uri>http://jeremyknope.com</uri>
        </author>
        <content type="html">&lt;p&gt;
So I decided to splurge and throw down $30 for &lt;a href="http://www.haveamint.com/"&gt;Mint&lt;/a&gt; since seemed like a lot of people love it, and it looks pretty awesome.  Currently my blog is driven by &lt;a href="http://typosphere.org"&gt;Typo&lt;/a&gt; which is &lt;a href="http://www.rubyonrails.com/"&gt;Ruby on Rails&lt;/a&gt; based.  This means that my web folder has rewrite rules to push pretty much any path that isn't a specific file into the rails app.  So putting mint in there at /mint/ would mean it 404s when expecting to fetch index.php.  So I just gave mint it's own htaccess file that rewrites URLs to mint without filename to index.php.
&lt;/p&gt;

&lt;blockquote&gt;
RewriteRule ^mint/$ index.php [QSA]
&lt;br /&gt;&lt;span style="text-decoration:line-through;"&gt;RewriteRule ^([^.]+)$ $1.php [QSA]
&lt;br /&gt;RewriteCond %{REQUEST_FILENAME} !-f&lt;/span&gt;
&lt;/blockquote&gt;

&lt;p&gt;
I'm really not that sure if the last 2 lines were at all necessary, I'm thinking no due to the nature of mint, which pushes everything through index.php it looks like.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;EDIT&lt;/strong&gt;: Better yet, google first before just doing it myself and find out that this: &lt;a href="http://nubyonrails.com/articles/2005/12/05/mint-stats-for-your-ruby-on-rails-app"&gt;Mint Stats for Your Ruby on Rails App&lt;/a&gt; has a lot more information and a better solution, not sure why I didn't bother looking first.
&lt;/p&gt;

&lt;!-- technorati tags start --&gt;

&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/mint" rel="tag"&gt;mint&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/rails" rel="tag"&gt;rails&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/stats" rel="tag"&gt;stats&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/typo" rel="tag"&gt;typo&lt;/a&gt;&lt;/p&gt;

&lt;!-- technorati tags end --&gt;
</content>
    <feedburner:origLink>http://jeremyknope.com/2007/04/12/mint-within-typo-or-other-rails-apps/</feedburner:origLink></entry>
    <entry>
        <title type="html">Google Desktop for Mac, also might cause spotlight memory leak?</title>
        <id>tag:jeremyknope.com,2007-04-04:/id/131/</id>
        <updated>2007-04-04T16:33:16-05:00</updated>
        <published>2007-04-04T16:33:16-05:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JeremyKnopeDotCom/~3/CVyfr2eQL6Q/" />
        <author>
            <name>jerome</name>
            <uri>http://jeremyknope.com</uri>
        </author>
        <content type="html">&lt;p&gt;
So I tried &lt;a href="http://desktop.google.com/mac/"&gt;Google Desktop for Mac&lt;/a&gt; that was just recently released, beta of course.  It's not too bad, didn't take seriously long to index either.  Not sure it's any faster than Spotlight.  I didn't really like the lack of grouping that I like in Spotlight results, mail messages grouped together etc.  The double-tap-command shortcut is an interesting idea too, and it worked quite well and was kinda cool to browse results in the web page view with pagination.  Though when in that view it would open various things within the browser it seems, or at least mail messages, actually not sure about other files.  Of course not surprising since the browser probably will open whatever it deems appropriate since it's just another web page really.  I ended up uninstalling it just because it didn't quite jive with me, I'm not a huge Spotlight use but I still prefer it.  
&lt;/p&gt;

&lt;p&gt;
I don't know if the cause of this extreme increase in memory consumption is from trying out Google Desktop for Mac or not, but I've never seen mds at the top of the list of memory usage before, usually it's &lt;a href="http://www.omnigroup.com/applications/omniweb/"&gt;OmniWeb&lt;/a&gt; after a few days.  Anyway, I only made the connection to Google Desktop due to the fact that it uses some spotlight related stuff, like the privacy list and the importers I believe.  So since I recently was playing with it I thought there might be a connection.  I found one other person noticed same exact thing and they had installed Google Desktop.
&lt;br /&gt;&lt;img src="http://jeremyknope.com/files/mds-memory-2.png" align="" border="1" hspace="4" vspace="4" alt="Mds-Memory-2" title="" longdesc="" /&gt;
&lt;br /&gt;This is easy to fix though, and unfortunately I already uninstalled Google Desktop to verify if it climbs up from use at all, just choosing quit process in Activity Monitor does the trick, no need to choose Force Quit.  It will come back right after with consumption of probably &amp;lt; 5MB.
&lt;/p&gt;

&lt;p&gt;
I'd recommend trying it out for anybody interested, you might want to check your mds process after though and give it a swift quit to get it's memory usage down again though after.  That is if you notice this happen at all and if it's at all connected to Google Desktop.
&lt;/p&gt;

&lt;!-- technorati tags start --&gt;

&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/google" rel="tag"&gt;google&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/mac" rel="tag"&gt;mac&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/software" rel="tag"&gt;software&lt;/a&gt;&lt;/p&gt;

&lt;!-- technorati tags end --&gt;
</content>
    <feedburner:origLink>http://jeremyknope.com/2007/04/04/google-desktop-for-mac-also-might-cause-spotlight-memory-leak/</feedburner:origLink></entry>
    <entry>
        <title type="html">Participating in Tour de Cure, please donate :)</title>
        <id>tag:jeremyknope.com,2007-02-26:/id/130/</id>
        <updated>2007-02-26T14:22:55-05:00</updated>
        <published>2007-02-26T14:22:55-05:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JeremyKnopeDotCom/~3/G_L1TH2lP6U/" />
        <author>
            <name>jerome</name>
            <uri>http://jeremyknope.com</uri>
        </author>
        <content type="html">&lt;p&gt;
So I signed up for &lt;a href="http://tour.diabetes.org/"&gt;Tour de Cure&lt;/a&gt; finally, joining friends in the 25k portion if I can get the $150 in donations.  I'll be on the &lt;a href="http://main.diabetes.org/site/TR?pg=team&amp;amp;fr_id=4345&amp;amp;team_id=170460"&gt;Woodman's Bar &amp;#38; Grill team&lt;/a&gt; with a bunch of other people that frequent the bar, or of course run it.  It'll be a good time, so help me out and donate!
&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://tour.diabetes.org/site/TR?pg=personal&amp;amp;fr_id=4345&amp;amp;px=3240455"&gt; My personal Tour page where you can donate&lt;/a&gt;
&lt;/p&gt;

&lt;!-- technorati tags start --&gt;

&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/biking" rel="tag"&gt;biking&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/charity" rel="tag"&gt;charity&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/race" rel="tag"&gt;race&lt;/a&gt;&lt;/p&gt;

&lt;!-- technorati tags end --&gt;
</content>
    <feedburner:origLink>http://jeremyknope.com/2007/02/26/participating-in-tour-de-cure-please-donate/</feedburner:origLink></entry>
    <entry>
        <title type="html">PHP Build automation</title>
        <id>tag:jeremyknope.com,2007-02-09:/id/129/</id>
        <updated>2007-02-09T12:13:35-05:00</updated>
        <published>2007-02-09T12:13:35-05:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JeremyKnopeDotCom/~3/QNMQHdQqgRU/" />
        <author>
            <name>jerome</name>
            <uri>http://jeremyknope.com</uri>
        </author>
        <content type="html">&lt;p&gt;
I whipped together a simple PHP script for automating the build process of installing a new PHP version.  It's designed for people like me who do installs of PHP that use extensions instead of building everything in.  It automatically tries to figure out what extensions you got loaded that aren't typically built-in and builds &amp;#38; installs those after building &amp;#38; installing PHP.
&lt;/p&gt;

&lt;p&gt;
Basic usage:
&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Edit the file to reflect any configure options, and if desired manually specify extensions you want which will disable the automatic detection&lt;/li&gt;
&lt;li&gt; $ php build_php.php /Users/jerome/php-5.2.1&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
&lt;a href="http://jeremyknope.com/files/build_php.phps.txt"&gt;Get it here&lt;/a&gt;
&lt;/p&gt;

&lt;!-- technorati tags start --&gt;

&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/development" rel="tag"&gt;development&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/php" rel="tag"&gt;php&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/tool" rel="tag"&gt;tool&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/script" rel="tag"&gt;script&lt;/a&gt;&lt;/p&gt;

&lt;!-- technorati tags end --&gt;
</content>
    <feedburner:origLink>http://jeremyknope.com/2007/02/09/php-build-automation/</feedburner:origLink></entry>
</feed>
