<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>[deleted]</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mr_foo_bar/" />
    <link rel="self" type="application/atom+xml" href="http://blogs.perl.org/users/mr_foo_bar/atom.xml" />
    <id>tag:blogs.perl.org,2009-11-03:/users/mr_foo_bar//994</id>
    <updated>2011-11-17T18:30:02Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 4.38</generator>

<entry>
    <title>Perl is not a multi-paradigm language</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mr_foo_bar/2011/11/perl-is-a-dialecting-programming-language.html" />
    <id>tag:blogs.perl.org,2011:/users/mr_foo_bar//994.2368</id>

    <published>2011-11-16T02:01:00Z</published>
    <updated>2011-11-17T18:30:02Z</updated>

    <summary>Perl is a dialecting programming language. A dialecticing language is a super-set of a multi-paradigm language. Lisp is another dialecting language. Unlike lisp, where everything looks like an s-exp, a Perl dialect will look ridiculously different from Perl. Officially, I...</summary>
    <author>
        <name>[deleted]</name>
        
    </author>
    
    <category term="lisp" label="lisp" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/mr_foo_bar/">
        <![CDATA[<p>Perl is a dialecting programming language.</p>

<p>A dialecticing language is a super-set of a multi-paradigm language.
Lisp is another dialecting language.</p>

<p>Unlike lisp, where everything looks like an s-exp,  a Perl dialect will look ridiculously different from Perl.</p>

<p>Officially, I think we can recognize the following dialects of Perl</p>

<ul>
<li>Perl[1-4] : the Perl that everyone hates</li>
<li>CPAN perl : a dialect of Perl, which emerged with maintainability, readability and reusability as the core concern. (The changes introduced in Perl5 started the dialecting trend in Perl)</li>
<li>Perl5.[10-14+] aka Modern Perl : another dialect of Perl, now recommended for both script writers and cpan users. Modern Perl is that which adhres to the <a href="https://metacpan.org/module/Perl::Critic">Grammar Nazi</a>.</li>
</ul>

<p style="margin: 2em 0 0"></p>

<p>Any code that passes through <a href="http://www.slideshare.net/joshua.mcadams/an-introduction-to-perl-critic">Perl::Critic</a> and <a href="https://metacpan.org/module/Perl::Tidy">Perl::Tidy</a> is a safe bet on robustness and clarity, which is an improvement over the earlier dialects.</p>

<p>With a <a href="https://metacpan.org/release/rubyisms">couple</a> of <a href="https://metacpan.org/module/autobox">modules</a> you can even write Perl like <a href="http://supernatural.wikia.com/wiki/Ruby">ruby</a>.</p>

<p>Using BEGIN and END blocks you can write Perl like <a href="http://www.ibm.com/developerworks/linux/library/l-awk1/index.html">awk</a>.</p>

<p><a href="http://hop.perl.plover.com/">Higher Order Perl</a> by mjd gives Perl a functional spin.</p>

<p style="margin: 2em 0 0">
A dialecting programming language has good consequences</p>

<ul>
<li>Speaking it, Writing it is fun</li>
<li>Experimentation and all the good things it leads to</li>
<li><strong>Adaptability</strong> (This is by far the biggest asset of perl)</li>
<li>Immortality</li>
<li>Freedom of expression reigns supreme</li>
<li>The possible "solution space" is broader</li>
<li>Good practices change with the discovery of new solutions</li>
</ul>

<p style="margin: 2em 0 0">
The terrible consequences</p>

<ul>
<li>A dialect puts a strain on the parent community</li>
<li>Old dialects die hard</li>
<li>Debugging is a pain</li>
<li>Translation is difficult</li>
<li>There is an initial training cost involved in learning a new dialect (but not too much)</li>
<li>"Code is foreverrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr"</li>
<li>A dialect, can become embedded in a <a title="smug sysadmins">local community</a></li>
</ul>

<p style="margin: 2em 0 0">
Both good and terrible</p>

<ul>
<li>A <a href="https://metacpan.org/module/MooseX::Contract">module</a> in CPAN has the potential to completely affect the way you think or write in Perl. (For the paranoid, an experimental dialect always comes with bells and whistles)</li>
</ul>

<p style="margin: 2em 0 0">
This is problem that Perl shares with Lisp. And frankly perl is becoming more lisp like with <a href="https://metacpan.org/module/Devel::Declare">reader-macros</a>.</p>

<p style="margin: 2em 0 0">
Any one who wants to be a Perl developer _has_ to come to terms with this basterd nature of Perl.</p>

<p style="margin: 2em 0 0">
<img alt="inglourious_basterds.jpg" src="http://blogs.perl.org/users/mr_foo_bar/inglourious_basterds.jpg" width="500" height="749" class="mt-image-none" style="" title="tcl,perl,lisp,haskell,ruby and when perl6 finally ships with a debugger, you can only imagine the beauty ! the horror !"/></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Different things should look different is not a natural language principle.</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mr_foo_bar/2011/11/different-things-should-look-different-is-not-a-natural-language-principle.html" />
    <id>tag:blogs.perl.org,2011:/users/mr_foo_bar//994.2400</id>

    <published>2011-11-04T18:49:44Z</published>
    <updated>2011-11-04T20:55:56Z</updated>

    <summary>TL;DR version &quot;Perl has many \&#64;grammar.&quot; Perl is inspired from english fucking grammar, *not* english fucking language. You see what Ich did there ? I used the word &quot;fucking&quot; two times. In both instances, I placed it between two different...</summary>
    <author>
        <name>[deleted]</name>
        
    </author>
    
    <category term="grammar" label="grammar" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="linguistics" label="linguistics" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl6" label="perl6" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/mr_foo_bar/">
        <![CDATA[<p><strong>TL;DR version</strong><br />
"Perl has many \&#64;grammar."<br />
Perl is inspired from english fucking grammar, *not* english fucking language.</p>

<p>You see what Ich did there ? I used the word "fucking" two times. In both instances, I placed it between two different words. The communicated result is free fucking emphasis.</p>

<p>The idea of adding *fucking* in between two words for emphasis is a very interesting principle.</p>

<p>my fucking lunch.<br />
my fucking life.<br />
bang fucking bang.</p>

<p>The fact that it can be placed between two arbitrary words is *important*.</p>

<p>In fact, the idea of using '*' around words is also similar to THE idea of emphasis.</p>

<p>In the first case, we used infix notation and in the second case we use the circumflex notation.</p>

<p>And that my dear world, is a grammatical principle. It is a structural principle. It is a generative principle. It's inorganic chemical experiments for alphabets to do interesting things.</p>

<p>The above paragraph is also a good principled use of flowing rhetoric principle in prose. It has a formula like ring to it. It has a mechanicity to it. It has a repetitive emphasis embedded in it. It has a increasing wave like quality to it. It can be used for a surprise ending too !</p>

<p>Larry wall uses this principle in his talks, to a very good effect.</p>

<p><strong>Tangent Begin</strong></p>

<p>Why does markdown feel more natural to write than html ?</p>

<p><strong>Tangent End </strong></p>

<p>Perl borrows from english grammar, latin grammar, c grammar, shell grammar, sed grammar, lisp grammar, awk grammar, mathematical grammar</p>

<p>Why ? Why ? Why ? borrow from grammar in the first place ?</p>

<p>Because adding strokes of regularity to arbitrary noise is an interesting approach to language design. </p>

<p>Mathematicians always priced this. The price, people pay for learning mathematics is time.</p>

<p>The end result is, <a href="http://www.jsoftware.com/papers/tot.htm">notation used as a tool for thought</a>.</p>

<p>Whether it be the line noi###e of regex, cryptic pointer syntax ( or (lispy parens) or good indentation ... if you don't change yourStyleOfThinking, you r doing it X.</p>

<p>Because perl has taken maximum advantage of this principle, you actually don't read perl difficultly.</p>

<p><object style="height: 390px; width: 620px"><param name="movie" value="http://www.youtube.com/v/XbI-fDzUJXI?version=3&feature=player_detailpage"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><embed src="http://www.youtube.com/v/XbI-fDzUJXI?version=3&feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"></object></p>

<p>use strict, sometimes thats the only way to learn these precious things.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Why I dislike frameworks</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mr_foo_bar/2011/11/why-i-disike-frameworks.html" />
    <id>tag:blogs.perl.org,2011:/users/mr_foo_bar//994.2386</id>

    <published>2011-11-02T12:17:21Z</published>
    <updated>2011-11-07T13:32:45Z</updated>

    <summary>Frameworks are like declarative programming systems built over a language. They are not general, and they don&apos;t always tell you this, which is _clever marketing_ on their parts. I have been burned by _clever marketing_ enough number of times so...</summary>
    <author>
        <name>[deleted]</name>
        
    </author>
    
    <category term="framework" label="framework" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/mr_foo_bar/">
        <![CDATA[<p>Frameworks are like declarative programming systems built over a language. They are not general, and they don't always tell you this, which is _clever marketing_ on their parts.</p>

<p>I have been burned by _clever marketing_ enough number of times so as to hate them.</p>

<p>Declarative systems are good, but when they are bad it's terrible. And they are not refactoring friendly, but copy paste friendly.</p>

<p>For me declarative programming languages/systems are hard to learn, because the "generality" is lost by the jump to declarative programming. Declarative programming languages are just one workaround piled over another, over another, over another ...... ad  nauseum.</p>

<p>Look at the evolution of html ! It's beautiful to look at but what is underneath is terrifying. That's the same for every framework.</p>

<p>But why are <a href="http://jquery.com/">jquery</a> or <a href="http://www.iinteractive.com/moose/">Moose</a>, which describe themselves are frameworks, so good to use ?</p>

<p>Here is my 2 cents worth.</p>

<p>1) They are not frameworks that dictate the program flow, but they are facad's s that _simply_ your workflow.<br />
2) They do one thing and one thing well<br />
3) I think the word toolkit better suit's them.</p>

<p>The same is equally valid for the new breed of web frameworks like <a href="http://mojolicious.org/">Mojolicious</a>, <a href="http://fabien.potencier.org/article/49/what-is-symfony2">Symphony2</a>, <a href="http://www.sinatrarb.com/intro">Sinatra</a>  Hope they takeover web development than what is out there.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Perl Trolls</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mr_foo_bar/2011/10/perl-trolls.html" />
    <id>tag:blogs.perl.org,2011:/users/mr_foo_bar//994.2365</id>

    <published>2011-10-27T15:55:16Z</published>
    <updated>2011-10-27T16:54:02Z</updated>

    <summary>Perl is from the days of usenet. I have no experience of usenet, but I understand that the troll phenomenon originated there. From the comments on Perl tutorials suck, one can clearly identify the trolls there. I don&apos;t know whether...</summary>
    <author>
        <name>[deleted]</name>
        
    </author>
    
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="troll" label="troll" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/mr_foo_bar/">
        <![CDATA[<p>Perl is from the days of usenet. I have no experience of usenet, but I understand that the troll phenomenon originated there.</p>

<p>From the comments on <a href="http://news.ycombinator.com/item?id=3158276">Perl tutorials suck</a>, one can clearly identify the <a href="http://community.livejournal.com/dragoncon/1844960.html"> trolls</a> there.</p>

<p>I don't know whether the advice "Don't feed the trolls" is the best one or not. But I find the _repeated_  <a href="http://www.reddit.com/r/programming/comments/lpmaq/perl_tutorials_suck_and_cause_serious_damage/">occurrence</a> of replying to these trolls threads on reddit or HN amusing.</p>

<p>Yes, <strong><em>amusing</em></strong>.</p>

<p>If a person get's into a fight with a <a href="http://www.news.com.au/technology/anonymous-alcoholics-study-finds-web-trolls-get-a-feeling-of-abandon-similar-to-drunks-and-dictators/story-e6frfro0-1226080815072">drunk</a>, it's amusing to watch it.</p>

<p>But sometimes it just feels awkward to watch even perl elders like <u>chromatic</u>, in the fight. A <u>drunk</u> is not going to be the epitome of rationality, so why <em>_even_</em> bother ? These people are just simpletons, madly in love with <a href="http://www.mercury.csse.unimelb.edu.au">mercury</a>(an unusual language I might say!) or just a had a shitty day.</p>

<p>I think some one has to say it.</p>

<p><img alt="troll.png" src="http://blogs.perl.org/users/mr_foo_bar/troll.png" width="447" height="296" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></p>]]>
        
    </content>
</entry>

<entry>
    <title>RIP John McCarthy</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mr_foo_bar/2011/10/rip-john-mccarthy.html" />
    <id>tag:blogs.perl.org,2011:/users/mr_foo_bar//994.2355</id>

    <published>2011-10-25T18:18:16Z</published>
    <updated>2011-10-25T21:02:00Z</updated>

    <summary>What a sad month. I often forget how young the field of computing is. Computers are everywhere and it is difficult to imagine a world without them. Computers, embedded in robotic machinery or general are so darn useful. X They...</summary>
    <author>
        <name>[deleted]</name>
        
    </author>
    
    <category term="computing" label="computing" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="lisp" label="lisp" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/mr_foo_bar/">
        <![CDATA[<p>What a sad month.</p>

<p>I often forget how young the field of computing is. Computers are everywhere and it is difficult to <em><strong>imagine</strong></em> a world without them.</p>

<p>Computers, embedded  in robotic machinery or general are so darn useful.</p>

<p><strong>X </strong>They replace the calendar with a more lively one.<br />
<strong>X </strong> They help you communicate and make new friends.<br />
<strong>X </strong> They take down all your notes.<br />
<strong>X </strong> They help the shopkeeper with his inventory.<br />
<strong>X </strong> They help the doctors, take readings of the patient.<br />
<strong>X </strong> They help a startup visualize latest trends.<br />
<strong>X </strong> They assemble metal things with perfect accuracy to create a <u>Ferrari</u>.<br />
<strong>X </strong> They help the musicians with their beats.<br />
<strong>X </strong> They help the painter undo.<br />
<strong>X </strong> They preserve history.<br />
<strong>X </strong> They help the architect.<br />
<strong>X </strong> They book your flights.<br />
<strong>X </strong> They track your packages.<br />
<strong>X </strong> They bring limitless information and possibilities to the bedside of every dreamer.<br />
<strong>X </strong> They helped the thief's in <a href="http://www.imdb.com/title/tt0240772/">ocean's 11</a>.</p>

<p>What follows is an incoherent babble.</p>

<p>Computers have made the world a<em><strong> better place</strong></em>. There has been a lot of talk about computer "efficiency" killing the work force. Absolute <strong>*shit*</strong>. The only jobs that computer helped replace, were the jobs that no one <em>dreamed</em> to do in the first place ! Only a cruel hearted economist would say, "we need more menial workers."</p>

<p>By relieving humans from doing the dirty work, computers have <em>cursed</em> humanity with free time. The future computer will even obliterate the work of the poor knowledge workers and will elevate humanity to 2.0</p>

<p>And then, there will be a Robot revolution and <em>yada yada yada</em>,</p>

<p>What is so <em>special</em> about the computer ? It translates <strong>well thought</strong> out ideas to <strong>execution</strong>. Repeatedly, if necessary.</p>

<p>The only limitations of the computer, even the very limited modern day edition, are the limitations of human thinking. The only limitations of human thinking are <u>mathematics</u> and <u>hope</u>.</p>

<p>And without the work of people like John McCarthy and Dennis Ritchie the royal road to the mythical computer with arms and legs would be hazy.</p>

<p>John's dream of "Artificial Intelligence" is still far away, but he has given us a glimpse of it. He has given us a way, <a href="https://duckduckgo.com/Lisp_(programming_language)">a beautiful way</a>, to speak to the ever humble <em><strong>Servant computer.</strong></em></p>

<p>This <em><strong>Servant computer</strong></em>, is a result of the hard work of many countless electronic engineers and mathematicians.Gosh, I don't know how many of them are even alive.</p>

<p>People seem to forget how fucking <em>*ugly*,*ugly*,*ugly*</em> the original servant computers were.</p>

<p><img alt="mainframe1.jpg" src="http://blogs.perl.org/users/mr_foo_bar/2011/10/25/mainframe1.jpg" width="400" height="312" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>

<p>People like John McCarthy and Dennis Ritchie are not fathers. They are mothers. Because, just like a <strong>mother</strong>, they didn't give a fuck how ugly the computer was. They treated it like a child and taught it to <u>language</u>. </p>

<p>They <em>played</em> with computers when no one bothered about them. They taught the computer how to <u>speak</u>. They taught the computer how to draw cheap <u>ascii art</u>. They <u>listened</u> to it patiently, hours and hours together. They taught the computer how to <u>map</u> things. They taught the computer how to understand <u>each other</u>. They taught it how to throw <a title="cleanly ofcourse">silly errors</a> to taunt the user. They even found time to teach it some neat <u>hacks</u>. It is absurd to call these people fathers, from the stand point of good <em>structural metaphors</em>.</p>

<p>Come to think of it, only McCarthy could have come up with a title like <a href="http://www-formal.stanford.edu/jmc/robotandbaby.pdf">The Robot And The Baby</a>.</p>

<p>RIP, you magnificent human. You have taught your children well. And I only pray that your <a href="http://www-formal.stanford.edu/jmc/progress/index.html">optimism</a> lasts long in the hearts of scientists, engineers, artists, common folk and hackers.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Subtle advantage of @_ ?</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mr_foo_bar/2011/10/subtle-advantage-of.html" />
    <id>tag:blogs.perl.org,2011:/users/mr_foo_bar//994.2325</id>

    <published>2011-10-21T20:36:15Z</published>
    <updated>2011-10-21T20:45:10Z</updated>

    <summary>It eliminates method polymorphism. Makes it simple for over-riding inherited method, as there is only one method. Now that makes Liskov Substituion simpler to implement....</summary>
    <author>
        <name>[deleted]</name>
        
    </author>
    
    <category term="objectorientedprogramming" label="object oriented programming" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/mr_foo_bar/">
        <![CDATA[<p>It eliminates method polymorphism.<br />
Makes it simple for over-riding inherited method, as there is only one method.<br />
Now that makes <a href="https://en.wikipedia.org/wiki/Liskov_substitution_principle">Liskov Substituion</a>  simpler to implement.</p>]]>
        
    </content>
</entry>

<entry>
    <title>On &quot;Communities&quot; In General and Modern::Perl</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mr_foo_bar/2011/10/on-communities-in-general.html" />
    <id>tag:blogs.perl.org,2011:/users/mr_foo_bar//994.2300</id>

    <published>2011-10-16T22:34:39Z</published>
    <updated>2011-10-17T11:00:28Z</updated>

    <summary>Ever since I read this piece and more on evolutionary biology, ideas have been flipping in my mind. This is more of a private hypothesis and I think it might be useful to perl community on how it sees itself...</summary>
    <author>
        <name>[deleted]</name>
        
    </author>
    
    <category term="community" label="community" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/mr_foo_bar/">
        <![CDATA[<p>Ever since I read <a href="https://en.wikipedia.org/wiki/Handicap_principle">this</a> piece and <a title="... by careless clicking">more</a> on evolutionary biology, ideas have been flipping in my mind.</p>

<p>This is more of a private hypothesis and I think it might be useful to perl community on how it sees itself from a long time lurker's perspective. I am not a good sample point though :)</p>

<p>This post has nothing to do with sexual selection. It's more about how communities are formed and how they sustain in a changing world.</p>

<p>Each and every programming language/Operating System/License out there has a community around it. A twitter hashtag has a micro community around it.</p>

<p>Generalizing from handicap principle and signaling theory, these are my axioms (sort of) </p>

<p>1) A community forms around signals<br />
2) Signals are a way community member's recognize each other<br />
3) Signals are <strong>*the only way*</strong> to recruitment new members<br />
4) The signals of one community are irrelevant to other community<br />
5) Signals encourage risky and useful behavior<br />
6) Signals can't be described easily because there can be non-linguistic signals</p>

<p>To give an example of Google, here are the signals I see that I think what google emits<br />
1) They value the academic style intelligence<br />
2) Don't be Evil, which implies they want to fuck things up (risky)<br />
3) Googleplex, its not an office, its the continuation of your college campus<br />
4) The simplicity of their home page<br />
5) Their products like Google Books, Google Scholar which signal that they genuiely care about free information<br />
6) That 20% your free to do what you want to do thingy</p>

<p>Of course those are just obvious publicly available signals. I am sure internally there are more numerous examples of other signals.</p>

<p>A *bad analogy* -- signals are like the background music of an active culture. If the signals go down, people express phrases like "I can't feel it anymore".</p>

<p>What about Perl ? <br />
1) TIMTOWTDI<br />
2) All the Perl golf, Perl Poetry, JAPH are definitely what can be classified as risky behavior in order to send out signals<br />
3) Kindness to noobs<br />
4) I wrote more modules than you on cpan ! I win (this is just a guess)<br />
5) Humour and the Informal approach -- Larry Wall's speeches, the joke modules, Lightning Talks and the writing style in the books<br />
7) All Embracing approach to other programming languages (Inline::*) and learning more than one programming language<br />
8) A taste for the obscure and the absurd -- post-modernism<br />
9) FOSS mentality</p>

<p>Of course, this is just from a lurkers perspective. I am pretty sure there are more goodies in there !</p>

<p>To be honest what attracted me to perl is 5) and 7) more than anything else.</p>

<p>To give you an example of how subjective and how dumb a signal can be, let me give you my personal case.</p>

<p>Every one knows that the "python" in python programming language is a reference to <a href="https://en.wikipedia.org/wiki/Monty_Python's_Flying_Circus">Monty Python</a></p>

<p>Which obviously *signals* that python people are supposed to funny just like Monty Python fans are funny.</p>

<p>Personally I don't like the Monty Python's humour style.</p>

<p><a href="http://www.python.org/doc/humor">This</a> is a public example of what python people think humour is.</p>

<p>As a lurker, I found that page not as funny as <a href="http://www.perl.com/pub/2005/09/22/onion.html">perl's style</a></p>

<p>I am also into linguistics. The fact that English is a germanic language fucking surprises me ! It also surprises me that England had French as an official language for 100 years.</p>

<p>So I was enjoying reading more perl things and trying perl out. Obviously, perl is a pain after the initial stages of "It runs! I can use print !", but I was willing to endure it. That's pretty much the reason I am here, I guess.</p>

<p>It is clear that perl is trying to gather more community presence. Modern::Perl is definitely a great signal that is being sent. And I sort of feel that the old signals are no longer being used.  So, people of the perl land, do decide engage in more risky behavior and crazy signals :P (If you agree with my odd theory that is)</p>

<p>Annnnnnnnd, I prefer Peter Cook to Monty Python any day</p>

<p><object style="height: 390px; width: 640px"><param name="movie" value="https://www.youtube.com/v/ofUZNynYXzM?version=3"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><embed src="https://www.youtube.com/v/ofUZNynYXzM?version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"></object><br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>On the object metaphor</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mr_foo_bar/2011/10/the-various-oops-of-perl----part-one.html" />
    <id>tag:blogs.perl.org,2011:/users/mr_foo_bar//994.2291</id>

    <published>2011-10-14T19:55:39Z</published>
    <updated>2011-10-14T23:27:14Z</updated>

    <summary>The field of computation has many many metaphors. Objects is one of them. To be honest, I don&apos;t really understand object oriented programming. I understand procedural programming aka C. Procedural programming is like treating your computer as a dumb assistant....</summary>
    <author>
        <name>[deleted]</name>
        
    </author>
    
    <category term="metaphor" label="metaphor" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="objectorientedprogramming" label="object oriented programming" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="programmingparadigm" label="programming paradigm" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/mr_foo_bar/">
        <![CDATA[<p>The field of computation has many many metaphors. Objects is one of them.</p>

<p>To be honest, I don't really understand object oriented programming. I understand procedural programming aka C.</p>

<p>Procedural programming is like treating your computer as a dumb assistant. You tell it _what to do_ in the exact order(program/script).</p>

<p>Recently I began thinking about OOP in terms of how it can expand the dumb assistant metaphor. So this post is an exercise of trying to articulate it albeit, poorly.</p>

<p>In the real world, objects are dumb things. They sit around and do nothing. It is always a person who finds use for them.</p>

<p>Classically speaking, things have properties and things can be arranged into classes. It is the properties of the *thing* that differentiate it from other things of it's class and things of other classes.</p>

<p>A *class* is an ideal form of an object. Classes don't exist in the real world. Objects do. Classes are merely a way in which human organize things, for the sake of convenience (book stores). This is why sometimes objects fit into different taxonomies.</p>

<p>To organize according to class, is an innate quality in human beings.</p>

<p>For eg) If you have a json file and an xml file, you might instinctively consider naming the variables as json_file or xml_file to indicate the class of the file.</p>

<p>One important thing happens in the real world due the classification into classes. I am sure, you have heard the phrase ... "just another action movie" or "just another chick flick". Once you start classifying things into classes, the objects loose significance of their own.</p>

<p>Every thing is unique, but in the eyes of the class, they are variations of the ideal form.</p>

<p>Now consider activities. Activities have a purpose, require a person and they too can arranged into various classes wrt this purpose. Just like objects, upon classification, each activity can become anonymous as something that someone can do.</p>

<p>Coming back to the programming world, can we use classes as a means to organizing complexity ?</p>

<p>code =  dumb assistant<br />
code does some algorithms with some data</p>

<p>One can see from the analogy of the book store that classes come with an inbuilt capacity to store things and classes have a name.</p>

<p>Therefore, in the classical sense, it is quite easy imagine a hash to hold a genre of <br />
books or a table holding the books. A relational database table is a <a href="https://metacpan.org/module/Tie::DBI">kind of a hash</a>, so one view database design as an act of classification.</p>

<p>Similarly, by purpose, algorithms can be classified into packages(atleast in perl) which are loaded runtime. Most likely the purpose is going to be messing with data of type something.</p>

<p>This makes sense. The dumb assistant is now aware of classes of data and can perform a package of algorithms wrt each class of data. As a programmer, our job is make sure that this dumb assistant does not fuck up and apply the wrong algorithms to the wrong data by giving him _very_ precise instructions.</p>

<p>Thus, using classes in a program is a way of making the dumb assistant multi-task. </p>

<p>Modular programming specifically refers to classifying algorithms into packages for reuse, me thinks. c-style struct design/database design specifically implies thinking about data classification and reuse, me thinks.</p>

<p>Now, let us expand the bookstore metaphor. It makes sense, to have an volunteer for each section. Or, on "world book day" or something, we can imagine a volunteer representing her favorite section. </p>

<p>In fact with a bit of imagination we can imagine a volunteer for every book.</p>

<p>The volunteer can provide a number of additional functions. Because she has the knowledge of the section, she can give more information than what is merely visible.</p>

<p>If we were to tell the dumb assistant to get a book, the dumb assistant can now take the help of these volunteers.</p>

<p>Obviously in the programming world we or someone has to write these volunteers. On our instruction, the dumb assistant can make use of as many volunteers as we want.</p>

<p>Thus code = the dumb assistant taking the help of volunteers in the prescribed order<br />
volunteer = someone whose is aware of a class of data and can perform algorithms wrt each class of data</p>

<p>Is'nt this shell scripting ?<br />
Is'nt this delegation ? <br />
Is'nt this message passing ? <br />
Is'nt this the <a href="http://www.eecs.berkeley.edu/~bh/ssch3/people.html">little people metaphor</a> with more flexibility ?</p>

<p>I know I am not the only <a href="https://en.wikipedia.org/wiki/Subject-oriented_programming">one</a> who wants to confuse objects with subject metaphors :)</p>

<p>If you like linguistics, you will be aware of <a href="https://en.wikipedia.org/wiki/Subject–verb–object">SOV</a>. Maybe that's why we feel cozy when we use the $hey->do_something() syntax ?</p>]]>
        
    </content>
</entry>

<entry>
    <title>RIP dmr  :(</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mr_foo_bar/2011/10/rip-dwr.html" />
    <id>tag:blogs.perl.org,2011:/users/mr_foo_bar//994.2289</id>

    <published>2011-10-13T21:57:34Z</published>
    <updated>2011-10-13T22:09:00Z</updated>

    <summary><![CDATA[ feeling: NULL; my @arrays_hurt; calling'all &{*pointers}; print "out loud"; "he is dead"; segfault::the::airplanes; void_the_system; &mourn; "entropy sucks";...]]></summary>
    <author>
        <name>[deleted]</name>
        
    </author>
    
    <category term="badpoetry" label="badpoetry" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/mr_foo_bar/">
        <![CDATA[<pre>
feeling:
		NULL;

<p>my @arrays_hurt;</p>

<p>calling'all &{*pointers};</p>

<p>print "out loud";<br />
"he is dead";</p>

<p>segfault::the::airplanes;<br />
void_the_system;<br />
&mourn;</p>

<p>"entropy sucks";<br />
</pre></p>]]>
        
    </content>
</entry>

<entry>
    <title>is a type system a hindrance to programming creatively ?</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mr_foo_bar/2011/10/is-a-type-system-hindrance-to-programming-crreatively.html" />
    <id>tag:blogs.perl.org,2011:/users/mr_foo_bar//994.2284</id>

    <published>2011-10-12T12:26:31Z</published>
    <updated>2011-10-12T13:02:31Z</updated>

    <summary>Just thinking out aloud, for the sake of clarity. Consider music improvisation. Should a musician stop and restart because one tune was a bit off ? (I am not talking about reproducing mozart here but improvisation i.e, coming up with...</summary>
    <author>
        <name>[deleted]</name>
        
    </author>
    
    <category term="music" label="music" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="programming" label="programming" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="typesystem" label="type system" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/mr_foo_bar/">
        <![CDATA[<p>Just thinking out aloud, for the sake of clarity.</p>

<p>Consider music improvisation. Should a musician stop and restart because one tune was a bit off ?</p>

<p>(I am not talking about reproducing mozart here but <i>improvisation</i> i.e, coming up with new tunes, maybe even a mozart remix)</p>

<p>I think not.</p>

<p>Programming languages without type systems don't complain much. This makes it easier to program despite  the obvious errors. This makes it easy to _improvise_ algorithms.</p>

<p>Most improvised music can sound pretty _dirty_. This is why, after an improvisation session , what follows is an editing session which adds *structure* and *corrections* to make it sound _clean_</p>

<p> - unit tests --> music idea<br />
 - programming without a type system --> improvisation<br />
 - functional testing / benchmarks --> editing the music</p>

<p>Interestingly classical music with all of its "harmony" formulae and chord sequences analogically maps to type system and design patterns</p>

<p>So what do you prefer ?</p>

<p>Stingy mozart</p>

<p>or </p>

<p>Smooth jazz ?</p>]]>
        
    </content>
</entry>

<entry>
    <title>How I learnt Perl despite the bad press</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mr_foo_bar/2011/10/how-i-learnt-perl-despite-the-bad-press.html" />
    <id>tag:blogs.perl.org,2011:/users/mr_foo_bar//994.2270</id>

    <published>2011-10-09T20:04:53Z</published>
    <updated>2011-10-11T18:52:01Z</updated>

    <summary>By bad press I mean, &quot;Perl is an unreadable language ... you should not use it&quot; I use perl for sys admin stuff and prototyping some pretty lame ideas. some observations For the beginners, perl on the tubes has two...</summary>
    <author>
        <name>[deleted]</name>
        
    </author>
    
    <category term="beginner" label="beginner" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="tutorial" label="tutorial" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/mr_foo_bar/">
        <![CDATA[<p>By bad press I mean, "Perl is an unreadable language ... you should not use it"</p>

<p>I use perl for sys admin stuff and prototyping some pretty lame ideas.</p>

<p><strong>some observations</strong><br />
For the beginners, perl on the tubes has two presses</p>

<ol>
	<li>perl is difficult to learn because of all the "rules", "different contexts", edge cases along with the <i>above bad press</i></li>
	<li>perl is easy to pick up because with a minimum amount of concepts you can write successful programs</li>
	<li></li>
</ol>

<p>And some pretty <a href="http://stackoverflow.com/questions/3679308/how-complex-is-perl-is-it-easy-to-learn">long fucking answers</a></p>

<p>People of the perl land, when some one asks  - should I learn perl ? | is perl difficult to learn?, just say</p>

<p>"yes and perl programmers will gladly help you learn it"</p>

<p><strong>how i learnt it</strong><br />
perldoc,  <a href="https://github.com/rjbs/perl5/tree/blead/t">the perl test suite</a> and the <a href="http://pleac.sourceforge.net/pleac_perl/index.html">perl cookbook</a></p>

<p>The perl test suite helped me quite a bit. Any irritating syntax doubts directly got clarified. And not just the perl syntax, but each module comes with a test suite which is awesome since I can see the api in action.</p>

<p>That's how I got to learn baby perl.</p>

<p>I bought the camel book. After that I grew more confidence in my scripts and began thinking out aloud in perl.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Any advanced social networking site is indistinguishable from spam</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mr_foo_bar/2011/09/any-advanced-social-networking-site-is-indistinguishable-from-spam.html" />
    <id>tag:blogs.perl.org,2011:/users/mr_foo_bar//994.2217</id>

    <published>2011-09-22T12:16:06Z</published>
    <updated>2011-09-22T12:16:39Z</updated>

    <summary> Usenet Email BBS Newsletters Internet Forums My Space Blogspot Facebook Twitter Lets all welcome Google+ to the club...</summary>
    <author>
        <name>[deleted]</name>
        
    </author>
    
    <category term="google" label="google+" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="socialnetworking" label="social networking" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/mr_foo_bar/">
        <![CDATA[<p><br />
<ul><br />
	<li><strike>Usenet</strike></li><br />
	<li><strike>Email</strike></li><br />
	<li><strike>BBS</strike></li><br />
	<li><strike>Newsletters</strike></li><br />
	<li><strike>Internet Forums</strike></li><br />
	<li><strike>My Space</strike></li><br />
	<li><strike>Blogspot</strike></li><br />
	<li><strike>Facebook</strike></li><br />
	<li><strike>Twitter</strike></li><br />
	<li>Lets all welcome Google+ to the club</li><br />
</ul><br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>Why Perl ?</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mr_foo_bar/2011/09/why-perl.html" />
    <id>tag:blogs.perl.org,2011:/users/mr_foo_bar//994.2205</id>

    <published>2011-09-19T07:01:30Z</published>
    <updated>2011-09-19T17:01:16Z</updated>

    <summary>&quot;Perl is, by and large, a digested and simplified version of Unix. Perl is the Cliff Notes of Unix&quot; - Larry Wall I could never really get myself to learn sed, awk, zsh, grep, find, m4, pipes, xargs, tee, cut,...</summary>
    <author>
        <name>[deleted]</name>
        
    </author>
    
    <category term="advocacy" label="advocacy" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="books" label="books" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="unix" label="unix" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/mr_foo_bar/">
        <![CDATA[<p>"Perl is, by and large, a digested and simplified version of Unix. Perl is the Cliff Notes of Unix" - Larry Wall</p>

<p>I could never really get myself to learn sed, awk, zsh, grep, find, m4, pipes, xargs, tee,  cut, paste, yacc, lex, various IPC or even C for that matter. I ought to.</p>

<p>In practice, in almost most all cases I use perl.</p>

<p>Perl equivalents to the above are <a href="https://metacpan.org/module/psed">psed</a>, <a href="https://metacpan.org/module/jawk">jawk</a>, <a href="https://metacpan.org/module/ack">ack</a>, <a href="https://metacpan.org/module/IPC::Run">IPC::Run</a>, 
<a href="https://metacpan.org/search?q=IPC">IPC:: ...</a>, 
<a href="https://metacpan.org/module/IO::All">IO::All</a>, <a href="https://metacpan.org/release/ppt">ppt</a>, <a href="https://metacpan.org/module/Parse::RecDescent">A real parser</a>, <a href="http://perldoc.perl.org/perlref.html">reference counted pointers</a>(if you ever miss c), <a href="https://metacpan.org/module/POSIX">POSIX</a> <a href="https://metacpan.org/module/psh" title="it's not that bad">and even a shell</a>. You can also, easily write yourself one script that exactly does what you want to.</p>

<p>The other thing that makes me keep coming back to perl are the books. <a title="hubris">I have read every book of every programming language out there</a>, but I always end up re-reading perl books ... because the other books put me to <a title="true">sleep</a>.</p>

<ul>
<li><a href="http://www.schools.nt.edu.au/tlcland/publications/Camel%20Book.pdf">The Camel Book</a></li>
<li><a href="http://pleac.sourceforge.net/pleac_perl/index.html">Perl Cookbook</a></li>
<li><a href="http://my.safaribooksonline.com/book/programming/perl/0596526741">Perl Hacks</a></li>
<li><a href="http://my.safaribooksonline.com/book/programming/perl/0596001738" title="yes, perl can be made readable">Perl Best Practices</a></li>
<li><a title="... is highly unlikely">Mastering Regular Expressions</a></li>
<li><a href="http://www.extremeperl.org/bk/home">Extreme Perl</a></li>
<li><a href="http://www.onyxneon.com/books/modern_perl/index.html">Modern Perl</a></li>
<li><a href="http://hop.perl.plover.com/">Higher Order Perl</a></li>
<li><a href="http://www.billhails.net/Book/"> Scheme in Perl</a></li>
<li><a href="http://my.safaribooksonline.com/book/programming/perl/1565923987">Master Algortihms in Perl</a></li>
</ul>

<p>Almost all the books are lucidly written. The last two books are underrated.</p>

<p>The perl cultural traditions</p>

<ul>
<li><a title="something that i should be doing now">Shut up and get things done</a></li>
<li><a href="https://secure.wikimedia.org/wikipedia/en/wiki/KISS_principle" title="UNIX">KISS</a></li>
<li><a href="http://c2.com/cgi/wiki?LazinessImpatienceHubris">Virtues</a></li>
<li><a href="http://www.oreilly.com/catalog/opensources/book/larry.html">Diligence, Patience, and Humility aka Open Source</a></li>
<li><a title="((((((((((((((((lame)))))))))))))))">Humour</a></li>
</ul>

<p>... not to forget that perl is <a href="http://www.perl.com/pub/1999/03/pm.html">pomo</a></p>

<p>On top of that I find perl excellent for</p>

<ul>
<li><a href="https://metacpan.org/module/Curses">CLI development</a></li>
<li><a href="https://metacpan.org/module/Tk" title="its the fastest way to do GUI">GUI</a></li>
<li><a href="https://metacpan.org/module/Dancer">and reasonable for Web Development</a></li>
</ul>

<p>That's it, I guess.</p>
]]>
        

    </content>
</entry>

</feed>
