Read, Watch & Listenhttps://blog.shotarok.com/Recent content on Read, Watch & ListenHugo -- gohugo.ioja-JPSun, 31 Dec 2017 22:00:00 +09002017年振り返りhttps://blog.shotarok.com/post/review-in-2017/Sun, 31 Dec 2017 22:00:00 +0900Shotaro Kohamahttps://blog.shotarok.com/post/review-in-2017/ <p>年の瀬なので 2017年に出会って好きだったもの,影響を受けたものを雑多にまとめてみる.</p> <h2 id="blog">Blog</h2> <ul> <li><a href="https://qiita.com/lotz/items/1aa6cf18aa193f40c647#bitcoin%E3%81%AE%E6%AE%8B%E9%AB%98%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B-merkletree">作って学ぶBitcoin!ゼロから作るSPVウォレット | @lotz on Qiita</a></li> <li><a href="https://medium.com/@mach/the-dao-%E4%BA%8B%E4%BB%B6%E3%81%8B%E3%82%89%EF%BC%91%E5%B9%B4-%E7%86%B1%E7%8B%82%E3%81%99%E3%82%8Bico-%E3%83%90%E3%83%96%E3%83%AB%E3%81%A8-%E3%81%93%E3%82%8C%E3%81%8B%E3%82%89%E3%81%AE%E8%B3%87%E9%87%91%E8%AA%BF%E9%81%94%E6%89%8B%E6%B3%95-48a90c7c20c5">The DAO 事件から1年 — 熱狂する ICO バブルと、これからの資金調達手法 | @amachino on Medium</a></li> <li><a href="https://workplace.stackexchange.com/questions/93696/is-it-unethical-for-me-to-not-tell-my-employer-i-ve-automated-my-job?utm_source=cronweekly.com">Is it unethical for me to not tell my employer I’ve automated my job? | The Workplace Stack Exchange</a></li> <li><a href="https://qiita.com/lestrrat/items/9eee9590d604dd183207">普通のデーモンを 1) Server::Starterでホットデプロイ+ 2) slow-restart対応にする | @lestrrat on Qiita</a></li> <li><a href="http://blog.yuuk.io/entry/the-rebuild-of-tsdb-on-cloud">時系列データベースという概念をクラウドの技で再構築する | ゆううきブログ</a></li> <li><a href="http://hb.matsumoto-r.jp/entry/2017/12/25/102234">実行環境の変化に素早く適応できる恒常性を持つシステムアーキテクチャと今後の課題 | 人間とウェブの未来</a></li> <li><a href="https://qiita.com/thetenthart/items/a016644f96cefbf5a597">CVAEによるキャラクターの台詞の生成と、口調変換 | @thetenthart on Qiita </a></li> <li><a href="http://learningsys.org/nips17/assets/slides/dean-nips17.pdf">Machine Learning for Systems and Systems for Machine Learning | Jeff Dean Google Brain team</a></li> <li><a href="https://eng.uber.com/michelangelo/">Meet Michelangelo: Uber’s Machine Learning Platform | Uber Engineering</a></li> <li><a href="http://horikawad.hatenadiary.com/entry/2015/10/05/123910">クマムシでも分かる。ノーベル賞候補・ゲノム編集技術「CRISPR/Cas9システム」| クマムシ博士のむしブロ</a></li> <li><a href="https://ryukbk.blogspot.jp/2017/12/roppongisenki.html">六本木戦記 | WANDER ALONE LIKE A RHINOCEROS HORN</a></li> </ul> <p><a href="https://blog.shotarok.com/post/review-in-2016/">去年の振り返り</a>では Pocket とか はてブ を使おうかと書いていたけど全然続けることができなかった. そこで別手段として,6月くらいから <a href="https://twitter.com/shotarok_rwal">@shotarok_rwal</a> というアカウントを作って,読んだもの,見たもの,および聞いたものを少しまとめてることにした. だいたいどこでもシェアボタンがあるのと,後日記事を探す際に,はやり便利だったので続けたいのだけど,もうちょっと自動化しないと 1,2ヶ月で無精してしまう.</p> <h2 id="podcast">Podcast</h2> <h3 id="東村アキコと虹組キララの身も蓋もナイトhttpsitunesapplecomjppodcaste69db1e69d91e382a2e382ade382b3e381a8e899b9e7b584e382ade383a9e383a9e381aee8baabe38282e8938be38282e3838ae382a4e38388id1163332155"><a href="https://itunes.apple.com/jp/podcast/%E6%9D%B1%E6%9D%91%E3%82%A2%E3%82%AD%E3%82%B3%E3%81%A8%E8%99%B9%E7%B5%84%E3%82%AD%E3%83%A9%E3%83%A9%E3%81%AE%E8%BA%AB%E3%82%82%E8%93%8B%E3%82%82%E3%83%8A%E3%82%A4%E3%83%88/id1163332155">東村アキコと虹組キララの身も蓋もナイト</a></h3> <p>今年聞き始めた中で一番聞いている番組. 漫画家の東村先生の漫画が好きで,このポッドキャストを聞き始めた. この番組を聞くまで芸能プロダクションをやっていることを知らなかった. 漫画だけじゃなくて,トークもめっちゃ面白いので欠かさず聞いている.</p> <p>新しく聞き始めた番組のではないけれど <a href="https://mozaic.fm/">mozaic.fm</a> の 7月から始まった Monthly Web の episode がとても良い. ブラウザの新しい機能や標準化団体など知らなかった世界の話という感じでとても勉強になる. あと年末のセール時に <a href="https://rebuild.fm/supporter/">Rebuild のサポータープログラム</a>に入れた.</p> <h2 id="youtube">Youtube</h2> <h3 id="nat-and-friendshttpswwwyoutubecomchannelucf4aijswe-e2tggcpdm-z-a"><a href="https://www.youtube.com/channel/UCf4AIjSwE-E2TggCPdm-z-A">Nat and Friends</a></h3> <ul> <li><a href="https://www.youtube.com/watch?v=aFLU6T15seY">What Does YouTube Do To Your Video After You Upload It?</a></li> <li><a href="https://www.youtube.com/watch?v=PIbeiddq_CQ">How Google Built the Pixel 2 Camera</a></li> <li><a href="https://www.youtube.com/watch?v=H9R4tznCNB0">A Journey To The Bottom Of The Internet</a></li> </ul> <p>Nat さんが Google の 20% ルールで運営している Youtube チャンネル. Youtube, Pixel2 のカメラ, 海底ケーブルなど,普段何気なく使っているプロダクトの仕組み・裏側とかを楽しく紹介してて見てて飽きない.</p> <h3 id="kurzgesagt--in-a-nutshellhttpswwwyoutubecomchannelucsxvk37blthxd1rdpwtnm8q"><a href="https://www.youtube.com/channel/UCsXVk37bltHxD1rDPwtNM8Q">Kurzgesagt – In a Nutshell</a></h3> <ul> <li><a href="https://www.youtube.com/watch?v=jAhjPd4uNFY&amp;sns=tw">Genetic Engineering Will Change Everything Forever – CRISPR</a></li> <li><a href="https://www.youtube.com/watch?v=WSKi8HfcxEk">The Rise of the Machines – Why Automation is Different this Time</a></li> <li><a href="https://www.youtube.com/watch?v=MUWUHf-rzks">How to Make an Elephant Explode with Science – The Size of Life 2</a></li> </ul> <p>かわいいアニメーションで様々な科学的な話題を扱っているチャンネル. CRISPR とか<a href="http://bilingualnews.libsyn.com/">バイリンガルニュース</a> で出てきたけど自分が馴染みがない,生物系の話もアニメで解説されてて勉強になった.</p> <h3 id="siraj-raval---artificial-intelligence-educationhttpswwwyoutubecomchannelucwn3xxrkmtpmbkwht9fue5a"><a href="https://www.youtube.com/channel/UCWN3xxRkmTPmbKwht9FuE5A">Siraj Raval - Artificial Intelligence Education</a></h3> <ul> <li><a href="https://www.youtube.com/watch?v=3-UDwk1U77s">How to Generate Images - Intro to Deep Learning #14</a></li> <li><a href="https://www.youtube.com/watch?v=gmvRStL_Dag">How to Convert Text to Images - Intro to Deep Learning #16</a></li> <li><a href="https://www.youtube.com/watch?v=BMT7FMwOIKc">How to Make Money as a Programmer</a></li> </ul> <p>記事にも書いたが <a href="http://blog.shotarok.com/post/a-review-of-deep-learning-nanodegree/">Udacity の DeepLearning Nanodegree をやっている時</a>に、お世話になった Youtube チャンネル. 最新の話題をキャッチアップして動画を作ってて,今だと crypt currency 周りの動画も作っている様子. わかりやすいかつ, 途中で飽きさせないように歌歌ったり, 単純な講義じゃなくて Youtube ぽい動画が好き.</p> <p>今年 subscribe を始めて特に印象に残っているのは,以上 3 つのチャンネル.</p> <p>あとは普段は触らないフロントエンド関連で React + Redux のアプリを書く時にとても参考になった <a href="https://www.youtube.com/watch?v=1w-oQ-i1XB8&amp;list=PLoYCgNOIyGADILc3iUJzygCqC8Tt3bRXt">Redux Tutorials</a> ã‚„ <a href="https://softwareengineeringdaily.com/2017/12/01/animating-vuejs-with-sarah-drasner/">Software Engineering Daily のエピソード</a> が面白かった Sarah Drasner さんの <a href="https://www.youtube.com/watch?v=gJDyhmL9O_E">Animating Vue | VueConf 2017</a> という Vue.js で アニメーションを作る動画が印象に残っている.</p> <h2 id="book">Book</h2> <ul> <li> <p>Tech ç³»</p> <ul> <li><a href="https://www.amazon.co.jp/dp/B075WSB6D8">Haskell入門 関数型プログラミング言語の基礎と実践</a></li> <li><a href="http://shop.oreilly.com/product/0636920065500.do">Ansible Running &amp; Up</a></li> <li><a href="http://www.managingtheunmanageable.net/">Managing the Unmanageable: Rules, Tools, and Insights for Managing Software People and Teams</a></li> </ul> </li> <li> <p>Tech 系以外</p> <ul> <li><a href="https://www.amazon.co.jp/dp/B00ARDNMEQ">ファスト&スロー(上)</a></li> <li><a href="https://www.amazon.co.jp/dp/B072KGSJLR">生涯投資家</a></li> <li><a href="https://www.amazon.co.jp/dp/B076Q2WHBN/">知的戦闘力を高める 独学の技法</a></li> <li><a href="https://www.amazon.co.jp/dp/B01MUH9OBL">損する結婚 儲かる離婚</a></li> <li><a href="https://www.amazon.co.jp/dp/479804587X">ITエンジニアが覚えておきたい英語動詞30</a></li> </ul> </li> </ul> <h2 id="scuba-diving">Scuba Diving</h2> <p>今年は伊豆、沖縄、奄美大島の3箇所で計6回ダイビングをした. 去年と今年ふるさと納税してた奄美に行けてよかった. 来年こそはイルカ,クジラ,サメとか大物と一緒に泳ぎたい. 写真は奄美で撮れたミノカサゴ達.</p> <p><img src="https://blog.shotarok.com/images/20171231/lionfish.jpg" alt="lionfish at Amami"></p>『Haskell入門』の献本を頂きましたhttps://blog.shotarok.com/post/review-of-haskell-nyumon/Tue, 26 Sep 2017 21:45:00 +0900Shotaro Kohamahttps://blog.shotarok.com/post/review-of-haskell-nyumon/ <p>著者であり同僚の <a href="https://twitter.com/hiratara">@hiratara</a> さんに誘って頂いて、<a href="http://gihyo.jp/book/2017/978-4-7741-9237-6">『Haskell入門』</a> のレビューに参加させて頂き、献本も頂きました。</p> <p>Haskell は大学時代から好きな人達が近くにいて、その人達が楽しそうに話をしているので、 興味や憧れ<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>は昔からあったものの、他の言語にないパラダイムに苦しんで、何度も何度も入門している、自分にとってはそんな言語です。</p> <p>最近はやっと少し慣れてきて、周りの Haskeller やこの本に助けられ、簡単なコマンドラインツール<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>を書く事ができました。これを書くにあたって、プロジェクトのディレクトリ構造<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup>ã‚„ stack を使ったライブラリやテストの管理方法がまとまった第9章がとても参考になりました。友人にその都度 Slack や対面で聞いていたことがきちんとまとまっていて、大変ありがたかったです。</p> <p>技術書の作成工程が見れたのも、とても勉強になりました。機会を頂き、ありがとうございました!</p> <p><img src="https://blog.shotarok.com/images/20170926/haskell-nyumon.jpg" alt="Haskell入門"></p> <hr> <section class="footnotes" role="doc-endnotes"> <hr> <ol> <li id="fn:1" role="doc-endnote"> <p><a href="http://notogawa.hatenablog.com/entry/20121201/1354389374">2012-12-01 孤独のHaskell| ぼくのぬまち 出張版</a> とか <a href="http://pfad.sampou.org/">関数プログラミング 珠玉のアルゴリズムデザイン</a> とかを読むとこんなに簡潔に書けるのかと憧れが増します&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p> </li> <li id="fn:2" role="doc-endnote"> <p><a href="https://github.com/shotarok/courrier-jp-atom">https://github.com/shotarok/courrier-jp-atom</a>&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p> </li> <li id="fn:3" role="doc-endnote"> <p>python だとこういうやつ <a href="http://docs.python-guide.org/en/latest/writing/structure/">Structuring Your Project | The Hitchhiker&rsquo;s Guide to Python</a>&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p> </li> </ol> </section>A Review of Udacity Deep Learning Nanodegreehttps://blog.shotarok.com/post/a-review-of-deep-learning-nanodegree/Wed, 07 Jun 2017 09:45:00 +0900Shotaro Kohamahttps://blog.shotarok.com/post/a-review-of-deep-learning-nanodegree/ <p>2017/05/28 に Udacity の <a href="https://www.udacity.com/course/deep-learning-nanodegree-foundation--nd101">Deep Learning Nanodegree</a> を卒業した。</p> <p>僕が大学院を卒業した2015年ごろ、まだ Deep Learning の波は研究室・自然言語処理(?)には来ていなかったが、 研究室に残っている同期の話を聞いたり、世の中のニュースを見ていても、世界ががらっと変わっていることを感じていた。 そんな中 Deep Learning を学ぶ機会を探していて見つけたのが、この Udacity の Nanodegree だった。</p> <p>1月ごろに申し込みしたのだが、最初に $400 かかると聞いたときは躊躇した。でも GPU インスタンスを使うための AWS の $100 クーポンや有料の Slack チームを使った、 オフィスアワーになんでも聞いて良いよチャンネル (#ama) があったり、お金がかかりそうな手厚いサポートもあった。</p> <p>データを整形する手間が省け、TensorFlow を使って Seq2Seq ã‚„ DCGAN を動かし、授業のコードや Slack の他の人のコメントを参考にしながら、 自分が書いたコードが間違っていたら Review してもらえる。 Deep Leraning を俯瞰したいという自分の動機にとてもマッチしていて効率的に学べたと思う。十分な価値はあったしむしろ安かったかも。 実際、2回目の5月からのコースでは $600 か $800 に値上げしてたみたい。</p> <p>コンテンツについては、この GitHub のレポジトリ <a href="https://github.com/udacity/deep-learning/tree/master/">udacity/deep-learning</a> を見るのが、はやそう。 各授業の資料が Jupyter notebook になっていて、 Review とか Video がなくても自習に役立つと思う。</p> <p><a href="https://www.youtube.com/channel/UCWN3xxRkmTPmbKwht9FuE5A">Siraj Raval</a> という Youtuber と <a href="https://www.floydhub.com/">Floyd</a> というサービスを知れたのも良かった。</p> <p>Siraj Raval は Tech 系の Youtuber で,10分くらいの動画で様々な Machine Learning に関するトピックをテンション高く紹介してくれる。 飽きさせないためか、途中で急にラップ入ったりする。</p> <iframe width="560" height="315" src="https://www.youtube.com/embed/gmvRStL_Dag" frameborder="0" allowfullscreen></iframe> <p>個人的に気になっていたキャプションからの画像生成のアルゴリズムの動画に加えて、 同僚の中で一時期流行っていた <a href="https://prisma-ai.com/">Prisma</a> のアルゴリズムを紹介している <a href="https://youtu.be/Oex0eWoU7AQ">How to Generate Art - Intro to Deep Learning #8</a> ã‚„ GAN の説明している <a href="https://youtu.be/-E2N1kQc8MM">How to Generate Video - Intro to Deep Learning #15</a> が好きだった。</p> <p>Floyd は <a href="https://news.ycombinator.com/item?id=13659914">&ldquo;Heroku for Deep Learning&rdquo;</a> を目指しているスタートアップがやっているサービス。CLI で簡単に GPU が使える Jupyter 環境が手に入る。 しかも今は100時間分までは無料で使える。2並列以上でたくさん実験を行いたい場合などは課金が必要となる。自分で Tensorflow がインストールされた GPU インスタンスを立ち上げるための Vagrantfile <a href="https://github.com/shotarok/vagrant-aws-gpu-tensorflow">shotarok/vagrant-aws-gpu-tensorflow</a> も書いたけど、結局 floyd の方が気軽でこちらばかり使っていた。<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup></p> <p><img src="https://blog.shotarok.com/images/20170607/floyd-fs8.png" alt="floyd"></p> <p>改善できそうな点としては Reviewer によって、質が全然違うこと。何回か提出する中で、前回それと違うこと言われたんやけどなぁとか、 前回の人はめっちゃ参考になるリンク貼ってくれたけど、今回の人はあっさりやなぁとか思ったりすることがあった。</p> <p>$100 のクーポンと必ず参加できる保証もらったので、次は <a href="https://www.udacity.com/course/self-driving-car-engineer-nanodegree--nd013">Self-Driving Car Engineer Nanodegree</a> をやろうかという感じ。</p> <hr> <section class="footnotes" role="doc-endnotes"> <hr> <ol> <li id="fn:1" role="doc-endnote"> <p>全部 Vagrant で Provisioning してるけど Packer で AMI 作ったり、今なら <a href="https://aws.amazon.com/marketplace/pp/B01M0AXXQB">Amazon 公式の Deep Learning 用の AMI</a> 使うのが良さそう。&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p> </li> </ol> </section>2016年振り返りhttps://blog.shotarok.com/post/review-in-2016/Sat, 31 Dec 2016 22:00:00 +0900Shotaro Kohamahttps://blog.shotarok.com/post/review-in-2016/ <p><a href="http://deeeet.com/writing/2015/12/31/2015/">SOTA | DECEMBER 31, 2015 2015年振り返り</a> がとても読みやすく, 何年か経って忘れた頃に見返すと楽しい気がしたので自分も 2016年に出会って好きだったもの, 影響を受けたことを雑多にまとてみる.</p> <h2 id="blog">Blog</h2> <p>運用まわりの技術・知識が気になる今日このごろ,後で読む用に残す習慣がなかったので最近読んだものに偏ってしまっている.</p> <ul> <li><a href="https://peteris.rocks/blog/htop/">htop explained Explanation of everything you can see in htop/top on Linux</a></li> <li><a href="http://techblog.netflix.com/2016/02/distributed-time-travel-for-feature.html">Distributed Time Travel for Feature Generation | The Netflix Blog</a></li> <li><a href="http://steps.dodgson.org/b/2012/12/30/code-review-from-lowland/">下から目線のコードレビュー | steps to phantasien</a></li> <li><a href="http://anemone.dodgson.org/2015/07/13/a-million-hello-worlds/">A Million Hello Worlds | steps to phantasien</a></li> <li><a href="http://hb.matsumoto-r.jp/entry/2015/04/20/151743">Webオペレーションエンジニアのアウトプットと開発力 | 人間とウェブの未来</a></li> <li><a href="http://blog.yuuk.io/entry/linux-server-operations">Linuxサーバにログインしたらいつもやっているオペレーション| ゆううきブログ</a></li> <li><a href="http://blog.yuuk.io/entry/architecture-of-database-connection">Webシステムにおけるデータベース接続アーキテクチャ概論 | ゆううきブログ</a></li> <li><a href="http://blog.yuuk.io/entry/2015-webserver-architecture">2015å¹´Webサーバアーキテクチャ序論 | ゆううきブログ</a></li> <li><a href="http://konifar-zatsu.hatenadiary.jp/entry/2016/06/29/193911">無駄な議論を減らすために使ってる言葉 | Konifar&rsquo;s ZATSU</a></li> <li><a href="http://soonraah.hatenablog.com/entry/2016/11/20/172620">機械学習を利用するプロダクトのテスト | froglog プログラミングや統計の話など</a></li> <li><a href="http://blog.etsukata.com/2016/06/memcached-1419-eviction-slab-oom.html">Memcached 1.4.19 to 1.4.28: Eviction 不具合による Slab OOM | Etsukata blog</a></li> <li><a href="http://rkx1209.hatenablog.com/entry/2016/12/25/141543">低レイヤーの歩き方 | るくすの日記 ~ Out_Of_Range ~</a></li> <li><a href="http://sfujiwara.hatenablog.com/entry/20110620/1308531677">MySQLã‚’master:slave=1:1構成にして参照をslaveに向けるのがなぜ良くないか | 酒日記 はてな支店</a></li> </ul> <p>Tech系以外だと「<a href="http://yuchrszk.blogspot.jp/">パレオな男</a>」がすごい. タイトルになってるパレオダイエットは実践してないけれど, 健康に関する多様な論文・本がわかりやすく簡潔にまとまっていて, 気になるリンクを辿って読んでて飽きない.正直ハマった. 最終的に更新があれば個人の Slack に通知が来るようにまでした.</p> <ul> <li>パレオな男 <ul> <li><a href="http://yuchrszk.blogspot.jp/2014/02/blog-post_2008.html">いまさら聞けない!科学的に痩せる「プチ断食」超入門</a></li> <li><a href="http://yuchrszk.blogspot.jp/2015/04/blog-post.html">苦しまずに体脂肪を減らすための『脳の再トレーニング』ガイド「食事報酬と肥満 その4」</a></li> <li><a href="%E7%B5%90%E5%B1%80%E3%80%81%E7%A0%82%E7%B3%96%E3%81%AF%E6%9C%AC%E5%BD%93%E3%81%AB%E5%A4%AA%E3%82%8A%E3%82%84%E3%81%99%E3%81%84%E3%81%AE%E3%81%8B%EF%BC%9F%E5%95%8F%E9%A1%8C">結局、砂糖は本当に太りやすいのか?問題</a></li> <li><a href="http://yuchrszk.blogspot.jp/2016/11/1_16.html">パレオさんに聞いてみよう#1:読書法、英語論文の読み方、プロテインと癌、ワクチンは無意味?</a></li> <li><a href="http://yuchrszk.blogspot.jp/2014/06/blog-post_9733.html">象を飼い慣らすための指針</a></li> </ul> </li> <li>misc <ul> <li><a href="https://www.english.com/blog/conversation-mistakes">9 English conversation mistakes to avoid | PEARSON ENGLISH Blog</a></li> <li><a href="http://prtimes.jp/main/html/rd/p/000000059.000006798.html">フリークアウト コーポレートロゴ変更のお知らせ</a></li> </ul> </li> </ul> <p>来年からは後で参照できるようにまとめておきたい. Pocket or はてブ かな.</p> <h2 id="podcast-episode">Podcast Episode</h2> <p><a href="http://blog.shotarok.com/post/2016-04-30-my-favorite-podcasts/">お気に入りのPodcast</a> でも書いたけど, 去年から Podcast を聞き始めた. はじめは Rebuild とバイリンガルニュースくらいだったけれど, 最近は subscribe するチャンネルが20個ぐらいに増えて流石に全部を聞くのは無理になってきた. Rebuild と donkuri.fm は全部聞きながら, 他のものはタイトルが気になったものを聞いている感じ.</p> <ul> <li>Rebuild.fm <ul> <li><a href="https://rebuild.fm/127/">127: Post-mature Optimization (omo)</a></li> <li><a href="https://rebuild.fm/169/">169: Your Blog Can Be Generated By Neural Networks (omo)</a></li> </ul> </li> <li>バイリンガルニュース <ul> <li><a href="http://bilingualnews.libsyn.com/176-takahashi-082715">08.27.15: バイリンガル会話 feat. Yuki Takahashi</a></li> </ul> </li> <li>donguri.fm <ul> <li><a href="https://soundcloud.com/dongurifm/0331-01a">033としまえんフィッシングエリアは超楽しい! 出張ポッドキャスト</a></li> <li><a href="https://soundcloud.com/dongurifm/162a">162 キュレーションって悪いことなんですか?</a></li> </ul> </li> <li>Software Engineering Daily <ul> <li><a href="https://softwareengineeringdaily.com/tag/editorials/">You Are Not A Commodity</a></li> <li><a href="https://softwareengineeringdaily.com/2016/11/19/debugging-stories-with-haseeb-qureshi/">Debugging Stories with Haseeb Qureshi</a></li> </ul> </li> <li>のぼりーさんのクラウドインフラPodcast <ul> <li><a href="https://soundcloud.com/cloudinfra_podcast_ja/track-3">Track 3 松本亮介とウェブの未来になめらかなシステム</a></li> <li><a href="https://soundcloud.com/cloudinfra_podcast_ja/track010b">b-track 10 コミュニティの構築と維持のお話</a></li> </ul> </li> </ul> <h2 id="youtube">Youtube</h2> <iframe width="560" height="315" src="https://www.youtube.com/embed/kEsshExn7aE" frameborder="0" allowfullscreen></iframe> <p>なんといっても,この動画が印象に残った. <a href="http://dirtycow.ninja/">Dirty Cow</a> という名前が付いた脆弱性 (CVE-2016-5195) を突いてどのように root を取るかといかを丁寧に説明している. 説明に &ldquo;file&rdquo; という単語が現れると,急に挟まれる謎の画像もそのテンションも良かった. この作者の Exploit の手法を説明する動画シリーズ <a href="https://www.youtube.com/watch?v=xCEJfTfhtQc">LiveOverflow</a> もとても面白かった.</p> <p>その他 Tech 系カンファレンスのトークとか大学とかの授業を Youtube を見るのも勉強になったけど, 脆弱性とか CTF の解説動画とか GDB のチュートリアルとかだと,普段開発してても見る機会はない &ldquo;人がどうターミナル上で作業しているか&rdquo; が見れるのが新鮮だった.</p> <ul> <li>Exploit Technique <ul> <li><a href="https://www.youtube.com/playlist?list=PLhixgUqwRTjxglIswKp9mpkfPNfHkzyeN">LiveOverflow | Binary Hacking</a></li> <li><a href="https://www.youtube.com/playlist?list=PL3AEB91BB184B185B">ThinkAloudAcademy | C Programming Tutorial</a></li> </ul> </li> <li>Linux <ul> <li><a href="https://www.youtube.com/watch?v=GsMs3n8CB6g">Brendan Gregg | Give me 15 minutes and I&rsquo;ll change your view of Linux tracing</a></li> <li><a href="https://www.youtube.com/watch?v=PorfLSr3DDI">CppCon | CppCon 2015: Greg Law &ldquo;Give me 15 minutes &amp; I&rsquo;ll change your view of GDB&rdquo;</a></li> <li><a href="https://www.youtube.com/watch?v=EqndHT606Tw&amp;t=96s">holidaylvr | fd, dup()/dup2() system call tutorial</a></li> <li><a href="https://www.youtube.com/watch?v=sK5i-N34im8">DockerCon | Cgroups, namespaces, and beyond: what arecontainers made from?</a></li> </ul> </li> <li>Music <ul> <li><a href="https://www.youtube.com/watch?v=ss9ygQqqL2Q">The Tonight Show Starring Jimmy Fallon | Wheel of Musical Impressions with Ariana Grande</a></li> <li><a href="https://www.youtube.com/watch?v=Uyv5gm6J8K4">CNN STYLE - Can Korean superstar CL break America?</a></li> </ul> </li> <li>misc <ul> <li><a href="https://www.youtube.com/watch?v=oVfHeWTKjag">Veritasium | Facebook Fraud</a></li> <li><a href="https://www.youtube.com/watch?v=KRcecxdGxvQ">Michael Stonebraker | Big Data is (at least) Four Different Problems</a></li> </ul> </li> </ul> <h2 id="book">Book</h2> <ul> <li>Techç³»</li> <li><a href="http://amzn.to/2io7USN">闘うプログラマー[新装版] ビル・ゲイツの野望を担った男達</a></li> <li><a href="http://amzn.to/2io3yuI">プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)</a></li> <li><a href="http://amzn.to/2io5TWE">みんなのGo言語【現場で使える実践テクニック】</a></li> <li><a href="http://amzn.to/2hCDTQ6">Amazon Web Services実践入門 (WEB+DB PRESS plus)</a></li> <li><a href="http://amzn.to/2iP4OGf">Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler))</a></li> <li>Tech系以外</li> <li><a href="http://amzn.to/2io2mYq">弱いつながり 検索ワードを探す旅</a></li> <li><a href="http://amzn.to/2is8H7G">人生がときめく片づけの魔法</a></li> <li><a href="http://amzn.to/2iP9v35">スクリプトドクターの脚本教室・初級篇</a></li> <li><a href="http://amzn.to/2iQ5WNQ">情報参謀</a></li> <li><a href="http://amzn.to/2hCHxK0">断片的なものの社会学</a></li> </ul> <h2 id="scuba-diving-extra-section">Scuba Diving (Extra Section)</h2> <p>5月に <a href="https://en.wikipedia.org/wiki/Scuba_Schools_International">SSI</a> の OpenWater, 8月に Advanced Adventurer のライセンスを取得した.</p> <p>背中のタンクは水中で息を吸うためだけじゃなくて <a href="https://goo.gl/TynZut">BCD</a> に空気を入れて, 重力と浮力を釣り合わせる (<a href="https://ja.wikipedia.org/wiki/%E3%82%B9%E3%82%AF%E3%83%BC%E3%83%90%E3%83%80%E3%82%A4%E3%83%93%E3%83%B3%E3%82%B0#.E4.B8.AD.E6.80.A7.E6.B5.AE.E5.8A.9B">中性浮力</a>をとる) ためにも使うのを潜ってみて初めて知った. 中性浮力が取れている状態がフワフワしていて心地よく新鮮な感覚で今はそれだけでもたのしい. 潜れば潜るほど水圧が増えてBCDの空気の体積が減って浮力が減るので, 更に空気を入れる必要が出てくる. 物理で勉強したことが体感できるのもおもしろかった.</p> <iframe src="https://www.google.com/maps/d/u/0/embed?mid=1iReG716C0SEAy6flmrpJQVDApXw" width="640" height="480"></iframe> <p>最終的に潜った回数は21回で場所は伊豆周辺,伊豆大島及び八丈島. 八丈島でカメと一緒に泳げたり,念願のナイトダイブが出来たのは嬉しかった. 来年はイルカとかマンタとかと泳いでみたり, 海外で潜ってみたりしたい.</p> <p><img src="https://blog.shotarok.com/images/20161231/turtle.jpg" alt="a turtle in Hachijo-jima"></p>Hugo + Bitbucket + CircleCI で GitHub Pages に自動デプロイhttps://blog.shotarok.com/post/hugo-with-bitbucket-and-circleci/Mon, 26 Dec 2016 22:00:00 +0900Shotaro Kohamahttps://blog.shotarok.com/post/hugo-with-bitbucket-and-circleci/ <p>このブログは Hugo で生成した静的ファイルを GitHub Pages でホスティングしていて Hugo に食わせるファイル自体は BitBucket のプライベートレポジトリで管理しています.</p> <p>久しぶりにブログを書くと Hugo のコマンドを忘れてしまって, <code>hugo server</code> でビルドした結果を リンクのホストが localhost になっているのに気付かずに push してしまったり, 時間がかかっていたので <strong>BitBucket に更新があると CircleCI で Hugo の静的ファイルを生成して GitHub Pages にデプロイする</strong> ように下のような手順でしました.</p> <ol> <li>GitHub Pages のレポジトリにデプロイキーを登録</li> <li>BitBucket のプライベートレポジトリを CircleCI に登録</li> <li>CircleCI にデプロイキーを登録</li> <li>BitBucket のプライベートレポジトリに circle.yml を追加</li> <li>記事を編集して push すると自動デプロイされることを確認</li> </ol> <p>以下,ハマったところ・注意したところをポイントに手順を紹介します.</p> <h2 id="1-github-pages-にデプロイキーを登録">1. GitHub Pages にデプロイキーを登録</h2> <p>CircleCI からデプロイを行うために公開鍵を ssh-key をデプロイキーとして登録します. デプロイキーは下のような感じでローカルで生成します.</p> <pre><code>$ cd ~/.ssh $ ssh-keygen -t rsa -f hugo-blog Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in hugo-blog. Your public key has been saved in hugo-blog.pub. ... </code></pre><p><strong>パスワードは空にしないと手順3で CircleCI に登録できないので気を付けて下さい.</strong> あとは生成した公開鍵 <code>hugo-blog.pub</code> ã‚’ GitHub のレポジトリの <code>Settings</code> に <code>Deploy Keys</code> メニューからデプロイキーに登録して下さい.</p> <p>参考: <a href="http://qiita.com/master-of-sugar/items/a9892879f6e9cb9f3c97">Qiita | GithubのDeploy Keysを登録してパスワードなしでアクセスする</a></p> <h2 id="2-bitbucket-のプライベートレポジトリを-circleci-に登録">2. BitBucket のプライベートレポジトリを CircleCI に登録</h2> <p>2016å¹´7月から BitBucket ã‚‚ CircleCI に Integration できるようになりました. 以下の公式ブログを参考に認証を行って,対象のブログレポジトリを Build Project に追加して下さい.</p> <p>参考: <a href="https://circleci.com/blog/announcing-circleci-beta-support-for-atlassian-bitbucket/">CircleCI Blog | Announcing CircleCI Beta Support for Atlassian Bitbucket</a></p> <h2 id="3-circleci-にデプロイキーを登録">3. CircleCI にデプロイキーを登録</h2> <p>手順1で生成した秘密鍵を CircleCI に登録します. サイドメニューから <code>PERMISSIONS</code> の <code>SSH Permissions</code> を開きます. <code>Add SSH Key</code> ボタンを押し秘密鍵を登録します.</p> <p><img src="https://blog.shotarok.com/images/20161226/add-ssh-key.png" alt="Add SSH Key"></p> <p>GitHub Pages にデプロイする場合は <code>github.com</code> ã‚’ <code>Hostname</code> に設定すれば十分です.</p> <h2 id="4-butbucket-のレポジトリに-circleyml-を追加">4. ButBucket のレポジトリに circle.yml を追加</h2> <p>CircleCI では circle.yml をレポジトリのトップに置くことで CI の設定を行うことができます. 今回設定したファイルは以下で、注意したポイントはこんなところです.</p> <ul> <li>デプロイの対象は master のみにしています</li> <li>public 以下の更新がない場合は,テストの <code>git commit</code> が成功しないのでデプロイは実行されません</li> <li>circle.yml のテストも出来るように <code>master</code> だけでなく <code>feature/</code> が付いたブランチも CI の対象とする</li> </ul> <pre><code>machine: timezone: Asia/Tokyo general: branches: only: - master - /feature\/.*/ dependencies: pre: - go get -v github.com/spf13/hugo - git config --global user.name &quot;Shotaro Kohama&quot; - git config --global user.email &quot;[email protected]&quot; - git clone [email protected]:shotarok/shotarok.github.io.git public compile: override: - hugo -t angels-ladder test: override: - cd public &amp;&amp; git add --all &amp;&amp; git commit -m &quot;Update blog via Circle CI&quot; deployment: master: branch: master commands: - cd public &amp;&amp; git push origin master </code></pre><h2 id="5-記事を編集して自動デプロイされることを確認">5. 記事を編集して自動デプロイされることを確認</h2> <p>最後に記事を追加・編集して BitBucket に master ブランチに push します. もしくはプルリクエストを作って master にマージします.</p> <ul> <li>CircleCI でビルドが成功していること</li> </ul> <p><img src="https://blog.shotarok.com/images/20161226/build-success.png" alt="Build Success"></p> <ul> <li>GitHub で commit されていること</li> </ul> <p><img src="https://blog.shotarok.com/images/20161226/update-via-circleci.png" alt="Update via CircleCI"></p> <p>が確認できれば自動デプロイ成功です.</p>GASでDMM英会話の予約メールから自動的にカレンダーに登録https://blog.shotarok.com/post/2016-12-09-auto_creation_of_eikaiwa_events/Fri, 09 Dec 2016 00:00:00 +0900Shotaro Kohamahttps://blog.shotarok.com/post/2016-12-09-auto_creation_of_eikaiwa_events/ <p>この記事は <a href="http://advent.camph.net/">CAMPHOR- Advent Calendar 2016</a> の &ldquo;9日目&rdquo; の記事です.</p> <p>今年の夏にスピーキングの練習をしたいと思って <strong>DMM英会話</strong> をはじめました. 他のオンライン英会話サービスもそうでしたが, DMM英会話サービスはレッスンを予約するとメールが送られてきます. <sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> 最初は手でカレンダーに登録してたのですが, 毎日プランを始めてしばらくするとめんどくさくてやらなくなり, 案の定予約を忘れたりしました. 予約を忘れず, かつ lazy<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> に過ごすために <strong>Google Apps Script でDMM英会話予約メールからカレンダーに自動登録するスクリプト</strong> を書いたので, 今回はその共有です.</p> <h2 id="how-to-work">How to work</h2> <p>スクリプトの動作概要はこちらです.</p> <ol> <li>受信ボックスから <strong>未読</strong> の予約メールを検索</li> <li>未読の予約メールの件名・本文から正規表現で日付を抽出しカレンダーに登録</li> <li>予約メールを <strong>既読</strong> にする</li> </ol> <p>あとは GAS の機能を使って 1.~3. を定期的に実行します.</p> <p>既にカレンダーに登録してあるレッスンかどうかを判断するのに <strong>メールの未読・既読だけを使っている</strong> のが処理を簡単にしているミソですね. <sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup></p> <p>スクリプトは Google Drive の <a href="https://drive.google.com/open?id=1NT5ZYd1d-baRRPUG9PByAJ1KnS885M11M8cq_vRML7_aWFgX6CV_7L1b">CAMPHOR- Advent Calendar 2016 9th day (EnglishSkypeLessons)</a> に置きました. コードを読める方にはスクリプトを読んで頂いて, 記事の残りの部分では GoogleカレンダーとDMM英会話を使っていて僕と同じ悩みを抱えている, そんなあなたに使って頂けるように <strong>使い方</strong> にフォーカスして説明します.</p> <h2 id="how-to-use">How to use</h2> <h2 id="1-プロジェクトをコピーする">1. プロジェクトをコピーする</h2> <p>まず <a href="https://drive.google.com/open?id=1NT5ZYd1d-baRRPUG9PByAJ1KnS885M11M8cq_vRML7_aWFgX6CV_7L1b">CAMPHOR- Advent Calendar 2016 9th day (EnglishSkypeLessons)</a> のリンクを開き, 自分の Google Drive に <strong>コピーを作成</strong> します.</p> <p><img src="https://blog.shotarok.com/images/20161209/phase1.png" alt="Phase1"></p> <p>私の環境では「コピーを作成」を押したら空ページが新しいタブで開かれて成功したかどうか一瞬わかりませんでしたが, 自分の Google Drive を開き直すとちゃんと作成できていました.</p> <p>また「ファイルを開けません」と表示された方もあとでアプリを指定して開くと表示できると思うので, メニューから自分の Google Drive に「コピーを作成」してください.</p> <h3 id="2-スクリプトを実行して権限を付与">2. スクリプトを実行して権限を付与</h3> <p>つぎに <strong>1度手動でスクリプトを実行して Gmail と Google Calendar にアクセスする権限を与えます.</strong></p> <p>コピーしたプロジェクトを 「Google Apps Script Editor」というアプリを指定して開きます. そして DMMEnglish.gs というファイルを選択して, ナビバーの実行のところから <code>DMMEnglish</code> をクリックして下さい.</p> <p><img src="https://blog.shotarok.com/images/20161209/phase2-1.png" alt="Phase2-1"></p> <p>しばらくとすると「承認が必要です」という画面が出てきます.どのような権限が必要なのかを確認するために「許可を確認」をクリックして下さい.</p> <p><img src="https://blog.shotarok.com/images/20161209/phase2-2.png" alt="Phase2-2"></p> <p>「許可を確認」を押すとカレンダーとメールにアクセスする権限を求める画面が表示されます. 権限に納得できたら「許可」をクリックして下さい.</p> <p><img src="https://blog.shotarok.com/images/20161209/phase2-3.png" alt="Phase2-3"></p> <p>「許可」をクリックするとスクリプトが1回実行されます. 未読の予約メールが受信ボックスにある場合はカレンダーに登録されているはずです!</p> <h3 id="3-スクリプトを定期的に実行する">3. スクリプトを定期的に実行する</h3> <p>あとはこの <strong>スクリプトを定期的に実行する</strong> ようにするだけです.</p> <p>ナビバーのリソースのところから「現在のプロジェクトのトリガー」をクリックして下さい.</p> <p><img src="https://blog.shotarok.com/images/20161209/phase3-1.png" alt="Phase3-1"></p> <p>まだこのプロジェクトにはトリガーが設定されていないので、下のような画面が出てきます. トリガーの追加をクリックして下さい.</p> <p><img src="https://blog.shotarok.com/images/20161209/phase3-2.png" alt="Phase3-2"></p> <p>トリガーの設定画面で <code>DMMEnglish</code> ã‚’ <code>時間主導型</code>, <code>分タイマー</code>, <code>15分ごと</code> と選択してから保存をクリックしてください.</p> <p><img src="https://blog.shotarok.com/images/20161209/phase3-3.png" alt="Phase3-3"></p> <p>これで 15分ごとにスクリプトが実行されるようになります. あとは未読の予約メールを受信ボックスに入れておけば,勝手に既読にして Google カレンダーに登録されるようになります.</p> <h2 id="さいごに">さいごに</h2> <p>日頃の手間を省くスクリプトを書くのは個人的に好きで,今年は他にもこんなのを書きました.</p> <ul> <li>Redmine のチケットページから情報をマークダウン形式でクリップボードにコピーするブックマークレット</li> <li>Slack のユーザリストから電話番号を取り出して Twilio で障害電話をかけるための bot</li> <li>Trello でやってる TODO, DOING, DONE のタスク管理リストから API を叩いて週報生成するスクリプト</li> </ul> <p>また機会があれば紹介したいと思います :-D</p> <p>明日は <a href="https://twitter.com/kasajei">@kasajei</a> さんによる 「買って大満足!これがマインドフルネス三種の神器だ!」 です. お楽しみに!</p> <hr> <section class="footnotes" role="doc-endnotes"> <hr> <ol> <li id="fn:1" role="doc-endnote"> <p>そのときに QQEnglish, レアジョブ, BestTeacher などなどの無料プランを一気に試したので同様にスクリプトを書きました.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p> </li> <li id="fn:2" role="doc-endnote"> <p><a href="https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E#.E3.83.97.E3.83.AD.E3.82.B0.E3.83.A9.E3.83.9E.E3.81.AE.E4.B8.89.E5.A4.A7.E7.BE.8E.E5.BE.B3">プログラマ三大美徳</a> 怠惰, 短気, 傲慢.&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p> </li> <li id="fn:3" role="doc-endnote"> <p>この状態管理 は僕が思いついたものではなく、監視メールから Slack に通知する社内スクリプトからアイディアを頂きました :pray:&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p> </li> </ol> </section>'Kaggle Display Advertising Challenge' working with vw-luigihttps://blog.shotarok.com/post/2016-05-03-vwluigi_with_critio_dataset/Tue, 03 May 2016 11:37:10 +0900Shotaro Kohamahttps://blog.shotarok.com/post/2016-05-03-vwluigi_with_critio_dataset/ <p>When you tackle some machine learning problems with <a href="https://github.com/JohnLangford/vowpal_wabbit">vowpal wabbit</a>, have you felt annoying to write monotonous evaluation code like cross-validation? <strong>vw-luigi</strong> (<a href="https://github.com/shotarok/vw-luigi">https://github.com/shotarok/vw-luigi</a>) helps you at such time.</p> <p>The <em>vw-luigi</em> includes <strong>luigi</strong> workflows to evaluate models trained by <strong>vowpal wabbit</strong>. All you need to do is prepare for training and test data. If you use <em>vw-luigi</em>, it would train a model, predict with the model and you can get the evaluation result automatically.</p> <p>In this post, I&rsquo;ll explain an example usage of <em>vw-luigi</em> using <a href="http://criteolabs.wpengine.com/downloads/2014-kaggle-display-advertising-challenge-dataset/">&lsquo;Kaggle Display Advertising Challenge&rsquo;</a> dataset.</p> <h2 id="vw-luigi-with-kaggle-display-advertising-challenge">vw-luigi with &lsquo;Kaggle Display Advertising Challenge&rsquo;</h2> <h3 id="download-dataset">Download Dataset</h3> <p><a href="https://www.kaggle.com/c/criteo-display-ad-challenge">&lsquo;Display Advertising Challenge&rsquo;</a> is a competition to benchmark the most accurate ML algorithms for estimation of <a href="https://en.wikipedia.org/wiki/Click-through_rate">Click-through rate</a> (CTR). It has been held for 90 days in 2014. Dataset was provided by critio. The data is not available on the page on kaggle.com. Currently you can download the data through the page of critio labs (<a href="http://criteolabs.wpengine.com/downloads/2014-kaggle-display-advertising-challenge-dataset/">here</a>). It is available for non-commercial purposes only.</p> <p><img src="https://gyazo.com/2bb3972c30f641c8868bc77b9886ef35.png" alt="dac dataset"></p> <p>If you download <code>dac.tar.gz</code> from this page and decompress it, then you can get <code>readme</code>, <code>train.txt</code>, and <code>test.txt</code>.</p> <h3 id="prepare-training-and-test-data-for-vw">Prepare training and test data for vw</h3> <p>According to the readme, the tsv data consists of 40 columns. The first column is a binary value that means whether ad is clicked or not. Following 13 columns are integer values mainly representing count features. Rest 26 columns are 32 bits hashed value indicating categorical features.</p> <p>To use this data as input of vw, we need to convert tsv into <a href="https://github.com/JohnLangford/vowpal_wabbit/wiki/Input-format">vw format</a>.</p> <script src="https://gist.github.com/shotarok/62f869d277d9755ebdc92708386bb0ad.js"></script> <p>If you save this gist as <code>tsv_to_vw.py</code>, you can convert training and test data via flowing commands.</p> <pre><code>$ mkdir -p /tmp/work/space $ cat train.txt | python train.txt &gt; /tmp/work/space/train.vw $ cat test.txt | python test.txt &gt; /tmp/work/space/test.vw </code></pre><h3 id="evaluate-model-with-vw-luigi">Evaluate model with vw-luigi</h3> <p>Finally, let&rsquo;s clone vw-luigi and run it.</p> <pre><code>$ git clone [email protected]:shotarok/vw-luigi.git ~/ $ cd ~/vw-luigi $ virtualenv venv $ source venv/bin/activate $ pip install -r requirements.txt </code></pre><p>We can get an evaluation result, which includes AUROC, AUPR and LossLoss calculated by <em>scikit-learn</em> like below. The following code uses <code>/tmp/work/space/train.vw</code> as training data, <code>/tmp/work/space/test.vw</code> as test data and <em>squared loss</em> as loss function.</p> <pre><code>$ cd ~/vw-luigi $ source venv/bin/activate $ ls /tmp/work/space &gt; train.vw test.vw $ python -m luigi --module vwluigi EvalTask --loss-func squared --work-dir /tmp/work/space --local-scheduler ... $ ls /tmp/work/space &gt; model.vw predict.vw result.txt train.vw $ cat /tmp/work/space/result.txt </code></pre><p>You can get the evaluation result like this gif.</p> <p><img src="https://gyazo.com/a86de7b93a18d990249176a8f6ba54ed.gif" alt="gif"></p>お気に入りのPodcasthttps://blog.shotarok.com/post/2016-04-30-my-favorite-podcasts/Sat, 30 Apr 2016 21:19:00 +0900Shotaro Kohamahttps://blog.shotarok.com/post/2016-04-30-my-favorite-podcasts/ <p>京都で過ごしていた頃はもっぱら移動は自転車だったが、東京に来てそれが電車に変わった。 毎日電車に乗るのは高校生以来で、当時は乗車時間が40分程で電車も空いていたので座って単語帳を開いてよく寝ていた。 今は10分程度なので寝るわけにもいかず、まぁ音楽より技術や英語の勉強になるかと思い Podcast を聴くようになった。 そんな感じで1年程過ごし番組も選抜されてきたので、この辺でお気に入りの番組とエピソードをまとめようと思う。</p> <h2 id="rebuildhttpsrebuildfm"><a href="https://rebuild.fm/">Rebuild</a></h2> <p>日本語Techç³» Postcast といえば Rebuild と言っても過言ではないくらい界隈で有名。ホストの<a href="https://twitter.com/miyagawa">@miyagawa</a> さんとゲストの方が話す AlphaGo の戦略・実装とか CPU/GPU アーキテクチャなどDeepな技術ネタからマネジメントとかプロダクティビティなどソフトなネタまで、ソフトウェア開発に関わる様々な話題が聞ける番組。</p> <p>お気に入りのエピソードは <a href="https://rebuild.fm/127/">&ldquo;127: Post-mature Optimization (omo)&quot;</a> 。業務で触るようになって中身に興味が出てきたデータベースについて、その大家が書いた<a href="http://www.redbook.io/">&ldquo;赤い本&rdquo;</a>が知れたこと。 Borg と YARN というスケジューラーの違いが MapReduce ã‚„ Spark などの1つ上層の進化にどう影響を与えたかという話が個人的に大ヒットだった。</p> <h2 id="talk-python-to-mehttpstalkpythonfm"><a href="https://talkpython.fm/">Talk Python To Me</a></h2> <iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/14032377&amp;color=ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false"></iframe> <p>およそTech系の Podcast が始まるとは思わない、こんなジングルで始まる番組。SQLAlchemy, Flask といった有名モジュールにまつわる話から どうやったらPythonを使う仕事を見つけられるか、フォントや映画制作でどう使っているかなど Python にまつわる話なら何でも聴ける番組。多くのエピソードで transcription も用意してある。</p> <p>お気に入りのエピソードは <a href="https://talkpython.fm/episodes/show/22/cpython-internals-and-learning-python-with-pythontutor.com">&ldquo;Episode #22: CPython Internals and Learning Python with pythontutor.com&rdquo;</a>。<a href="http://pythontutor.com/">pythontutor</a> を含む CPython の実装についての様々な資料を知れたのが good。</p> <h2 id="バイリンガルニュースhttpstwittercombilingual_news"><a href="https://twitter.com/Bilingual_News">バイリンガルニュース</a></h2> <p>日本語と英語でニュースを紹介した後に Michael が英語で Mami が日本語でバイリンガル会話形式でコメントしていく番組。(番組冒頭より抜粋) 個人的には最初に Podcast を聴き始めたきっかけになった番組。2013年の夏にインターンシップで3ヶ月程東京に来ていた頃に同じく通勤時間によく聴いていた。この番組で 「&ldquo;Do you know what I mean?&rdquo; って便利なフレーズやな、覚えとこ」ってなった :-D</p> <p>お気に入りのエピソードは <a href="http://bilingualnews.libsyn.com/176-takahashi-082715">&ldquo;08.27.15: バイリンガル会話 feat. Yuki Takahashi&rdquo;</a>。南極で宇宙の研究やイーロン・マスクがや創業者で民間でロケット作ってる SpaceX で働いていらしゃった Takahashi さんのお話がとてもおもしろかった。特別編は研究者とか友達がゲストとして来ていつもとは雰囲気違うけど、いろんな話聞けて好き。</p> <h2 id="dongurifmhttpblogdongurifm"><a href="http://blog.donguri.fm/">donguri.fm</a></h2> <p>Web界隈で有名なブロガー narumi さんとなつめぐさんの Podcast。なつめぐさんは<a href="http://natsumeg.blog.jp/archives/34550612.html">セブ島の記事</a>で知って、今は<a href="http://natsumeg.blog.jp/archives/47066799.html">アフリカいらしゃっいます</a>が前職の人事をなさっているときに京都でお話する機会があったり、京都からの友人と<a href="http://f1rst-step.com/">サービス</a>を一緒に作ったりしているのを見て勝手に親近感を覚えいて Podcast を聴きはじめました。他に比べて1エピソードが短いからさらっと聴けるのも好きな理由です。</p> <img src="https://livedoor.blogimg.jp/narumiii/imgs/a/f/afa8ec65.jpg" width="420px"> <p>お気に入りのエピソードは <a href="https://soundcloud.com/dongurifm/0331-01a">&ldquo;033としまえんフィッシングエリアは超楽しい! 出張ポッドキャスト&rdquo;</a>。きたきたきた。って言ってるけど、釣れなすぎてびっくりする。夏はプール、オフシーズンは釣り堀になってるとしまえんで釣りしながら収録。釣りに集中し過ぎて一瞬しゃべんなくなったり、烏の声とか聞こえたりしてこんな番組聴いたことなくておもろかった。</p> <h2 id="software-engineering-radiohttpwwwse-radionet"><a href="http://www.se-radio.net/">Software Engineering Radio</a></h2> <p>同僚のエンジニアの方から教えてもらった Podcast。Borg の話とか Real Time Analysis の話とか <a href="http://www.amazon.co.jp/Soft-Skills-Software-Developers-Manual/dp/1617292397"><em>Soft Skills</em></a> の話だったり、毎回違うゲストが自分の専門の話をしてる。初回が2006年で過去に遡ると <a href="http://www.martinfowler.com/">Martin Fowler</a> 先生とかも話しているし、すごい老舗 Podcast ぽい。聞き流しで理解できないので、気になったエピソードだけ聴いている。</p> <p>お気に入りのエピソードは <a href="http://www.se-radio.net/2016/02/se-radio-episode-249-vaughn-vernon-on-reactive-programming-with-the-actor-model/">&ldquo;SE Radio Episode 249: Vaughn Vernon on Reactive Programming with the Actor Model&rdquo;</a>。ちょうど YAPC Asia 2015 で頂いた冊子に載っていた LINE のアーキテクチャの話を読んでたので Actor の話がとても印象に残った。</p> <h2 id="ニュース英語">ニュース(英語)</h2> <p>英語の勉強がてら <a href="http://edition.cnn.com/studentnews">CNN Student News</a> と <a href="http://www.nhk.or.jp/podcasts/program/nhkworld.html">English News - NHK WORLD RADIO JAPAN</a> を聴いている。CNN の方は学生向けとあって平易な言葉でニュースを説明してあり transcription も用意してある。NHK WORLD は Podcast だけじゃなくWebやアプリで動画も無料で見れる。</p> <h2 id="その他-techç³»">その他 (Techç³»)</h2> <p>その他のTechç³» Podcast はオープンソースの話をしている <a href="https://changelog.com/">The Changelog</a> とフロントサイド系の話をしている <a href="http://mozaic.fm/">mozaic.fm</a> (最新の<a href="http://mozaic.fm/post/133930208998/20-browser">ブラウザの話</a>が最高だった) をたまに聴いている。他にも機械学習とかデータサイエンスの話をする <a href="http://www.thetalkingmachines.com/">Talking Machines</a> とか <a href="http://www.partiallyderivative.com/">Partially Derivative</a> を見つけて購読はしているけれど、個人的にはあまりヒット作はなく気分が向いた時だけ聴いてる。</p> <h2 id="聴く番組の参考にしたサイト">聴く番組の参考にしたサイト</h2> <ul> <li><a href="http://steps.dodgson.org/b/2013/09/21/an-overnight-podcast-listener/">steps to phantasien | SEP 21ST, 2013 にわか Podcast ファン</a></li> <li><a href="http://anemone.dodgson.org/2015/05/20/more-like-a-podcast-listener/">steps to phantasien | 続・にわか Podcast ファン</a></li> <li><a href="http://deeeet.com/writing/2014/08/06/podcast-2014/">SOTA | AUGUST 06, 2014 好きなPodcast</a></li> </ul>超絶技巧プログラミングやってみたhttps://blog.shotarok.com/post/2015-12-17_hello-quine-world/Thu, 17 Dec 2015 00:00:00 +0900Shotaro Kohamahttps://blog.shotarok.com/post/2015-12-17_hello-quine-world/ <p>この記事は <a href="http://advent.camph.net/">CAMPHOR- Advent Calendar 2015</a> の 17 日目の記事です。</p> <p>こんにちは。<a href="https://github.com/shotarok">@shotarok</a> (Twitter: <a href="https://twitter.com/shotarok28">@shotarok28</a>) です。3月までは京都で学生をしていて、今年の4月から東京の <a href="https://www.fout.co.jp/">FreakOut</a> という広告の会社でソフトウェアエンジニアをしている CAMPHOR- OBです。</p> <h2 id="quine-って何">Quine って何?</h2> <p>みなさん「<strong>Quine</strong>」という言葉を聞いたことがありますか? Quine とは、こんなプログラムのことです。 ※1</p> <blockquote> <p>クワイン(英: Quine)は、コンピュータプログラムの一種で、自身のソースコードと完全に同じ文字列を出力するプログラムである。<br> <a href="https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AF%E3%82%A4%E3%83%B3_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)">出典: wikipedia クワイン_(プログラミング)</a></p> </blockquote> <p>定義を読むだけでは、ぱっとはわからないので、実際にプログラムが動いているところを見てみましょう。</p> <p><a href="https://gyazo.com/71c58b0409c2868d29ea40b15a7df6c2"><img src="https://i.gyazo.com/71c58b0409c2868d29ea40b15a7df6c2.gif" alt="https://gyazo.com/71c58b0409c2868d29ea40b15a7df6c2"></a></p> <p>この gif をみると ruby プログラム <a href="https://gist.github.com/shotarok/4d9fc754e4c00036cbdf"><code>quine.rb</code></a> は CAMPHOR- のロゴの形をしていること、ruby で実行すると CAMPHOR- のロゴが出力されることが確認出来ると思います。実は <a href="https://gist.github.com/shotarok/4d9fc754e4c00036cbdf"><code>quine.rb</code></a> は自分自身を出力していて、その出力を実行してもまた同じロゴの形をしたソースコードが出力されます。wiki に書いてあった <i>自身のソースコードと完全に同じ文字列を出力するプログラム.</i> こんなプログラムが Quine です。ソースコードはこちら(<a href="https://gist.github.com/shotarok/4d9fc754e4c00036cbdf">gist</a>)。</p> <p>僕が初めて Quine に出会ったのは、いつかの <a href="http://icpc.iisf.or.jp/2015-tsukuba/?lang=ja">ICPC</a> の地区大会のエクスカーションで Google を訪問して、そこで shinh さんのお話を聞いたときでした。その当時は、自分で書いてみたいと思って、調べてみたものの、結局書くことが出来ず、そのまま放置になっていました。</p> <p>それから数年経った2015年夏、この本と出会いました。</p> <p><a href="http://www.amazon.co.jp/dp/B015R0GNXK/">「<strong>あなたの知らない超絶技巧プログラミングの世界</strong>」</a></p> <p>この本は Quine をはじめとする「超絶技巧プログラミング」と呼ばれる、実用性はないけれど、不思議で楽しいプログラミング技法を紹介しています。そして、この本のおかげで念願叶い Quine を書くことができました。詳細な解説は本を読んで頂くことにして、この記事では、僕が書いた <code>quine.rb</code> の簡単な説明と、作成した手順を紹介できればと思います。</p> <h2 id="はじめての-quine">はじめての Quine</h2> <p>今回、下のような流れで僕は <code>quine.rb</code> を作成しました。</p> <ol> <li>CAMPHOR- のロゴ画像からコードの整形に使うビットマップの作成。</li> <li>ビットマップから <code>quine.rb</code> を出力する <code>build_quine.rb</code> を作成。</li> <li><code>quine.rb</code> が文法的に正しくなっているかを実行して確認。<br> 失敗したら、 2. に戻ってビットマップを調整。<br> 成功したら、Quine 完成!</li> </ol> <h3 id="1-ロゴ画像からビットマップの作成">1. ロゴ画像からビットマップの作成</h3> <p>まずは <code>quine.rb</code> をロゴの形にするための雛形を画像から作成します。これは jpeg 画像から ASCII アートを生成してくれる <code>jp2a</code> と png から jpeg に変換する <code>convert</code> を使うと作業が楽になります。(OSX をお使いの方は両方とも Homebrew でインストールできます) これらを使うと、例えば、こんな感じでビットマップを作成できます。</p> <pre><code>$ wget https://camph.net/static/images/navbar_logo.png $ convert navbar_logo.png jpg:- | jp2a - --chars=012 | tr '2' ' ' 1111111 111111 1111111111 1111111111 1111111111111 111111111111 1111111111111 11111111111111 11111111111111 1111111111111 1111111111111 11111111111111 1111111111111 111111111111 1111111111 11111111111 111111 111111 111111111111 111111111 1111111 11111 1111 111 11 11 </code></pre><h3 id="2-ビットマップから-quine-を作る">2. ビットマップから Quine を作る</h3> <p>作成したビットマップを使って ロゴの形をした Quine を出力する <a href="https://gist.github.com/shotarok/8ca2098340a381be0135"><code>build_quine.rb</code></a> を作ります。天下り的ですが、まずは <a href="https://gist.github.com/shotarok/8ca2098340a381be0135"><code>build_quine.rb</code></a> を御覧ください。</p> <script src="https://gist.github.com/shotarok/8ca2098340a381be0135.js"></script> <p>これを実行すると <a href="https://gist.github.com/shotarok/4d9fc754e4c00036cbdf"><code>quine.rb</code></a> が出てきます。このコードが何をやっているかを上から順に説明していきます!</p> <h4 id="line1-2">Line1-2</h4> <p>ここが Quine の本体と言っても過言ではありません。実はロゴの形にする気がなければ Quine はこんなワンライナーで実現できます。</p> <pre><code>$ ruby -e 'eval$s=%w(puts(s=%(eval$s=%w(#{$s})*&quot;&quot;));)*&quot;&quot;' &gt; eval$s=%w(puts(s=%(eval$s=%w(#{$s})*&quot;&quot;));)*&quot;&quot; </code></pre><p>ざくっと説明すると、変数 <code>$s</code> にソースコードを文字列として代入しています。 その代入された文字列内の <code>#{$s}</code> 部分で、変数 <code>$s</code> が展開されて、これが自分自身を出力する秘訣になっています。</p> <p>また <code>%w(...)*&quot;&quot;</code> は <code>%w</code> で作った文字列型が入った配列を空文字列で join しており,このおかげでソースコードをロゴの形に加工できるようになっています。</p> <pre><code>$ ruby -e 'eval$s=%w(put s(s=%(ev al$s=%w(#{$ s})*&quot;&quot;) );)*&quot;&quot; ' &gt; eval$s=%w(puts(s=%(eval$s=%w(#{$s})*&quot;&quot;));)*&quot;&quot; </code></pre><p>本ではもっと順を追って丁寧に解説されていますので、気になる方は是非ご一読下さい。</p> <h4 id="line4">Line4</h4> <p>変数 <code>bidmap</code> には、ロゴから作成されたビットマップを36変数に変換したものを入れています。 ruby は 多倍長整数と <code>to_s</code> で36進数の変換をサポートしているので、下のようにビットマップから36進数に変換できます。</p> <pre><code>$ ruby -e 'LOGO=&lt;&lt;END 11111 11111 11111111 11111111 1111111111 1111111111 111111111 111111111 11111111 11111111 1111111 111111 1111111 11111 111 111 1 END puts(LOGO.gsub(/\n/, &quot;&quot;).gsub(/[^1]/, &quot;0&quot;).reverse.to_i(2).to_s(36));' &gt; 3mf7nxp6d7yn1up5cf7lkyiexikdcs9mo4xw8j2dv93putn0tbabu2ep3qmdxdel52h7zfwbq7lzz9j8q9amz55h91pwj127 </code></pre><h4 id="line6-12">Line6-12</h4> <p>ここの部分は変数 <code>bidmap</code> を使って、ロゴの形でコードを出力しています。<code>bidmap</code> を多倍長整数にして 1bitずつ走査して <code>1</code> の場合はコードを1文字出力し、<code>0</code> の場合は空白 <code>32.chr</code> を出力します。※2.</p> <h3 id="3-quinerb-の動作確認">3. <code>quine.rb</code> の動作確認</h3> <p>ここまで来たら、後は微調整です。とは言ってもここが地味に大変だったりするのですが…。</p> <p><code>%w()</code> で囲まれた部分は好きに改行できるのですが、<code>eval$s=%w(...)*&quot;&quot;</code> の部分は ruby の文法的に正しくないといけません。 正しい文法になるように、ビットマップを調整しましょう。</p> <p>またビットマップが大きくてソースコードが埋め込めるところが少ないと <code>bitmap</code> が大きくなってコードがはみ出てしまいます。 ビットマップを反転させたり、ロゴに含まれるフォントを大きくしたり、コードがはみ出ないようにビットマップを調整しましょう。</p> <p>逆にビットマップが十分大きくて、ソースコードが足りない場合もあります。そんな時はコメント <code>;</code> が利用できます。 <code>;</code> は適切な位置にあれば、どれだけ追加しても文法的に正しいコードとなります。※3.</p> <pre><code>$ ruby -e 'puts(&quot;hello&quot;)' &gt; hello $ ruby -e ';;;;;;;;;puts(&quot;hello&quot;);;;;;;;' &gt; hello </code></pre><p>今回はロゴを一つだけ埋め込みましたが、本に紹介されている手法を使えば、下の gif のように複数のロゴを埋め込こんで Quine を作ることもできます。ただ数を増やせば増やすほど、この最後の調整が大変になりました。</p> <p><a href="https://gyazo.com/a52c7be7a37931636e18ee3aa23fd146"><img src="https://i.gyazo.com/a52c7be7a37931636e18ee3aa23fd146.gif" alt="https://gyazo.com/a52c7be7a37931636e18ee3aa23fd146"></a></p> <h2 id="最後に">最後に</h2> <p>いかがだったでしょうか。自分しか読めないようなメンテナンス不能なコードを「あぁこの bitmap だと実行できない」と1文字消したり足したりするのは、業務にはない楽しさがありました。※4.</p> <p>超絶技巧プログラミング本には Quine 以外にもいろんな言語で実行できるプログラム、使える文字制限したプログラムなど楽しい超絶技巧が紹介されています。 また、つい先日行われた Ruby Kaigi で開催された <a href="https://github.com/tric/trick2015/blob/master/README.ja.md">TRICK 2015</a> や、先ほどの本の著者である @mametter さんの<a href="http://www.slideshare.net/mametter/ftd2015">スライド</a> 、また shinh さんの <a href="http://shinh.skr.jp/obf/">作品ページ</a> なども覗いてみると楽しいと思います!</p> <p>明日は <a href="http://yu-i9.github.io/">@yui-9</a> による 「<strong>型クラスを含んだ型推論を概観する 〜Typing Haskell in Haskell より〜</strong>」 のお話です。お楽しみに!</p> <hr> <p>※1. もともとは、クワインさんという哲学者の名前です。<br> ※2. 空白は <code>%w(...)*&quot;&quot;</code> で潰れてしまうので <code>32.chr</code> を使用します。<br> ※3. <code>;</code> だと見栄えが悪いので、ランダムな文字列で埋めちゃっても良いと思います。<br> ※4. commit もせずにコードを書いたり消したり推敲する。 <a href="http://www.amazon.co.jp/%E3%83%8F%E3%83%83%E3%82%AB%E3%83%BC%E3%81%A8%E7%94%BB%E5%AE%B6-%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E6%99%82%E4%BB%A3%E3%81%AE%E5%89%B5%E9%80%A0%E8%80%85%E3%81%9F%E3%81%A1-%E3%83%9D%E3%83%BC%E3%83%AB-%E3%82%B0%E3%83%AC%E3%82%A2%E3%83%A0/dp/4274065979">ハッカーと画家 は似ているという話</a> を思い出しました。</p>Hugo + Github Pages でブログ開始https://blog.shotarok.com/post/2015-12-15_my-first-post/Tue, 15 Dec 2015 08:16:39 +0900Shotaro Kohamahttps://blog.shotarok.com/post/2015-12-15_my-first-post/ <p>以前は はてなブログ を使っていたのですが、今年の4月に就職してデジタルマーケティングの会社に入ったので、 3rd party javascript やタグマネージャーの勉強することもままあり、 CAMPHOR- Advent Calendar に参加する前に、タグを好きに追加できるブログをはじめてみようとなりました。</p> <p>Markdown で書ける静的ジェネレーターなら、正直なんでも良かったのですが、 使っている人がそこそこいる(静的ジェネレーターの GitHub の star 数ランキングで割と上位だった)、 気に入ったテーマがあった、かつ 普段触らない言語 go を触る良い機会になるかもと思ったこと 等を理由に <strong>Hugo</strong> を使うことにしました。</p> <h2 id="簡単な使い方">簡単な使い方</h2> <p>Hugo を使うと <code>hugo new site &lt;name&gt;</code> というコマンドでサイトの雛形を作る事ができます。 Hugo自体は <code>go get -u -v github.com/spf13/hugo</code> ã‚„ <code>brew install hugo</code> でインストールできます。</p> <pre><code>$ hugo new site test-blog $ tree test-blog test-blog ├── archetypes ├── config.toml ├── content ├── data ├── layouts └── static 5 directories, 1 file </code></pre><p>テーマは <a href="https://github.com/spf13/hugoThemes/"><code>hugoThemes</code></a> というレポジトリにたくさんまとめてあります。 これらを利用するにはまず theme ディレクトリを作成しクローンしてきます。 そのあと気に入ったテーマを <code>-t</code> で指定し <code>hugo</code> を実行すると <code>public</code> フォルダに静的コンテンツが作成されます。</p> <pre><code>$ cd test-blog $ git clone --depth 1 --recursive https://github.com/spf13/hugoThemes.git themes $ hugo -t angels-ladder </code></pre><p>新しい投稿を作成する場合は <code>hugo new post/&lt;file name&gt;.md</code> でマークダウン引用の雛形を作成することができます。 また <code>hugo server -t angels-ladder -w</code> でローカルにサーバを建てることによって、エディターで編集したファイルをブラウザで確認しながら作業する事ができます。</p> <pre><code>$ hugo new post/hello-world.md $ hugo server -t angels-ladder -w # Edit post/hello-world.md by some editors </code></pre><h2 id="個人的なレポジトリ構成">個人的なレポジトリ構成</h2> <p>Hugo によって作成された静的コンテンツは GitHub Pages を利用して管理し、 雛形の方は theme も含めて BitBucket のプライベートレポジトリで管理しています。 これで Github Pages のレポジトリには静的なマークアップのコードだけになり、 マークダウンのファイルや自分用に少し変更したテーマなどはBidBucketで管理することができます。</p> <h3 id="github-での静的コンテンツのレポジトリ管理">Github での静的コンテンツのレポジトリ管理</h3> <pre><code>$ cd test-blog/public $ git init $ git remote add origin [email protected]:&lt;username&gt;/&lt;username&gt;.github.io.git $ git add --all &amp; git commit -m &quot;Initial commit&quot; $ git push --all </code></pre><h3 id="bidbucket-での-マークダウンhugoテーマ-のレポジトリ管理">BidBucket での マークダウン&amp;Hugoテーマ のレポジトリ管理</h3> <pre><code>$ cd test-blog $ git init $ echo public &gt;&gt; .gitignore $ git remote add origin [email protected]:&lt;username&gt;/hugo-blog.git $ git add --all &amp; git commit -m &quot;Initial commit&quot; $ git push origin --all </code></pre><h2 id="special-thanks">Special Thanks</h2> <p>今回参考にさせていただいたサイト<br> ・https://github.com/spf13/Hugo<br>  本家レポジトリ。ドキュメントもしっかりしていて、わかりやすい!<br> ・ <a href="http://tanksuzuki.com/post/hugo-github-pages-1/">http://tanksuzuki.com/post/hugo-github-pages-1/</a><br>  とても丁寧に解説されていたので大変重宝しました。テーマも使わせて頂きました!ありがとうございます!</p>