CINXE.COM

Irregular Expression: June 2013

<!DOCTYPE html> <html class='v2' dir='ltr' lang='en'> <head> <link href='https://www.blogger.com/static/v1/widgets/3566091532-css_bundle_v2.css' rel='stylesheet' type='text/css'/> <meta content='width=1100' name='viewport'/> <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/> <meta content='blogger' name='generator'/> <link href='http://blog.brentlaabs.com/favicon.ico' rel='icon' type='image/x-icon'/> <link href='http://blog.brentlaabs.com/2013/06/' rel='canonical'/> <link rel="alternate" type="application/atom+xml" title="Irregular Expression - Atom" href="http://blog.brentlaabs.com/feeds/posts/default" /> <link rel="alternate" type="application/rss+xml" title="Irregular Expression - RSS" href="http://blog.brentlaabs.com/feeds/posts/default?alt=rss" /> <link rel="service.post" type="application/atom+xml" title="Irregular Expression - Atom" href="https://draft.blogger.com/feeds/1163079349106481731/posts/default" /> <!--Can't find substitution for tag [blog.ieCssRetrofitLinks]--> <meta content='http://blog.brentlaabs.com/2013/06/' property='og:url'/> <meta content='Irregular Expression' property='og:title'/> <meta content='Brent Laabs on programming and culture' property='og:description'/> <title>Irregular Expression: June 2013</title> <style id='page-skin-1' type='text/css'><!-- /* ----------------------------------------------- Blogger Template Style Name: Watermark Designer: Blogger URL: www.blogger.com ----------------------------------------------- */ /* Use this with templates/1ktemplate-*.html */ /* Content ----------------------------------------------- */ body { font: normal normal 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #333333; background: #c0a154 url(https://resources.blogblog.com/blogblog/data/1kt/watermark/body_background_birds.png) repeat scroll top left; } html body .content-outer { min-width: 0; max-width: 100%; width: 100%; } .content-outer { font-size: 92%; } a:link { text-decoration:none; color: #cc3300; } a:visited { text-decoration:none; color: #993322; } a:hover { text-decoration:underline; color: #ff3300; } .body-fauxcolumns .cap-top { margin-top: 30px; background: transparent url(https://resources.blogblog.com/blogblog/data/1kt/watermark/body_overlay_birds.png) no-repeat scroll top right; height: 121px; } .content-inner { padding: 0; } /* Header ----------------------------------------------- */ .header-inner .Header .titlewrapper, .header-inner .Header .descriptionwrapper { padding-left: 20px; padding-right: 20px; } .Header h1 { font: normal normal 60px Georgia, Utopia, 'Palatino Linotype', Palatino, serif; color: #ffffff; text-shadow: 2px 2px rgba(0, 0, 0, .1); } .Header h1 a { color: #ffffff; } .Header .description { font-size: 140%; color: #997755; } /* Tabs ----------------------------------------------- */ .tabs-inner .section { margin: 0 20px; } .tabs-inner .PageList, .tabs-inner .LinkList, .tabs-inner .Labels { margin-left: -11px; margin-right: -11px; background-color: transparent; border-top: 0 solid #ffffff; border-bottom: 0 solid #ffffff; -moz-box-shadow: 0 0 0 rgba(0, 0, 0, .3); -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .3); -goog-ms-box-shadow: 0 0 0 rgba(0, 0, 0, .3); box-shadow: 0 0 0 rgba(0, 0, 0, .3); } .tabs-inner .PageList .widget-content, .tabs-inner .LinkList .widget-content, .tabs-inner .Labels .widget-content { margin: -3px -11px; background: transparent none no-repeat scroll right; } .tabs-inner .widget ul { padding: 2px 25px; max-height: 34px; background: transparent none no-repeat scroll left; } .tabs-inner .widget li { border: none; } .tabs-inner .widget li a { display: inline-block; padding: .25em 1em; font: normal normal 20px Georgia, Utopia, 'Palatino Linotype', Palatino, serif; color: #cc3300; border-right: 1px solid #c0a154; } .tabs-inner .widget li:first-child a { border-left: 1px solid #c0a154; } .tabs-inner .widget li.selected a, .tabs-inner .widget li a:hover { color: #000000; } /* Headings ----------------------------------------------- */ h2 { font: normal normal 20px Georgia, Utopia, 'Palatino Linotype', Palatino, serif; color: #000000; margin: 0 0 .5em; } h2.date-header { font: normal normal 16px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #997755; } /* Main ----------------------------------------------- */ .main-inner .column-center-inner, .main-inner .column-left-inner, .main-inner .column-right-inner { padding: 0 5px; } .main-outer { margin-top: 0; background: transparent none no-repeat scroll top left; } .main-inner { padding-top: 30px; } .main-cap-top { position: relative; } .main-cap-top .cap-right { position: absolute; height: 0; width: 100%; bottom: 0; background: transparent none repeat-x scroll bottom center; } .main-cap-top .cap-left { position: absolute; height: 245px; width: 280px; right: 0; bottom: 0; background: transparent none no-repeat scroll bottom left; } /* Posts ----------------------------------------------- */ .post-outer { padding: 15px 20px; margin: 0 0 25px; background: transparent url(https://resources.blogblog.com/blogblog/data/1kt/watermark/post_background_birds.png) repeat scroll top left; _background-image: none; border: dotted 1px #ccbb99; -moz-box-shadow: 0 0 0 rgba(0, 0, 0, .1); -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .1); -goog-ms-box-shadow: 0 0 0 rgba(0, 0, 0, .1); box-shadow: 0 0 0 rgba(0, 0, 0, .1); } h3.post-title { font: normal normal 30px Georgia, Utopia, 'Palatino Linotype', Palatino, serif; margin: 0; } .comments h4 { font: normal normal 30px Georgia, Utopia, 'Palatino Linotype', Palatino, serif; margin: 1em 0 0; } .post-body { font-size: 105%; line-height: 1.5; position: relative; } .post-header { margin: 0 0 1em; color: #997755; } .post-footer { margin: 10px 0 0; padding: 10px 0 0; color: #997755; border-top: dashed 1px #777777; } #blog-pager { font-size: 140% } #comments .comment-author { padding-top: 1.5em; border-top: dashed 1px #777777; background-position: 0 1.5em; } #comments .comment-author:first-child { padding-top: 0; border-top: none; } .avatar-image-container { margin: .2em 0 0; } /* Comments ----------------------------------------------- */ .comments .comments-content .icon.blog-author { background-repeat: no-repeat; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9sLFwMeCjjhcOMAAAD+SURBVDjLtZSvTgNBEIe/WRRnm3U8RC1neQdsm1zSBIU9VVF1FkUguQQsD9ITmD7ECZIJSE4OZo9stoVjC/zc7ky+zH9hXwVwDpTAWWLrgS3QAe8AZgaAJI5zYAmc8r0G4AHYHQKVwII8PZrZFsBFkeRCABYiMh9BRUhnSkPTNCtVXYXURi1FpBDgArj8QU1eVXUzfnjv7yP7kwu1mYrkWlU33vs1QNu2qU8pwN0UpKoqokjWwCztrMuBhEhmh8bD5UDqur75asbcX0BGUB9/HAMB+r32hznJgXy2v0sGLBcyAJ1EK3LFcbo1s91JeLwAbwGYu7TP/3ZGfnXYPgAVNngtqatUNgAAAABJRU5ErkJggg==); } .comments .comments-content .loadmore a { border-top: 1px solid #777777; border-bottom: 1px solid #777777; } .comments .continue { border-top: 2px solid #777777; } /* Widgets ----------------------------------------------- */ .widget ul, .widget #ArchiveList ul.flat { padding: 0; list-style: none; } .widget ul li, .widget #ArchiveList ul.flat li { padding: .35em 0; text-indent: 0; border-top: dashed 1px #777777; } .widget ul li:first-child, .widget #ArchiveList ul.flat li:first-child { border-top: none; } .widget .post-body ul { list-style: disc; } .widget .post-body ul li { border: none; } .widget .zippy { color: #777777; } .post-body img, .post-body .tr-caption-container, .Profile img, .Image img, .BlogList .item-thumbnail img { padding: 5px; background: #fff; -moz-box-shadow: 1px 1px 5px rgba(0, 0, 0, .5); -webkit-box-shadow: 1px 1px 5px rgba(0, 0, 0, .5); -goog-ms-box-shadow: 1px 1px 5px rgba(0, 0, 0, .5); box-shadow: 1px 1px 5px rgba(0, 0, 0, .5); } .post-body img, .post-body .tr-caption-container { padding: 8px; } .post-body .tr-caption-container { color: #333333; } .post-body .tr-caption-container img { padding: 0; background: transparent; border: none; -moz-box-shadow: 0 0 0 rgba(0, 0, 0, .1); -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .1); -goog-ms-box-shadow: 0 0 0 rgba(0, 0, 0, .1); box-shadow: 0 0 0 rgba(0, 0, 0, .1); } /* Footer ----------------------------------------------- */ .footer-outer { color:#ccbb99; background: #330000 url(https://resources.blogblog.com/blogblog/data/1kt/watermark/body_background_navigator.png) repeat scroll top left; } .footer-outer a { color: #ff7755; } .footer-outer a:visited { color: #dd5533; } .footer-outer a:hover { color: #ff9977; } .footer-outer .widget h2 { color: #eeddbb; } /* Mobile ----------------------------------------------- */ body.mobile { background-size: 100% auto; } .mobile .body-fauxcolumn-outer { background: transparent none repeat scroll top left; } html .mobile .mobile-date-outer { border-bottom: none; background: transparent url(https://resources.blogblog.com/blogblog/data/1kt/watermark/post_background_birds.png) repeat scroll top left; _background-image: none; margin-bottom: 10px; } .mobile .main-inner .date-outer { padding: 0; } .mobile .main-inner .date-header { margin: 10px; } .mobile .main-cap-top { z-index: -1; } .mobile .content-outer { font-size: 100%; } .mobile .post-outer { padding: 10px; } .mobile .main-cap-top .cap-left { background: transparent none no-repeat scroll bottom left; } .mobile .body-fauxcolumns .cap-top { margin: 0; } .mobile-link-button { background: transparent url(https://resources.blogblog.com/blogblog/data/1kt/watermark/post_background_birds.png) repeat scroll top left; } .mobile-link-button a:link, .mobile-link-button a:visited { color: #cc3300; } .mobile-index-date .date-header { color: #997755; } .mobile-index-contents { color: #333333; } .mobile .tabs-inner .section { margin: 0; } .mobile .tabs-inner .PageList { margin-left: 0; margin-right: 0; } .mobile .tabs-inner .PageList .widget-content { margin: 0; color: #000000; background: transparent url(https://resources.blogblog.com/blogblog/data/1kt/watermark/post_background_birds.png) repeat scroll top left; } .mobile .tabs-inner .PageList .widget-content .pagelist-arrow { border-left: 1px solid #c0a154; } .striped-table .odd { background-color: #DCCBA1; } --></style> <style id='template-skin-1' type='text/css'><!-- body { min-width: 960px; } .content-outer, .content-fauxcolumn-outer, .region-inner { min-width: 960px; max-width: 960px; _width: 960px; } .main-inner .columns { padding-left: 0px; padding-right: 310px; } .main-inner .fauxcolumn-center-outer { left: 0px; right: 310px; /* IE6 does not respect left and right together */ _width: expression(this.parentNode.offsetWidth - parseInt("0px") - parseInt("310px") + 'px'); } .main-inner .fauxcolumn-left-outer { width: 0px; } .main-inner .fauxcolumn-right-outer { width: 310px; } .main-inner .column-left-outer { width: 0px; right: 100%; margin-left: -0px; } .main-inner .column-right-outer { width: 310px; margin-right: -310px; } #layout { min-width: 0; } #layout .content-outer { min-width: 0; width: 800px; } #layout .region-inner { min-width: 0; width: auto; } body#layout div.add_widget { padding: 8px; } body#layout div.add_widget a { margin-left: 32px; } --></style> <link href='https://draft.blogger.com/dyn-css/authorization.css?targetBlogID=1163079349106481731&amp;zx=c92d9171-713d-414c-963f-50bec28b445b' media='none' onload='if(media!=&#39;all&#39;)media=&#39;all&#39;' rel='stylesheet'/><noscript><link href='https://draft.blogger.com/dyn-css/authorization.css?targetBlogID=1163079349106481731&amp;zx=c92d9171-713d-414c-963f-50bec28b445b' rel='stylesheet'/></noscript> <meta name='google-adsense-platform-account' content='ca-host-pub-1556223355139109'/> <meta name='google-adsense-platform-domain' content='blogspot.com'/> </head> <body class='loading variant-birds'> <div class='navbar section' id='navbar' name='Navbar'><div class='widget Navbar' data-version='1' id='Navbar1'><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://draft.blogger.com/navbar/1163079349106481731?origin\x3dhttp://blog.brentlaabs.com', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script><script type="text/javascript"> (function() { var script = document.createElement('script'); script.type = 'text/javascript'; script.src = '//pagead2.googlesyndication.com/pagead/js/google_top_exp.js'; var head = document.getElementsByTagName('head')[0]; if (head) { head.appendChild(script); }})(); </script> </div></div> <div class='body-fauxcolumns'> <div class='fauxcolumn-outer body-fauxcolumn-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </div> <div class='content'> <div class='content-fauxcolumns'> <div class='fauxcolumn-outer content-fauxcolumn-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </div> <div class='content-outer'> <div class='content-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left content-fauxborder-left'> <div class='fauxborder-right content-fauxborder-right'></div> <div class='content-inner'> <header> <div class='header-outer'> <div class='header-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left header-fauxborder-left'> <div class='fauxborder-right header-fauxborder-right'></div> <div class='region-inner header-inner'> <div class='header section' id='header' name='Header'><div class='widget Header' data-version='1' id='Header1'> <div id='header-inner'> <div class='titlewrapper'> <h1 class='title'> <a href='http://blog.brentlaabs.com/'> Irregular Expression </a> </h1> </div> <div class='descriptionwrapper'> <p class='description'><span>Brent Laabs on programming and culture</span></p> </div> </div> </div></div> </div> </div> <div class='header-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </header> <div class='tabs-outer'> <div class='tabs-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left tabs-fauxborder-left'> <div class='fauxborder-right tabs-fauxborder-right'></div> <div class='region-inner tabs-inner'> <div class='tabs no-items section' id='crosscol' name='Cross-Column'></div> <div class='tabs no-items section' id='crosscol-overflow' name='Cross-Column 2'></div> </div> </div> <div class='tabs-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <div class='main-outer'> <div class='main-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left main-fauxborder-left'> <div class='fauxborder-right main-fauxborder-right'></div> <div class='region-inner main-inner'> <div class='columns fauxcolumns'> <div class='fauxcolumn-outer fauxcolumn-center-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <div class='fauxcolumn-outer fauxcolumn-left-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <div class='fauxcolumn-outer fauxcolumn-right-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <!-- corrects IE6 width calculation --> <div class='columns-inner'> <div class='column-center-outer'> <div class='column-center-inner'> <div class='main section' id='main' name='Main'><div class='widget Blog' data-version='1' id='Blog1'> <div class='blog-posts hfeed'> <div class="date-outer"> <h2 class='date-header'><span>Saturday, June 22, 2013</span></h2> <div class="date-posts"> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='1163079349106481731' itemprop='blogId'/> <meta content='7087046172458304595' itemprop='postId'/> <a name='7087046172458304595'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='http://blog.brentlaabs.com/2013/06/camelia-at-age-13-perl-6-on-jvm-debuts.html'>Camelia at Age 13: Perl 6 on the JVM Debuts</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-7087046172458304595' itemprop='description articleBody'> Perl 6 is now thirteen years old.&nbsp; And she's very much a teenager in attitude, self-confident yet still growing up.&nbsp; This contrasts with Javascript, which emerged from Brendan Eich's head, fully-formed like Athena -- but that only shared the Zeus-sized headaches with everyone until JQuery came along.<br /> <br /> But Camelia, as she is fondly referred to by fans of Perl 6, is growing up fast.&nbsp; Both too fast, and not fast enough.&nbsp; To some of the community, the prospect of major changes to the language is scary.&nbsp; Perl 6 is trying all of these crazy new things -- invariant sigils, metaoperators, grammars. She's even doing subroutine signatures, because "all of her friends are doing it".<br /> <br /> They can't stay little children forever, you know.<br /> <br /> And teenagers are liable to do surprising things.&nbsp; So it was, that this week we announced Rakudo Perl 6 now <a href="https://github.com/rakudo/rakudo/blob/nom/docs/announce/2013.06.md">runs on the Java Virtual Machine</a> (JVM).&nbsp; It's not perfect yet, but 62% of the files in the spectest pass as of yesterday.&nbsp; Given the rate things are progressing, I'm sure it's already at a higher pass percent.<br /> <br /> And yet, I'm sure there is no small number of you whose first thought about Perl on the JVM was "Heresy!".<br /> <br /> There are certainly good reasons to support this point of view.&nbsp; Startup times are horrible at this early stage, still O(seconds), and much of that is JVM's overhead.&nbsp; It has well known security issues.&nbsp; And of course the major implementation is controlled by <span style="font-family: &quot;Courier New&quot;,Courier,monospace;">$corporation</span>, who just wants to make money off it.&nbsp; And why would we want to abandon open-source VMs?<br /> <br /> Still, there are plenty of good reasons for the port.&nbsp; One is that the JVM is ubiquitous, and many devices have a copy pre-installed.&nbsp; Most of Java's stability issues have been dealt with, and it serves Perl's competitors well enough through Jython and JRuby.&nbsp; And it is well-documented, with bazillions of libraries (more than fooilions, anyway).&nbsp; So we can finally address the longstanding desires of the community in things like sockets and threading, because we can tell the difference between our mistakes and those of the VM.<br /> <br /> Instead of thinking of Perl 5 as a "sister language", I like to think of it as Camelia's father instead.&nbsp; A father that might be kind of upset that she brought "that kind of language" into our house.&nbsp; But she has a mind of her own, and I'm afraid that this won't be the only boyfriend she'll be bringing home.&nbsp; There is a <a href="http://www.google-melange.com/gsoc/proposal/review/google/gsoc2013/pmurias/9002">GSoC grant</a> to build a Javascript backend to Rakudo.&nbsp; And <a href="https://github.com/sorear/niecza">Niecza Perl 6</a> already uses the .NET Runtime.<br /> <br /> However, Perl 6 is not abandoning open-source and C language implementations, either.&nbsp; The <a href="http://6guts.wordpress.com/2013/05/31/moarvm-a-virtual-machine-for-nqp-and-rakudo/">announcement of MoarVM</a> shows that Perl 6 developers plan to develop a lightweight VM specifically for NQP and Rakudo.&nbsp; C functions will be directly callable within Perl itself, with the <a href="https://github.com/jnthn/zavolaj/">NativeCall interface</a>. <br /> <br /> Now, if Parrot <a href="http://lists.parrot.org/pipermail/parrot-dev/2013-June/007489.html">fly off on its own course</a>, that's Parrot's call.&nbsp; You know how these teenage relationships go -- this could end up in a blow-up on <a href="http://www.reddit.com/r/perl">the quad</a>, or just as easily turn into hot makeup coding.&nbsp; What, you didn't think I was going to say something that would <a href="http://blog.schwern.net/2013/05/15/yapcna-2013-withdrawal/">violate the CoC</a>, did you?<br /> <br /> But Perl 6 is not done growing yet.&nbsp; Camelia, like other teenagers, cares about fashion and wishes she had better threads.&nbsp; And, once we get tuits, this is pretty high priority.&nbsp; Because any modern language needs to live in the multi-core reality.&nbsp; This is something that we can still design around,&nbsp; that may not have recieved the same care ten years ago.&nbsp; Many threading features are already baked into the language, like hyper operators and async blocks.<br /> <br /> So I view the debut of the JVM port as Rakudo's real d茅but, as with a debutante.&nbsp; A trecea帽era, if you will.&nbsp; I guess, given that she's 13, maybe it's a Bar Mitzvah -- except that she's not a boy, she's a butterfly.&nbsp; But this is a chance acknowledge Perl 6's presence in the language scene.&nbsp; Of course, these coming-of-age ceremonies don't mean the teenager is truly grown up yet.&nbsp; <br /> <br /> But grow up she will, and faster than some of you might like.&nbsp; Perl 6 is rebellious, and changes things that those in her father's Perl 5 community don't understand.&nbsp; But if you talk to the pumpkings, they sincerly hope that Camelia doesn't turn out exactly like her father.<br /> <br /> After all, do we want keep the ithreads model?&nbsp; Do we want to modules that dig into the compiler internals like XS does?&nbsp; Perl 5 isn't perfect, we are just accustomed to its particular idiosyncrasies.<br /> <br /> But for all that Perl 6 is different, she still loves her father.&nbsp; We still have sigils, classes, @_ in subs (if you still want it), P5-style regexes, modules, and TIMTOWTDI.&nbsp; It's still Perl.&nbsp; Moreover, there are at least two efforts to run Perl 5 code in Perl 6 -- the <a href="https://github.com/rakudo-p5/v5">v5 grammar/compiler</a> in Perl 6, and access to libperl from MoarVM.&nbsp; So the sky isn't falling on compatibility.<br /> <br /> Nor is the other extreme true: Perl 6 development is in fact moving forward at a fast pace.&nbsp; We know that Perl 6 is late.&nbsp; Very late.&nbsp; So late, in fact, that it's her father that's going to <a href="http://shadow.cat/blog/matt-s-trout/pumpkin-perl-breakdown/">turn into a Pumpkin</a>.&nbsp; But when Perl 6 finally comes of age -- sooner than you think -- it will be something that the Perl community will be proud of.<br /> <br /> And I apologize in advance for anything Camelia does in her bratty teenage years.<br /> <br /> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://draft.blogger.com/profile/17518100165641296059' itemprop='url'/> <a class='g-profile' href='https://draft.blogger.com/profile/17518100165641296059' rel='author' title='author profile'> <span itemprop='name'>Brent Laabs</span> </a> </span> </span> <span class='post-timestamp'> at <meta content='http://blog.brentlaabs.com/2013/06/camelia-at-age-13-perl-6-on-jvm-debuts.html' itemprop='url'/> <a class='timestamp-link' href='http://blog.brentlaabs.com/2013/06/camelia-at-age-13-perl-6-on-jvm-debuts.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2013-06-22T01:23:00-07:00'>1:23&#8239;AM</abbr></a> </span> <span class='post-comment-link'> <a class='comment-link' href='http://blog.brentlaabs.com/2013/06/camelia-at-age-13-perl-6-on-jvm-debuts.html#comment-form' onclick=''> 2 comments: </a> </span> <span class='post-icons'> <span class='item-control blog-admin pid-758962430'> <a href='https://draft.blogger.com/post-edit.g?blogID=1163079349106481731&postID=7087046172458304595&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> Labels: <a href='http://blog.brentlaabs.com/search/label/camelia' rel='tag'>camelia</a>, <a href='http://blog.brentlaabs.com/search/label/perl' rel='tag'>perl</a>, <a href='http://blog.brentlaabs.com/search/label/perl6' rel='tag'>perl6</a> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> </div></div> <div class="date-outer"> <h2 class='date-header'><span>Thursday, June 6, 2013</span></h2> <div class="date-posts"> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='1163079349106481731' itemprop='blogId'/> <meta content='5025265846367493482' itemprop='postId'/> <a name='5025265846367493482'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='http://blog.brentlaabs.com/2013/06/thanking-perl-community-for-awesome-yapc.html'>Thanking the Perl Community for an Awesome YAPC</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-5025265846367493482' itemprop='description articleBody'> My first time at <a href="http://yapcna.org/">YAPC::NA</a> was too incredible for words. That said, because this is a blog, I'm going to have to put it in words anyway.<br /> <br /> So, about a month ago, I didn't even know that I was even going to YAPC.&nbsp; I was just talking to raiph++ in an IRC back channel, when he asked me if I was going to the conference.&nbsp; I said that it would be fun, but I didn't really have money to go.&nbsp; Being unemployed means lots of free time for hacking, but not so much free money for going places.<br /> <br /> Well, raiph told diakopter++, who asked if I could be willing to go, if he found funds.&nbsp; I responded, "Of course, if you think it's possible."&nbsp; I soon went to sleep, and twelve hours later, I had a plane ticket to Austin in my inbox courtesy of The Perl Foundation.&nbsp;&nbsp; So just like <a href="http://blogs.perl.org/users/peter_rabbitson/2013/05/on-the-awesomeness-of-the-perl-community.html">Peter Rabbitson's case</a>, the Perl community eagerly gave me a chance to attend.&nbsp; So thank you to all 440 attendees, and all of the sponsors for your own personal contribution to my attendance.&nbsp; Even though I'm new, you all gave a me a chance to participate in the community, and for that I am grateful.<br /> <br /> And what a community it is.&nbsp; I've long known that Perl programmers were a little strange.&nbsp; Naturally, I fit right in.<br /> <br /> The conference itself had quite a fun and informative series of talks.&nbsp; More often than not, I had two or more that I wanted to attend at the same time.&nbsp; For the most part, I stuck to the Perl 6 "track", where most of my work has been so far.&nbsp; After all, it's not often that so many of the European contingent make a trip to our humble continent, so I was eager to spend time with them.<br /> <br /> No one warned me that jnthn++ has a tendency to spring wild new features on us at YAPCs.&nbsp; <a href="http://www.yapcna.org/yn2013/talk/4657">Reversible grammars</a>, seriously?!&nbsp; I'm still trying to wrap my head around that one.&nbsp; The announcement of <a href="https://github.com/moarvm/moarvm">MoarVM</a> was equally exciting, as it offers us a chance to start fresh with everything we learned about Perl 6 and virtual machines in the last five years.<br /> <br /> So I have to say diakopter++ once again.&nbsp; Besides introducing Moar in his talk, Matthew Wilson was constantly busy behind the scenes, making sure that everything ran smoothly the entire conference.&nbsp; I think the man must be buying tuits on the black market.<br /> <br /> YAPC also helped immensely in my hunt for a job.&nbsp; The job fair brought me several contacts, and the talks helped me learn which skills I'll really need to learn in those jobs.&nbsp; Person-to-person contact offers so much more in truly understanding the state of the language, and of what projects are of the greatest use right now.<br /> <br /> Truly, Perl's community is it's greatest strength.&nbsp; <br /> <br /> It's the community that keeps Perl vital.&nbsp; After seeing YAPC for myself, the whole "Perl is Dead" meme seems entirely baseless.&nbsp; Conference attendance was up 19% over last year, which was the previous record high.&nbsp; Perl feels like a growing language, with lots of experiments in how to revitalize the now 25-year-old syntax with p2, moe, and Perl 6.<br /> <br /> The community keeps Perl relevant.&nbsp; While it may not be the sole alternative to bash scripts like it once was, it is used for enterprise and homebrew projects alike, from the stock exchange to the surface of Mars.&nbsp; Projects like DBIx, Moose, and Dancer provide modern frameworks to acomplish more with less work.<br /> <br /> The community keeps Perl open.&nbsp; No one seemed to be afraid to say what they felt, on CGI.pm or anything else, but everyone remained civil.&nbsp; <a href="http://shadow.cat/blog/matt-s-trout/hwppna-2013/">Hallway++</a> is a great social hack to get everyone to feel comfortable talking to each other.&nbsp; So when I found myself sitting across from TimToady, instead of being intimidated as a newbie, I had a great conversation with him about supervolcanoes and nonverbal Japanese language.<br /> <br /> And the community really wants <i>all</i> of the projects to succeed.&nbsp; I spent a lot of time at non-profit and political events in the past, where we were all theoretically working for a common cause.&nbsp; And yet scheming, conflict, and political maneuvering were inevitable.&nbsp; But in Perl, where we actually have multiple implementations and modules competing for mindshare and tuits, people cheer for everything to succeed.&nbsp; No one fights each other or rages against $language_of_the_week stealing our users, for the real enemy is the lack of tuits.<br /> <br /> I overheard this at dinner last night, from a fellow first-time attendee:<br /> <blockquote> "I'm just happy that the two of you liked my work." -- vanstyn</blockquote> Although he was talking about DBIx, I think that captures the spirit of conference as a whole.&nbsp; All of us here -- from the n00bs to the pumpkings -- want to share our work and make something useful for others.&nbsp; It's not an organization where we wait for pronouncements from on high, but one where users create endless variations and share them.&nbsp; Not an organization so much as a family.<br /> <br /> During TimToady's epistle/speech to the community, he said something like:<br /> <blockquote class="tr_bq"> "We have faith, hope, and love, but the most <i>awesome</i> of these is love." -- Larry Wall</blockquote> A line like this might seem a bit hokey out of context, but it was actually moving when I heard it.&nbsp; We have faith that we can use Perl to solve our problems.&nbsp; We have hope that Perl 5 and 6 will continue to get better. And we love Perl, unconditionally, despite all of her flaws.&nbsp; And as Wil Wheaton says <a href="http://www.youtube.com/watch?feature=player_embedded&amp;v=H_BtmV4JRSc">about us geeks</a>, we just want to love our special thing the best we can, and go the extra mile to share it with others.<br /> <br /> I just want to say that I love the Perl community right back.&nbsp; You went out of your way to include me and all the other newcomers.&nbsp; You all gave me all a chance to learn, play, and code with you -- and to be part of your community -- and I am so glad you did. <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://draft.blogger.com/profile/17518100165641296059' itemprop='url'/> <a class='g-profile' href='https://draft.blogger.com/profile/17518100165641296059' rel='author' title='author profile'> <span itemprop='name'>Brent Laabs</span> </a> </span> </span> <span class='post-timestamp'> at <meta content='http://blog.brentlaabs.com/2013/06/thanking-perl-community-for-awesome-yapc.html' itemprop='url'/> <a class='timestamp-link' href='http://blog.brentlaabs.com/2013/06/thanking-perl-community-for-awesome-yapc.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2013-06-06T09:37:00-07:00'>9:37&#8239;AM</abbr></a> </span> <span class='post-comment-link'> <a class='comment-link' href='http://blog.brentlaabs.com/2013/06/thanking-perl-community-for-awesome-yapc.html#comment-form' onclick=''> 1 comment: </a> </span> <span class='post-icons'> <span class='item-control blog-admin pid-758962430'> <a href='https://draft.blogger.com/post-edit.g?blogID=1163079349106481731&postID=5025265846367493482&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> Labels: <a href='http://blog.brentlaabs.com/search/label/perl' rel='tag'>perl</a>, <a href='http://blog.brentlaabs.com/search/label/perl%20community' rel='tag'>perl community</a>, <a href='http://blog.brentlaabs.com/search/label/perl6' rel='tag'>perl6</a>, <a href='http://blog.brentlaabs.com/search/label/programming' rel='tag'>programming</a>, <a href='http://blog.brentlaabs.com/search/label/yapc' rel='tag'>yapc</a>, <a href='http://blog.brentlaabs.com/search/label/yapcna' rel='tag'>yapcna</a> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> </div></div> </div> <div class='blog-pager' id='blog-pager'> <span id='blog-pager-newer-link'> <a class='blog-pager-newer-link' href='http://blog.brentlaabs.com/search?updated-max=2017-01-02T16:24:00-08:00&max-results=7&reverse-paginate=true' id='Blog1_blog-pager-newer-link' title='Newer Posts'>Newer Posts</a> </span> <span id='blog-pager-older-link'> <a class='blog-pager-older-link' href='http://blog.brentlaabs.com/search?updated-max=2013-06-06T09:37:00-07:00&max-results=7' id='Blog1_blog-pager-older-link' title='Older Posts'>Older Posts</a> </span> <a class='home-link' href='http://blog.brentlaabs.com/'>Home</a> </div> <div class='clear'></div> <div class='blog-feeds'> <div class='feed-links'> Subscribe to: <a class='feed-link' href='http://blog.brentlaabs.com/feeds/posts/default' target='_blank' type='application/atom+xml'>Posts (Atom)</a> </div> </div> </div></div> </div> </div> <div class='column-left-outer'> <div class='column-left-inner'> <aside> </aside> </div> </div> <div class='column-right-outer'> <div class='column-right-inner'> <aside> <div class='sidebar section' id='sidebar-right-1'><div class='widget BlogArchive' data-version='1' id='BlogArchive1'> <h2>Blog Archive</h2> <div class='widget-content'> <div id='ArchiveList'> <div id='BlogArchive1_ArchiveList'> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2018/'> 2018 </a> <span class='post-count' dir='ltr'>(1)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2018/01/'> January </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2017/'> 2017 </a> <span class='post-count' dir='ltr'>(1)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2017/01/'> January </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2015/'> 2015 </a> <span class='post-count' dir='ltr'>(2)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2015/11/'> November </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2015/05/'> May </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2014/'> 2014 </a> <span class='post-count' dir='ltr'>(2)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2014/02/'> February </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2014/01/'> January </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate expanded'> <a class='toggle' href='javascript:void(0)'> <span class='zippy toggle-open'> &#9660;&#160; </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2013/'> 2013 </a> <span class='post-count' dir='ltr'>(10)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2013/12/'> December </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2013/07/'> July </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate expanded'> <a class='toggle' href='javascript:void(0)'> <span class='zippy toggle-open'> &#9660;&#160; </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2013/06/'> June </a> <span class='post-count' dir='ltr'>(2)</span> <ul class='posts'> <li><a href='http://blog.brentlaabs.com/2013/06/camelia-at-age-13-perl-6-on-jvm-debuts.html'>Camelia at Age 13: Perl 6 on the JVM Debuts</a></li> <li><a href='http://blog.brentlaabs.com/2013/06/thanking-perl-community-for-awesome-yapc.html'>Thanking the Perl Community for an Awesome YAPC</a></li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2013/05/'> May </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2013/04/'> April </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> </li> </ul> </div> </div> <div class='clear'></div> </div> </div><div class='widget Profile' data-version='1' id='Profile1'> <h2>About Me</h2> <div class='widget-content'> <dl class='profile-datablock'> <dt class='profile-data'> <a class='profile-name-link g-profile' href='https://draft.blogger.com/profile/17518100165641296059' rel='author' style='background-image: url(//draft.blogger.com/img/logo-16.png);'> Brent Laabs </a> </dt> <dd class='profile-data'>Ventura, California, United States</dd> <dd class='profile-textblock'>Programmer, writer, gamer, analyst, anime watcher, and wiki editor.</dd> </dl> <a class='profile-link' href='https://draft.blogger.com/profile/17518100165641296059' rel='author'>View my complete profile</a> <div class='clear'></div> </div> </div></div> </aside> </div> </div> </div> <div style='clear: both'></div> <!-- columns --> </div> <!-- main --> </div> </div> <div class='main-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <footer> <div class='footer-outer'> <div class='footer-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left footer-fauxborder-left'> <div class='fauxborder-right footer-fauxborder-right'></div> <div class='region-inner footer-inner'> <div class='foot no-items section' id='footer-1'></div> <table border='0' cellpadding='0' cellspacing='0' class='section-columns columns-2'> <tbody> <tr> <td class='first columns-cell'> <div class='foot no-items section' id='footer-2-1'></div> </td> <td class='columns-cell'> <div class='foot no-items section' id='footer-2-2'></div> </td> </tr> </tbody> </table> <!-- outside of the include in order to lock Attribution widget --> <div class='foot section' id='footer-3' name='Footer'><div class='widget Attribution' data-version='1' id='Attribution1'> <div class='widget-content' style='text-align: center;'> Watermark theme. Powered by <a href='https://draft.blogger.com' target='_blank'>Blogger</a>. </div> <div class='clear'></div> </div></div> </div> </div> <div class='footer-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </footer> <!-- content --> </div> </div> <div class='content-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </div> <script type='text/javascript'> window.setTimeout(function() { document.body.className = document.body.className.replace('loading', ''); }, 10); </script> <script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/2538535903-widgets.js"></script> <script type='text/javascript'> window['__wavt'] = 'AOuZoY6u6C3QVVSK_kESuDGZ6e8vLd3b6g:1744308355355';_WidgetManager._Init('//draft.blogger.com/rearrange?blogID\x3d1163079349106481731','//blog.brentlaabs.com/2013/06/','1163079349106481731'); _WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '1163079349106481731', 'title': 'Irregular Expression', 'url': 'http://blog.brentlaabs.com/2013/06/', 'canonicalUrl': 'http://blog.brentlaabs.com/2013/06/', 'homepageUrl': 'http://blog.brentlaabs.com/', 'searchUrl': 'http://blog.brentlaabs.com/search', 'canonicalHomepageUrl': 'http://blog.brentlaabs.com/', 'blogspotFaviconUrl': 'http://blog.brentlaabs.com/favicon.ico', 'bloggerUrl': 'https://draft.blogger.com', 'hasCustomDomain': true, 'httpsEnabled': false, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': '', 'encoding': 'UTF-8', 'locale': 'en', 'localeUnderscoreDelimited': 'en', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': true, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Irregular Expression - Atom\x22 href\x3d\x22http://blog.brentlaabs.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Irregular Expression - RSS\x22 href\x3d\x22http://blog.brentlaabs.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Irregular Expression - Atom\x22 href\x3d\x22https://draft.blogger.com/feeds/1163079349106481731/posts/default\x22 /\x3e\n', 'meTag': '', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': false, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/3d05552398782a47', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': 'Share to X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'archive', 'pageName': 'June 2013', 'pageTitle': 'Irregular Expression: June 2013'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard!', 'ok': 'Ok', 'postLink': 'Post Link'}}, {'name': 'template', 'data': {'name': 'Watermark', 'localizedName': 'Watermark', 'isResponsive': false, 'isAlternateRendering': false, 'isCustom': false, 'variant': 'birds', 'variantId': 'birds'}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Irregular Expression', 'description': 'Brent Laabs on programming and culture', 'url': 'http://blog.brentlaabs.com/2013/06/', 'type': 'feed', 'isSingleItem': false, 'isMultipleItems': true, 'isError': false, 'isPage': false, 'isPost': false, 'isHomepage': false, 'isArchive': true, 'isLabelSearch': false, 'archive': {'year': 2013, 'month': 6, 'rangeMessage': 'Showing posts from June, 2013'}}}]); _WidgetManager._RegisterWidget('_NavbarView', new _WidgetInfo('Navbar1', 'navbar', document.getElementById('Navbar1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'lightboxEnabled': true, 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/3337823330-lbx.js', 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/3681588378-lightbox_bundle.css'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sidebar-right-1', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': 'Loading\x26hellip;'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_ProfileView', new _WidgetInfo('Profile1', 'sidebar-right-1', document.getElementById('Profile1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_AttributionView', new _WidgetInfo('Attribution1', 'footer-3', document.getElementById('Attribution1'), {}, 'displayModeFull')); </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10