<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.0.12-alpha" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: Source of the famous &#8220;Now you have two problems&#8221; quote</title>
	<link>http://regex.info/blog/2006-09-15/247</link>
	<description>Not a photo blog, but sometimes I play one on TV</description>
	<pubDate>Tue, 02 Dec 2008 02:15:02 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.12-alpha</generator>

	<item>
		<title>by: Fredrik</title>
		<link>http://regex.info/blog/2006-09-15/247#comment-18969</link>
		<pubDate>Sat, 26 Jul 2008 12:39:18 +0000</pubDate>
		<guid>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, "All good quotes come from jwz, or are slightly paraphrased versions of something he's said." (use google if you want the source of *that* quotation ;-)

As for the mistaken attribution, it's just a silly mistake. But it has been fun to see how it'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>
		<pubDate>Fri, 06 Jun 2008 18:22:40 +0000</pubDate>
		<guid>http://regex.info/blog/2006-09-15/247#comment-18269</guid>
					<description>OK, I think I've written more PostScript by hand than Jamie, so I assume he thinks I'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="http://compilers.iecc.com/comparch/article/93-01-152" rel="nofollow"&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>
		<pubDate>Tue, 13 May 2008 20:37:03 +0000</pubDate>
		<guid>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've probably written less than a thousand lines of PostScript in my life, but even the stuff in the Blue Book doesn'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's another block there, what'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's easy and because the built-in control features are a little lame (where was that function defined again? grep can't find it...), and certain "noisy" idioms like explicit manipulation of symbol tables in order to get named local variables and fixed-size aggregate data structures... it'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't care about the error handling, it'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'll stop.

&lt;span class='jfriedl'&gt;I've written full-fledged applications in PostScript &#8211; it can be done &#8211; but it'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>
		<pubDate>Wed, 23 Jan 2008 08:36:01 +0000</pubDate>
		<guid>http://regex.info/blog/2006-09-15/247#comment-13604</guid>
					<description>Following Yakugo'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 



"Give a man a regular expression and he'll match a string... but by teaching him how to create them, you've given him enough rope to hang himself" - 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; - Andy Hood
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Marius Andersen</title>
		<link>http://regex.info/blog/2006-09-15/247#comment-11005</link>
		<pubDate>Sat, 03 Nov 2007 22:08:39 +0000</pubDate>
		<guid>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>
		<pubDate>Sat, 03 Nov 2007 22:08:06 +0000</pubDate>
		<guid>http://regex.info/blog/2006-09-15/247#comment-11004</guid>
					<description>Erik Naggum's infamous "&lt;a href="http://groups.google.no/group/comp.lang.lisp/msg/fc76ebab1cb2f863" rel="nofollow"&gt;Perl treatise&lt;/a&gt;" starts off in a similar manner:

&lt;blockquote cite="http://groups.google.no/group/comp.lang.lisp/msg/fc76ebab1cb2f863"&gt;the unemployed programmer had a problem.  "I know", said the programmer,  "I'll just learn perl."  the unemployed programmer now had two problems.&lt;/blockquote&gt;

It'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>
		<pubDate>Tue, 02 Oct 2007 06:07:14 +0000</pubDate>
		<guid>http://regex.info/blog/2006-09-15/247#comment-9805</guid>
					<description>"It combines the power of C with the readability of PostScript."

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>
		<pubDate>Wed, 24 Jan 2007 11:13:27 +0000</pubDate>
		<guid>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 "api" :-)))

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 "condenser" too - to remove the verbosity blown to infinity - like 10 "namespaces" 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("System.Text.RegularExpressions")).ToString();&lt;/code&gt;

... I'll take &lt;b&gt;@" \((?&#62;[^()]+&#124;\( (?)&#124;\)(?))*(?(DEPTH)(?!))\)"&lt;/b&gt; any time of the day, even if not spelleed out with spaces and newlines - as long as there'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'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 "stream of bytes" till the hell freezes over but as long as different architectures and software need to talk to each other and we don't fancy becoming slaves of one HUGE company and it's proprietary formats - we'll be parsing, and parsing, and parsing again. And not in Lisp since then we'd have 3 more problems :-). C'est la vie - pardon my French. So, I'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 - 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 - to remove the verbosity blown to infinity - 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 - 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 - 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 - 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 - 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 - 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>
		<pubDate>Mon, 15 Jan 2007 08:58:50 +0000</pubDate>
		<guid>http://regex.info/blog/2006-09-15/247#comment-3085</guid>
					<description>Wow, I can't believe you went to all this trouble over a .sig file!  Anyway, a few comments:

First, I don't know why none of that stuff is archived, I've never used X-No-Archive or anthing like it.  

Second: yeah, I was repurposing the older "sed" quote, which I didn't come up with myself, but that seemed appropriate as "sed" is where I learned regexps in the first place.  (And I will pay Perl another backhanded complement: "it's not as bad as sed.")

Third: &lt;i&gt;obviously&lt;/i&gt; I got Kelly's joke about "streams of bytes", uh, that's why I quoted it.  It's funny, and it makes the point (which I fully agree with) that the decades-old Unix "pipe" 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's a safe bet that I've written more and hairier PostScript by hand than anyone reading this... but the syntax is as close to "write-only" as in any language I've ever used.  Anyone who defends PostScript as being "readable" is a monster raving loony.

Fifth: these days I use Perl a lot, but I still don'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>
		<pubDate>Wed, 10 Jan 2007 15:30:52 +0000</pubDate>
		<guid>http://regex.info/blog/2006-09-15/247#comment-3022</guid>
					<description>"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</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>
