Read, Watch & Listenhttps://blog.shotarok.com/Recent content on Read, Watch & ListenHugo -- gohugo.ioja-JPSun, 31 Dec 2017 22:00:00 +0900- 2017å¹´æ¯ãè¿ã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 äºä»¶ããï¼å¹´âââç±çãã 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&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&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 & 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>ä»å¹´ã¯ä¼è±ãæ²ç¸ãå¥ç¾å¤§å³¶ã®ï¼ç®æã§è¨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> ã¨ããèªãã¨ãããªã«ç°¡æ½ã«æ¸ããã®ãã¨æ§ããå¢ãã¾ã <a href="#fnref:1" class="footnote-backref" role="doc-backlink">↩︎</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> <a href="#fnref:2" class="footnote-backref" role="doc-backlink">↩︎</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’s Guide to Python</a> <a href="#fnref:3" class="footnote-backref" role="doc-backlink">↩︎</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">“Heroku for Deep Learning”</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> 使ãã®ãè¯ãããã <a href="#fnref:1" class="footnote-backref" role="doc-backlink">↩︎</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’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">è¦ãã¾ãã«ä½èèªãæ¸ããããã®ãè³ã®åãã¬ã¼ãã³ã°ãã¬ã¤ããé£äºå ±é
¬ã¨è¥æº ãã®ï¼ã</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 ãåããã¨ãããä¸å¯§ã«èª¬æãã¦ãã.
説æã« “file” ã¨ããåèªãç¾ããã¨ï¼æ¥ã«æã¾ããè¬ã®ç»åããã®ãã³ã·ã§ã³ãè¯ãã£ã. ãã®ä½è
ã® Exploit ã®ææ³ã説æããåç»ã·ãªã¼ãº <a href="https://www.youtube.com/watch?v=xCEJfTfhtQc">LiveOverflow</a> ãã¨ã¦ãé¢ç½ãã£ã.</p>
<p>ãã®ä» Tech ç³»ã«ã³ãã¡ã¬ã³ã¹ã®ãã¼ã¯ã¨ã大å¦ã¨ãã®ææ¥ã Youtube ãè¦ãã®ãåå¼·ã«ãªã£ããã©ï¼
èå¼±æ§ã¨ã CTF ã®è§£èª¬åç»ã¨ã GDB ã®ãã¥ã¼ããªã¢ã«ã¨ãã ã¨ï¼æ®æ®µéçºãã¦ã¦ãè¦ãæ©ä¼ã¯ãªã “人ãã©ãã¿ã¼ããã«ä¸ã§ä½æ¥ãã¦ããã” ãè¦ããã®ãæ°é®®ã ã£ã.</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’ll change your view of Linux tracing</a></li>
<li><a href="https://www.youtube.com/watch?v=PorfLSr3DDI">CppCon | CppCon 2015: Greg Law “Give me 15 minutes & I’ll change your view of GDB”</a></li>
<li><a href="https://www.youtube.com/watch?v=EqndHT606Tw&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 "Shotaro Kohama"
- git config --global user.email "[email protected]"
- git clone [email protected]:shotarok/shotarok.github.io.git public
compile:
override:
- hugo -t angels-ladder
test:
override:
- cd public && git add --all && git commit -m "Update blog via Circle CI"
deployment:
master:
branch: master
commands:
- cd public && 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> ã® “9æ¥ç®” ã®è¨äºã§ã.</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>ã許å¯ããã¯ãªãã¯ããã¨ã¹ã¯ãªãããï¼åå®è¡ããã¾ã. æªèªã®äºç´ã¡ã¼ã«ãåä¿¡ããã¯ã¹ã«ããå ´åã¯ã«ã¬ã³ãã¼ã«ç»é²ããã¦ããã¯ãã§ãï¼</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 ãªã©ãªã©ã®ç¡æãã©ã³ãä¸æ°ã«è©¦ããã®ã§åæ§ã«ã¹ã¯ãªãããæ¸ãã¾ãã. <a href="#fnref:1" class="footnote-backref" role="doc-backlink">↩︎</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> æ æ°, çæ°, å²æ
¢. <a href="#fnref:2" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>ãã®ç¶æ
管ç ã¯åãæãã¤ãããã®ã§ã¯ãªããç£è¦ã¡ã¼ã«ãã Slack ã«éç¥ãã社å
ã¹ã¯ãªããããã¢ã¤ãã£ã¢ãé ãã¾ãã :pray: <a href="#fnref:3" class="footnote-backref" role="doc-backlink">↩︎</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’ll explain an example usage of <em>vw-luigi</em> using <a href="http://criteolabs.wpengine.com/downloads/2014-kaggle-display-advertising-challenge-dataset/">‘Kaggle Display Advertising Challenge’</a> dataset.</p>
<h2 id="vw-luigi-with-kaggle-display-advertising-challenge">vw-luigi with ‘Kaggle Display Advertising Challenge’</h2>
<h3 id="download-dataset">Download Dataset</h3>
<p><a href="https://www.kaggle.com/c/criteo-display-ad-challenge">‘Display Advertising Challenge’</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 > /tmp/work/space/train.vw
$ cat test.txt | python test.txt > /tmp/work/space/test.vw
</code></pre><h3 id="evaluate-model-with-vw-luigi">Evaluate model with vw-luigi</h3>
<p>Finally, let’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
> train.vw test.vw
$ python -m luigi --module vwluigi EvalTask --loss-func squared --work-dir /tmp/work/space --local-scheduler
...
$ ls /tmp/work/space
> 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/">“127: Post-mature Optimization (omo)"</a> ãæ¥åã§è§¦ãããã«ãªã£ã¦ä¸èº«ã«èå³ãåºã¦ãããã¼ã¿ãã¼ã¹ã«ã¤ãã¦ããã®å¤§å®¶ãæ¸ãã<a href="http://www.redbook.io/">“赤ã欔</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&color=ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&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">“Episode #22: CPython Internals and Learning Python with pythontutor.com”</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ã¶æç¨æ±äº¬ã«æ¥ã¦ããé ã«åããéå¤æéã«ããè´ãã¦ããããã®çªçµã§ ã“Do you know what I mean?” ã£ã¦ä¾¿å©ãªãã¬ã¼ãºããªãè¦ãã¨ããã£ã¦ãªã£ã :-D</p>
<p>ãæ°ã«å
¥ãã®ã¨ãã½ã¼ã㯠<a href="http://bilingualnews.libsyn.com/176-takahashi-082715">“08.27.15: ãã¤ãªã³ã¬ã«ä¼è©± feat. Yuki Takahashi”</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">“033ã¨ãã¾ãããã£ãã·ã³ã°ã¨ãªã¢ã¯è¶
楽ããï¼ åºå¼µããããã£ã¹ã”</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/">“SE Radio Episode 249: Vaughn Vernon on Reactive Programming with the Actor Model”</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>) ã§ããï¼æã¾ã§ã¯äº¬é½ã§å¦çããã¦ãã¦ãä»å¹´ã®ï¼æããæ±äº¬ã® <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})*""));)*""'
> eval$s=%w(puts(s=%(eval$s=%w(#{$s})*""));)*""
</code></pre><p>ããã£ã¨èª¬æããã¨ãå¤æ° <code>$s</code> ã«ã½ã¼ã¹ã³ã¼ããæååã¨ãã¦ä»£å
¥ãã¦ãã¾ãã
ãã®ä»£å
¥ãããæååå
ã® <code>#{$s}</code> é¨åã§ãå¤æ° <code>$s</code> ãå±éããã¦ããããèªåèªèº«ãåºåããç§è¨£ã«ãªã£ã¦ãã¾ãã</p>
<p>ã¾ã <code>%w(...)*""</code> 㯠<code>%w</code> ã§ä½ã£ãæåååãå
¥ã£ãé
åã空æåå㧠join ãã¦ããï¼ãã®ãããã§ã½ã¼ã¹ã³ã¼ãããã´ã®å½¢ã«å å·¥ã§ããããã«ãªã£ã¦ãã¾ãã</p>
<pre><code>$ ruby -e 'eval$s=%w(put
s(s=%(ev
al$s=%w(#{$
s})*"")
);)*""
'
> eval$s=%w(puts(s=%(eval$s=%w(#{$s})*""));)*""
</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=<<END
11111 11111
11111111 11111111
1111111111 1111111111
111111111 111111111
11111111 11111111
1111111 111111
1111111
11111
111
111
1
END
puts(LOGO.gsub(/\n/, "").gsub(/[^1]/, "0").reverse.to_i(2).to_s(36));'
> 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(...)*""</code> ã®é¨å㯠ruby ã®ææ³çã«æ£ãããªãã¨ããã¾ããã
æ£ããææ³ã«ãªãããã«ãããããããã調æ´ãã¾ãããã</p>
<p>ã¾ãããããããã大ããã¦ã½ã¼ã¹ã³ã¼ããåãè¾¼ããã¨ãããå°ãªã㨠<code>bitmap</code> ã大ãããªã£ã¦ã³ã¼ããã¯ã¿åºã¦ãã¾ãã¾ãã
ãããããããå転ããããããã´ã«å«ã¾ãããã©ã³ãã大ããããããã³ã¼ããã¯ã¿åºãªãããã«ããããããã調æ´ãã¾ãããã</p>
<p>éã«ãããããããåå大ããã¦ãã½ã¼ã¹ã³ã¼ãã足ããªãå ´åãããã¾ãããããªæã¯ã³ã¡ã³ã <code>;</code> ãå©ç¨ã§ãã¾ãã
<code>;</code> ã¯é©åãªä½ç½®ã«ããã°ãã©ãã ã追å ãã¦ãææ³çã«æ£ããã³ã¼ãã¨ãªãã¾ããâ»3.</p>
<pre><code>$ ruby -e 'puts("hello")'
> hello
$ ruby -e ';;;;;;;;;puts("hello");;;;;;;'
> 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 ã ã¨å®è¡ã§ããªããã¨ï¼æåæ¶ããã足ãããããã®ã¯ãæ¥åã«ã¯ãªã楽ãããããã¾ãããâ»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(...)*""</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>以å㯠ã¯ã¦ãªããã° ã使ã£ã¦ããã®ã§ãããä»å¹´ã®ï¼æã«å°±è·ãã¦ãã¸ã¿ã«ãã¼ã±ãã£ã³ã°ã®ä¼ç¤¾ã«å
¥ã£ãã®ã§ã
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 <name></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/<file name>.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]:<username>/<username>.github.io.git
$ git add --all & git commit -m "Initial commit"
$ git push --all
</code></pre><h3 id="bidbucket-ã§ã®-ãã¼ã¯ãã¦ã³hugoãã¼ã-ã®ã¬ãã¸ããªç®¡ç">BidBucket ã§ã® ãã¼ã¯ãã¦ã³&Hugoãã¼ã ã®ã¬ãã¸ããªç®¡ç</h3>
<pre><code>$ cd test-blog
$ git init
$ echo public >> .gitignore
$ git remote add origin [email protected]:<username>/hugo-blog.git
$ git add --all & git commit -m "Initial commit"
$ 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>