<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.0" -->
<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/"
	>

<channel>
	<title>Rational Exuberance</title>
	<link>http://rationalexuberance.org</link>
	<description></description>
	<pubDate>Mon, 15 Jan 2007 04:59:45 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0</generator>
	<language>en</language>
			<item>
		<title>Move an SVN repository</title>
		<link>http://rationalexuberance.org/2007/01/14/move-an-svn-repository/</link>
		<comments>http://rationalexuberance.org/2007/01/14/move-an-svn-repository/#comments</comments>
		<pubDate>Mon, 15 Jan 2007 04:59:45 +0000</pubDate>
		<dc:creator>smeves</dc:creator>
		
	<category>web development</category>
		<guid isPermaLink="false">http://rationalexuberance.org/2007/01/14/move-an-svn-repository/</guid>
		<description><![CDATA[Great tips found here:http://dotnot.org/blog/archives/2005/01/13/move-a-subversion-repository-from-one-machine-to-another/

Quote:

Even if the machines are on different operating systems, this is dead easy. On the source machine, simply ‘dump’ the repository:svnadmin dump /path/to/repo &#62; reponame.dumptar zcf reponame.tgz reponame.dumpscp reponame.tgz hostname:/path/to/new/repo

Then login to the new machine, and set up the new repo:cd /path/to/newsvnadmin create reponametar zxf reponame.tgzsvnadmin load reponame &#60; reponame.dump

That’s all there [...]]]></description>
			<content:encoded><![CDATA[<p>Great tips found here:<br />http://dotnot.org/blog/archives/2005/01/13/move-a-subversion-repository-from-one-machine-to-another/
</p>
<p>Quote:
</p>
<p>Even if the machines are on different operating systems, this is dead easy. On the source machine, simply ‘dump’ the repository:<br />svnadmin dump /path/to/repo &gt; reponame.dump<br />tar zcf reponame.tgz reponame.dump<br />scp reponame.tgz hostname:/path/to/new/repo
</p>
<p>Then login to the new machine, and set up the new repo:<br />cd /path/to/new<br />svnadmin create reponame<br />tar zxf reponame.tgz<br />svnadmin load reponame &lt; reponame.dump
</p>
<p>That’s all there is to it. Then you can of course delete the dump files, the .tgz files, and even the source repo if you are brave.
</p>
<p>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://rationalexuberance.org/2007/01/14/move-an-svn-repository/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Upgrade from Symfony 0.6 to 1.0beta-1</title>
		<link>http://rationalexuberance.org/2006/12/09/upgrade-from-symfony-06-to-10beta-1/</link>
		<comments>http://rationalexuberance.org/2006/12/09/upgrade-from-symfony-06-to-10beta-1/#comments</comments>
		<pubDate>Sun, 10 Dec 2006 03:11:55 +0000</pubDate>
		<dc:creator>smeves</dc:creator>
		
	<category>web development</category>
		<guid isPermaLink="false">http://rationalexuberance.org/2006/12/09/upgrade-from-symfony-06-to-10beta-1/</guid>
		<description><![CDATA[If you are like me, you have a few sites that are up and running with version 0.6 and they seem to be happy in their stable v0.6 state. You used the PEAR install because really you just wanted an easy way to get started. You built a few sites with it, and now you&#8217;d [...]]]></description>
			<content:encoded><![CDATA[<p>If you are like me, you have a few sites that are up and running with version 0.6 and they seem to be happy in their stable v0.6 state. You used the PEAR install because really you just wanted an easy way to get started. You built a few sites with it, and now you&#8217;d like to jump into the latest version and see what it has to offer.
</p>
<p><strong>How do I keep my existing symfony sites happy, but still install the latest SVN version to use with new projects?</strong>
</p>
<p>First, let&#8217;s decide on this: We are going to keep the old PEAR installation just the way it is. The goal is to not have to go back into any existing sites and allow them to keep on working just like they always have been. The problem for me is that I already was playing around with the latest beta by way of &#8220;pear upgrade symfony/symfony-beta&#8221;. I&#8217;ll need to undo this and get my old version back:
</p>
<p>#sudo pear upgrade -f symfony/symfony-0.6.3
</p>
<p>Notcie the &#8220;-f&#8221; flag forces the installation of the older version.
</p>
<p><strong>Know, Understand, and Love the old PEAR installation.</strong>
</p>
<p>Just so that I don&#8217;t go into this completely blind, I&#8217;m going to take a minute and try to understand where the symfony code actually goes when I do a PEAR install. If you run the command &#8220;pear config-show&#8221;, you should see a list of settings for your PEAR installation. For me, my pear directory is &#8220;/usr/local/php5/lib/php&#8221;. The old symfony files are all in there. After a bit of investigation I start to recognize the directory structure from the symfony trunk:
</p>
<p>/usr/local/php5/lib/php/symfony (&#8221;/lib&#8221; folder in symfony trunk)<br />/usr/local/php5/lib/php/data/symfony (&#8221;/data&#8221; folder in trunk)<br />/usr/local/php5/bin/symfony (&#8221;/bin/symfony&#8221; shell script in trunk)
</p>
<p>Phew, at least that mystery is solved. Now that I have undone the previous upgrade and have my old version of symfony running the way it was, I need to get my hands on the latest and greatest version from SVN. I don&#8217;t want to use the sandbox download because I can&#8217;t upgrade it with latest revisions in the repository. So, instead I&#8217;ll download a version of symfony from the SVN repository. While doing this I&#8217;ll have to be careful to leave my PEAR installation alone.
</p>
<p><strong>Download latest version of Symfony from SVN</strong>
</p>
<p>1. Create a location to download the latest code from the svn repository. <br />I&#8217;m just going to put them in &#8220;/usr/local/php5/lib/php/mysymfony&#8221;, although you could put them anywhere.
</p>
<p>#sudo mkdir /usr/local/php5/lib/php/mysymfony<br />#cd /usr/local/php5/lib/php/mysymfony<br />#svn co http://svn.symfony-project.com/trunk/ .
</p>
<p>It might take a few minutes to download all of the code into your new folder. Remember, because this is under version control, anytime you want to grab the latest changes to the trunk you can run:
</p>
<p>#svn update
</p>
<p>from within the &#8220;mysymfony&#8221; directory and it will update automatically.
</p>
<p>2. Create the appropriate link to the new &#8220;symfony&#8221; shell file so you can run it from the command line.<br />There are a few ways you can do this, but I&#8217;m going to create a symlink to the new symfony file and place it right next to the old symfony shell script:
</p>
<p>#sudo ln -s /usr/local/php5/lib/php/mysymfony/data/bin/symfony /usr/local/php5/bin/symfony1.0
</p>
<p>What this is basically saying is: &#8220;Create a link <strong>-s</strong>ymbolically to [&#8230;]data/bin/symfony and put it in [&#8230;]/php5/bin/symfony1.0
</p>
<p>Now I should be able to call symfony1.0 from the command line and be using the new version.
</p>
<p># symfony1.0 -V<br />&gt; symfony version 1.0.0-beta2
</p>
<p>Let&#8217;s try to make a new project using our latest version of symfony:
</p>
<p>#mkdir ~/Sites/sf_beta_test<br />#cd ~/Sites/sf_beta_test<br />#symfony1.0 init-project sf_beta_test
</p>
<p>Success!! I can check and see if it&#8217;s going to be using the new symfony libraries by checking in /sf_beta_test/config/config.php. I see it is using the latest lib and data directories:
</p>
<p>// symfony directories<br />$sf_symfony_lib_dir  = &#8216;/usr/local/php5/lib/php/mysymfony/lib&#8217;;<br />$sf_symfony_data_dir = &#8216;/usr/local/php5/lib/php/mysymfony/data&#8217;;
</p>
<p>To get my &#8220;/sf&#8221; directory working in my new project, I have to make sure to set up my host so that knows where to find them. I do this within my httpd.conf file in my Apache/conf directory. (See http://www.symfony-project.com/askeet/1)
</p>
<p>&lt;VirtualHost 127.0.0.1&gt;<br />  DocumentRoot [path-to-symfony-project]/web<br />  ServerName sf_beta_test<br />  Alias /sf /usr/local/php5/lib/php/mysymfony/data/web/sf</p>
<p>  &lt;Directory [path-to-symfony-project]/web&gt;<br />    Options All<br />    AllowOverride All<br />  &lt;/Directory&gt;<br />&lt;/VirtualHost&gt;
</p>
<p>Alternatively, I could create a symlink within my app&#8217;s web directory called &#8220;sf&#8221; and point it to the right directory:<br />#cd ~/Sites/sf_beta_test/web<br />#ln -s  /usr/local/php5/lib/php/data/symfony/web/sf sf
</p>
<p>I will probably have to do that once I deploy my project to my shared host on the internet, because I won&#8217;t have access to the httpd.conf there! (Unless of course I use the &#8220;freeze&#8221; command!!  More on that elsewhere.)
</p>
<p>In summary, I now have two version of Symfony installed on my development machine.
</p>
<p>1. The PEAR installation is of the latest stable version, symfony-0.6.3. These files are all in:<br />&#8220;[PEAR directory]/symfony&#8221; and &#8220;[PEAR directory]/data/symfony&#8221;. The binary is in &#8220;/usr/local/php5/bin/symfony&#8221;
</p>
<p>2. The SVN installation is the latest version of the code. It is checked out into &#8220;/usr/local/php5/lib/php/mysymfony&#8221;.<br />I have a symlink in /usr/local/php5/bin/ named symfony1.0 that points to the new symfony shell script, originally found in &#8220;/usr/local/php5/lib/php/mysymfony/data/bin/symfony&#8221;.
</p>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://rationalexuberance.org/2006/12/09/upgrade-from-symfony-06-to-10beta-1/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Dance with the Devil!</title>
		<link>http://rationalexuberance.org/2006/12/01/dance-with-the-devil/</link>
		<comments>http://rationalexuberance.org/2006/12/01/dance-with-the-devil/#comments</comments>
		<pubDate>Fri, 01 Dec 2006 20:08:15 +0000</pubDate>
		<dc:creator>smeves</dc:creator>
		
	<category>Uncategorized</category>
		<guid isPermaLink="false">http://rationalexuberance.org/2006/12/01/dance-with-the-devil/</guid>
		<description><![CDATA[My first youtube video! It&#8217;s a music video I created for Necto Nightclub in Ann Arbor to play during our Halloween party in 2005.

    

]]></description>
			<content:encoded><![CDATA[<p>My first youtube video! It&#8217;s a music video I created for Necto Nightclub in Ann Arbor to play during our Halloween party in 2005.</p>
<p><object width="425" height="350"><br />
<param name="movie" value="http://www.youtube.com/v/DaHmTly-psY"> </param> <embed src="http://www.youtube.com/v/DaHmTly-psY" type="application/x-shockwave-flash" width="425" height="350"> </embed> </object>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://rationalexuberance.org/2006/12/01/dance-with-the-devil/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>my big dotcom startup idea: the reinvention of the secret wheel</title>
		<link>http://rationalexuberance.org/2006/03/27/my-big-dotcom-startup-idea-the-reinvention-of-the-secret-wheel/</link>
		<comments>http://rationalexuberance.org/2006/03/27/my-big-dotcom-startup-idea-the-reinvention-of-the-secret-wheel/#comments</comments>
		<pubDate>Mon, 27 Mar 2006 09:18:20 +0000</pubDate>
		<dc:creator>mmeves</dc:creator>
		
	<category>Uncategorized</category>
		<guid isPermaLink="false">http://rationalexuberance.org/2006/03/27/my-big-dotcom-startup-idea-the-reinvention-of-the-secret-wheel/</guid>
		<description><![CDATA[several paragraphs of ado before nothing:
this is possibly the third time i type this fuckr out:
the first was I think in some email to someone who will henceforth be known as &#8220;chad&#8221; several months back.
secondly i typed this out about an hour ago here and now in this blog TEXTAREA before I watched homestarrunner which [...]]]></description>
			<content:encoded><![CDATA[<p>several paragraphs of ado before nothing:</p>
<p>this is possibly the third time i type this fuckr out:</p>
<p>the first was I think in some email to someone who will henceforth be known as &#8220;chad&#8221; several months back.</p>
<p>secondly i typed this out about an hour ago here and now in this blog TEXTAREA before I watched homestarrunner which was before i accidentally followed some tangent that one of my cohorts wanted me to follow &#8212; linkwise &#8212; that (my point:) led to my loosing of the contents of this web-form. (I curse the fact that wordpress doesn&#8217;t have gmail&#8217;s &#8220;autosave&#8221; feature. How hard can that be?)</p>
<p>so, the third and last time  I will type this out is today:</p>
<p>One of my most heavily-respected colleges asked me off-the-cuff (or on-the-cuff?) if I have any business-ideas for a dot-com. I stammered a bit and said &#8220;Um&#8230;. i don&#8217;t know &#8230; let me check my blog.&#8221; (A sufficiently advanced blog may one day serve as a great crutch for early Alzheimer&#8217;s.)</p>
<p>He or she said something like &#8220;well, if you can&#8217;t think of anything off the top your head, it&#8217;s probably not worth bringing up here [in context that was taking place]&#8221;</p>
<p>So then afterwords I was all like &#8220;Damn &#8230; what was that good idea again?&#8221;</p>
<p>I skimmed over my previous (less than many) blog entires and realized I have not yet elucidated on my most prized brainchild &#8212; the most prized discovery I have yet to realize I didn&#8217;t make:</p>
<p>[And to create even further suspense before the grand exposition of what I know is the invitable future [yes i&#8217;ve been drinking]: My whole impetus for wanting to contribute to this blog that my brother so dutifully, dilligently and deftfully created was the fact that I am tired of having &#8220;ideas&#8221; (as they are called) that seem to either (a) blister in the sun like a dream deffered (<a href="http://members.aol.com/olatou/hughes.htm">or whatever</a>) or (B) that I am tired of coming up with ideas that I find have already been &#8220;realized&#8221; well before I even &#8220;conceptualized&#8221; them, often by several years. So, this site [as I conceived it as being] was intended to serve as a digital paper-trail of this absurdity: both of the obvious-to-some naïve megalomaniacal ruminations we all frequently have (right?) (that prove to be a re-invention of some (often secret) wheel) and the occasional &#8220;damn-i-should&#8217;ve-done-this&#8221; flashes of fleeting brilliance. That&#8217;s what I wanted this site to be. Please pass the Johnnie Walker Black Label.]</p>
<p>My most prized brain-child (that i see feasible in my lifetime possibly by my own involvement) is this:</p>
<p>Imagine an ebay with a better search. The search is no longer a straight text-search on the arbitrary product-descriptions that vendors type-in freely, but rather it is a search against the unique structure of the data of type of products/services for which you are searching.</p>
<p>The search is simply: &#8220;This is what I am looking for (in no imprecise terms).  Let me know when you find it.&#8221;</p>
<p>As it stands, for every product or service for which a customer searches, he or she has a &#8220;criteria&#8221; in her head that represents the target product that this customer seeks. Rarely does the application present tools that allow for the customer to express this critieria to a sufficient degree granularity that such that a search is immediately useful.</p>
<p>This is where I come in.  Mark Meves.</p>
<p>(It sounds better if you pronouce it &#8220;Mavis.&#8221;)</p>
<p>&#8230;</p>
<p>Um&#8230; who farted?  oh, sorry.  that was me.<br />
Does anybody remember BusinessObjects, circa 1998? This was the twilight of the era when software products were still marketed with MixedCaseNames, because that seemed LikeTheFuture. This app had a nifty query-builder tool (gui) which allowed you to create arbitrarily-deeply nested OR or AND branches to your SQL query. ( I didn&#8217;t realize these could be arbitrarily nested until I used this tool.) (The 2-D nature of this tool helped me visualize things I couldn&#8217;t easily see in the 1-D context of traditional hand-written SQL.)</p>
<p>Also BusinessObjects offererd the attractive feature of drag-and-drop, gui-based selection of field names and operators ( LIKE, =, IN ( ), <=, etc. ), so that, like any good UI, it was impossible for you to enter an invalid statement (or structure).</p>
<p>But I digress. What if you had an app that created UI elements (&#8221;controls&#8221;) to facilitate search in the manner that BusinessObjects presents UI elements to model searches for whatever unique schema of data? Because, after all, the search for a car is different than the search for a cell-phone than it is for the search for a therapist than it is for the search for an etc. (new drug? new girlfriend or boyfriend?)<br />
Can we expect consumers to be able to figure out these obscure controls? Probably. If not, I bet we could make a trivial natural-language-esque interface on top of this that would facilitate such a consumer-vendor interaction in a manner that, while still seeming bot-like, would not seem any more venal and assinine than your average interaction with a sales-person.</p>
<p>And for the nay-sayers: You and I can all imagine the issues that this presents. (How do you get the schema? How do you allow for a data-store that dynamically morphs-on to the structure of arbitary new data? How do you validate the obviously biased incoming data from vendors? What is the basis for claiming that you have a basis for validating anyone&#8217;s information, in general? Why didn&#8217;t I become a furniture-designer, or shepherd, or dentist?)</p>
<p>These questions and more have probably already been answered by someone else.   But if not, cheers to me!</p>
<p>And if so,  I&#8217;m drinking anyway!
</p>
]]></content:encoded>
			<wfw:commentRSS>http://rationalexuberance.org/2006/03/27/my-big-dotcom-startup-idea-the-reinvention-of-the-secret-wheel/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Ajax marches on (chat excerpt)</title>
		<link>http://rationalexuberance.org/2006/03/24/ajax-marches-on-chat-excerpt/</link>
		<comments>http://rationalexuberance.org/2006/03/24/ajax-marches-on-chat-excerpt/#comments</comments>
		<pubDate>Fri, 24 Mar 2006 18:29:23 +0000</pubDate>
		<dc:creator>mmeves</dc:creator>
		
	<category>Uncategorized</category>
		<guid isPermaLink="false">http://rationalexuberance.org/2006/03/24/ajax-marches-on-chat-excerpt/</guid>
		<description><![CDATA[Frisco and Mark chat about Ajax and then troubleshoot a server-error and talk about sysadmin utilities that should exist.
[11:43] friscolr: http://ajaxwrite.com/
[11:44] friscolr: ajax implementation of MS-Word compatible word processor
[11:45] manikmarkus: heh.  we&#8217;ve been watching a few of those,  FCKedit , ,others.
[11:46] manikmarkus: what does it mean &#8220;MS-Word compatible&#8221;?  the interface is the [...]]]></description>
			<content:encoded><![CDATA[<p>Frisco and Mark chat about Ajax and then troubleshoot a server-error and talk about sysadmin utilities that should exist.<br />
<span class="chat_them">[11:43] friscolr:</span> http://ajaxwrite.com/<br />
<span class="chat_them">[11:44] friscolr:</span> ajax implementation of MS-Word compatible word processor<br />
<span class="chat_you">[11:45] manikmarkus:</span> heh.  we&#8217;ve been watching a few of those,  FCKedit , ,others.<br />
<span class="chat_you">[11:46] manikmarkus:</span> what does it mean &#8220;MS-Word compatible&#8221;?  the interface is the same? does it read and write word files?<br />
<span class="chat_them">[11:46] friscolr:</span> yeah, it&#8217;s open/save features do MS word docs, though i haven&#8217;t tested it fully yet.<br />
<span class="chat_you">[11:47] manikmarkus:</span> wow. very impressive.<br />
<span class="chat_you">[11:48] manikmarkus:</span> javascript could replace java for platform independent software  development,  er.. anything that is database-backed for sure.<br />
<span class="chat_them">[11:49] friscolr:</span> yeah, and then security lists will truly overflow with XSS<br />
<span class="chat_you">[11:49] manikmarkus:</span> XSS?<br />
<span class="chat_them">[11:50] friscolr:</span> cross site scripting<br />
<span class="chat_you">[11:52] manikmarkus:</span> wonder how they&#8217;re making money off this.<br />
<span class="chat_you">[12:01] manikmarkus:</span> Matt tells me that google bought &#8220;writely&#8221; and now other folks are in a hurry to try and make an ajax-based editor to sell to someone.<br />
<span class="chat_you">[12:02] manikmarkus:</span> I could see a need for a really solid Ajax-based HTML editor. I&#8217;m sure such things are under works. Like an Ajax based dreamweaver. Cause all this use of &#8220;textile&#8221; like markup for content management isn&#8217;t cutting it for me. Definately there would be a big market for an HTML editor that is as easy and familiar to use as Word.<br />
<span class="chat_you">[12:04] manikmarkus:</span> Nice &#8212; i went to http://ajaxlaunch.com  and got a Smarty (yuch) error!!:<br />
<span class="chat_you">[12:04] manikmarkus:</span><br />
Fatal error: Smarty error: unable to write to $compile_dir &#8216;/var/chroot/home/content/a/j/a/ajaxpc/html/postnuke/html/pnTemp/pnRender_compiled&#8217;. Be sure $compile_dir is writable by the web server user. in /var/chroot/home/content/a/j/a/ajaxpc/html/postnuke/html/includes/classes/Smarty/Smarty.class.php on line 1088</p>
<p><span class="chat_you">[12:05] manikmarkus:</span> it means they&#8217;re using PHP, intersting. I tried combining Smarty and Ajax once &#8212; it was a nightmare. The php code that Smarty generates will generate Notices which was breaking my Ajax. Smarty expects that you turn Notices off (not helpful for development) and they don&#8217;t mention this anywhere.<br />
<span class="chat_them">[12:05] friscolr:</span> need a bot that constantly crawls a website looking for such errors, and pages me when they occur.<br />
<span class="chat_you">[12:06] manikmarkus:</span> wouldn&#8217;t be that hard to write one that pattern matches for PHP-style errors, rite?<br />
<span class="chat_you">[12:06] manikmarkus:</span> (not that I have any experience writing bots)<br />
<span class="chat_them">[12:06] friscolr:</span> but how do you know if the error is supposed to be there or not?  as in, a class page that is demonstrating those errors?<br />
<span class="chat_them">[12:07] friscolr:</span> sometimes i do use our search to look for &#8220;WARNING&#8221; and other keywords<br />
<span class="chat_you">[12:07] manikmarkus:</span> that would have to be an exception to the rule that you could manually flag as OK somehow so the bot ignores it<br />
<span class="chat_you">[12:07] manikmarkus:</span> like in a config file<br />
<span class="chat_them">[12:07] friscolr:</span> probably creating a baseline would be easiest<br />
<span class="chat_you">[12:07] manikmarkus:</span> the amount of AI you would need to have a bot be that context sensitive would be prohibitive<br />
<span class="chat_you">[12:08] manikmarkus:</span> baseline?<br />
<span class="chat_them">[12:08] friscolr:</span> crawl the site once while in a known-good state, if &#8216;warning&#8217; or &#8216;error&#8217; appear afterwards, page me<br />
<span class="chat_you">[12:08] manikmarkus:</span> ah<br />
<span class="chat_them">[12:08] friscolr:</span> i mean, if those words appear in different context<br />
<span class="chat_you">[12:08] manikmarkus:</span> why not just keep a watch on the errorlog?  I mean, we shouldn&#8217;t be outputting errors to the screen on production sites anyway.<br />
<span class="chat_them">[12:09] friscolr:</span> because &#8220;we shouldn&#8217;t&#8221;  !=  &#8220;we don&#8217;t&#8221;<br />
<span class="chat_you">[12:09] manikmarkus:</span> error_repoting = Off;  log_errors = On;  error_level = E_ALL | E_NOTICE;  # no?<br />
[Ed: frisco explains that his users have a business need (my words) to see PHP errror message outputted to the screen, yet he still needs to monitor them in cases where the warning messages are &#8220;indicative of larger problems on the site that are [his] responsibility.&#8221;]<br />
<span class="chat_them">[12:11] friscolr:</span> in the case of the warning message you showed me, the smarties thing, i wondered if it was a perm issue or a disk full (so still no writes).<br />
<span class="chat_them">[12:11] friscolr:</span> a disk full would be my responsibility (though i monitor for that separately)<br />
<span class="chat_you">[12:12] manikmarkus:</span> i bet it is a perm issue or a disk full issue. check out the nested folders : &#8220;a/j/a&#8221; that means there might be hundreds of thousands of sites being hosted on this thing?<br />
<span class="chat_you">[12:12] manikmarkus:</span> I still think it&#8217;s strage that &#8220;ajaxlaunch&#8221; folks are outputting this to the screen.<br />
[Ed: in the remainder of the conv., frisco explains to mark what chroot is and its strange occurence in the filepath. All in all we spent like half an hour analyzing this small error message, and I learned a bit from it. Great way to start the day! Thanks, frisco!]</p>
<p>[Oh and keep up the good work, AjaxLaunch folks!]
</p>
]]></content:encoded>
			<wfw:commentRSS>http://rationalexuberance.org/2006/03/24/ajax-marches-on-chat-excerpt/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>human vs. google</title>
		<link>http://rationalexuberance.org/2006/03/21/temp-test/</link>
		<comments>http://rationalexuberance.org/2006/03/21/temp-test/#comments</comments>
		<pubDate>Wed, 22 Mar 2006 00:36:30 +0000</pubDate>
		<dc:creator>mmeves</dc:creator>
		
	<category>web development</category>
		<guid isPermaLink="false">http://rationalexuberance.org/2006/03/21/temp-test/</guid>
		<description><![CDATA[Francisco and I were discussing whether or not search-engines had replaced knowledgeable people for certain kinds of questions. Specifically we were interested in the kinds of questions that are more easily answered by people than by google, and what that reflected about the question, the process of answering it, and the person asking the question.
Frisco [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.blackant.net/">Francisco</a> and I were discussing whether or not search-engines had replaced knowledgeable people for certain kinds of questions. Specifically we were interested in the kinds of questions that are more easily answered by people than by google, and what that reflected about the question, the process of answering it, and the person asking the question.</p>
<p>Frisco argued (in my words) that a person&#8217;s inability to use a sufficiently capable search engine to answer a question reflects their ignorance of that tool&#8217;s featureset, i.e. &#8220;Google can answer anything if you know how to ask the question.&#8221;</p>
<p>I said that I frequently find that a tight, focused conversation with a trusted human source lasting perhaps only 30 seconds can be more valuable than an hours-long answer-and-question hunting session with google and dizzying thread-tangles of forum-noise.</p>
<p>Following is a dizzying thread-tangle of email about this subject.</p>
<blockquote><p>Mark Meves   Fri, Mar 3, 2006 at 1:42 PM<br />
To: francisco<br />
I might be convinced to share your perpective on this issue, but nonetheless I came accross the conversation with Scott (my brother) in my chat logs and I had a laugh.</p>
<p>Session Start (manikmarkus:scotathon): Tue Feb 14 14:44:19 2006<br />
<span class="chat_them">[14:44] scotathon:</span> mark, what is the function that will take a string and execute it as php, in php?<br />
<span class="chat_you">[14:44] manikmarkus:</span> eval()<br />
<span class="chat_you">[14:44] manikmarkus:</span> right?<br />
<span class="chat_them">[14:44] scotathon:</span> yes<br />
<span class="chat_them">[14:44] scotathon:</span> something like that it impossible to google<br />
<span class="chat_you">[14:44] manikmarkus:</span> careful it&#8217;s like the most insecure thing in php.<br />
<span class="chat_you">[14:45] manikmarkus:</span> avoid it when possible. what are you tyring to do?<br />
<span class="chat_you">[14:45] manikmarkus:</span> cause you can dynamically generate property names and method names and class names w/o using eval()<br />
<span class="chat_you">[14:45] manikmarkus:</span> $o = new $class_name();<br />
<span class="chat_you">[14:45] manikmarkus:</span> $o->$some_meth(&#8217;blah&#8217;)<br />
<span class="chat_you">[14:46] manikmarkus:</span> $age = $o->$property_name<br />
<span class="chat_them">[14:46] scotathon:</span> yeah&#8230;<br />
<span class="chat_them">[14:46] scotathon:</span> i&#8217;m not sure i want to use eval<br />
<span class="chat_you">[14:46] manikmarkus:</span> $age = $o[$property_name] //same i think<br />
<span class="chat_them">[14:46] scotathon:</span> basically i am loading in an .html file into a string<br />
<span class="chat_them">[14:46] scotathon:</span> $html = file_get_contents(&#8217;myhtmlfile.htm&#8217;);<br />
<span class="chat_you">[14:47] manikmarkus:</span> right<br />
<span class="chat_them">[14:47] scotathon:</span> but now i find myself needing to put a bit of php in that .htm file<br />
<span class="chat_them">[14:47] scotathon:</span> basically i am emulating smarty<br />
<span class="chat_you">[14:47] manikmarkus:</span> woah.  i&#8217;ll let you have fun w/ that. be careful<br />
<span class="chat_them">[14:47] scotathon:</span> but i don&#8217;t need all that hooha<br />
<span class="chat_them">[14:47] scotathon:</span> i just want to do this:<br />
<span class="chat_them">[14:48] scotathon:</span> $html = file_get_contents(&#8217;mytemplate.htm&#8217;);<br />
<span class="chat_them">[14:48] scotathon:</span> mytemplate.htm  contains:<br />
[Ed: html character entities removed because wordpress broke on them &#8212; they got converted to the referred to entity.  doh!]</p>
<p><span class="chat_you">[14:48] manikmarkus:</span> if the mytemplate.htm has php in it, could you require_once() it?<br />
<span class="chat_you">[14:49] manikmarkus:</span> ob_start()<br />
require_once(&#8217;file.php&#8217;)<br />
$s = ob_get_contents();<br />
ob_end_clean()<br />
<span class="chat_you">[14:49] manikmarkus:</span> perhaps?<br />
<span class="chat_them">[14:50] scotathon:</span> woah, never used ob before<br />
<span class="chat_you">[14:50] manikmarkus:</span> yeah it&#8217;s ugly but nec. sometimes<br />
<span class="chat_them">[14:55] scotathon:</span> you rock<br />
<span class="chat_you">[14:56] manikmarkus:</span> sweet glad i could help<br />
<span class="chat_them">[14:56] scotathon:</span> i have no idea how that works, by the way<br />
<span class="chat_them">[14:56] scotathon:</span> require_once doesn&#8217;t execute the code?<br />
<span class="chat_them">[14:56] scotathon:</span> or&#8230; i guess it does<br />
<span class="chat_them">[14:56] scotathon:</span> but the file can be almost all html<br />
<span class="chat_you">[14:56] manikmarkus:</span> ob_start() says &#8220;anything output to the screen, capture it, don&#8217;t put it to the screen but start saving it in a buffer<br />
<span class="chat_you">[14:57] manikmarkus:</span> ob_get_contents() says &#8220;ok whatever you saved,<br />
give me a copy<br />
<span class="chat_them">[14:57] scotathon:</span> and require_once&#8230; will actually &#8220;echo&#8221; the file contents?<br />
<span class="chat_them">[14:57] scotathon:</span> if it&#8217;s html, i mean<br />
<span class="chat_you">[14:57] manikmarkus:</span> ob_end_clean() means &#8220;ok stop buffering<br />
(capturing outputted content).<br />
<span class="chat_you">[14:57] manikmarkus:</span> ob_end_flush() means &#8220;stop capturing, and output<br />
it to screen<br />
<span class="chat_you">[14:58] manikmarkus:</span> i don&#8217;t have much experience require_once()ing non-php files, but php is a language embedded inside other documents (html) so i guess it should work<br />
<span class="chat_you">[14:59] manikmarkus:</span> in the old days, people used to incude() and require() static content all the time: SSI&#8217;s<br />
<span class="chat_them">[14:59] scotathon:</span> crazy<br />
<span class="chat_them">[14:59] scotathon:</span> i&#8217;ve never done that before<br />
<span class="chat_them">[14:59] scotathon:</span> good times<br />
<span class="chat_you">[14:59] manikmarkus:</span> rite rite.  hope this helps .  good luck and don&#8217;[t refrain from asking me more questions<br />
<span class="chat_them">[14:59] scotathon:</span> thanks<br />
<span class="chat_them">[14:59] scotathon:</span> i appreciate it, you were way better than google<br />
<span class="chat_them">[14:59] scotathon:</span> i&#8217;d still be looking<br />
<span class="chat_you">[15:00] manikmarkus:</span> heh<br />
Session Close (scotathon): Tue Feb 14 15:01:21 2006The first person to make a search interface work like that will be a rich man or woman.</p></blockquote>
<p>I sent this to frisco, and told him this would be a good conversation for my blog. Frisco responds:</p>
<blockquote><p>francisco    Fri, Mar 3, 2006 at 2:00 PM<br />
To: Mark Meves</p>
<p>I see your point. It&#8217;s too similar to me asking google how to fix my car&#8217;s engine noise. My point is that when i query google for &#8220;car engine noise fix&#8221; i will get a bunch of pages about how to fix various engine noises. If i do not know much about cars, this will overwhelm me and i will have to read each one carefully and thoroughly, at the end of which i will have a lot more knowledge about cars than when i started, perhaps even enough to actuallly be able to do some good on my car. If (still with limited knowledge) i ask an expert, and the expert says &#8220;that noise is due to the 3rd piston needing cleaning&#8221; (or something that actually needs fixed on cars, i don&#8217;t know enough about them) and i proceed to unscrew everything to get at the pistons, i will end up with a very very broken car.</p>
<p>In your example, do you really feel confident that your brother will write code that works well? [Ed: yes] I feel he would be better off reading through (or at least skimming) the entirety of www.php.net/docs.php and that you just succeeded in giving him the rope to hang himself with.</p>
<p>-f<br />
http://www.blackant.net/</p>
<p>p.s. - i don&#8217;t know where your blog is, and can&#8217;t think how to query google to find it.</p></blockquote>
]]></content:encoded>
			<wfw:commentRSS>http://rationalexuberance.org/2006/03/21/temp-test/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Stored Procedures?</title>
		<link>http://rationalexuberance.org/2006/03/21/stored-procedures/</link>
		<comments>http://rationalexuberance.org/2006/03/21/stored-procedures/#comments</comments>
		<pubDate>Tue, 21 Mar 2006 21:59:45 +0000</pubDate>
		<dc:creator>mmeves</dc:creator>
		
	<category>web development</category>
		<guid isPermaLink="false">http://rationalexuberance.org/2006/03/21/stored-procedures/</guid>
		<description><![CDATA[I read the excellent thedailywtf.com for Alex Papadadimoulis&#8217;s supreme combination of irony and wisdom when it comes to scrutinizing real-life examples of questionable code &#8212; usually code that takes some-or-another methedology or technology to an absurd extreme. (Great examples of XML-overkill, Enterprise-overkill, OOP-overkill, etc.)
While sometimes the site can serve as a tremendous ego-boost to the [...]]]></description>
			<content:encoded><![CDATA[<p>I read the excellent <a href="http://www.thedailywtf.com">thedailywtf.com</a> for Alex Papadadimoulis&#8217;s supreme combination of irony and wisdom when it comes to scrutinizing real-life examples of questionable code &#8212; usually code that takes some-or-another methedology or technology to an absurd extreme. (Great examples of XML-overkill, Enterprise-overkill, OOP-overkill, etc.)</p>
<p>While sometimes the site can serve as a tremendous ego-boost to the self-doubting programmer, more often than not I use thedailywtf.com to scrutinize myself &#8212; I was first referred to when I was trying to justify the use of a Factory-factory in PHP. (Although after having read the relevant article I still think I was justified, even more so having found a poster that aggreed with me.) (But of course, the internet is good for finding justification for anything, isn&#8217;t it?)<br />
Sometimes &#8212; but not always &#8212; there is useful insight in the 100-or-so comments that follow a posting. Today I enjoyed reading some anonymous poster&#8217;s insights on <a href="http://www.thedailywtf.com/forums/64833/ShowPost.aspx">Stored Procedures</a>.  He or she articulated my current perspective better than I could have (something else the internet is good for):</p>
<blockquote><p><span id="PostFlatView">Wow, trying to keep application logic out of a database is the *stupidest* thing you&#8217;ve ever heard? If there is one property of &#8220;enterprise&#8221; applications, it is the fact they are often systems that deal with many data sources and services, often performing logic between the disparate sources. But lets list some reasons to keep the logic out of the database.</span></p>
<p>1) Stored procedures tie you to a particular vendor<br />
2) Application logic in the database has to duplicate logic in the application<br />
3) Horrible source code control (in every case I&#8217;ve witnessed)<br />
4) Lack of OO design, hence the term &#8220;stored PROCEDURE&#8221;<br />
5) Difficulty migrating to a different database vendor/version<br />
6) Puts load on the database, which doesn&#8217;t scale/cluster well since it is the data source of record</p>
<p>Instead, put the logic in your objects, keep the database as minimal as possible, and certainly use a good persistence tool to ensure the updates and queries are correct.</p>
<p>I admit, you can instaed take a very data-centric view of things, and many people successfully work under the idea that the database *IS* the application, and everything else is just a GUI/front end. But this is not very scalable, not Object Oriented at all, and IMHO is only suitable for smaller systems, and certainly not large &#8220;enterprise&#8221; ;) systems. All these points can, of course, be debated&#8230;</p>
<p>But wow, this is the *stupidest* thing you&#8217;ve ever heard!?! WTF!!!</p></blockquote>
<p>Thanks Alex, thanks Anonymous.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://rationalexuberance.org/2006/03/21/stored-procedures/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>CNTL&#8217;d development</title>
		<link>http://rationalexuberance.org/2006/03/08/too-much-happening-at-once/</link>
		<comments>http://rationalexuberance.org/2006/03/08/too-much-happening-at-once/#comments</comments>
		<pubDate>Wed, 08 Mar 2006 19:14:40 +0000</pubDate>
		<dc:creator>smeves</dc:creator>
		
	<category>web development</category>
		<guid isPermaLink="false">http://rationalexuberance.org/2006/03/08/too-much-happening-at-once/</guid>
		<description><![CDATA[Given my standard practice of &#8216;code now, think later,&#8217; (I will call this &#8216;CNTL&#8217; to rival the other acronyms to describe coding techniques) I tend to write code the quick and dirty way, telling myself that if I need to go back to it later to clean it up I&#8217;ll do so when i have [...]]]></description>
			<content:encoded><![CDATA[<p>Given my standard practice of &#8216;code now, think later,&#8217; (I will call this &#8216;CNTL&#8217; to rival the other acronyms to describe coding techniques) I tend to write code the quick and dirty way, telling myself that if I need to go back to it later to clean it up I&#8217;ll do so when i have the time and it becomes necessary. Of course, I never have the time and rarely is it necessary. I do realize the importance of DRY and code portability, and as my skills as a web developer have improved, I have made the natural progression from learning the programming language to learning  programming techniques. I now sit here exploring the web realizing I want to learn about design patterns (especially MVC frameworks, and specifically Symfony and Rails), version control, test-driven development, and IDEs for OS X. Where to begin?<br />
Also, can I get a quick show of hands of how often a developer wants to scrap their whole project and start over? For this very reason I like taking on new projects, because I get a clean slate and get to put into practice all of the new things I learned from my last project.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://rationalexuberance.org/2006/03/08/too-much-happening-at-once/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>WW DHH D ?</title>
		<link>http://rationalexuberance.org/2006/03/01/ww-dhh-d/</link>
		<comments>http://rationalexuberance.org/2006/03/01/ww-dhh-d/#comments</comments>
		<pubDate>Wed, 01 Mar 2006 22:59:37 +0000</pubDate>
		<dc:creator>mmeves</dc:creator>
		
	<category>web development</category>
		<guid isPermaLink="false">http://rationalexuberance.org/2006/03/01/ww-dhh-d/</guid>
		<description><![CDATA[Lately I find myself asking &#8220;What would David Heinemeier Hansson do?&#8221; as I code.
I have learned volumes about ruby from reading his source code. Frequently I blindly follow his techniques without necessarily understanding them first &#8212; out of character for me. But when it&#8217;s DHH, you can be sure that tomorrow you&#8217;ll understand it and [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I find myself asking &#8220;What would David Heinemeier Hansson do?&#8221; as I code.</p>
<p>I have learned volumes about ruby from reading his source code. Frequently I blindly follow his techniques without necessarily understanding them first &#8212; out of character for me. But when it&#8217;s DHH, you can be sure that tomorrow you&#8217;ll understand it and be glad you did it today.</p>
<p>I almost got up to go for a walk because I&#8217;m hitting the 8 hour mark of non-stop coding (no lunch) but then I said out loud &#8220;No, David Heinemeier Hansson would stay and finish this.&#8221;</p>
<p>I&#8217;m making a prototype now for a bracelet inscribed &#8220;WWDHHD?&#8221; with the intent of getting rich selling it online.</p>
<p>Also: todo: make a video spoofing the OSCON &#8220;application in 15 minutes&#8221; &#8212; but make it like a B2B enterprise system in 20 seconds. And make it all cinematic, with virtual reality gloves and speech to text and lots of shouting and kungfoo poses.</p>
<p>But in all seriousness, thank you DHH. Heros are hard to come by these days. I look forward to the day when I can actually find a shortcoming in your work.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://rationalexuberance.org/2006/03/01/ww-dhh-d/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Importing categories and listings into Mambo mosDirectoy</title>
		<link>http://rationalexuberance.org/2006/02/15/importing-categories-and-listings-into-mambo-mosdirectoy/</link>
		<comments>http://rationalexuberance.org/2006/02/15/importing-categories-and-listings-into-mambo-mosdirectoy/#comments</comments>
		<pubDate>Wed, 15 Feb 2006 22:45:12 +0000</pubDate>
		<dc:creator>smeves</dc:creator>
		
	<category>web development</category>
		<guid isPermaLink="false">http://rationalexuberance.org/2006/02/15/importing-categories-and-listings-into-mambo-mosdirectoy/</guid>
		<description><![CDATA[This post is going to serve as a personal reference for when I have to import an existing spreadsheet (in this case it is an excel .xls file) into mosDirectory in Mambo. The listings I have are organized by SIC (standard industry code), and I have a corresponding key that ties SIC codes to category [...]]]></description>
			<content:encoded><![CDATA[<p>This post is going to serve as a personal reference for when I have to import an existing spreadsheet (in this case it is an excel .xls file) into mosDirectory in Mambo. The listings I have are organized by SIC (standard industry code), and I have a corresponding key that ties SIC codes to category names.</p>
<p>First, we need to look at the table structure for categories. I added the &#8220;sic&#8221; column so I can keep track of how each category relates to the standardized SIC categories.<br />
The only column that aren&#8217;t set to the default values are sic, parent, and name. So, I can take my top level SIC categories and create a query that contains only these fields:</p>
<blockquote><p>INSERT INTO mos_dir_cat (sic, name, published) VALUES<br />
(1031,&#8217;Lead and Zinc Ores&#8217;, 1)</p></blockquote>
<p>Since my list has 3 tiers of categories (we call them Parent Category, Category, and Sub Category), I have to go through a process where I load in the level 1 categories first, load in the level 2 categories (while keeping track of their parent categories in a tmp row), and then load in the level 3 categories while keeping track of their parent categories in a tmp row as well.</p>
<ol>
<li>Load level 1 category names (no sic code)</li>
<li>Load level 2 category names, sic code, and parent category names</li>
<li>Update level 2 rows, setting the &#8220;parent&#8221; column with the id of the parent category. To do this we use a SQL to pull the id off of the parent category listed in the &#8220;tmp&#8221; row:<br />
<blockquote><p>UPDATE mos_dir_cat as m1, mos_dir_cat as m2<br />
SET m1.parent = m2.id WHERE m1.tmp = m2.name</p></blockquote>
</li>
<li>Repeat the process for level 3, first loading in the names, sic codes, and parent category names (which go into the tmp row), then filtering out the parent category names from the  tmp row and inserting the parent id&#8217;s into the parent row.</li>
</ol>
<p><a title="excel doc screenshot" class="imagelink" href="http://rationalexuberance.org/wp-content/uploads/2006/02/Picture%201.png"><img align="right" alt="excel doc screenshot" id="image13" title="excel doc screenshot" src="http://rationalexuberance.org/wp-content/uploads/2006/02/Picture%201.thumbnail.png" /></a>A note on what I mean by &#8220;load&#8221;: Basically I cut and past the columns I need from the excel document into a text file. <span class="imagelink">It will paste them in with tabs separating the rows. I do a simple search and replace for [\t] (\t stands for a tab) and replace them with [&#8221;, &#8220;]. Then I search and replace for [\r] (a line break) and replace it with [&#8221;),\r(&#8221;]. This will turn this:</span></p>
<p><span class="imagelink"> </span></p>
<blockquote><p><span class="imagelink"> </span><span class="imagelink">Agricultural Products - Crops  Wheat  0111<br />
Agricultural Products - Crops  Corn  0115</span></p>
<p><span class="imagelink"> </span></p></blockquote>
<p><span class="imagelink"> </span><span class="imagelink">into</span></p>
<p><span class="imagelink"> </span></p>
<blockquote><p><span class="imagelink"> </span><span class="imagelink">(&#8221;Agricultural Products - Crops&#8221;, &#8220;Wheat&#8221;, &#8220;0111&#8243;),<br />
(&#8221;Agricultural Products - Crops&#8221;, &#8220;Corn&#8221;, &#8220;0115&#8243;),</span></p>
<p><span class="imagelink"> </span></p></blockquote>
<p><span class="imagelink"> </span><span class="imagelink">Although this involves some manual steps, it is a great way to convert a text and tabs document into simple SQL. I then add my insert statement to the top, and close out the query at the very end of the file by replacing the last comma with a semicolon:</span></p>
<p><span class="imagelink"> </span></p>
<blockquote><p><span class="imagelink"> </span><span class="imagelink">INSERT INTO mos_dir_cat (tmp, name, sic) VALUES<br />
(&#8221;Agricultural Products - Crops&#8221;, &#8220;Wheat&#8221;, &#8220;0111&#8243;),<br />
(&#8221;Agricultural Products - Crops&#8221;, &#8220;Corn&#8221;, &#8220;0115&#8243;),<br />
&#8230;<br />
(&#8221;National Security&#8221;, &#8220;International Affairs&#8221;, &#8220;9721&#8243;);</span></p>
<p><span class="imagelink"> </span></p></blockquote>
<p><span class="imagelink"> </span><span class="imagelink">So now that the categories are in (phew!), how am I going to import the 25,000 business into the directory as listings?</span></p>
<p><span class="imagelink"> </span></p>
<ol><span class="imagelink"> 	</span></p>
<li><span class="imagelink">Organize the columns I need in my excel document.</span></li>
<p><span class="imagelink"> 	</span></p>
<li><span class="imagelink">Export as a CSV file.</span></li>
<p><span class="imagelink"> 	</span></p>
<li><span class="imagelink">Convert the CSV file to SQL by hand (like I did before when I cut and pasted data from excel into a text file, except instead of converting tabs to [&#8221;, &#8220;], I just convert the line breaks so that they include the parenthesis at the beginning and end of everyline.</span></li>
<p><span class="imagelink"> 	</span></p>
<li><span class="imagelink">Insert these listings into the mos_dir_listings table, leaving the &#8220;cid&#8221; column blank until the next step.</span></li>
<p><span class="imagelink"> 	</span></p>
<li><span class="imagelink">Run and UPDATE query on the mos_dir_listings table, updating cid with the category id using the sic code:<br />
</span></p>
<blockquote><p><span class="imagelink"> </span><span class="imagelink">UPDATE mos_dir_listings AS listing, mos_dir_cat AS cat<br />
SET listing.cid = cat.id<br />
WHERE listing.sic = cat.sic</span></p>
<p><span class="imagelink"> </span></p></blockquote>
<p><span class="imagelink"> </span></p>
<p><span class="imagelink"> 	</span></li>
<li><span class="imagelink">Man that query took a long time to execute. So long I almost thought it crashed. After making it through all 25,000 rows, we are finished!</span></li>
<p><span class="imagelink"> </span></ol>
<p><span class="imagelink"> </span><span class="imagelink">We&#8217;re done! I now have three tiers of categories and their corresponding sic codes loaded into mos_dir_cat, and 25,000 listings in mos_dir_listings, linked to categories by way of their sic code.</span>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://rationalexuberance.org/2006/02/15/importing-categories-and-listings-into-mambo-mosdirectoy/feed/</wfw:commentRSS>
		</item>
	</channel>
</rss>
