Skip to content
Newer
Older
100644 569 lines (440 sloc) 19.2 KB
de1dec9 @masak initial commit
authored Sep 12, 2010
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2 "http://www.w3.org/TR/html4/strict.dtd">
3 <html>
4 <head>
5 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6 <link rel="shortcut icon" href="//use.perl.org/favicon.ico">
7
8 <title>Writing a Perl 6 blogging app in 90 minutes</title>
9
10 <link rel="stylesheet" type="text/css" media="screen, projection" href="//images.use.perl.org/base.css?T_2_5_0_235">
11 <link rel="stylesheet" type="text/css" media="screen, projection" href="//images.use.perl.org/comments.css?T_2_5_0_235">
12 <link rel="stylesheet" type="text/css" media="screen, projection" href="//images.use.perl.org/useperl.css?T_2_5_0_235">
13 <link rel="stylesheet" type="text/css" media="print" href="//images.use.perl.org/print.css?T_2_5_0_235">
14 <link rel="stylesheet" type="text/css" media="handheld" href="//images.use.perl.org/handheld.css?T_2_5_0_235">
15
16 <script src="//images.use.perl.org/jquery/jquery-1.2.6.js?T_2_5_0_235" type="text/javascript"></script>
17 <script src="//images.use.perl.org/jquery/jquery.metadata.js?T_2_5_0_235" type="text/javascript"></script>
18 <script src="//images.use.perl.org/slash.util.js?T_2_5_0_235" type="text/javascript"></script>
19 <script src="//images.use.perl.org/jquery/jquery.slashdot.js?T_2_5_0_235" type="text/javascript"></script>
20 <script src="//images.use.perl.org/yui/yahoo.js?T_2_5_0_235" type="text/javascript"></script>
21 <script src="//images.use.perl.org/yui/dom.js?T_2_5_0_235" type="text/javascript"></script>
22 <script src="//images.use.perl.org/yui/event.js?T_2_5_0_235" type="text/javascript"></script>
23 <script src="//images.use.perl.org/yui/dragdrop.js?T_2_5_0_235" type="text/javascript"></script>
24 <script src="//images.use.perl.org/yui/animation.js?T_2_5_0_235" type="text/javascript"></script>
25 <script src="//images.use.perl.org/yui/calendar.js?T_2_5_0_235" type="text/javascript"></script>
26 <script src="//images.use.perl.org/sd_calendar.js?T_2_5_0_235" type="text/javascript"></script>
27 <script src="//images.use.perl.org/slash.article-info.js?T_2_5_0_235" type="text/javascript"></script>
28 <script src="//images.use.perl.org/tag-ui.js?T_2_5_0_235" type="text/javascript"></script>
29 <script src="//images.use.perl.org/common.js?T_2_5_0_235" type="text/javascript"></script>
30
31 <!-- start template: ID 121, header;misc;default -->
32
33 <link rel="top" title="All the Perl that's Practical to Extract and Report" href="//use.perl.org/" >
34 <link rel="search" title="Search use Perl" href="//use.perl.org/search.pl">
35 <link rel="alternate" title="use Perl RSS" href="//use.perl.org/index.rss" type="application/rss+xml">
36 </head>
37 <body class="useperlorg">
38 <div id="top_parent"></div>
39
40 <div id="jump">
41 <a href="#main-articles">Stories</a>
42 <br>
43 <a href="#blocks">Slash Boxes</a>
44 <br>
45 <a href="#comments">Comments</a>
46 </div>
47 <div class="ad1">
48
49 </div>
50 <div id="frame">
51
52 <!-- UsePerl Ad Start -->
53 <div class="ad1"><!-- ad position 1 -->
54 <div id="fad1" style="text-align:center">
55 <!-- DoubleClick Ad Tag 1 -->
56 <script type="text/javascript">
57 dfp_ord=Math.random()*10000000000000000;
58 dfp_tile = 1;
59
60 document.write('<script type="text/javascript" src="http://ad.doubleclick.net/adj/ostg.useperl/mainpage_p1_leader;pg=index;logged_in=0;tile='+dfp_tile+';ord='+dfp_ord+'?"><\/script>');
61 dfp_tile++;
62 </script>
63 </div>
64 <!-- End DoubleClick Ad Tag 1 --></div>
65 <!-- UsePerl Ad End -->
66
67 <div id="topnav">
68 <div id="logo">
69 <h1>
70 <a href="//use.perl.org">use Perl</a>
71 </h1>
72 </div>
73 <div class="search">
74 <form method="get" action="//use.perl.org/search.pl">
75 <fieldset>
76 <legend></legend>
77 <label>Search <strong>use Perl</strong></label>
78 <input type="text" name="query" value="" size="20">
79 <input type="submit" value="Go" class="button">
80 </fieldset>
81 </form>
82 </div>
83 </div>
84 <div id="slogan">
85 <h2>
86 All the Perl that's Practical to Extract and Report
87 </h2>
88 </div>
89 <div id="commentsnav">
90 <div id="links">
91
92
93 <!-- start template: ID 474, sidebox;misc;default -->
94
95 <div class="block">
96 <div class="title" id="navigation-title">
97 <h4>
98 Navigation
99 </h4>
100 </div>
101 <div class="content" id="navigation-content">
102 <ul>
103 <li class="begin">
104 <a href="//use.perl.org/faq.shtml">FAQ</a>
105 </li>
106 <li>
107 <a href="//use.perl.org/about.shtml">About</a>
108 </li>
109 <li>
110 <a href="//use.perl.org/submit.pl">Submit Story</a>
111 </li>
112 <li>
113 <a href="//use.perl.org/search.pl">Older Stories</a>
114 </li>
115 <li>
116 <a href="//use.perl.org/topics.shtml">Topics</a>
117 </li>
118 <li>
119 <a href="//use.perl.org/pollBooth.pl">Polls</a>
120 </li>
121 <li>
122 <a href="//use.perl.org/journal.pl">Journals</a>
123 </li>
124 <li>
125 <a href="//use.perl.org/authors.pl">Authors</a>
126 </li>
127 <li>
128 <a href="//use.perl.org/modulelist/">New Modules</a>
129 </li>
130 <li>
131 <a href="//use.perl.org/users.pl?op=edithome">Preferences</a>
132
133 </li>
134 </ul>
135 </div>
136 </div>
137
138 <!-- end template: ID 474, sidebox;misc;default -->
139
140
141 </div>
142 </div>
143 <div id="contents">
144
145 <div id="comments">
146
147 <!-- end template: ID 121, header;misc;default -->
148
149
150
151 <!-- start template: ID 159, printCommentsMain;misc;default -->
152
153 <a name="acomments"></a>
154 <div class="commentwrap" id="commentwrap">
155
156 <div class="commentBox" style="font-size: 120%">
157 <div>
158 <span class="escape-link"><a href="//use.perl.org/~masak/journal/38946" title="Back to Article - Writing a Perl 6 blogging app in 90 minutes">Writing a Perl 6 blogging app in 90 minutes</a></span>
159 <span class="commentBoxLinks"><a href="#" onclick="D2.ajaxFetchComments(0,1); return false"><span id="more_comments_num_d"></span> More</a> |
160
161 <a href="//use.perl.org/login.pl" onclick="show_login_box(); return false">Login</a>
162
163
164
165 | <a href="//use.perl.org/comments.pl?sid=42945&amp;op=reply&amp;threshold=0&amp;commentsort=0&amp;mode=thread" onclick="D2.replyTo(0); return false;">Reply</a></span>
166 </div>
167 </div>
168
169 <div class="commentBoxForm" id="commentControlBox">
170 <div></div>
171 <div class="commentBox">
172 <small>
173 <b>The Fine Print:</b> The following comments are owned by whoever posted them. We are not responsible for them in any way.
174 </small>
175 <noscript><br><small>Without JavaScript enabled, you might want to
176 use <a href="//use.perl.org/comments.pl?sid=42945&amp;threshold=0&amp;commentsort=0&amp;mode=thread&amp;no_d2=1">the classic discussion system</a> instead. If you <a href="//use.perl.org/login.pl">login</a>, you can remember this preference.
177 </small></noscript>
178 </div>
179 </div>
180
181 <div id="d2out" class="horizontal">
182 <div id="d2act" class="hide">
183 <div class="loki" id="gods">
184 <div class="block">
185 <div class="title">
186
187 <h4>
188
189 <span class="h-inline">
190 <a href="//use.perl.org/~masak/journal/38946" title="Back to Article - Writing a Perl 6 blogging app in 90 minutes">Writing a Perl 6 blogging app in 90 minutes</a></span>
191 <span class="titlecount"><a href="//use.perl.org/~masak/journal/38946#topcomment" title="Back to Top Comment - Writing a Perl 6 blogging app in 90 minutes"><span id="titlecountnum">2</span>&nbsp;Comments</a></span>
192
193 <span class="ccw-header-links"><a href="#" onclick="D2.ajaxFetchComments(0,1); return false"><span id="more_comments_num_b"></span> More</a> |
194
195 <a href="//use.perl.org/login.pl" onclick="show_login_box(); return false">Login</a>
196
197
198
199 | <a href="//use.perl.org/comments.pl?sid=42945&amp;op=reply&amp;threshold=0&amp;commentsort=0&amp;mode=thread" onclick="D2.replyTo(0); return false;">Reply</a></span>
200 <span id="d2toggle" title="Toggle window location" onclick="D2.toggleDisplayOptions()" class="close">/</span>
201 </h4>
202 </div>
203 </div>
204 <script type="text/javascript">
205 gCommentControlWidget = null;
206
207 YAHOO.slashdot.ThresholdApp = function() {
208 return {
209 init: function() {
210 gCommentControlWidget = new YAHOO.slashdot.ThresholdWidget('X');
211 gCommentControlWidget.setTHT(D2.user_threshold(), D2.user_highlightthresh());
212 D2.updateTotals();
213 }
214 };
215 }();
216
217 YAHOO.util.Event.addListener(window, "load", YAHOO.slashdot.ThresholdApp.init);
218 </script>
219 <div id="bones">
220 <div id="ccw">
221 <div id="ccw-body" class="ccw-core">
222 <div id="ccw-panel-container" class="ccw-core">
223 <div id="ccw-full-panel" class="ccw-panel">
224 <div class="ccw-panel-border"></div>
225 <div id="ccw-full-count-pos" class="ccw-core-pos ccw-count-pos">
226 <span id="ccw-full-count-text" class="ccw-count-text"><span id="currentFull"></span><span id="ccw-full-phrase">&nbsp;Full</span></span>
227 </div>
228 </div>
229 <div id="ccw-abbr-panel" class="ccw-panel">
230 <div class="ccw-panel-border"></div>
231 <div id="ccw-abbr-count-pos" class="ccw-core-pos ccw-count-pos">
232 <span id="ccw-abbr-count-text" class="ccw-count-text"><span id="currentOneline"></span><span id="ccw-abbr-phrase">&nbsp;Abbreviated</span></span>
233 </div>
234 </div>
235 <div id="ccw-hide-panel" class="ccw-panel">
236 <div id="ccw-hide-count-pos" class="ccw-core-pos ccw-count-pos">
237 <span id="ccw-hide-count-text" class="ccw-count-text"><span id="currentHidden"></span><span id="ccw-hide-phrase">&nbsp;Hidden</span></span>
238 </div>
239 </div>
240 </div>
241
242 <div id="ccw-control" class="ccw-core">
243 <div id="ccw-centering-rail" class="ccw-core">
244 <div id="ccw-hide-bar-pos" class="ccw-core-pos">
245 <div id="ccw-hide-bar" class="ccw-bar">
246 <div id="ccw-hide-bar-tab" class="ccw-bar-tab"></div>
247 <div id="ccw-hide-bar-upzone" class="ccw-upzone" onclick="gCommentControlWidget.stepTHT(HIDE_BAR, +1)"></div>
248 <div id="ccw-hide-bar-downzone" class="ccw-downzone" onclick="gCommentControlWidget.stepTHT(HIDE_BAR, -1)"></div>
249 </div>
250 </div>
251 <div id="ccw-abbr-bar-pos" class="ccw-core-pos">
252 <div id="ccw-abbr-bar" class="ccw-bar">
253 <div id="ccw-abbr-bar-tab" class="ccw-bar-tab"></div>
254 <div id="ccw-abbr-bar-upzone" class="ccw-upzone" onclick="gCommentControlWidget.stepTHT(ABBR_BAR, +1)"></div>
255 <div id="ccw-abbr-bar-downzone" class="ccw-downzone" onclick="gCommentControlWidget.stepTHT(ABBR_BAR, -1)"></div>
256 </div>
257 </div>
258 </div>
259 </div>
260 </div>
261 </div>
262 </div>
263 <div class="commentControlFooter"><a href="#" onclick="D2.ajaxFetchComments(0,1); return false"><span id="more_comments_num_c"></span> More</a> |
264
265 <a href="//use.perl.org/login.pl" onclick="show_login_box(); return false">Login</a>
266
267
268
269 | <a href="//use.perl.org/comments.pl?sid=42945&amp;op=reply&amp;threshold=0&amp;commentsort=0&amp;mode=thread" onclick="D2.replyTo(0); return false;">Reply</a><div id="login_cover" style="display:none" onclick="hide_login_box()"></div>
270 <div id="login_box" style="display:none">
271 <div class="generaltitle" >
272 <div class="title">
273 <h3 >
274 Please Log In to Continue<a href="#" onclick="hide_login_box(); return false" class="close" title="Close this box"><img id="login_box_close" src="//images.use.perl.org/sic_close.png" alt="Close"></a>
275
276 </h3>
277 </div>
278 </div>
279 <div id="login_box_content">
280 <form action="//use.perl.org/login.pl" method="post">
281 <fieldset>
282 <legend>Log In</legend>
283 <label>
284 Nickname
285 </label>
286 <input type="text" name="unickname" size="20" value="">
287 <label>
288 Password
289 </label>
290 <input type="hidden" name="returnto" value="//use.perl.org/comments.pl?sid=42945">
291 <input type="hidden" name="op" value="userlogin">
292 <input type="password" name="upasswd" size="20">
293 <label class="checkbox">
294 <input type="checkbox" name="login_temp" value="yes">
295 Public Terminal
296 </label>
297 <input type="submit" name="userlogin" value="Log in" class="button">
298 </fieldset>
299 </form>
300 <p>
301 [ <b>
302 <a href="//use.perl.org/login.pl?op=newuserform">
303 Create a new account
304 </a>
305 </b> ]
306 </p>
307 </div></div>
308 <script type="text/javascript">logged_in = 0</script></div>
309 <div id="commentControlBoxStatus" class="hide"><b>Loading... please wait.</b></div>
310 </div>
311 </div>
312 </div>
313
314 </div>
315 <a name="topcomment"></a>
316
317 <!-- end template: ID 159, printCommentsMain;misc;default -->
318
319
320
321 <!-- start template: ID 157, printCommComments;misc;default -->
322
323 <script src="//images.use.perl.org/comments.js?T_2_5_0_235" type="text/javascript"></script>
324 <script type="text/javascript">
325 <!--
326 D2.d2_keybindings_disable()[191] = 1;
327 window.onscroll = D2.d2act;
328 D2.boxStatus(1);
329 D2.comments({ 68503: { uid: 8549, pid: 0, read: 0, points: 1, kids: [ 68508 ], opid: 0 }, 68508: { uid: 6289, pid: 68503, subject: "Re:Neato", read: 0, points: 1, kids: [ ], opid: 68503 } });
330
331 D2.thresh_totals({6:{6:{1:2,3:0,2:0}},4:{6:{1:2,3:0,2:0},4:{1:2,3:0,2:0},5:{1:2,3:0,2:0}},1:{6:{1:0,3:0,2:2},4:{1:0,3:0,2:2},1:{1:0,3:2,2:0},3:{1:0,3:0,2:2},2:{1:0,3:1,2:1},5:{1:0,3:0,2:2}},3:{6:{1:2,3:0,2:0},4:{1:2,3:0,2:0},3:{1:2,3:0,2:0},5:{1:2,3:0,2:0}},0:{6:{1:0,3:0,2:2},4:{1:0,3:0,2:2},1:{1:0,3:2,2:0},3:{1:0,3:0,2:2},0:{1:0,3:2,2:0},2:{1:0,3:1,2:1},5:{1:0,3:0,2:2}},2:{6:{1:2,3:0,2:0},4:{1:2,3:0,2:0},3:{1:2,3:0,2:0},2:{1:2,3:0,2:0},5:{1:2,3:0,2:0}},5:{6:{1:2,3:0,2:0},5:{1:2,3:0,2:0}},"-1":{6:{1:0,3:0,2:2},4:{1:0,3:0,2:2},1:{1:0,3:2,2:0},3:{1:0,3:0,2:2},0:{1:0,3:2,2:0},2:{1:0,3:1,2:1},5:{1:0,3:0,2:2},"-1":{1:0,3:2,2:0}}});
332
333 D2.root_comment(0);
334 D2.root_comments([68503]);
335 D2.root_comments_hash({68503:1});
336
337 D2.d2_comment_order(0);
338 D2.user_uid(7);
339 D2.user_is_anon(1);
340 D2.user_is_admin(0);
341 D2.user_is_subscriber(0);
342 D2.user_threshold(0);
343 D2.user_highlightthresh(4);
344 D2.user_d2asp(0);
345
346 D2.discussion_id(42945);
347
348 D2.d2_seen('68503,5');
349 D2.more_comments_num(0);
350
351
352 //-->
353 </script>
354
355
356
357
358
359
360
361
362 <ul id="commentlisting" class="d2">
363 <li id="tree_68503" class="comment">
364 <div id="comment_status_68503" class="commentstatus"></div>
365 <div id="comment_68503" class="oneline">
366
367 <div id="comment_top_68503" class="commentTop newcomment">
368 <div class="title">
369
370 <h4><a id="comment_link_68503" name="comment_link_68503" href="//use.perl.org/comments.pl?sid=42945&amp;cid=68503" onclick="return D2.setFocusComment(68503)">Neato</a>
371
372 <span id="comment_score_68503" class="score">(<a href="#" onclick="getModalPrefs('modcommentlog', 'Moderation Comment Log', 68503); return false">Score:1</a>)</span></h4>
373 </div>
374 <div class="details">
375 by
376 <a href="//use.perl.org/~grink/">grink (8549)</a>
377
378
379 <span class="otherdetails" id="comment_otherdetails_68503"></span>
380 </div>
381 </div>
382 <div class="commentBody">
383 <div id="comment_body_68503">Cool stuff!
384
385 Great to see 6 in action</div>
386
387
388 </div>
389 <div class="commentSub" id="comment_sub_68503"></div>
390
391 </div>
392
393
394 <div id="replyto_68503"></div>
395
396 <ul id="group_68503">
397 <li id="hiddens_68503" class="hide"></li>
398 </ul><ul id="commtree_68503"><li id="tree_68508" class="comment">
399 <div id="comment_status_68508" class="commentstatus"></div>
400 <div id="comment_68508" class="oneline">
401
402 <div id="comment_top_68508" class="commentTop newcomment">
403 <div class="title">
404
405 <h4><a id="comment_link_68508" name="comment_link_68508" href="//use.perl.org/comments.pl?sid=42945&amp;cid=68508" onclick="return D2.setFocusComment(68508)">Re:</a>
406
407 <span id="comment_score_68508" class="score">(<a href="#" onclick="getModalPrefs('modcommentlog', 'Moderation Comment Log', 68508); return false">Score:1</a>)</span></h4>
408 </div>
409 <div class="details">
410 by
411 <a href="//use.perl.org/~masak/">masak (6289)</a>
412
413
414 <span class="otherdetails" id="comment_otherdetails_68508"></span>
415 </div>
416 </div>
417 <div class="commentBody">
418 <div id="comment_body_68508"><p>Thank you, sir, for your positive feedback. I appreciate it.</p></div>
419
420
421 </div>
422 <div class="commentSub" id="comment_sub_68508"></div>
423
424 </div>
425
426
427 <div id="replyto_68508"></div>
428
429 <ul id="group_68508">
430 <li id="hiddens_68508" class="hide"></li>
431 </ul></li></ul></li>
432 <li id="roothiddens" class="hide"></li>
433 </ul>
434
435
436
437
438
439
440 <div id="replyto_0"></div>
441
442
443 <div id="discussion_buttons">
444
445
446 <span class="nbutton"><p><b><a href="#" onclick="D2.ajaxFetchComments(0,1); return false"><span id="more_comments_num_a" class="hide">Get More Comments</span></a></b></p></span>
447
448
449
450 <span class="nbutton"><p><b><a href="//use.perl.org/comments.pl?sid=42945&amp;op=reply&amp;threshold=0&amp;commentsort=0&amp;mode=thread" onclick="D2.replyTo(0); return false;">Reply</a></b></p></span>
451
452
453
454
455
456
457
458 </div>
459
460
461
462 <script type="text/javascript">
463 <!--
464 D2.currents()['hidden'] = 0;
465 D2.currents()['full'] = 0;
466 D2.currents()['oneline'] = 2;
467 // D2.currents_total(2);
468
469 D2.abbrev_comments({});
470 D2.noshow_comments([]);
471 D2.pieces_comments([68503,68508]);
472 D2.init_hiddens([]);
473
474 D2.finishLoading();
475
476
477 if (D2.thresh_totals()[6][6][1] == 0) {
478 D2.replyTo(0, 1);
479 }
480
481
482 //-->
483 </script>
484
485 <!-- end template: ID 157, printCommComments;misc;default -->
486
487
488
489 <!-- start template: ID 112, footer;misc;default -->
490
491 </div>
492 </div>
493 <div id="footer">
494 <div class="download">
495 <!-- START DOWNLOAD PERL -->
496 <!-- Perl Mongers, Inc. web@perlmongers.org -->
497 <a href="http://www.cpan.org/ports/index.html"><img src="http://www.perl.org/Images/download_perl.gif" width="102" height="42" alt="Download Perl Now!"></a>
498 <!-- END DOWNLOAD PERL -->
499 </div>
500 <div class="sitelogo">
501 <a href="//use.perl.org/">
502 <img src="http://images.use.perl.org/topics/useperl.gif" alt="useperl">
503 </a>
504 </div>
505 <em>
506 &nbsp; &nbsp; &gt; This made me wonder, suddenly: can telnet be written in perl?<BR>
507 &nbsp; &nbsp; Of course it can be written in Perl.&nbsp; Now if you'd said nroff,<BR>
508 &nbsp; &nbsp; that would be more challenging...&nbsp; --Larry Wall
509 </em>
510 </div>
511 <div class="copyright">
512 Stories, comments, journals, and other submissions on use Perl; are Copyright 1998-2006, their respective owners.
513 </div>
514 <div class="btmnav">
515 <ul>
516 <li class="begin">
517 <a href="//use.perl.org/faq.shtml">FAQ</a>
518 </li>
519 <li>
520 <a href="//use.perl.org/about.shtml">About</a>
521 </li>
522 <li>
523 <a href="//use.perl.org/submit.pl">Submit Story</a>
524 </li>
525 <li>
526 <a href="//use.perl.org/search.pl">Older Stories</a>
527 </li>
528 <li>
529 <a href="//use.perl.org/topics.shtml">Topics</a>
530 </li>
531 <li>
532 <a href="//use.perl.org/pollBooth.pl">Polls</a>
533 </li>
534 <li>
535 <a href="//use.perl.org/journal.pl">Journals</a>
536 </li>
537 <li>
538 <a href="//use.perl.org/authors.pl">Authors</a>
539 </li>
540 <li>
541 <a href="//use.perl.org/modulelist/">New Modules</a>
542 </li>
543 <li>
544 <a href="//use.perl.org/users.pl?op=edithome">Preferences</a>
545
546 </li>
547 </ul>
548 </div>
549 </div>
550 <div id="modal_cover" style="display:none" onclick="hide_modal_box()"></div>
551 <div id="modal_box" style="display:none">
552 <div class="generaltitle" >
553 <div class="title"><h3><span id="preference_title"></span> <a href="#" onclick="hide_modal_box(); return false"><img src="//images.use.perl.org/sic_close.png" alt="Close"></a></h3></div>
554 </div>
555 <div id="modal_box_content"></div>
556 </div>
557
558 <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
559 <script type="text/javascript">
560 _uacct = "UA-32013-15";
561 urchinTracker();
562 </script>
563
564 </body>
565 </html>
566
567 <!-- end template: ID 112, footer;misc;default -->
568
Something went wrong with that request. Please try again.