<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Source of the famous &#8220;Now you have two problems&#8221; quote</title>
	<atom:link href="http://regex.info/blog/2006-09-15/247/feed" rel="self" type="application/rss+xml" />
	<link>http://regex.info/blog/2006-09-15/247</link>
	<description>Not a photo blog, but sometimes I play one on TV</description>
	<lastBuildDate>Wed, 10 Mar 2010 13:07:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Fredrik</title>
		<link>http://regex.info/blog/2006-09-15/247#comment-18969</link>
		<dc:creator>Fredrik</dc:creator>
		<pubDate>Sat, 26 Jul 2008 12:39:18 +0000</pubDate>
		<guid isPermaLink="false">http://regex.info/blog/2006-09-15/247#comment-18969</guid>
		<description>And for the record, I can confirm that I got the quotation from that thread. As we all know, &quot;All good quotes come from jwz, or are slightly paraphrased versions of something he&#039;s said.&quot; (use google if you want the source of *that* quotation ;-)

As for the mistaken attribution, it&#039;s just a silly mistake. But it has been fun to see how it&#039;s spread over the net over the years.</description>
		<content:encoded><![CDATA[<p>And for the record, I can confirm that I got the quotation from that thread. As we all know, &#8220;All good quotes come from jwz, or are slightly paraphrased versions of something he&#8217;s said.&#8221; (use google if you want the source of *that* quotation <img src='http://regex.info/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>As for the mistaken attribution, it&#8217;s just a silly mistake. But it has been fun to see how it&#8217;s spread over the net over the years.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leigh L. Klotz, Jr.</title>
		<link>http://regex.info/blog/2006-09-15/247#comment-18269</link>
		<dc:creator>Leigh L. Klotz, Jr.</dc:creator>
		<pubDate>Fri, 06 Jun 2008 18:22:40 +0000</pubDate>
		<guid isPermaLink="false">http://regex.info/blog/2006-09-15/247#comment-18269</guid>
		<description>OK, I think I&#039;ve written more PostScript by hand than Jamie, so I assume he thinks I&#039;m not reading this.  Back in the old days, I designed a system that used incredible amounts of PostScript.  One thing that made it easier for us was a C-like syntax to PS compiler, done by a fellow at the Turning Institute.  We licensed it and used it heavily, and I extended it a bit to be able to handle uneven stack-armed IF, and added varieties of inheritance.  The project was called
&lt;a href=&quot;http://compilers.iecc.com/comparch/article/93-01-152&quot; rel=&quot;nofollow&quot;&gt;PdB&lt;/a&gt; and eventually it folded, and the author left and went to First Person Software, where he wrote a very similar language syntax for something called Oak, and it compiled to bytecodes instead of PostScript.  Oak got renamed Java.  

So there.

And yes, we did have two problems...</description>
		<content:encoded><![CDATA[<p>OK, I think I&#8217;ve written more PostScript by hand than Jamie, so I assume he thinks I&#8217;m not reading this.  Back in the old days, I designed a system that used incredible amounts of PostScript.  One thing that made it easier for us was a C-like syntax to PS compiler, done by a fellow at the Turning Institute.  We licensed it and used it heavily, and I extended it a bit to be able to handle uneven stack-armed IF, and added varieties of inheritance.  The project was called<br />
<a href="http://compilers.iecc.com/comparch/article/93-01-152" rel="nofollow">PdB</a> and eventually it folded, and the author left and went to First Person Software, where he wrote a very similar language syntax for something called Oak, and it compiled to bytecodes instead of PostScript.  Oak got renamed Java.  </p>
<p>So there.</p>
<p>And yes, we did have two problems&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kragen Javier Sitaker</title>
		<link>http://regex.info/blog/2006-09-15/247#comment-17469</link>
		<dc:creator>Kragen Javier Sitaker</dc:creator>
		<pubDate>Tue, 13 May 2008 20:37:03 +0000</pubDate>
		<guid isPermaLink="false">http://regex.info/blog/2006-09-15/247#comment-17469</guid>
		<description>Maybe the people who are claiming PostScript can be readable can post links to their readable PostScript?  I agree that most PostScript you run across is less readable than it could be, and I admit I&#039;ve probably written less than a thousand lines of PostScript in my life, but even the stuff in the Blue Book doesn&#039;t seem all that readable to me, compared to C or Python or elisp or, yes, even Perl.  The postfix syntax (what is this block for again?  is this a loop or a conditional or what?  let me scan down to the end of the block --- oh, there&#039;s another block there, what&#039;s after that?  Oh, ifelse, okay, where was I again?) and the point-free style (how many things does this function &lt;code&gt;foo&lt;/code&gt; want on the stack?  Well, apparently one less than this &lt;code&gt;bar&lt;/code&gt; that it calls; where is &lt;code&gt;bar&lt;/code&gt; again?), the pervasive use of higher-order programming both because it&#039;s easy and because the built-in control features are a little lame (where was that function defined again? grep can&#039;t find it...), and certain &quot;noisy&quot; idioms like explicit manipulation of symbol tables in order to get named local variables and fixed-size aggregate data structures... it&#039;s all kind of a mess.

However, it does have some big readability &lt;i&gt;advantages&lt;/i&gt; over, say, C, at least sometimes.  The graphics drawing API is to die for; as long as you don&#039;t care about the error handling, it&#039;s ideal for defining embedded DSLs, precisely because of its point-free higher-order nature; it has built-in arrays and dicts (even if they are fixed-size); and so on.  But these are mostly a help to readability in the large, not in the small.

Anyway, this is already too long for an off-topic comment, so I&#039;ll stop.

&lt;span class=&#039;jfriedl&#039;&gt;I&#039;ve written full-fledged applications in PostScript &#8211; it can be done &#8211; but it&#039;s important to remember that PostScript has been designed for machine-generated scripts. A human does not normally code in PostScript directly, but rather, they write a program in another language that produces PostScript to do what they want.  (I realized this &lt;i&gt;after&lt;/i&gt; having written said applications :-))  &#8212;Jeffrey&lt;/span&gt;</description>
		<content:encoded><![CDATA[<p>Maybe the people who are claiming PostScript can be readable can post links to their readable PostScript?  I agree that most PostScript you run across is less readable than it could be, and I admit I&#8217;ve probably written less than a thousand lines of PostScript in my life, but even the stuff in the Blue Book doesn&#8217;t seem all that readable to me, compared to C or Python or elisp or, yes, even Perl.  The postfix syntax (what is this block for again?  is this a loop or a conditional or what?  let me scan down to the end of the block &#8212; oh, there&#8217;s another block there, what&#8217;s after that?  Oh, ifelse, okay, where was I again?) and the point-free style (how many things does this function <code>foo</code> want on the stack?  Well, apparently one less than this <code>bar</code> that it calls; where is <code>bar</code> again?), the pervasive use of higher-order programming both because it&#8217;s easy and because the built-in control features are a little lame (where was that function defined again? grep can&#8217;t find it&#8230;), and certain &#8220;noisy&#8221; idioms like explicit manipulation of symbol tables in order to get named local variables and fixed-size aggregate data structures&#8230; it&#8217;s all kind of a mess.</p>
<p>However, it does have some big readability <i>advantages</i> over, say, C, at least sometimes.  The graphics drawing API is to die for; as long as you don&#8217;t care about the error handling, it&#8217;s ideal for defining embedded DSLs, precisely because of its point-free higher-order nature; it has built-in arrays and dicts (even if they are fixed-size); and so on.  But these are mostly a help to readability in the large, not in the small.</p>
<p>Anyway, this is already too long for an off-topic comment, so I&#8217;ll stop.</p>
<p><span class='jfriedl'>I&#8217;ve written full-fledged applications in PostScript &ndash; it can be done &ndash; but it&#8217;s important to remember that PostScript has been designed for machine-generated scripts. A human does not normally code in PostScript directly, but rather, they write a program in another language that produces PostScript to do what they want.  (I realized this <i>after</i> having written said applications <img src='http://regex.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )  &mdash;Jeffrey</span></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andy</title>
		<link>http://regex.info/blog/2006-09-15/247#comment-13604</link>
		<dc:creator>Andy</dc:creator>
		<pubDate>Wed, 23 Jan 2008 08:36:01 +0000</pubDate>
		<guid isPermaLink="false">http://regex.info/blog/2006-09-15/247#comment-13604</guid>
		<description>Following Yakugo&#039;s lead...

“Give a man a regular expression and he’ll match a string…
teach him to make his own regular expressions and you’ve got a man with problems.”
–me_da_clever_one 



&quot;Give a man a regular expression and he&#039;ll match a string... but by teaching him how to create them, you&#039;ve given him enough rope to hang himself&quot; - Andy Hood</description>
		<content:encoded><![CDATA[<p>Following Yakugo&#8217;s lead&#8230;</p>
<p>“Give a man a regular expression and he’ll match a string…<br />
teach him to make his own regular expressions and you’ve got a man with problems.”<br />
–me_da_clever_one </p>
<p>&#8220;Give a man a regular expression and he&#8217;ll match a string&#8230; but by teaching him how to create them, you&#8217;ve given him enough rope to hang himself&#8221; &#8211; Andy Hood</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marius Andersen</title>
		<link>http://regex.info/blog/2006-09-15/247#comment-11005</link>
		<dc:creator>Marius Andersen</dc:creator>
		<pubDate>Sat, 03 Nov 2007 22:08:39 +0000</pubDate>
		<guid isPermaLink="false">http://regex.info/blog/2006-09-15/247#comment-11005</guid>
		<description>BTW, a preview button would have been nice.</description>
		<content:encoded><![CDATA[<p>BTW, a preview button would have been nice.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marius Andersen</title>
		<link>http://regex.info/blog/2006-09-15/247#comment-11004</link>
		<dc:creator>Marius Andersen</dc:creator>
		<pubDate>Sat, 03 Nov 2007 22:08:06 +0000</pubDate>
		<guid isPermaLink="false">http://regex.info/blog/2006-09-15/247#comment-11004</guid>
		<description>Erik Naggum&#039;s infamous &quot;&lt;a href=&quot;http://groups.google.no/group/comp.lang.lisp/msg/fc76ebab1cb2f863&quot; rel=&quot;nofollow&quot;&gt;Perl treatise&lt;/a&gt;&quot; starts off in a similar manner:

&lt;blockquote cite=&quot;http://groups.google.no/group/comp.lang.lisp/msg/fc76ebab1cb2f863&quot;&gt;the unemployed programmer had a problem.  &quot;I know&quot;, said the programmer,  &quot;I&#039;ll just learn perl.&quot;  the unemployed programmer now had two problems.&lt;/blockquote&gt;

It&#039;s from 2000.</description>
		<content:encoded><![CDATA[<p>Erik Naggum&#8217;s infamous &#8220;<a href="http://groups.google.no/group/comp.lang.lisp/msg/fc76ebab1cb2f863" rel="nofollow">Perl treatise</a>&#8221; starts off in a similar manner:</p>
<blockquote cite="http://groups.google.no/group/comp.lang.lisp/msg/fc76ebab1cb2f863"><p>the unemployed programmer had a problem.  &#8220;I know&#8221;, said the programmer,  &#8220;I&#8217;ll just learn perl.&#8221;  the unemployed programmer now had two problems.</p></blockquote>
<p>It&#8217;s from 2000.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: PostScript_programmer</title>
		<link>http://regex.info/blog/2006-09-15/247#comment-9805</link>
		<dc:creator>PostScript_programmer</dc:creator>
		<pubDate>Tue, 02 Oct 2007 06:07:14 +0000</pubDate>
		<guid isPermaLink="false">http://regex.info/blog/2006-09-15/247#comment-9805</guid>
		<description>&quot;It combines the power of C with the readability of PostScript.&quot;

As a PostScript programmer, I resent that.  PostScript is not inherently unreadable, but that some PostScript is unreadable where a choice has been made for it to be that way, otherwise it is highly readable.</description>
		<content:encoded><![CDATA[<p>&#8220;It combines the power of C with the readability of PostScript.&#8221;</p>
<p>As a PostScript programmer, I resent that.  PostScript is not inherently unreadable, but that some PostScript is unreadable where a choice has been made for it to be that way, otherwise it is highly readable.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zarko</title>
		<link>http://regex.info/blog/2006-09-15/247#comment-3131</link>
		<dc:creator>Zarko</dc:creator>
		<pubDate>Wed, 24 Jan 2007 11:13:27 +0000</pubDate>
		<guid isPermaLink="false">http://regex.info/blog/2006-09-15/247#comment-3131</guid>
		<description>Soooo, how about writing a PostScript pretty printer ... in Perl? :-)))) Or even better a more general un-obfuscator with modules for languages - starting with JavaScript :-) First test -- un-obfuscate Google maps &quot;api&quot; :-)))

The point being that one can write trash code in any language, so the more rational approach would be to go writing un-obfuscators. And then a &quot;condenser&quot; too - to remove the verbosity blown to infinity - like 10 &quot;namespaces&quot; and 5 classes chained just to call a single function or variable names looking like sentences and variable and function names that spell out the whole sentence.

So compared to something like ...

&lt;code&gt;System.Xml.Serialization.SoapIncludeAttribute.GetCustomAttribute(System.Type.GetType(&quot;System.Text.RegularExpressions&quot;)).ToString();&lt;/code&gt;

... I&#039;ll take &lt;b&gt;@&quot; \((?&gt;[^()]+&#124;\( (?)&#124;\)(?))*(?(DEPTH)(?!))\)&quot;&lt;/b&gt; any time of the day, even if not spelleed out with spaces and newlines - as long as there&#039;s no VB in sight :-))) or I have a Reflector to autoconvert it to C#.

And that regexp is not exactly quoted by chance either - it could potentially untangle the mess that the first quoted code creates :-))). &lt;i&gt;If I&#039;d have to define the regexp in one sentece it would be - the one that untangles the mess :-), while runnig fast :-))&lt;/i&gt;

People can go bitching about the &quot;stream of bytes&quot; till the hell freezes over but as long as different architectures and software need to talk to each other and we don&#039;t fancy becoming slaves of one HUGE company and it&#039;s proprietary formats - we&#039;ll be parsing, and parsing, and parsing again. And not in Lisp since then we&#039;d have 3 more problems :-). C&#039;est la vie - pardon my French. So, I&#039;d love to have universally available lex-and-yacc-combined parsers, in a form writable in a few lines and without callbacks, but till such times, a lil regexp will do ... :-)))</description>
		<content:encoded><![CDATA[<p>Soooo, how about writing a PostScript pretty printer &#8230; in Perl? <img src='http://regex.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ))) Or even better a more general un-obfuscator with modules for languages &#8211; starting with JavaScript <img src='http://regex.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  First test &#8212; un-obfuscate Google maps &#8220;api&#8221; <img src='http://regex.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ))</p>
<p>The point being that one can write trash code in any language, so the more rational approach would be to go writing un-obfuscators. And then a &#8220;condenser&#8221; too &#8211; to remove the verbosity blown to infinity &#8211; like 10 &#8220;namespaces&#8221; and 5 classes chained just to call a single function or variable names looking like sentences and variable and function names that spell out the whole sentence.</p>
<p>So compared to something like &#8230;</p>
<p><code>System.Xml.Serialization.SoapIncludeAttribute.GetCustomAttribute(System.Type.GetType("System.Text.RegularExpressions")).ToString();</code></p>
<p>&#8230; I&#8217;ll take <b>@&#8221; \((?&gt;[^()]+|\( (?)|\)(?))*(?(DEPTH)(?!))\)&#8221;</b> any time of the day, even if not spelleed out with spaces and newlines &#8211; as long as there&#8217;s no VB in sight <img src='http://regex.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )) or I have a Reflector to autoconvert it to C#.</p>
<p>And that regexp is not exactly quoted by chance either &#8211; it could potentially untangle the mess that the first quoted code creates <img src='http://regex.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )). <i>If I&#8217;d have to define the regexp in one sentece it would be &#8211; the one that untangles the mess <img src='http://regex.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> , while runnig fast <img src='http://regex.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )</i></p>
<p>People can go bitching about the &#8220;stream of bytes&#8221; till the hell freezes over but as long as different architectures and software need to talk to each other and we don&#8217;t fancy becoming slaves of one HUGE company and it&#8217;s proprietary formats &#8211; we&#8217;ll be parsing, and parsing, and parsing again. And not in Lisp since then we&#8217;d have 3 more problems <img src='http://regex.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . C&#8217;est la vie &#8211; pardon my French. So, I&#8217;d love to have universally available lex-and-yacc-combined parsers, in a form writable in a few lines and without callbacks, but till such times, a lil regexp will do &#8230; <img src='http://regex.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ))</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jamie Zawinski</title>
		<link>http://regex.info/blog/2006-09-15/247#comment-3085</link>
		<dc:creator>Jamie Zawinski</dc:creator>
		<pubDate>Mon, 15 Jan 2007 08:58:50 +0000</pubDate>
		<guid isPermaLink="false">http://regex.info/blog/2006-09-15/247#comment-3085</guid>
		<description>Wow, I can&#039;t believe you went to all this trouble over a .sig file!  Anyway, a few comments:

First, I don&#039;t know why none of that stuff is archived, I&#039;ve never used X-No-Archive or anthing like it.  

Second: yeah, I was repurposing the older &quot;sed&quot; quote, which I didn&#039;t come up with myself, but that seemed appropriate as &quot;sed&quot; is where I learned regexps in the first place.  (And I will pay Perl another backhanded complement: &quot;it&#039;s not as bad as sed.&quot;)

Third: &lt;i&gt;obviously&lt;/i&gt; I got Kelly&#039;s joke about &quot;streams of bytes&quot;, uh, that&#039;s why I quoted it.  It&#039;s funny, and it makes the point (which I fully agree with) that the decades-old Unix &quot;pipe&quot; model is just plain dumb, because it forces you to think of everything as serializable text, even things that are fundamentally not text, or that are not sensibly serializable.

Fourth: I like PostScript, and it&#039;s a safe bet that I&#039;ve written more and hairier PostScript by hand than anyone reading this... but the syntax is as close to &quot;write-only&quot; as in any language I&#039;ve ever used.  Anyone who defends PostScript as being &quot;readable&quot; is a monster raving loony.

Fifth: these days I use Perl a lot, but I still don&#039;t like it.  So there.</description>
		<content:encoded><![CDATA[<p>Wow, I can&#8217;t believe you went to all this trouble over a .sig file!  Anyway, a few comments:</p>
<p>First, I don&#8217;t know why none of that stuff is archived, I&#8217;ve never used X-No-Archive or anthing like it.  </p>
<p>Second: yeah, I was repurposing the older &#8220;sed&#8221; quote, which I didn&#8217;t come up with myself, but that seemed appropriate as &#8220;sed&#8221; is where I learned regexps in the first place.  (And I will pay Perl another backhanded complement: &#8220;it&#8217;s not as bad as sed.&#8221;)</p>
<p>Third: <i>obviously</i> I got Kelly&#8217;s joke about &#8220;streams of bytes&#8221;, uh, that&#8217;s why I quoted it.  It&#8217;s funny, and it makes the point (which I fully agree with) that the decades-old Unix &#8220;pipe&#8221; model is just plain dumb, because it forces you to think of everything as serializable text, even things that are fundamentally not text, or that are not sensibly serializable.</p>
<p>Fourth: I like PostScript, and it&#8217;s a safe bet that I&#8217;ve written more and hairier PostScript by hand than anyone reading this&#8230; but the syntax is as close to &#8220;write-only&#8221; as in any language I&#8217;ve ever used.  Anyone who defends PostScript as being &#8220;readable&#8221; is a monster raving loony.</p>
<p>Fifth: these days I use Perl a lot, but I still don&#8217;t like it.  So there.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: yakugo</title>
		<link>http://regex.info/blog/2006-09-15/247#comment-3022</link>
		<dc:creator>yakugo</dc:creator>
		<pubDate>Wed, 10 Jan 2007 15:30:52 +0000</pubDate>
		<guid isPermaLink="false">http://regex.info/blog/2006-09-15/247#comment-3022</guid>
		<description>&quot;Give a man a regular expression and he&#039;ll match a string...
teach him to make his own regular expressions and you&#039;ve got a man with problems.&quot;
--me_da_clever_one</description>
		<content:encoded><![CDATA[<p>&#8220;Give a man a regular expression and he&#8217;ll match a string&#8230;<br />
teach him to make his own regular expressions and you&#8217;ve got a man with problems.&#8221;<br />
&#8211;me_da_clever_one</p>
]]></content:encoded>
	</item>
</channel>
</rss>
