-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathatom.xml
1507 lines (1064 loc) · 89.4 KB
/
atom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="UTF-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Hachioji.pm 日めくりテックトーク</title>
<link rel="alternate" href="http://hachiojipm.github.io/" />
<author>Uzulla</author>
<generator uri="https://github.com/Songmu/p5-Riji" version="0.0.10">Perl Riji</generator>
<id>tag:hachiojipm.github.io,2013-09-07:</id>
<updated>2014-01-11T21:16:04+09:00</updated>
<entry>
<title type="text">perlのsystemとかexecに配列で渡すと「>」リダイレクトが使えない</title>
<link href="http://hachiojipm.github.io/entry/2014-01-11-system-exec-list.html" />
<author>
<name>Hiroyuki Akabane</name>
</author>
<content><![CDATA[<h1>perlのsystemとかexecに配列で渡すと「>」リダイレクトが使えない</h1>
<p>そもそもなんでperlのsystem,execっで「>」リダイレクトやれ「|」パイプやれをつかうのよ?ってのはありますが、なんかよくわからなかったのでいろいろ質問して教えてもらったので、メモです。</p>
<h2>配列で渡すと内部で実行されるexecvpがシェル文字を解釈しないから</h2>
<p><a href="http://perldoc.jp/func/exec">perlのドキュメントのexec関数の説明</a>によれば、LISTで渡すと、execvpってライブリコールのが呼ばれて、これのexecvpって関数はシェルを経由しないから、シェル特殊文字の「>」「|」などは理解せず実行するためということです。</p>
<p>また、LISTではなくスカラーで渡すとシェルに渡すということらしいです。</p>
<p>ぼくは、OSコマンドインジェクション対策で、perlでsystemやexecを実行するときは、全部LISTで渡すべし!って覚えていたんですが、LISTで渡す意味がやっと正しくわかった気がします。</p>
<p>ちなみに、そもそも、perlのexecでリダイレクト使うと思ったのは、Seleniumで立ち上げたPhantomJSが吐くログがうざかったので、消し去っておきたかったからですね!</p>
<pre><code> exec 'phantomjs --webdriver=127.0.0.1:9999 > /dev/null';
</code></pre>
<p>ちなみに、一応最近のPhantomJSってwebdriverのログを保存する--webdriver-logfileってオプションがあるんですが、これ指定しても、なんか標準出力には出るんですよね、残念ながら。</p>
<h2>execvp(3)の3とかそもそもexecvpって何よ?ライブラリコール?よくわからん・・・</h2>
<p>なんかyanchaってチャットサービスで、いろいろ聞いたら、そもそもこの話を含めていろいろ教えてもらった。</p>
<ul>
<li><a href="http://yancha.hachiojipm.org/quot?id=237434,237435,237437,237438,237439,237440,237441,237442,237443,237444,237445,237446,237447,237448,237449,237451,237452,237455,237456,237457,237459,237460,237461,237462,237463,237464,237465,237477,237479,237482,237485,237486,237487,237488,237489,237497,237498,237500,237501">yanchaでいろいろ教えてもらったログ</a></li>
<li><a href="http://www.amazon.co.jp/%E4%BE%8B%E8%A7%A3UNIX%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E6%95%99%E5%AE%A4-%E5%86%A8%E6%B0%B8%E5%92%8C%E4%BA%BA/dp/48947126609">bool_fool氏オススメの例解UNIXプログラミング教室</a></li>
<li><a href="http://takuya-1st.hatenablog.jp/entry/20100504/1272932107">manコマンドの使い方(1) とマニュアル:manの探し方</a></li>
</ul>
<p>manで見れるのって全部シェルコマンドだと思っていましたが、いろいろあるんですねー。そもそもmanの見方もにわか仕込みでした。。。ライブラリコール(ライブラリ標準関数)っていうのは要はC言語の関数ってことですかねー。まぁ深く勉強したいところです。</p>
<p>papix,bool_fool++</p>
]]></content>
<id>tag:hachiojipm.github.io,2014-01-11:entry-2014-01-11-system-exec-list.html</id>
<published>2014-01-11T16:16:04+0900</published>
<updated>2014-01-11T21:16:04+09:00</updated>
</entry>
<entry>
<title type="text">「自分に変態な○○○ップをプレゼントしよう」</title>
<link href="http://hachiojipm.github.io/entry/2013-12-24-bizarre-keymap.html" />
<author>
<name>uzulla</name>
</author>
<content><![CDATA[<h1>「自分に変態な○○○ップをプレゼントしよう」</h1>
<p>こんばんわ、uzullaです。正直きつい、死にたい、そんな気分のクリスマス・イヴです。</p>
<h1>先日…</h1>
<p>先日、某所にてHappyHacking Keyboard Proが超激安価格で発売されたのを覚えていらっしゃいますでしょうか。
あの場においては私は買いそびれたのですが、 運良くツテで入手することができました!!!これでおいらもハッカーだ!!</p>
<h1>しかし…</h1>
<p>手にいれたものはいいものの、正直あまり自覚していなかったのですが、私はかなりの変態キーボード使いだったのです。</p>
<h1>自己紹介</h1>
<p>私は基本的にUS配列派なのですが(日本語配列のキーボードをつかうと@すら入力が困難)、なんと物理的にはJISキーボードしか受け付けないという実に変態な人間なのです!!!!</p>
<p>皆がかっこいいUS配列のKBDを使う中、私はJISキーのMacをつかっているのです!!!</p>
<p>おかしいな…割と賛同者を他に見た事が無い…</p>
<h1>どうしてそうなった、または具体的にJISをUS配列で使う事のメリット</h1>
<ul>
<li>「JIS配列はボタンが多い」</li>
<li>「USキーは(渡され|売って)ないことが(ある|った)」</li>
</ul>
<p>コレで大体の説明が出来るのでは無いかなと思っているのですが、どうでしょうか…無理か。</p>
<p>簡単にいえば、昔Windowsをつかっていたころ、Thinkpadを使っていたのですが、USキーボードモデルは高かったので買えなかった。</p>
<p>なので、101キーボードドライバをいれることで106を101としてつかっていたのです。
今でこそMacはUSキーボード選び放題ではありますが、昔は割とそういう文化が無かった。USキーボードは秋葉原で買ってくる物だった。</p>
<p>さらに、窓使いの憂鬱というソフトが当時はありまして、ソレを使う事でキーマップいじりたいほうだいモードになり、兎に角好き勝手にキーボードに機能を追加する事ができました、楽しい。たとえばCtrlとJKLIあたりでカーソルとかマジクール。
JIS->USの切り替えも一発でできるので((ドライバを入れ換えればいいが、アレはアレで微妙な事になることも多かった))最高でしたね</p>
<h1>時は流れ…</h1>
<p>いまわたしは立派なマカーになりました!!!</p>
<p>MacとWindowsの大きな違いは何でしょうか?そうです、CmdとCtrlの違いです!!!</p>
<p>私は当然のようにCapsをCtrlに置換していたのですが、まあMacはCmdですからね、最初からの出直しでした。
とはいえしばらくすれば慣れる物で、大して問題にはならなかった。</p>
<p>ただ、ちょっとMacのCmdって左右によりすぎじゃね?どう考えても親指が折れ曲がりすぎじゃね?とおもって英数キーをCmdに変換しておりました。英数、かなキーなんてつかわねーや、トグルはCtrl+;だ!!そんな感じでした。</p>
<p>しかし、これが今の悲劇につながるとはその当時おもってもみませんでした…</p>
<h1>で、どういうこっちゃ</h1>
<p>英数をCmdにするとめっちゃ指が楽なので超お勧めなんですけど、逆に、本来のCmdをまったく押せなくなるんですよね、指が鍛えられていない。結果として、HHKBに切り換えた途端、Cmd系の操作を意識しないとできなくなりました!!つらい!!!</p>
<p>二日くらい頑張ってみたんですけど、やっぱり究極的に微妙にタイプ間違えるんですよね…忙しいのもあいまって、諦めて一度前のキーボードにモドしたくらい無理でした…</p>
<h1>リトライしたい</h1>
<p>しかし、HHKBにそろそろリトライしたい!!</p>
<p>しかしどうしてもやっぱりCmdとSpaceを押し間違える…
もうSpaceの左半分がCmdならいいのに…</p>
<p>…あれ、SpaceをCmdにしたらいいのでは???(天才現る)</p>
<h1>本題、Keyremap4MacBookで自由なキーマップをする</h1>
<p>Keyremap4Macbookは多分多くの人が入れているキーマップ変更ソフトウェアだと思います。
こいつの持ってる設定は超豊富なんですけど、微妙にかゆいところに手が届かない事があるのは皆様ご存じの通りです。</p>
<p>バージョンがドンドンがあって、Real Viモードとかそれもはやキーリマップソフトといえないのでは…という次元にまで進化したこいつ、実際ちゃんとしらべたら独自キーマップができたんですねーーーしらなかった!!!</p>
<p>Keyremap4Macbookを起動して、Misc & Uninstallタブから「Open Private.xml」を押す事で自前設定を追加することができます!!</p>
<p>そして、以下が今回ワイが追加した設定や!!!</p>
<pre><code><?xml version="1.0"?>
<root>
<item>
<name>Space to Cmmand_L</name>
<appendix>(+ When you type Space only, send Space)</appendix>
<identifier>remap.space2commandL_space</identifier>
<autogen>__KeyOverlaidModifier__ KeyCode::SPACE, KeyCode::COMMAND_L, KeyCode::SPACE</autogen>
</item>
<item>
<name>Space to Command_L</name>
<appendix>(+ When you type Space only, send Space) + [KeyRepeat]</appendix>
<identifier>remap.space2commandL_space_keyrepeat</identifier>
<autogen>__KeyOverlaidModifierWithRepeat__ KeyCode::SPACE, KeyCode::COMMAND_L, KeyCode::SPACE</autogen>
</item>
</root>
</code></pre>
<p>これはスペースキーを単体でおしたらスペースが出るが、何かのキーと一緒におしたらCmdになる!
すごい!Cmdが最高にでっかくなっちゃった!!便利!!</p>
<p>
これで「スペースをCmdに差し替えたい(なぜなら普段JISをUS配列でつかっているから、Cmdをタイプするのが大変)」という頭がわりとおかしめなひとも大満足です。Keyremap4Macbook最高!!便利!!</p>
<p>(一応かいておきますけど、XMLに記述したらChangeKeyのチェックボックス群にこの設定が追加されるだけなので、オンオフは自由自在です)</p>
<h1>参考情報</h1>
<p>書き方は以下のURLにありますが、</p>
<p><a href="https://pqrs.org/macosx/keyremap4macbook/xml.html.ja">https://pqrs.org/macosx/keyremap4macbook/xml.html.ja</a></p>
<p>結局既存の設定ファイルをみたほうが勉強になります</p>
<p><a href="https://github.com/tekezo/KeyRemap4MacBook/blob/master/src/core/server/Resources/include/checkbox/standards/option.xml">https://github.com/tekezo/KeyRemap4MacBook/blob/master/src/core/server/Resources/include/checkbox/standards/option.xml</a></p>
<p>非常に、本当に非常に色々なサンプルがあるので、殆どの場合コピペ&修正でどうにかなりますので、PHPerの私でも安心でした!!</p>
<h1>みんなも変態キーマップでがんばろう!!</h1>
<p>イエス!変態キーマップ!!</p>
<h1>欠点</h1>
<p>でもね、なんかこれ(KeyOverlaid)やるとちょっとキーボードの判定が遅くなった気がするの、多分気のせいじゃ無いの。
日本語入力の時に結構顕著で、スペースで変換するとちょっと遅れてやってくる。微妙にそれが気にくわない感じはあるの。
ウーーンあとちょっとなんだけどなあ…。</p>
<p>Keyrepeatの設定から、KeyOverlaid ModifierのWait周りをいろいろいじると何となくそれっぽくはなるんだけど、うーーん…。</p>
<p>まあ、しばらく頑張ってどうしてもどうしても駄目ならあきらめるかなーー…HHKB…ああ、あこがれのハッカーーー。<br/>
(まあもっともっともっとがんばって定義書けば解決するのかも知れない…)</p>
<p>といった感じで微妙な残尿感をのこしつつ、明日は感動のフィナーレの予定です!!!</p>
]]></content>
<id>tag:hachiojipm.github.io,2013-12-25:entry-2013-12-24-bizarre-keymap.html</id>
<published>2013-12-24T59:59:00+0900</published>
<updated>2013-12-25T03:59:56+09:00</updated>
</entry>
<entry>
<title type="text">PerCUDAの性能評価</title>
<link href="http://hachiojipm.github.io/entry/2013-12-23-percuda-2.html" />
<author>
<name>papix</name>
</author>
<content><![CDATA[<h1>PerCUDAの性能評価</h1>
<p>12月23日のHachioji.pm Advent Calendarです. 今日もpapixが担当させて頂きます.<br/>
余談ですが今日はいつもお世話になっている<a href="https://twitter.com/yusukebe">@yusukebe</a>さんと, 自分の母親の誕生日だったりします. <strong>おめでとうございます!</strong></p>
<p>...さて. Perl Advent Calendarの20日目の記事として書かせて頂いた<a href="http://qiita.com/papix/items/fee3e60e21f2ab1f1c76">Perl meets GPU</a>ですが, おかげ様で様々な反響を頂いております.</p>
<blockquote class="twitter-tweet" lang="ja"><p>やばい…:Perl meets GPU - Qiita [キータ] <a href="http://t.co/3q58j4NC3E">http://t.co/3q58j4NC3E</a></p>— しゅううさんฅ(๑′Δ’๑)にゃんぱすー (@syuu1228) <a href="https://twitter.com/syuu1228/statuses/414125662350237698">2013, 12月 20</a></blockquote>
<p></p>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
<p></p>
<p>その中で, 「CUDAで実装するのとどれくらい差があるのだろう?」というコメントがありました.</p>
<blockquote class="twitter-tweet" data-cards="hidden" lang="ja"><p>これは良い。普通にCUDAで実装するのとどれぐらい差でるんだろ。 / Perl meets GPU by <a href="https://twitter.com/__papix__">@__papix__</a> on <a href="https://twitter.com/Qiita">@Qiita</a> <a href="http://t.co/aKUR1GGc1W">http://t.co/aKUR1GGc1W</a></p>— ただむー (@mw529) <a href="https://twitter.com/mw529/statuses/414641190147866624">2013, 12月 22</a></blockquote>
<p></p>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
<p></p>
<p>というわけで, 今日はPerCUDAの性能評価として, 素のCUDAを利用したGPGPUの実行結果と, PerCUDAを利用したGPGPUの実行結果について紹介したいと思います.<br/>
実験対象となるコードは, 素のCUDAとPerCUDAで実装した, 1024*1024要素の配列の乗算を計算するコードです.<br/>
「PerCUDA(Perl)」はカーネル関数をPerl処理系で実行した場合, 「PerCUDA(GPU)」はカーネル関数をGPUで実行した場合, そして「CUDA」は素のCUDAを利用した場合の時間になります.</p>
<table>
<thead>
<tr>
<th style="text-align:left;"> </th>
<th style="text-align:left;"> PerCUDA(Perl) </th>
<th style="text-align:left;"> PerCUDA(GPU) </th>
<th style="text-align:left;"> CUDA </th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;"> 前処理 </td>
<td style="text-align:left;"> 0.0000401s </td>
<td style="text-align:left;"> 0.0435131s </td>
<td style="text-align:left;"> - </td>
</tr>
<tr>
<td style="text-align:left;"> 転送 </td>
<td style="text-align:left;"> - </td>
<td style="text-align:left;"> 0.0218434s </td>
<td style="text-align:left;"> 0.0029387s </td>
</tr>
<tr>
<td style="text-align:left;"> 実行 </td>
<td style="text-align:left;"> 232.7142642s </td>
<td style="text-align:left;"> 0.0333679s </td>
<td style="text-align:left;"> 0.0358331s </td>
</tr>
<tr>
<td style="text-align:left;"> 後処理 </td>
<td style="text-align:left;"> - </td>
<td style="text-align:left;"> 0.1033700s </td>
<td style="text-align:left;"> - </td>
</tr>
<tr>
<td style="text-align:left;"> 合計 </td>
<td style="text-align:left;"> 232.7143043s </td>
<td style="text-align:left;"> 0.2020944s </td>
<td style="text-align:left;"> 0.0387718s </td>
</tr>
</tbody>
</table>
<p>このうち,</p>
<ul>
<li>前処理: カーネル関数に対する引数の確認, Perlのデータ構造のバイナリ化などにかかった時間</li>
<li>転送: ホスト側からデバイス側, デバイス側からホスト側へのデータの転送にかかった時間</li>
<li>実行: カーネル関数の実行にかかった時間</li>
<li>後処理: 実行結果であるバイナリをPerlのデータ構造に変換するためにかかった時間</li>
</ul>
<p>を示します.</p>
<p>PerCUDAで実装したGPGPUは, 素のCUDAで実装した場合と比べると5.2倍の時間が必要になっていることがわかります.<br/>
しかしながら, それでもPerl処理系を利用した場合と比べると1151.5倍の高速化を達成できていますので, 十分実用的と言えるのではないでしょうか.</p>
<p>PerCUDAを利用したGPGPUにおいて, カーネル関数やデータの転送に関する時間は素のCUDAの場合とほとんど変わっていないので, 「前処理」や「後処理」の時間が大きな負担になっています.<br/>
この辺りは, 「前処理」や「後処理」を担当するコードのチューニングやXS化などで, ある程度は高速化できるのではないかと見込んでいます.</p>
<h2>まとめ</h2>
<p>PerCUDAと素のCUDAの性能評価について解説しました.<br/>
3月までを予定しているPerCUDAのリファクタリングで, 「前処理」と「後処理」の部分を出来る限り高速化していきたいと思っています.</p>
]]></content>
<id>tag:hachiojipm.github.io,2013-12-23:entry-2013-12-23-percuda-2.html</id>
<published>2013-12-23T26:26:39+0900</published>
<updated>2013-12-23T01:26:39+09:00</updated>
</entry>
<entry>
<title type="text">PlackのMiddlewareを条件付きでロードする</title>
<link href="http://hachiojipm.github.io/entry/2013-12-19-plack-middleware.html" />
<author>
<name>papix</name>
</author>
<content><![CDATA[<h1>PlackのMiddlewareを条件付きでロードする</h1>
<p>papixです. ここまでこの「Hachioji.pm 日めくり<strong>テックトーク</strong>」を, まったくテックに関係ない話題で埋め尽くしてきました(cf. 旅行情報, 飯情報...)が, 今日は久々にテックな話題をお送りします.</p>
<p>PlackのMiddlewareを, 「ある条件を満たした場合のみ適用したい」という場合があると思います.<br/>
例えば, Basic認証をかける<a href="https://metacpan.org/pod/Plack::Middleware::Auth::Basic">Plack::Middleware::Auth::Basic</a>を, 一部のパスの場合のみ有効にして, Basic認証をかけたい! ...という場合とかです.</p>
<p>Plack::Middleware::Auth::Basicを<code>enable</code>で有効にした場合, 全てのパスに対してBasic認証をかけてしまいます.<br/>
このような場合, <code>enable</code>はなく<code>enable_if</code>を使うことで実現することができます.</p>
<p>例えば, パスの先頭が<code>/login</code>である場合のみ, Basic認証をかけたいという場合は,</p>
<pre><code>enable_if { $_[0]->{PATH_INFO} =~ m!^/login! }
'Plack::Middleware::Auth::Basic',
authenticator => sub {
my ($username, $password, $env) = @_;
return 'hoge' eq $username && 'fuga' eq $password;
};
</code></pre>
<p>のように書けばOKです.<br/>
詳しくはこちらの記事をどうぞ: <a href="http://perl-users.jp/articles/advent-calendar/2011/casual/8">Plack::Middlewareの使い所</a></p>
]]></content>
<id>tag:hachiojipm.github.io,2013-12-22:entry-2013-12-19-plack-middleware.html</id>
<published>2013-12-19T59:59:00+0900</published>
<updated>2013-12-22T19:32:54+09:00</updated>
</entry>
<entry>
<title type="text">papixのグルメ 〜五反田編〜</title>
<link href="http://hachiojipm.github.io/entry/2013-12-16-papix-gourmet-3.html" />
<author>
<name>papix</name>
</author>
<content><![CDATA[<h1>papixのグルメ 〜五反田編〜</h1>
<p>papixです. もはや気合の領域になってきておりますが, なんとか続いています.
今日は「papixのグルメ 〜五反田編〜」ということで, 会社(GaiaX)の近くで見つけた(教えてもらった)五反田のウマい飯屋情報を提供していきたいと思います.</p>
<h2>「麺彩房」のつけ麺</h2>
<p>-> <a href="http://tabelog.com/tokyo/A1316/A131603/13036956/">食べログ</a></p>
<p>...会社から徒歩1分の場所に立地するつけ麺屋です.
この界隈は以外と(?)つけ麺屋が多く, 会社からの徒歩圏内に3店舗(麺彩房と<a href="http://tabelog.com/tokyo/A1316/A131603/13159962/">いし井</a>, <a href="http://tabelog.com/tokyo/A1316/A131603/13094222/">三田製麺所</a>)もあるという激戦地.
インターン中に同期と食べ比べてみたのですが, その中でも一番美味だったのがこの麺彩房でした(順序付けると麺彩房>>>三田製麺所>=いし井, 食べログの評価もだいたいそんな感じ).</p>
<p>魚介豚骨のつけ麺は程よい濃さで, スープも最後の1滴まで美味しく飲み干せる, まさにスタンダードなつけ麺と言った感じ.
麺の量を無料で変更できるので, 空腹時でも満足出来ることまちがいなしです.</p>
<p>五反田での食事に迷ったら, まず第一にオススメするのがこの店です!</p>
<h2>「平太周 味庵」のとんこつラーメン</h2>
<p>-> <a href="http://www.hirataishyu-ajian.jp/">食べログ</a></p>
<p>会社から道路を挟んで向かい側にあるラーメン屋.
店の前を通ると, こってりとしたとんこつラーメン屋特有の匂いが漂ってきて, 思わず食欲が刺激されます.</p>
<p>背脂たっぷりのラーメンは, 昨日紹介した大阪のとんこつラーメン屋, 無鉄砲を連想させます.
が, 味はそこまでこってりではなく, むしろあっさりスイスイ食べれるのが特徴です.
それでも太麺にしっかりスープが絡んできますので, もちもち食感の麺とあわせてひたすらに濃厚な時間を過ごすことができます.</p>
<p>「パンチのあるラーメンが食べたい!」と思った時は, ここが一番いいのではないでしょうか.</p>
<h2>「魚がし日本一 五反田店」の立ち喰い寿司</h2>
<p>-> <a href="http://tabelog.com/tokyo/A1316/A131603/13026345/">食べログ</a></p>
<p>五反田駅前にある, 格安の立ち食い寿司屋.
「Perl入学式 in 東京」では, 毎回開催前にスタッフが集まって寿司を食べに行く習慣があるのですが, 五反田界隈で開催する時はほぼ毎回この寿司屋で食べています.</p>
<p>安い寿司だと1貫75円(2貫単位で頼む必要があるので, 注文すると150円), ほとんどの寿司が1貫75円or100円で食べれるので, コストパフォーマンスは最高です.
しかも2貫で100円とかの, いわゆる「安い回る寿司」に比べると遥かに高いクオリティ.
「安い回る寿司」だと, マグロとかの身の解凍が不十分でシャリシャリしていたりしますが, そういうのは一切ありません.</p>
<p>たらふく食べても1500円〜2000円程度で収まるので, カジュアルに寿司を楽しみたい時は最高の選択肢の一つになると思います.</p>
<h2>まとめ</h2>
<p>五反田にはまだまだ美味しい食事処がたくさんあるのですが, とりあえず今日はその中でもインターン期間中などによく食べに行った店を3つ, 紹介してみました.
他にも中華やカレーの美味い店があったりするので, またいずれ機会があれば紹介したいと思います!</p>
]]></content>
<id>tag:hachiojipm.github.io,2013-12-22:entry-2013-12-16-papix-gourmet-3.html</id>
<published>2013-12-16T59:59:00+0900</published>
<updated>2013-12-22T18:10:32+09:00</updated>
</entry>
<entry>
<title type="text">Acme::Nyaaで実装した猫プロキシ</title>
<link href="http://hachiojipm.github.io/entry/2013-12-22-neko.html" />
<author>
<name>papix</name>
</author>
<content><![CDATA[<p>※この記事は, <a href="https://twitter.com/azumakuniyuki">@azumakuniyuki</a>さんから寄稿頂いた記事をpapixが代理投稿したものです.</p>
<h1>Acme::Nyaaで実装した猫プロキシ</h1>
<p>去る九月のYAPC::Asia Tokyo 2013の前夜祭で開催された<a href="http://ltthon-yapc2013.hachiojipm.org/">LTソン::Tiny</a>で<a href="http://www.slideshare.net/azumakuniyuki/perl-26348048">「猫とPerl〜応用編1」</a>というタイトルで発表した<a href="https://twitter.com/azumakuniyuki">@azumakuniyuki</a>です。今日は12月22日、毎月22日は猫の日、今年最後の猫の日です。</p>
<p><a href="https://metacpan.org/pod/Acme::Nyaa">Acme::Nyaa</a>ってのは食わせた文章が「にゃー」とか「ニャー」とか猫っぽい感じになるPerlモジュールで、動物病院から「そろそろ注射です」的なハガキを顧客の猫に出す時に文章を猫向けに変換する時に役立ちます。</p>
<p>こういった実用的なモジュールも実際の使用例があった方がより親しみやすさ、使用した時の実感が得られるのではないでしょうか。そこでHTTP編とSMTP編でAcme::Nyaaの使用例を紹介しようかと思います。</p>
<h2>下準備</h2>
<p><a href="https://github.com/azumakuniyuki/p5-Acme-Nyaa">Acme::Nyaa</a>を<code>git clone</code>して猫プロキシ(<code>eg/nyaaproxy</code>)を起動しておきます。Acme::NyaaはPerl 5.10.1以上で依存しているモジュールは<code>Module::Load</code>と<code>Encode</code>の二つです。どちらもPerl 5.10.1の時点でコアモジュールに入っていますので、特にインストールしなくてもOKです。あとは猫プロキシを動かすのにPlackとFurlを使います。</p>
<pre><code>% git clone https://github.com/azumakuniyuki/p5-Acme-Nyaa.git
Cloning into 'p5-Acme-Nyaa'...
remote: Counting objects: 379, done.
remote: Compressing objects: 100% (218/218), done.
...
% cd ./p5-Acme-Nyaa
% plackup -Ilib -p 2222 eg/nyaaproxy.psgi
HTTP::Server::PSGI: Accepting connections at http://0:2222/
</code></pre>
<h2>猫プロキシ〜HTTP編</h2>
<p><code>plackup</code>で起動したら、<code>http://127.0.0.1:2222/http://猫っぽくしたいURL</code>というURLでブラウザを開くだけです。YAPC::Asiaが終わってからUTF-8以外の文字コードも対応した0.0.10を出したので日本語で書いているページならだいたい猫になると思います、たぶん。</p>
<p><img src="http://hachiojipm.github.io/static/image/neko1.png" alt="猫プロキシを通した一例" /></p>
<p>この<a href="http://hachiojipm.github.io">Hachioji.pm 日めくりテックトーク</a>の主催者である<a href="https://twitter.com/uzulla/">@uzulla</a>さんが9月12日に書かれた記事<a href="http://hachiojipm.github.io/entry/2013-09-12-01.html">「PHP Builtin serverで、dot(.)が入るURLで挙動が変わってつらい(かもしれない)」</a>を猫プロキシ経由で参照した様子です。</p>
<p>本来なら猫プロキシを通した一例として出すページは前日の<a href="https://twitter.com/__papix__">@__papix__</a>さんの記事<a href="http://hachiojipm.github.io/entry/2013-12-21-percuda.html">「Perl meets GPU」</a>が良いところですが、Acme::Nyaaは理系的な文章(句読点が,.なの)をうまく変換出来ないので、無難に主催者の記事を一例として使いました。</p>
<p>別の表現をすると、作成するWebページでは句読点を「,」「.」で表記すればある程度の猫避けになります。</p>
<h2>猫プロキシ〜SMTP編</h2>
<h3>Net::SMTPSでGmailへ</h3>
<p>Net::SMTPのSTARTTLS対応版であるNet::SMTPSを使って本文を猫っぽい感じに変換しつつ、SSLな通信でSMTP認証してからGmail経由でメールを送信するサンプルコードです。
<a href="https://gist.github.com/azumakuniyuki/8066415">net-smtps-as-a-sample.pl</a></p>
<pre><code>#! /usr/bin/env perl
use strict;
use warnings;
use utf8;
use Encode;
use Acme::Nyaa;
use Email::MIME;
use Email::MIME::Creator;
use Net::SMTPS;
use Authen::SASL;
my $from = '"キジトラ" <[email protected]>';
my $rcpt = '"三毛猫" <[email protected]>';
my $subj = '年末のご挨拶';
my $mesg = << 'EOM';
いつもお世話になっております、株式会社キジトラのあずまです。
本年も大変お世話になり誠に有り難う御座いました。来年も引き続きご愛顧賜りますよう
従業員一同お願い申し上げます。
EOM
my $nyaa = Acme::Nyaa->new;
my $mime = Email::MIME->create(
'header' => [
'From' => encode( 'MIME-Header-ISO_2022_JP', $from ),
'To' => encode( 'MIME-Header-ISO_2022_JP', $rcpt ),
'Subject' => encode( 'MIME-Header-ISO_2022_JP', $subj ),
],
'attributes' => {
'content_type' => 'text/plain',
'charset' => 'UTF-8',
'encoding' => '8bit',
},
'body' => $nyaa->cat( \$mesg ),
);
my $args = {
'Port' => 587,
'doSSL'=> 'starttls',
'SSL_verify_mode' => 'SSL_VERIFY_NONE',
};
my $user = 'Gmailのユーザ名';
my $pass = 'Gmailのパスワード';
my $smtp = Net::SMTPS->new( 'smtp.gmail.com', %$args );
my $sasl = Authen::SASL->new(
'mechanisms' => 'Digest-MD5',
'callback' => { 'user' => $user, 'pass' => $pass, 'authname' => $user }
);
$smtp->auth( $sasl );
$smtp->mail( [ split( ' ', $from ) ]->[1] );
$smtp->to( [ split( ' ', $rcpt ) ]->[1] );
$smtp->data;
$smtp->datasend( $mime->as_string );
$smtp->dataend;
$smtp->quit;
1;
</code></pre>
<p>正しいMIMEのメールデータを手作りするのは骨が折れるというか面倒くさいのでEmail::MIMEを使っていますが、送信部分はNet::SMTPSを使っています。他の選択肢としてはEmail::SenderとかEmail::Sender::Simpleが良さそうですが、そこそこ依存モジュールがたくさんあります。</p>
<p>上記のコードで猫っぽくしている部分は<code>'body' => $nyaa->cat( \$mesg ),</code>の部分で、あとは猫とは関係のないコードです。</p>
<p><img src="http://hachiojipm.github.io/static/image/neko2.png" alt="猫っぽいメール" /></p>
<h3>HainekoのMilter</h3>
<p>メール送信時に本文を書き換えるコードをもうちょいちゃんと組み込んだものが、僕が夏ごろから作っている<a href="https://github.com/azumakuniyuki/Haineko">Haineko</a>というJSONでメールが送れるHTTPサーバに入っています。</p>
<p>そろそろページが長くなってきたので、また別の何処かの何かに書こうかと思いますが、<a href="https://github.com/azumakuniyuki/Haineko/blob/master/lib/Haineko/SMTPD/Milter/Nyaa.pm">Haineko::SMTPD::Milter::Nyaa</a>というモジュールで実装していて、設定ファイルでこのMilter(メール用プラグインみたいなの)を使うかどうかを変更出来ます。</p>
<h2>参考</h2>
<p>猫プロキシを通して何処かのサイトを眺める時、ウィンドウの空いている場所にお気に入りの猫画像を出しておくと、より臨場感が得られるであろう事は自明の理ですので是非お試しください。勿論、猫と暮らしている人は猫を膝の上に乗せて撫でながらサイトを眺めるのが至高です。</p>
<p><img src="http://hachiojipm.github.io/static/image/neko3.jpg" alt="かわいい三毛猫" /></p>
]]></content>
<id>tag:hachiojipm.github.io,2013-12-22:entry-2013-12-22-neko.html</id>
<published>2013-12-22T10:10:43+0900</published>
<updated>2013-12-22T18:10:32+09:00</updated>
</entry>
<entry>
<title type="text">perlでTravisCI、Coverallsを使ってみる</title>
<link href="http://hachiojipm.github.io/entry/2013-09-18-perl-travisci.html" />
<author>
<name>papix</name>
</author>
<content><![CDATA[<p>※この記事は, <a href="https://twitter.com/Spring_MT">@Spring_MT</a>さんから寄稿頂いた記事をpapixが代理投稿したものです.</p>
<h1>perlでTravisCI、Coverallsを使ってみる</h1>
<p>最近東京に戻ってきた<a href="https://twitter.com/Spring_MT">Spring_MT</a>です。</p>
<p>perlで自分でモジュールを書く準備をと思って、TravisCI、Coverallsを使う方法を調べてみました。
だいぶperlからは離れていたので、perlを入れるとことから調べてます。</p>
<h2>plenvを入れる</h2>
<p>今回はplenvを使ってperlを入れました。</p>
<p><a href="https://github.com/tokuhirom/plenv">plenv</a></p>
<p>plenvでperlを入れて、cpanmも入れていきます。</p>
<pre><code>% git clone git://github.com/tokuhirom/plenv.git ~/.plenv
% echo 'export PATH="$HOME/.plenv/bin:$PATH"' >> % ~/.zshrc
% echo 'eval "$(plenv init -)"' >> ~/.zshrc
% exec $SHELL -l
% plenv install 5.18.0
% plenv local 5.18.0
% plenv rehash
% plenv install-cpanm
% plenv rehash
</code></pre>
<h2>Minillaを使ってひな形を作る</h2>
<p>最初はModule::Installを使いながら試していたのですが、TravisCIでこけて先に進めず。。。</p>
<p>で、<a href="http://lingr.com/room/perl_jp/archives/2013/08/29#message-16407055">この会話</a>で勧められた通り、Minillaを使って作ってみました。</p>
<p><a href="https://github.com/tokuhirom/Minilla">Minilla</a>
<a href="http://blog.64p.org/entry/2013/05/14/080423">Minilla を用いた Perl モジュールの作り方</a></p>
<pre><code>% cpanm install Minilla
% plenv rehash
% minil new Sample
% cd Sample
% git add .
% git commit
</code></pre>
<p>Minillaはこれだけで新しいモジュールのひな形ができちゃいます!
ここまでできたら、githubでレポジトリを作って、TravisCIのサイトでリポジトリをsyncし、TravisCIの設定をonにしましょう。
TravisCI設定はこちらがめっちゃ参考になります。</p>
<p><a href="http://sue445.hatenablog.com/entry/2013/06/01/170607">GithubにあるリポジトリをTravis CI連携する手順 #junitbook</a></p>
<p>Minillaで作ったモジュールのテストを手元で走らせる場合は、minil testを実行すると思うのですが、TravisCIではデフォルトで下記コマンドでテストが実行されます。</p>
<pre><code>perl Build.PL && ./Build test
</code></pre>
<p><a href="http://about.travis-ci.org/docs/user/languages/perl/#Module%3A%3ABuild">Building a Perl Project</a></p>
<p>Minilaで作ったデフォルトのBuild.PLを使うと、TravisCIではxt/配下のテストは走らないのです。</p>
<p>ここまでできたら、pushします。
Minillaで作ったモジュールには既に .travis.yml が用意されているので、何もしなくてもtravisが動きます。</p>
<p><img src="http://hachiojipm.github.io/static/image/perl_minilla_1.jpeg" alt="image" />
<a href="https://travis-ci.org/SpringMT/Sample">TravisCI SpringMT/Sample</a></p>
<p>うまくいきました!</p>
<p>バッジも貼りましょう。
TravisCIのビルド結果ページ右上のbuild passingの画像をクリックすると、そのまま貼り付けられる状態のテキストが表示されるので、それをコピーしてREADME.mdに貼り付けます。</p>
<p>ついでに、Coverallsも追加しちゃいましょう。</p>
<p><a href="https://coveralls.io">Coveralls</a></p>
<p>まずは、TravisCIと同様に、Coverallsにリポジトリを登録してください。
perlの場合は、Devel::Cover::Report::Coverallsを使えば、Coverallsに簡単にカバレッジの情報を登録できます。</p>
<p><a href="http://memo.fushihara.net/post/48086316824/coveralls-perl-project">coverallsをperlなprojectで使えるようにしてみた</a></p>
<p>Coverallsに情報を投げるために .travis.ymlに下記を追記してください。</p>
<pre><code>before_install:
cpanm -n Devel::Cover::Report::Coveralls
script:
perl Build.PL && ./Build build && cover -test -report coveralls
</code></pre>
<p>pushすると、こんな感じになると思います。</p>
<p><img src="http://hachiojipm.github.io/static/image/perl_minilla_2.jpeg" alt="image" /></p>
<p><a href="https://coveralls.io/r/SpringMT/Sample">Coveralls SpringMT / Sample</a></p>
<h2>最後に</h2>
<p>最終的に少しテストを追加しました。</p>
<p><a href="https://github.com/SpringMT/Sample">GitHub SpringMT/Sample</a></p>
<p>githubにページはこんな感じでバッジも出ています。</p>
<p><img src="http://hachiojipm.github.io/static/image/perl_minilla_3.jpeg" alt="image" /></p>
<p>これでモジュールを書き始める準備が出来上がったので、なんか書きます。</p>
<h2>ちょっとハマったところ</h2>
<p>新しく作ったファイルにテストを書いてminil testを実行したけど、テストがされなくてなんでだろうと思ってたら、git管理下じゃないからだった。。。。</p>
]]></content>
<id>tag:hachiojipm.github.io,2013-09-19:entry-2013-09-18-perl-travisci.html</id>
<published>2013-09-18T57:57:00+0900</published>
<updated>2013-12-22T17:10:43+09:00</updated>
</entry>
<entry>
<title type="text">話題のHHVM(HiphopVM)を手軽に試す</title>
<link href="http://hachiojipm.github.io/entry/2013-12-22-hhvm.html" />
<author>
<name>uzulla</name>
</author>
<content><![CDATA[<h1>話題のHHVM(HiphopVM)を手軽に試す</h1>
<p>「PHP…誰得…」</p>
<p>Hachioji.pm #36のLTを焼き直し、さらに相変わらず自分のブログにリンクするというやっつけぶりです。</p>
<p>以下からどうぞ!</p>
<p><a href="http://uzulla.hateblo.jp/entry/2013/12/22/025014">HHVM(HipHopVM)のFastCGIを軽く試す - uzullaがブログ</a></p>
]]></content>
<id>tag:hachiojipm.github.io,2013-12-22:entry-2013-12-22-hhvm.html</id>
<published>2013-12-22T15:15:32+0900</published>
<updated>2013-12-22T03:15:32+09:00</updated>
</entry>
<entry>
<title type="text">Perl meets GPU</title>
<link href="http://hachiojipm.github.io/entry/2013-12-21-percuda.html" />
<author>
<name>papix</name>
</author>
<content><![CDATA[<h1>Perl meets GPU</h1>
<p>...という記事を, Perl Advent Calendar 20日目として書きましたので紹介させて頂きます!<br/>
(2日連続の<a href="http://hachiojipm.github.io/entry/2013-12-08-usui-paren-vim.html">moznionスタイル</a>ですね...)</p>
<p><a href="http://qiita.com/papix/items/fee3e60e21f2ab1f1c76">http://qiita.com/papix/items/fee3e60e21f2ab1f1c76</a></p>
]]></content>
<id>tag:hachiojipm.github.io,2013-12-21:entry-2013-12-21-percuda.html</id>
<published>2013-12-21T59:59:00+0900</published>
<updated>2013-12-21T23:59:00+09:00</updated>
</entry>
<entry>
<title type="text">papixのグルメ 〜関西地方編〜</title>
<link href="http://hachiojipm.github.io/entry/2013-12-15-papix-gourmet-2.html" />
<author>
<name>papix</name>
</author>
<content><![CDATA[<h1>papixのグルメ 〜関西地方編〜</h1>
<p>papixです. とにかく, どんな形であってもHachioji.pm Advent Calendarを完走させるという悲壮な決意(?)を持ってこのアドベントカレンダーと対峙しております.</p>
<p>というわけで, 今日は「papixのグルメ 〜関西地方編〜」をお送りしたいと思います.</p>
<h2>兵庫 / 「旨いらーめんゆうや」の味噌ラーメン</h2>
<p>-> <a href="http://tabelog.com/hyogo/A2807/A280703/28021381/">食べログ</a></p>
<p>大学の最寄り駅の近くにある味噌ラーメンの店. <br/>
中途半端な時間に大学を出て, 家に帰ってもメシないしなー... という時は, 大抵この店に行っています.</p>
<p><img src="http://hachiojipm.github.io/static/image/gourmet-hyogo-yuuya.jpg" alt="ゆうやの味噌ラーメン" /></p>
<p>目玉の味噌ラーメンは若干ピリ辛, そしてこってり気味で, そこがお気に入りです.<br/>
写真では, ネギをトッピングして山盛りにしてもらいました.</p>
<p>この店の特徴は, 2cm〜3cm四方くらいの海苔が食べ放題という点.<br/>
麺と具を片付けた後, 残ったスープに海苔を浸して食べると非常に美味しいのです!! (見た目汚い感じですが...)</p>
<h2>奈良 / 「元喜神」のつけ麺</h2>
<p>-> <a href="http://tabelog.com/nara/A2901/A290101/29005789/">食べログ</a></p>
<p>小学校・中学校の同級生が紹介してくれた, 奈良県にあるつけ麺屋.<br/>
鶏白湯のスープがウリのお店です.</p>
<p><img src="http://hachiojipm.github.io/static/image/gourmet-nara-genkishin.jpg" alt="元喜神のつけ麺" /></p>
<p>この店は, なんと各テーブルにIHクッキングヒーターっぽいものが設置されていて, これとつけ麺のスープを使って雑炊が作れるのです!</p>
<p><img src="http://hachiojipm.github.io/static/image/gourmet-nara-genkishin-zousui.jpg" alt="元喜神の雑炊" /></p>
<p>残ったスープとご飯, 卵, チーズで作ったチーズリゾット. これもまた美味...!<br/>
近くに鉄道の駅がなく, 車がなければ行けない店なのですが, また食べに行きたいなー... と密かに思っています.</p>
<h2>奈良 / 「あまのじゃく」の塩とんこつラーメン</h2>
<p>-> <a href="http://tabelog.com/nara/A2901/A290102/29000547/">食べログ</a></p>
<p>上記の「元喜神」を紹介してくれた友人が連れて行ってくれたラーメン屋.<br/>
友人の一押し店舗らしく, 店主に顔を覚えられる程度には通ったとか.</p>
<p><img src="http://hachiojipm.github.io/static/image/gourmet-nara-amanojaku.jpg" alt="あまのじゃくの塩とんこつ" /></p>
<p>頂いたのは塩とんこつチャーシュー麺.<br/>
コクのあるスープはくどくなく, しっかりと麺に絡みます.<br/>
そして香ばしく炙られたチャーシューが旨い!</p>
<p>当時のブログには, 「プロ野球で例えるなら3割30本30盗塁の一流選手」という評価を残していました.<br/>
自分にとって, 王道かつ理想のとんこつラーメンはこの店のとんこつラーメンじゃないかなあ... という気がしています.</p>
<h2>大阪 / 「無鉄砲」のこってりとんこつラーメン</h2>
<p>-> <a href="http://tabelog.com/osaka/A2702/A270202/27005006/">食べログ</a></p>
<p>無鉄砲. それはpapixにとっては青春の味なのです.<br/>
かつて, どうしようもないヲタだった高校生時代, 土日の昼間に友達とフリータイムのカラオケ(もちろん曲はアニソンばっかり)に行った後によく行っていました.<br/>
確か, 「歌って枯れた喉をここのラーメンの油がコーティングしてくれるんだよ!」みたいな事を言っていた友人がいたような気がします...</p>
<p>さて, 食べログのページを見て頂ければわかるのですが, この店のラーメンは超! こってりです. どうしようもなく背脂たっぷりです.<br/>
ちょっと太めの麺に, 超こってりスープが絡む絡む! 口の中は油でべったべた, 口の周りも油でべったべた, でも不味くはなくて, むしろ非常に旨いんですよね.</p>
<p>非常に中毒性のあるとんこつラーメンなので, とんこつ好きの方は是非一度味わってみて欲しいと思います.<br/>
というか, ここのラーメンを食わずして「こってりとんこつラーメン」は語れないのでは? とすら思っています.</p>
<p>関東在住の方は, <a href="http://www.muteppou.com/tenpo.html">中野にも店がある</a>みたいなので, 是非そちらへどうぞ!</p>
<h2>まとめ</h2>
<p><strong>...全部ラーメンじゃないか!!!</strong><br/>
まあ, 関西地方はホームグラウンドのようなものなので, ラーメンみたいな「ファストフード」っぽいものしか食べないからだと思います...</p>
<p>Hachioji.pm Advent Calendarはまだまだ続きます.<br/>
「papixのグルメ」も, 北海道編や関東編, 東北編などが残っていますので, どうぞお楽しみに!</p>
]]></content>
<id>tag:hachiojipm.github.io,2013-12-21:entry-2013-12-15-papix-gourmet-2.html</id>
<published>2013-12-15T59:59:00+0900</published>
<updated>2013-12-21T04:09:42+09:00</updated>
</entry>
<entry>
<title type="text">papixのグルメ 〜九州・中国地方編〜</title>
<link href="http://hachiojipm.github.io/entry/2013-12-12-papix-gourmet.html" />
<author>
<name>papix</name>
</author>
<content><![CDATA[<h1>papixのグルメ 〜九州・中国地方編〜</h1>
<p>papixです. 12日現在, Hachioji.pm Advent Calendarに対して(この記事含め)6つの記事を投稿しています.<br/>
<strong>半分以上俺じゃねーか!</strong></p>
<p>...というわけで, 気がついたら12日の記事が上がっていなかったので, <strong>過去に書いたブログのテキストを継ぎ接ぎして</strong>12日目です.<br/>
タイトルは「papixのグルメ」. タイトルは「孤独のグルメ」を意識しています. 多分.</p>
<p>今日は「九州・中国地方編」ということで, 旅の中でpapixが出会った美味しい料理を, いろいろ紹介していきます!</p>
<h2>広島 / 「三公」の尾道ラーメン</h2>
<p>-> <a href="http://tabelog.com/hiroshima/A3401/A340102/34000436/">食べログ</a></p>
<p>広島駅の駅ビルにあるラーメン屋.<br/>
改札を出てすぐの駅ビル内にあるという立地, そして「程よく混んでいるがほとんど待つ事はない」という空き具合.<br/>
同じフロアには広島焼きの店が多数あるのですが, 昼飯時などは殺人的に混んでるんですよね...<br/>
その中で, ほとんど並ばずにサッと入れるこの店の存在は有難いです.<br/>
乗り継ぎの事情で, 広島で食事を取るという時は, 大抵この店に行っています.</p>
<p>さて, Wikipedia先生曰く, 尾道ラーメンは次のような特長があるらしいです.</p>
<ul>
<li>瀬戸内海の小魚によるだし(いりこだし)を加えた濁らせない鶏がらスープ</li>
<li>タレはシンプルな醤油味ベース</li>
<li>歯ごたえのある独特の食感の平打ち麺(非常に伸びやすい)</li>
<li>薬味は青ネギ、具材としてチャーシュー、メンマを使用</li>
<li>比較的大き目の豚の背脂ミンチをスープに浮かべる</li>
</ul>
<p><img src="http://hachiojipm.github.io/static/image/gourmet-onomichi-ramen.jpg" alt="尾道ラーメン" /></p>
<p>写真はチャーシュー麺. 写真では背脂ミンチは見当たりませんが, チャーシューの下にこれでもか! というくらい入ってます.<br/>
麺が伸びないうちにズルっと頂いた後, 背脂の食感を味わいながらスープを飲むのがたまらなくたまらない... そんな一品です.</p>
<h2>鳥取 / 「砂丘会館」の刺身定食</h2>
<p>-> <a href="http://tabelog.com/tottori/A3101/A310101/31000346/">食べログ</a></p>
<p>鳥取砂丘のすぐ近く, 砂丘会館という建物の中にある食事所.<br/>
ここで頂いたのが, 1500円の刺身定食.</p>
<p><img src="http://hachiojipm.github.io/static/image/gourmet-tottori-sashimi.jpg" alt="刺身定食" /></p>
<p>新鮮な海の幸がたっぷり!</p>
<p><img src="http://hachiojipm.github.io/static/image/gourmet-tottori-sashimi-1.jpg" alt="刺身" /></p>
<p>刺身をズーム. なんとカニまで...!<br/>
新鮮な海の幸をたっぷり楽しめる刺身定食, 鳥取砂丘を堪能した後に是非味わって頂きたい逸品です.</p>
<h2>宮崎 / 「おぐら」のチキン南蛮</h2>
<p>-> <a href="http://tabelog.com/miyazaki/A4501/A450101/45000012/">食べログ</a></p>
<p>就活の時にたまたま知り合った宮崎大学の知人が紹介してくれた, チキン南蛮発祥の店.<br/>
宮崎駅前からちょっと歩いた路地裏っぽい場所にあるので, 初見で行くには結構悩みそうな立地ですが, 行く価値は十二分にあります.</p>
<p><img src="http://hachiojipm.github.io/static/image/gourmet-miyazaki-namban.jpg" alt="チキン南蛮" /></p>
<p>タルタルチキンたっぷりのチキン南蛮は食べごたえ抜群!<br/>
このボリューム, この味, そしてこれご飯がついて980円というのは非常に有難いお値段.<br/>
肉好きな人間としては, また宮崎に行って食べたいなーと思っています.</p>
<h2>大分 / 「地獄蒸し工房 鉄輪」の地獄蒸し</h2>
<p>-> <a href="http://tabelog.com/oita/A4402/A440202/44004949/">食べログ</a></p>
<p>大分は別府と言えば温泉. いわゆる「地獄めぐり」を含めて, 無数の温泉が湧いている温泉好きにはたまらない街です.<br/>
そんな別府の温泉を使った料理を堪能できるのが, 鉄輪にある「地獄蒸し工房 鉄輪」です.</p>
<p><img src="http://hachiojipm.github.io/static/image/gourmet-ohita-jigokumushi-01.jpg" alt="調理風景" /></p>
<p>調理といってもシンプルで, 温泉の蒸気で食材を蒸すだけ!<br/>
蒸すだけなのに, 超おいしい. それが鉄輪の地獄蒸しなのです.</p>
<p><img src="http://hachiojipm.github.io/static/image/gourmet-ohita-jigokumushi-02.jpg" alt="野菜" /><br/>
<img src="http://hachiojipm.github.io/static/image/gourmet-ohita-jigokumushi-03.jpg" alt="魚介" /><br/>
<img src="http://hachiojipm.github.io/static/image/gourmet-ohita-jigokumushi-04.jpg" alt="根菜" /><br/>
<img src="http://hachiojipm.github.io/static/image/gourmet-ohita-jigokumushi-05.jpg" alt="チキン" /></p>
<p>どれもこれも美味しいのですが, 特にオススメは野菜.<br/>
キャベツやかぼちゃが持つ, 野菜の甘みというものが最高に引きたてられていました.<br/>
ジャガイモやさつまいもも, ホクホクで最高!</p>
<p>この時は, 研究旅行の一環で5人くらいで行ったのですが, 1人1000〜1500円くらいで地獄蒸しを堪能できた気がします.<br/>
グループで別府に行くなら, これはもう行くしかないですね!</p>
<h2>長崎 / 「ログキット」の佐世保バーガー</h2>
<p>佐世保といえばハンバーガー. その中で特にインパクトがあったのが, 佐世保駅にあったハンバーガーショップ, ログキットの佐世保バーガーです.</p>
<p>この店のハンバーガーは何といってもデカイ.<br/>
店のメニューには「スモールサイズ」と「レギュラーサイズ」と書いてあるのですが, 明らかにスモールはレギュラーの, レギュラーはビッグの間違いです.<br/>
「レギュラーサイズ1つ!」と注文すると, レジの店員さんが調理の店員さんに「おっきいやつ1個!!!」みたいな感じで言ってましたし.</p>
<p><img src="http://hachiojipm.github.io/static/image/gourmet-nagasaki-hamburger.jpg" alt="ハンバーガー" /></p>
<p>...普通のハンバーガーの1.5倍くらいの面積があります.<br/>
どう考えても口に入らないので, これを上から押さえつけて潰し, 食べやすくしてから食べるのが本場アメリカ流... と説明していました.<br/>
デカイだけでなくとても美味しくて, 特にお肉が非常にジューシー. 駅に近いこともあって, 佐世保に行った時はまた食べたいなあ... と思っています.</p>
<h2>鹿児島 / 「児玉」の薩摩定食</h2>
<p>-> <a href="http://tabelog.com/kagoshima/A4601/A460101/46001390/">食べログ</a></p>
<p>鹿児島の中心地, 九州新幹線の終着駅でもある鹿児島中央駅から歩いてすぐにある定食屋, 「児玉」.<br/>
たまたま泊まったホテルの目の前にあって, 適当に入ってみた店なのですが, これが大成功でした.</p>
<p><img src="http://hachiojipm.github.io/static/image/gourmet-kagoshima-satsuma.jpg" alt="薩摩定食" /></p>
<p>鹿児島名物が集結した「薩摩定食」! <br/>
左から地鶏の刺身, きびなごの刺身, さつま揚げ, 豚足で, お値段なんと1800円!<br/>
地鶏の刺身は噛めば噛むほど味が出てきて, 豚足は柔らかい肉とコリコリした軟骨の食感がたまらない!</p>
<p>あとこの時は, 旅行がスタートしたばかりで旅費に余裕があったので, 調子にのって黒豚のとんかつなるものも頼んでみたり.</p>
<p><img src="http://hachiojipm.github.io/static/image/gourmet-kagoshima-katsu.jpg" alt="黒豚のとんかつ" /></p>
<p>これもまた美味! すごく柔らかくて, 噛み続けると肉が消えるんです!<br/>
普通, とんかつとか食べて噛み続けていると, 肉の繊維? っぽいものが残るじゃないですか. あれが残らないんです!</p>
<p>鹿児島名物をひと通り堪能できる児玉, 鹿児島の食事で悩んだ時は, 是非行ってみて下さい.</p>
<h2>福岡 / 「ふとっぱら」のラーソーメン</h2>
<p>-> <a href="http://tabelog.com/fukuoka/A4001/A400102/40003954/">食べログ</a></p>
<p>九州は基本的にどこに行ってもメシがうまいですが, その中でも福岡は別格.<br/>
モツ鍋, 明太子, 魚介, とんこつラーメン... ほんと食事には困らない都市です.</p>
<p>そんな中でもお気に入りなのが, ふとっぱらという居酒屋のラーソーメン!<br/>
ふとっぱらという店は, Fukuoka.pmがあった時には, 大抵2次会として来るお店です(ちなみにその後は天神駅前の屋台に行く, という所までがテンプレ).</p>
<p><img src="http://hachiojipm.github.io/static/image/gourmet-fukuoka-rasomen.jpg" alt="ラーソーメン" /></p>
<p>氷で冷やした博多ラーメンの細麺を, ほんのり甘い醤油ベースのたれで頂く.<br/>
1次会でたらふく食べた後でもスルスル食べれる, 素朴なのにクセのある一品です.</p>
<p>僕も大好きですし, このあいだのFukuoka.pmで一緒に行った@yusukebeさんも大絶賛していましたし, Fukuoka.pmの方曰く「以前Fukuoka.pmに来ていたYさんはラーソーメンをわんこそばのように食べていた.」とか...</p>
<p>というわけで, 是非皆さんもFukuoka.pmに行って, Fukuoka.pmの方と一緒にラーソーメンを食べましょう!</p>
<h2>まとめ</h2>
<p>「papixのグルメ」ということで, 九州と中国地方の美味しいグルメを紹介してみました.<br/>
九州でゆーすけべーさんと食べた明太子御膳とかも紹介したかったんですが, 節操無く紹介すると時間がなくなるので今回は断念...<br/>
なお, 次回は「papixのグルメ 〜北海道編〜」になるのではないでしょうか.</p>
<p>そして明日13日はまたまた@hirobanexさん担当の予定! 果たしてどんな記事がアップされるのか, 楽しみです.</p>
]]></content>
<id>tag:hachiojipm.github.io,2013-12-13:entry-2013-12-12-papix-gourmet.html</id>
<published>2013-12-12T59:59:00+0900</published>
<updated>2013-12-21T04:09:42+09:00</updated>
</entry>
<entry>
<title type="text">Compiler::Lexerを使ったモジュール達</title>
<link href="http://hachiojipm.github.io/entry/2013-12-17-compiler-lexer.html" />
<author>
<name>papix</name>
</author>
<content><![CDATA[<h1>Compiler::Lexerを使ったモジュール達</h1>
<p>Hachioji.pm Advent Calendarの17日目です. 担当はもう何度記事を書いたかわからなくなってきたpapixです.<br/>
今日は, 最近注目を集めている@goccyさん製のPerl用トーカナイザ, <a href="http://search.cpan.org/~goccy/Compiler-Lexer/">Compiler::Lexer</a>を活用したモジュール達を紹介したいと思います.</p>
<h2>Perl::MinimumVersion::Fast by @tokuhirom</h2>
<p><a href="http://blog.64p.org/entry/2013/05/02/185530">Compiler::Lexer をつかって Perl::MinimumVersion::Fast をかいてみた</a></p>
<p>tokuhiromさんが作った, 「あるPerlのコードが, どのPerlのバージョンを必要とするか」を確認できるモジュール.<br/>
本家のPerl::MinimumVersionはPPIで実装されており, これをtokuhiromさんがCompiler::Lexer化して完成したものです.<br/>
このモジュールを使えば, Perl 5.8を対象としたライブラリで<code>//</code>や<code>~~</code>を使っていないかどうかを確認したりできます.</p>
<h2>Test::Synopsis::Expectation by @moznion</h2>
<p><a href="http://mackee.hatenablog.com/entry/2013/12/16/234919">SYNOPSISのコメントを使ってテストするTest::Synopsis::Expectation</a><br/>
<a href="http://moznion.hatenadiary.com/entry/2013/12/17/113458">Test::Synopsis::Expectationというモジュールをリリースしました</a></p>
<p><a href="https://twitter.com/t_wada">@t_wada</a>さんから大絶賛を受けていた, moznionさんのモジュールです.</p>
<blockquote class="twitter-tweet" lang="ja"><p>“SYNOPSIS自体に期待する値を埋め込んでおいて,それをもとにSYNOPSISのコードをテストする事で,SYNOPSISがSyntax的にもLogic的にもValidであることをチェック” すばらしい! jsにもREADME.m… <a href="http://t.co/xaVBM2C534">http://t.co/xaVBM2C534</a></p>— Takuto Wada (@t_wada) <a href="https://twitter.com/t_wada/statuses/412849220853317632">2013, 12月 17</a></blockquote>
<p></p>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
<p></p>
<p>Synopsisのコメントを使ってテストをするモジュールです.<br/>
「モジュールの挙動がよくわからなかったら, とりあえずSynopsisを動かしてみる」という人にとって, 肝心のSynopsisが間違っている(Syntaxが間違ってるとか, 過去の仕様に準拠したSynopsisだったりとか...)と結構困ります.<br/>
モジュール開発者がこのモジュールでテストをしておけば, Synopsisが本当に正しいかどうかを確認することができるので, このようなトラブルを回避できるようになります.</p>
<p>このモジュールをつくる為に, moznionさんはCompiler::Lexerにいくつかのパッチを送っていました.<br/>
ただ, 「時折Compiler::Lexerが原因? でテストがコケる...」という症状があるらしく, 現在PPI版の実装に取り組んでいるとのことです.<br/>
将来的には, 後述のTest::LocalFunctionsのように, バックエンドをPPIとCompiler::Lexerから選べるようになるのではないでしょうか.</p>
<h2>Test::LocalFunctions::Fast by @moznion / @papix</h2>
<p><a href="http://moznion.hatenadiary.com/entry/20130412/1365795045">Test::LocalFunctions というモジュールを書いてました</a><br/>
<a href="http://blog.papix.net/entry/2013/05/02/223803">Test::LocalFunctions::Fastというモジュールを作った.</a><br/>
<a href="http://blog.papix.net/entry/2013/05/27/224100">Test::LocalFunctions::FastをTest::LocalFunctionsにマージしてもらいました.</a></p>
<p>Test::LocalFunctionsは, モジュールの中で使われていないローカル関数がないかテストする為のモジュールです.<br/>
元々はmoznionさんがPPIを使って実装していて, それをpapix(私)がCompiler::Lexerを使って高速化し, Test::LocalFunctions::Fastの名前でGitHubに公開しました.<br/>
最終的には, Test::LocalFuctionsにマージしてもらってmoznionさんが管理・リリースしています.</p>
<h2>Test::UsedModules::Fast by @papix</h2>
<p><a href="http://blog.papix.net/entry/2013/07/09/211600">Test::UsedModules::Fastに心が折れたので, Test::UsedModulesの紹介をします</a></p>
<p><a href="https://github.com/moznion/Test-UsedModules">Test::UsedModules</a>は, こちらもまたまたmoznionさんが開発された, 必要のないモジュールを<code>use</code>/<code>require</code>していないか確認してくれるモジュールです.<br/>
このモジュールもPPIで実装されていたので, papix(私)がCompiler::Lexerを使って高速化してみました.<br/>
PPIとCompiler::Lexerの差で随分苦労したのですが, 最終的には何とか完成までこぎつけることができました.<br/>
こちらも, 本家(Test::UsedModules)にマージしてもらうつもりだったのですが... いろいろ忙しくて, その辺りの作業を放置して今に至っています.</p>
<p>とりあえず暫定版が<a href="https://github.com/papix/Test-UsedModules/tree/fast">こちら</a>にありますので, 試してみたい方はどうぞ.</p>
<h2>まとめ</h2>
<p>Compiler::Lexerを活用したモジュールを紹介してみました.<br/>
ここ最近, Compiler::Lexerはかなり安定してきた(以前は時折SEGVったりすることがありました...)と印象を持っているので, モジュールを開発する中でPerlのトーカナイザが必要であれば, 使ってみる価値があると思います.</p>