<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.bulknews.net/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><description>A weblog about Programming, Tech, gadgets, Japan and San Francisco.</description><title>Tatsuhiko Miyagawa's blog</title><generator>Tumblr (3.0; @bulknews)</generator><link>http://weblog.bulknews.net/</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.bulknews.net/bulknews" /><feedburner:info uri="bulknews" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://tumblr.superfeedr.com/" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site.</feedburner:browserFriendly><item><title>Tatsuhiko Miyagawa's Podcast: ep11: Google I/O 2013 (kenn, mootoh)</title><description>&lt;a href="http://podcast.bulknews.net/post/50644641376/google-io-2013-kenn-mootoh"&gt;Tatsuhiko Miyagawa's Podcast: ep11: Google I/O 2013 (kenn, mootoh)&lt;/a&gt;: &lt;p&gt;&lt;a href="http://podcast.bulknews.net/post/50644641376/google-io-2013-kenn-mootoh" class="tumblr_blog"&gt;bulknews-podcast&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;div class="audio-wrap"&gt;&lt;/div&gt; &lt;p&gt;収録時間 46:22 | &lt;a class="audio-download" href="http://cache.bulknews.net/podcast-ep11.mp3" target="_blank"&gt;Download MP3 (26MB)&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Kenn Ejima さん (&lt;a href="https://twitter.com/kenn" target="_blank"&gt;@kenn&lt;/a&gt;), Motohiro Takayama さん (&lt;a href="https://twitter.com/mootoh" target="_blank"&gt;@mootoh&lt;/a&gt;) を迎えて、Google I/O, Google Glass, Google Play Game Services などについて話しました。&lt;/p&gt; &lt;p&gt;番組へのフィードバックは Twitter にて &lt;a href="http://twitter.com/miyagawa" target="_blank"&gt;@miyagawa&lt;/a&gt; またはハッシュタグ #bulknews にてお寄せください。&lt;/p&gt; &lt;h3&gt;Show Notes&lt;/h3&gt; &lt;ul&gt;&lt;li&gt;&lt;a href="https://developers.google.com/events/io/" target="_blank"&gt;Google IO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.theverge.com/2013/5/15/4334634/best-of-googles-i-o-2013-keynote-hangouts-google-galaxy-s4" target="_blank"&gt;The best of Google I/O 2013…&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;

&lt;p&gt;2週間で3エピソードとちょっと飛ばし気味ですが、時事ネタということでGoogle I/O 話。翌日でキーノートちょっと忘れてますが、参加してたmootohさんのおかげでいろいろ拾えましたね。後半の Game Services 話は業界トークっぽくて面白かったです。&lt;/p&gt;

&lt;p&gt;録音しながらライブストリーミングもしてみたんですが、時間帯の関係もあってフィードバックをもらうのが難しかったですね。twitter 以外にも Lingr とかのほうがエンゲージしやすいのかな。いろいろ試行錯誤してみる必要ありですね。&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/bulknews/~4/5DjVSQvvna4" height="1" width="1"/&gt;</description><link>http://feeds.bulknews.net/~r/bulknews/~3/5DjVSQvvna4/50677439109</link><guid isPermaLink="false">http://weblog.bulknews.net/post/50677439109</guid><pubDate>Fri, 17 May 2013 14:36:07 -0700</pubDate><feedburner:origLink>http://weblog.bulknews.net/post/50677439109</feedburner:origLink></item><item><title>Podcast recording and editing</title><description>&lt;p&gt;&lt;img src="http://media.tumblr.com/e19795a9ffeca6ba38eb4d27524f7c0c/tumblr_inline_mmyeumgwol1qz4rgp.png" alt=""/&gt;&lt;/p&gt;

&lt;p&gt;Here&amp;#8217;s what it looks like when it comes to editing my (semi-badly recorded) &lt;a href="http://podcast.bulknews.net/"&gt;Podcast&lt;/a&gt; episodes.&lt;/p&gt;

&lt;p&gt;When I first heard 5by5/Mule&amp;#8217;s podcasts, i was really impressed by the audio quality of their shows, since like many of you, i had a feeling that &amp;#8220;Podcast is by amateurs and audio is mediocre at best&amp;#8221;. I was blown away.&lt;/p&gt;

&lt;p&gt;So I did a little bit of research before starting my show, because I want to make it sound good too. &lt;a href="http://www.macworld.com/article/1162062/skype_garageband_podcast_tips.html"&gt;Jason Snell&amp;#8217;s article on MacWorld&lt;/a&gt; explains the current method of my recording.&lt;/p&gt;

&lt;h3&gt;Skype, Everyone Records, GarageBand&lt;/h3&gt;

&lt;p&gt;The tl;dr for that is, I use &lt;a href="http://www.ecamm.com/mac/callrecorder/"&gt;Skype Call Recorder&lt;/a&gt; to record both my audio and guest(s) on Skype, on separate tracks. It&amp;#8217;s great that it records my audio locally, not via Skype, so it&amp;#8217;s a direct input from my Mic.&lt;/p&gt;

&lt;p&gt;I ask guests to record their local audio using QuickTime too and send files after recording. Then I synchronize them with Skype&amp;#8217;s recorded audio, then discard the Skype audio file.&lt;/p&gt;

&lt;p&gt;Now I get everyone&amp;#8217;s locally recorded audio, on separate tracks on GarageBand, and I only need to edit when there&amp;#8217;re murmuring or conflicts, etc. In Theory.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m often asked how long it takes to edit the show - if the show is one hour, it usually takes 2 to 3 hours.&lt;/p&gt;

&lt;h3&gt;Microphone and Headphones&lt;/h3&gt;

&lt;p&gt;Recent episodes needed a little bit more of my editing work than previously - this is not to particularly blame anyone but the technologies/hardware, because it&amp;#8217;s a mere audio leak on other&amp;#8217;s ends.&lt;/p&gt;

&lt;p&gt;Basically when I speak, my voice leaks on the guest&amp;#8217;s track because their mic picks up the audio from the earpiece, and makes an echo/delay sound effect that I need to cancel out. That leads to the chaotic GarageBand editing shown earlier. Noise gate works to cancel that, but it also cancels the valid voice and i avoid doing it.&lt;/p&gt;

&lt;p&gt;I ask everyone to use headphone/earphone, but sometimes the microphone is too close to them, or the headphone is not solid enough and leak audio from there. It doesn&amp;#8217;t seem to happen to everyone (which is good), so it should definitely be related to the combination/setup of the microphone and headphones.&lt;/p&gt;

&lt;p&gt;My particular setup is  &lt;a href="http://www.amazon.com/Blue-Microphones-Yeti-USB-Microphone/dp/B002VA464S/?tag=bulknewstypep-20"&gt;Blue Yeti USB Microphone&lt;/a&gt; and &lt;a href="http://www.amazon.com/Klipsch-IMAGE-S4-Noise-Isolating-Headphones/dp/B001V9LPT4?tag=bulknewstypep-20"&gt;Klipsch IMAGE S4&lt;/a&gt; and don&amp;#8217;t have that problem on my end. Klipsch has a very crisp sound with very little sound leak, as an in-ear headphone.&lt;/p&gt;

&lt;p&gt;In terms of not leaking audio, &lt;a href="http://www.amazon.com/s?ie=UTF8&amp;amp;page=1&amp;amp;rh=n%3A172541%2Cp_n_feature_browse-bin%3A2266982011"&gt;Over-the-ear Headphones&lt;/a&gt; should be the best, but unless you have a microphone with monitoring capabilities (like Yeti :D), it might be difficult to hear what you speak while speaking.&lt;/p&gt;

&lt;p&gt;I guess this is one of the difficulties of doing the show with irregular guests, since we can&amp;#8217;t ask guests to invest some money on microphones/headphones, which I would if I do recurring/fixed guests :)&lt;/p&gt;

&lt;h3&gt;Tips&lt;/h3&gt;

&lt;p&gt;Here&amp;#8217;s a simple thing: &lt;em&gt;don&amp;#8217;t&lt;/em&gt; use Apple&amp;#8217;s iPhone headset. Its audio isn&amp;#8217;t bad, but it picks up a lot from its earpiece, and makes a big noise when touched with your clothes. Speaking of Apple, Macbook Pro Retina&amp;#8217;s dual USB microphone is fantastic, assuming you don&amp;#8217;t have a a big ambient noise.&lt;/p&gt;

&lt;p&gt;Also, some of the Japanese podcast shows I listen to have severe audio quality issues (although I&amp;#8217;m not sure if they read this in English ;p) - Just don&amp;#8217;t record the show in a cafe/restaurant with big ambient noise. Also, double your bitrate and make a mono MP3, rather than low bitrate stereo files.&lt;/p&gt;

&lt;p&gt;&amp;#8212;&lt;/p&gt;

&lt;p&gt;Anyway this was my current setup. For the latest &lt;a href="http://podcast.bulknews.net/post/50644641376/google-io-2013-kenn-mootoh"&gt;episode 11&lt;/a&gt; where we talked about Google I/O, we also experimented with the live streaming with Mixlr. I will explain the setup about it (pretty simple if you have a spare Mac mini) later if you&amp;#8217;re interested :)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/bulknews/~4/Tk2-qnYXOAs" height="1" width="1"/&gt;</description><link>http://feeds.bulknews.net/~r/bulknews/~3/Tk2-qnYXOAs/50664035067</link><guid isPermaLink="false">http://weblog.bulknews.net/post/50664035067</guid><pubDate>Fri, 17 May 2013 11:07:00 -0700</pubDate><feedburner:origLink>http://weblog.bulknews.net/post/50664035067</feedburner:origLink></item><item><title>Tatsuhiko Miyagawa's Podcast: ep10: RailsConf, Ruby 2.0, Rails 4 (mrkn, r7kamura)</title><description>&lt;a href="http://podcast.bulknews.net/post/50151189955/ep10-railsconf-kenta-murata-ryo-nakamura"&gt;Tatsuhiko Miyagawa's Podcast: ep10: RailsConf, Ruby 2.0, Rails 4 (mrkn, r7kamura)&lt;/a&gt;: &lt;p&gt;&lt;a href="http://podcast.bulknews.net/post/50151189955/ep10-railsconf-kenta-murata-ryo-nakamura" class="tumblr_blog"&gt;bulknews-podcast&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Kenta Murataさん (&lt;a href="https://twitter.com/mrkn" target="_blank"&gt;@mrkn&lt;/a&gt;), Ryo Nakamuraさん (&lt;a href="https://twitter.com/r7kamura" target="_blank"&gt;@r7kamura&lt;/a&gt;) を迎えて、RailsConf, Ruby 2.0, Rails 4, Chanko 2.0, RubyKaigi, YAPC などについて話しました。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;今週は日本語営業に戻って、mrkn, r7akamura とRuby 話をしました。ちなみに３人の収録だと間が持ちやすくていいんですが、編集がちょっと大変。&lt;/p&gt;

&lt;h3&gt;Rails 2.3 is Kansas&lt;/h3&gt;

&lt;p&gt;DHH の Kansas ネタは&lt;a href="http://www.justin.tv/confreaks/c/2246896"&gt;ConfreaksにKeynoteが上がってました&lt;/a&gt;。13分あたり。hkmurakami さんが &lt;a href="http://www.hkmurakami.com/j/2013/014_miyagawa_podcast_ep10.html"&gt;詳しく解説&lt;/a&gt; してくれてます。日本の2ch でよくでる&lt;a href="http://news020.blog13.fc2.com/blog-entry-801.html"&gt;群馬県ネタ&lt;/a&gt; に近いものがありますね。&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/bulknews/~4/zTixmcEVYoY" height="1" width="1"/&gt;</description><link>http://feeds.bulknews.net/~r/bulknews/~3/zTixmcEVYoY/50312253777</link><guid isPermaLink="false">http://weblog.bulknews.net/post/50312253777</guid><pubDate>Sun, 12 May 2013 19:28:00 -0700</pubDate><feedburner:origLink>http://weblog.bulknews.net/post/50312253777</feedburner:origLink></item><item><title>Tatsuhiko Miyagawa's Podcast</title><description>&lt;a href="http://podcast.bulknews.net/post/49915262884/ep9-making-keyboard-jesse-vincent"&gt;Tatsuhiko Miyagawa's Podcast&lt;/a&gt;: &lt;p&gt;&lt;a href="http://podcast.bulknews.net/post/49915262884/ep9-making-keyboard-jesse-vincent" class="tumblr_blog"&gt;bulknews-podcast&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;On the episode 9 of my podcast, featuring Jesse Vincent (&lt;a href="https://twitter.com/obra" target="_blank"&gt;@obra&lt;/a&gt;), we discussed his recent experiments to build his own keyboard.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Some of my followers on Twitter and friends on Facebook asked if there was any plan for an English episode of my podcast.&lt;/p&gt;

&lt;p&gt;So here it is, with Jesse Vincent, we talked about his recent exploration of making his own Keyboard. We also discussed little bit about perl, and OSDC.TW, the conference we just attended a couple of weeks ago.&lt;/p&gt;

&lt;p&gt;Might want to do more of English episodes in the future, but comments and feedback is always appreciated.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/bulknews/~4/u05rAOdYt_k" height="1" width="1"/&gt;</description><link>http://feeds.bulknews.net/~r/bulknews/~3/u05rAOdYt_k/49920929057</link><guid isPermaLink="false">http://weblog.bulknews.net/post/49920929057</guid><pubDate>Wed, 08 May 2013 00:37:02 -0700</pubDate><feedburner:origLink>http://weblog.bulknews.net/post/49920929057</feedburner:origLink></item><item><title>Starman 0.3011</title><description>&lt;a href="https://metacpan.org/source/MIYAGAWA/Starman-0.3011/Changes"&gt;Starman 0.3011&lt;/a&gt;: &lt;blockquote&gt;
  &lt;ul&gt;&lt;li&gt;Disabled flock serialization when it’s unnecessary. This will improve the performance when you have many Starman worker processes on Linux systems (kazeburo) #69&lt;/li&gt;
  &lt;/ul&gt;&lt;/blockquote&gt;

&lt;p&gt;It’s a minor version update, but contains very important fix - it bypasses flock serialization in accept in most UNIX systems where there’s only one port being listened. It will boost the performance when you have a bunch of worker processes. Thanks to kazeburo for the patch on &lt;a href="http://kazeburo.hatenablog.com/entry/2013/04/15/173407"&gt;his blog&lt;/a&gt;!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/bulknews/~4/Nin07p74kuw" height="1" width="1"/&gt;</description><link>http://feeds.bulknews.net/~r/bulknews/~3/Nin07p74kuw/48817672778</link><guid isPermaLink="false">http://weblog.bulknews.net/post/48817672778</guid><pubDate>Wed, 24 Apr 2013 18:15:27 -0700</pubDate><feedburner:origLink>http://weblog.bulknews.net/post/48817672778</feedburner:origLink></item><item><title>Freeze CPAN deps with PAUSE git</title><description>&lt;a href="https://github.com/batchpause/PAUSE-git"&gt;Freeze CPAN deps with PAUSE git&lt;/a&gt;: &lt;p&gt;&lt;a href="http://pause.perl.org"&gt;PAUSE&lt;/a&gt; is the backend of CPAN module upload server, and since April 2012, &lt;a href="http://rjbs.manxome.org/rubric/entry/1948"&gt;thanks to rjbs&lt;/a&gt;, for every perl module upload, it &lt;a href="https://github.com/andk/pause/pull/13#issuecomment-4844845"&gt;commits the index list&lt;/a&gt; (as well as author/permission mapping). And now it is available &lt;a href="https://github.com/batchpause/PAUSE-git"&gt;on github&lt;/a&gt;. Thanks Andreas!&lt;/p&gt;

&lt;p&gt;This makes it so easy to freeze CPAN module dependencies for your application solely based on time.&lt;/p&gt;

&lt;p&gt;First, check out the repo, and then specify the revision with date time you want to freeze at:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git clone git://github.com/batchpause/PAUSE-git.git
cd PAUSE-git
git checkout `git rev-list -n 1 --before "2013-01-01 00:00" master`
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Then, refernce that 02packages from cpanm:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;cpanm --installdeps . \
  --mirror-index /path/to/PAUSE-git/02packages.details.txt
  --mirror &lt;a href="http://backpan.perl.org/"&gt;http://backpan.perl.org/&lt;/a&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;That’s it, really.&lt;/p&gt;

&lt;p&gt;If you want more control over versions, dev releases and git forks, you might need &lt;a href="https://github.com/miyagawa/carton"&gt;Carton&lt;/a&gt;. And you can only go back to 2012 April and no older than that. But for a simple time-based index, this is all you need.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/bulknews/~4/QFk2U_wBHIY" height="1" width="1"/&gt;</description><link>http://feeds.bulknews.net/~r/bulknews/~3/QFk2U_wBHIY/48794875384</link><guid isPermaLink="false">http://weblog.bulknews.net/post/48794875384</guid><pubDate>Wed, 24 Apr 2013 13:21:00 -0700</pubDate><feedburner:origLink>http://weblog.bulknews.net/post/48794875384</feedburner:origLink></item><item><title>kazeburo/Monoceros · GitHub</title><description>&lt;a href="https://github.com/kazeburo/Monoceros"&gt;kazeburo/Monoceros · GitHub&lt;/a&gt;: &lt;blockquote&gt;
  &lt;p&gt;Monoceros is PSGI/Plack server supports HTTP/1.0. Monoceros has a event-driven connection manager and preforking workers. Monoceros can keep large amount of connection at minimal processes&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Great addition to the PSGI/Plack web servers. Gets the best of event-based servers to handle C10K connections while working a pool of preforking workers.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/bulknews/~4/ZmSoEDYi-Rg" height="1" width="1"/&gt;</description><link>http://feeds.bulknews.net/~r/bulknews/~3/ZmSoEDYi-Rg/48793062684</link><guid isPermaLink="false">http://weblog.bulknews.net/post/48793062684</guid><pubDate>Wed, 24 Apr 2013 12:57:01 -0700</pubDate><feedburner:origLink>http://weblog.bulknews.net/post/48793062684</feedburner:origLink></item><item><title>nginx 1.4.0 is out</title><description>&lt;a href="http://nginx.org/#2013-04-24"&gt;nginx 1.4.0 is out&lt;/a&gt;: &lt;blockquote&gt;
  &lt;p&gt;nginx-1.4.0 stable version has been released, incorporating many new features developed in the 1.3.x branch - support for proxying of WebSocket connections, OCSP stapling, SPDY module, gunzip filter and more.&lt;/p&gt;
&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/bulknews/~4/SW5SzAXt2_s" height="1" width="1"/&gt;</description><link>http://feeds.bulknews.net/~r/bulknews/~3/SW5SzAXt2_s/48792886311</link><guid isPermaLink="false">http://weblog.bulknews.net/post/48792886311</guid><pubDate>Wed, 24 Apr 2013 12:54:00 -0700</pubDate><feedburner:origLink>http://weblog.bulknews.net/post/48792886311</feedburner:origLink></item><item><title>Listen-IT: ３編セット４０％オフキャンペーン中</title><description>&lt;a href="http://blog.listen-it.com/2013/04/sale.html"&gt;Listen-IT: ３編セット４０％オフキャンペーン中&lt;/a&gt;: &lt;blockquote&gt;
  &lt;p&gt;宮川達彦さんのPodcastをスポンサーしましたので、その記念に４０％オフキャンペーン開催中です。母音編、子音編、文章編、３つセットでご購入いただくと定価２０００円なのですが、今なら１２００円。全部で６０レッスン、６６９単語と１７０の文章が詰まっていますので、１レッスン２０円、単語／文章当たり１．４円と大変お買い得です！&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Great app, 40% off sale. Go buy it and support my podcast :)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/bulknews/~4/TkVuEVnll2I" height="1" width="1"/&gt;</description><link>http://feeds.bulknews.net/~r/bulknews/~3/TkVuEVnll2I/48227296138</link><guid isPermaLink="false">http://weblog.bulknews.net/post/48227296138</guid><pubDate>Wed, 17 Apr 2013 15:00:00 -0700</pubDate><feedburner:origLink>http://weblog.bulknews.net/post/48227296138</feedburner:origLink></item><item><title>Tatsuhiko Miyagawa's Podcast: Podcast ep8: ゲスト 伊藤直也 高林哲</title><description>&lt;a href="http://podcast.bulknews.net/post/48119788483/podcast-ep8-naoya-satoru"&gt;Tatsuhiko Miyagawa's Podcast: Podcast ep8: ゲスト 伊藤直也 高林哲&lt;/a&gt;: &lt;p&gt;&lt;a href="http://podcast.bulknews.net/post/48119788483/podcast-ep8-naoya-satoru" class="tumblr_blog"&gt;bulknews-podcast&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
 &lt;p&gt;スポンサー: &lt;a href="https://itunes.apple.com/app/listen-it/id512751653?ls=1&amp;mt=8" target="_blank"&gt;Listen-IT&lt;/a&gt;&lt;/p&gt; &lt;p&gt;伊藤直也さん (&lt;a href="https://twitter.com/naoya_ito" target="_blank"&gt;@naoya_ito&lt;/a&gt;) 高林哲さん (&lt;a href="https://plus.google.com/101463981287086074128" target="_blank"&gt;bkノート&lt;/a&gt;) をゲストに迎えて、日米キャリアパス、スクリーンキャスト、ペアプログラミング、エンジニアリング英語などについて話しました。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;おなじみのお２人と、都内某所で収録しました。後ろで将棋を指してる音が聞こえます :)&lt;/p&gt;

&lt;p&gt;本記事にもありますが、収録機材がノイズを結構拾ってしまっていて、ちょっと気になるかもしれませんがご了承を。やっぱりマイクのクオリティが音質に直結しますね。Skypeだとあとで編集はいろいろできるんですが、直録りはいろいろ難しいです。&lt;/p&gt;

&lt;p&gt;このあとまだまだたくさんしゃべったんですが、長くなったのでここまで。またお蔵出しもあるかもです。&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/bulknews/~4/SU2asjS7jos" height="1" width="1"/&gt;</description><link>http://feeds.bulknews.net/~r/bulknews/~3/SU2asjS7jos/48179701399</link><guid isPermaLink="false">http://weblog.bulknews.net/post/48179701399</guid><pubDate>Tue, 16 Apr 2013 21:37:41 -0700</pubDate><feedburner:origLink>http://weblog.bulknews.net/post/48179701399</feedburner:origLink></item><item><title>Tatsuhiko Miyagawa's Podcast: ep7 ゲスト: ゆーすけべー (yusukebe)</title><description>&lt;a href="http://podcast.bulknews.net/post/46999935332/podcast-ep7-yusukebe"&gt;Tatsuhiko Miyagawa's Podcast: ep7 ゲスト: ゆーすけべー (yusukebe)&lt;/a&gt;: &lt;p&gt;&lt;a href="http://podcast.bulknews.net/post/46999935332/podcast-ep7-yusukebe" class="tumblr_blog"&gt;bulknews-podcast&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;div class="audio-wrap"&gt;&lt;/div&gt; &lt;p&gt;収録時間 40:06 | &lt;a class="audio-download" href="http://cache.bulknews.net/podcast-ep7.mp3" target="_blank"&gt;Download MP3 (24MB)&lt;/a&gt;&lt;/p&gt; &lt;p&gt;第７回は和田裕介さん (&lt;a href="https://twitter.com/yusukebe" target="_blank"&gt;@yusukebe&lt;/a&gt;) をゲストに迎えて、Perl プログラミング、フレームワーク、モジュール開発、YAPC などについて話しました。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;いつになく、Perl成分の濃い話になりました。最近、昔話多め感もありますが、それもアリということで。&lt;/p&gt;

&lt;p&gt;後半の方ででてきた、Fat vs Thin libraries の話は、前回のYAPC::Asia のパネルディスカッションでも同じような話をしたんですが、YAPCでのスピーカー勢の（大半の）考え方と、実際に使われているモジュール・ライブラリ間でギャップがあったりしないかなぁ、という思いを最近持っていて、ネタにしてみました。&lt;/p&gt;

&lt;p&gt;軽いものが使いやすいのはそうなんですが、重いもの、依存が多いものにはそれなりの理由があったり、枯れていたりというメリットもあるわけで、適材適所かなぁ、と最近は思っています。ま、同じ事ができて速いなら、そっちのほうがいいには決まってるんですけどね。&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/bulknews/~4/hARvw1d4W7Y" height="1" width="1"/&gt;</description><link>http://feeds.bulknews.net/~r/bulknews/~3/hARvw1d4W7Y/47010036936</link><guid isPermaLink="false">http://weblog.bulknews.net/post/47010036936</guid><pubDate>Wed, 03 Apr 2013 01:11:18 -0700</pubDate><feedburner:origLink>http://weblog.bulknews.net/post/47010036936</feedburner:origLink></item><item><title>test_requires all the way</title><description>&lt;p&gt;&lt;strong&gt;tl;dr&lt;/strong&gt; Today possibly for the first time ever, CPAN toolchain ecosystem all support test requirements as separate from build requirements. I can&amp;#8217;t be happier ever.&lt;/p&gt;

&lt;p&gt;Little bit of history. Timeline might be not in the correct order.&lt;/p&gt;

&lt;p&gt;Module::Install &lt;a href="https://metacpan.org/source/ADAMK/Module-Install-1.06/Changes#L341"&gt;always had test_requires()&lt;/a&gt; with forward compatibility in mind. However META spec &lt;a href="http://module-build.sourceforge.net/META-spec-v1.4.html#build_requires"&gt;v1.4&lt;/a&gt; didn&amp;#8217;t support specifying test requirements separate from build requirements. So the most tools merge them as a build requirement, including &lt;a href="https://metacpan.org/source/ADAMK/Module-Install-1.06/lib/Module/Install/Metadata.pm#L143"&gt;Module::Install itself&lt;/a&gt;. This means most of the Test:: module dependencies, even though they are only used for testing, were installed even when &lt;code&gt;notest&lt;/code&gt; options is supplied (with CPAN.pm and cpanminus).&lt;/p&gt;

&lt;p&gt;&lt;a href="http://search.cpan.org/perldoc?CPAN::Meta::Spec"&gt;META spec v2.0&lt;/a&gt; came out, and it allows META (and MYMETA) to specify test requirements separately.&lt;/p&gt;

&lt;p&gt;cpanm supported parsing &lt;a href="https://github.com/miyagawa/cpanminus/commit/f9eadb1aa908cf4c94d93d3e58ae2fd91498d77d"&gt;test requirements separately, and skips installing test prereqs when &amp;#8212;notest is in use&lt;/a&gt;. But at that time, most of the tools did not support emitting test requires apart from build requires.&lt;/p&gt;

&lt;p&gt;Except Module::Build::Tiny, which just &lt;em&gt;copies&lt;/em&gt; &lt;code&gt;META.json&lt;/code&gt; to &lt;code&gt;MYMETA.json&lt;/code&gt;  upon installation, so if you use an authoring tool such as Dist::Zilla or &lt;a href="http://weblog.bulknews.net/post/46471116934/introducing-milla"&gt;Milla&lt;/a&gt; to emit META.json with test requirements apart, it will be skipped.&lt;/p&gt;

&lt;p&gt;Meanwhile rjbs added &lt;a href="https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/pull/29"&gt;TEST_REQUIRES support to MakeMaker&lt;/a&gt; at &lt;a href="http://rjbs.manxome.org/rubric/entry/1948"&gt;Paris QA hackathon 2012&lt;/a&gt;. 7 months later &lt;a href="https://metacpan.org/source/MSCHWERN/ExtUtils-MakeMaker-6.64/Changes#L19"&gt;MakeMaker 6.63_03&lt;/a&gt; was released with the fix, and non-dev version was just out in December.&lt;/p&gt;

&lt;p&gt;Same fix was added to &lt;a href="https://github.com/Perl-Toolchain-Gang/Module-Build/pull/11"&gt;Module::Build by tokuhirom&lt;/a&gt; and released as &lt;a href="https://metacpan.org/source/LEONT/Module-Build-0.4004/Changes#L11"&gt;0.40004 today&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Now, what should happen is to update &lt;code&gt;Makefile.PL&lt;/code&gt; and &lt;code&gt;Build.PL&lt;/code&gt; to make use of these new features - I &lt;a href="https://metacpan.org/source/RJBS/Dist-Zilla-4.300032/Changes#L3"&gt;patched Dist::Zilla&lt;/a&gt; so that MakeMaker and ModuleBuild emitters will use test_requires when the installer has the version with the support for it.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m trying to fix &lt;a href="https://rt.cpan.org/Public/Bug/Display.html?id=84272"&gt;Module::Install&lt;/a&gt; similarly, but as of this writing I&amp;#8217;m not that hopeful - if someone wants to take over my work to make it merged that&amp;#8217;d be super. But at this point I&amp;#8217;d rather give up and stop using Module::Install.&lt;/p&gt;

&lt;p&gt;Anyway, now when you have a module that is only used for testing, it will be (and has to be) declared and emitted correctly as a test dependency, and when you run CPAN installers, at least cpanm, with &amp;#8220;no test&amp;#8221; option, they won&amp;#8217;t be installed. This is a very important milestone.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/bulknews/~4/UgWS5cS557g" height="1" width="1"/&gt;</description><link>http://feeds.bulknews.net/~r/bulknews/~3/UgWS5cS557g/46653336492</link><guid isPermaLink="false">http://weblog.bulknews.net/post/46653336492</guid><pubDate>Fri, 29 Mar 2013 23:17:00 -0700</pubDate><feedburner:origLink>http://weblog.bulknews.net/post/46653336492</feedburner:origLink></item><item><title>Milla, a Dist::Zilla profile that doesn't suck (screencast)</title><description>&lt;p&gt;Ok, that was a little link bait title.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve been a big fan of Module::Install - it automatically figures out the metadata of my module with just &lt;code&gt;all_from&lt;/code&gt;, and does the right thing creating META files. Then it bundles itself in inc/ so that if you install from CPAN you don&amp;#8217;t need to have Module::Install pre-installed.&lt;/p&gt;

&lt;p&gt;But not everybody likes it, especially contributors who need to install plugins before doing anything, or users who want to grab the latest from git.&lt;/p&gt;

&lt;p&gt;The problem is, Module::Install is just a wrapper for MakeMaker, and MakeMaker and Module::Build are not the right tool to &lt;em&gt;create&lt;/em&gt; a distribution.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://metacpan.org/module/Dist::Zilla"&gt;Dist::Zilla&lt;/a&gt; is a pioneer in this field, to provide the complete authoring environment for the CPAN distribution, while having the ability to &lt;em&gt;export&lt;/em&gt; MakeMaker/Module::Build compatible build files, so that end users don&amp;#8217;t need to have that upon installation.&lt;/p&gt;

&lt;p&gt;However Dist::Zilla kind of sucks. Well, that was a strong word - it has been coded and maintained actively, so it&amp;#8217;s great. But its user experience could have a little improvements.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://metacpan.org/module/Dist::Milla"&gt;Milla&lt;/a&gt; is my first attempt to address that issue. It is a set of profile - PluginBundle, MintingProfile and command line wrapper, so that you can use it with almost zero-configuration and should do the right thing.&lt;/p&gt;

&lt;p&gt;There&amp;#8217;s some limitation and assumption that do not work for everybody, but at least for me I hope to replace 95% of my CPAN modules with Milla in the coming weeks.&lt;/p&gt;

&lt;p&gt;Here&amp;#8217;s a screencast to show you how to use it.&lt;/p&gt;

&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/7ap71XZiuFY" frameborder="0"&gt;&lt;/iframe&gt;

&lt;p&gt;If you already have modules written with MakeMaker/Module::Install + ShipIt, see the &lt;a href="https://metacpan.org/module/MIYAGAWA/Dist-Milla-v0.9.1/lib/Dist/Milla/Tutorial.pod#MIGRATING"&gt;Migration document&lt;/a&gt; for the details. I might make a new screencast just for the migration.&lt;/p&gt;

&lt;p&gt;Hope you enjoy Milla. If you dislike the 195 dependencies it needs, check out our sister project &lt;a href="https://github.com/tokuhirom/Minilla"&gt;Minilla&lt;/a&gt; as well.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/bulknews/~4/Ix77VyNMGAk" height="1" width="1"/&gt;</description><link>http://feeds.bulknews.net/~r/bulknews/~3/Ix77VyNMGAk/46471116934</link><guid isPermaLink="false">http://weblog.bulknews.net/post/46471116934</guid><pubDate>Wed, 27 Mar 2013 18:53:00 -0700</pubDate><feedburner:origLink>http://weblog.bulknews.net/post/46471116934</feedburner:origLink></item><item><title>Tatsuhiko Miyagawa's Podcast: ep6 ゲスト: Naoya Ito</title><description>&lt;a href="http://podcast.bulknews.net/post/45880418516/podcast-ep6-naoya-ito"&gt;Tatsuhiko Miyagawa's Podcast: ep6 ゲスト: Naoya Ito&lt;/a&gt;: &lt;p&gt;&lt;a href="http://podcast.bulknews.net/post/45880418516/podcast-ep6-naoya-ito" class="tumblr_blog"&gt;bulknews-podcast&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;div class="audio-wrap"&gt;&lt;/div&gt; &lt;p&gt;収録時間 41:20 | &lt;a class="audio-download" href="http://cache.bulknews.net/podcast-ep6.mp3" target="_blank"&gt;Download MP3 (23.5MB)&lt;/a&gt;&lt;/p&gt; &lt;p&gt;第６回は伊藤直也さん (&lt;a href="https://twitter.com/naoya_ito" target="_blank"&gt;@naoya_ito&lt;/a&gt;) をゲストに迎えて、Kindle 出版、GitHub、Google Reader などについて話しました。&lt;/p&gt; 
&lt;/blockquote&gt;

&lt;p&gt;第１回に続き、naoyaさんに出てもらいました。&lt;/p&gt;

&lt;h3&gt;「非公式なAPI」&lt;/h3&gt;

&lt;p&gt;後半で出てくる Google Reader APIの話で、「野良API」って言葉を使ってますが、紛らわしい表現だったかもなので、ちょっと補足。&lt;/p&gt;

&lt;p&gt;「野良API」というと第三者が無断でつくったAPI、のようにも聞こえますが、そうではなく、「非公式なプライベートAPI」という方が正しい。&lt;/p&gt;

&lt;p&gt;ここでいう非公式なAPI、というのは、Google Reader のウェブサイトが Ajax で使っているエンドポイントや、Google公式の Reader アプリが使っているプライベートAPIをリバースエンジニアリングしたAPI、という意味で使っています。仕様についても Google は一度も公開したことはなく、有志がリバースエンジニアリングした仕様を&lt;a href="https://code.google.com/p/pyrfeed/wiki/GoogleReaderAPI"&gt;Google Code上で公開&lt;/a&gt; してるもので、これを feedly などは使っていた、という話です。&lt;/p&gt;

&lt;h3&gt;ゲストの人選&lt;/h3&gt;

&lt;p&gt;naoyaさんが２回めということもあって、「もう２周目」？とかTwitter で意見をもらったりしてます。&lt;/p&gt;

&lt;p&gt;もともと、ゲストを週替りにしてインタビューする、という発想ではなくて、その時話したい「ネタ」があって、それに最適な人をキャスティングする、という発想をベースにしていました。MessagePack のissueの話、Ruby 2.0 のリリースの話、その開発者に聞くのが一番いいですよね :)&lt;/p&gt;

&lt;p&gt;とはいえ、ネタにとらわれずに「いいとも」あるいは「徹子の部屋」的に人にフォーカスした回もあってもいいかなと思っていますし、&lt;a href="http://podcast.bulknews.net/post/44649386760/podcast-ep4-2013-03-06"&gt;ep4の高林さん&lt;/a&gt; の回なんかはそういう感じですね。&lt;/p&gt;

&lt;p&gt;その辺もいろいろバランスをとってやって行きたいと思いますが、まだまだいろいろ試行錯誤ですので、フィードバックもらえるとうれしいです！&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/bulknews/~4/a8bg3aP5Xn0" height="1" width="1"/&gt;</description><link>http://feeds.bulknews.net/~r/bulknews/~3/a8bg3aP5Xn0/45898225592</link><guid isPermaLink="false">http://weblog.bulknews.net/post/45898225592</guid><pubDate>Wed, 20 Mar 2013 23:01:00 -0700</pubDate><feedburner:origLink>http://weblog.bulknews.net/post/45898225592</feedburner:origLink></item><item><title>Tatsuhiko Miyagawa's Podcast: Podcast ep5: 2013/03/13 ゲスト: まつもとゆきひろ (matz)</title><description>&lt;a href="http://podcast.bulknews.net/post/45236535117/podcast-ep5-yukihiro-matsumoto-matz"&gt;Tatsuhiko Miyagawa's Podcast: Podcast ep5: 2013/03/13 ゲスト: まつもとゆきひろ (matz)&lt;/a&gt;: &lt;p&gt;&lt;a href="http://podcast.bulknews.net/post/45236535117/podcast-ep5-yukihiro-matsumoto-matz" class="tumblr_blog"&gt;bulknews-podcast&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;div class="audio-wrap"&gt;&lt;/div&gt; &lt;p&gt;収録時間 35:12 | &lt;a class="audio-download" href="http://cache.bulknews.net/podcast-ep5.mp3" target="_blank"&gt;Download MP3 (21MB)&lt;/a&gt;&lt;/p&gt; &lt;p&gt;第５回はまつもとゆきひろさん (&lt;a href="https://twitter.com/yukihiro_matz" target="_blank"&gt;@yukihiro_matz&lt;/a&gt;) をゲストに迎えて、Ruby 2.0 などについて話しました。&lt;/p&gt; &lt;p&gt;番組へのフィードバックは Twitter にて &lt;a href="http://twitter.com/miyagawa" target="_blank"&gt;@miyagawa&lt;/a&gt; またはハッシュタグ #bulknews にてお寄せください。&lt;/p&gt; 

&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/bulknews/~4/bYbDCmsBlwc" height="1" width="1"/&gt;</description><link>http://feeds.bulknews.net/~r/bulknews/~3/bYbDCmsBlwc/45239735028</link><guid isPermaLink="false">http://weblog.bulknews.net/post/45239735028</guid><pubDate>Tue, 12 Mar 2013 19:38:31 -0700</pubDate><feedburner:origLink>http://weblog.bulknews.net/post/45239735028</feedburner:origLink></item><item><title>Perl versions usage stats (with cpanm)</title><description>&lt;p&gt;A week ago I added a neat little feature in cpanm 1.6004 to report its perl versions in User-Agent strings (regardless of whether it uses LWP, curl, wget or HTTP::Tiny) in addition to cpanm&amp;#8217;s own version.&lt;/p&gt;

&lt;p&gt;One week later, there seems more than 60% of the users seem to have upgraded (including people who runs &lt;code&gt;curl -L cpanmin.us&lt;/code&gt; which always run the latest stable), and we get a pretty interesting number.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://cpanmetadb.plackperl.org/static/versions/index.html"&gt;&lt;img src="http://media.tumblr.com/aee576ffc6454f827a54e112a3d8a414/tumblr_inline_mjkmv0dHIG1qz4rgp.png" alt="image"/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(In case you&amp;#8217;re wondering: the big ones are 5.8.8, 5.10.1, 5.14.2 and 5.16.2. Graph on the link uses google chart API which allows you to &lt;strong&gt;hover over the graph&lt;/strong&gt; to see which portion represents which perl version)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://cpanmetadb.plackperl.org/static/versions/index.html"&gt;Perl versions used with cpanm&lt;/a&gt; is a graph calculated out of 10K recent requests in &lt;a href="http://cpanmetadb.plackperl.org/"&gt;CPAN Meta DB&lt;/a&gt; uniqued by the IP address, updated daily on 1am UTC.&lt;/p&gt;

&lt;p&gt;The graph can be viewed using &lt;code&gt;?date=YYYYMMDD&lt;/code&gt; permanent link as well.&lt;/p&gt;

&lt;p&gt;Few notes: This does not reflect (yet) the users who use older versions of cpanm, which may or may not be the installation which tend to use older versions of perl. It also doesn&amp;#8217;t include cpanm users who uses &lt;code&gt;--mirror-only&lt;/code&gt; to work with local CPAN mirrors without hitting CPAN Meta DB nor MetaCPAN. I believe these numbers can be either a) so small that it&amp;#8217;s ignorable or b) significant, but spread across many versions in the same way those who don&amp;#8217;t.&lt;/p&gt;

&lt;p&gt;The number might look low for the recent 10K requests. There are several reasons, but the biggest one is that many requests will end up with pulling 10+ CPAN dependencies, which are (correctly) deduplicated into one.&lt;/p&gt;

&lt;p&gt;It&amp;#8217;s just one metric, and I don&amp;#8217;t argue that it&amp;#8217;s accurate, but I believe it&amp;#8217;s not &lt;em&gt;that&lt;/em&gt; far away, and would be interesting to see how it settles over time.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/bulknews/~4/I0jCV7vf0L0" height="1" width="1"/&gt;</description><link>http://feeds.bulknews.net/~r/bulknews/~3/I0jCV7vf0L0/45224954186</link><guid isPermaLink="false">http://weblog.bulknews.net/post/45224954186</guid><pubDate>Tue, 12 Mar 2013 16:34:00 -0700</pubDate><feedburner:origLink>http://weblog.bulknews.net/post/45224954186</feedburner:origLink></item><item><title>What is cpanfile and why do I want to use it</title><description>&lt;p&gt;So there seems to be a couple of blog posts and even conference talks about cpanfile. It&amp;#8217;s great, but just to make sure everyone gets what it is and why they want to (or don&amp;#8217;t want to) use it for their stuff, here&amp;#8217;s some clarification from the author.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;tl;dr for japanese&lt;/strong&gt; - &lt;a href="http://www.slideshare.net/aloelight/cpanfile"&gt;this slide deck&lt;/a&gt; at Hokkaido.pm has a great intro for what cpanfile is.&lt;/p&gt;

&lt;p&gt;cpanfile is made specifically to address the two following use cases, while the second one is kinda accidental.&lt;/p&gt;

&lt;p&gt;1) &amp;#8220;I have an app (web app, command line script) and want to manage its CPAN module dependencies somehow. I created a fake Makefile.PL to describe them, even though I don&amp;#8217;t have a plan to release it to CPAN.&amp;#8221;&lt;/p&gt;

&lt;p&gt;2) &amp;#8220;I have a Perl module on my git repository and want my contributors to be able to install from the repo, but they keep saying they can&amp;#8217;t load &lt;code&gt;inc/Module/Install.pm&lt;/code&gt;, and I don&amp;#8217;t want to bump META.yml every time or include &lt;code&gt;inc/&lt;/code&gt; in the repo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://metacpan.org/module/MIYAGAWA/Module-CPANfile-0.9010/lib/cpanfile.pod"&gt;cpanfile&lt;/a&gt; is a Module::Install-like DSL to describe CPAN module dependencies. It comes with a module to parse out that file, but isn&amp;#8217;t tied to any specific builder nor installers.&lt;/p&gt;

&lt;p&gt;It is useful for Perl application developers who want to describe CPAN dependencies, and being able to install them with &lt;code&gt;carton install&lt;/code&gt; or &lt;code&gt;cpanm --installdeps .&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;For CPAN module authors, cpanfile is not something you really need to switch to, although you will (soon) have a benefit of easier installation from git repository if you have one. The reason i wrote &amp;#8220;soon&amp;#8221; is that cpanm 1.6 as of this writing doesn&amp;#8217;t have the ability to bootstrap modules with M::I from git repo - it&amp;#8217;s a &lt;a href="https://github.com/miyagawa/cpanminus/issues/205"&gt;known issue&lt;/a&gt; and I am trying to address that in the sane way before cpanm 1.7. (There&amp;#8217;s a workaround out there to specify Module::Install in &lt;code&gt;configure_requires&lt;/code&gt; but that is wrong because that&amp;#8217;s not necessary once shipped to CPAN)&lt;/p&gt;

&lt;p&gt;Standard CPAN installers (CPAN.pm, CPANPLUS, cpanm) work with META files (and then MYMETA after configuration) to detect dependencies. It&amp;#8217;s a standard, and cpanfile doesn&amp;#8217;t intend to replace them or anything at all. If you decide to use &lt;code&gt;cpanfile&lt;/code&gt; to describe deps for your CPAN modules however, you should use &lt;a href="https://metacpan.org/module/Module::Install::CPANfile"&gt;Module::Install::CPANfile&lt;/a&gt; or &lt;a href="https://metacpan.org/module/Module::Build::Pluggable::CPANfile"&gt;Module::Build::Pluggable::CPANfile&lt;/a&gt; so that it will transparently work with MYMETA protocol.&lt;/p&gt;

&lt;h3&gt;FAQ&lt;/h3&gt;

&lt;h4&gt;I am a CPAN author and keep META.yml in the repo. Should I switch to cpanfile?&lt;/h4&gt;

&lt;p&gt;If your configuration is static and you have no problem remembering to bump META.yml in the repo, that&amp;#8217;s just fine. However, putting &amp;#8220;Module::Install&amp;#8221; (for example) into your configure_requires doesn&amp;#8217;t sound right since it&amp;#8217;s not necessary once it&amp;#8217;s shipped to CPAN. Committing the whole &lt;code&gt;inc/&lt;/code&gt; is another way to go, but it feels like an unnecessary work to me.&lt;/p&gt;

&lt;h4&gt;I have a web app and want to use cpanfile to deploy to the cloud. Which provider supports cpanfile?&lt;/h4&gt;

&lt;p&gt;Most PaaS providers (dotcloud, heroku through buildpack, etc.) uses &lt;code&gt;cpanm --installdeps .&lt;/code&gt; to install dependencies. Once they upgrade cpanm to 1.6 or later, it will automatically figure out the dependencies out of cpanfile. If they don&amp;#8217;t have 1.6 yet, why not requesting them to upgrade it?&lt;/p&gt;

&lt;h4&gt;I use dzil for my CPAN modules and am not sure what you are talking about.&lt;/h4&gt;

&lt;p&gt;Great, Forget about this post.&lt;/p&gt;

&lt;p&gt;However, contributors to your module may have hard time installing dzil first and then remembering what command to run to test/install because it&amp;#8217;s different from other CPAN module convention. cpanfile &lt;em&gt;may&lt;/em&gt; be able to help that, but i&amp;#8217;m still trying to figure out.&lt;/p&gt;

&lt;h4&gt;So which phase should I put Module::Install into in cpanfile?&lt;/h4&gt;

&lt;p&gt;It should most likely be &lt;code&gt;develop&lt;/code&gt;, and cpanm will detect the &amp;#8220;development environment&amp;#8221; i.e not from CPAN tarball, but that&amp;#8217;s still &lt;a href="https://gist.github.com/miyagawa/5028262"&gt;being ironed out&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/bulknews/~4/Udh6bKJYb6Q" height="1" width="1"/&gt;</description><link>http://feeds.bulknews.net/~r/bulknews/~3/Udh6bKJYb6Q/44963580392</link><guid isPermaLink="false">http://weblog.bulknews.net/post/44963580392</guid><pubDate>Sat, 09 Mar 2013 12:35:00 -0800</pubDate><feedburner:origLink>http://weblog.bulknews.net/post/44963580392</feedburner:origLink></item><item><title>Tatsuhiko Miyagawa's Podcast: Podcast ep4: 2013/03/06 ゲスト: 高林哲</title><description>&lt;a href="http://podcast.bulknews.net/post/44649386760/podcast-ep4-2013-03-06"&gt;Tatsuhiko Miyagawa's Podcast: Podcast ep4: 2013/03/06 ゲスト: 高林哲&lt;/a&gt;: &lt;p&gt;&lt;a href="http://podcast.bulknews.net/post/44649386760/podcast-ep4-2013-03-06" class="tumblr_blog"&gt;bulknews-podcast&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;div class="audio-wrap"&gt;&lt;/div&gt; &lt;p&gt;収録時間 31:04 | &lt;a class="audio-download" href="http://cache.bulknews.net/podcast-ep4.mp3" target="_blank"&gt;Download MP3 (17MB)&lt;/a&gt;&lt;/p&gt; &lt;p&gt;第４回は高林哲さん (&lt;a href="https://plus.google.com/101463981287086074128/" target="_blank"&gt;Google+&lt;/a&gt;) をゲストに迎えて、バッドノウハウ、ソフトウェアエンジニアリング、コードレビューなどについて話しました。&lt;/p&gt; &lt;p&gt;番組へのフィードバックは Twitter にて &lt;a href="http://twitter.com/miyagawa" target="_blank"&gt;@miyagawa&lt;/a&gt; またはハッシュタグ #bulknews にてお寄せください。&lt;/p&gt;
&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/bulknews/~4/pJ2lkTFqT5s" height="1" width="1"/&gt;</description><link>http://feeds.bulknews.net/~r/bulknews/~3/pJ2lkTFqT5s/44662613428</link><guid isPermaLink="false">http://weblog.bulknews.net/post/44662613428</guid><pubDate>Tue, 05 Mar 2013 15:47:44 -0800</pubDate><feedburner:origLink>http://weblog.bulknews.net/post/44662613428</feedburner:origLink></item><item><title>stop shipping MYMETA to CPAN</title><description>&lt;p&gt;You&amp;#8217;re a new CPAN author (congratulations!) or you have an old distribution that is about to be updated for the first time in years, and you find &lt;code&gt;MYMETA.yml&lt;/code&gt; and &lt;code&gt;MYMETA.json&lt;/code&gt; in your working directory that git or shipit warns about. You think: What are these files? Should I package these files?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;tl;dr&lt;/strong&gt; - add &lt;code&gt;MYMETA.yml&lt;/code&gt; and &lt;code&gt;MYMETA.json&lt;/code&gt; to &lt;code&gt;.gitignore&lt;/code&gt; and &lt;code&gt;MANIFEST.SKIP&lt;/code&gt; (if you have one), and &lt;strong&gt;do not&lt;/strong&gt; include them in the tarball.&lt;/p&gt;

&lt;p&gt;MYMETA.yml/json files are &lt;a href="http://www.dagolden.com/index.php/479/mymeta-yml-in-the-wild/"&gt;a relatively new approach&lt;/a&gt; for CPAN installers (CPAN, CPANPLUS, cpanm) and module build tools (MakeMaker, Module::Build) to communicate the configured dependencies on the end-user&amp;#8217;s system.&lt;/p&gt;

&lt;p&gt;MYMETA is just like META files in terms of the file format and &lt;a href="http://search.cpan.org/perldoc?CPAN%3A%3AMeta%3A%3ASpec"&gt;data structure&lt;/a&gt;, but whereas META.yml is generated by the distribution author (you), MYMETA.yml is generated by the end user at a configuration time.&lt;/p&gt;

&lt;p&gt;Including MYMETA files in MANIFEST and a distribution tarball does not make any sense, and could cause potential problems confusing CPAN installers - do not make them part of your distribution.&lt;/p&gt;

&lt;p&gt;(Why this post? Many CPAN authors have been confused or unaware what MYMETA files are and &lt;a href="https://www.google.com/search?q=mymeta.json+site:metacpan.org+inurl:source"&gt;simply include them in the distribution&lt;/a&gt;)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/bulknews/~4/mvHOynCchec" height="1" width="1"/&gt;</description><link>http://feeds.bulknews.net/~r/bulknews/~3/mvHOynCchec/44251476706</link><guid isPermaLink="false">http://weblog.bulknews.net/post/44251476706</guid><pubDate>Thu, 28 Feb 2013 15:48:20 -0800</pubDate><feedburner:origLink>http://weblog.bulknews.net/post/44251476706</feedburner:origLink></item><item><title>Podcast ep3: 2013/02/27 ゲスト: Sadayuki Furuhashi, Kiyoto</title><description>&lt;p&gt;&lt;a href="http://podcast.bulknews.net/post/44132963761/podcast-ep3-2013-02-27-sadayuki-furuhashi-kiyoto" class="tumblr_blog"&gt;bulknews-podcast&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;

&lt;p&gt;第３回は古橋貞之さん (&lt;a href="http://twitter.com/frsyuki"&gt;@frsyuki&lt;/a&gt;)、kiyotoさん (&lt;a href="http://twitter.com/__kiyoto__"&gt;@__kiyoto__&lt;/a&gt;) をゲストに迎えて MessagePack について話しました。&lt;/p&gt;

&lt;p&gt;Subscribe via &lt;a href="https://itunes.apple.com/jp/podcast/tatsuhiko-miyagawas-podcast/id603013428?mt=2"&gt;iTunes&lt;/a&gt; | &lt;a href="http://feeds.bulknews.net/MiyagawasPodcast?format=xml"&gt;RSS&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/bulknews/~4/XnLyT1EWyi0" height="1" width="1"/&gt;</description><link>http://feeds.bulknews.net/~r/bulknews/~3/XnLyT1EWyi0/44134201447</link><guid isPermaLink="false">http://weblog.bulknews.net/post/44134201447</guid><pubDate>Wed, 27 Feb 2013 03:05:46 -0800</pubDate><feedburner:origLink>http://weblog.bulknews.net/post/44134201447</feedburner:origLink></item></channel></rss>
