<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>zero-blog</title>
	
	<link>http://s1n.dyndns.org</link>
	<description>All Your Blog Are Belong To Us</description>
	<lastBuildDate>Wed, 18 Nov 2009 09:44:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9-rare</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/zero-blog" type="application/rss+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Unmonger</title>
		<link>http://feedproxy.google.com/~r/zero-blog/~3/xNPExtFWQBY/</link>
		<comments>http://s1n.dyndns.org/index.php/2009/11/18/unmonger/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 09:44:48 +0000</pubDate>
		<dc:creator>s1n</dc:creator>
				<category><![CDATA[01100011]]></category>
		<category><![CDATA[Meat Space]]></category>
		<category><![CDATA[Sector 7G]]></category>
		<category><![CDATA[dallas.p6m]]></category>
		<category><![CDATA[frustration]]></category>
		<category><![CDATA[misery]]></category>
		<category><![CDATA[overtime]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[perl6]]></category>
		<category><![CDATA[school]]></category>

		<guid isPermaLink="false">http://s1n.dyndns.org/?p=937</guid>
		<description />
			<content:encoded><![CDATA[<p>I&#8217;ve often wondered what places someone in an open source community. Is it advocating the software? Openly contributing source code? Are users members of the community? I&#8217;m not sure if the definition of membership is clear to me.</p>
<p>You&#8217;re probably reading this entry on the <a href="http://ironman.enlightenedperl.org/">Perl Ironman Blogging challenge</a>. I joined the challenge over the summer when I had much more time to devote to active participation (no classes). I have failed to leave <a href="http://ironman.enlightenedperl.org/munger/mybadge/male/Jason%20Switzer.png">Paperman status</a> since the semester started.</p>
<p>I haven&#8217;t contributed much. I haven&#8217;t been able to clean-up and upload <a href="http://search.cpan.org/~jswitzer/">my lingering perl projects</a> to CPAN yet. I haven&#8217;t contributed to fixing bugs in CPAN modules or perl5 itself. I have flirted with contributing to <a href="http://rakudo.org/">Rakudo</a> over the last 18 months but have become consumed with my graduate work as of late. <a href="http://s1n.dyndns.org/index.php/tag/yapc/">I have been to only 1 YAPC::NA event</a>, which was this summer at <a href="http://yapc10.org/yn2009/">YAPC::NA 2009</a>.</p>
<p>I don&#8217;t write gobs of professional code using Perl; 95% of my professional code is <a href="http://en.wikipedia.org/wiki/C%2B%2B0x">C++</a>. The last professional Perl project was to recreate <a href="http://search.cpan.org/perldoc?Test::Harness">Test::Harness</a> and <a href="http://search.cpan.org/perldoc?TAP::Formatter::Base">TAP::Formatter</a> to meet my needs, which turned out to vary widely. I&#8217;m not a sysadmin, so I don&#8217;t get to use Perl as a glue to hold my universe together. I don&#8217;t have <a href="http://stackoverflow.com/users/8817/brian-d-foy">14 million repuation points for Perl</a> on <a href="http://www.stackoverflow.com">StackOverflow.com</a>.</p>
<p>I don&#8217;t wax philosophically about the <a href="http://use.perl.org/~masak/journal/39912?from=rss">Great Divide</a> between <a href="http://www.shadowcat.co.uk/blog/matt-s-trout/f_ck-perl-6/">Perl 5 and Perl 6 developers</a>; I am both, so that would be weird to argue with myself. I love Perl, both 5 and 6. I love <a href="http://search.cpan.org">all the great things</a> people have contributed over the many years.</p>
<p>To put it bluntly, <a href="http://s1n.dyndns.org/index.php/2007/04/23/dear-john/">my graduate degree greatly eclipses anything</a> I would like to contribute to the open source community, Perl included. I take a few hours a week to run and that&#8217;s about all I get for free time.</p>
<p>I did restart DFW.pm, now referred to as Dallas.p6m. Dallas is blessed to have a few significant community members, so I at least try to bring them together for coffee once a month. I&#8217;ve held a few mini-hackathons, though attendance has dropped, likely due to the time of the year.</p>
<p>So where would I fit in this Community Ball of Mud?</p>
]]></content:encoded>
			<wfw:commentRss>http://s1n.dyndns.org/index.php/2009/11/18/unmonger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://s1n.dyndns.org/index.php/2009/11/18/unmonger/</feedburner:origLink></item>
		<item>
		<title>The Fallacy of Industrial Expectation</title>
		<link>http://feedproxy.google.com/~r/zero-blog/~3/EHwFyTuIaak/</link>
		<comments>http://s1n.dyndns.org/index.php/2009/11/07/fallacy-of-industrial-expectation/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 09:24:30 +0000</pubDate>
		<dc:creator>s1n</dc:creator>
				<category><![CDATA[Grinds My Gears]]></category>
		<category><![CDATA[Project Bootstrap]]></category>
		<category><![CDATA[misunderstanding]]></category>
		<category><![CDATA[school]]></category>
		<category><![CDATA[training]]></category>

		<guid isPermaLink="false">http://s1n.dyndns.org/?p=930</guid>
		<description><![CDATA[I am what you would call a &#8220;professional student&#8221;; I have an Bachelors of Science in Computer Science, I am finishing a Masters of Science in Computer Science with a focus in Intelligent Systems, contemplating a PhD, and I have been a software engineer for 6 years now.
Recently, Joel Spolsky published yet another article about [...]]]></description>
			<content:encoded><![CDATA[<p>I am what you would call a &#8220;professional student&#8221;; I have an <a href="http://www.utsa.edu">Bachelors of Science in Computer Science</a>, I am finishing a <a href="http://www.utdallas.edu">Masters of Science in Computer Science</a> with a focus in <a href="http://cs.utdallas.edu/graduate/csgrad-degrees-07.html#ms">Intelligent Systems</a>, contemplating a PhD, and I have been a software engineer for 6 years now.</p>
<p>Recently, Joel Spolsky published <a href="http://www.joelonsoftware.com/items/2009/10/26.html">yet another article</a> about how he feels the universities of the world are churning out students incapable of doing the daily duties of software development. I&#8217;ve read other <a href="http://use.perl.org/~Ovid/journal/38596">scathing</a> <a href="http://use.perl.org/~Ovid/journal/39809">articles</a> about academia. I&#8217;ve even responded to many <a href="http://stackoverflow.com/questions/420122/is-there-any-need-to-get-a-computer-science-degree">comments</a> similar to &#8220;you have a degree but don&#8217;t know how to use ToolX or program in LanguageY.&#8221; These <a href="http://www.dellanave.com/blog/2007/05/31/a-computer-science-degree-does-hurt-a-lot/">criticisms</a> always irritate me (and strike me as originating from someone who begrudges those with degrees), so I want to set the record straight about academia. There are 2 simple points I want to get across:</p>
<ol>
<li>The university&#8217;s primary concern is to teach you core knowledge and how to obtain new knowledge <em>in any field</em>.</li>
<li>Computer Science is a division of Applied Mathematics.</li>
</ol>
<p>It&#8217;s that simple. At no point is it the university&#8217;s responsibility to teach students an arbitrary tool or language that the industry is consistant in its opinion.  I read this really <a href="http://stochasticgeometry.wordpress.com/2009/10/27/joel-spolsky-snake-oil-salesman/">great response</a> to his article that echos many of my complaints about this misconception.</p>
<p>Joel often comments that universities are trying to teach a particular language because it&#8217;s what the industry does or because MIT does it. That is wholly incorrect. The only reason why a university favors a particular language is so that the professors can focus on teaching towards and grading just one language, as that greatly simplifies their job. The choice of Java or Python is because you can express ideas simply and straight forward. The point isn&#8217;t to teach a language but to teach an idea expressed in a language.</p>
<p>If my undergraduate university had taught me specifically how to use CVS, <a href="http://www.redhat.com/magazine/010aug05/features/subversion/">that skill would essentially be wasted</a>. Instead, they teach <em>how</em> versioning control systems work so that I may either implement one or just use one in my day to day job. Which sounds like a better idea in the long run?</p>
<p>Now keep in mind that CS is really just a division of <a href="http://en.wikipedia.org/wiki/Applied_mathematics">Applied Mathematics</a>. If you haven&#8217;t come to understand that, then you do not truly understand the field. In fact, the original &#8220;computers&#8221; were <a href="http://en.wikipedia.org/wiki/Human_computer">humans who computed</a> mathematic equations. </p>
<p>Sure, most undergraduate assignments seem simple in comparison, but it&#8217;s because they don&#8217;t want to teach the peripheral tasks. Those tasks, such as testing, working in teams, and the latest &#8220;agile&#8221; techniques, are unrelated to the core understanding and vary widely within the industry. By understanding the core concepts, everything else is an extension of your existing knowledge.</p>
<p>If my university had taught me how to use FogBugz or how to write Perl TAP tests, I would have been looking for another university. My graduate school has yet to require I use a language or a tool and has yet teach a specific language and a tool. In the long run, that makes me a more adaptable developer and far more valuable to my employer.</p>
]]></content:encoded>
			<wfw:commentRss>http://s1n.dyndns.org/index.php/2009/11/07/fallacy-of-industrial-expectation/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://s1n.dyndns.org/index.php/2009/11/07/fallacy-of-industrial-expectation/</feedburner:origLink></item>
		<item>
		<title>Pump King</title>
		<link>http://feedproxy.google.com/~r/zero-blog/~3/nmXBNl07HB8/</link>
		<comments>http://s1n.dyndns.org/index.php/2009/10/31/pump-king/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 05:04:15 +0000</pubDate>
		<dc:creator>s1n</dc:creator>
				<category><![CDATA[KISS Saves Santa]]></category>
		<category><![CDATA[Permission For Flyby]]></category>
		<category><![CDATA[arts-and-crafts]]></category>
		<category><![CDATA[halloween]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://s1n.dyndns.org/?p=912</guid>
		<description><![CDATA[I am now a PumpKing. No, not that kind of pumpking, this kind:



I stole the Perl Foundation logo and created a stencil from it using GIMP. It took me approximately 3 hours to create that pumpkin.
Happy Halloween!
]]></description>
			<content:encoded><![CDATA[<p>I am now a PumpKing. No, not that kind of pumpking, <a href="http://www.youtube.com/watch?v=XRAfFoBotSM">this kind</a>:</p>
<p><center><br />
<img src="http://s1n.dyndns.org/wordpress/wp-content/uploads/2009/10/pumpking1-225x300.jpg" alt="pumpking" title="pumpking" width="225" height="300" class="aligncenter size-medium wp-image-913" /><img src="http://s1n.dyndns.org/wordpress/wp-content/uploads/2009/10/pumpking2-224x300.jpg" alt="pumpking2" title="pumpking2" width="224" height="300" class="aligncenter size-medium wp-image-919" /><br />
</center></p>
<p>I stole the <a href="http://www.perlfoundation.org/">Perl Foundation</a> <a href="http://articles.mongueurs.net/interviews/oscon-eu-2005-randal/perl-onion.png">logo</a> and <a href="http://www.youtube.com/watch?v=hxwljxz3ufc">created a stencil</a> from it using <a href="http://www.gimp.org">GIMP</a>. It took me approximately 3 hours to create that pumpkin.</p>
<p>Happy Halloween!</p>
]]></content:encoded>
			<wfw:commentRss>http://s1n.dyndns.org/index.php/2009/10/31/pump-king/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://s1n.dyndns.org/index.php/2009/10/31/pump-king/</feedburner:origLink></item>
		<item>
		<title>Thesis In Frustration</title>
		<link>http://feedproxy.google.com/~r/zero-blog/~3/eX1-kfUgw5M/</link>
		<comments>http://s1n.dyndns.org/index.php/2009/10/25/thesis-in-frustration/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 07:52:02 +0000</pubDate>
		<dc:creator>s1n</dc:creator>
				<category><![CDATA[01100011]]></category>
		<category><![CDATA[Grinds My Gears]]></category>
		<category><![CDATA[Project Bootstrap]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[perl6]]></category>
		<category><![CDATA[school]]></category>
		<category><![CDATA[street-rat-crazy]]></category>
		<category><![CDATA[thesis]]></category>

		<guid isPermaLink="false">http://s1n.dyndns.org/?p=904</guid>
		<description><![CDATA[So this semester I have been investigating and working on my thesis. Right now, my focus is in Statistical Natural Language Processing. I don&#8217;t want to discuss the specifics of the research just yet, but it has the potential of completely up-ending the entire search industry.
I have been investigating how to build a large corpus [...]]]></description>
			<content:encoded><![CDATA[<p>So this semester I have been investigating and working on my thesis. Right now, my focus is in <a href="http://en.wikipedia.org/wiki/Natural_language_processing#Statistical_NLP">Statistical Natural Language Processing</a>. I don&#8217;t want to discuss the specifics of the research just yet, but it has the potential of completely <a href="http://en.wikipedia.org/wiki/MapReduce">up-ending the entire search industry</a>.</p>
<p>I have been investigating how to build a large corpus from the web. My advisor favors using <a href="http://www.google.com">Google</a> directly since they already exist and provide their search for free.</p>
<p>The first thing I did was investigate the Google SOAP API only to find out that they deprecated it when they introduced the <a href="http://search.cpan.org/perldoc?Google::Search">AJAX API</a>. The new API only allows for about 60 results with no paging. Then I looked into the <a href="http://search.cpan.org/perldoc?REST::Google">REST::Google</a> API, but that only returns 10 results. Neither of those options seem feasible. I checked Yahoo&#8217;s <a href="http://search.cpan.org/perldoc?Yahoo::Search">Yahoo::Search</a> interface and it only seemed to return 10 results (paging, if possible, was not obvious). I could write a direct scraper but that would take a good deal of effort and I am not sure it would be worth it.</p>
<p>Then I even started looking at writing my own spider using <a href="http://search.cpan.org/dist/WWW-Robot/">WWW::Robot</a>. This is a fairly complex module that does a ton of grunt work for you. The downside is that it behaves and follows the robots.txt protocol; that&#8217;s a problem for someone who wants to scrape everything with no regard for such a protocol. </p>
<p>I spent maybe about 20-30 hours flipping over this in the last 6 weeks, I finally made the effort to meet with my advisor. Since he is no longer answering email or his phone, I met him after his late class and talked it over with him while he ate dinner in the campus restaurant. We talked and waffled back and forth about our approach. In the end, we decided to investigate <a href="http://lucene.apache.org/">Lucene&#8217;s</a> capabilities.</p>
<p>Frustrated and lost, I went about my week until I talked with a PhD student currently being advised by <a href="http://www.hlt.utdallas.edu/~vh">my advisor</a> as well. Her patience for our advisor has been continually declining. She missing a publication deadline because he failed to review a paper of hers. She also divulged that she intended on switching advisors because she is not making progress. I have been contemplaing this myself, so it was good to hear that I am not the only one at their wits&#8217; end.</p>
<p>I am not making progress and I am not willing to sacrifice my graduation. If I change advisors, hopefully I will find an advisor that provides much more support and direction yet gives me the option to continue developing in perl. <a href="http://utdallas.edu/~gupta/">One of the professors</a> I want to speak with runs a programming language lab.</p>
<p>Maybe I can merge my interest with <a href="http://www.perl6.org">Perl 6</a> with my thesis!</p>
]]></content:encoded>
			<wfw:commentRss>http://s1n.dyndns.org/index.php/2009/10/25/thesis-in-frustration/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://s1n.dyndns.org/index.php/2009/10/25/thesis-in-frustration/</feedburner:origLink></item>
		<item>
		<title>It Must Be Magic</title>
		<link>http://feedproxy.google.com/~r/zero-blog/~3/iA7-cxZNczY/</link>
		<comments>http://s1n.dyndns.org/index.php/2009/10/07/it-must-be-magic/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 23:43:35 +0000</pubDate>
		<dc:creator>s1n</dc:creator>
				<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://s1n.dyndns.org/?p=900</guid>
		<description><![CDATA[Apparently Ovid never heard of Clark&#8217;s Laws:

Any sufficiently advanced technology is indistinguishable from magic.

I&#8217;m sure people thought the same thing about black powder, mechanical engines, computers, TVs, and well basically everything else that has ever graced his lifetime. Remember Ovid, there was a point in time when structured programming reigned supreme.
]]></description>
			<content:encoded><![CDATA[<p>Apparently <a href="http://use.perl.org/~Ovid/journal/39703?from=rss">Ovid</a> never heard of <a href="http://en.wikipedia.org/wiki/Clarke%27s_three_laws">Clark&#8217;s Laws</a>:</p>
<blockquote><p>
Any sufficiently advanced technology is indistinguishable from magic.
</p></blockquote>
<p>I&#8217;m sure people thought the same thing about black powder, mechanical engines, computers, TVs, and well basically everything else that has ever graced his lifetime. Remember Ovid, there was a point in time when structured programming reigned supreme.</p>
]]></content:encoded>
			<wfw:commentRss>http://s1n.dyndns.org/index.php/2009/10/07/it-must-be-magic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://s1n.dyndns.org/index.php/2009/10/07/it-must-be-magic/</feedburner:origLink></item>
		<item>
		<title>Falling Behind</title>
		<link>http://feedproxy.google.com/~r/zero-blog/~3/dc9aKRTEzg8/</link>
		<comments>http://s1n.dyndns.org/index.php/2009/10/04/falling-behind/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 23:21:14 +0000</pubDate>
		<dc:creator>s1n</dc:creator>
				<category><![CDATA[01100011]]></category>
		<category><![CDATA[Project Bootstrap]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[thesis]]></category>

		<guid isPermaLink="false">http://s1n.dyndns.org/?p=895</guid>
		<description><![CDATA[I dropped off the Perl Ironman blogging challenge again. This time it wasn&#8217;t due to a date miscalculation; I took a midterm exam on Thursday. My current class has taken up most of my time in the past 6 weeks. There haven&#8217;t been any chances for coding just yet. I did want to talk about [...]]]></description>
			<content:encoded><![CDATA[<p>I dropped off the Perl Ironman blogging challenge again. This time it wasn&#8217;t due to a date miscalculation; I took a midterm exam on Thursday. My current class has taken up most of my time in the past 6 weeks. There haven&#8217;t been any chances for coding just yet. I did want to talk about something I have been looking into lately for my thesis.</p>
<p>First, I want to post a lazyweb question: has anyone worked with <a href="http://search.cpan.org/dist/REST-Google/">REST::Google</a>? My first question is if anyone knows how to advance the page cursor with this module. I tried reading the code itself, but it uses Class::Accessor and Class::Data. I&#8217;m a bit unfamiliar with those modules (are they popular anymore?), and it looks like the cursor is read-only. I don&#8217;t really see the use for the module if it returns 10 results and cannot paginate.</p>
<p>So from that question, I took the sample and <a href="http://github.com/s1n/thesis/blob/master/google/exp/rest.pl">tried playing with it</a>. This is just experimental to exercise the module&#8217;s capabilities. This is fairly boring, so I want to see if I can get some code working that can paginate through Google results using their REST API (if that&#8217;s even possible).</p>
<p>The author of this module probably feels very clever; he <a href="http://cpansearch.perl.org/src/EJS/REST-Google-1.0.8/lib/REST/Google/Search.pm">hid subpackages from CPAN</a> by putting the package name on a new line from the package keyword. They also used <code>__PACKAGE__->mk_ro_accessors</code>, which looks like it will generate attribute accessors at runtime. I&#8217;m guessing <a href="http://search.cpan.org">CPAN</a> cannot index that as well. What&#8217;s the point of uploading your code to a public repository if you take measures to hide it from the repository?</p>
<p>Anyways, I&#8217;m soliciting ideas for paginating Google&#8217;s REST API results. Note: the <a href="http://www.seroundtable.com/archives/006996.html">SOAP API has been terminated</a>, so that avenue is closed.</p>
]]></content:encoded>
			<wfw:commentRss>http://s1n.dyndns.org/index.php/2009/10/04/falling-behind/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://s1n.dyndns.org/index.php/2009/10/04/falling-behind/</feedburner:origLink></item>
		<item>
		<title>Ampersand</title>
		<link>http://feedproxy.google.com/~r/zero-blog/~3/B7zKKSmrEJw/</link>
		<comments>http://s1n.dyndns.org/index.php/2009/09/09/ampersand/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 09:59:18 +0000</pubDate>
		<dc:creator>s1n</dc:creator>
				<category><![CDATA[01100011]]></category>
		<category><![CDATA[Meat Space]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[dallas.p6m]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://s1n.dyndns.org/?p=891</guid>
		<description><![CDATA[Today, only fRew and I ended up meeting for September Dallas.p6m meeting. Turns out several people forgot that today was in fact the Tuesday after Labor Day and not Monday. We mostly just sat and talked about miscellaneous software things. We discussed GPS, my Algorithms course, Parrot, PGE, and styling. Styling is the last thing [...]]]></description>
			<content:encoded><![CDATA[<p>Today, only <a href="http://blog.afoolishmanifesto.com/">fRew</a> and I ended up meeting for September Dallas.p6m meeting. Turns out several people forgot that today was in fact the Tuesday after Labor Day and not Monday. We mostly just sat and talked about miscellaneous software things. We discussed <a href="http://www.gps.gov/">GPS</a>, my Algorithms course, <a href="http://www.parrot.org">Parrot</a>, PGE, and styling. Styling is the last thing that we discussed and one that seemed semi-heated.</p>
<p>I discussed my reasoning for my styling quirks, which fRew insisted he would replace in a heartbeat. I&#8217;ve mostly been honing my preference for certain things by finding bugs using styles that seem to lead towards common mistakes. For example, I always place <code>if</code> statement parenthesis immediately after the &#8216;f&#8217; because you cannot have one without the other (well, you can have the boolean expression alone but it rarely makes sense unless it&#8217;s a return value). I tried to apply the same reasoning to why I put my braces at the end of the <code>if</code> line with a space between the &#8216;)&#8217; and the &#8216;{&#8216;. I do this because the block started by &#8216;{&#8216; can exist without <code>if</code> clause. I always keep the &#8216;{&#8216; on the same line so attempts to comment out the <code>if</code> clause will fail to compile as I&#8217;ve found and fixed too many bugs as a result of true laziness.</p>
<p>Now that may seem kinda wierd, but it&#8217;s 1) a mental seperation technique and 2) an attempt to reduce the number of standalone nested blocks (that can do odd things like cause variable scope issues).</p>
<p>Then we started discussing <a href="http://www.perlmonks.org/?node_id=428024">using ampersand, &#8216;&#038;&#8217;, to begin functions</a>. My reasoning is because I more often than not prefer to be as explicit as possible, and the &#8216;&#038;&#8217; let&#8217;s me do that. I failed to <a href="http://www.perlmonks.org/?node_id=357492">recall an example</a> that led me to preferring the use of ampersand, but I eventually found it. Basically, functions should look like function calls and not keywords, macros, or other environment lexicals. <code>&#038;foo($arg1, $arg2);</code> looks a bit hairy and dated (<a href="http://www.perlmonks.org/?node_id=29139">generally a perl4 way of doing things</a>), but it&#8217;s clear from the first character what is about to happen. My brain needs only to parse the first character to read the code with the right mindset. I am calling a user defined function (not a built-in), named &#8216;foo&#8217;, and passing 2 arguments. That is clear, readable, and will likely work for the forseeable future; if not, it&#8217;s still easy to find and correct.</p>
<p>On the other hand, <code>foo;</code> or <code>foo();</code> (under strict) is not necessarily clear. The first example is basically a bare-word and could be any number of things. It could be a symbol, a package, a string, or a function call. The <a href="http://perldoc.perl.org/perlfaq7.html#What%27s-the-difference-between-calling-a-function-as-%26foo-and-foo()%3f">arguments passed would be @_</a>, which requires more investigation. The second one looks like a subroutine call but I have to parse 5 characters and then grep around for a sub named foo within the current namespace (was it loaded elsewhere and exported to my namespace?). While both of these are more compact and concise, they also both require more work to figure out exactly what is happening.</p>
<p>Also, <code>foo($arg1, $arg2);</code> is more clear but not until I&#8217;ve read the minimum of 4 characters to I start to think it might be a function call. This does not parse and skim nearly as quickly, at least to me.</p>
<p>All of this <a href="http://use.perl.org/~schwern/journal/36704">skimmable code talk</a> (note: I don&#8217;t agree with Schwern, end-of-scope comments usually clutter code more than they help) may sound frivolous to those readers who deal with thousands of lines of code. It&#8217;s not something you can truely appreciate until you maintain code that weighs in with at least 9 digits (executable code only). I personally manage 250,000 lines and I am responsible for a product that is about 2 million lines (all 30 of our branches are about 2 million lines each).</p>
<p>In the end, I stick by my preference for ampersand function calls unless someone else can point out a better reason to ditch them.</p>
]]></content:encoded>
			<wfw:commentRss>http://s1n.dyndns.org/index.php/2009/09/09/ampersand/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://s1n.dyndns.org/index.php/2009/09/09/ampersand/</feedburner:origLink></item>
		<item>
		<title>Low Hanging Fruit</title>
		<link>http://feedproxy.google.com/~r/zero-blog/~3/NZMFOQqMnbA/</link>
		<comments>http://s1n.dyndns.org/index.php/2009/08/30/low-hanging-fruit/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 07:41:16 +0000</pubDate>
		<dc:creator>s1n</dc:creator>
				<category><![CDATA[01100011]]></category>
		<category><![CDATA[Meat Space]]></category>
		<category><![CDATA[dallas.p6m]]></category>
		<category><![CDATA[perl6]]></category>
		<category><![CDATA[rakudo]]></category>

		<guid isPermaLink="false">http://s1n.dyndns.org/?p=889</guid>
		<description><![CDATA[Today we held the first Perl 6 mini-hackathon. Ironically, there was another Perl 6 hackathon happening in California. A few problems cropped up but the end result was a positive experience. I&#8217;ve never been to or held such an event, so I wasn&#8217;t sure what to expect.
First, the location we chose, Borders changed their wifi [...]]]></description>
			<content:encoded><![CDATA[<p>Today we held the first <a href="http://s1n.dyndns.org/index.php/2009/08/13/perl-6-mini-hackathon/">Perl 6 mini-hackathon</a>. Ironically, there was <a href="http://www.asciiville.com/2009/08/preppin-for-the-perl-6-hackthon.html">another Perl 6 hackathon happening in California</a>. A few problems cropped up but the end result was a positive experience. I&#8217;ve never been to or held such an event, so I wasn&#8217;t sure what to expect.</p>
<p>First, the location we chose, Borders changed their wifi system. Since Seattle&#8217;s Best is owned by Starbucks, they switch to the <a href="https://hotspot.t-mobile.com">T-Mobile non-free service</a>. We ended up moving next door to Market Street, the location of our usual <a href="http://dallas.p6m.org">Perl 6 Mongers</a> meetings. Unfortunately, this location is much louder than Borders, but we made it work.</p>
<p>Then one of the attendees was unable to connect to the wireless network. We ended up spending about 30 minutes trying to help out but ended up having move on. Next time, I will make sure to bring Rakudo and Parrot on a flash drive.</p>
<p><a href="http://blog.afoolishmanifesto.com/">fRew</a> and I set up a fresh Rakudo build. I ran the spectest and subsequently, it crashed my machine. Yeah, it locked up my machine and I had to reboot it when I got home (remotely logged in to my desktop development system). I couldn&#8217;t find anything in my system&#8217;s logs and the test suite was run in parallel. It seemed to stop spitting out output while it was working on S05-named-chars.</p>
<p>Eventually, it was just <a href="http://www.pmichaud.com/">Patrick</a> and I. We came up with a system for labeling RT tickets that should be relatively quick fixes. First, you have to filter out tickets assigned to Jonathan; these are typically more difficult issues to fix. Then we decided that we would tag the tickets &#8220;LHF&#8221; to mean Low Hanging Fruit. For now, you can find &#8220;<a href="http://rt.perl.org/rt3//Public/Search/Simple.html?q=LHF">[LHF]</a>&#8221; in the subject but we will eventually have a tag created similar to the tests-needed tag.</p>
<p>All and all it was lots of fun. Next time, I will make sure to have an install CD or two, Rakudo and Parrot on a thumbdrive, and find a quieter location with wifi. Next time, we&#8217;ll hopefully be able to spend more time working on the LHF tickets.</p>
<p>The next event will be next month, two weeks after the Dallas.p6m meeting. The next Dallas.p6m meeting is slated for September 9th and the next Mini Hackathon is slated for September 26th. We need to setup our website and a calendar.</p>
]]></content:encoded>
			<wfw:commentRss>http://s1n.dyndns.org/index.php/2009/08/30/low-hanging-fruit/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://s1n.dyndns.org/index.php/2009/08/30/low-hanging-fruit/</feedburner:origLink></item>
		<item>
		<title>Semester Renewal</title>
		<link>http://feedproxy.google.com/~r/zero-blog/~3/tdqp-8SXAWE/</link>
		<comments>http://s1n.dyndns.org/index.php/2009/08/20/semester-renewal/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 08:27:11 +0000</pubDate>
		<dc:creator>s1n</dc:creator>
				<category><![CDATA[01100011]]></category>
		<category><![CDATA[Project Bootstrap]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[cpan]]></category>
		<category><![CDATA[markov]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[qual]]></category>

		<guid isPermaLink="false">http://s1n.dyndns.org/?p=883</guid>
		<description><![CDATA[Just after I had been through a bit of a posting slump due to some fading tuits, it would seem as if they have magically returned. This week brings the start of the Fall 2009 semester and I have seemingly sprung back to life. With the new semester comes new opportunities to use perl!
First, I [...]]]></description>
			<content:encoded><![CDATA[<p>Just after I had been through a bit of a posting slump due to some fading tuits, it would seem as if they have magically returned. This week brings the start of the Fall 2009 semester and I have seemingly sprung back to life. With the new semester comes new opportunities to use perl!</p>
<p>First, I wanted to mention the one bit of news that made my summer, maybe even the last 2 years, seem as if I <a href="http://s1n.dyndns.org/index.php/2007/12/15/storm-weathered/">haven&#8217;t been running in circles</a>. I noticed that my new department head at the university posted the <a href="http://www.utdallas.edu/~gupta/qexampolicy.txt">final new rules regarding the qualification exams</a>. The change is that there is a list of approved courses that will be offering the QE, passing any 3 is sufficient, and there is still no marginal grade. The last exam I took, Data / Text Mining in Bioinformatics, was not listed in the blessed course list. Turns out, the department would still accept the score, so I now only lack 1 remaining pass to be an official &#8220;<a href="http://www.utdallas.edu/dept/graddean/CAT2006/first40/6.Final_degree%20programs%20and%20policies(new).htm">phd candidate</a>&#8220;.</p>
<p>This semester I am taking the Design &#038; Analysis of Computer Algorithms course. The down side is this course tends to be theory-centric, so I won&#8217;t have many chances to flex my Perl muscles. There are <a href="http://search.cpan.org/search?query=Algorithm&#038;mode=all">tons of modules on CPAN</a> though that might help understanding the basics. There are plenty of graph, tree, and dynamic programming solutions available.</p>
<p>Interestingly enough, while sifting though those modules, I discovered a module of personal interest. I stumbled across the <a href="http://search.cpan.org/dist/Algorithm-Viterbi/">Algorithm::Viterbi</a> module. I have studied Markov models, Markov chains, and Hidden Markov models a bunch in the last 2 years. One algorithm that keeps showing up is the Viterbi algorithm. I&#8217;ll leave it as an exercise to the reader as to how this algorithm is used, but I will point out that <a href="http://en.wikipedia.org/wiki/Viterbi_algorithm">the Wikipedia page</a> has Python code. Ironically, &#8220;<a href="http://pycon.blogspot.com/2005/03/pythons-answer-to-cpan.html">Python&#8217;s answer to CPAN</a>&#8221; isn&#8217;t quite all it&#8217;s cracked up to be; it lacks any packages pertaining to &#8220;<a href="http://pypi.python.org/pypi?%3Aaction=search&#038;term=viterbi&#038;submit=search">viterbi</a>&#8221; and no generic <a href="http://pypi.python.org/pypi?%3Aaction=search&#038;term=markov&#038;submit=search">Markov</a> package.</p>
<p>Perl: Automatically tested, student approved.</p>
]]></content:encoded>
			<wfw:commentRss>http://s1n.dyndns.org/index.php/2009/08/20/semester-renewal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://s1n.dyndns.org/index.php/2009/08/20/semester-renewal/</feedburner:origLink></item>
		<item>
		<title>Perl 6 Mini-Hackathon</title>
		<link>http://feedproxy.google.com/~r/zero-blog/~3/jaFqR9CkOL8/</link>
		<comments>http://s1n.dyndns.org/index.php/2009/08/13/perl-6-mini-hackathon/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 08:53:39 +0000</pubDate>
		<dc:creator>s1n</dc:creator>
				<category><![CDATA[01100011]]></category>
		<category><![CDATA[Meat Space]]></category>
		<category><![CDATA[dallas.p6m]]></category>
		<category><![CDATA[hackathon]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[perl6]]></category>
		<category><![CDATA[rakudo]]></category>

		<guid isPermaLink="false">http://s1n.dyndns.org/?p=880</guid>
		<description><![CDATA[I have been postponing this week&#8217;s Perl post mostly because our monthly Perl 6 Mongers meeting was yesterday. I brought up and did some initial planning for a monthly Rakudo / Perl 6 mini hackathon. I have an outline of events but I want to discuss the Dallas.p6m meeting briefly first.
fRew was going to give [...]]]></description>
			<content:encoded><![CDATA[<p>I have been postponing this week&#8217;s Perl post mostly because our monthly Perl 6 Mongers meeting was yesterday. I brought up and did some initial planning for a monthly Rakudo / Perl 6 mini hackathon. I have an outline of events but I want to discuss the Dallas.p6m meeting briefly first.</p>
<p><a href="http://blog.afoolishmanifesto.com/">fRew</a> was going to give a lightning talk about Perl 6&#8217;s object model but had to postpone due to a lack of preparation. We are all getting to know each other well and the conversations covered the spectrum: from <a href="http://www.artima.com/weblogs/viewpost.jsp?thread=98196">Guido&#8217;s Simplification Of Choice</a> to <a href="http://en.wikibooks.org/wiki/Perl_6_Programming/Classes_And_Attributes">Perl 6&#8217;s attributes</a> and then finally to <a href="http://processing.org">processing.org</a>&#8217;s <a href="http://processingjs.org/">Javascript framework</a>.</p>
<p>Lastly, I brought up the idea of having monthly mini-hackathons. I thought it would be a great way to put <a href="http://www.pmichaud.com/2009/pres/oscon-rakudo/slides/start.html">Patrick&#8217;s talk</a> into practice. So the initial idea is to have a 2-hour hackathon two weeks after the Dallas.p6m (second Tuesday every month), which should be the last Saturday in the month. The first get-together will be focused on Patrick&#8217;s talk, with others expanding as people find new areas of interest. That means the first mini-hackathon is slated for August 29th and here&#8217;s what I have tenatively planned:</p>
<ol>
<li>Introductions</li>
<li>Getting and building Rakudo</li>
<li>Running Rakudo</li>
<li>Mailing Lists / Ecosystem</li>
<li>Understanding RT</li>
<li>Test Suite access and explanation</li>
<li>Setting</li>
</ol>
<p>We may or may not be able to cover all of that. Patrick seems confident that we will be able to cover these topics so I am fairly happy with the layout. There will be more details forthcoming about the venue and the time/date.</p>
<p>I&#8217;ve never been to or held an event like a mini-hackathon, so I&#8217;d love to hear suggestions.</p>
]]></content:encoded>
			<wfw:commentRss>http://s1n.dyndns.org/index.php/2009/08/13/perl-6-mini-hackathon/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://s1n.dyndns.org/index.php/2009/08/13/perl-6-mini-hackathon/</feedburner:origLink></item>
	</channel>
</rss>
