<rss xmlns:blogChannel="https://9renpoto.win" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0"><channel>
    <title>:-) 🏕</title><link>https://9renpoto.win</link><description>:-) 🏕</description><language>ja</language><ttl>40</ttl>
    <item>
      <title><![CDATA[子供が生まれました]]></title>
      <description><![CDATA[My child is born]]></description>
      <content:encoded><![CDATA[<h1 id="">私信</h1><ul>
<li>7/19子供が生まれました</li>
<li>元気にやってます</li>
</ul>
<h2 id="">👶</h2><ul>
<li>今回は立ち合いできたのが良かった</li>
<li>寝て飲んで泣いて繰り返してる</li>
</ul>
<h2 id="">生活</h2><ul>
<li>無事1か月検診が迎えられそう</li>
<li><a href="../../../2024/04/18/hello-world">長男の誕生</a>と比較して事前準備ができてよかった</li>
<li>仕事は少々お休み中だが時間の使い方が難しい</li>
</ul>
<h2 id="">健康</h2><ul>
<li>両親のサポートで食生活が改善した</li>
<li>台所業務を楽しむ</li>
<li>筋トレは在宅でできるものを検討</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2026/08/17/hello-world</link><guid>https://9renpoto.win/entry/2026/08/17/hello-world</guid>
    </item><item>
      <title><![CDATA[キーボード⌨️を悩む旅]]></title>
      <description><![CDATA[悩んでいる間が一番楽しい]]></description>
      <content:encoded><![CDATA[<h1 id="">はじめに</h1><p>キーボードを探しています。
現在は10年ぐらいHHKB Bluetooth無刻印を使っています。
特に困っていませんでした。</p>
<p>コーディングはMac、ゲームはWindows、持ち運びはUbuntuを使っています。
環境は同時に複数起動しない前提でキーボードは共有で利用できました。マイクやカメラ、モニターなどのデバイスは切り替えて共有できるようにしています。
マウスとトラックパッドを使っていますが、それぞれWindows・Mac専用機として利用しています。
Macは複数デバイス間でデバイスを共有する仕組みがありとても気に入っています。</p>
<p>持て余しているWindowsを使ってhomelabsの運用検討を始めました。
最初は家でこれまた余っているMac miniの上でLinuxサーバーにして運用する予定でしたがCPUが弱くて移行検討することになりました。
結果として悩ましいのが複数OSの同時起動とデバイス切り替えです。</p>
<h2 id="hhkb-studio">HHKB Studio</h2><p>最初に思いついたのはHHKBの置き換えです。BTでサポートしていない複数デバイスの切り替えができ、Windows / Mac両方起動時にキーボードの機能だけで切り替え可能です。
<code>HHKB Studio</code> はポインティングデバイスにいく勇気が必要ですが、3/31現在は無刻印セットのセールがされているので有力候補の1つです。</p>
<p><a href="https://bsky.app/profile/hhkb.bsky.social/post/3mgwph3er3s2q">HHKB Studio</a></p>
<h2 id="jiffy75-lp">Jiffy75 LP</h2><p>検討中の第二候補がkickstarterで公開されている <code>Jiffy75</code> 。 <code>Cornix LP</code> の流れに乗り遅れたと思ったら次のキーボードが出るらしい。
分割キーボードは過去 <a href="https://shop.yushakobo.jp/products/397">mint60</a> に挑戦した。初めての自作キーボードではんだ付けに失敗したのと、優先分割キーボードだったことでHHKBの無線体験に戻ってしまっていた。もう一度分割キーボードに挑戦する案もある。</p>
<p><a href="https://x.com/jezailfunder_jp/status/2024795594045505688">Jiffy75</a></p>
<h2 id="">悩む</h2><p>基本は無線キーボードを検討する。ゲームをするときにストレスを感じるようなら左手デバイスの導入を検討する。カジュアル勢なので普段はパッドでも十分だろう。
4月から新しい開発環境としてWindowsをメインにするのも十分あり得る。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 31 Mar 2026 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2026/03/31/keyboard</link><guid>https://9renpoto.win/entry/2026/03/31/keyboard</guid>
    </item><item>
      <title><![CDATA[近況]]></title>
      <description><![CDATA[
体調も落ち着いてジムにも通えて健全な生活が戻りつつある。

寂しいこともあり、近くで気に入っていた🍺を飲めるお店が人員不足で休業になった。
別店舗で同じ🍺をまた飲めるのだが、徒歩圏内にあった以前と比べてどうしても機会が減ってしまう。
特に昼に飲めたのが良かった。

家ではずっと「はたらくくるま]]></description>
      <content:encoded><![CDATA[<p>体調も落ち着いてジムにも通えて健全な生活が戻りつつある。</p>
<p>寂しいこともあり、近くで気に入っていた🍺を飲めるお店が人員不足で休業になった。
別店舗で同じ🍺をまた飲めるのだが、徒歩圏内にあった以前と比べてどうしても機会が減ってしまう。
特に昼に飲めたのが良かった。</p>
<p>家ではずっと「はたらくくるま」の再生を子供👦から求められている。
最近のブームだ。</p>
<p>2月は<a href="../04/election">選挙</a>に参加してきた。与党・中道でないところに入れた。
自分の地域はもう少し多彩な候補者が出て欲しい。</p>
<p>仕事と子育ての往復を続けている毎日を、まだボチボチ楽しめている。
最近朝ごはんを担当するようになったが料理する計画が立てられるのも割と楽しい。</p>
<p>夏頃からまたガラリと生活が変わりそうなのだ。
余裕ある今の内に読書やゲームや何か自分の時間を作る習慣を夜寝る前に入れたり挑戦したい。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Fri, 13 Feb 2026 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2026/02/13/current_status</link><guid>https://9renpoto.win/entry/2026/02/13/current_status</guid>
    </item><item>
      <title><![CDATA[選挙]]></title>
      <description><![CDATA[
# TL;DR

- 2/8は投票日です
- 行けない方は期日前東京に参加しましょう

## 今回の選挙

自分は期日前投票ではなく当日に投票予定である。
投票用紙が届くのかはまだよくわからない。

今回の選挙は不思議な点が多い。
自分は関東圏で生活しているわけでもないので、自分の地域からは出馬し]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>2/8は投票日です</li>
<li>行けない方は期日前東京に参加しましょう</li>
</ul>
<h2 id="">今回の選挙</h2><p>自分は期日前投票ではなく当日に投票予定である。
投票用紙が届くのかはまだよくわからない。</p>
<p>今回の選挙は不思議な点が多い。
自分は関東圏で生活しているわけでもないので、自分の地域からは出馬している人がそもそも少ない。</p>
<p>政策の違いなどの議論よりも、情勢が決しているといった情報がとても目に入る。
食料品消費税の現象に関する議論などもかなり前から提案があるが、指摘の問題はどの党も解決案を持っている訳ではないように見える。</p>
<h2 id="">気づいたら流れが見えていない</h2><p>前回の選挙だとオレンジ色の党に勢いがあったようだが結局最後までその流れの発端がよくわからないまま終わった。
今回の選挙だと青色の党が勢いを出そうと変わったことを始めてみたがどうも空回りしている。</p>
<p>選挙速報的なものは新作映画のネタバレのような、中身をまったく見ていないのに関心を削いでしまう。
インターネット使わないぐらいの強い気持ちが必要だ。</p>
<h2 id="">知りたいこと</h2><p>与野党の主張と対立のマトリクスが知りたい。
与党の意見の反対が野党である必要はないけれど、与党の意見に近い野党が野党の立場を取っている背景もわからない。</p>
<p>自分の選挙区に出ている候補者も配布される資料かたまたま演説に遭遇することなどがなければ主張の違いを認識することも難しい。
所属政党と候補者の意見の乖離においても受け止め方がわからない。</p>
<p>わからないことだらけだ。後1週間でもう少し内容を調べる。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Wed, 04 Feb 2026 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2026/02/04/election</link><guid>https://9renpoto.win/entry/2026/02/04/election</guid>
    </item><item>
      <title><![CDATA[2025年終わり]]></title>
      <description><![CDATA[今年も良い年になりますように]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><p>あっという間に一年が終わり、今年は特にアウトプットが出せない年でした。</p>
<h2 id="">振り返り</h2><ul>
<li>引っ越した<ul>
<li>広い家に引っ越した</li>
<li>仕事部屋が安定して利用できた</li>
</ul>
</li>
<li>所属プロジェクトが変わった<ul>
<li>新規企画を考えたりした</li>
<li><a href="/entry/2025/12/25/output">AI前提で仕事するようになった</a></li>
</ul>
</li>
<li>体調<ul>
<li>体重を夏に減らせて戻った</li>
<li>酒を飲む量は減った</li>
</ul>
</li>
</ul>
<h2 id="">来年の目標</h2><ul>
<li>体調<ul>
<li>ジム通いできる限り継続する</li>
<li>ジム行かない日の運動を増やす</li>
</ul>
</li>
<li>学習<ul>
<li>AIを利用しない趣味の範囲を増やす</li>
<li>本を読む</li>
</ul>
</li>
</ul>
<h2 id="">過去</h2><ul>
<li><a href="/entry/2024/12/31/2024-end">2024 年終わり</a></li>
<li><a href="/entry/2023/12/31/end">2023 年終わり</a></li>
<li><a href="/entry/2019/12/31/2019-end">2019 年終わり</a></li>
<li><a href="/entry/2018/12/31/2018-end">2018 年終わり</a></li>
<li><a href="/entry/2017/12/31/2017-end">2017 年終わり</a></li>
<li><a href="/entry/2017/01/01/2016">2016 年終わり</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2026/01/01/2026-yew-year</link><guid>https://9renpoto.win/entry/2026/01/01/2026-yew-year</guid>
    </item><item>
      <title><![CDATA[生成AIと私]]></title>
      <description><![CDATA[
最近しっかり生成AIでアウトプットを作る機会が増えた。
プレイヤーの仕事をさせてもらっているが受け入れてばかりの毎日だ。

座学で授業を受けているような感覚で、自分の力とするには自分なりの学習を仕組みにする必要がある。
突然生成AIが使えない環境に入ると今のような速度でキャッチアップを進めたり、ア]]></description>
      <content:encoded><![CDATA[<p>最近しっかり生成AIでアウトプットを作る機会が増えた。
プレイヤーの仕事をさせてもらっているが受け入れてばかりの毎日だ。</p>
<p>座学で授業を受けているような感覚で、自分の力とするには自分なりの学習を仕組みにする必要がある。
突然生成AIが使えない環境に入ると今のような速度でキャッチアップを進めたり、アウトプットを進められるかはわからない。</p>
<p>仕事ではより枯れた手段を好むようになった。</p>
<p>アウトプットの速度に驚いて、6割の品質で走り始めた。8割に達する前の段階でレビューを開くことが増えてしまっていた。
パッと要求して完成まで走ってしまうと自分では作らない1000行や2000行といった差分のプルリクエストができてしまう。認知負荷が高い。</p>
<p>もっと踏み止まり、品質がぶれない手段を経由するやり方を模索する必要がある。3度やるぐらいの覚悟で仕事するのがちょうどいい。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 25 Dec 2025 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2025/12/25/output</link><guid>https://9renpoto.win/entry/2025/12/25/output</guid>
    </item><item>
      <title><![CDATA[病児保育]]></title>
      <description><![CDATA[
# 初めての1人病児保育

奥さんの出張と重なり子供が熱を出した。貴重な体験をメモしておく。

## だいたい元気

咳が出て、鼻水が出ても朝にはだいたい本人は元気になったつもりだ。
家は退屈で外にも出たい。だけれどおやつ、ご飯も喉を通らない。

やる気は溢れている。

## 眠くても眠られない
]]></description>
      <content:encoded><![CDATA[<h1 id="1">初めての1人病児保育</h1><p>奥さんの出張と重なり子供が熱を出した。貴重な体験をメモしておく。</p>
<h2 id="">だいたい元気</h2><p>咳が出て、鼻水が出ても朝にはだいたい本人は元気になったつもりだ。
家は退屈で外にも出たい。だけれどおやつ、ご飯も喉を通らない。</p>
<p>やる気は溢れている。</p>
<h2 id="">眠くても眠られない</h2><p>自分がスマートフォンを触ったり、ちょっと家事のためにとテレビを流したりするとどんどん眠さが遠のいていく。
体力の限界がくると急に高熱を出してご飯も食べられず倒れたように寝る。</p>
<p>まだ高熱で痙攣など起こしたことはないけれど夕方から特に目が離せなくなる。</p>
<h2 id="">デジタルデトックス</h2><p>仕事が気になったり、隙間時間を埋めたかったりで簡単にデジタルな空間にアクセスしてしまう。
その度に子供へ向き合う時間が減っていたり、眠りを妨げていたりする。</p>
<p>デジタルから離れてもっとアナログな世界の子供に向き合うのが必要だ。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 25 Sep 2025 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2025/09/25/childcare_for_sick_children</link><guid>https://9renpoto.win/entry/2025/09/25/childcare_for_sick_children</guid>
    </item><item>
      <title><![CDATA[近況]]></title>
      <description><![CDATA[
年末から長く咳が続き不調な毎日を過ごした。
今は元気になった。子育てに手一杯なので悩みを抱えないように生活してる。

仕事は変わらずサービス開発のお仕事を続けられている。
全体の理解も深まってきたことで好きに動けるようにもなった。

久々に東京出張へ来た。
降りた駅でよく行ったビルがなくなっていた]]></description>
      <content:encoded><![CDATA[<p>年末から長く咳が続き不調な毎日を過ごした。
今は元気になった。子育てに手一杯なので悩みを抱えないように生活してる。</p>
<p>仕事は変わらずサービス開発のお仕事を続けられている。
全体の理解も深まってきたことで好きに動けるようにもなった。</p>
<p>久々に東京出張へ来た。
降りた駅でよく行ったビルがなくなっていたり時代の変化を感じる。4月上旬の東京宿は値段が高い。</p>
<p>今回は前職の同僚と会うことができ、楽しい時間も過ごした。
彼らの近況の変化を聞き自分もリスクを取ったりチャレンジしたいと感じた。</p>
<p>子どもは早くも1歳になる。保育園に通い初めて泣きながら成長している。
季節の変わり目に初めての風邪を引いてたが、毎日元気そうで何よりだ。</p>
<p>妻の復職も近くなり、新しい生活の始まりが近い。 1年間の育休期間本当にありがとう。</p>
<p>今年度も頑張るぞ💪。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Fri, 04 Apr 2025 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2025/04/05/current_status</link><guid>https://9renpoto.win/entry/2025/04/05/current_status</guid>
    </item><item>
      <title><![CDATA[「怒りが消える」心のトレーニングを読んだ]]></title>
      <description><![CDATA[
# TL;DR

- 怒る前、反論する前には6秒の間を置く訓練をしよう
- 怒り以外の感情に直接目を向けよう
- 要求を伝える方法として「私」を正しく伝えよう

## 怒りのピークは６秒で終わる

&gt; 反射的な言動をやめる

最初にこの言葉が出てきてまさにそうだと感じた。

習慣や合理性といったも]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>怒る前、反論する前には6秒の間を置く訓練をしよう</li>
<li>怒り以外の感情に直接目を向けよう</li>
<li>要求を伝える方法として「私」を正しく伝えよう</li>
</ul>
<h2 id="">怒りのピークは６秒で終わる</h2><blockquote>
<p>反射的な言動をやめる</p>
</blockquote>
<p>最初にこの言葉が出てきてまさにそうだと感じた。</p>
<p>習慣や合理性といったものは相当に曲者で、なかなか抜け出せない。
怒りの感情をうまく扱えていない自覚がある。</p>
<p>不快なことはあれど、起こることはなく相手に要求を伝えられないような場合が増えた。
自分の感じた不快感は「怒り」のようなものとして相手に伝わってしまっている場合もある。</p>
<p>6秒待つというルールは非常に直感的だ。自分の習慣を見直す1つとしてぜひチャレンジしたい。</p>
<h2 id="">怒りの奥にある「本当の気持ち」と向き合う</h2><blockquote>
<p>怒りは二次感情であり、その裏には一次感情が潜んでいる</p>
</blockquote>
<p>感情には分類があるという話がされていた。
悲しみや不安といったようなネガティブになってしまう感情と怒りや不快といった感情は同様のものと考えていた。</p>
<p>怒りを収束させるためその原因である一次感情に目を向けないと解決できないという話がされており、その切り分けをしましょうと解説されていた。</p>
<h2 id="">主語を私にして伝える</h2><blockquote>
<p>自分を主語に伝えると、相手は受け取りやすくなります。相手の問題に言及することなく、自分自身の問題を伝えているだけだからです。</p>
</blockquote>
<p>伝え方は本当に悩んでいる。
否定という用意はネガティブな引力が強くて憶測も生みやすい。</p>
<p>結果的に、自分の要求を伝えきれないことは増えている。
この本の中ではそれも良くないと書かれていて、その上で方法を考えさせられる。</p>
<p>もっとうまく感情をコントロールしていきたい。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 01 Feb 2025 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2025/02/01/anger-management</link><guid>https://9renpoto.win/entry/2025/02/01/anger-management</guid>
    </item><item>
      <title><![CDATA[2024年終わり]]></title>
      <description><![CDATA[
# TL;DR

1. 2024年は家族との時間を大切にしつつ、仕事や趣味を楽しんだが、体重増加や耳鳴りが気になった
1. 来年は運動や柔軟を習慣化し、仕事面では安定と新たな挑戦を目指したい
1. 家族や仕事のバランスを保ちながら、充実した1年にしたい

## 振り返り

- プライベート
  -]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ol>
<li>2024年は家族との時間を大切にしつつ、仕事や趣味を楽しんだが、体重増加や耳鳴りが気になった</li>
<li>来年は運動や柔軟を習慣化し、仕事面では安定と新たな挑戦を目指したい</li>
<li>家族や仕事のバランスを保ちながら、充実した1年にしたい</li>
</ol>
<h2 id="">振り返り</h2><ul>
<li>プライベート<ul>
<li>2024年は子どものために時間を使えた</li>
<li>在宅で仕事をできることに感謝</li>
<li>育休を取得し子育てや家事をリードしてくれている奥さんに感謝</li>
</ul>
</li>
<li>体調<ul>
<li>体重が過去最大になっている</li>
<li>健康診断は問題ない</li>
<li>酒を飲む量は減った</li>
<li>たまに耳鳴りがするようになった</li>
</ul>
</li>
<li>趣味<ul>
<li>車の運転が最近楽しい</li>
<li>もう少し子どもが大きくなったら山に登ったりなどしたい</li>
</ul>
</li>
<li>仕事<ul>
<li>インプット・アウトプットが減ってしまっている</li>
<li>得意なことを中心にやらせてもらっている</li>
<li>チャレンジは少なめ</li>
</ul>
</li>
</ul>
<h2 id="">来年の目標</h2><ul>
<li>体調<ul>
<li>もう少し安定してジムに通うなり運動する</li>
<li>苦手な柔軟をする</li>
</ul>
</li>
<li>仕事<ul>
<li>共働き体制を安定させる</li>
<li>波を小さくする</li>
<li>非機能要件にチャレンジを作る</li>
</ul>
</li>
</ul>
<h2 id="">過去</h2><ul>
<li><a href="/entry/2023/12/31/end">2023 年終わり</a></li>
<li><a href="/entry/2019/12/31/2019-end">2019 年終わり</a></li>
<li><a href="/entry/2018/12/31/2018-end">2018 年終わり</a></li>
<li><a href="/entry/2017/12/31/2017-end">2017 年終わり</a></li>
<li><a href="/entry/2017/01/01/2016">2016 年終わり</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 31 Dec 2024 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2024/12/31/2024-end</link><guid>https://9renpoto.win/entry/2024/12/31/2024-end</guid>
    </item><item>
      <title><![CDATA[今抱えている目標や夢]]></title>
      <description><![CDATA[
年末が近づいてきた。

まだ今年の締めのタイミングではないが[書く習慣](https://9renpoto.win/entry/2024/11/11/leave_a_feeling_sad)に習ってぼんやりと目標や夢について感がていることを書く。

目標というものは仕事やスキルのことばかりだったが]]></description>
      <content:encoded><![CDATA[<p>年末が近づいてきた。</p>
<p>まだ今年の締めのタイミングではないが<a href="https://9renpoto.win/entry/2024/11/11/leave_a_feeling_sad">書く習慣</a>に習ってぼんやりと目標や夢について感がていることを書く。</p>
<p>目標というものは仕事やスキルのことばかりだったが、今年は<a href="https://9renpoto.win/entry/2024/04/18/hello-world">子供が生まれた</a>ことで時間の使い方や課題の観点が変わった。
もう少し大きくなったら子供を山に担いでいこうとか、年末年始両親との時間を作ってあげようとか。</p>
<p>来年の目標は子供を保育園に入れて新しい生活サイクルを作ることだ。
素直な子供を見習って自分も学び直しをしていくのがも目標。</p>
<p>大変ながらも仕事は楽しめている。体の不具合は運動で解消していきたい。
欲張りすぎず健康の上に楽しみを積んでいこう。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Mon, 02 Dec 2024 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2024/12/02/objective</link><guid>https://9renpoto.win/entry/2024/12/02/objective</guid>
    </item><item>
      <title><![CDATA[「書く習慣」という本が面白かった]]></title>
      <description><![CDATA[
# 感想

この本はサブタイトルにもあるように、文章に対する技術に関して触れるわけではなく、
自分の気持ちの整理のために文字を残そうであったり、人間らしい記録を残そうといったことを推奨していてます。

仕事のドキュメントやチャットコミュニケーションばかりに囚われていたなと痛感し
「なんでも良いので]]></description>
      <content:encoded><![CDATA[<h1 id="">感想</h1><p>この本はサブタイトルにもあるように、文章に対する技術に関して触れるわけではなく、
自分の気持ちの整理のために文字を残そうであったり、人間らしい記録を残そうといったことを推奨していてます。</p>
<p>仕事のドキュメントやチャットコミュニケーションばかりに囚われていたなと痛感し
「なんでも良いので」文字に起こしてみようという気持ちになりました。</p>
<p>「もやもやを書き残す」ということを推奨もしていました。
自分しか見ない記録があっても良いという気持ちを長く忘れていたように感じます。</p>
<p>気持ちの整理であったり、「なぜ」という深堀りをうまく活用することが推奨されていました。
「ブログ・アプリ・紙・何でも良くて、整理されていなくても良くてなにかを書いてみたい」という気持ちに少しなれました。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 07 Nov 2024 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2024/11/11/leave_a_feeling_sad</link><guid>https://9renpoto.win/entry/2024/11/11/leave_a_feeling_sad</guid>
    </item><item>
      <title><![CDATA[「GitLabに学ぶ世界最先端のリモート組織のつくりかた」を読んだ]]></title>
      <description><![CDATA[
# 感想

- わかりやすい
- 自身の失敗に関連する説明もあり、共感できた
- 目標設定や成果は難しい

## コラボレーションのためのリモートワークという発想の転換

&gt; 実際、リモートワークでは孤独感を覚える人が多く

現状、幸いなことに孤独感は感じていない。
とはいえそれは私個人の話であっ]]></description>
      <content:encoded><![CDATA[<h1 id="">感想</h1><ul>
<li>わかりやすい</li>
<li>自身の失敗に関連する説明もあり、共感できた</li>
<li>目標設定や成果は難しい</li>
</ul>
<h2 id="">コラボレーションのためのリモートワークという発想の転換</h2><blockquote>
<p>実際、リモートワークでは孤独感を覚える人が多く</p>
</blockquote>
<p>現状、幸いなことに孤独感は感じていない。
とはいえそれは私個人の話であったり、今の会社ではうまく施策が機能している結果である。</p>
<h2 id="12">良いリモートへの12ステップ</h2><ol>
<li>経営陣は原則リモート環境で作業していますか</li>
<li>チームメンバーは、勤務時間を自分で決めることができますか</li>
<li>仕事に関するコミュニケーションは非同期前提ですか</li>
<li>Valueとその活用方法が明確に定義され、文書化されていますか</li>
<li>すべての部署が活用するツールは、統合されていますか</li>
<li>ハンドブックをあらゆる判断の基準として活用していますか</li>
<li>友情を生み出す方法が定義されていますか</li>
<li>コミュニケーションの方法は、SSoTに文書化されていますか</li>
<li>一人1台のPCと各種デバイスが提供されていますか</li>
<li>交流機会を意図的かつ定期的に用意し公開されていますか</li>
<li>Valueの体現を採用・称賛・昇格基準としていますか</li>
<li>個人の作業環境を向上させるために費用を出し、自宅以外で作業する場合にも補助を行っていますか</li>
</ol>
<p>現在の会社では非常にYesな点が多くとても働きやすい。</p>
<h2 id="">コラボレーション</h2><blockquote>
<p>参加者の大半が合意している内容に対して異論を言いづらくなり、コンセンサスを図るためにグループ意思決定能力が低下して非現実的な決定をしてしまうといった「グループ・シンク」も避けるべき重要な視点です。</p>
</blockquote>
<p>これは感じるケースがある。
特にリモートワークでは議論をリードするわけではない参加者にとどまっていることも少なくない。</p>
<p>議論を行いたい場合などは3人、最大で4人ぐらいが限界なように感じる。</p>
<h2 id="results">成果(Results)</h2><blockquote>
<p>コードや価値を提供したユーザー数、救われたチームメンバーといった具体的な対象を計測します。</p>
</blockquote>
<p>これは想像より具体的な計測方法であるが、どのように運用できているのだろう。
運用コストが気になる。</p>
<h2 id="7">心理的安全性を生み出す7つの方法</h2><blockquote>
<p>「自分がしてほしい行為を、他人に対して実施せよ」という行動規範を黄金律と呼んでいます。</p>
</blockquote>
<p>いい名前である。使っていこう。</p>
<h2 id="smart">SMARTな目標設定</h2><ul>
<li>SMART<ul>
<li>Specific(具体的）</li>
<li>Measurable(計測可能）</li>
<li>Achiveable(達成可能）</li>
<li>Related(経営目標との連結）</li>
<li>Time-bound(時間成約がある）</li>
</ul>
</li>
</ul>
<blockquote>
<p>良い問いが建てられれば、問題は半分解決している</p>
</blockquote>
<p>納得感があった。
目標設定は正しく運用できている場合力を発揮しそうであるが、私は今うまく運用できていない。</p>
<p>今一度、目標設定の目的に立ち返り行動指針を見直したい。</p>
<h2 id="">運動によって脳を整える</h2><blockquote>
<p>うつ病の発症率は運動を提供したグループのほうが低い</p>
</blockquote>
<p>運動は正義。</p>
<blockquote>
<p>意図的に週二回・20分以上のゆう酸素運動を生活に取り入れ、人体の機能をメンテナンスしていくことを推奨します。</p>
</blockquote>
<p>これは生きていくために必要な時間だと強く感じている。</p>
<h2 id="360">360度フィードバックで能力開発を促進させる</h2><p>3つの設問。</p>
<ul>
<li>Start<ul>
<li><code>チームの成功を助けるために、対象者が始められることを1つ上げてください</code></li>
</ul>
</li>
<li>Continue<ul>
<li><code>対象者が優れている点で継続すべきことは何だと思いますか</code></li>
</ul>
</li>
<li>Stop<ul>
<li><code>対象者に対して真の意味でポジティブに変革をもたらすことのできる、最大の改善機会は何だと思いますか</code></li>
</ul>
</li>
</ul>
<p>これは良い設問である。 私は360度フィードバックに救われたことが少なくない。
またフィードバックは評価とは関係なく、一人の人としてコメントしてくれている人には非常に感謝している。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 10 Sep 2024 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2024/09/10/remote_organization</link><guid>https://9renpoto.win/entry/2024/09/10/remote_organization</guid>
    </item><item>
      <title><![CDATA[体脂肪↗]]></title>
      <description><![CDATA[Gaining Fat]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>体脂肪が増加傾向にある</li>
<li>うまく時間が作れなくて悩ましい</li>
<li>朝の時間をうまく活用したい</li>
<li>8月は睡眠時間削って運動するチャレンジも考える</li>
</ul>
<h2 id="">夜に時間が作れない</h2><ul>
<li>8-9時には寝かしつけ🍼</li>
<li>仕事が長引いた分はごはんやお風呂の時間を削っていく</li>
</ul>
<h2 id="">深夜の🍼と不安定な二度寝</h2><ul>
<li>👶は寝返りやうつ伏せ寝がブーム</li>
<li>動きたいときは動きたい</li>
<li>3-4時で寝かしつけ再チャレンジして二度寝するか悩む</li>
</ul>
<h2 id="">運動（ジム）</h2><ul>
<li>今は週末の午前中に時間が取れたらジムで運動</li>
<li>週2日2−3時間体を動かす</li>
<li>できれば平日にも体を動かしたい</li>
</ul>
<h2 id="">朝活</h2><ul>
<li>平日朝にランニングしてる人をSNSでよく見かける</li>
<li>4-5時ぐらいはまだ真夏でも活動できそう</li>
<li>👶にあと1時間寝てもらうか、不定期で睡眠時間2-3時間削って運動に回すか8月チャレンジする</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Mon, 12 Aug 2024 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2024/08/12/gaining_fat</link><guid>https://9renpoto.win/entry/2024/08/12/gaining_fat</guid>
    </item><item>
      <title><![CDATA[絵本を読む]]></title>
      <description><![CDATA[
# TL;DR

- 👶が生まれて3か月ぐらい過ぎた
- 最近絵本を👶に読み聞かせたりしている
- 紙の本も良い

## 子供の関心

絵本によってリアクションは割と異なるのが面白い。
👶の今のお気に入りは🍣の出てくる本で、読んでいると何か喋りたくなるようだ。

## 絵本学

絵本といえ]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>👶が生まれて3か月ぐらい過ぎた</li>
<li>最近絵本を👶に読み聞かせたりしている</li>
<li>紙の本も良い</li>
</ul>
<h2 id="">子供の関心</h2><p>絵本によってリアクションは割と異なるのが面白い。
👶の今のお気に入りは🍣の出てくる本で、読んでいると何か喋りたくなるようだ。</p>
<h2 id="">絵本学</h2><p>絵本といえば、という強く思い入れのある作品は個人的には正直なかった。
どちらかというと教育番組で定期的に放送されるような日本昔話のようなものを想像していた。</p>
<p>いろいろ調べ始めると昔から人気なものや現代人気が出てきているような新しいものもたくさんあることがわかってきた。</p>
<p><a href="https://www.youtube.com/watch?si=Bk1c_xDIxslEk9ZV&amp;v=3MbgOZrrKeg&amp;feature=youtu.be"><img src="https://i.ytimg.com/vi/3MbgOZrrKeg/maxresdefault.jpg" alt="【空間の絵本学】専門家が絵本をガチ考察したら衝撃の結果に…#14"></a></p>
<p>絵本の種類や表現などに興味が湧いたのは「専門家が絵本をガチ考察したら衝撃の結果に」を見たことも大きい。</p>
<h2 id="valuebooks">VALUEBOOKS</h2><p>絵本は現在<a href="https://www.valuebooks.jp/">VALUEBOOKS</a>という古本買取販売サイトを経由して買っている。
VALUEBOOKSを知ったきっかけはコテンラジオやゆる言語学ラジオなど様々なチャンネルにスポンサーをしているのがキッカケで知った。</p>
<p>自分の読みたい本は電子書籍で買うことに寄せていたが、貸すであったり読み聞かせであったり、また手元に残したい本もあるように最近は感じている。
送られてくる本も古本とは思えないきれいなものも多く便利に気に入っている。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Fri, 26 Jul 2024 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2024/07/26/picture_book</link><guid>https://9renpoto.win/entry/2024/07/26/picture_book</guid>
    </item><item>
      <title><![CDATA[二度寝]]></title>
      <description><![CDATA[
# 近況

- 元気に早寝朝型生活を続けています
- 楽しくコードを書く仕事を続けられてます

## 子供

- 特に病気をするなどもなく元気に過ごせています
- 夜寝る時間は安定し20-21時には🍼決めて寝られてます
- 1-3時と幅のある深夜🍼の際に素直に寝る場合とテンション高めの場合があ]]></description>
      <content:encoded><![CDATA[<h1 id="">近況</h1><ul>
<li>元気に早寝朝型生活を続けています</li>
<li>楽しくコードを書く仕事を続けられてます</li>
</ul>
<h2 id="">子供</h2><ul>
<li>特に病気をするなどもなく元気に過ごせています</li>
<li>夜寝る時間は安定し20-21時には🍼決めて寝られてます</li>
<li>1-3時と幅のある深夜🍼の際に素直に寝る場合とテンション高めの場合があります</li>
</ul>
<h2 id="">分割睡眠</h2><p>深夜🍼のタイミングで起きて対応を手伝っていると一度起きます。
最近の悩みは二度寝するかどうかの判断です。</p>
<p>寝かしつけは安定してきており、よく寝てくれる日などは6時間ぐらい寝てくれる日も少なくないです。
今日は短めのタイミングで起きましたが目が冷めてしまったので作業をしています。若干眠いです。</p>
<p>二度寝した上で早起きというのも目覚めが良くない場合もあったり、
二度寝ってするかどうかの判断むずかしい。</p>
<p>今日は眠い感じで1日過ごします。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 18 Jul 2024 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2024/07/18/going_back_to_sleep</link><guid>https://9renpoto.win/entry/2024/07/18/going_back_to_sleep</guid>
    </item><item>
      <title><![CDATA[朝型]]></title>
      <description><![CDATA[I&#039;m an early]]></description>
      <content:encoded><![CDATA[<h1 id="">近況</h1><ul>
<li>パパ育休をもらって里帰り先より生活の基盤を移しました</li>
<li>生活スタイルを朝型にシフト中です</li>
</ul>
<h2 id="">大きく変わった生活</h2><p>子供中心の時間設計を模索中。深夜対応は新規システムのオンコール対応の気分（アラートは大きめ）。
夜は割とぐっすり寝てくれていて、ミルクは過剰に与えすぎてなくても良い。</p>
<p>寝かしつけは練習中で22-24時台のミルク前後テンションが高い。
夜に自分の時間を作ることはその関係で悩んでいる。朝のミルクタイミングから起きて洗濯なり自分の時間を作っている。</p>
<p>仕事も早朝よりさせてもらうほうが今のところ便利が良さそうだ。</p>
<h2 id="">体調</h2><p>引っ越しや新生児の受け入れなどで筋トレのリズムが狂っている。
肩腰の違和感が起きやすい。体脂肪も上がったままだ。</p>
<p>育児と仕事と健康のリズムを安定させることの優先度が高い。</p>
<h2 id="">料理</h2><p>最近台所を預かっている。まだスーパーの事情を把握できていない。
世間はキャベツ🥬が高く茄子🍆 の美味しい季節になったようだ。</p>
<p>朝型になった関係で朝ご飯の需要が高まっている。効率の良い便利な朝ご飯を知りたい。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Wed, 29 May 2024 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2024/05/29/im-an-early</link><guid>https://9renpoto.win/entry/2024/05/29/im-an-early</guid>
    </item><item>
      <title><![CDATA[子供が生まれました]]></title>
      <description><![CDATA[My child is born]]></description>
      <content:encoded><![CDATA[<h1 id="">私信</h1><ul>
<li>子供が生まれました</li>
<li>4/23に退院できそうです</li>
</ul>
<h2 id="">生活</h2><p><a href="../../../2023/09/09/migration-plan">福岡県へ移住</a>し、里帰り中だった出産に関わることができました。
立会はできませんでしたがとても良い経験ができました。
何事も初めての体験で驚かされるばかりです。</p>
<p>職場のサポートもあり、ありがたいことに仕事や移住後の不安・不満はなく新しいチャレンジに向き合うことができそうです。感謝します。</p>
<p>また落ちついたころに近況を記録します。頑張るぞ。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 18 Apr 2024 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2024/04/18/hello-world</link><guid>https://9renpoto.win/entry/2024/04/18/hello-world</guid>
    </item><item>
      <title><![CDATA[紙の本を読む]]></title>
      <description><![CDATA[
# TL;DR

紙の本もいいぞ。

## インターネットもいいけれど

何かを学び始めるときは本が良いと思っている。

インターネットを利用して調べながら学ぶこともできる。ChatGPTなどの登場により対話によって物事を捉えやすくなるケースも増えた。
Copilot
を始め、プログラムを格上での]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><p>紙の本もいいぞ。</p>
<h2 id="">インターネットもいいけれど</h2><p>何かを学び始めるときは本が良いと思っている。</p>
<p>インターネットを利用して調べながら学ぶこともできる。ChatGPTなどの登場により対話によって物事を捉えやすくなるケースも増えた。
Copilot
を始め、プログラムを格上での具体的な例も手に入れられる手段の内容も格段に向上した。</p>
<p>ただ、自分の身になるためには本の粒度がちょうどよいと感じる。</p>
<p>下線をカジュアルに引いてメモを残せることなどから好んでKindleなどの本を購入することが多い。
今回はきっかけがあり紙の本を借りた。</p>
<h2 id="">紙の本の良さ</h2><p>電子書籍と比べて体感早く読み進められる気がしました。
また手にもって読み進めることで読み切れるまでのワクワクであったり、面白い本は物足りなさもより感じる事ができた。</p>
<p>ちょっと読書マイブームが起きそうなので積読していた本を消化していこう。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 25 Feb 2024 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2024/02/25/reading-papar-book</link><guid>https://9renpoto.win/entry/2024/02/25/reading-papar-book</guid>
    </item><item>
      <title><![CDATA[ROLLCAKE株式会社にJoinしました]]></title>
      <description><![CDATA[
# TL;DR

私信です。

- From: CADDi Inc
- To: [ROLLCAKE Inc](https://rollcake.co/)

## ROLLCAKEのJoinを決めた理由

この会社の魅力は「共に成長し、楽しみを作り出す挑戦を楽しめること」です。

## 入社（前|後]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><p>私信です。</p>
<ul>
<li>From: CADDi Inc</li>
<li>To: <a href="https://rollcake.co/">ROLLCAKE Inc</a></li>
</ul>
<h2 id="rollcakejoin">ROLLCAKEのJoinを決めた理由</h2><p>この会社の魅力は「共に成長し、楽しみを作り出す挑戦を楽しめること」です。</p>
<h2 id="">入社（前|後）のギャップ</h2><p>ROLLCAKEでは「体験設計書」を通して「ゴール」の定義にこだわっています。これは課題の定義とは異なり我々の考える<strong>楽しみ</strong>をぶらさないための指標として保守されています。
最初はこの体験設計書の使われ方がイメージしきれてなかったなと今だと感じます。</p>
<p>我々の考える楽しみとは多種多様でありますし、試したい施策も多岐に渡ります。
適宜優先度の判断等も入りますが、ゴールに向かっていく中で必要な施策の実行や計画は現場にも多くの責任を任せてもらえています。</p>
<p>言語化が難しいのですが現場の裁量の大きさが非常に心地よいです。様々自由にさせてもらっています。</p>
<h2 id="">スモールチームに戻って</h2><p>スモールチームは特有の強さがあります。困ったときには誰にでも相談できる身軽さや、それに答えてくれる心強いメンバーもそれをサポートしてくれる会社もあります。</p>
<p>毎日楽しく働いけておりますし、自分が作ったアウトプットで自分も楽しめています。
「楽しみが待っている毎日」を作っていくぞ。</p>
<h2 id="refs">Refs</h2><ul>
<li><a href="https://9renpoto.win/entry/2023/09/09/migration-plan">地方移住を検討</a></li>
<li><a href="https://9renpoto.win/entry/2020/12/05/join">CADDi株式会社にJoinしました</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 11 Feb 2024 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2024/02/11/join</link><guid>https://9renpoto.win/entry/2024/02/11/join</guid>
    </item><item>
      <title><![CDATA[eza のあるカラフルな生活]]></title>
      <description><![CDATA[
# TL;DR

- I started using `eza` and graduated to `tree`.
- `eza-community/eza` is a fork of `ogham/exa`
- I still use `ls` too!

I love ls. I can&#039;t ]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>I started using <code>eza</code> and graduated to <code>tree</code>.</li>
<li><code>eza-community/eza</code> is a fork of <code>ogham/exa</code></li>
<li>I still use <code>ls</code> too!</li>
</ul>
<p>I love ls. I can&#39;t remember how many times I&#39;ve repeated the same thing.</p>
<p>We can use <code>ls</code> anywhere.</p>
<p>The nice thing about <code>eza</code> is that it is colorful. It requires some
installation, but I will try to be friends with it for a while.</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 01 Feb 2024 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2024/02/01/eza</link><guid>https://9renpoto.win/entry/2024/02/01/eza</guid>
    </item><item>
      <title><![CDATA[Github Project 十分に機能そろっているのでは]]></title>
      <description><![CDATA[Project development done exclusively through Github 🐙]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>Github Projectの進化がすごい（実はずっとすごかった）</li>
<li>カスタマイズ性が高く、エンジニアフレンドリー</li>
<li>フィルタとの組み合わせが強力</li>
</ul>
<h2 id="github">Githubを利用した開発タスク管理</h2><p>近年、GithubとJIRAを組み合わせたスクラム開発を数年回していた。
理由はGithubでは十分なタスク管理ができないからということで採用されていた。
スクラムやチーム開発の中でタスク管理ツールに求めていたものには下記のような要件があったように考える。</p>
<ol>
<li>カンバン表示ができ、進捗状態を可視化できる</li>
<li>カンバン、およびバックログなどに優先度が付けられる（優先度順にソートできる）</li>
<li>複数のチーム、職能が存在していた際にViewを直感的に分けられる（swimlaneなど）</li>
<li>エピック・ロードマップが管理でき、簡易的なガントチャートが管理できる</li>
<li>ストーリーポイントなど、ベロシティやタスクの大きさを一定入力できる</li>
<li>複数のリポジトリにまたがるタスクを同列に管理できること</li>
</ol>
<p>チームタスク管理でやりたいこと多すぎるが、これらを十分にカバーできるような機能が揃って来ている。</p>
<h2 id="github-projects">Github Projects押しの機能</h2><p>上記プロジェクト管理に必要な設定がGithub
Projectだとどのようにできるのかは<a href="https://user-first.ikyu.co.jp/entry/2023/11/09/175121">一休Developers Blog</a>の記事がとてもわかりやすい。
大枠はそちらの記事に任せるとして、この記事では私の押しのGithub
Projectの機能を記述する。</p>
<h3 id="">フィルターが強力</h3><p>Github
はissueやpull-requestの管理、検索などに提供されているフィルターの機能が強力だ。この機能がいい感じ
に<a href="https://docs.github.com/en/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/filtering-projects">Github Projectでも拡張</a>され、活用し易いようになっている。</p>
<p>お気に入りのフィルターは下記がある。</p>
<ul>
<li><a href="https://docs.github.com/en/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/filtering-projects#filtering-for-when-an-item-was-last-updated">last-updated:</a>
最近更新されたっぽいのを取ってくる</li>
<li><a href="https://docs.github.com/en/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/filtering-projects#filtering-number-date-and-iteration-fields">field:</a>
プロジェクト固有のカスタムフィールドを比較演算使って絞り込み</li>
</ul>
<h3 id="view">Viewを複数持ったプロジェクトを建てられる</h3><blockquote>
<p><a href="https://docs.github.com/en/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/changing-the-layout-of-a-view">Changing the layout of a view</a></p>
</blockquote>
<p>最初これが1つのプロジェクトという表現の中でなんで分けられる様になってるのだろうとか、このViewはどういうときに使いたくなるのだろうと分からなかった。
結果的にはフィルターと組み合わせることで実際のプロジェクトに合わせ使いやすくカスタマイズ可能な要素だと理解できた。</p>
<p>また、Viewはソートの設定やグローバル設定とローカル設定の管理を別々にできるなどこれまた痒いところに手が届いている。
全体のViewに影響を与えず、手元では <code>assignee:9renpoto</code>
などフィルタした状態で膨大なタスクの海を直感的に操作できる。</p>
<h3 id="">プロジェクト（カンバン）を操作しなくてもステータスを更新できる手段が豊富</h3><blockquote>
<p><a href="https://docs.github.com/en/issues/planning-and-tracking-with-projects/understanding-fields">Understanding fields</a></p>
</blockquote>
<p>Githubにはスタンダードな管理方法として <code>label</code> と <code>milestone</code>
があり、長くこれらの機能の組み合わせで開発プロジェクトの運用ができるようルールを設けたりなどしていた。
これらの標準項目はいずれもリポジトリ固有な設定であり、設定を同期したりそれらの仕組みを組んだりなどが必要であった。</p>
<p>私はずっと <a href="https://github.com/waffleio">waffle.io</a> というGithub
連携可能なプロジェクト管理ツールが大好きであった。
その中で一番好きだった機能が「ステータスとラベルの連動機能」だ。いい感じにラベルを操作していたら、カンバンもいい感じになる。カンバンを操作していてもGithub
にいい感じのラベルがついている。</p>
<p>上記の機能がカスタムフィールドではほぼ表現可能であった。
またカスタムフィールドは<strong>プロジェクト全体で共通</strong>
なことが理解するととても使い勝手通い。</p>
<p>最後にカスタムフィールドは1つの値しか指定できない成約も理解するととても使い勝手が良い。複数指定したい場合などはラベルを使っている。</p>
<h2 id="">まとめ</h2><ul>
<li>Github Projectいいぞ</li>
<li>Githubだけで完結する世界線は快適たぞ</li>
<li>PR、Issue全部プロジェクトに入れてフィルタでカスタマイズしよう</li>
<li>Githubありがとう🐙</li>
</ul>
<h2 id="ref">Ref</h2><ul>
<li><a href="https://user-first.ikyu.co.jp/entry/2023/11/09/175121">GitHub Projects を利用したタスク管理 | 一休 Developers Blog</a></li>
<li><a href="https://kakehashi-dev.hatenablog.com/entry/2023/02/28/090000">GitHub Projects を導入した話 | KAKEHASHI Tech Blog</a></li>
<li><a href="https://9renpoto.win/entry/2019/05/26/goodbye-waffle-io">Thank you, waffle.io | 9renpoto.win</a></li>
<li><a href="https://9renpoto.win/entry/2018/01/21/github-projects">github projectsが少し良くなっていた | 9renpoto.win</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 14 Jan 2024 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2024/01/14/gh-projects</link><guid>https://9renpoto.win/entry/2024/01/14/gh-projects</guid>
    </item><item>
      <title><![CDATA[新年の休みを利用してasdfを卒業してmiseを触る]]></title>
      <description><![CDATA[とりあえずRust化の流れを眺める☕]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li><a href="https://github.com/9renpoto/dotfiles/pull/366">mise使い始めました</a></li>
</ul>
<h2 id="">環境</h2><p>ローカルに実行環境を構築することは未だに便利なので <code>asdf</code>
を好んで使っていました。
あまり不満はなかったのですが最近話題になっているmiseを動かしてみることしました。</p>
<p><code>.tool-versions</code> や <code>.default-</code>
packageのサポートなどasdfの資産もぼちぼち流用できるようになっており
ほぼインストールするだけで使えてしまっています。一部問題もありそうであるがしばらく使ってみます。</p>
<h2 id="refs">Refs</h2><ul>
<li><a href="https://zenn.dev/teppeis/articles/2024-01-introduce-mise">mise (旧 rtx) で脱 node-build (asdf)</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 07 Jan 2024 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2024/01/07/mise</link><guid>https://9renpoto.win/entry/2024/01/07/mise</guid>
    </item><item>
      <title><![CDATA[新年の休みを利用してAstroNvimを触る]]></title>
      <description><![CDATA[Satisfy your curiosity with a vacation 😎]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li><a href="https://github.com/9renpoto/astro-nvim-user">AstroNvim に入門しました</a></li>
<li>Lsp周りの管理を簡易化できてVscodeと変わらない体験ができてる</li>
</ul>
<h2 id="neovim">ライトNeoVimユーザーにちょうどよい</h2><ul>
<li>独自で <code>config/nvim</code>
を育ててましたが、独自の設定は限定的であったので設定を移管中</li>
<li><code>Starship</code>
など最近重くなく使える便利ツールが増えてそうなので楽に乗っかれるか挑戦</li>
</ul>
<p>今のところは割と満足しています。ユーザー拡張領域が <code>github template</code>
で共有されているなど今らしい入門しやすさもあります。
まだまだ使いこなせていない隠された設定も多そうですが、もう少し付き合っていこう。</p>
<h2 id="refs">Refs</h2><ul>
<li><a href="https://techblog.kayac.com/2023/12/14/000000">拡張Vim「AstroNvim」で新世代のVim体験してみた話</a></li>
<li><a href="https://starship.rs/">Starship</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Wed, 03 Jan 2024 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2024/01/03/new-year-holidays</link><guid>https://9renpoto.win/entry/2024/01/03/new-year-holidays</guid>
    </item><item>
      <title><![CDATA[End of 2023]]></title>
      <description><![CDATA[Next year, a second life will begin]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>転職しました</li>
<li>4月父親になるかも</li>
</ul>
<h2 id="">振り返り</h2><ul>
<li>今年は大きな変化のある年になりました<ul>
<li>11月に転職しました</li>
</ul>
</li>
<li>マネジメントからプレイヤーへ<ul>
<li>そろそろいい年なこともあり転職活動悩みました</li>
<li>人と向き合うマネジメントも大切な気持ちですが、プレイヤーに戻ることへしました</li>
</ul>
</li>
<li>筋トレにハマりました<ul>
<li>肩こり・腰痛・腱鞘炎解決しました</li>
<li>1年通いましたが、健康続けたいので筋トレは継続</li>
</ul>
</li>
</ul>
<p>相談に乗ってくださった様々な友人の方々、誠にありがとうございます。
仕事もとても楽しく、これか大きく生活が変わりそですがボチボチ楽しめそうです。</p>
<h2 id="">来年</h2><ul>
<li><a href="https://9renpoto.win/entry/2023/09/09/migration-plan">地方移住に挑戦</a><ul>
<li>移住しても月1程度は東京近辺に行けそうです</li>
<li>転職に興味のある方、ぜひオンライン・オフラインどちらも構いませんので雑談しましょう</li>
</ul>
</li>
<li>ウェブ屋からアプリ屋に<ul>
<li>機会を得られそうなのでスキルを増やして好奇心を満たしたい</li>
<li>next.js app_routerが落ち着いたころにweb frontendも触ろう</li>
</ul>
</li>
</ul>
<p>未知のことが目白押しでワクワクしています。 やっていくぞ 💪。</p>
<h2 id="">過去</h2><ul>
<li><a href="https://9renpoto.win/entry/2019/12/31/2019-end">2019 年終わり</a></li>
<li><a href="https://9renpoto.win/entry/2018/12/31/2018-end">2018 年終わり</a></li>
<li><a href="https://9renpoto.win/entry/2017/12/31/2017-end">2017 年終わり</a></li>
<li><a href="https://9renpoto.win/entry/2017/01/01/2016">2016 年終わり</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 31 Dec 2023 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2023/12/31/end</link><guid>https://9renpoto.win/entry/2023/12/31/end</guid>
    </item><item>
      <title><![CDATA[最近毎日Duolingoを続けている]]></title>
      <description><![CDATA[What kind of measures can be continued every day?]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>毎日続けられることをどうサポートできるか考えている</li>
<li>毎日必ずできている必要はなくて、でも明日も実行したくなる施策を考えている</li>
</ul>
<h2 id="">毎日続けることの楽しさに気づきたい</h2><blockquote>
<p><a href="/entry/2020/02/20/commit">Happy Contributions 10,000</a></p>
</blockquote>
<ul>
<li>Githubへアウトプットを残すことは自然と続けられるようになった</li>
<li>毎日少しづつでもやってることを楽しいと思ってやっている</li>
<li>毎日続けてられるようになったことと、そうでないことの違いを考えている</li>
</ul>
<h3 id="">毎日続けられないことを考える</h3><blockquote>
<p>Rebuild: 217: Socially Awkward Hip-hop (higepon) <a href="https://rebuild.fm/217/">https://rebuild.fm/217/</a></p>
</blockquote>
<blockquote>
<p>468 「コンフォートゾーンを打ち破る」という生き方
<a href="https://donguri.fm/n/nd999ff46a340">https://donguri.fm/n/nd999ff46a340</a></p>
</blockquote>
<ul>
<li>人には得意不得意があってコンフォートゾーンを持っている</li>
<li>新しい体験はそれが良いか悪いかに関わらず受け入れることにストレスが大小かかる</li>
<li>「得意ではない」を「苦手ではない」にするのには時間と気持ちの変化がある</li>
</ul>
<h3 id="">ちょっとした成功を積み重ねる</h3><ul>
<li>Duolingoは良い目標設定があって、続けているという実感がある</li>
<li>実感とは言語習得がレベルアップしたという定量的なものではない</li>
<li>明日もチャレンジしたいという施策と、緩やかな成功体験がある</li>
<li><strong>失敗しても良い</strong> という気持ちでいられる</li>
</ul>
<h3 id="">やりたいこと</h3><ul>
<li>毎日ちょっとだけ違うことをして成功・失敗をする</li>
<li>12月中に来年の目標をたてて、何か自分のコンフォートゾーンを出る</li>
</ul>
<p><img src="/Duolingo_Sharing.jpg" alt="duolingo"></p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 05 Dec 2023 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2023/12/05/duolingo</link><guid>https://9renpoto.win/entry/2023/12/05/duolingo</guid>
    </item><item>
      <title><![CDATA[dlvrit をやめてGithub Actions でRSSからSNSに投稿する]]></title>
      <description><![CDATA[share new articles via gh-actions]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><blockquote>
<p>Before: <a href="/entry/2023/05/21/twitter-post">Post blog rss feed via dlvrit</a></p>
</blockquote>
<ul>
<li>twitterからx.comへ変化の時代</li>
<li><a href="https://bsky.app/profile/9renpoto.bsky.social">bsky.app</a> やThreadsに人が分散した</li>
<li>IFTTTやZapierなどのX（旧Twitter）連携が減っている</li>
<li><a href="https://github.com/lwojcik/github-action-feed-to-social-media">https://github.com/lwojcik/github-action-feed-to-social-media</a> を使ってみる</li>
</ul>
<p>dlvritは数すくない無料で連携可能なサービス。 bluesky, threads,
mastodonなどにユーザーが分散し次の時代を見定めようとされている。</p>
<p>API連携なども変わってくるだろう。少し変化を見守りたい。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 12 Nov 2023 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2023/11/12/dlvrit-to-gh-actions</link><guid>https://9renpoto.win/entry/2023/11/12/dlvrit-to-gh-actions</guid>
    </item><item>
      <title><![CDATA[アウトプットに悩んでます]]></title>
      <description><![CDATA[input was more difficult than output]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>オープンな情報には力がある</li>
<li>情報は受け取った側が評価するもの（半分はわかる）</li>
<li>インプットしやすいアウトプットを出したい</li>
</ul>
<h2 id="">毎日アウトプット</h2><p>誰かと会話をしない日はない。一番小さなアウトプットだ。
人間として一人で生きていくことよりも、濃淡はあれど人と接することはあるし必要だ。</p>
<p>私は得意なアウトプットの形式は多くない。ブログという形式も得意な方ではない。時間もかかる。</p>
<h3 id="">チャットツール</h3><p>仕事ではチャットツールを使うことが多い。今思えばツールも多く移り変わってきた。
(<a href="https://www.im-net.org/messenger_history.html">参考</a>)</p>
<ol>
<li>Skype</li>
<li>IRC</li>
<li>HipChat</li>
<li>Slack</li>
<li>Discord</li>
<li>Gather</li>
</ol>
<p>書き起こしてみるとslackとの付き合いは本当に長い。まさにIRCの上位互換として多くの会社に受け入れられている。
プライベートでも利用できるフリーミアムなツールも増えて豊かになったものだ。
アウトプットすることが気軽になり、インプットとは能動的なものではなく受動的なものが増えた。
悩んでいるのは**「情報をどこまでオープンであるべきか」**だ。</p>
<h2 id="">インプットを制限する技術</h2><p>今の時代、情報は多すぎる。検索をはじめ情報のフィルタリングとはこれからの時代により必要な技術だ。
繰り返しになるが、受動的は本当に増えた。</p>
<ol>
<li>1つは広告だ。世の中には知ってほしい人が多く様々な人目に触れる機会を探している。</li>
<li>2つ目にSNSだ。SNSの多くは不特性多数に向けられたもので、時には人に不快な思いをさせる。誰かの幸せは別の誰かの幸せとは限らない。</li>
</ol>
<p>広告とは誠によく考えられている事が多い。伝えたいことを絞りターゲットを絞ることなども増えてきた。
SNSとはオープンなもの多い。また受動的に情報を受け取りやすい。その情報のコンテキストも特にわからないままにだ。
過去の経験より、<strong>私は言葉の強さを知りSNSサービス上に直接文章を残しコンテキストを残すのをやめた</strong>。私には私のアウトプットがどのように解釈されるのかわからなくなったからだ。</p>
<h2 id="">情報は受け取った側が評価するもの</h2><p>「情報は受け取った側が評価するもの」</p>
<p>最近フィードバック面接の際に言われたことだ。それは真理だ。
「オープンな情報とはいつ何時だれに解釈されても問題のないものであるべきだ」だとその時は理解した。</p>
<p>半分はわかる。もう半分は「オープンな場所では何もできませんってことですか」だ。
<strong>解釈を恐れてはアウトプットは生まれない。</strong></p>
<h2 id="">現在</h2><p>環境が変わりインプットも圧倒的に増えている。
オープンとは強い力を持つと改めて実感する。日々の情報を解釈することが許され、それらが性善説の上に成立している。</p>
<p>新しい情報の海にワクワクしている。
まずは得意なアウトプットの形式から頑張る。<strong>インプットしやすいアウトプット</strong>
を出せるようレベルアップするぞ。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 11 Nov 2023 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2023/11/11/technology-to-limit-input</link><guid>https://9renpoto.win/entry/2023/11/11/technology-to-limit-input</guid>
    </item><item>
      <title><![CDATA[地方移住を検討]]></title>
      <description><![CDATA[関東圏内を離れる選択肢の検討]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>福岡県への移住を検討しています</li>
<li>働き方の変化を受け入れられる準備を進めています</li>
</ul>
<h2 id="">関東圏の良かったこと</h2><ul>
<li>たくさんの友人がいること</li>
<li>仕事・娯楽・交通の選択肢が豊富なこと</li>
</ul>
<h2 id="">関東圏でなくても良かったこと</h2><h3 id="">リモートワーク</h3><p>リモートワークが上位互換だ、とは思っていない。
選択肢が増えたことで多くのメリットがあったことは確かだ。必要な環境を整え、オフィスよりも効率の良い作業環境を用いて仕事ができていたことは間違いないメリットである。</p>
<p>次に時間の節約だ。通勤時間はもちろん、<strong>家族とご飯を食べる機会が増えた</strong>。
時代に合わせてツールも充実した。必要なコミュニケーションは事前にも突発的に設定でき、同期的に仕事する
ツールは成熟されつつある。</p>
<p>もちろん、仕事内容に依存があることは間違いないが、我々の得意とするソフトウェア開発においてはリモートワークは相性が良かった。</p>
<h3 id="">オフィスで働くメリット</h3><p>オフラインコミュニケーションは言語化することが難しい問題解決の可能性がある。
1つは<strong>信頼関係の構築</strong>だ。WEBカメラを用いて表情を確認することはできてもオフラインでしかできない楽しさというのはある。</p>
<h3 id="">オフィスに出社してオンラインコミュニケーション</h3><p>リモートワークを一部でも許容している環境において、オフィスでのコミュニケーション体験は決して良いものとは言えない。（もちろんオフィスがどのような環境を提供しているかによる）</p>
<p>時代や道具の進化によって滑らかにオンラインとオフラインを融合した働き方もできるようになる世界の誕生には期待したい。ビジネスチャンスも同様にある。</p>
<h2 id="">まとめ</h2><p>地方移住を検討項目の1つに入れている。
オフィス出社を希望する場合は関東より選択肢は少ない。どのような働き方ができるのか社会と相談していきたい。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 09 Sep 2023 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2023/09/09/migration-plan</link><guid>https://9renpoto.win/entry/2023/09/09/migration-plan</guid>
    </item><item>
      <title><![CDATA[Try `node:test` with TypeScript]]></title>
      <description><![CDATA[node:test を動かしたかった]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR 🚶‍♂️🚶‍♂️🚶‍♂️</h1><ul>
<li>Output: <a href="https://github.com/9renpoto/bot/pull/1037">https://github.com/9renpoto/bot/pull/1037</a></li>
<li>Must be used with a loader to use TypeScript<ul>
<li><a href="https://github.com/nodejs/help/issues/3902#issuecomment-1217235905">https://github.com/nodejs/help/issues/3902#issuecomment-1217235905</a></li>
</ul>
</li>
<li>The <code>assert</code> syntax can be used<ul>
<li><a href="https://nodejs.org/api/assert.html">https://nodejs.org/api/assert.html</a></li>
<li><a href="https://nodejs.org/api/test.html">https://nodejs.org/api/test.html</a></li>
</ul>
</li>
<li>I still don&#39;t use it at work</li>
</ul>
<h2 id="good">Good</h2><ul>
<li>Type information is maintained 👌</li>
<li><code>describe</code>, <code>it</code> can be used 👌</li>
</ul>
<h2 id="not-sure">Not Sure</h2><ul>
<li>Asynchronous process not terminated 😶‍🌫️</li>
<li>API is different on <code>node18</code> <code>node20</code>
<a href="https://github.com/kachick/times_kachick/issues/192">https://github.com/kachick/times_kachick/issues/192</a></li>
</ul>
<h2 id="visual">Visual</h2><ul>
<li>Very simple<ul>
<li><a href="https://nodejs.org/api/assert.html#assertvalue-message">https://nodejs.org/api/assert.html#assertvalue-message</a></li>
</ul>
</li>
<li>Not particularly excellent</li>
</ul>
<h2 id="">感想</h2><ul>
<li>TypeScriptを使って小さなものを作りたい時に、nodejsを使うほど小さく便利なものではなかった</li>
<li>もうしばらく様子を伺う</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 23 Jul 2023 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2023/07/23/node-test-runner</link><guid>https://9renpoto.win/entry/2023/07/23/node-test-runner</guid>
    </item><item>
      <title><![CDATA[Thank you Google Domain]]></title>
      <description><![CDATA[.dev ドメインはGoogle様しか保守していないようで変更]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>IN: 9renpoto.win OUT: 9renpoto.dev</li>
<li>IN: cloudflare Registrar OUT: Google Domain</li>
</ul>
<h2 id="thank-you-google-domain">Thank you google domain</h2><p>Google domain seems to be ending its role. There are only a few name servers
that can handle .dev domains.</p>
<p>We will change the domain to operate the site.</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 06 Jul 2023 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2023/07/08/new-domain</link><guid>https://9renpoto.win/entry/2023/07/08/new-domain</guid>
    </item><item>
      <title><![CDATA[ストック情報の優位性を私生活で評価する]]></title>
      <description><![CDATA[
# TL;DR

- 今まで多くフロー情報の粒度に囚われていた
- ストック情報の価値を再評価したい

## フロー情報

下記のようなツールに関心がありました。

- TODO管理アプリ
- 予定管理アプリ

これらはに関心があったのは、「生きていく上で情報は消化していくもので、己の中にあるもの]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>今まで多くフロー情報の粒度に囚われていた</li>
<li>ストック情報の価値を再評価したい</li>
</ul>
<h2 id="">フロー情報</h2><p>下記のようなツールに関心がありました。</p>
<ul>
<li>TODO管理アプリ</li>
<li>予定管理アプリ</li>
</ul>
<p>これらはに関心があったのは、「生きていく上で情報は消化していくもので、己の中にあるものだけがストックされている状態である」と考えていたからです。</p>
<p>受験勉強などもそうでした。基本的には己の「記憶が」ストックされる場所であり、そこに記録されるためのプロセスやレイヤーに関して己の中で最適化が日々行われていました。</p>
<h2 id="">ストック情報</h2><p>私は現在ソフトウェアエンジニアとしてお仕事をしています。私にとってストックされている情報とは「動いているもの」、つまりソフトウェアやテストなどであり、それらの保守が最優先であると考えています。</p>
<p>逆に、それ以外のストック情報とは何であるかを冷静に考えました。私の手元に残っている資産とはかなり属人性が高く、再現性のものが多いことに気づきました。</p>
<ul>
<li>好きなお酒を伝えられない</li>
<li>好きな食べ物を伝えられない</li>
<li>好きな場所を伝えられない</li>
<li>好きなアクティビティを伝えられない</li>
<li>得意なことを伝えられない</li>
<li>苦手なことを伝えられない</li>
</ul>
<p>これらのことを見直し、私はストック情報を保守する生き方はどのようなことができるだろうと考え始めました。</p>
<h2 id="">自己成長</h2><p>最近、筋トレへ目覚めトレーニングジムに通っています。
今まで感じていた体の不調が、徐々に筋肉痛に置き換わっていき、結果改善に収束していきました。
一方で、これらは少し油断するとすぐに数字や体に現れてきます。</p>
<p>何を考えているかというと、必ずしも足し算で結果が残るわけではなく努力に強く依存することを体験するもう1つの要素となりました。</p>
<h2 id="">最後に</h2><p>この今思いつきで書いているメモが、私にとってのストック情報となる日は来るだろうか。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 28 May 2023 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2023/05/28/stock</link><guid>https://9renpoto.win/entry/2023/05/28/stock</guid>
    </item><item>
      <title><![CDATA[Post blog rss feed via dlvrit]]></title>
      <description><![CDATA[
# TL;DR

- Im now using &lt;https://app.dlvrit.com&gt;
- I feeling the effects of twttier&#039;s API billing everywhere :(

## Background

- I originally prefer]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>Im now using <a href="https://app.dlvrit.com">https://app.dlvrit.com</a></li>
<li>I feeling the effects of twttier&#39;s API billing everywhere :(</li>
</ul>
<h2 id="background">Background</h2><ul>
<li>I originally preferred the service <code>IFTTT</code></li>
<li>I have not been highly motivated to update my SNS in recent years</li>
</ul>
<h2 id="">お気持ち</h2><ul>
<li>最近自分の情報をまとめることの能力の低さや、物事を伝える能力の低さを感じています</li>
<li>何事もトライしないことには体感することができないので、アウトプットを残す練習や同期を探しています</li>
<li>まずはこのブログを更新できるようにして、アウトプットを出せる準備をする</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 23 May 2023 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2023/05/21/twitter-post</link><guid>https://9renpoto.win/entry/2023/05/21/twitter-post</guid>
    </item><item>
      <title><![CDATA[deno fresh を用いてブログを作り直しました]]></title>
      <description><![CDATA[gatsyjs からdeno fresh に置き直しました]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li><a href="https://www.gatsbyjs.com/">https://www.gatsbyjs.com/</a> の利用をやめました</li>
<li><a href="https://deno.land/x/fresh@1.1.5/init.ts">https://deno.land/x/fresh@1.1.5/init.ts</a> を用いてブログ基盤を再構築しました</li>
</ul>
<h2 id="why">Why</h2><ul>
<li>gatsbyjsのメジャーバージョンアップに速やかに移行できなかった<ul>
<li>プラグインの移行が面倒であった</li>
<li>ノーコードに近い形で構築ができたが依存の管理が大変であった</li>
<li>静的なサイト構築を仕事で活用するケースが限定されてしまった</li>
</ul>
</li>
<li>deno fresh<ul>
<li>preact nativeな利用を推奨していること</li>
<li>denoを使った開発環境を構築・保守したかったこと</li>
</ul>
</li>
</ul>
<h2 id="">感想</h2><ul>
<li>開発基盤は発展途上</li>
<li>依存は減らすことができた</li>
<li>プロダクションに利用は難しいが趣味には十分環境が整いつつある</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 18 May 2023 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2023/05/18/recreate_blog</link><guid>https://9renpoto.win/entry/2023/05/18/recreate_blog</guid>
    </item><item>
      <title><![CDATA[GA4でユーザープロパティを使う]]></title>
      <description><![CDATA[
# TL;DR

- GTMより配信したGA4でユーザープロパティを使うには **初期 `pageview`
  送信前までにデータを入れる**

## GTMから使う場合

1. GTM初期化前にユーザープロパティ等で使いたい変数をpageview送信前に入れる
   - GA4より `page]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>GTMより配信したGA4でユーザープロパティを使うには <strong>初期 <code>pageview</code>
送信前までにデータを入れる</strong></li>
</ul>
<h2 id="gtm">GTMから使う場合</h2><ol>
<li>GTM初期化前にユーザープロパティ等で使いたい変数をpageview送信前に入れる<ul>
<li>GA4より <code>pageview</code>
はイベントとして、かつ特に設定なくデフォルト設定では自動的に送信される</li>
<li>自動で送信というのがいつなのかわからないので最速であるGTM初期化前に必要なデータを集める必要がある</li>
</ul>
</li>
<li><code>dataLayer</code> 変数をGTMに設定する<ul>
<li>管理画面上からポチポチする必要がある</li>
<li>これをやらないとGA4から対象として認識さない</li>
</ul>
</li>
<li>GTMデバッグモードとGA4デバッグビューを使ってリアルタイムに結合確認をする</li>
</ol>
<h2 id="datalayer">dataLayer変数って更新されない？</h2><ul>
<li>dataLayer変数を経由して更新可能な変数がセットできる？ようにドキュメントに書いている用に見えるがユーザープロパティでは1回しか更新されない？</li>
<li>カスタムディメンションにデータレイヤー経由で設定できない？うまく動かせてないので要調査</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 21 Feb 2021 07:30:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2021/02/21/google-analytics-4-user-properties</link><guid>https://9renpoto.win/entry/2021/02/21/google-analytics-4-user-properties</guid>
    </item><item>
      <title><![CDATA[GoogleAnalytics 4でカスタムディメンションが設定できておらずハマる]]></title>
      <description><![CDATA[
# TL;DR

- 現在進行形
- 解決したいがとりあえず軌跡を記録する
- 目指したいゴールはGTMから配信されているGA4にカスタムディメンションを適応する

## Google Analytics 4

- firebase analytics統合版みたいなものが使える様になって気付いたら]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>現在進行形</li>
<li>解決したいがとりあえず軌跡を記録する</li>
<li>目指したいゴールはGTMから配信されているGA4にカスタムディメンションを適応する</li>
</ul>
<h2 id="google-analytics-4">Google Analytics 4</h2><ul>
<li>firebase analytics統合版みたいなものが使える様になって気付いたらv4
という更新としてリリースしたようだ</li>
<li>取り敢えずGoogle Analytics 4から設定する<ul>
<li><a href="https://support.google.com/analytics/answer/14240153?hl=ja&amp;visit_id=638430859981796861-106775261&amp;rd=1">https://support.google.com/analytics/answer/14240153?hl=ja&amp;visit_id=638430859981796861-106775261&amp;rd=1</a></li>
</ul>
</li>
<li>カスタムディメンションの個数制限はそのまま？</li>
<li>インデックス表記ではなくこちらで名前を割り当てていける？</li>
<li>タグマネージャーからは <strong>ユーザープロパティ</strong> と <strong>設定フィールド</strong> という2
種類の概念が登場する<ul>
<li><a href="https://support.google.com/tagmanager/answer/9442095?hl=ja">https://support.google.com/tagmanager/answer/9442095?hl=ja</a></li>
<li><code>config</code> で設定するか</li>
<li><code>dataLayer</code> で設定するか</li>
<li>一時的なものか恒久的なものかで設定の方法が違う？</li>
</ul>
</li>
<li>GoogleAnalyticsの設定のデバッグには
<a href="https://chromewebstore.google.com/detail/google-analytics-debugger/jnkmfdileelhofjcijamephohjechhna?hl=ja">https://chromewebstore.google.com/detail/google-analytics-debugger/jnkmfdileelhofjcijamephohjechhna?hl=ja</a>
やdebug toolより何がリクエストされているかなどを見ている</li>
<li>元々 firebaseにあったevent debug機能がgoogle analytics
にも移植されているようで、それも使えそう<ul>
<li><a href="https://firebase.google.com/docs/analytics/debugview?hl=ja">https://firebase.google.com/docs/analytics/debugview?hl=ja</a></li>
<li><a href="https://support.google.com/analytics/answer/7201382?hl=ja">https://support.google.com/analytics/answer/7201382?hl=ja</a></li>
</ul>
</li>
</ul>
<h2 id="goals">Goals</h2><ul>
<li>カスタムで設定した属性をキーにどのぐらいの分布しているか調べたい</li>
</ul>
<h2 id="">現状</h2><ul>
<li>データを送っているようで入ってほしいところにはいらない<ul>
<li>debug viewからはdata
は送ってそうに見えるがユーザープロパティとしてデータを送られることが正しそうなのにそのように見えない</li>
<li>データが正しく適応できていないため目的のフォーマットでデータがはいらない</li>
</ul>
</li>
<li>Google Tag Managerを経由して変数をGA4にわたす場合<ul>
<li><code>dataLayer</code> 変数を経由して渡す必要があると思っているがうまく渡らない</li>
<li><code>typeof dataLayer</code> が実行関数に置き換わると思っていたが原状はarray
のまま呼び出しが行われている？</li>
<li><code>dataLayer</code> にpushしたカスタムデータが送られているように見えない、対象の
dataがpushされているようには見える<ul>
<li>初期pageview
飛ばすまでにデータをあつめておく必要があるとかそれ系がある？ドキュメントがわかりにくい</li>
</ul>
</li>
<li>pageview eventがSPA
等でも発火して送られるようになっており、仕込みの工数が下った<ul>
<li>だがそれに伴って動きが隠ぺい化されておりデータのサイクルがいまいちつかめない（リバースエンジニアリングしようと思っている）</li>
</ul>
</li>
</ul>
</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 13 Feb 2021 13:30:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2021/02/13/google-analytics-4</link><guid>https://9renpoto.win/entry/2021/02/13/google-analytics-4</guid>
    </item><item>
      <title><![CDATA[CADDi株式会社にJoinしました]]></title>
      <description><![CDATA[
&gt; この記事は、[CADDi Advent Calendar](https://adventar.org/calendars/5140) 2020
&gt; の 5 日目にエントリーしています。

昨日の記事はandyさんによる[【大公開】キャディのエンジニア採用 History](https://no]]></description>
      <content:encoded><![CDATA[<blockquote>
<p>この記事は、<a href="https://adventar.org/calendars/5140">CADDi Advent Calendar</a> 2020
の 5 日目にエントリーしています。</p>
</blockquote>
<p>昨日の記事はandyさんによる<a href="https://note.com/andy_caddi/n/n59c23c659ddd">【大公開】キャディのエンジニア採用 History</a>でした</p>
<h1 id="tldr">TL;DR</h1><p>私信です。</p>
<ul>
<li>From: freelance</li>
<li>To: CADDi Inc</li>
</ul>
<h2 id="caddijoin">CADDiにJoinを決めた訳</h2><p>入社以前は <a href="https://www.sottar.io/blogs/leave_mercari/">sottar</a>
さんのエントリーを見ておりました。</p>
<p>決め手は <a href="https://www.wantedly.com/id/a_kobashi_a">Kobashi</a>
よりお声がけ頂いたことが大きいです。
きっかけとしてはお声がけ頂いたことですが、内容として私が追いかけているマイナーなライブラリのことに関して言及頂いたことや、
また対話の中で技術というものへの向き合い方や、正直な内情などについて議論させていただきました。</p>
<p>内定を頂いた後に社内で運用されている評価制度と、その評価制度に当てはめた場合私自身がどのような評価と期待をされているかということを
入社前よりお電話で説明されたことをよく覚えています。</p>
<p>短い期間の間に評価をいただけた事に関しまして、どのような観点で私に期待頂いているのか
また今後のキャリアを含めてどのようなことに挑戦できるのかといったことも対話させていただきました。</p>
<p>内定承諾前よりこのような、期待値を言語化いただけたことは他社では経験がなかったため非常にありがたかったと感じています。</p>
<h2 id="">入社（前|後）のギャップ</h2><p>入社後に一番印象的であったことはプロダクトオーナーの方が優秀であることです。
また、会社としてプロダクト開発のOKRやロードマップはプロダクトオーナーに責務を大きくもたせられており、開発者が課題に向き合うことに集中できる環境があるように感じました。</p>
<p><code>Whole Product</code>
という言葉はCADDiにJoinするまで自身で言語化したことはありませんでしたが
複雑な課題に対して自身のプロダクトや、我々が作る情報システムだけではなく、組織そのものが向き合っている物理世界の課題を含めた優先度付けに向き合おうとしていることが
入社して時間がたち課題の解像度が自分の中で上がっていくほどより見えてくるようになったと思います。</p>
<h2 id="">スモールチームを離れて</h2><p>ここ数年、スモールチームにおけるエンジニアリングやマネジメント、プロダクトのロードマップ整備など幅広い業務を行っていました。
今回、会社員としてJoinを決めたわけですが</p>
<ol>
<li>なんだかんだで頑張れば手が届くコンフォートゾーンを抜けて己の力を試す</li>
<li><a href="https://9renpoto.win/entry/2020/04/15/whoami">もう１つ以上、別の尖った技術スタックがほしい</a></li>
<li><a href="https://www.kayac.com/vision/vision">つくる人を増やす</a>ために技術を使いたい</li>
</ol>
<p>といったことにフォーカスしてしばらくコミットしたいと思います。
技術的にこうしたい、組織をこうしたいといったことも凝り固まっておらず、まだまだコミットできることは多そうです。</p>
<h2 id="">興味のある方</h2><p><a href="https://share.hsforms.com/1XUTUewm3SP2xrN6MKJNg_Q3x4tb">カジュアル面談</a>からでも行っていただけるようなのでお気軽に登録いただいても良さそうです。
やることはまだ無限にありそうです。</p>
<h2 id="refs">Refs</h2><ul>
<li>The Whole Product－CADDiのサービス開発を貫くPhilosophy:
<a href="https://note.com/sasaguchisan/n/n65ee9266bc25">https://note.com/sasaguchisan/n/n65ee9266bc25</a></li>
<li>プロダクトマネージャー視点から見る製造業プラットフォーム&quot;CADDi&quot;:
<a href="https://note.com/yosukeshirai/n/n28fffca59eab">https://note.com/yosukeshirai/n/n28fffca59eab</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 05 Dec 2020 03:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2020/12/05/join</link><guid>https://9renpoto.win/entry/2020/12/05/join</guid>
    </item><item>
      <title><![CDATA[Monorepo coverage]]></title>
      <description><![CDATA[
# TL;DR

- coverallsでmonorepo coverageが計測できるようになっていた
- 多言語にも対応しておりcodecovを優先して使っていた理由がなくなった

## Refs

- &lt;https://caddi.tech/archives/1640&gt;
- &lt;https:/]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>coverallsでmonorepo coverageが計測できるようになっていた</li>
<li>多言語にも対応しておりcodecovを優先して使っていた理由がなくなった</li>
</ul>
<h2 id="refs">Refs</h2><ul>
<li><a href="https://caddi.tech/archives/1640">https://caddi.tech/archives/1640</a></li>
<li><a href="https://github.com/0xProject/0x-monorepo">https://github.com/0xProject/0x-monorepo</a></li>
<li><a href="https://github.com/marketplace/actions/coveralls-github-action#complete-parallel-job-example">https://github.com/marketplace/actions/coveralls-github-action#complete-parallel-job-example</a></li>
<li><a href="https://github.com/9renpoto/.59-node/blob/011890f572a6a00258f72a9d25ab7f67e69590be/.github/workflows/nodejs.yml#L44-L59">https://github.com/9renpoto/.59-node/blob/011890f572a6a00258f72a9d25ab7f67e69590be/.github/workflows/nodejs.yml#L44-L59</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Fri, 27 Nov 2020 03:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2020/11/27/monorepo-coveralls</link><guid>https://9renpoto.win/entry/2020/11/27/monorepo-coveralls</guid>
    </item><item>
      <title><![CDATA[Brew Alternative Installs ( Intel mac )]]></title>
      <description><![CDATA[
# TL;DR

- homebrewのinstall先にカスタムして `/opt/homebrew` をintel
  macで使うことができなくなっていそう

## homebrew install path

&gt; However do yourself a favour and instal]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>homebrewのinstall先にカスタムして <code>/opt/homebrew</code> をintel
macで使うことができなくなっていそう</li>
</ul>
<h2 id="homebrew-install-path">homebrew install path</h2><blockquote>
<p>However do yourself a favour and install to /usr/local on macOS Intel,
/opt/homebrew on macOS ARM, and /home/linuxbrew/.linuxbrew on Linux. Some
things may not build when installed elsewhere. One of the reasons Homebrew
just works relative to the competition is because we recommend installing
here. Pick another prefix at your peril!</p>
</blockquote>
<ul>
<li>もともとinstall <code>/user/local</code>
配下にインストールが推奨されていたが適切な場所ではないと判断し <code>/opt/homebrew</code>
へinstallを変更していた</li>
<li>今回 <strong>ARM</strong> 版Macの誕生により<code>/opt/homebrew</code> 配下へのinstallが推奨され、
Intel Macで <code>/opt/homebrew</code> 配下にbrewを配置している場合動かなくなっていそう</li>
</ul>
<pre><code>Error: Cannot install in Homebrew on Intel processor in ARM default prefix (/opt/homebrew)!
</code></pre>
<p>対応方法がいまいちはっきりしていないが全部入れ直すしかないだろうか</p>
<h2 id="refs">Refs</h2><ul>
<li><a href="https://github.com/Homebrew/brew/commit/5afff3f3aa1d806855d460e5f39bfbef28ef6262#diff-fcf6d384bb8308546cecce54bb9678c715f95c119b402f9b61a78e0cf3d8fbc4">https://github.com/Homebrew/brew/commit/5afff3f3aa1d806855d460e5f39bfbef28ef6262#diff-fcf6d384bb8308546cecce54bb9678c715f95c119b402f9b61a78e0cf3d8fbc4</a></li>
<li><a href="https://qiita.com/usamik26/items/601f5612bd3f8a21cc41">https://qiita.com/usamik26/items/601f5612bd3f8a21cc41</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 21 Nov 2020 03:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2020/11/21/brew</link><guid>https://9renpoto.win/entry/2020/11/21/brew</guid>
    </item><item>
      <title><![CDATA[Code-First GraphQL server]]></title>
      <description><![CDATA[
# TL;DR

- GraphQLサーバーを書くときにはCode-Firstで書くとメリットが大きい

## Code-First GraphQL server

[隅田川.js](https://sumidagawajs.connpass.com/event/193786/)
というイベントで]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>GraphQLサーバーを書くときにはCode-Firstで書くとメリットが大きい</li>
</ul>
<h2 id="code-first-graphql-server">Code-First GraphQL server</h2><p><a href="https://sumidagawajs.connpass.com/event/193786/">隅田川.js</a>
というイベントで<a href="https://code-first-graphql-server.web.app/">発表してきました</a></p>
<p>初めてGraphQLサーバーを書くためのWAFとして自分は <code>@nestjs</code>
を採用しました。理由は下記のようなものがあります。</p>
<ul>
<li>TypeScriptをメインで利用する</li>
<li>Node.jsでサーバーを書く際に構造化された一定のルールがほしい</li>
<li>REST APIも同じサーバー上から提供できる</li>
<li><strong>GraphQLのための記述量を抑えられる</strong></li>
</ul>
<h2 id="graphql-server">GraphQL serverを書く順序</h2><p><code>@nestjs/graphql</code> を用いた開発の場合、Code-Firstな開発とSDL(Schema Definition
Language)-Firstな開発手法を選択することができます。</p>
<ul>
<li><a href="https://docs.nestjs.com/graphql/quick-start#code-first">https://docs.nestjs.com/graphql/quick-start#code-first</a></li>
<li><a href="https://docs.nestjs.com/graphql/quick-start#schema-first">https://docs.nestjs.com/graphql/quick-start#schema-first</a></li>
</ul>
<p>Code-Firstを選択した場合、モデルとなるファイルに対してGraphQLのschemaとして公開するかをデコレーターを用いて明示していきます。</p>
<pre><code class="language-typescript">import { Field, ID, ObjectType } from &quot;@nestjs/graphql&quot;;
import {
  Column,
  Entity,
  EntityRepository,
  PrimaryGeneratedColumn,
} from &quot;typeorm&quot;;
import { BaseRepository } from &quot;typeorm-transactional-cls-hooked&quot;;

@Entity(&quot;users&quot;)
@ObjectType()
export class User {
  @Field(() =&gt; ID)
  @PrimaryGeneratedColumn(&quot;uuid&quot;)
  readonly id: string;

  @Field()
  @Column()
  readonly name: string;
}

@EntityRepository(User)
export class UserRepository extends BaseRepository&lt;User&gt; {}
</code></pre>
<p>上記のサンプルでは同時に <code>typeorm</code>
を用いてデータベースschemaの定義を行っています。
データベースに保存されている情報と、GraphQLを用いて外部に公開するschemaの一部をモデルファイルの中に集約して管理することができます。
以降、必要なResolverを定義すれば、GraphQLとして公開されるQueryやMutationをコードによって表現できます。</p>
<p>対してSDL-Firstなアプローチでサーバーを開発した際の流れとして</p>
<ol>
<li>GraphQLファイルを定義する</li>
<li>手動で作成した <code>graphql</code> ファイルよりTypeScript Interfaceとなる型情報生成する</li>
<li><code>implements</code> 等を用い型安全性を確保する</li>
<li><strong><code>graphql</code> で生成したファイルに沿ったResolverを作成する</strong></li>
</ol>
<p>といった流れになるかと思います。この2つを比較した際にCode-Firstな開発のメリットは
<strong>Resolverの実装とGraphQL定義との乖離をTypeScriptレベルで確認できる</strong>
ことにあると考えています。また、nest.jsに関してはSDL-First、Code-Firstそれぞれに対してモデルファイルの作成（または生成）は必要であるため、記述量に関してもCode-Firstで作成される際にはメリットがあります。</p>
<p>Code-Firstによる記述のデメリットとして、<strong>デコレータが多段で定義されがち</strong>
ということがあります。</p>
<h2 id="prisma-hasura">Prisma | Hasura</h2><p>GraphQLサーバーを構築するにあたり、これらの2つは十分検討に値する仕組みが出来上がっていると思います。</p>
<blockquote>
<p>Prisma is a GraphQL ORM for your GraphQL (or REST) servers and not your
frontend apps, kind of like a replacement for JDBC, SQL Alchemy, ActiveRecord
and so on.</p>
</blockquote>
<p><a href="https://hasura.io/blog/hasura-vs-prisma-9ffc7271eda8/">hasura の記事を引用</a>
<strong>PrismaはGraphQL ORM</strong>だ、という表現をされています。</p>
<pre><code>generator client {
  provider        = &quot;prisma-client-js&quot;
}

datasource db {
  provider = &quot;sqlite&quot;
  url      = &quot;file:./dev.db&quot;
}

model User {
  email String  @unique
  id    Int     @id @default(autoincrement())
  name  String?
  posts Post[]
}
</code></pre>
<p>Prismaでは独自のSDLとして <code>.prisma</code> ファイルを作成します。
比較のためにnest.jsとPrismaを併用しているサンプルを引用します。</p>
<pre><code class="language-typescript">// https://github.com/prisma/prisma-examples/blob/latest/typescript/graphql-nestjs/src/user.ts
import &quot;reflect-metadata&quot;;
import { Field, ID, ObjectType } from &quot;@nestjs/graphql&quot;;
import { IsEmail } from &quot;class-validator&quot;;
import { Post } from &quot;./post&quot;;

@ObjectType()
export class User {
  @Field((type) =&gt; ID)
  id: number;

  @Field()
  @IsEmail()
  email: string;

  @Field((type) =&gt; String, { nullable: true })
  name?: string | null;

  @Field((type) =&gt; [Post], { nullable: true })
  posts?: [Post] | null;
}
</code></pre>
<p><code>@nestjs/graphql</code> + <code>typeorm</code>
の時と異なり、entityとなるfieldの定義と、GraphQLとして公開するSchemaの定義がprismaファイルとTypeScriptファイルに分離します。
記述量という点では <code>typeorm</code> を使わない <code>@nestjs/graphql</code>
と言った感じなると思っています。database
migrationやschemaの型やrelationといった情報を <strong>Prisma</strong> に移管できるようです。</p>
<p>上記まででは <code>typeorm</code> と <code>prisma</code> を好みで選択するようになる印象ですが、
Prismaはtypeormと異なりGraphQLに最適化されたdataloaderのような機構のクエリーを発行できるかもしれないので、
<code>@nestjs/graphql</code> + <code>typeorm</code> + <code>dataloader</code>
といった記述量が削減できるかもしれないことや、Paginateに関するサポートがないか期待しています。</p>
<ul>
<li><a href="https://stackshare.io/stackups/hasura-vs-prisma">https://stackshare.io/stackups/hasura-vs-prisma</a></li>
<li><a href="https://hasura.io/blog/hasura-vs-prisma-9ffc7271eda8/">https://hasura.io/blog/hasura-vs-prisma-9ffc7271eda8/</a></li>
<li><a href="https://github.com/prisma/prisma-examples/tree/latest/typescript/graphql-nestjs">https://github.com/prisma/prisma-examples/tree/latest/typescript/graphql-nestjs</a></li>
<li><a href="https://github.com/MichalLytek/type-graphql/blob/master/docs/authorization.md">https://github.com/MichalLytek/type-graphql/blob/master/docs/authorization.md</a></li>
<li><a href="https://nexusjs.org/docs/adoption-guides/neuxs-framework-prisma-users">https://nexusjs.org/docs/adoption-guides/neuxs-framework-prisma-users</a></li>
<li><a href="https://github.com/prisma/prisma-examples/tree/latest/typescript/graphql-apollo-server">https://github.com/prisma/prisma-examples/tree/latest/typescript/graphql-apollo-server</a></li>
<li><a href="https://github.com/prisma/prisma-examples/tree/latest/typescript/graphql-nestjs">https://github.com/prisma/prisma-examples/tree/latest/typescript/graphql-nestjs</a></li>
</ul>
<h2 id="hasura">Hasura</h2><ul>
<li>Schema生成、GraphQL定義、認証周りの一部コードの作成、反映といったところまでWebUIをベースに、CLIはおまけで提供されている印象</li>
<li>Migration機能や、<code>Hasura actions</code>
などの定義によって同一機能のサーバーを定義できるようにはなっている（yml,
graphlqによる管理）</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 19 Nov 2020 03:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2020/11/19/code-first-graphql-server</link><guid>https://9renpoto.win/entry/2020/11/19/code-first-graphql-server</guid>
    </item><item>
      <title><![CDATA[ゆとりなき開墾]]></title>
      <description><![CDATA[
# TL;DR

- ソフトウェア開発において自分の常に追いかけている一歩外のものがどれだけ整備されているかはドキュメントレベルでは不十分である
- 技術検討においてそれらを採用するか判断するには一定の時間を有す（これを今記事では開墾と呼ぶ）
- 検討をするには必要条件と十分条件の解像度を高め、ま]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>ソフトウェア開発において自分の常に追いかけている一歩外のものがどれだけ整備されているかはドキュメントレベルでは不十分である</li>
<li>技術検討においてそれらを採用するか判断するには一定の時間を有す（これを今記事では開墾と呼ぶ）</li>
<li>検討をするには必要条件と十分条件の解像度を高め、またそれに対してのフィードバックとしてYes
or No以外の手札を返さなければならない</li>
</ul>
<h2 id="">要求定義とその大きさに関して</h2><ul>
<li>ゴールはイメージの解像度が高いほどよいに越したことはない</li>
<li>動かないものには価値がないので夢に対して段階的に向かっていく必要はある</li>
<li>一定のゴールが定義された場合に、まずその中で何か可能なのかを判断していく必要がある</li>
<li>何ができるのかは選択できる状態にあるべきである</li>
</ul>
<h2 id="">要件を細分化した場合のできる・できない</h2><iframe width="560" height="315" src="https://www.youtube.com/embed/x9wn633vl_c" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><ul>
<li>完成したものとコストがわかればある程度の天秤から <strong>選択できる</strong></li>
<li>開墾し選択肢を増やすことは、またゴールと同じく無限にクオリティを高められる</li>
<li>OSSに関しては、開墾先の畑は自分のコントロールが及ばない可能性はある（むしろ高い）</li>
</ul>
<h2 id="">開墾済みの畑を持っておく・足りない畑を開墾する</h2><ul>
<li>畑を開墾済みであるということは十分にそのテクノロジーを勉強し、また投資できているということ</li>
<li>足りない畑を耕すには時間が必要だし、耕している段階ではまだ選択肢を提供できない</li>
<li>開墾する速度で勝負というチキンレースもある</li>
<li>開墾作業だけでは結果はでないし、開墾しているだけでは間接的なアウトプットにとどまりゴールはしない</li>
</ul>
<h2 id="">現在のステータスと足りないもの</h2><ul>
<li>時間</li>
<li>期待値コントロール</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 29 Oct 2020 10:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2020/10/29/cultivate</link><guid>https://9renpoto.win/entry/2020/10/29/cultivate</guid>
    </item><item>
      <title><![CDATA[Work In Progress Document Task]]></title>
      <description><![CDATA[
# TL;DR

- WIPなドキュメントを書くことでタスクを管理する
  - Issueのように解像度を高め消化できる状態や粒度を高めない
  - 完了状態より全体感を管理したい
- ドキュメントを残すのは得意ではないが、軌跡のoutputをslackからドキュメントツールに移していこう

##]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>WIPなドキュメントを書くことでタスクを管理する<ul>
<li>Issueのように解像度を高め消化できる状態や粒度を高めない</li>
<li>完了状態より全体感を管理したい</li>
</ul>
</li>
<li>ドキュメントを残すのは得意ではないが、軌跡のoutputをslackからドキュメントツールに移していこう</li>
</ul>
<h2 id="">永遠の課題、タスク管理</h2><ul>
<li>Scrumなどを行っているとタスクの粒度が大きくならないように気を使う<ul>
<li>その過程には実は多くの段階があるが脳内キャッシュに割と頼っている</li>
<li>タスク化するまでのタスクは？</li>
<li>タスクとは、<em>6 時間以内に終えられるものである</em> としている</li>
</ul>
</li>
<li>脳内で考えていることを雑に記録する方法として
<a href="http://c16e.com/1511101558/">分報</a> を利用することや会社が増えてきた<ul>
<li>個人的には日報は得意ではない<ul>
<li>PRを見ればその日に行った業務がわかるように心がけている</li>
<li>1日1PR以上公開する</li>
<li>結果2重管理のように感じており、日報生成ツールなどを作ったりした</li>
</ul>
</li>
</ul>
</li>
<li>日報を分報のように捉えてタスクを管理できないか考える<ul>
<li><em>何をどのぐらいの時間で完了できるか</em>
宣言しておくことは見積もり能力を含め重要である</li>
<li>何を考えて今そのタスクに挑戦しているか</li>
<li>何に詰まって予定通りの業務を終えられなかったのか</li>
</ul>
</li>
<li>検索可能なものを記録に残す<ul>
<li>アウトプットは常に足りない</li>
<li>手に馴染んだものしか即座に結果が出せない</li>
<li>もっと努力を記録したい</li>
</ul>
</li>
</ul>
<h2 id="">タスク管理と時間管理</h2><ul>
<li><a href="https://toggl.com/">https://toggl.com/</a> は辛い</li>
<li><a href="https://wakatime.com/">https://wakatime.com/</a> を自分の努力可視化としては雑に使っている
<a href="https://gist.github.com/9renpoto/95a6308934c189cbc1db424c014f529e">https://gist.github.com/9renpoto/95a6308934c189cbc1db424c014f529e</a></li>
<li>フリーランスとしては <a href="https://clockify.me/">https://clockify.me/</a> で稼働時間管理をしている</li>
<li>アウトプットによってツールを使い分けたいが、原価償却などの管理に時間を求められる場合、<a href="https://github.com/git-time-metric/gtm">https://github.com/git-time-metric/gtm</a>
等利用を再検討したい</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 20 Oct 2020 14:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2020/10/20/task-document</link><guid>https://9renpoto.win/entry/2020/10/20/task-document</guid>
    </item><item>
      <title><![CDATA[他業種からエンジニアを目指す]]></title>
      <description><![CDATA[
# 他業種からエンジニアを目指すには

- 目的を持ってコードを書く
- バグを生む・解決する
- 相談できる師匠に出会う

## 自身のエンジニア人生を振り返って

今となってはは当たり前のように扱っている下記のようまものからスタートしたわけではなかった

- Git(hub)
- Editor]]></description>
      <content:encoded><![CDATA[<h1 id="">他業種からエンジニアを目指すには</h1><ul>
<li>目的を持ってコードを書く</li>
<li>バグを生む・解決する</li>
<li>相談できる師匠に出会う</li>
</ul>
<h2 id="">自身のエンジニア人生を振り返って</h2><p>今となってはは当たり前のように扱っている下記のようまものからスタートしたわけではなかった</p>
<ul>
<li>Git(hub)</li>
<li>Editor</li>
<li>特定のプログラミング言語</li>
<li>Agile開発</li>
<li>Terminal</li>
<li>docker / VM開発</li>
<li>middleware</li>
</ul>
<p>転職活動をする際に伝えたり、また面接官として技術能力を確かめるためのヒアリングなども専門領域のものが多い。
ではプログラムを習ったことがない初心者はソフトウェアエンジニアを目指す場合何を話せば良いのか</p>
<h2 id="">自分が師匠の立場になった場合</h2><p>直近1年少し、プログラミング経験はゼロではないが業務経験はほぼゼロの学生出身と仕事を行った際のメモ。</p>
<ol>
<li>チーム開発業務をこなしたければまずGitを使った開発フローを習得する</li>
<li>テストを書く</li>
<li>境界線を作らないソフトウェア開発（※ ex. frontendとbackend)</li>
<li>OUTPUTを出すサイクルを小さく</li>
<li>完成を定義できる・完成させる</li>
</ol>
<h2 id="">自分が師匠と出会い、大事だなと思った教わったこと</h2><ol>
<li>プロダクトにこだわる（品質でもプロダクトとしても良いものを作る）</li>
<li>感覚だけでなく計測する</li>
<li>テストを書く</li>
<li>境界線を作らないソフトウェア開発</li>
</ol>
<p>組織やチームなどにも依存する話ですが、自分はプロダクトに関わりたいことや、またそのoutputにこだわる姿勢によく共感していた。
それに必要な過程や手段としてソフトウェアを捉えていて、共通知識で使える資産としてテストとKPI/パフォーマンス等、根拠を計測することを得意ですと表現することが多い。</p>
<p>小さいチームでは境界線を作ってこだわっているだけでは仕事が進まないことが多く、そのために職種の殻を破ってデザイナーやプロダクトオーナー、経営者にも意見を言えるような姿勢を取ることが大事であるとも思う。
ただ上記のことは座学では学べない、肩書ソフトウェアエンジニアとしてご飯を食べるようになってから学んだことである。</p>
<h2 id="">ソフトウェア開発を体験できるアカデミー・ハンズオン</h2><p>何かの方法でチームソフトウェア開発を実行することは非常に学びがあるとは思う。
自身は情報学の大学を専攻しており、その単位や研究の中でソフトウェア開発（らしきもの）を無知として体験した。</p>
<p>就職して以降そのやり方を使うことはなく、反面教師としてなぜ今のやり方を行っているのかと説明するための根拠としてその経験は役に立っている。
大学等以外でソフトウェアを勉強するカリキュラムやアカデミーを学外で受講している方の話を聞ける機会があったが
自身が行っているソフトウェア開発に近い体験で行われているようには感じた。</p>
<p>結果としてそのアカデミーを卒業した方は別の業種についていたが、
ソフトウェア開発社としての肩書を得てそれでメシを食う、今の専門分野を離れソフトウェア開発の世界に飛び込むのは勇気のいる取り組みであると思う。
自分は学業の延長線上でソフトウェア開発エンジニアを選んだが、それでも業務のことを大学でなったわけでもなく、
業務に必要なことは業務を初めてから世界が広がったように思う。</p>
<p>勉強することは無限に存在しているので、自分が何を優先して勉強するのかは選ばなければならない。
現在は長期インターンだったり専門職バイトだったりが良いのだろうか。</p>
<p>まず何を学べばいいですかと言われると、とりあえず「githubを用いたpull-request開発」とCIを用いたテストの実行をせよ、言語は問わないという課題を出す。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 25 Aug 2020 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2020/08/25/job-change</link><guid>https://9renpoto.win/entry/2020/08/25/job-change</guid>
    </item><item>
      <title><![CDATA[expect(null).toBeDefined() // pass]]></title>
      <description><![CDATA[
泣いた

![null](/expect_null.png)

refs:
https://github.com/jestjs/jest/blob/v26.0.1/packages/expect/src/matchers.ts#L196-L212

```typescript
toBeDefine]]></description>
      <content:encoded><![CDATA[<p>泣いた</p>
<p><img src="/expect_null.png" alt="null"></p>
<p>refs:
<a href="https://github.com/jestjs/jest/blob/v26.0.1/packages/expect/src/matchers.ts#L196-L212">https://github.com/jestjs/jest/blob/v26.0.1/packages/expect/src/matchers.ts#L196-L212</a></p>
<pre><code class="language-typescript">toBeDefined(this: MatcherState, received: unknown, expected: void) {
  const matcherName = &#39;toBeDefined&#39;;
  const options: MatcherHintOptions = {
    isNot: this.isNot,
    promise: this.promise,
  };
  ensureNoExpected(expected, matcherName, options);

  const pass = received !== void 0;

  const message = () =&gt;
    matcherHint(matcherName, undefined, &#39;&#39;, options) +
    &#39;\n\n&#39; +
    `Received: ${printReceived(received)}`;

  return {message, pass};
},
</code></pre>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 14 May 2020 11:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2020/05/14/to_be_defined</link><guid>https://9renpoto.win/entry/2020/05/14/to_be_defined</guid>
    </item><item>
      <title><![CDATA[Who am i]]></title>
      <description><![CDATA[
# TL;DR

```
(P)react / Next.js ██████████████████░░
           GraphQL ███████████████░░░░░
               CSS █████░░░░░░░░░░░░░░░
      Node/ Nest]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><pre><code>(P)react / Next.js ██████████████████░░
           GraphQL ███████████████░░░░░
               CSS █████░░░░░░░░░░░░░░░
      Node/ NestJS █████████████░░░░░░░
     DynamicTyping ██░░░░░░░░░░░░░░░░░░
</code></pre>
<p><a href="https://gist.github.com/9renpoto/a7f7a2a4dead3bf5c95d8898a62e1cec">https://gist.github.com/9renpoto/a7f7a2a4dead3bf5c95d8898a62e1cec</a></p>
<h2 id="">何ができるのか改めて考える</h2><ul>
<li>2020年<ul>
<li><a href="https://gist.github.com/9renpoto/a7f7a2a4dead3bf5c95d8898a62e1cec">https://gist.github.com/9renpoto/a7f7a2a4dead3bf5c95d8898a62e1cec</a></li>
</ul>
</li>
<li>2019年<ul>
<li>TypeScript / (P)react / Next.jsチョットデキる
(<a href="/entry/2019/12/08/next-stack">refs</a>)</li>
<li>TypeScript / Nest.js (express) チョットデキる
(<a href="/entry/2019/12/08/next-stack">refs</a>)</li>
</ul>
</li>
<li>2018年<ul>
<li>TypeScript / Reactチョットデキる (<a href="/entry/2018/10/31/goodbye">refs</a>)</li>
<li>Perl / Python / Scalaチョットデキる（<a href="/entry/2018/10/31/goodbye">refs</a>)</li>
</ul>
</li>
</ul>
<h2 id="">できないこと</h2><p>大前提として業務で経験がないことはできないに等しい</p>
<ul>
<li>興味があるが実務経験がないことは <strong>今すぐに</strong> できないこと<ul>
<li>Vue / Nuxt.js / Vuex</li>
<li>Angular / AngularJS</li>
<li>クロスプラットフォーム（RN + RNW,Flutter + Flutter web, etc)</li>
<li>CSS設計</li>
<li>Elm</li>
<li>Elixir / Phoenix</li>
<li>iOS(Swift) / Android(Java/Kotlin)</li>
<li>SRE</li>
<li>社内インフラ</li>
<li>並列処理 / 分散処理（研究していたレベルのモノ）</li>
</ul>
</li>
<li>業務経験はあるが他社で役に立つのか不明なこと<ul>
<li>チームビルディング（正直メンバー次第）</li>
<li>外注（フリーランスを含む）</li>
</ul>
</li>
<li>全く関わることのなかったこと<ul>
<li>資金調達</li>
<li>機械学習</li>
<li>ファームウェア / 基盤</li>
</ul>
</li>
</ul>
<h2 id="">どうなりたいかと、それを選ぶこと</h2><ul>
<li>ありがたいことにお声がけいただく会社の多くは即戦力であることを期待されている（と感じる）</li>
<li>定期的に仕事がなくなる危機感を感じるのでプライベートで素振りを行いたい気持ちになるが、公開されているコードにはまだそのレベルに達していない</li>
</ul>
<h2 id="">何でもできるは何もできない</h2><ul>
<li>なりたくないなと思っていたけど、旬を過ぎてそうなってきている</li>
<li>成長（コミット数）が止まったら能力衰退が加速していく恐怖（定期）<ul>
<li><a href="/entry/2018/04/10/works">エンジニアリングと仕事</a></li>
<li><a href="/entry/2017/10/24/full-stack-engineer">フルスタックと器用貧乏</a></li>
<li><a href="/entry/2016/09/05/study-motivation">勉強を続けること</a></li>
</ul>
</li>
<li>今までとやり方を変える必要は感じる</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Wed, 15 Apr 2020 11:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2020/04/15/whoami</link><guid>https://9renpoto.win/entry/2020/04/15/whoami</guid>
    </item><item>
      <title><![CDATA[Happy Contributions 10,000]]></title>
      <description><![CDATA[
# TL;DR

![current commit](/current.png)

- 目標していた `10,000` コミットを超えた
- 直近1年少しは極力コードをかける環境を維持できている気はする
- publicなコミットを増やしていきたい

## 体感

- 毎年コミット数は基本的に増や]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><p><img src="/current.png" alt="current commit"></p>
<ul>
<li>目標していた <code>10,000</code> コミットを超えた</li>
<li>直近1年少しは極力コードをかける環境を維持できている気はする</li>
<li>publicなコミットを増やしていきたい</li>
</ul>
<h2 id="">体感</h2><ul>
<li>毎年コミット数は基本的に増やせているつもりではいる</li>
<li>今と同じ成長割合でコミットが成長できるかというと、そろそろ時間的には頭打ちな気はする</li>
<li>結構時間をかけてビルドを繰り返しているつもりではあるが、プログラミング関連はまだ無限に勉強が必要な領域が存在している</li>
</ul>
<h2 id="history">History</h2><p><img src="/contributions.png" alt="image"></p>
<ul>
<li>転職などの関係で過去のコミットは少なく見えることも多い</li>
</ul>
<p>generated by <a href="https://github-contributions.vercel.app/">https://github-contributions.vercel.app/</a></p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 20 Feb 2020 11:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2020/02/20/commit</link><guid>https://9renpoto.win/entry/2020/02/20/commit</guid>
    </item><item>
      <title><![CDATA[nest-raven GraphQL support]]></title>
      <description><![CDATA[
# TL;DR

- &lt;https://github.com/mentos1386/nest-raven/pull/31&gt;
- `@nest/graphql` は `apollo-server` のwrapperで `@nest/common`
  のエラーに対する対応が弱い
- `@nest/g]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li><a href="https://github.com/mentos1386/nest-raven/pull/31">https://github.com/mentos1386/nest-raven/pull/31</a></li>
<li><code>@nest/graphql</code> は <code>apollo-server</code> のwrapperで <code>@nest/common</code>
のエラーに対する対応が弱い</li>
<li><code>@nest/graphql</code> を使いながら一部のAPIを
<a href="https://docs.nestjs.com/controllers">REST</a> を用いて表現することはある (ex.
authorize)</li>
</ul>
<h2 id="service">Service</h2><ul>
<li><code>Service</code> クラス内で扱われる例外が <code>apollo-server-errors</code> とは異なる</li>
<li>様々な例外をgraphqlでもrestでも評価できる形にする必要がある</li>
<li><a href="https://docs.nestjs.com/exception-filters">Exception filters</a>
を駆使して例外を整理する？<ul>
<li>何れにせよNodeJSの例外処理は貧弱で、無駄にpokemon exception handling
を作りたくはない</li>
<li>エラートラッカー自体がエラー出すと本末転倒</li>
</ul>
</li>
</ul>
<h2 id="refs">Refs</h2><ul>
<li><a href="https://github.com/apollographql/apollo-client/issues/4547">https://github.com/apollographql/apollo-client/issues/4547</a></li>
<li><a href="https://github.com/apollographql/apollo-server/tree/master/packages/apollo-server-errors">https://github.com/apollographql/apollo-server/tree/master/packages/apollo-server-errors</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 11 Feb 2020 05:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2020/02/11/nest-raven</link><guid>https://9renpoto.win/entry/2020/02/11/nest-raven</guid>
    </item><item>
      <title><![CDATA[Preact with storyshots]]></title>
      <description><![CDATA[
# TL;DR

- `preact-compat` を使って `react-test-renderer`
  を都合よく動かせなかったのでテスト時には `react` に依存する
- `core-js-pure` がwebpackの設定次第で意図せぬ変換をされてエラーになるので
  exclud]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li><code>preact-compat</code> を使って <code>react-test-renderer</code>
を都合よく動かせなかったのでテスト時には <code>react</code> に依存する</li>
<li><code>core-js-pure</code> がwebpackの設定次第で意図せぬ変換をされてエラーになるので
exclude</li>
</ul>
<h2 id="preact-only-development">Preact only development</h2><ul>
<li><code>preact</code> with <code>next.js</code> の環境を想定する</li>
<li><code>preact/compat</code> を使わない <code>preact</code> 開発はまだ開発環境として足りないことが多い<ul>
<li>テスト周り</li>
<li>既存 <code>react</code> 周辺ツールの多さ</li>
</ul>
</li>
<li><code>react-test-renderer</code> の快適さ<ul>
<li><code>enzyme</code> であればの代替できる？<ul>
<li>ちゃっかり内部で <code>react-test-renderer</code> に依存している</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://github.com/preactjs/enzyme-adapter-preact-pure">https://github.com/preactjs/enzyme-adapter-preact-pure</a><ul>
<li>試したいけどpreact onlyで開発できるほどのコンポーネントがほしい</li>
<li><a href="https://github.com/prateekbh/preact-material-components">https://github.com/prateekbh/preact-material-components</a> を見ているけど中身
esmodule buildでテストを書いたりするのが辛い</li>
<li><code>next.js</code> っぽいなにかが使いたい（まだ見つけられていない）</li>
</ul>
</li>
</ul>
<h2 id="refs">Refs</h2><ul>
<li><a href="https://github.com/9renpoto/ranking/pull/1342">https://github.com/9renpoto/ranking/pull/1342</a></li>
<li><a href="https://stackoverflow.com/questions/57361439/how-to-exclude-core-js-using-usebuiltins-usage">https://stackoverflow.com/questions/57361439/how-to-exclude-core-js-using-usebuiltins-usage</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 09 Feb 2020 05:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2020/02/09/core-js-pure</link><guid>https://9renpoto.win/entry/2020/02/09/core-js-pure</guid>
    </item><item>
      <title><![CDATA[PAPER STRESS]]></title>
      <description><![CDATA[
- 年始は確定申告含め紙仕事に追われる
- 紙仕事が物理的に積み上がっていることはIssue
  が積み重なるよりも数倍のストレスが可視化される
- 具体的にこのストレスから脱することに対しても投資していきたい
]]></description>
      <content:encoded><![CDATA[<ul>
<li>年始は確定申告含め紙仕事に追われる</li>
<li>紙仕事が物理的に積み上がっていることはIssue
が積み重なるよりも数倍のストレスが可視化される</li>
<li>具体的にこのストレスから脱することに対しても投資していきたい</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 26 Jan 2020 05:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2020/01/26/paper-stress</link><guid>https://9renpoto.win/entry/2020/01/26/paper-stress</guid>
    </item><item>
      <title><![CDATA[2019年 仕事終わり]]></title>
      <description><![CDATA[
# TL;DR

[![image](/yearly_contribution_tweet.jpg)](https://twitter.com/9renpoto/status/1211830790620762112)

- [findy-code](https://findy-code.io/)で]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><p><a href="https://twitter.com/9renpoto/status/1211830790620762112"><img src="/yearly_contribution_tweet.jpg" alt="image"></a></p>
<ul>
<li><a href="https://findy-code.io/">findy-code</a>で10位だったそうです (昨年25位）</li>
<li><a href="https://9renpoto.win/2019/12/08/next-stack/">スキルは変更を図っていますが</a>、スキル値はまったく変動なし</li>
<li>GraphQLとアプリを書きたい</li>
</ul>
<h2 id="">芝生</h2><ul>
<li>スキルの変更を図ってることもあり昨年よりは温かい</li>
</ul>
<h2 id="">振り返り</h2><pre><code>- 無職でしたが、年明けより新しいお仕事をいただくことなりました
</code></pre>
<p>ありがたいことに現在の職場で技術的な観点では挑戦も含めて働くことができています。</p>
<pre><code>- とりあえず、まだフリーランスを継続することになりましたので、確定申告がんばります
</code></pre>
<p>今年も確定申告を迎えることに。</p>
<pre><code>- publicな環境で運用されるプロダクトを作りたい。偏差値を上げたい。仕事がなくなる
</code></pre>
<p>偏差値は全く変化せず、マネジメント経験を入力するとfindy内の想定年収は上がった</p>
<h2 id="">来年</h2><ul>
<li>親知らずを処理する</li>
<li>全く未着手なスキルを減らす（アプリ、インフラ）</li>
<li>部屋が手狭で辛いので何らかの手を打つ</li>
</ul>
<h2 id="">過去</h2><ul>
<li><a href="/entry/2018/12/31/2018-end">2018 年終わり</a></li>
<li><a href="/entry/2017/12/31/2017-end">2017 年終わり</a></li>
<li><a href="/entry/2017/01/01/2016">2016 年終わり</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 31 Dec 2019 05:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2019/12/31/2019-end</link><guid>https://9renpoto.win/entry/2019/12/31/2019-end</guid>
    </item><item>
      <title><![CDATA[My next stacks]]></title>
      <description><![CDATA[
# TL;DR

- &lt;https://www.stackshare.io/9renpoto&gt;
- Rails =&gt; [NestJS](https://github.com/9renpoto/backend)
- Swagger =&gt; [GraphQL](https://github.com/9r]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li><a href="https://www.stackshare.io/9renpoto">https://www.stackshare.io/9renpoto</a></li>
<li>Rails =&gt; <a href="https://github.com/9renpoto/backend">NestJS</a></li>
<li>Swagger =&gt; <a href="https://github.com/9renpoto/backend/tree/main/apps/core">GraphQL</a></li>
<li>React =&gt; Preact<ul>
<li><a href="https://github.com/9renpoto/frontend">https://github.com/9renpoto/frontend</a></li>
<li><a href="https://github.com/9renpoto/ranking">https://github.com/9renpoto/ranking</a></li>
</ul>
</li>
<li>Self make auth =&gt; Firebase</li>
</ul>
<h2 id="nestjs-with-graphql">NestJS ( with GraphQL )</h2><ul>
<li><a href="https://typegraphql.ml/">type-graphql</a> is cute</li>
<li>We needs some SaaS (Stripe, Firebase, etc)</li>
</ul>
<h2 id="graphql">GraphQL</h2><ul>
<li>Type is justice</li>
<li>Still challenging<ul>
<li><a href="https://github.com/apollographql">Apollo</a></li>
<li><a href="https://github.com/facebook/relay">Relay</a></li>
<li><a href="https://github.com/jaydenseric/graphql-react">graphpl-react</a></li>
</ul>
</li>
</ul>
<h2 id="preact">Preact</h2><ul>
<li>Preact X is cute</li>
<li>Small is worth</li>
</ul>
<h2 id="firebase">Firebase</h2><ul>
<li>We don&#39;t want to manage passwords</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 08 Dec 2019 03:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2019/12/08/next-stack</link><guid>https://9renpoto.win/entry/2019/12/08/next-stack</guid>
    </item><item>
      <title><![CDATA[Add domain]]></title>
      <description><![CDATA[
# TL;DR

- Bought a domain [`9renpoto.dev`](/)
- I&#039;ll do my best
]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>Bought a domain <a href="/"><code>9renpoto.dev</code></a></li>
<li>I&#39;ll do my best</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 01 Dec 2019 03:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2019/12/01/domains</link><guid>https://9renpoto.win/entry/2019/12/01/domains</guid>
    </item><item>
      <title><![CDATA[GraphQL: type-graphql so cute 🤗]]></title>
      <description><![CDATA[
# TL;DR

- [type-graphql](https://github.com/MichalLytek/type-graphql) +
  [typeorm](https://github.com/typeorm/typeorm) でdefition
  管理は割とちょうど良さそう
- ]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li><a href="https://github.com/MichalLytek/type-graphql">type-graphql</a> +
<a href="https://github.com/typeorm/typeorm">typeorm</a> でdefition
管理は割とちょうど良さそう</li>
<li>schema管理とresponse interface
管理はいつも悩ましいがある程度統一的に宣言できる</li>
</ul>
<h2 id="entity-objecttype">Entity と <code>@ObjectType</code> を併用してかける</h2><ul>
<li><a href="https://github.com/9renpoto/frontend/pull/1115">https://github.com/9renpoto/frontend/pull/1115</a></li>
<li>型情報が近いものを記述する形になるが、宣言的に記述でき、かつどちらかだけ必要なものを書き分けられる</li>
<li>createdAt, updatedAtなど共通型を継承して管理できる？
<a href="https://github.com/9renpoto/frontend/pull/1127">https://github.com/9renpoto/frontend/pull/1127</a><ul>
<li>=&gt; <code>@Entity</code> に見えないとColumnsと評価できないため継承することは難しかった
<a href="https://github.com/9renpoto/frontend/pull/1156">https://github.com/9renpoto/frontend/pull/1156</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 03 Oct 2019 14:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2019/10/03/nest-type-graphql</link><guid>https://9renpoto.win/entry/2019/10/03/nest-type-graphql</guid>
    </item><item>
      <title><![CDATA[GraphQL: Schema first or Code first 🤔]]></title>
      <description><![CDATA[
# TL;DR

- GraphQLは万能ではない
- Code firstをもう少し素振りする

## Graph QL

- GraphQLのサーバー実装ができないか
  [NestJS](https://docs.nestjs.com/graphql/quick-start) を素振りしてい]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>GraphQLは万能ではない</li>
<li>Code firstをもう少し素振りする</li>
</ul>
<h2 id="graph-ql">Graph QL</h2><ul>
<li>GraphQLのサーバー実装ができないか
<a href="https://docs.nestjs.com/graphql/quick-start">NestJS</a> を素振りしている</li>
<li>Swagger等でDefinitionを管理する機会を数度経験したがコードとの乖離が苦しい</li>
<li>Code firstまで言わずともある程度型が一致してほしい</li>
<li>別にClient
のコードまで生成しなくても良い（むしろ品質が悪いぐらいなら使わない）</li>
<li>Interfaceは乖離しないようにしたい</li>
</ul>
<h2 id="must-to-have">Must to have</h2><ul>
<li>Frontend, Backend共通のものとして（片方から｜両方）生成できる</li>
<li>CIで乖離を検知できる</li>
</ul>
<h2 id="want-to-have">Want to have</h2><ul>
<li>実装が先行しない状態を許容できる（Schema first)</li>
<li>Generateフローが単方向</li>
<li><a href="https://github.com/apollographql">Apollo</a> とかState
管理まで面倒見る気みたいっすよ？</li>
</ul>
<h2 id="nest-graphql">Nest + GraphQL</h2><ul>
<li><strong>Schema first or Code First</strong> を選択して利用できる<ul>
<li>Schema firstでは実装を縛れない判断でCode First
<a href="https://typegraphql.ml/">type-graphql</a> で実装</li>
<li><strong>TypeORM のコードをしばれるコードが生成できないと辛い</strong> =&gt; (要検討）</li>
</ul>
</li>
<li>Service ClassをCIしてORMにつなげていける？</li>
<li><a href="https://github.com/nestjs/graphql">@next/graphql</a> は薄いwrapperで基本的には
GraphQLを意識すれば良い？</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Mon, 30 Sep 2019 09:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2019/09/30/nest-graphql</link><guid>https://9renpoto.win/entry/2019/09/30/nest-graphql</guid>
    </item><item>
      <title><![CDATA[Happy sunsama.com 🌤️]]></title>
      <description><![CDATA[
# TL;DR

- &lt;https://www.sunsama.com/&gt;
  githubの時間管理の弱さを補うためになかなか良い使い心地
- 様々な連携と柔軟性
- カレンダーとタスク管理というシンプルなアプローチの心地よさ

## Sunsama.com

- もともと[sunrise](h]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li><a href="https://www.sunsama.com/">https://www.sunsama.com/</a>
githubの時間管理の弱さを補うためになかなか良い使い心地</li>
<li>様々な連携と柔軟性</li>
<li>カレンダーとタスク管理というシンプルなアプローチの心地よさ</li>
</ul>
<h2 id="sunsamacom">Sunsama.com</h2><ul>
<li>もともと<a href="https://blog.sunrise.am/post/144196642739/its-almost-time-to-say-goodbye">sunrise</a>というカレンダーのファンであった<ul>
<li>Outlook
チームに合流したのはともかくサービスが停止したことに非常にがっかりしていた</li>
</ul>
</li>
<li><a href="https://9renpoto.netlify.com/2019/05/26/goodbye-waffle-io/">waffle.io が close してがっかりして</a>
タスク管理ツールはGithub Projectに絞っていこうと努力を始めていた</li>
<li>見積もりの甘さやタスクがさばけていないという問題には結果的にゆるく向き合う形であったが、自分のマネジメントとしては少し計画の可視化をしたいと思っていた<ul>
<li>=&gt; 連携の心地よさが今回の要求とマッチ</li>
</ul>
</li>
</ul>
<h2 id="github-project">Github &amp; Project</h2><ul>
<li>Github issueを仕事で使っているが、変わらずmilestoneによる時間管理は苦しい</li>
<li><strong>1 issue 6 時間以内</strong> というポリシーで基本的にタスク分割を目指している</li>
<li>目標実装時間は1/3の2時間として活動を目指す</li>
<li>タスクの差し込みやレビュー、マネジメントやバグなどの対応によるタスク集中期間が取りにくい環境であることもあり、タスクマネジメントや工数実績管理などは実質諦めていた</li>
<li><a href="https://github.com/git-time-metric/gtm">git-time-metric/gtm</a> を試して、
<a href="https://wakatime.com/@9renpoto">wakatime</a>
で大枠の作業時間を計測・可視化するようになった</li>
<li>全体として時間管理をしたければGithubは向いてない</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Wed, 14 Aug 2019 16:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2019/08/15/happy-sunsama</link><guid>https://9renpoto.win/entry/2019/08/15/happy-sunsama</guid>
    </item><item>
      <title><![CDATA[Handling Environment Variables with NGINX]]></title>
      <description><![CDATA[
# NGINX with docker

- 設定ファイルの中に一部環境変数を適応したい
- 環境変数を読み取るには `Lua` などで拡張することが必要
- Docker上に変更のための構造をできるだけ入れたくなかった =&gt; `envsubst`
  を使って置換する

## Dockerfil]]></description>
      <content:encoded><![CDATA[<h1 id="nginx-with-docker">NGINX with docker</h1><ul>
<li>設定ファイルの中に一部環境変数を適応したい</li>
<li>環境変数を読み取るには <code>Lua</code> などで拡張することが必要</li>
<li>Docker上に変更のための構造をできるだけ入れたくなかった =&gt; <code>envsubst</code>
を使って置換する</li>
</ul>
<h2 id="dockerfile">Dockerfile</h2><ul>
<li><code>alpine</code> を使っていると <code>bash</code> もなかったり <code>sed</code>
もなかったりでconfを置換する方法がない</li>
<li><code>envsubst</code> を使って入れ替えてしまうことが推奨されている？</li>
</ul>
<pre><code class="language-dockerfile">FROM nginx:1.17.1-alpine
COPY ./nginx.conf /etc/nginx/nginx.conf
COPY ./conf.d/default.conf /etc/nginx/template/nginx.tpl.default.conf
COPY ./bin/docker-endpoint.sh /bin/docker-endpoint.sh
ENTRYPOINT [&quot;bin/docker-endpoint.sh&quot;]
</code></pre>
<pre><code class="language-shell">#!/bin/ash
cat /etc/nginx/template/nginx.tpl.default.conf \
  | envsubst &#39;$SERVER_NAME&#39; \
  &gt; /etc/nginx/conf.d/default.conf

echo &quot;###############################&quot;
echo &quot;# SERVER_NAME=${SERVER_NAME}&quot;
echo &quot;###############################&quot;

/usr/sbin/nginx -g &#39;daemon off;&#39; -c /etc/nginx/nginx.conf
</code></pre>
<ul>
<li><a href="https://hub.docker.com/_/nginxz">https://hub.docker.com/_/nginxz</a></li>
<li><a href="https://mpon.hatenablog.com/entry/2018/02/07/200000">https://mpon.hatenablog.com/entry/2018/02/07/200000</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 06 Jul 2019 02:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2019/07/06/nginx-template</link><guid>https://9renpoto.win/entry/2019/07/06/nginx-template</guid>
    </item><item>
      <title><![CDATA[defined? function]]></title>
      <description><![CDATA[
- `NoMethodError` を回避するのに存在を確認すればいいと思ったけれど、その時は
  `defined?` を別で使う必要がある
- いろいろな書き方があるのは難しい

```ruby
# NoMethodError
if a.b.preset?
  a.b(c)
end
```

]]></description>
      <content:encoded><![CDATA[<ul>
<li><code>NoMethodError</code> を回避するのに存在を確認すればいいと思ったけれど、その時は
<code>defined?</code> を別で使う必要がある</li>
<li>いろいろな書き方があるのは難しい</li>
</ul>
<pre><code class="language-ruby"># NoMethodError
if a.b.preset?
  a.b(c)
end
</code></pre>
<pre><code class="language-ruby">defined?(bacon)
# nil
</code></pre>
<ul>
<li><a href="https://www.rubyguides.com/2018/10/defined-keyword/">https://www.rubyguides.com/2018/10/defined-keyword/</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 04 Jul 2019 02:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2019/07/04/ruby-defined</link><guid>https://9renpoto.win/entry/2019/07/04/ruby-defined</guid>
    </item><item>
      <title><![CDATA[Omit types]]></title>
      <description><![CDATA[
# TL;DR

- TypeScriptで　`Omit` がサポートされた
- UnionTypesから `Omit` する難易度が高い

## formik-material-ui

- &lt;https://github.com/stackworx/formik-mui/pull/82&gt;
  -]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>TypeScriptで　<code>Omit</code> がサポートされた</li>
<li>UnionTypesから <code>Omit</code> する難易度が高い</li>
</ul>
<h2 id="formik-material-ui">formik-material-ui</h2><ul>
<li><a href="https://github.com/stackworx/formik-mui/pull/82">https://github.com/stackworx/formik-mui/pull/82</a><ul>
<li>公式の <code>Omit</code> はUnionTypesでもサポートしてるっぽい？🤔</li>
</ul>
</li>
<li><a href="https://github.com/microsoft/TypeScript/issues/28791">https://github.com/microsoft/TypeScript/issues/28791</a><ul>
<li>もともと、UnionTypesからOmit
するためには全部入りみたいな状態にしてそいつを対象にPick, Exclude している？</li>
</ul>
</li>
<li><a href="https://github.com/sindresorhus/type-fest/blob/master/source/omit.d.ts#L17">https://github.com/sindresorhus/type-fest/blob/master/source/omit.d.ts#L17</a><ul>
<li>type-festはUnionTypesのことは考慮できていない？</li>
</ul>
</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 25 Jun 2019 16:18:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2019/06/26/union-type-omit</link><guid>https://9renpoto.win/entry/2019/06/26/union-type-omit</guid>
    </item><item>
      <title><![CDATA[Technical debt]]></title>
      <description><![CDATA[
# TL;DR

- people / money / time is limited
- i do not know now about the person who will be adopted in the future
- i cannot do everything at the sa]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>people / money / time is limited</li>
<li>i do not know now about the person who will be adopted in the future</li>
<li>i cannot do everything at the same time</li>
</ul>
<h2 id="no-one-can-take-responsibility">No one can take responsibility</h2><ul>
<li>size of the task</li>
<li>ability</li>
<li>schedule</li>
<li>trade off</li>
</ul>
<h2 id="finaly">Finaly</h2><ul>
<li>Concentration and selection</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Wed, 05 Jun 2019 14:30:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2019/06/05/migrate-new-architecture</link><guid>https://9renpoto.win/entry/2019/06/05/migrate-new-architecture</guid>
    </item><item>
      <title><![CDATA[Thank you, waffle.io]]></title>
      <description><![CDATA[
A little while ago, [the service](https://github.com/waffleio/waffle.io) I used
all the time closed. waffle.io was an essential tool for my study.

C]]></description>
      <content:encoded><![CDATA[<p>A little while ago, <a href="https://github.com/waffleio/waffle.io">the service</a> I used
all the time closed. waffle.io was an essential tool for my study.</p>
<p>Currently, we are trying to substitute alternatives using
<a href="https://docs.github.com/en/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards">github project</a>
and <a href="https://probot.github.io/apps/auto-assign/">auto-assign</a>, but we have not
reached the point of request.</p>
<p>Thank you for waffle.io team works.</p>
<ul>
<li><a href="https://help.waffle.io/waffle-shutdown/migration-to-github-projects/migrate-to-github-projects">https://help.waffle.io/waffle-shutdown/migration-to-github-projects/migrate-to-github-projects</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 26 May 2019 03:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2019/05/26/goodbye-waffle-io</link><guid>https://9renpoto.win/entry/2019/05/26/goodbye-waffle-io</guid>
    </item><item>
      <title><![CDATA[Phoenix framework再入門]]></title>
      <description><![CDATA[
# TL;DR

- dependabotが `mix.lock` に対応したため追いかけたいライブラリへ依存したい
- `phoenix` 一強時代と読んで追いかける

&lt;https://github.com/9renpoto/phx&gt;

## 前々から興味はあった

- 言語標準formatt]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>dependabotが <code>mix.lock</code> に対応したため追いかけたいライブラリへ依存したい</li>
<li><code>phoenix</code> 一強時代と読んで追いかける</li>
</ul>
<p><a href="https://github.com/9renpoto/phx">https://github.com/9renpoto/phx</a></p>
<h2 id="">前々から興味はあった</h2><ul>
<li>言語標準formatter最高</li>
<li>monorepoに近い感じで作れるっぽいのが作れる<ul>
<li><a href="https://elixir-lang.org/getting-started/mix-otp/dependencies-and-umbrella-projects.html#umbrella-projects">https://elixir-lang.org/getting-started/mix-otp/dependencies-and-umbrella-projects.html#umbrella-projects</a></li>
<li>感覚は <code>yarn workspace</code> に近い</li>
<li>マイクロサービス組むときに出せる手札へしたい</li>
</ul>
</li>
</ul>
<h2 id="links">Links</h2><ul>
<li>似たようなところまで頑張りたいシリーズ<ul>
<li><a href="https://github.com/9renpoto/ror">https://github.com/9renpoto/ror</a></li>
<li><a href="https://github.com/9renpoto/play">https://github.com/9renpoto/play</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 05 Jan 2019 03:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2019/01/05/first-phoenix</link><guid>https://9renpoto.win/entry/2019/01/05/first-phoenix</guid>
    </item><item>
      <title><![CDATA[重い腰を上げてRailsを見る]]></title>
      <description><![CDATA[
# TL;DR

- いろんな会社に話を聞きに行ったが、まだまだ世界はRails
- そうだRailsを学ぼう
- とりあえず数時間だけ作った、 getting startedを進めていきたい

&lt;https://github.com/9renpoto/ror&gt;

## Ruby を手に入れる

]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>いろんな会社に話を聞きに行ったが、まだまだ世界はRails</li>
<li>そうだRailsを学ぼう</li>
<li>とりあえず数時間だけ作った、 getting startedを進めていきたい</li>
</ul>
<p><a href="https://github.com/9renpoto/ror">https://github.com/9renpoto/ror</a></p>
<h2 id="ruby">Ruby を手に入れる</h2><ul>
<li><code>brew install ruby</code> で雑に使っていたわけだが流石にバージョンを固定する<ul>
<li>過去はrbenvを使っていたけれど
<a href="https://github.com/daenney/rbenv">using asdf instend</a>
らしいので別で検討する<ul>
<li><a href="https://github.com/oh-my-fish/plugin-rbenv">omf/plugin-rbenv</a>
でも良かったけれど更新されてない</li>
</ul>
</li>
<li>とりあえずメンテされてそうな
<a href="https://github.com/rstacruz/fish-asdf">rstacruz/fish-asdf</a> を入れる</li>
<li><code>asdf</code> そのものは <code>brew</code> で入れて、かつ <code>/usr/local/bin</code>
を使っていないためイマイチ動きが合わない</li>
<li><a href="https://github.com/asdf-vm/asdf#setup"><code>asdf</code> 公式</a> の方法でactivate
する（<a href="https://github.com/9renpoto/dotfiles/commit/ac00ecbeda4c16a3e741ab14158aad682241c1ce#diff-66758e6f92b7dd7008c34229fe0c9fe1R14">refs</a>）</li>
</ul>
</li>
</ul>
<h2 id="rails-new">Rails new</h2><ul>
<li>Rails projectを作るためにRailsを入れる必要がある</li>
<li>とりあえず <a href="https://docs.docker.com/compose/rails/">Docker compose</a>
公式の方法でプロジェクトを初期化する</li>
</ul>
<h2 id="rubocop">Rubocop を入れる</h2><ul>
<li>どんなものなのか、とりあえず
<a href="https://github.com/toshimaru/rubocop-rails_config">rails のものらしい</a>
設定を採用する</li>
<li>一部formatしてくれるし便利な様子</li>
</ul>
<h2 id="">現状</h2><ul>
<li>lockfileがあるけど
<a href="https://travis-ci.com/9renpoto/rb/builds/96012247">CI 上だけ Fail</a>
する。つらい</li>
<li>rspecは標準ではscaffordされないのか、と思った</li>
<li>まだcoffee-scriptっぽいものを持ってる</li>
<li>e2eテスト系のフレームワークにも依存して、どっしりしている</li>
</ul>
<h2 id="">とりあえず目指す着地</h2><ul>
<li>DB依存してテスト書く</li>
<li>redis依存してテスト書く</li>
<li>coverage report出す</li>
<li>噂の <code>webpacker</code> とかに依存する</li>
<li><a href="https://github.com/airbnb/hypernova-ruby">hypernova-ruby</a> とかに依存する</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 01 Jan 2019 05:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2019/01/01/first-rails</link><guid>https://9renpoto.win/entry/2019/01/01/first-rails</guid>
    </item><item>
      <title><![CDATA[2018年 仕事終わり]]></title>
      <description><![CDATA[
# TL;DR

[![image](/_rjyhayX.jpg)](https://x.com/9renpoto/status/1075281116548849664)

- [findy-code](https://findy-code.io/)で25位だったそうです
- 偏差値は高くないです]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><p><a href="https://x.com/9renpoto/status/1075281116548849664"><img src="/_rjyhayX.jpg" alt="image"></a></p>
<ul>
<li><a href="https://findy-code.io/">findy-code</a>で25位だったそうです</li>
<li>偏差値は高くないです</li>
</ul>
<h2 id="">芝生を温める</h2><p>ここ2,3年、勉強するために芝生を温めている事が多いです。
芝生が温まっている要因は、大きく3つです。</p>
<ol>
<li>コードを書く仕事を行う。積極的にコード化する（private)</li>
<li>ライブラリに依存する。自動でライブラリを更新する（public)</li>
<li>テストを書く（public)</li>
</ol>
<p>この3つにこだわってコードを書いています。 コミット数だけで数えると、private /
publicの数は同数ほどです。</p>
<p>個人で良いライブラリを書いたり、公開や継続的にメンテナンスをしているものは多くないため、偏差値は低いです。</p>
<h3 id="">ライブラリ、アプリケーション未満のものを書く</h3><p>正直、publicなコードは中身ないものが多すぎます。
主な目的は、ライブラリに依存し、テストを書くことです。</p>
<p>この活動のメリットとしては、下記のようなものがあるため続けています。</p>
<ol>
<li>テスト基盤を書くということは、基盤の知識が必要</li>
<li>コードの品質が気になるプロジェクトは、テスト不足が多い</li>
<li>一度作ってしまえば、ライブラリの更新で壊れる（再現できる）</li>
</ol>
<p>ライブラリの開発などと違うため、どんどん上げてどんどんビルドしています。
ときには、1repo multi test frameworkとかAltJS
の混在環境構築などの黒魔術とぶつかったりもします。</p>
<h3 id="">芝生を支える術</h3><p>上記のような活動には、外部ツールが発展してきたことが大きな継続できている要因になっています。
今では下記のようなサービスの利用は必須です。</p>
<ol>
<li><a href="https://github.com/marketplace/category/continuous-integration">CI</a><ol>
<li>仕事でも依存しているし素振りしておくと便利</li>
<li>travis, ciecleci, werckerciなどを使うことが多い</li>
</ol>
</li>
<li><a href="https://github.com/marketplace/category/dependency-management">Dependency management</a><ol>
<li>JS系はrenovate</li>
<li>その他はdependabotなどが多い</li>
<li>対応言語、automergeがあるものなど便利すぎる</li>
</ol>
</li>
<li><a href="https://github.com/marketplace/category/project-management">Project management</a><ol>
<li>waffle.ioを好んで使ってます。ラベル連動便利</li>
<li>PRを見逃さない</li>
</ol>
</li>
</ol>
<h2 id="">来年</h2><ul>
<li><a href="/entry/2018/10/31/goodbye/">無職でした</a>が、年明けより新しいお仕事をいただくことなりました<ul>
<li>たくさんのお声がけを頂きました。誠にありがとうございます</li>
<li>今回は前回よりもたくさんの方や会社のお話を聞くことができました</li>
</ul>
</li>
<li>とりあえず、まだフリーランスを継続することになりましたので、確定申告がんばります</li>
<li>public
な環境で運用されるプロダクトを作りたい。偏差値を上げたい。仕事がなくなる</li>
</ul>
<h2 id="">過去</h2><ul>
<li><a href="/entry/2017/12/31/2017-end">2017 年終わり</a></li>
<li><a href="/entry/2017/01/01/2016">2016 年終わり</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Mon, 31 Dec 2018 05:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/12/31/2018-end</link><guid>https://9renpoto.win/entry/2018/12/31/2018-end</guid>
    </item><item>
      <title><![CDATA[評価]]></title>
      <description><![CDATA[
# TL;DR

- 評価をするのは難しい

## そもそも評価とは

- 仕事であれば、最終的に単価を決めることであるとする
- 単価は、その人（や物）の市場価値
  - 需要と供給によって変動する
  - そうであってほしい
- 定量的なものと定性的なものがある
- 多くは主観も含まれる

#]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>評価をするのは難しい</li>
</ul>
<h2 id="">そもそも評価とは</h2><ul>
<li>仕事であれば、最終的に単価を決めることであるとする</li>
<li>単価は、その人（や物）の市場価値<ul>
<li>需要と供給によって変動する</li>
<li>そうであってほしい</li>
</ul>
</li>
<li>定量的なものと定性的なものがある</li>
<li>多くは主観も含まれる</li>
</ul>
<h2 id="">評価の誤差と対策</h2><ul>
<li><a href="https://www.kayac.com/vision/dice">サイコロを振る</a></li>
<li><a href="https://gist.github.com/voluntas/4f90a626adae624d8c23">評価制度なし</a></li>
<li>他に特徴的なものがあれば知りたい</li>
</ul>
<h2 id="">エンジニアの評価</h2><ul>
<li>一列に並べられない場合も多い<ul>
<li>これはこの人、あれはあの人</li>
<li>お互いに尊敬できているという関係</li>
</ul>
</li>
<li>強み弱みとか、何をやったことがあるかぐらいは言える場合が多い</li>
<li>職種に限らず、会社の資産は有限</li>
</ul>
<h2 id="">だから何</h2><ul>
<li><a href="https://github.com/9renpoto/ranking">評価システム</a>
を勉強がてら書いているが進捗が芳しくない</li>
<li>年末までに動いてなくてもホストしたい</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Mon, 17 Dec 2018 11:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/12/17/eval</link><guid>https://9renpoto.win/entry/2018/12/17/eval</guid>
    </item><item>
      <title><![CDATA[next.js で `process.env` 以下の環境変数を参照する]]></title>
      <description><![CDATA[
# TL;DR

- `next/config` をとりあえず使う

## `webpack.DefinePlugin` を使う

- refs: &lt;https://github.com/vercel/next.js/issues/3605&gt;
- なれてるし使いたい。わかる
- イマイチ推奨されて]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li><code>next/config</code> をとりあえず使う</li>
</ul>
<h2 id="webpackdefineplugin"><code>webpack.DefinePlugin</code> を使う</h2><ul>
<li>refs: <a href="https://github.com/vercel/next.js/issues/3605">https://github.com/vercel/next.js/issues/3605</a></li>
<li>なれてるし使いたい。わかる</li>
<li>イマイチ推奨されてないようで、
<a href="https://github.com/vercel/next.js/issues/3605#issuecomment-359512586">複数のサンプルが紹介されている</a></li>
</ul>
<h2 id="babel-plugin-transform-define"><code>babel-plugin-transform-define</code> を使う</h2><ul>
<li>refs:
<a href="https://github.com/vercel/next.js/tree/deprecated-main/examples/with-universal-configuration-build-time">https://github.com/vercel/next.js/tree/deprecated-main/examples/with-universal-configuration-build-time</a></li>
<li>babel7に対応してない（2018/12
現在）。<a href="https://github.com/FormidableLabs/babel-plugin-transform-define/pull/49">PR はあるけれど放置されている</a></li>
</ul>
<h2 id="dotenv-webpack"><code>dotenv-webpack</code> を使う</h2><ul>
<li>refs: <a href="https://github.com/zeit/next.js/tree/canary/examples/with-dotenv">https://github.com/zeit/next.js/tree/canary/examples/with-dotenv</a></li>
<li>dockerの下りで <code>.envrc</code> ではなく <code>.env</code> を利用するプロダクトが増えた</li>
<li>よしなに展開してくれる</li>
</ul>
<h2 id="">標準で用意されている仕組みを使う</h2><ul>
<li>refs<ul>
<li><a href="https://spectrum.chat/next-js/general/runtime-configs-with-process-env~55b503c2-07f4-4da3-9ba4-287733b3d622">https://spectrum.chat/next-js/general/runtime-configs-with-process-env~55b503c2-07f4-4da3-9ba4-287733b3d622</a></li>
<li><a href="https://github.com/vercel/next.js#exposing-configuration-to-the-server--client-side">https://github.com/vercel/next.js#exposing-configuration-to-the-server--client-side</a></li>
</ul>
</li>
<li>clientでは配信したくない環境変数とか確かにある</li>
<li>面倒だけれど別々に宣言的管理する</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 13 Dec 2018 09:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/12/13/nextjs-enviroments</link><guid>https://9renpoto.win/entry/2018/12/13/nextjs-enviroments</guid>
    </item><item>
      <title><![CDATA[SOTO ST260 ガスランタン]]></title>
      <description><![CDATA[
# TL;DR

- [ガスランタン](https://www.amazon.co.jp/gp/product/B00279LZ0G/) には
  **マントル** という消耗品が必要
- ノーブランドから存在するがサイズに非常に注意する

## ST260

- CB缶の使い方の1つとして雰囲気]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li><a href="https://www.amazon.co.jp/gp/product/B00279LZ0G/">ガスランタン</a> には
<strong>マントル</strong> という消耗品が必要</li>
<li>ノーブランドから存在するがサイズに非常に注意する</li>
</ul>
<h2 id="st260">ST260</h2><ul>
<li>CB缶の使い方の1つとして雰囲気のあるガスランタンを買ってみようと思い立った</li>
<li>買った際に付属でマントルがついてきたので、1度は使えた</li>
<li>次も使いたいけど、そもそもマントルなんてどこで売ってるんや。..</li>
</ul>
<h2 id="amazon">Amazon</h2><ul>
<li>アウトドア用品を売っているスペースに純正品などあった</li>
<li>消耗品だし手に入るだろうとアマゾンで
<a href="https://www.amazon.co.jp/gp/product/B01DG1VLSY/">ノーブランド品</a> を購入<ul>
<li>多分だけどこれは少し大きめであってない。..</li>
</ul>
</li>
</ul>
<h2 id="">ランタンは良い。きちんと調べよう</h2><ul>
<li>灯りは趣がある</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Wed, 12 Dec 2018 14:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/12/12/soto-st-260</link><guid>https://9renpoto.win/entry/2018/12/12/soto-st-260</guid>
    </item><item>
      <title><![CDATA[nodefest 2018 参加メモ]]></title>
      <description><![CDATA[
# memo

- &lt;https://nodefest.jp/2018/&gt;

## Offline-First Collaborative Data Structures

- Collaborative P2P
- &lt;https://nodefest.jp/2018/schedule.html#]]></description>
      <content:encoded><![CDATA[<h1 id="memo">memo</h1><ul>
<li><a href="https://nodefest.jp/2018/">https://nodefest.jp/2018/</a></li>
</ul>
<h2 id="offline-first-collaborative-data-structures">Offline-First Collaborative Data Structures</h2><ul>
<li>Collaborative P2P</li>
<li><a href="https://nodefest.jp/2018/schedule.html#conference-1-9">https://nodefest.jp/2018/schedule.html#conference-1-9</a></li>
<li><a href="https://github.com/mafintosh/noise-network">https://github.com/mafintosh/noise-network</a></li>
<li><a href="https://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E6%9C%A8">https://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E6%9C%A8</a></li>
<li><a href="https://keens.github.io/slide/HAMT/">https://keens.github.io/slide/HAMT/</a></li>
<li><a href="https://github.com/mafintosh/hypertrie">https://github.com/mafintosh/hypertrie</a></li>
<li><a href="https://github.com/mafintosh/ims">https://github.com/mafintosh/ims</a></li>
<li><a href="https://gaiax-blockchain.com/merkle-tree">https://gaiax-blockchain.com/merkle-tree</a></li>
</ul>
<h2 id="nodejs-the-road-to-workers"><code>Node.js</code>: The Road to Workers</h2><ul>
<li><a href="https://nodefest.jp/2018/schedule.html#conference-1-4">https://nodefest.jp/2018/schedule.html#conference-1-4</a></li>
<li>slide: <a href="https://addaleax.net/workers-nodefest/#1">https://addaleax.net/workers-nodefest/#1</a></li>
<li><a href="https://github.com/audreyt/node-webworker-threads">https://github.com/audreyt/node-webworker-threads</a></li>
<li><a href="https://twitter.com/yosuke_furukawa/status/1065793206204325888">https://twitter.com/yosuke_furukawa/status/1065793206204325888</a></li>
<li><a href="https://twitter.com/yosuke_furukawa/status/1065793690524823552">https://twitter.com/yosuke_furukawa/status/1065793690524823552</a></li>
<li><a href="https://twitter.com/yosuke_furukawa/status/1065795739521966080">https://twitter.com/yosuke_furukawa/status/1065795739521966080</a></li>
<li><a href="https://twitter.com/mizchi/status/1065796650495500288">https://twitter.com/mizchi/status/1065796650495500288</a></li>
<li><a href="https://twitter.com/yosuke_furukawa/status/1065797831976345600">https://twitter.com/yosuke_furukawa/status/1065797831976345600</a></li>
<li><a href="https://github.com/nodejs/worker/issues/6">https://github.com/nodejs/worker/issues/6</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_Locks_API">https://developer.mozilla.org/en-US/docs/Web/API/Web_Locks_API</a></li>
<li><a href="https://github.com/Microsoft/napajs">https://github.com/Microsoft/napajs</a><ul>
<li>shared JS object</li>
</ul>
</li>
<li><a href="https://twitter.com/yosuke_furukawa/status/1065799544351285249">https://twitter.com/yosuke_furukawa/status/1065799544351285249</a></li>
</ul>
<h2 id="diagnose-your-nodejs-app">Diagnose your Node.js app</h2><ul>
<li><a href="https://nodefest.jp/2018/schedule.html#conference-2-3">https://nodefest.jp/2018/schedule.html#conference-2-3</a></li>
<li><a href="https://darai0512.github.io/nodefest2018/index.html#/">https://darai0512.github.io/nodefest2018/index.html#/</a></li>
</ul>
<h2 id="state-of-seo-for-spa">State of SEO for SPA</h2><ul>
<li><a href="https://nodefest.jp/2018/schedule.html#conference-2-4">https://nodefest.jp/2018/schedule.html#conference-2-4</a></li>
<li><a href="https://twitter.com/sekikazu01/status/1065833675688894464">https://twitter.com/sekikazu01/status/1065833675688894464</a></li>
<li><a href="https://twitter.com/sekikazu01/status/1065825419213991937">https://twitter.com/sekikazu01/status/1065825419213991937</a></li>
</ul>
<h2 id="react">React におけるパフォーマンスチューニング</h2><ul>
<li><a href="https://nodefest.jp/2018/schedule.html#conference-2-5">https://nodefest.jp/2018/schedule.html#conference-2-5</a></li>
<li><a href="https://recruit-tech.co.jp/blog/2018/09/19/react_spa_performance_tuning/">https://recruit-tech.co.jp/blog/2018/09/19/react_spa_performance_tuning/</a></li>
</ul>
<h2 id="web-native-capacitor-web">Web アプリを Native アプリにする Capacitor が広げる Web の可能性</h2><ul>
<li><a href="https://nodefest.jp/2018/schedule.html#conference-2-6">https://nodefest.jp/2018/schedule.html#conference-2-6</a></li>
<li><a href="https://github.com/ionic-team/capacitor">https://github.com/ionic-team/capacitor</a></li>
</ul>
<h2 id="graphql-for">実践 GraphQL for クライアント側</h2><ul>
<li><a href="https://nodefest.jp/2018/schedule.html#conference-2-7">https://nodefest.jp/2018/schedule.html#conference-2-7</a></li>
<li><a href="https://speakerdeck.com/petitviolet/real-world-graphql-on-scala">https://speakerdeck.com/petitviolet/real-world-graphql-on-scala</a></li>
<li><a href="https://github.com/petitviolet/graphql_on_scala">https://github.com/petitviolet/graphql_on_scala</a></li>
</ul>
<h2 id="service-worker-wiki">Service Worker を用いたキャッシング戦略 〜Wiki アプリケーションを例に〜</h2><ul>
<li><a href="https://nodefest.jp/2018/schedule.html#conference-2-8">https://nodefest.jp/2018/schedule.html#conference-2-8</a></li>
<li><a href="https://scrapbox.io/daiiz/ServiceWorker%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%B3%E3%82%B0%E6%88%A6%E7%95%A5_~Wiki%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E4%BE%8B%E3%81%AB~">https://scrapbox.io/daiiz/ServiceWorker%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%B3%E3%82%B0%E6%88%A6%E7%95%A5_~Wiki%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E4%BE%8B%E3%81%AB~</a></li>
<li><a href="https://caniuse.com/#search=network">https://caniuse.com/#search=network</a></li>
</ul>
<h2 id="vuejsnuxtjs-pwa">Vue.js/Nuxt.js で実現できた PWA のリアルタイム動画ラップ・バトル・アプリ</h2><ul>
<li><a href="https://nodefest.jp/2018/schedule.html#conference-2-10">https://nodefest.jp/2018/schedule.html#conference-2-10</a></li>
<li><a href="https://riotz.works/slides/?2018-nodefest">https://riotz.works/slides/?2018-nodefest</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Fri, 23 Nov 2018 00:51:54 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/11/23/nodefest</link><guid>https://9renpoto.win/entry/2018/11/23/nodefest</guid>
    </item><item>
      <title><![CDATA[道志の森キャンプ場]]></title>
      <description><![CDATA[
[![doshi-no-mori](https://scontent-nrt1-1.cdninstagram.com/vp/20648216713fabf56cd4f53f6fff440b/5C92D93D/t51.2885-15/e35/44480609_290195985161743_3922]]></description>
      <content:encoded><![CDATA[<p><a href="https://www.instagram.com/p/BqREek9jrGJ/"><img src="https://scontent-nrt1-1.cdninstagram.com/vp/20648216713fabf56cd4f53f6fff440b/5C92D93D/t51.2885-15/e35/44480609_290195985161743_3922525939264366466_n.jpg" alt="doshi-no-mori"></a></p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 17 Nov 2018 01:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/11/17/doshi-no-mori-campsite</link><guid>https://9renpoto.win/entry/2018/11/17/doshi-no-mori-campsite</guid>
    </item><item>
      <title><![CDATA[退職]]></title>
      <description><![CDATA[
# TL;DR

- 退職いたしました
- 現在求人募集中です

![img](/toa.png)

## Self

- TypeScript / Reactちょっとできる
- Perl / Python / Scalaちょっとできる

## 今後

とりあえず、前回も含めお声がけ頂いている会社]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>退職いたしました</li>
<li>現在求人募集中です</li>
</ul>
<p><img src="/toa.png" alt="img"></p>
<h2 id="self">Self</h2><ul>
<li>TypeScript / Reactちょっとできる</li>
<li>Perl / Python / Scalaちょっとできる</li>
</ul>
<h2 id="">今後</h2><p>とりあえず、前回も含めお声がけ頂いている会社の方にいくつかお話を伺えたらと思っております。宜しくおねがいします。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 30 Oct 2018 15:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/10/31/goodbye</link><guid>https://9renpoto.win/entry/2018/10/31/goodbye</guid>
    </item><item>
      <title><![CDATA[浩庵キャンプ場]]></title>
      <description><![CDATA[
[![koan](https://scontent-nrt1-1.cdninstagram.com/vp/2075de9968fa4c20ae7a6721b020654a/5CA51F3F/t51.2885-15/e35/43913455_344259792803506_6916972553983]]></description>
      <content:encoded><![CDATA[<p><a href="https://www.instagram.com/p/BpX07yDDSFq/"><img src="https://scontent-nrt1-1.cdninstagram.com/vp/2075de9968fa4c20ae7a6721b020654a/5CA51F3F/t51.2885-15/e35/43913455_344259792803506_6916972553983649730_n.jpg" alt="koan"></a></p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Fri, 26 Oct 2018 01:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/10/26/koan-campsite</link><guid>https://9renpoto.win/entry/2018/10/26/koan-campsite</guid>
    </item><item>
      <title><![CDATA[一流]]></title>
      <description><![CDATA[
# class

- 人に言われるまでやらないのは三流
- 自分で課題を定義できない人は二流
- 自分にできない何かを持っている人は一流

(実行する|実行しない）だと実行するしかない。 実行しない人はそっとしておく。
]]></description>
      <content:encoded><![CDATA[<h1 id="class">class</h1><ul>
<li>人に言われるまでやらないのは三流</li>
<li>自分で課題を定義できない人は二流</li>
<li>自分にできない何かを持っている人は一流</li>
</ul>
<p>(実行する|実行しない）だと実行するしかない。 実行しない人はそっとしておく。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Fri, 28 Sep 2018 16:15:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/09/29/first-class</link><guid>https://9renpoto.win/entry/2018/09/29/first-class</guid>
    </item><item>
      <title><![CDATA[近況のアウトプット]]></title>
      <description><![CDATA[
# TL;DR

- 直近アウトプットの無さに危機感がすごい
- せめて考えていることを記録する癖をつけたい
- できない仕事は投げ捨てたい

集中と選択が求められる。現実を受け止める。やらないければならないことはやる。
]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>直近アウトプットの無さに危機感がすごい</li>
<li>せめて考えていることを記録する癖をつけたい</li>
<li>できない仕事は投げ捨てたい</li>
</ul>
<p>集中と選択が求められる。現実を受け止める。やらないければならないことはやる。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 27 Sep 2018 16:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/09/28/output</link><guid>https://9renpoto.win/entry/2018/09/28/output</guid>
    </item><item>
      <title><![CDATA[仕事と余裕]]></title>
      <description><![CDATA[
最近慣れてない仕事をしていることもあり、毎日残念なコードを量産している。
現状の課題を打破しつつ、負債を小さくするためには正直あと2
倍ぐらい能力が必要である。

能力を上げるためには時間と余裕が必要である。
仕様を成約も抑えながら、コードの負債を返しつつコードを前に進めるのは非常に体力が求められ]]></description>
      <content:encoded><![CDATA[<p>最近慣れてない仕事をしていることもあり、毎日残念なコードを量産している。
現状の課題を打破しつつ、負債を小さくするためには正直あと2
倍ぐらい能力が必要である。</p>
<p>能力を上げるためには時間と余裕が必要である。
仕様を成約も抑えながら、コードの負債を返しつつコードを前に進めるのは非常に体力が求められる。</p>
<p>とりあえず飲む酒が旨くない。今後どうするか考えなきゃならん。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 25 Sep 2018 16:15:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/09/26/works</link><guid>https://9renpoto.win/entry/2018/09/26/works</guid>
    </item><item>
      <title><![CDATA[滝沢牧場キャンプ場]]></title>
      <description><![CDATA[
# TL;DR

- 夏は虫凄い
- 忘れ物致命的
- クーラーボックスの重要性

## 夏は虫凄い

蚊取り線香は個人用。他人に期待しても効果ない。

## 忘れ物は致命的

「テント（の一部部品）忘れた」という人がついにでてしまいましたが正直助けられなかった、難易度の高い問題。

今回は本人が]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>夏は虫凄い</li>
<li>忘れ物致命的</li>
<li>クーラーボックスの重要性</li>
</ul>
<h2 id="">夏は虫凄い</h2><p>蚊取り線香は個人用。他人に期待しても効果ない。</p>
<h2 id="">忘れ物は致命的</h2><p>「テント（の一部部品）忘れた」という人がついにでてしまいましたが正直助けられなかった、難易度の高い問題。</p>
<p>今回は本人が持ち合わせていたタープで難を乗り切っていた。マネできない。</p>
<h2 id="">クーラーボックス</h2><p>投資を考える。旨い酒を飲むには必須。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Mon, 02 Jul 2018 03:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/07/02/takizawa-farm-camping-ground</link><guid>https://9renpoto.win/entry/2018/07/02/takizawa-farm-camping-ground</guid>
    </item><item>
      <title><![CDATA[大洗キャンプ場]]></title>
      <description><![CDATA[
# TL;DR

- 積載は大事
- 打ち合わせは大事

## Keep

- 人脈を駆使してでもヘルプを求める
- 使い捨てをうまく駆使する
  - 発泡スチロールクーラーボックス200円便利

## Progrem

- コットのフレームがおそらく移動中にロストした
  - そもそもなくなった]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>積載は大事</li>
<li>打ち合わせは大事</li>
</ul>
<h2 id="keep">Keep</h2><ul>
<li>人脈を駆使してでもヘルプを求める</li>
<li>使い捨てをうまく駆使する<ul>
<li>発泡スチロールクーラーボックス200円便利</li>
</ul>
</li>
</ul>
<h2 id="progrem">Progrem</h2><ul>
<li>コットのフレームがおそらく移動中にロストした<ul>
<li>そもそもなくなったことに気づけなかった衝撃が強い</li>
</ul>
</li>
<li>クッカーはほんとに使う場合を除いて不要</li>
<li>B6サイズのグリルは一人用</li>
</ul>
<h2 id="try">Try</h2><ul>
<li>コットのリニューアル</li>
<li>夏用シュラフを手に入れる</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 03 Jun 2018 11:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/06/03/oarai-campsite</link><guid>https://9renpoto.win/entry/2018/06/03/oarai-campsite</guid>
    </item><item>
      <title><![CDATA[issueとタスク]]></title>
      <description><![CDATA[
# TODO ツールアンチパターン

- 着手する見込みのない妄想をissueにすると永遠に埋もれる
- 今は着手しないけど本当に必要なことは何年先でも覚えてる
- 3か月以内にやらないことは可視化しない
]]></description>
      <content:encoded><![CDATA[<h1 id="todo">TODO ツールアンチパターン</h1><ul>
<li>着手する見込みのない妄想をissueにすると永遠に埋もれる</li>
<li>今は着手しないけど本当に必要なことは何年先でも覚えてる</li>
<li>3か月以内にやらないことは可視化しない</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Wed, 23 May 2018 07:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/05/23/issue-and-task</link><guid>https://9renpoto.win/entry/2018/05/23/issue-and-task</guid>
    </item><item>
      <title><![CDATA[手元のiPhoneご臨終感]]></title>
      <description><![CDATA[
- モバイルゲームをしなくなり意味もなくダラダラ続けてきたiPhone6
  が物理的に調子が悪い
- 新しい機種が出るのまで持たなそうなので考える
]]></description>
      <content:encoded><![CDATA[<ul>
<li>モバイルゲームをしなくなり意味もなくダラダラ続けてきたiPhone6
が物理的に調子が悪い</li>
<li>新しい機種が出るのまで持たなそうなので考える</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 22 May 2018 01:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/05/22/iphone6-status</link><guid>https://9renpoto.win/entry/2018/05/22/iphone6-status</guid>
    </item><item>
      <title><![CDATA[play入門]]></title>
      <description><![CDATA[
# 環境

- &lt;https://github.com/9renpoto/play&gt;

- とりあえずgenerateして何がでてくるか
- CIでテストを1つだけ動かす
]]></description>
      <content:encoded><![CDATA[<h1 id="">環境</h1><ul>
<li><p><a href="https://github.com/9renpoto/play">https://github.com/9renpoto/play</a></p>
</li>
<li><p>とりあえずgenerateして何がでてくるか</p>
</li>
<li><p>CIでテストを1つだけ動かす</p>
</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Wed, 16 May 2018 09:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/05/16/first-play-framework</link><guid>https://9renpoto.win/entry/2018/05/16/first-play-framework</guid>
    </item><item>
      <title><![CDATA[退職]]></title>
      <description><![CDATA[
&lt;!-- textlint-disable --&gt;

前職の会社から入社して、早 4
年が経過しました。素晴らしく優秀なメンバーに囲まれた 4
年半で学んだことは、私の人生にとってかけがえのない財産となりました。

今まで働いていた会社では、技術職としてミッションをこなしてきました。また、技術的な]]></description>
      <content:encoded><![CDATA[<!-- textlint-disable --><p>前職の会社から入社して、早 4
年が経過しました。素晴らしく優秀なメンバーに囲まれた 4
年半で学んだことは、私の人生にとってかけがえのない財産となりました。</p>
<p>今まで働いていた会社では、技術職としてミッションをこなしてきました。また、技術的な挑戦に対して高い評価がもらえるため、失敗を恐れずにチャレンジできる素晴らしい環境でした。</p>
<p>ですが、今の環境よりも新しい環境に移ってみたくなってしまいました。</p>
<p>他社で働いている友人や、世間一般的な額と比較した際に、現在の職場での給与が低いことが退職を考える原因の
1 つでもありました。</p>
<p>労働時間にも左右されるため一概には言えませんが、自分のスキルセットを考えた際に、「今の報酬はあまりに低いのではないか？」と考えたことが転職活動を視野に入れ始めた発端だったようにも思います。</p>
<p>しかし、現在の仕事内容に不満はなく、待遇が悪いわけでもないため、特にこれといった転職理由はありません。強いて挙げるとすれば、チャレンジしてみたい新しいことが見つかったという点でしょうか。</p>
<p>まだ転職先は決まっていませんが、転職活動を行いながら自分を見つめ直す期間として、ある程度ゆっくりとできてちょうど良いかなと考えています。たっぷり時間もあるので、海外旅行をして自分の視野を広げるのも良いかもしれません。新たな価値観に触れることでまた、新たな職場での挑戦や取り組みは、書ける範囲でこのブログに書いていけたらなと思います。</p>
<p>思い返すと、優秀な同僚にサポートしてもらったり、励ましてもらう機会が多く、仕事でのミスやアクシデントをフォローしてもらたことは一度や二度ではありませんでした。</p>
<p>また、公私を問わず仲良くしてくれた後輩とは、これから仕事が変わっても疎遠にならずに交流を深めたいなと思えているので、悪いことばかりではなかったと思います。</p>
<p>転職先の会社では、新しい仲間たちとともにアサインされたミッションに、できるだけ早くコミットして貢献できるよう頑張っていきたいと思います。</p>
<!-- textlint-enable --><ul>
<li><a href="http://%E4%BB%95%E4%BA%8B.%E3%82%84%E3%82%81%E3%82%88%E3%81%86.%E3%81%BF%E3%82%93%E3%81%AA/">generated by 仕事.やめよう.みんな</a></li>
</ul>
<p>退社日は5/31になります。 6/1
より働くことのできる環境などありましたらご連絡いただけますと出来る範囲で応答させていただきます。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Mon, 23 Apr 2018 11:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/04/23/works</link><guid>https://9renpoto.win/entry/2018/04/23/works</guid>
    </item><item>
      <title><![CDATA[next.js がやっとTypeScriptを使えるように]]></title>
      <description><![CDATA[
# TL;DR

```shell
npm i  @zeit/next-typescript
```

## 感想

- TypeScriptを使うために一度手前でtscしたりしてましたが、何時のまにか念願のサポートが入った
- 実際webpackのオプションが設定できるのだからできて当然だと思っ]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><pre><code class="language-shell">npm i  @zeit/next-typescript
</code></pre>
<h2 id="">感想</h2><ul>
<li>TypeScriptを使うために一度手前でtscしたりしてましたが、何時のまにか念願のサポートが入った</li>
<li>実際webpackのオプションが設定できるのだからできて当然だと思っていたが公式から来ると嬉しい</li>
</ul>
<h2 id="refs">Refs</h2><ul>
<li><a href="https://github.com/vercel/next-plugins/tree/master/packages/next-typescript">https://github.com/vercel/next-plugins/tree/master/packages/next-typescript</a></li>
<li><a href="https://github.com/9renpoto/archive/pull/140">https://github.com/9renpoto/archive/pull/140</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Wed, 18 Apr 2018 14:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/04/18/next-typescript</link><guid>https://9renpoto.win/entry/2018/04/18/next-typescript</guid>
    </item><item>
      <title><![CDATA[エンジニアリングと仕事]]></title>
      <description><![CDATA[
1. 自分にとってエンジニアリングは手段であって目的ではない
1. 目的は金を稼ぐこと（様々な前提はあれど）

いけてるプログラムを書いても、どれだけパフォーマンスが出ても、価値が無いものには意味はない。

ビジネスとしてのプログラムが書きたいし、プロダクトを作りたい。
]]></description>
      <content:encoded><![CDATA[<ol>
<li>自分にとってエンジニアリングは手段であって目的ではない</li>
<li>目的は金を稼ぐこと（様々な前提はあれど）</li>
</ol>
<p>いけてるプログラムを書いても、どれだけパフォーマンスが出ても、価値が無いものには意味はない。</p>
<p>ビジネスとしてのプログラムが書きたいし、プロダクトを作りたい。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 10 Apr 2018 14:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/04/10/works</link><guid>https://9renpoto.win/entry/2018/04/10/works</guid>
    </item><item>
      <title><![CDATA[ふもとっぱらキャンプ場]]></title>
      <description><![CDATA[
# TL;DR

- 最高
- マイナス4度は対策できる

## 燻製

- 今回は仕込みをしないもので対応
  - チーズ
  - ソーセージ
  - 調理済み煮玉子
- 温燻
  - 桜ウッドで挑戦
  - ある程度火をつけてからやらないと時間がかかる
- 片付け
  - 激落ちくん必須

#]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>最高</li>
<li>マイナス4度は対策できる</li>
</ul>
<h2 id="">燻製</h2><ul>
<li>今回は仕込みをしないもので対応<ul>
<li>チーズ</li>
<li>ソーセージ</li>
<li>調理済み煮玉子</li>
</ul>
</li>
<li>温燻<ul>
<li>桜ウッドで挑戦</li>
<li>ある程度火をつけてからやらないと時間がかかる</li>
</ul>
</li>
<li>片付け<ul>
<li>激落ちくん必須</li>
</ul>
</li>
</ul>
<h2 id="">夜寒対策</h2><ol>
<li>インナーシュラフ<ul>
<li>効果はあるが遣うのが難しい</li>
</ul>
</li>
<li>アウターシュラフ<ul>
<li>すんなり使えました</li>
</ul>
</li>
<li>湯たんぽ<ul>
<li>最高</li>
<li>体が痛くて何度か目覚めたが暖かさを感じられた</li>
</ul>
</li>
</ol>
<blockquote class="instagram-media" data-instgrm-permalink="https://www.instagram.com/p/BguGQrwHXvS/" data-instgrm-version="8" style=" background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:658px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);"><div style="padding:8px;"> <div style=" background:#F8F8F8; line-height:0; margin-top:40px; padding:50.0% 0; text-align:center; width:100%;"> <div style=" background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAMAAAApWqozAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAMUExURczMzPf399fX1+bm5mzY9AMAAADiSURBVDjLvZXbEsMgCES5/P8/t9FuRVCRmU73JWlzosgSIIZURCjo/ad+EQJJB4Hv8BFt+IDpQoCx1wjOSBFhh2XssxEIYn3ulI/6MNReE07UIWJEv8UEOWDS88LY97kqyTliJKKtuYBbruAyVh5wOHiXmpi5we58Ek028czwyuQdLKPG1Bkb4NnM+VeAnfHqn1k4+GPT6uGQcvu2h2OVuIf/gWUFyy8OWEpdyZSa3aVCqpVoVvzZZ2VTnn2wU8qzVjDDetO90GSy9mVLqtgYSy231MxrY6I2gGqjrTY0L8fxCxfCBbhWrsYYAAAAAElFTkSuQmCC); display:block; height:44px; margin:0 auto -44px; position:relative; top:-22px; width:44px;"></div></div><p style=" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;"><a href="https://www.instagram.com/p/BguGQrwHXvS/" style=" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px; text-decoration:none;" target="_blank">A post shared by Keisuke Kan (@9renpoto)</a> on <time style=" font-family:Arial,sans-serif; font-size:14px; line-height:17px;" datetime="2018-03-24T21:00:38+00:00">Mar 24, 2018 at 2:00pm PDT</time></p></div></blockquote>
<script async defer src="//www.instagram.com/embed.js"></script>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 25 Mar 2018 11:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/03/25/fumotoppara</link><guid>https://9renpoto.win/entry/2018/03/25/fumotoppara</guid>
    </item><item>
      <title><![CDATA[環境変数なんとかしたい]]></title>
      <description><![CDATA[
# TL;DR

- 結局うまく動いてない
- configをwrapするんじゃねえ頼む

## Refs

- babel依存
  - &lt;https://github.com/vercel/next.js/tree/deprecated-main/examples/with-universal-]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>結局うまく動いてない</li>
<li>configをwrapするんじゃねえ頼む</li>
</ul>
<h2 id="refs">Refs</h2><ul>
<li>babel依存<ul>
<li><a href="https://github.com/vercel/next.js/tree/deprecated-main/examples/with-universal-configuration-build-time">https://github.com/vercel/next.js/tree/deprecated-main/examples/with-universal-configuration-build-time</a></li>
</ul>
</li>
<li>webpack依存<ul>
<li><a href="https://github.com/vercel/next.js/issues/159">https://github.com/vercel/next.js/issues/159</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 10 Mar 2018 02:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/03/11/next-js-enviroments</link><guid>https://9renpoto.win/entry/2018/03/11/next-js-enviroments</guid>
    </item><item>
      <title><![CDATA[アクションカムとバイクの組み合わせ妄想]]></title>
      <description><![CDATA[
# TL;DR

- アドバイス募集

## 要件

- 限りなく自動でファイルをバックアップしたい
  - スマホを経由する半自動はあり
- バイクで使いたい
  - 顎マウントは可能であれば避けたい
  - タンクマウント？
  - ハンドルマウント？
- ドライブレコーダーとして
  - 安]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>アドバイス募集</li>
</ul>
<h2 id="">要件</h2><ul>
<li>限りなく自動でファイルをバックアップしたい<ul>
<li>スマホを経由する半自動はあり</li>
</ul>
</li>
<li>バイクで使いたい<ul>
<li>顎マウントは可能であれば避けたい</li>
<li>タンクマウント？</li>
<li>ハンドルマウント？</li>
</ul>
</li>
<li>ドライブレコーダーとして<ul>
<li>安いのから開始してもいい気持ちもある</li>
<li>自動化できないなら魅力激減</li>
</ul>
</li>
</ul>
<h2 id="dream">Dream</h2><ul>
<li>wifi connectしてgoogle photoにauto upload</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 03 Mar 2018 16:19:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/03/04/action-camera</link><guid>https://9renpoto.win/entry/2018/03/04/action-camera</guid>
    </item><item>
      <title><![CDATA[travis-ci jobs]]></title>
      <description><![CDATA[
# TL;DR

- 時代はworkflowなんですね

## Travis Stages

- &lt;https://docs.travis-ci.com/user/build-stages/&gt;
  - 多分workflowをstage単位に組めるんだと思っている
  - matrixと異なり依存を]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>時代はworkflowなんですね</li>
</ul>
<h2 id="travis-stages">Travis Stages</h2><ul>
<li><a href="https://docs.travis-ci.com/user/build-stages/">https://docs.travis-ci.com/user/build-stages/</a><ul>
<li>多分workflowをstage単位に組めるんだと思っている</li>
<li>matrixと異なり依存を自分で記述していきたい感じ</li>
<li>個人的にはifとか便利なきがしている</li>
</ul>
</li>
</ul>
<h2 id="try">Try</h2><ul>
<li><a href="https://github.com/userdive/agent.js/pull/285">https://github.com/userdive/agent.js/pull/285</a><ul>
<li>イマイチ動いてない</li>
<li>動くところまで頑張る</li>
</ul>
</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Mon, 26 Feb 2018 14:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/02/26/travis-ci-jobs</link><guid>https://9renpoto.win/entry/2018/02/26/travis-ci-jobs</guid>
    </item><item>
      <title><![CDATA[github projectsが少し良くなっていた]]></title>
      <description><![CDATA[
# TL;DR

- 進化はしていってるありがたい
- 早い

## 今まで

- カンバンに手動ですべて追加し直す必要があった
- Cardの存在価値とは

## 要望

- org projectsを公開プロジェクトとしても作りたい
- templateをカスタムして保存したい
- デフォルト]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>進化はしていってるありがたい</li>
<li>早い</li>
</ul>
<h2 id="">今まで</h2><ul>
<li>カンバンに手動ですべて追加し直す必要があった</li>
<li>Cardの存在価値とは</li>
</ul>
<h2 id="">要望</h2><ul>
<li>org projectsを公開プロジェクトとしても作りたい</li>
<li>templateをカスタムして保存したい</li>
<li>デフォルトでAddされるカンバンを指定したい</li>
</ul>
<h2 id="refs">Refs</h2><ul>
<li><a href="https://github.blog/2018-01-04-track-the-progress-of-your-projects/">https://github.blog/2018-01-04-track-the-progress-of-your-projects/</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 21 Jan 2018 07:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2018/01/21/github-projects</link><guid>https://9renpoto.win/entry/2018/01/21/github-projects</guid>
    </item><item>
      <title><![CDATA[2017年終わり]]></title>
      <description><![CDATA[
# 振り返り

## Keep

- 型 / Formatter / 関数最高
- ⛺

## Problem

- イノベーションが起こせていない
- 人間関係サボリ気味
- 簡易サービス運用できてない

## Try

- 外に出る
- 冒険する
- 怒られる

&lt;figure class=&quot;]]></description>
      <content:encoded><![CDATA[<h1 id="">振り返り</h1><h2 id="keep">Keep</h2><ul>
<li>型 / Formatter / 関数最高</li>
<li>⛺</li>
</ul>
<h2 id="problem">Problem</h2><ul>
<li>イノベーションが起こせていない</li>
<li>人間関係サボリ気味</li>
<li>簡易サービス運用できてない</li>
</ul>
<h2 id="try">Try</h2><ul>
<li>外に出る</li>
<li>冒険する</li>
<li>怒られる</li>
</ul>
<figure class="image is-square">
  <img src="https://3.bp.blogspot.com/-GBGkimLCqT0/VsGsAU-G2OI/AAAAAAAA354/CCOA653iUmw/s800/drink_atsukan.png" />
</figure>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 31 Dec 2017 01:36:23 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/12/31/2017-end</link><guid>https://9renpoto.win/entry/2017/12/31/2017-end</guid>
    </item><item>
      <title><![CDATA[dependabotのすすめ]]></title>
      <description><![CDATA[
# TL;DR

- goodbye greenkeeper
- welcome to [dependabot](https://github.com/marketplace/dependabot)

## JavaScript ライブラリを追いかける

- ライブラリ更新サービスは、ライブラリの]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>goodbye greenkeeper</li>
<li>welcome to <a href="https://github.com/marketplace/dependabot">dependabot</a></li>
</ul>
<h2 id="javascript">JavaScript ライブラリを追いかける</h2><ul>
<li>ライブラリ更新サービスは、ライブラリの更新を追いかけるのには必須のサービスだ</li>
<li>薄く依存させCIを回しているだけで簡単に壊れていく</li>
<li>無駄に芝生があたたまる</li>
</ul>
<h2 id="greenkeeper">Greenkeeper との出会いと現状</h2><ul>
<li>更新が遅くなってきた</li>
<li>lockファイルの登場、メンテナンスの必要性がプラス必要に</li>
<li>org単位でもイケる</li>
</ul>
<h2 id="dependabot">Dependabot のいいところ</h2><ul>
<li>multi language</li>
<li>lockファイルも含めて更新</li>
<li>コンフリクトはPRの中でサービスが自己解決</li>
<li>daily,weekly,monthlyの簡単な定期更新</li>
</ul>
<h2 id="">まとめ</h2><ul>
<li>便利なサービスに引っ越していきたい</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 12 Dec 2017 13:53:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/12/12/dependabot</link><guid>https://9renpoto.win/entry/2017/12/12/dependabot</guid>
    </item><item>
      <title><![CDATA[travisで環境変数に気をつける]]></title>
      <description><![CDATA[
# TL;DR

- travisで環境変数が引き継がれない
  - 仕様だった
- &lt;https://docs.travis-ci.com/user/pull-requests/#Pull-Requests-and-Security-Restrictions&gt;

## 気持ち

- 理由はわかっ]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>travisで環境変数が引き継がれない<ul>
<li>仕様だった</li>
</ul>
</li>
<li><a href="https://docs.travis-ci.com/user/pull-requests/#Pull-Requests-and-Security-Restrictions">https://docs.travis-ci.com/user/pull-requests/#Pull-Requests-and-Security-Restrictions</a></li>
</ul>
<h2 id="">気持ち</h2><ul>
<li>理由はわかったけど悲しい</li>
<li>辛い場合がたくさんある</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 02 Nov 2017 16:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/11/02/travis-pr-enviroment</link><guid>https://9renpoto.win/entry/2017/11/02/travis-pr-enviroment</guid>
    </item><item>
      <title><![CDATA[Frontend JavaScript Anti-pattern]]></title>
      <description><![CDATA[
# TL;DR

- 自分のエゴで書いてる手癖や無駄な努力をコードレビューするのは非生産的
- 積極的にlinterを採用

## test

```javascript
import assert from &quot;assert&quot;;

describe(&quot;test&quot;, () =&gt; {
  const ]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>自分のエゴで書いてる手癖や無駄な努力をコードレビューするのは非生産的</li>
<li>積極的にlinterを採用</li>
</ul>
<h2 id="test">test</h2><pre><code class="language-javascript">import assert from &quot;assert&quot;;

describe(&quot;test&quot;, () =&gt; {
  const { func } = require(&quot;./module&quot;);
  it(&quot;func&quot;, () =&gt; {
    assert(func(&quot;a&quot;) === &quot;a&quot;);
  });
});
</code></pre>
<ol>
<li>1ファイル、single <code>describe</code><ol>
<li>親を1つ <code>describe.skip</code> <code>describe.only</code>
できれば一旦闇を保留にできることが多い</li>
<li>1ファイルの持っている役割が大きすぎない、特に困っていない</li>
</ol>
</li>
<li>テスト対象は <code>describe</code> の中でrequireする<ol>
<li><code>describe.only</code> 実行をした際に不要なsrcを読み込まなくて良い</li>
<li>読み込まれただけで実行される関数はcoverageに含まれてしまう</li>
<li><code>coverage report</code> が読みやすい</li>
</ol>
</li>
<li><code>this</code> を使わない<ol>
<li>unused変数をlintで発見しやすい</li>
<li>長い</li>
</ol>
</li>
</ol>
<h2 id="src">src</h2><pre><code class="language-js">function mapStateToProps({ todos }: State) {
  return {
    tasks: { todos },
    onUpdate: (id) =&gt; todos[id].done(),
  }
}
</code></pre>
<ol>
<li><code>arrow function</code> vs <code>function</code><ol>
<li>IE11を意識した場合、変換したら結局 <code>function</code> となる</li>
<li>読みやすさと生成された後のコードを妄想しつつ相談</li>
<li>つい書きやすさと <code>return</code> の省略したさで <code>arrow function</code> を使うことも多い</li>
<li>読みやすければそれでいい気持ちになってきている</li>
</ol>
</li>
<li><code>class</code> syntaxを避ける<ol>
<li>ライブラリを開発しているときには使うけれどプロダクトを書く時には意識する</li>
<li>結局 <code>this</code> に状態を持たせる意味がそのclassにあるかが大事</li>
<li>ファイルサイズがデカくなる</li>
</ol>
</li>
</ol>
<pre><code class="language-js">var touch = &quot;touch&quot;;
$(&quot;#id&quot;).on(`${touch}start ${touch}end`, (e) =&gt; {
  console.log(e);
});

function a(element) {
  // var element と書く３文字を省略して１文字にできる
  element = document.getElementById(&quot;foo&quot;);
  element.addEventListener(&quot;click&quot;, (e) =&gt; console.log(e));
}
</code></pre>
<ol>
<li>長い文字列は変数で受けて結合する<ol>
<li>小さいことを売りにしているライブラリで見る</li>
<li>計算量も大事だが地道なファイルサイズ対策</li>
</ol>
</li>
<li>無駄な引数を定義する<ol>
<li>変数定義分の文字列を節約させる</li>
<li>htmlのタグなどを書く際に利用されている場合がある</li>
<li>linterで積極的に使うなと怒られる（怒られる方が平和）</li>
</ol>
</li>
</ol>
<h2 id="">まとめ</h2><p>圧倒的老害感。</p>
<p><img src="https://4.bp.blogspot.com/-foiW8aYeL6s/VzZu-o6sxnI/AAAAAAAA6oQ/LHXzT0WsAX8LtB_U-msHk572kC_rY3VawCLcB/s800/mental_health_man.png" alt="image"></p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 31 Oct 2017 14:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/10/31/frontend-javascript-anti-pattern</link><guid>https://9renpoto.win/entry/2017/10/31/frontend-javascript-anti-pattern</guid>
    </item><item>
      <title><![CDATA[フルスタックと器用貧乏]]></title>
      <description><![CDATA[
# エンジニアにとっての集中と選択

- なんでも出来るようになったほうが良いのか
  - 現在の自分の選択は `No`
- 1つのジャンルを勉強するだけで年中Githubの芝生を埋められる
- リードできないと認められない
  - 仕事がなくなる
- 経験者・未経験者・年齢関係なく今を勉強しない]]></description>
      <content:encoded><![CDATA[<h1 id="">エンジニアにとっての集中と選択</h1><ul>
<li>なんでも出来るようになったほうが良いのか<ul>
<li>現在の自分の選択は <code>No</code></li>
</ul>
</li>
<li>1つのジャンルを勉強するだけで年中Githubの芝生を埋められる</li>
<li>リードできないと認められない<ul>
<li>仕事がなくなる</li>
</ul>
</li>
<li>経験者・未経験者・年齢関係なく今を勉強しないと使えない<ul>
<li>苦痛に感じたら向いてない</li>
<li>立場ではない、出来る人がすごい</li>
</ul>
</li>
</ul>
<h2 id="">過去の自分</h2><ul>
<li>勉強会にいけば少しでも進歩出来ると思っていた<ul>
<li>完全に <code>No</code></li>
<li>自分は頭が悪いので手を動かさないと身につかない</li>
</ul>
</li>
<li>輝かしい技術・アーキテクチャ<ul>
<li>流行り物は正義である</li>
<li><code>Yes</code> もあり <code>No</code></li>
<li>理解しなければ指を加えて見てるだけ</li>
</ul>
</li>
</ul>
<h2 id="">仕事と自分</h2><ul>
<li>とりあえず無能さを痛感する毎日</li>
</ul>
<h2 id="">とりあえず必死に生きる今</h2><ul>
<li>ビルドする</li>
<li>破壊する</li>
<li>書く、書き直す</li>
<li>手札を増やす</li>
<li>動かしてないものはいざとなったときに使えない</li>
</ul>
<h2 id="">まとめ</h2><ul>
<li>たまにはまともと認められるコードを書きたい</li>
<li>思想が間違っていないか議論したい</li>
<li>メンターがいないしメンターとして認められるわけでもないのでモチベーションが厳しい</li>
<li>過去の自分を否定するためにコードを書く</li>
<li>すぐリードできなくなるので別のことを勉強する</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Mon, 23 Oct 2017 16:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/10/24/full-stack-engineer</link><guid>https://9renpoto.win/entry/2017/10/24/full-stack-engineer</guid>
    </item><item>
      <title><![CDATA[product owner]]></title>
      <description><![CDATA[
# 個人的な意見

1. 完成した後に後出しジャンケンで要件を伝えるのは悪
1. 変更はすればいい。「出せない」を言うのは何時何時であれ遅いので、言いたいやつは目を凝らす
1. そもそも、出せる・出せないを判断する人間はプロダクトから目を離すべきではない
1. 決定を譲渡できないのであれば人の3倍]]></description>
      <content:encoded><![CDATA[<h1 id="">個人的な意見</h1><ol>
<li>完成した後に後出しジャンケンで要件を伝えるのは悪</li>
<li>変更はすればいい。「出せない」を言うのは何時何時であれ遅いので、言いたいやつは目を凝らす</li>
<li>そもそも、出せる・出せないを判断する人間はプロダクトから目を離すべきではない</li>
<li>決定を譲渡できないのであれば人の3倍目を凝らして稼働しろ<ol>
<li>決められない人間はオーナーではない</li>
<li>外からの要件を100とする行為も同義</li>
</ol>
</li>
<li>言った言わなかった論は不毛<ol>
<li>誰も報われない</li>
</ol>
</li>
</ol>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Mon, 23 Oct 2017 09:30:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/10/23/product-owner</link><guid>https://9renpoto.win/entry/2017/10/23/product-owner</guid>
    </item><item>
      <title><![CDATA[plug to dein.vim]]></title>
      <description><![CDATA[
# TL;DR

- vimrcもtomlで書く時代になったのか

## before

- [vim-plug](https://github.com/junegunn/vim-plug)
  が流行っているらしいから使っていた
- [vim bootstrap](https://github.]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>vimrcもtomlで書く時代になったのか</li>
</ul>
<h2 id="before">before</h2><ul>
<li><a href="https://github.com/junegunn/vim-plug">vim-plug</a>
が流行っているらしいから使っていた</li>
<li><a href="https://github.com/editor-bootstrap/vim-bootstrap">vim bootstrap</a>
で作成したものを使っていたが、これがさっぱり動かない</li>
</ul>
<h2 id="after">after</h2><ul>
<li>とりあえずlightline, vim-guttierいれて簡単なコードを読めるように</li>
<li><a href="https://github.com/9renpoto/dotfiles/pull/106">https://github.com/9renpoto/dotfiles/pull/106</a></li>
<li><a href="https://github.com/9renpoto/dotfiles/pull/107">https://github.com/9renpoto/dotfiles/pull/107</a></li>
</ul>
<p>暇を見つけて育てる。</p>
<p><img src="https://media.giphy.com/media/MhoboI1uPxrRm/giphy.gif" alt="gif"></p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 21 Oct 2017 01:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/10/21/plug-to-dain</link><guid>https://9renpoto.win/entry/2017/10/21/plug-to-dain</guid>
    </item><item>
      <title><![CDATA[SPAとInitial State]]></title>
      <description><![CDATA[
# TL;DR

- 誰か初期状態を持っているのかはっきりする
- 初期状態が定義されるタイミングを考慮する

SPAの鬼門は `State` 管理であるといって過言はない。

今回は初期状態について現在考えていることをメモする。

## 前提

- URLはRestとする
- ページ内から幾つか]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>誰か初期状態を持っているのかはっきりする</li>
<li>初期状態が定義されるタイミングを考慮する</li>
</ul>
<p>SPAの鬼門は <code>State</code> 管理であるといって過言はない。</p>
<p>今回は初期状態について現在考えていることをメモする。</p>
<h2 id="">前提</h2><ul>
<li>URLはRestとする</li>
<li>ページ内から幾つかのAPIにアクセスする</li>
<li>内部は複数のURLからなるSPAで構成されている</li>
<li>自分が設けている前提<ul>
<li>同一URLを表示したときには同一のAPIリクエストが発行されるべきである</li>
<li>または期待される結果が同一である（後述）</li>
</ul>
</li>
<li>APIリクエストの組み立てに必要な状態<ul>
<li><code>location.href</code></li>
<li>初期状態</li>
</ul>
</li>
</ul>
<h2 id="">例</h2><ul>
<li><a href="https://www.airbnb.com/">https://www.airbnb.com/</a><ul>
<li>parisの宿を探す、一覧が出て来る</li>
<li>ただ、このURLには <strong>暗黙的に今日以降</strong> という日付範囲が適応されている</li>
</ul>
</li>
<li><a href="https://www.airbnb.com/">https://www.airbnb.com/</a><ul>
<li>checkin, checkoutの範囲を指定する</li>
<li>カレンダーに適応した日付の範囲と、その範囲内で検索できた対象の宿が表示される</li>
</ul>
</li>
</ul>
<h2 id="spa">SPA と状態</h2><p>airbnbのようなカレンダーのような絞込みを提供している機能のことを考える。</p>
<ul>
<li>SPAが初期状態を持つ場合<ul>
<li>初期状態はJavaScript
がダウンロードされた際に決まる（今回は遅延で初期状態を定義することを除く）</li>
</ul>
</li>
<li>URLとSPAの状態が乖離する場合を考える<ul>
<li>カレンダーの操作をしているが確定処理を行っていない</li>
<li>画面には途中経過が表示されている（SPAのstateは更新されている）</li>
</ul>
</li>
<li>初期状態がURLにあるとする場合<ul>
<li>SPAに流入しJavaScriptがダウンロードされたタイミングと同一とは限らない</li>
<li>上記の場合、期待しない初期状態からクエリを発行するため期待と矛盾する</li>
</ul>
</li>
</ul>
<h2 id="">状態の整合性を取る</h2><ul>
<li>遷移をした場合に状態の整合性をとるactionを <code>onUpdate</code> に書く場合<ul>
<li>locationを引数として状態更新のアクションがもう1回Fluxを回る</li>
<li><code>onUpdate</code> で再度整合性チェック、必要があればデータ更新</li>
</ul>
</li>
<li>不必要なURLとstateの整合性を取るための再帰<ul>
<li>不採用</li>
</ul>
</li>
</ul>
<h2 id="">考えた選択肢</h2><ol>
<li>検索条件をサーバから受け取り、検索条件表示と結果の乖離をなくす</li>
<li>初期状態の定義をURLから生成できるよう、参照する状態の初期化を遅延する</li>
</ol>
<p>reduxの場合、後者の方法はわからなかった。</p>
<h2 id="">まとめ</h2><p>日本語難しい。</p>
<p>Happy Hacking!</p>
<p><img src="https://media.giphy.com/media/rSdzP7VZgI80w/giphy.gif" alt="image"></p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Wed, 18 Oct 2017 04:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/10/18/spa-initial-state</link><guid>https://9renpoto.win/entry/2017/10/18/spa-initial-state</guid>
    </item><item>
      <title><![CDATA[ComponentとContainers]]></title>
      <description><![CDATA[
# TL;DR

- Reactの場合
  - 見た目に必要なものはJSXだけで `Component` である必要はない
  - `Component` はライフサイクルを持つ
  - `Containers` はデータとの関係性を持つ

## Functional Component

- R]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>Reactの場合<ul>
<li>見た目に必要なものはJSXだけで <code>Component</code> である必要はない</li>
<li><code>Component</code> はライフサイクルを持つ</li>
<li><code>Containers</code> はデータとの関係性を持つ</li>
</ul>
</li>
</ul>
<h2 id="functional-component">Functional Component</h2><ul>
<li>Reactのドキュメントを読んでいると<code>React.Component</code>をextends
して書く必要があるのかと勘違い</li>
<li>DOMの定義を書くことはJSXのsyntaxだけで完結されている</li>
<li>JSXで書かれたものとCSSを紐付けたもとを <strong>見た目</strong> と記述した場合<ul>
<li>見た目はどこのデータに紐付けられるか定かでないため、ライフサイクルを自身で定義するべきではない</li>
<li>データを渡してtreeを構築するために必要な情報を返すだけでよい</li>
<li><a href="https://github.com/9renpoto/style/pull/228">https://github.com/9renpoto/style/pull/228</a></li>
</ul>
</li>
</ul>
<h2 id="component">Component</h2><ul>
<li>ライフサイクルと見た目を紐付けることに集中する</li>
<li>自分が実現したいライフサイクルを実現できるか考慮して、コンポーネントの大きさを決める</li>
</ul>
<h2 id="containers">Containers</h2><ul>
<li>データを紐付けるだけ</li>
<li>Reduxを使った場合、<code>Component</code> とは完全に疎結合に定義できる</li>
<li>ライフサイクルを意識した必要なデータは <code>Component</code>
の中にあるため、素直にデータを紐付ける</li>
<li>初期状態の記述には気をつける</li>
</ul>
<h2 id="">まとめ</h2><ul>
<li>世界はよく考えられている</li>
</ul>
<p><img src="https://media.giphy.com/media/RJXHcsfHNtpkY/giphy.gif" alt="img"></p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 10 Oct 2017 13:30:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/10/10/component</link><guid>https://9renpoto.win/entry/2017/10/10/component</guid>
    </item><item>
      <title><![CDATA[JavaScriptが苦手な方にという発表を社内でしました]]></title>
      <description><![CDATA[
# TL;DR

- JavaScriptが苦手な方にという発表を社内でしました

## slides

- [slides](https://9renpoto.github.io/slides/json-response/)
- [events](https://uncovertruth.con]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>JavaScriptが苦手な方にという発表を社内でしました</li>
</ul>
<h2 id="slides">slides</h2><ul>
<li><a href="https://9renpoto.github.io/slides/json-response/">slides</a></li>
<li><a href="https://uncovertruth.connpass.com/event/66341/">events</a></li>
</ul>
<h2 id="">まとめ</h2><ul>
<li>中身の無い話をダラダラと長く話してしまった</li>
<li>反省している</li>
</ul>
<p><img src="https://1.bp.blogspot.com/-UZ-zTvY7Qiw/VNH6mQx4fsI/AAAAAAAArTQ/v8f9UScSbkE/s800/ojigi_fukai.png" alt="img"></p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 05 Oct 2017 12:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/10/05/slides</link><guid>https://9renpoto.win/entry/2017/10/05/slides</guid>
    </item><item>
      <title><![CDATA[複数環境構築のためにLernaを使う、が]]></title>
      <description><![CDATA[
# TL;DR

- 期待通りに動かない

## npm or yarn

- npmClientを指定できるようだが、yarn
  を指定すると永遠にインストールが終わらない問題に出くわす
  - &lt;https://app.travis-ci.com/9renpoto/eslint-config]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>期待通りに動かない</li>
</ul>
<h2 id="npm-or-yarn">npm or yarn</h2><ul>
<li>npmClientを指定できるようだが、yarn
を指定すると永遠にインストールが終わらない問題に出くわす<ul>
<li><a href="https://app.travis-ci.com/9renpoto/eslint-config/builds/281805776">https://app.travis-ci.com/9renpoto/eslint-config/builds/281805776</a></li>
<li><code>concurrency=1</code> を指定するなど試すもretryしてやっと動く程度<ul>
<li>期待するportに接続できていない？</li>
</ul>
</li>
</ul>
</li>
<li>npm v5<ul>
<li>何故かlernaを通してやると <code>dependencies</code> がroot
に展開されず見つからない場合がある</li>
<li>ディレクトリ直下でやると問題ない場合がある<ul>
<li>バグっている気持ち</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="lerna-bootstrap">lerna bootstrap</h2><ul>
<li>共通packageとは、本当はディレクトリ直下で行いたいができていないようにみえる<ul>
<li>lerna version 2.2.0</li>
<li>結局複数installを求められるものがある？<ul>
<li>eslint</li>
<li>typescript</li>
<li>flow-bin</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="">まとめ</h2><ul>
<li>原因は調べきれていないが、lernaが原因で使えていない問題はいろいろありそう<ul>
<li>issueは200以上ある</li>
</ul>
</li>
<li>早めに地雷を踏んでおく</li>
</ul>
<p><img src="https://3.bp.blogspot.com/-R1W3888HcbU/V9ppr9A_NHI/AAAAAAAA9wE/CuzJ-JfOQz8Ht6w-jNN79_vh6-TeVOGNACLcB/s800/jirai_tanchiki_man.png" alt="image"></p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Mon, 02 Oct 2017 02:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/10/02/monorepo</link><guid>https://9renpoto.win/entry/2017/10/02/monorepo</guid>
    </item><item>
      <title><![CDATA[ツーリングに便利。インカムデビューをする]]></title>
      <description><![CDATA[
# TL;DR

- インカムは良いものだ、世界が変わる
- タンデムなどにもおすすめできる

## BT-X1

体験というところで安価なものから選定して購入しました。

&lt;iframe style=&quot;width:120px;height:240px;&quot; marginwidth=&quot;0&quot; marg]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>インカムは良いものだ、世界が変わる</li>
<li>タンデムなどにもおすすめできる</li>
</ul>
<h2 id="bt-x1">BT-X1</h2><p>体験というところで安価なものから選定して購入しました。</p>
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="https://rcm-fe.amazon-adsystem.com/e/cm?ref=qf_sp_asin_til&t=9renpoto06-22&m=amazon&o=9&p=8&l=as1&IS2=1&detail=1&asins=B073PRMD99&linkId=159f1f7836485815850a7957ad702a29&bc1=ffffff&lt1=_blank&fc1=333333&lc1=0066c0&bg1=ffffff&f=ifr"></iframe><ul>
<li>インカムとしては問題なく</li>
<li>通話中は音楽・スマホ音声も届かない<ul>
<li>困るかと思っていたけど、「次曲がるぞ」などの会話があれば特に機能面では問題はなかった</li>
</ul>
</li>
<li>切り替えはボタン1つ<ul>
<li>オフにすれば音楽再生に戻れなかったり？</li>
<li>バグっぽいのでファームウェアを上げて様子を見る</li>
</ul>
</li>
<li>音楽の音量調整<ul>
<li>環境音に合わせて音量が変わる</li>
<li>音量が大胆に変わりすぎてもはや別の音楽になるので、この機能は個人的にはオフにして様子を見る</li>
</ul>
</li>
<li>二人通話<ul>
<li>ツーリング仲間が増えてから問題について考える</li>
</ul>
</li>
<li>BT-Talk<ul>
<li>何かできそうなきはしたけれど、音声通話アプリを使えばよくないか？という気持に</li>
<li>特に優位性を判じられず</li>
</ul>
</li>
</ul>
<h2 id="">総評</h2><ul>
<li>壊れたら別のメーカも含めて高いものに買い直す価値はある</li>
<li>そうだバイクに乗ろう</li>
</ul>
<h2 id="">最後に</h2><p>今のバイクで初めてコケました、悲しい。</p>
<p><img src="https://media.giphy.com/media/12r8sEZgPUgx9K/giphy.gif" alt="image"></p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 03 Sep 2017 13:04:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/09/03/btx-b1</link><guid>https://9renpoto.win/entry/2017/09/03/btx-b1</guid>
    </item><item>
      <title><![CDATA[フロントエンド勉強環境にlernaを使う]]></title>
      <description><![CDATA[
# TL;DR

- lernaは大きすぎないpackageを複数管理するときに割りと便利
- lernaで便利なものと、対応していないものがある
  - flow-typed, etc

## Lerna

- babel等で使われており存在は知っていたが、プラグイン等を管理するようなpacka]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>lernaは大きすぎないpackageを複数管理するときに割りと便利</li>
<li>lernaで便利なものと、対応していないものがある<ul>
<li>flow-typed, etc</li>
</ul>
</li>
</ul>
<h2 id="lerna">Lerna</h2><ul>
<li>babel等で使われており存在は知っていたが、プラグイン等を管理するようなpackage
を持っておらず使うつもりはなかった</li>
<li>greenkeeperに対応していない<ul>
<li>issueはあがっている</li>
</ul>
</li>
<li>releaseコマンドを普段使わない<ul>
<li>git master commitの発生が気に食わない</li>
<li>素直にpublishだけしてほしい</li>
</ul>
</li>
<li>それでも環境を分ける場合が増えてきたので使ってみる<ul>
<li>eslintrc</li>
<li>babelrc</li>
<li>tsconfig</li>
</ul>
</li>
</ul>
<h2 id="">入れてみた</h2><ul>
<li><a href="https://github.com/9renpoto/js">https://github.com/9renpoto/js</a></li>
<li><a href="https://github.com/9renpoto/ts">https://github.com/9renpoto/ts</a></li>
</ul>
<h2 id="">勉強</h2><ul>
<li>先を見るために今を見る</li>
<li>今の何が大事かは、最初はテスト環境だと思っている<ul>
<li>テストが走る</li>
<li>ライブラリ特有のテストがかける<ul>
<li>jsx,tsx</li>
<li>vue</li>
</ul>
</li>
<li>カバレッジが取れる</li>
<li>現実的な生産性が見える</li>
</ul>
</li>
</ul>
<p><img src="https://media.giphy.com/media/26tPplGWjN0xLybiU/giphy.gif" alt="gif"></p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 26 Aug 2017 10:19:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/08/28/lerna</link><guid>https://9renpoto.win/entry/2017/08/28/lerna</guid>
    </item><item>
      <title><![CDATA[TypeScriptにもformatterを]]></title>
      <description><![CDATA[
# TL;DR

- TypeScriptもprettier正式採用で快適フォーマット
- eslintも進んで来ており快適に

## Prettier

- すっかり気に入って使っているが、TypeScriptも正式サポート始まり嬉しい
- 型定義ファイルのフォーマットにも対応

## 入れてみ]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>TypeScriptもprettier正式採用で快適フォーマット</li>
<li>eslintも進んで来ており快適に</li>
</ul>
<h2 id="prettier">Prettier</h2><ul>
<li>すっかり気に入って使っているが、TypeScriptも正式サポート始まり嬉しい</li>
<li>型定義ファイルのフォーマットにも対応</li>
</ul>
<h2 id="">入れてみた</h2><ul>
<li><a href="https://github.com/arvitaly/chrome-jest-mock/pull/1">https://github.com/arvitaly/chrome-jest-mock/pull/1</a></li>
<li>本質のロジックに集中できるのはありがたい</li>
</ul>
<p><img src="https://media.giphy.com/media/n7C5DOuH1m0iA/giphy.gif" alt="gif"></p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 19 Aug 2017 12:48:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/08/19/prettier-with-typescript</link><guid>https://9renpoto.win/entry/2017/08/19/prettier-with-typescript</guid>
    </item><item>
      <title><![CDATA[avast network check]]></title>
      <description><![CDATA[
# TL;DR

- `Infection blocked` に引っかかった
- ご認識の可能性は未報告

## 経緯

1. avastが警告を発しあるモジュールがダウンロードできない
   1. &lt;https://github.com/takuyaa/kuromoji.js/issues/19]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li><code>Infection blocked</code> に引っかかった</li>
<li>ご認識の可能性は未報告</li>
</ul>
<h2 id="">経緯</h2><ol>
<li>avastが警告を発しあるモジュールがダウンロードできない<ol>
<li><a href="https://github.com/takuyaa/kuromoji.js/issues/19">https://github.com/takuyaa/kuromoji.js/issues/19</a></li>
</ol>
</li>
<li>virtualbox上で警告のあった指定箇所を確認</li>
<li>修正<ol>
<li><a href="https://github.com/takuyaa/kuromoji.js/pull/20">https://github.com/takuyaa/kuromoji.js/pull/20</a></li>
</ol>
</li>
</ol>
<h2 id="">心情</h2><ul>
<li>チェックされている感じを久々に感じる、が懸念されている内容とその正規表現が理解できなかった</li>
<li>セキュリティは難しい</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 19 Aug 2017 12:37:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/08/19/avast</link><guid>https://9renpoto.win/entry/2017/08/19/avast</guid>
    </item><item>
      <title><![CDATA[本日の酒]]></title>
      <description><![CDATA[
# TL;DR

雄町はうまい。

![sake](https://yoshidaya.ocnk.net/data/yoshidaya/product/20170228_b6fed8.jpg)

至福の一杯。
]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><p>雄町はうまい。</p>
<p><img src="https://yoshidaya.ocnk.net/data/yoshidaya/product/20170228_b6fed8.jpg" alt="sake"></p>
<p>至福の一杯。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 15 Aug 2017 14:37:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/08/15/sake</link><guid>https://9renpoto.win/entry/2017/08/15/sake</guid>
    </item><item>
      <title><![CDATA[ドキュメントの価値]]></title>
      <description><![CDATA[
# TL;DR

- 本当に必要なのはドキュメントなのか考えましょう

## Living Documentation

- 納得した資料（`client-side-ddd-on-github`）
  - [`良いドキュメントには自動化が必要`](https://github.com/azu/sl]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>本当に必要なのはドキュメントなのか考えましょう</li>
</ul>
<h2 id="living-documentation">Living Documentation</h2><ul>
<li>納得した資料（<code>client-side-ddd-on-github</code>）<ul>
<li><a href="https://github.com/azu/slide/blob/c09ea5254d3633db0cf91199fcaf5adc770c8519/2017/teppeis-sushi/client-side-ddd-on-github.md#living-documentation-1"><code>良いドキュメントには自動化が必要</code></a></li>
<li><a href="https://github.com/azu/slide/blob/c09ea5254d3633db0cf91199fcaf5adc770c8519/2017/teppeis-sushi/client-side-ddd-on-github.md#%E5%AE%88%E3%82%89%E3%82%8C%E3%81%AA%E3%81%84%E3%83%AB%E3%83%BC%E3%83%AB%E3%81%AF%E4%BE%A1%E5%80%A4%E3%81%8C%E3%81%AA%E3%81%84-1"><code>最も良いドキュメントはno document</code></a></li>
</ul>
</li>
</ul>
<h2 id="">リーダブルコード</h2><ul>
<li><a href="/entry/2013/02/03/readable-code/">過去ログ</a></li>
<li><a href="https://gist.github.com/AKB428/b8970cea987577ec93c2#%E7%AC%AC%EF%BC%96%E5%B1%A4-%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AF%E6%AD%A3%E7%A2%BA%E3%81%A7%E7%B0%A1%E6%BD%94%E3%81%AB"><code>コメントは領域に対する情報の比率が高くなければならない</code></a></li>
</ul>
<h2 id="">自分の考え</h2><ul>
<li><p>ドキュメントを書くつもりでテストを書く</p>
</li>
<li><p>Doc Test不要論</p>
<ul>
<li>動かせるのでメンテナンスはされている（Good）</li>
<li>ソースコードよりも長いテストを書くことは珍しくない</li>
<li>ソースの情報が増える、が情報の比重が高いとは限らない<ul>
<li>それなら綺麗にテストを書く</li>
</ul>
</li>
</ul>
</li>
<li><p>ドキュメント生成</p>
<ul>
<li><code>JSDoc</code>, <code>esdoc</code></li>
<li><code>FlowType</code>, <code>TypeScript</code>
の型定義ファイルなどの登場によりその役割は不要になりつつある気持ち</li>
<li>ソースコードの情報比率の高まりも重要<ul>
<li>可読性</li>
<li>補完</li>
</ul>
</li>
</ul>
</li>
<li><p>動いているものには価値が高い</p>
<ul>
<li>storybook</li>
<li>style guide</li>
</ul>
</li>
<li><p>使い始めるための最短ルート</p>
</li>
</ul>
<h2 id="">このエントリーの価値</h2><p>読まれなければ意味がない。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Mon, 14 Aug 2017 13:55:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/08/14/document</link><guid>https://9renpoto.win/entry/2017/08/14/document</guid>
    </item><item>
      <title><![CDATA[モチベーションを上げるためにカレンダーを書く]]></title>
      <description><![CDATA[
# TL;DR

- 記事をかけていないことを可視化する
  - &lt;https://github.com/9renpoto/entry/pull/22&gt;
- やる気を出す

## contributions calendar

- githubのカレンダーによるフィードバックはモチベーションにつな]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>記事をかけていないことを可視化する<ul>
<li><a href="https://github.com/9renpoto/entry/pull/22">https://github.com/9renpoto/entry/pull/22</a></li>
</ul>
</li>
<li>やる気を出す</li>
</ul>
<h2 id="contributions-calendar">contributions calendar</h2><ul>
<li>githubのカレンダーによるフィードバックはモチベーションにつながる</li>
<li>コミットすることが生活の一部になってきた</li>
</ul>
<h2 id="">記事がかけていないことを可視化する</h2><p><img src="/contributions-calendar.png" alt="image"></p>
<p>見事にサボっている。</p>
<h2 id="next">next</h2><p>無駄にauto-completeつけたい。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 13 Aug 2017 10:36:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/08/13/contributions-calendar</link><guid>https://9renpoto.win/entry/2017/08/13/contributions-calendar</guid>
    </item><item>
      <title><![CDATA[ブログをgatsbyjsで作り直す]]></title>
      <description><![CDATA[
# TL;DR

- gatsbyjsでブログを立て直した
- goodbye hugo

## 経緯

- Hugoを使っていたが `Go Template` に勉強要素がなかった
- SPAベースのブログとして拡張可能なものを探した
- その他に検討したもの
  - nextin
    - ]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>gatsbyjsでブログを立て直した</li>
<li>goodbye hugo</li>
</ul>
<h2 id="">経緯</h2><ul>
<li>Hugoを使っていたが <code>Go Template</code> に勉強要素がなかった</li>
<li>SPAベースのブログとして拡張可能なものを探した</li>
<li>その他に検討したもの<ul>
<li>nextin<ul>
<li>next.jsベース</li>
<li>cssの扱いで苦戦<ul>
<li><a href="https://github.com/kriasoft/isomorphic-style-loader">https://github.com/kriasoft/isomorphic-style-loader</a></li>
</ul>
</li>
<li>いい加減 <code>jsx</code> extension使わせてくれ</li>
</ul>
</li>
<li>nuxt.js<ul>
<li>React優先したら後回しに</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="">作業内容</h2><p><a href="https://github.com/9renpoto/entry">https://github.com/9renpoto/entry</a></p>
<ul>
<li><a href="https://github.com/gatsbyjs/gatsby-starter-blog">https://github.com/gatsbyjs/gatsby-starter-blog</a><ul>
<li>不要な依存を削除</li>
<li>SSRするために <code>style-loader</code> が使えなかったため <code>static</code>
ファイルを参照するアプローチ<ul>
<li><a href="https://www.gatsbyjs.org/docs/importing-assets-into-files/">https://www.gatsbyjs.org/docs/importing-assets-into-files/</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<p><img src="https://media.giphy.com/media/tT0wtdSJvE0Rq/giphy.gif" alt="mind"></p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Fri, 11 Aug 2017 09:37:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/08/11/gatsby</link><guid>https://9renpoto.win/entry/2017/08/11/gatsby</guid>
    </item><item>
      <title><![CDATA[fish shell 入門]]></title>
      <description><![CDATA[
# TL;DR

- fishshellに移行した
- fishermanを導入したらほぼ独自に記述することがなくなった
  - fishfileだけ管理していれば良さそう
- 補完的に速度が気持だけ遅くなった？
  - 設定が必要？

## 作業内容

&lt;https://github.com/9]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>fishshellに移行した</li>
<li>fishermanを導入したらほぼ独自に記述することがなくなった<ul>
<li>fishfileだけ管理していれば良さそう</li>
</ul>
</li>
<li>補完的に速度が気持だけ遅くなった？<ul>
<li>設定が必要？</li>
</ul>
</li>
</ul>
<h2 id="">作業内容</h2><p><a href="https://github.com/9renpoto/dotfiles/pull/98">https://github.com/9renpoto/dotfiles/pull/98</a></p>
<ul>
<li>実はbashだったりzshだったりのsyntax
に依存しているところを細々と直していくことは必要<ul>
<li>tmux,keychain,PATH</li>
</ul>
</li>
</ul>
<p><img src="https://qiita-image-store.s3.amazonaws.com/0/4943/5cd6ec85-0654-04eb-03c1-f792115e6a72.png" alt="image"></p>
<h2 id="refs">Refs</h2><ul>
<li><a href="https://muunyblue.github.io/7476533956dd3568c1d787c5d33a547f.html">https://muunyblue.github.io/7476533956dd3568c1d787c5d33a547f.html</a></li>
<li><a href="https://blog.odoruinu.net/2017/02/24/changed-my-shell-from-zsh-to-fish/">https://blog.odoruinu.net/2017/02/24/changed-my-shell-from-zsh-to-fish/</a></li>
<li><a href="https://github.com/jorgebucaran/fisher">https://github.com/jorgebucaran/fisher</a></li>
</ul>
<h2 id="">調べてないこと</h2><ul>
<li>hyper termが起動しなくなった</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 08 Jul 2017 12:07:46 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/07/08/first-fish</link><guid>https://9renpoto.win/entry/2017/07/08/first-fish</guid>
    </item><item>
      <title><![CDATA[Fixed: brew cask --language]]></title>
      <description><![CDATA[
# TL;DR

- brew cask `--language` オプションが治りました
- firefix nightlyがインストールできるようになりました

## 気持

めでたい。少しFirefoxをデフォルトブラウザとして頑張る。

```shell
➜  ~ brew --versi]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>brew cask <code>--language</code> オプションが治りました</li>
<li>firefix nightlyがインストールできるようになりました</li>
</ul>
<h2 id="">気持</h2><p>めでたい。少しFirefoxをデフォルトブラウザとして頑張る。</p>
<pre><code class="language-shell">➜  ~ brew --version
Homebrew 1.2.4
</code></pre>
<p><img src="https://media.giphy.com/media/7kn27lnYSAE9O/giphy.gif" alt="image"></p>
<h2 id="before">Before</h2><ul>
<li><a href="/entry/2017/06/22/brew-cask-language/">brew caskにlanguageを指定するらしいけれど</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Wed, 05 Jul 2017 14:21:51 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/07/05/brew-cask-language-fix</link><guid>https://9renpoto.win/entry/2017/07/05/brew-cask-language-fix</guid>
    </item><item>
      <title><![CDATA[TypeScript で coverage を計測する方法を変える]]></title>
      <description><![CDATA[
# TL;DR

- nycが公式でサポート
- 事前のtscしてremap-istanbulしなくても良くなりました（後述）

## Usage

- [公式ドキュメント][tutorial-typescript]をそのまま記述
- &lt;https://github.com/9renpoto/ts]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>nycが公式でサポート</li>
<li>事前のtscしてremap-istanbulしなくても良くなりました（後述）</li>
</ul>
<h2 id="usage">Usage</h2><ul>
<li><a href="https://istanbul.js.org/docs/tutorials/typescript/">公式ドキュメント</a>をそのまま記述</li>
<li><a href="https://github.com/9renpoto/ts/pull/93">https://github.com/9renpoto/ts/pull/93</a></li>
</ul>
<h2 id="">メリット</h2><ul>
<li><a href="/entry/2016/08/20/typescript-coverage">前回</a></li>
<li>tscする一手間を省略して<code>ts-node</code>に任せるだけでよくなりました</li>
</ul>
<h2 id="refs">Refs</h2><ul>
<li><a href="https://istanbul.js.org/docs/tutorials/typescript/">公式ドキュメント</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 25 Jun 2017 04:40:18 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/06/25/nyc-typescript-coverage</link><guid>https://9renpoto.win/entry/2017/06/25/nyc-typescript-coverage</guid>
    </item><item>
      <title><![CDATA[brew caskにlanguageを指定するらしいけれど]]></title>
      <description><![CDATA[
# TL;DR

- 動いてくれ頼む

## Log

```shell
➜  ~ brew cask search firefox
==&gt; Exact Match
firefox
==&gt; Partial Matches
firefox-beta firefox-esr firefoxdevelo]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>動いてくれ頼む</li>
</ul>
<h2 id="log">Log</h2><pre><code class="language-shell">➜  ~ brew cask search firefox
==&gt; Exact Match
firefox
==&gt; Partial Matches
firefox-beta firefox-esr firefoxdeveloperedition firefoxnightly multifirefox
➜  ~
➜  ~ brew cask install firefoxnightly --language=en
Error: invalid option: --language=en
</code></pre>
<h2 id="refs">Refs</h2><ul>
<li><a href="https://rcmdnk.com/blog/2016/10/31/computer-mac-homebrew-firefox/">https://rcmdnk.com/blog/2016/10/31/computer-mac-homebrew-firefox/</a></li>
<li><a href="https://github.com/Homebrew/homebrew-cask/blob/master/doc/cask_language_reference/stanzas/language.md#installation">https://github.com/Homebrew/homebrew-cask/blob/master/doc/cask_language_reference/stanzas/language.md#installation</a></li>
</ul>
<h3 id="1-20170625">追記1 [2017/06/25]</h3><ul>
<li>修正リリースを待つ<ul>
<li><a href="https://github.com/Homebrew/homebrew-cask/issues/35448#issuecomment-308112366">homebrew-cask/issues/35448</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Wed, 21 Jun 2017 16:26:18 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/06/22/brew-cask-language</link><guid>https://9renpoto.win/entry/2017/06/22/brew-cask-language</guid>
    </item><item>
      <title><![CDATA[google optimize を読む]]></title>
      <description><![CDATA[
# TL;DR

- google optimizeで今適応されているテストは何か調べた
- テストの結果はfirst party cookie
- `_gaexp`という名前で記録されている
- **規約は読んで自己責任で参照しましょう**

![optimize](/google-optimi]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>google optimizeで今適応されているテストは何か調べた</li>
<li>テストの結果はfirst party cookie</li>
<li><code>_gaexp</code>という名前で記録されている</li>
<li><strong>規約は読んで自己責任で参照しましょう</strong></li>
</ul>
<p><img src="/google-optimize-logo.jpg" alt="optimize"></p>
<h2 id="">軽く調べた結果</h2><ul>
<li><a href="https://developers.google.com/analytics/devguides/collection/analyticsjs/cookie-usage?hl=en#optimize">公開情報</a><ul>
<li><code>_gaexp</code>という名前で記録されている</li>
<li>cookieはデフォルト90日保存</li>
</ul>
</li>
</ul>
<h2 id="">おそらく操作しているところ</h2><ul>
<li><code>m[0]</code> は <code>experimentid</code></li>
<li><code>m[2]</code> がテストのパターンを表している<ul>
<li>cookieの一番最後のnumber</li>
<li>これだけだと <code>variationid</code>
としては使えないので何かと複合してユニークになっている</li>
</ul>
</li>
<li><code>m[1]</code> はnumberだが何の値かはすぐにはわからなかった</li>
</ul>
<pre><code class="language-js">Zg = function (a, b) {
  const c = b.match(/GAX1\.([^.]+).(.*)/);
  if (c) {
    let d;
    a: {
      const e = (c[1] || &quot;&quot;).split(&quot;-&quot;);
      if (!(e.length == 0 || e.length &gt; 2)) {
        const f = ia(e[0]);
        if (f.length != 0) {
          const g = e.length == 2 ? ia(e[1]) : &quot;1&quot;;
          if (uf(f) &amp;&amp; uf(g)) {
            d = new Og(T(f), T(g));
            break a;
          }
        }
      }
      d = void 0;
    }
    if (d) {
      for (
        var h = new Qg(d, a.qa, a.ha), k = (c[2] || &quot;&quot;).split(&quot;!&quot;), l = 0;
        l &lt; k.length;
        l++
      ) {
        const m = k[l].split(&quot;.&quot;);
        if (m.length == 3) {
          if (!uf(m[1])) {
            return;
          }
          Ug(h, m[0], new Pg(m[2], T(m[1])));
        }
      }
      return h;
    }
  }
};
</code></pre>
<h2 id="extra">Extra</h2><ul>
<li><a href="https://stackoverflow.com/questions/44412241/is-it-possible-to-read-experimentid-and-variationid-in-javascript-with-google-op">stackoverflow</a><ul>
<li>ABテストとしてJavaScriptが実行できるので、自分でユニークなID
を配信して実行されているテストを特定しましょう</li>
<li>リバースエンジニアリングして危ない道を渡るよりも現実的</li>
<li>ちゃんとABテストの記録は計測できます、そうgoogle analyticsならね！</li>
</ul>
</li>
</ul>
<p>Happy Hacking!</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 15 Jun 2017 15:00:11 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/06/16/google-optimize-variation</link><guid>https://9renpoto.win/entry/2017/06/16/google-optimize-variation</guid>
    </item><item>
      <title><![CDATA[nuxt static site genetator]]></title>
      <description><![CDATA[
# TL;DR

- SSRかと思ったら静的サイトも生成できる時代
- 良い素振り環境であれば進んで移行

## gatsby

&lt;https://jamstack.org/generators/gatsby/&gt;

- React
  ベースで、ブログやドキュメントのような静的サイトを生成出来るツ]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>SSRかと思ったら静的サイトも生成できる時代</li>
<li>良い素振り環境であれば進んで移行</li>
</ul>
<h2 id="gatsby">gatsby</h2><p><a href="https://jamstack.org/generators/gatsby/">https://jamstack.org/generators/gatsby/</a></p>
<ul>
<li>React
ベースで、ブログやドキュメントのような静的サイトを生成出来るツールとして様子を見ていた</li>
<li>webpack v1系の依存が取れなていない<ul>
<li>webpack v3-rcが来てしまったことを考えると厳しそう</li>
<li>@storybook/reactの苦い経験</li>
</ul>
</li>
<li>Routerの素振り環境として魅力的だったものの尻込みしていた</li>
</ul>
<h2 id="nuxtjs">nuxt.js</h2><p><a href="https://jamstack.org/generators/nuxt/">https://jamstack.org/generators/nuxt/</a></p>
<ul>
<li>inspired by next.jsなライブラリ</li>
<li>存在は知っていたがまさか静的サイト生成が可能らしい<ul>
<li>staticgen.com参照して気づく</li>
</ul>
</li>
<li>触ってみる価値はあると判断</li>
<li>RSSなどブログっぽいものはない可能性</li>
</ul>
<h2 id="nextjs">next.js</h2><ul>
<li>next.jsも同様に可能？<ul>
<li><a href="https://github.com/vercel/next.js/issues/604">https://github.com/vercel/next.js/issues/604</a></li>
</ul>
</li>
<li>普段はReactを触っていることが多いため可能ならこちらから</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 08 Jun 2017 13:22:18 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/06/08/nuxt-static-site-genetator</link><guid>https://9renpoto.win/entry/2017/06/08/nuxt-static-site-genetator</guid>
    </item><item>
      <title><![CDATA[i18n-webpack-plugin所感]]></title>
      <description><![CDATA[
# i18n-webpack-plugin

[i18n-webpack-plugin](https://github.com/webpack-contrib/i18n-webpack-plugin)

## TL;DR

- 必要最低限の機能・サイズになる
- 事前にi18n後のJSとして複数の]]></description>
      <content:encoded><![CDATA[<h1 id="i18n-webpack-plugin">i18n-webpack-plugin</h1><p><a href="https://github.com/webpack-contrib/i18n-webpack-plugin">i18n-webpack-plugin</a></p>
<h2 id="tldr">TL;DR</h2><ul>
<li>必要最低限の機能・サイズになる</li>
<li>事前にi18n後のJSとして複数のoutputとするアプローチ</li>
<li>できることはシンプル（現状）</li>
</ul>
<h2 id="">懸念</h2><ul>
<li>テンプレートエンジンなどでlocale特定が必要？</li>
<li><code>sprintf</code>のような表現には対応していない<ul>
<li>議論中
<a href="https://github.com/webpack-contrib/i18n-webpack-plugin/pull/42">i18n-webpack-plugin/pull/42</a></li>
</ul>
</li>
<li>読み込むlocaleファイルの生成には関与しない<ul>
<li>手動でJSONは作成、メンテナンス</li>
</ul>
</li>
</ul>
<h2 id="">現状</h2><ul>
<li>様子見</li>
<li>簡単なサンプルを書いて依存はしておく</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Mon, 05 Jun 2017 02:08:23 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/06/05/i18n-webpack</link><guid>https://9renpoto.win/entry/2017/06/05/i18n-webpack</guid>
    </item><item>
      <title><![CDATA[storybook v3が待ち遠しい]]></title>
      <description><![CDATA[
# TL;DR

`@storybook/react` としてv3.0.0-rcがリリースされました。

## storybook

`webpack v2` の流れもあり開発が止まってたstorybookの開発が、
別のコントリビュータが入ったことで再開された。

`@kadira/storyb]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><p><code>@storybook/react</code> としてv3.0.0-rcがリリースされました。</p>
<h2 id="storybook">storybook</h2><p><code>webpack v2</code> の流れもあり開発が止まってたstorybookの開発が、
別のコントリビュータが入ったことで再開された。</p>
<p><code>@kadira/storybook</code> から <code>@storybook/react</code>
へ名前を変えてめでたく<code>rc</code>がリリースされることなったようです。</p>
<ul>
<li>対応したPR <a href="https://github.com/9renpoto/style/pull/160">https://github.com/9renpoto/style/pull/160</a></li>
</ul>
<p>ドキュメントの更新はまだ遅れており細かな変更も追いかけてはいませんが、中身は大きく書き換わっているようです。</p>
<p>めでたく <code>webpack v2</code> にも対応しています。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 27 May 2017 11:28:25 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/05/27/storybook-v3-rc</link><guid>https://9renpoto.win/entry/2017/05/27/storybook-v3-rc</guid>
    </item><item>
      <title><![CDATA[variableの範囲でscssをカスタマイズするときの注意]]></title>
      <description><![CDATA[
# TL;DR

- `!default` で定義されているvariableは `@import` 前に定義する

## \_variable.scss

css
に変数があることはわかっていたつもりですが、上書きの用法がよくわかっておらず調べたので記録。

```scss
$a: #777 !d]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li><code>!default</code> で定義されているvariableは <code>@import</code> 前に定義する</li>
</ul>
<h2 id="variablescss">_variable.scss</h2><p>css
に変数があることはわかっていたつもりですが、上書きの用法がよくわかっておらず調べたので記録。</p>
<pre><code class="language-scss">$a: #777 !default;
</code></pre>
<p><code>$a</code> は、評価される前に同様の変数が定義されていれば上書きされないということ。
定数として1ファイルに定義してもらえることが多いが、多段 <code>@import</code>
などはどこまで遡って上書きなどできるのかなどは調べていない。</p>
<h2 id="refs">Refs</h2><ul>
<li><a href="https://qiita.com/yuku_t/items/0bebe541432cdfad4e14">https://qiita.com/yuku_t/items/0bebe541432cdfad4e14</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 25 May 2017 11:42:10 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/05/25/variable-default</link><guid>https://9renpoto.win/entry/2017/05/25/variable-default</guid>
    </item><item>
      <title><![CDATA[アクティブでなさそうなSlackチャンネルをArchiveお願いする]]></title>
      <description><![CDATA[
# slack-channel-active-reminder

書いたもの： &lt;https://github.com/9renpoto/slack-channel-active-reminder&gt;

![image](/slack-channel-active-reminder.png)

sl]]></description>
      <content:encoded><![CDATA[<h1 id="slack-channel-active-reminder">slack-channel-active-reminder</h1><p>書いたもの： <a href="https://github.com/9renpoto/slack-channel-active-reminder">https://github.com/9renpoto/slack-channel-active-reminder</a></p>
<p><img src="/slack-channel-active-reminder.png" alt="image"></p>
<p>slackの部屋は便利に増やしていけますが、
同じような部屋が散乱したり、入ってみたものの活動が薄かったり様々あるので
一定時間発言がない部屋に対してメッセージを送りつけるようなものを書いた。</p>
<h2 id="usage">Usage</h2><p>Cron
などと合わせて仕込んで良いタイミングで発言がなさそうなところに対してメッセージを送る。</p>
<pre><code class="language-javascript">const CronJob = require(&quot;cron&quot;).CronJob;
const Reminder = require(&quot;slack-channel-active-reminder&quot;).default;

const reminder = new Reminder();

const job = new CronJob({
  cronTime: &quot;0 00 18 * * 1-5&quot;,
  onTick: function () {
    reminder.postRemindMessage();
  },
  start: false,
  timeZone: &quot;Asia/Tokyo&quot;,
});
job.start();
</code></pre>
<p>中身は <code>@slack/client</code> を使っているだけ。 便利なAPIが多いと助かる。</p>
<h2 id="">追記</h2><p><a href="https://github.com/9renpoto/slack-channel-active-reminder/pull/9">https://github.com/9renpoto/slack-channel-active-reminder/pull/9</a></p>
<p><code>flow gen-flow-files</code> が良いものをだしてくれないため外す。 早く1.0
が待ち遠しい。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 14 May 2017 13:39:17 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/05/14/slack-channel-active-reminder</link><guid>https://9renpoto.win/entry/2017/05/14/slack-channel-active-reminder</guid>
    </item><item>
      <title><![CDATA[prettier < eslint]]></title>
      <description><![CDATA[
# eslint-config-prettier は使わない

[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/p]]></description>
      <content:encoded><![CDATA[<h1 id="eslint-config-prettier">eslint-config-prettier は使わない</h1><p><a href="https://github.com/prettier/prettier"><img src="https://img.shields.io/badge/styled_with-prettier-ff69b4.svg" alt="styled with prettier"></a></p>
<p><a href="https://github.com/prettier/eslint-config-prettier">https://github.com/prettier/eslint-config-prettier</a></p>
<ul>
<li><code>prettier</code> で直してくれそうな機能を <code>off</code> にして干渉を回避する<ul>
<li>linterにはならないので警告されない</li>
</ul>
</li>
<li><code>pretter-atom</code>の挙動が若干不審</li>
<li><code>prettier</code>にconfig設定がないようなのでまだまだフォーマットが変わる</li>
</ul>
<h2 id="next">next</h2><ul>
<li><code>pretter-atom</code> を読む<ul>
<li><code>prettier-eslint</code> が並行して動くことが最低条件</li>
</ul>
</li>
<li>更新を見守る<ul>
<li>特にstandard、Flowとの関係</li>
</ul>
</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Wed, 10 May 2017 15:41:58 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/05/11/eslint-config-prettier</link><guid>https://9renpoto.win/entry/2017/05/11/eslint-config-prettier</guid>
    </item><item>
      <title><![CDATA[prettier 事始め]]></title>
      <description><![CDATA[
# prettier

&lt;https://github.com/prettier&gt;

[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com]]></description>
      <content:encoded><![CDATA[<h1 id="prettier">prettier</h1><p><a href="https://github.com/prettier">https://github.com/prettier</a></p>
<p><a href="https://github.com/prettier/prettier"><img src="https://img.shields.io/badge/styled_with-prettier-ff69b4.svg" alt="styled with prettier"></a></p>
<p><code>eslint --fix</code> が最高だと思っていたがまた新たにformatterが出たので依存する。</p>
<h2 id="eslint-config-prettier">eslint-config-prettier</h2><p><a href="https://github.com/prettier/eslint-config-prettier">https://github.com/prettier/eslint-config-prettier</a></p>
<ul>
<li>設定<ul>
<li><a href="https://github.com/9renpoto/frontend/pull/25">https://github.com/9renpoto/frontend/pull/25</a></li>
</ul>
</li>
<li>困りごと<ul>
<li><a href="https://github.com/standard/eslint-config-standard">https://github.com/standard/eslint-config-standard</a>
に依存している（<strong>セミコロン除外</strong>）と現状相性が悪い</li>
<li>issueがあるようなので今後見直す</li>
</ul>
</li>
</ul>
<h2 id="prettier-eslint-prettier-eslint-cli">prettier-eslint / prettier-eslint-cli</h2><blockquote>
<p>Code ➡️ prettier ➡️ eslint --fix ➡️ Formatted Code ✨</p>
</blockquote>
<p><a href="https://github.com/prettier/prettier-atom">https://github.com/prettier/prettier-atom</a> に依存して様子を見る。現状若干重い。
<strong>上記セミコロン問題の取りこぼしなどがあり鶏卵になる。</strong></p>
<h2 id="typescript">TypeScript</h2><ul>
<li><a href="https://github.com/eslint/typescript-eslint-parser">https://github.com/eslint/typescript-eslint-parser</a> とは干渉して動かない</li>
<li>TypeScriptのformatも計画されているようで期待</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 07 May 2017 06:39:59 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/05/07/prettier</link><guid>https://9renpoto.win/entry/2017/05/07/prettier</guid>
    </item><item>
      <title><![CDATA[PS4破損]]></title>
      <description><![CDATA[
# TL;DR

- 修理は見送り
- 気が向いたらスリムを買い直す（4Kテレビを買う予定がない）

![ps4](/ps4-CUH-1200AB01.png)

## 言われてみれば PlayStation は初破損

- 購入したのはBloodborne発売次期だったはずなので2015年春頃
]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>修理は見送り</li>
<li>気が向いたらスリムを買い直す（4Kテレビを買う予定がない）</li>
</ul>
<p><img src="/ps4-CUH-1200AB01.png" alt="ps4"></p>
<h2 id="playstation">言われてみれば PlayStation は初破損</h2><ul>
<li>購入したのはBloodborne発売次期だったはずなので2015年春頃<ul>
<li>ちょうど2年目で破損</li>
</ul>
</li>
<li>PS1からPS4までなんだかんだ買っていたが壊れたのは初めて</li>
<li>最後に壊したハードはXbox360アーケードだった記憶</li>
<li>PS4でプレイしたもの<ul>
<li>Overwatch</li>
<li>Dark Souls 3</li>
<li>Bloodborne</li>
</ul>
</li>
<li>積み<ul>
<li>BIOHAZARD7</li>
<li>Bloodborne DLC</li>
</ul>
</li>
</ul>
<h2 id="">次買うなら</h2><ul>
<li>とりあえずスタンバイ起動でのアップデートはやめる</li>
<li>過去の経験的に3年ぐらいは保証されたい</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 25 Feb 2017 15:48:56 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/02/26/goodbye-ps4</link><guid>https://9renpoto.win/entry/2017/02/26/goodbye-ps4</guid>
    </item><item>
      <title><![CDATA[sticker 選手権]]></title>
      <description><![CDATA[
# お世話になった

手放すことになったので綺麗にする。

![before](/IMG_1099.JPG)

手動の限界。

![after](/IMG_1101.JPG)

薬品使ってなんとかここまで、お世話になりました。

![final](/IMG_1102.JPG)
]]></description>
      <content:encoded><![CDATA[<h1 id="">お世話になった</h1><p>手放すことになったので綺麗にする。</p>
<p><img src="/IMG_1099.JPG" alt="before"></p>
<p>手動の限界。</p>
<p><img src="/IMG_1101.JPG" alt="after"></p>
<p>薬品使ってなんとかここまで、お世話になりました。</p>
<p><img src="/IMG_1102.JPG" alt="final"></p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 19 Jan 2017 14:51:16 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/01/19/sticker</link><guid>https://9renpoto.win/entry/2017/01/19/sticker</guid>
    </item><item>
      <title><![CDATA[2016 package.json]]></title>
      <description><![CDATA[
# 現在依存モジュール

- `eslint` 最高
  - これがないと仕事ができない
- `typescript` から `flow-bin` へ引っ越し中
  - 既存のコードにも強気で入れられるflowtypeは魅力的
- `gulp` への依存は最小限、`npm-run-all` で手軽]]></description>
      <content:encoded><![CDATA[<h1 id="">現在依存モジュール</h1><ul>
<li><code>eslint</code> 最高<ul>
<li>これがないと仕事ができない</li>
</ul>
</li>
<li><code>typescript</code> から <code>flow-bin</code> へ引っ越し中<ul>
<li>既存のコードにも強気で入れられるflowtypeは魅力的</li>
</ul>
</li>
<li><code>gulp</code> への依存は最小限、<code>npm-run-all</code> で手軽に対応</li>
<li><code>mocha</code>, <code>power-assert</code> 便利だし特に困っていない<ul>
<li><code>karma</code>, <code>jsdom</code>
との組み合わせを試したがそれぞれできることとできないことはある</li>
<li>e2eは別でする</li>
</ul>
</li>
</ul>
<table>
<thead>
<tr>
<th align="center">sum</th>
<th align="left">name</th>
</tr>
</thead>
<tbody><tr>
<td align="center">19</td>
<td align="left">eslint</td>
</tr>
<tr>
<td align="center">14</td>
<td align="left">npm-run-all</td>
</tr>
<tr>
<td align="center">10</td>
<td align="left">typescript</td>
</tr>
<tr>
<td align="center">10</td>
<td align="left">tslint</td>
</tr>
<tr>
<td align="center">10</td>
<td align="left">power-assert</td>
</tr>
<tr>
<td align="center">10</td>
<td align="left">flow-bin</td>
</tr>
<tr>
<td align="center">9</td>
<td align="left">rimraf</td>
</tr>
<tr>
<td align="center">9</td>
<td align="left">mocha</td>
</tr>
<tr>
<td align="center">9</td>
<td align="left">@9renpoto/eslint-config</td>
</tr>
<tr>
<td align="center">7</td>
<td align="left">codecov</td>
</tr>
<tr>
<td align="center">7</td>
<td align="left">babel-plugin-transform-flow-strip-types</td>
</tr>
<tr>
<td align="center">7</td>
<td align="left">@9renpoto/tslint-config</td>
</tr>
<tr>
<td align="center">7</td>
<td align="left">@9renpoto/eslint-config-flowtype</td>
</tr>
<tr>
<td align="center">6</td>
<td align="left">greenkeeper-postpublish</td>
</tr>
<tr>
<td align="center">6</td>
<td align="left">flow-typed</td>
</tr>
<tr>
<td align="center">5</td>
<td align="left">webpack</td>
</tr>
<tr>
<td align="center">5</td>
<td align="left">@types/power-assert</td>
</tr>
<tr>
<td align="center">5</td>
<td align="left">@types/mocha</td>
</tr>
<tr>
<td align="center">4</td>
<td align="left">typescript-eslint-parser</td>
</tr>
<tr>
<td align="center">4</td>
<td align="left">style-loader</td>
</tr>
<tr>
<td align="center">4</td>
<td align="left">nyc</td>
</tr>
<tr>
<td align="center">4</td>
<td align="left">babel-register</td>
</tr>
<tr>
<td align="center">4</td>
<td align="left">babel-preset-power-assert</td>
</tr>
<tr>
<td align="center">4</td>
<td align="left">babel-loader</td>
</tr>
<tr>
<td align="center">3</td>
<td align="left">ts-node</td>
</tr>
<tr>
<td align="center">3</td>
<td align="left">remap-istanbul</td>
</tr>
<tr>
<td align="center">3</td>
<td align="left">istanbul</td>
</tr>
<tr>
<td align="center">3</td>
<td align="left">intelli-espower-loader</td>
</tr>
<tr>
<td align="center">3</td>
<td align="left">hubot</td>
</tr>
<tr>
<td align="center">3</td>
<td align="left">ghpages</td>
</tr>
<tr>
<td align="center">3</td>
<td align="left">css-loader</td>
</tr>
<tr>
<td align="center">3</td>
<td align="left">babel-plugin-transform-es2015-modules-commonjs</td>
</tr>
<tr>
<td align="center">3</td>
<td align="left">babel-core</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">webpack-closure-compiler</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">tslint-config-standard</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">textlint-rule-sentence-length</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">textlint-rule-preset-jtf-style</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">textlint-rule-preset-ja-technical-writing</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">textlint-rule-preset-ja-spacing</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">textlint-rule-no-nfd</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">textlint-rule-no-mix-dearu-desumasu</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">textlint-rule-no-hankaku-kana</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">textlint-rule-no-dropping-the-ra</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">textlint-rule-no-doubled-joshi</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">textlint-rule-no-doubled-conjunctive-particle-ga</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">textlint-rule-no-doubled-conjunction</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">textlint-rule-no-double-negative-ja</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">textlint-rule-no-dead-link</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">textlint-rule-max-ten</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">textlint-rule-ja-no-weak-phrase</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">textlint-rule-ja-no-successive-word</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">textlint-rule-ja-no-mixed-period</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">textlint-rule-ja-no-abusage</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">textlint-rule-incremental-headers</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">textlint</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">stylelint</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">stylefmt</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">sass-loader</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">react-dom</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">react</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">pug-cli</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">node-sass</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">markdownlint-cli</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">jsdom-global</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">jsdom</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">faker</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">extract-text-webpack-plugin</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">empty</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">cross-env</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">concurrently</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">coffee-script</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">babel-preset-react</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">babel-eslint</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">@types/node</td>
</tr>
<tr>
<td align="center">2</td>
<td align="left">@9renpoto/eslint-config-react</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">zone.js</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">yo</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">webpack-sources</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">webpack-espower-loader</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">webpack-dev-server</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">webdriverio</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">wdio-mocha-framework</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">util-mix</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">url-loader</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">typings</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">typescript-require</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">ts-loader</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">tap</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">systemjs</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">stylelint-config-standard</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">static-i18n</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">serve-static</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">selenium-standalone</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">rxjs</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">rollup-plugin-typescript</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">rollup</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">resolve</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">require-dir</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">redux-saga</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">redux-logger</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">redux</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">redis</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">react-redux</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">react-addons-test-utils</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">raven-js</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">pug-lint-config-clock</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">pug-lint</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">progress</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">npm-check-updates</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">npm</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">moment</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">metalsmith</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">lodash</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">lite-server</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">karma-webpack</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">karma-mocha</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">karma-chrome-launcher</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">karma</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">json-loader</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">impress.js</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">hubot-slack</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">hubot-redis-brain</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">hubot-mock-adapter</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">hubot-heroku-keepalive</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">hubot-help</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">hubot-google-images</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">hubot-diagnostics</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">highlight.js</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">hexo-server</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">hexo-renderer-stylus</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">hexo-renderer-marked</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">hexo-renderer-ejs</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">hexo-generator-tag</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">hexo-generator-index</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">hexo-generator-category</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">hexo-generator-archive</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">hexo</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">gulp-if</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">gulp-htmlmin</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">gulp</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">grunt-gh-pages</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">grunt-docbase</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">grunt-contrib-connect</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">grunt</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">flowtype</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">fixpack</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">file-loader</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">espower-typescript</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">eslint-plugin-standard</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">eslint-plugin-react</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">eslint-plugin-promise</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">eslint-plugin-flowtype</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">eslint-config-standard-react</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">eslint-config-standard</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">enzyme</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">electron-prebuilt</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">electron</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">cron</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">core-js</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">commander</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">coffeelint</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">bulma</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">browserify</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">botkit</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">bootstrap</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">babelify</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">babel-preset-es2015</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">babel-polyfill</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">babel-plugin-transform-class-properties</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">babel-plugin-istanbul</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">babel-plugin-flow-react-proptypes</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">babel-cli</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">awesome-typescript-loader</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">autotrack</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">@types/webdriverio</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">@types/gulp-if</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">@types/gulp-htmlmin</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">@types/gulp</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">@types/cron</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">@kadira/storybook-deployer</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">@kadira/storybook</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">@angular/router</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">@angular/platform-browser-dynamic</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">@angular/platform-browser</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">@angular/core</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">@angular/compiler</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">@angular/common</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">@9renpoto/stylelint-config</td>
</tr>
<tr>
<td align="center">1</td>
<td align="left">@9renpoto/style</td>
</tr>
</tbody></table>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 03 Jan 2017 02:32:03 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/01/03/package-json</link><guid>https://9renpoto.win/entry/2017/01/03/package-json</guid>
    </item><item>
      <title><![CDATA[2016 and 2017]]></title>
      <description><![CDATA[
# 2015-2016 and 2017

![grass](/2016.png)

- Keep
  - ライブラリーの依存を増やす（眺めるライブラリーを増やす）
  - 見える場所にコードを書く
- Problem
  - 知識がフロントエンドに偏りがち
  - WIP増加
- Try
  -]]></description>
      <content:encoded><![CDATA[<h1 id="2015-2016-and-2017">2015-2016 and 2017</h1><p><img src="/2016.png" alt="grass"></p>
<ul>
<li>Keep<ul>
<li>ライブラリーの依存を増やす（眺めるライブラリーを増やす）</li>
<li>見える場所にコードを書く</li>
</ul>
</li>
<li>Problem<ul>
<li>知識がフロントエンドに偏りがち</li>
<li>WIP増加</li>
</ul>
</li>
<li>Try<ul>
<li>Functional Programming</li>
<li>簡易サービス運用</li>
</ul>
</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 01 Jan 2017 01:36:23 GMT</pubDate>
      <link>https://9renpoto.win/entry/2017/01/01/2016</link><guid>https://9renpoto.win/entry/2017/01/01/2016</guid>
    </item><item>
      <title><![CDATA[neovim 導入]]></title>
      <description><![CDATA[
# TL;DR

- neovimは早いように感じる
- lua拡張は動かない様子

## Install

公式の通りですんなり入りました。

```rb
# Brewfile

tap &#039;neovim/neovim&#039;
brew &#039;neovim&#039;
```

## Usage

- `~/.vim]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>neovimは早いように感じる</li>
<li>lua拡張は動かない様子</li>
</ul>
<h2 id="install">Install</h2><p>公式の通りですんなり入りました。</p>
<pre><code class="language-rb"># Brewfile

tap &#39;neovim/neovim&#39;
brew &#39;neovim&#39;
</code></pre>
<h2 id="usage">Usage</h2><ul>
<li><code>~/.vimrc</code> を見ていないようなので調整</li>
<li>基本的に設定は使い回せる</li>
</ul>
<pre><code class="language-shell">export XDG_CONFIG_HOME=~/src/github.com/9renpoto/dotfiles/.config
</code></pre>
<p>neocompleteが使えないようだがこの際プラグインを見直したいので一旦保留。</p>
<ul>
<li><a href="https://github.com/9renpoto/dotfiles/pull/45">https://github.com/9renpoto/dotfiles/pull/45</a></li>
</ul>
<h2 id="refs">Refs</h2><ul>
<li><a href="https://giginet.hateblo.jp/entry/2015/11/24/203823">https://giginet.hateblo.jp/entry/2015/11/24/203823</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 17 Dec 2016 05:03:55 GMT</pubDate>
      <link>https://9renpoto.win/entry/2016/12/17/first-nvim</link><guid>https://9renpoto.win/entry/2016/12/17/first-nvim</guid>
    </item><item>
      <title><![CDATA[nodefest 2016 参加メモ]]></title>
      <description><![CDATA[
# 参加メモ

## Building Interactive npm Command Line Modules

- arguments parsing
  - 200種以上のpackage
- yargs
  - `.help()` 便利
  - Interactiveなオプションを宣言的に記]]></description>
      <content:encoded><![CDATA[<h1 id="">参加メモ</h1><h2 id="building-interactive-npm-command-line-modules">Building Interactive npm Command Line Modules</h2><ul>
<li>arguments parsing<ul>
<li>200種以上のpackage</li>
</ul>
</li>
<li>yargs<ul>
<li><code>.help()</code> 便利</li>
<li>Interactiveなオプションを宣言的に記述できる</li>
</ul>
</li>
</ul>
<p><a href="https://lrlna.github.io/nodefest-2016/#1">https://lrlna.github.io/nodefest-2016/#1</a></p>
<h2 id="famicom-programming-with-javascript">Famicom programming with JavaScript</h2><ul>
<li>backgroundの背景を替えるためにはfor-loop4回</li>
</ul>
<h2 id="graphql-for-the-restful-crowd">GraphQL for the RESTful crowd</h2><p><a href="https://github.com/barakchamo">https://github.com/barakchamo</a></p>
<ul>
<li><p>graph QL</p>
<pre><code class="language-js">user(id: 1) {
  id,
  first_name
  last_name
}
</code></pre>
</li>
<li><p>fragment</p>
</li>
</ul>
<h2 id="the-seif-project">The Seif Project</h2><ul>
<li>webの問題はpassword, 簡単に盗まれる</li>
<li><code>Seif Project</code> の中ではカギ認証</li>
<li>seifnode</li>
<li><a href="https://github.com/paypal/seifnode">https://github.com/paypal/seifnode</a></li>
<li><a href="https://github.com/paypal/seif-protocol">https://github.com/paypal/seif-protocol</a></li>
<li><code>http://www.seif.place/</code></li>
</ul>
<h2 id="why-to-standardize-your-readmes">Why to Standardize your READMEs</h2><ul>
<li><a href="https://github.com/RichardLitt/standard-readme">https://github.com/RichardLitt/standard-readme</a></li>
</ul>
<h2 id="vuejs-20">Vue.js 2.0 サーバサイドレンダリング</h2><ul>
<li>レンダラ</li>
<li>ハイドレーション</li>
<li>コンテキスト</li>
<li>バンドリング</li>
</ul>
<p>サンプル <a href="https://github.com/vuejs/vue-hackernews-2.0">https://github.com/vuejs/vue-hackernews-2.0</a></p>
<h2 id="react-redux">React + Redux を使った大規模商用サービスの開発</h2><ol>
<li>Transition<ul>
<li>react-router<ul>
<li><code>onEnter</code>, 認証認可</li>
<li><code>replaceState</code> を使う</li>
</ul>
</li>
</ul>
</li>
<li>Code Splitting<ul>
<li>webpack <code>require.ensure</code></li>
<li><a href="https://github.com/richardscarrott/require-error-handler-webpack-plugin">https://github.com/richardscarrott/require-error-handler-webpack-plugin</a></li>
</ul>
</li>
<li>SSR<ul>
<li>Reactそのものは別に遅くない</li>
<li>Solution<ol>
<li>Partial Rendering<ul>
<li>firstViewだけSSR</li>
</ul>
</li>
</ol>
</li>
<li>Composite Rendering</li>
</ul>
</li>
</ol>
<h2 id="postcss-build-your-own-css-processor">PostCSS: Build your own CSS processor</h2><ul>
<li>reworkcssが元になっている</li>
</ul>
<h2 id="javascript">JavaScript による並列処理：共有メモリとロック</h2><p><a href="https://speakerdeck.com/chikoski/20161113-nodefest">https://speakerdeck.com/chikoski/20161113-nodefest</a></p>
<p>@chikoski</p>
<pre><code class="language-js">// 提案中..
window.setImmidiate(() =&gt; {
  doTask();
});
</code></pre>
<pre><code class="language-js">// 別threadで実行したいjsを指定する
const worker = new Worker(&quot;worker.js&quot;);
</code></pre>
<p><code>arrayBuffer</code> はポインタ渡し可能になった =&gt; <code>SharedArrayButter</code></p>
<pre><code class="language-js">// 割り込まれない処理の記述
Atomics;
</code></pre>
<pre><code class="language-js">Atomics.wake;
Atomics.wait;
</code></pre>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 13 Nov 2016 00:51:54 GMT</pubDate>
      <link>https://9renpoto.win/entry/2016/11/13/nodefest</link><guid>https://9renpoto.win/entry/2016/11/13/nodefest</guid>
    </item><item>
      <title><![CDATA[第3回 Reactive System Meetup in 西新宿]]></title>
      <description><![CDATA[
# 参加メモ

&lt;https://reactive-shinjuku.connpass.com/event/38411/&gt;

ハッシュタグ `#reactive_shinjuku`

## リアクティブ DDD について

株式会社ChatWork加藤潤一氏（@j5ik2o）

- リアクティブD]]></description>
      <content:encoded><![CDATA[<h1 id="">参加メモ</h1><p><a href="https://reactive-shinjuku.connpass.com/event/38411/">https://reactive-shinjuku.connpass.com/event/38411/</a></p>
<p>ハッシュタグ <code>#reactive_shinjuku</code></p>
<h2 id="ddd">リアクティブ DDD について</h2><p>株式会社ChatWork加藤潤一氏（@j5ik2o）</p>
<ul>
<li>リアクティブDDD<ul>
<li>リアクティブシステム &amp;&amp; ドメイン駆動設計</li>
</ul>
</li>
<li>ActorはDDDで示されるコンセプトを表現できる</li>
<li>リアクティブシステムとAkka</li>
<li>リアクティブ宣言 <a href="https://www.reactivemanifesto.org/">https://www.reactivemanifesto.org/</a><ul>
<li>Elastic</li>
<li>Responsive</li>
<li>Reslilient</li>
<li>Message Driven</li>
</ul>
</li>
<li>ソフトウェアの災いを表す用語<ul>
<li>誤差・誤り（error)</li>
<li>欠陥（defect, バグを含む概念）</li>
<li>障害（fault)</li>
<li>故障（failure)</li>
</ul>
</li>
<li>メッセージ駆動</li>
<li>Akka<ul>
<li>2011年の記事ではErlangの2倍のスループットを発揮した</li>
</ul>
</li>
<li>ドメインモデル<ul>
<li><code>モデル = 考え方とコードを結びつけたソフトウェア</code> を実現する</li>
</ul>
</li>
<li>ドメイン層の隔離</li>
</ul>
<p>ここからスライドを参照してあとで勉強する。</p>
<p><a href="https://speakerdeck.com/yoskhdia/modeling-the-domain-event">https://speakerdeck.com/yoskhdia/modeling-the-domain-event</a></p>
<h2 id="lagom-reactive-microservices-architecture">Lagom で学ぶ Reactive Microservices Architecture</h2><p>株式会社TIS根来和輝（@negokaz）</p>
<ul>
<li>Reactive Microservices Architecture</li>
<li>Lagom<ul>
<li>非同期・ノンブロッキングAPI</li>
<li>Shardingによるステートフルアーキテクト</li>
<li>分散型の永続化機構<ul>
<li>CQRS + Event Sroucing</li>
</ul>
</li>
<li>Circuit Breaker</li>
</ul>
</li>
</ul>
<p><a href="http://www.slideshare.net/negokaz/lagom-reactive-microservices-architecture">www.slideshare.net/negokaz/lagom-reactive-microservices-architecture</a></p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 29 Sep 2016 10:02:35 GMT</pubDate>
      <link>https://9renpoto.win/entry/2016/09/29/reactive-shinjuku</link><guid>https://9renpoto.win/entry/2016/09/29/reactive-shinjuku</guid>
    </item><item>
      <title><![CDATA[macOS キーチェインが動かなくなったので keychain を導入する]]></title>
      <description><![CDATA[
# macOS update メモ

ssh passphraseを常に問い合わされるようになった。

## 調査

- keychain
- ssh-agent

## keychain 入れてみる

- &lt;https://github.com/9renpoto/dotfiles/pull/32]]></description>
      <content:encoded><![CDATA[<h1 id="macos-update">macOS update メモ</h1><p>ssh passphraseを常に問い合わされるようになった。</p>
<h2 id="">調査</h2><ul>
<li>keychain</li>
<li>ssh-agent</li>
</ul>
<h2 id="keychain">keychain 入れてみる</h2><ul>
<li><a href="https://github.com/9renpoto/dotfiles/pull/32">https://github.com/9renpoto/dotfiles/pull/32</a></li>
</ul>
<p>解決出来た様子。</p>
<h2 id="refs">Refs</h2><ul>
<li><a href="https://qiita.com/u6k/items/5970618c4a8c23f71fb9">https://qiita.com/u6k/items/5970618c4a8c23f71fb9</a></li>
<li><a href="https://qiita.com/tukiyo3/items/045f86c4242ec53953e2">https://qiita.com/tukiyo3/items/045f86c4242ec53953e2</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 25 Sep 2016 03:11:46 GMT</pubDate>
      <link>https://9renpoto.win/entry/2016/09/25/ssh-agent</link><guid>https://9renpoto.win/entry/2016/09/25/ssh-agent</guid>
    </item><item>
      <title><![CDATA[Frontend Meetup 01 参加メモ]]></title>
      <description><![CDATA[
# Frontend Meeup \#1

&lt;https://connpass.com/event/38112/&gt;

## React/Redux で快適フロントエンドライフ（仮）

by @takayuki_shmz (株式会社FiNC)

&lt;https://xtech.nikkei.com/i]]></description>
      <content:encoded><![CDATA[<h1 id="frontend-meeup-1">Frontend Meeup #1</h1><p><a href="https://connpass.com/event/38112/">https://connpass.com/event/38112/</a></p>
<h2 id="reactredux">React/Redux で快適フロントエンドライフ（仮）</h2><p>by @takayuki_shmz (株式会社FiNC)</p>
<p><a href="https://xtech.nikkei.com/it/atcl/column/16/050900104/051000005/">https://xtech.nikkei.com/it/atcl/column/16/050900104/051000005/</a></p>
<ul>
<li>React &amp; Redux<ul>
<li>学習コスト</li>
<li>JSX(うんじゃら）</li>
</ul>
</li>
<li>後悔したこと<ul>
<li>つらいコンポーネント</li>
<li>つらい繰り返し・テスト</li>
<li>つらいデータの扱い</li>
</ul>
</li>
<li>最初に抑えるべき<ul>
<li>正しいコンポーネント思考<ul>
<li>smart component<ul>
<li>dumbコンポーネントとaction, storeを繋ぐ</li>
</ul>
</li>
<li>dumb component</li>
</ul>
</li>
</ul>
</li>
<li>Statelessコンポーネントが原則<ul>
<li>case by caseだけども</li>
</ul>
</li>
<li>cssはコンポーネントと1v1</li>
<li>this.contents<ul>
<li><a href="https://legacy.reactjs.org/docs/context.html">https://legacy.reactjs.org/docs/context.html</a></li>
<li>API層をcontextに渡しcontainerを呼ぶ</li>
</ul>
</li>
</ul>
<h2 id="spareactfluxflowtype">革命と秩序と SPA(React、flux、flowtype)</h2><p>by @joe_re (freee株式会社）</p>
<p><a href="https://speakerdeck.com/joere/ge-ming-tozhi-xu-tospa">https://speakerdeck.com/joere/ge-ming-tozhi-xu-tospa</a></p>
<ul>
<li>backone</li>
<li>freee-mvc-framework</li>
<li>vue<ul>
<li>mvvm</li>
</ul>
</li>
<li>react &amp; flux<ul>
<li>single-stateを途中から導入するのがツラい</li>
<li>flux-utils<ul>
<li>サポートの範囲が小さい分外しやすい</li>
</ul>
</li>
</ul>
</li>
<li>flowtype</li>
</ul>
<h2 id="angular">Angular と心中する（仮）</h2><p>by @Quramy (株式会社WACUL)</p>
<p><a href="https://quramy.github.io/spa-knowhow-note/#/">https://quramy.github.io/spa-knowhow-note/#/</a></p>
<ul>
<li>WACUL<ul>
<li>TypeScript</li>
<li>angular 1.x</li>
</ul>
</li>
<li>Angular 1.x<ul>
<li>component</li>
<li>コードの自動生成</li>
<li>エラー周り</li>
</ul>
</li>
<li>style管理問題<ul>
<li>BEM</li>
<li>component:css = 1:1</li>
<li><a href="https://github.com/ukyo/angular-simple-bem">https://github.com/ukyo/angular-simple-bem</a></li>
</ul>
</li>
<li>Rollbar<ul>
<li>裏でsourcemap連携</li>
</ul>
</li>
</ul>
<h2 id="spa">コンテンツ配信とSPA。</h2><p>by @konpyu (Piece of cake,Inc)</p>
<ul>
<li>note <a href="https://note.com/">https://note.com/</a><ul>
<li>angular 1.3</li>
<li>mobile遅い</li>
</ul>
</li>
<li>Drupal8</li>
<li>SSR</li>
<li>HTTP2</li>
</ul>
<h2 id="spa">SPA と覚悟</h2><p>by @teppeis (サイボウズ）</p>
<ul>
<li>SPA<ul>
<li>ブラウザーにとっては1枚のページに見えている</li>
<li>ブラウザーの体験を超える覚悟がある</li>
</ul>
</li>
<li>初回ロード</li>
<li>a11y</li>
<li>ブラウザーを越えすぎても駄目</li>
</ul>
<h2 id="angular2">Angular2 でつまづいたところ（仮）</h2><p>by @nacika_ins</p>
<h2 id="1px">1px をめぐる戦い</h2><p>@yoshiko_pg</p>
<p><a href="https://yoshiko-pg.github.io/slides/20160916-spa/">https://yoshiko-pg.github.io/slides/20160916-spa/</a></p>
<h2 id="spa">SPA でのセッション管理とセキュリティ</h2><p>by @uryyyyyyy</p>
<ul>
<li><a href="https://qiita.com/uryyyyyyy/items/9a8276f7241b650f1c15">https://qiita.com/uryyyyyyy/items/9a8276f7241b650f1c15</a></li>
<li><a href="https://twitter.com/teppeis/status/776757447813771265">https://twitter.com/teppeis/status/776757447813771265</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Fri, 16 Sep 2016 10:29:30 GMT</pubDate>
      <link>https://9renpoto.win/entry/2016/09/16/frontend-meetup</link><guid>https://9renpoto.win/entry/2016/09/16/frontend-meetup</guid>
    </item><item>
      <title><![CDATA[storybook を TypeScript で動かす]]></title>
      <description><![CDATA[
# React Storybook を試す

## TL;DR

- react-storybookはcomponentのstyleguide
- TypeScriptのままでは動かせないので一度ビルドする（2016/09現在）
- addon拡張で開発が便利になるエコシステムはある
- 途中経過]]></description>
      <content:encoded><![CDATA[<h1 id="react-storybook">React Storybook を試す</h1><h2 id="tldr">TL;DR</h2><ul>
<li>react-storybookはcomponentのstyleguide</li>
<li>TypeScriptのままでは動かせないので一度ビルドする（2016/09現在）</li>
<li>addon拡張で開発が便利になるエコシステムはある</li>
<li>途中経過<ul>
<li><a href="https://github.com/9renpoto/style/tree/aab6f82ccb228a6b56a18223f6f66bf0f3bd78b1">9renpoto/style</a></li>
</ul>
</li>
</ul>
<h2 id="storybook">storybook</h2><ul>
<li><code>stories</code><ul>
<li><code>add</code> して一覧ページがカジュアルに作成できる</li>
<li><code>gh-pages</code> などで簡単にホストできる</li>
<li><code>HMR</code> ができるのはありがたい<ul>
<li>いろいろwatchしたくなる</li>
</ul>
</li>
</ul>
</li>
<li><code>webpack</code> にどっぷり依存</li>
</ul>
<h2 id="typescript-with-react">TypeScript with React</h2><ul>
<li><a href="https://gfx.hatenablog.com/entry/2016/09/12/162055">2016 年 9 月現在だと React アプリの TypeScript 採用は時期尚早</a><ul>
<li>確かに現状の型定義は古い</li>
<li>まだそこで困るほどReact使いこなせていない</li>
<li>緩く型を信じる・困ったら考える（個人では）</li>
</ul>
</li>
<li><code>tsx</code><ul>
<li>サポートありがたい</li>
<li>DOMを型付きで定義できることの安心感<ul>
<li>テストを書くのは意識高めになる必要がある</li>
</ul>
</li>
<li>便利だけど遅い</li>
</ul>
</li>
<li><code>webpack</code><ul>
<li>古いloaderが増えてきたex. <code>ts-loader</code></li>
<li><code>ts-loader</code> などでwatchはできないので <code>tsc -w</code> で様子を見る</li>
<li>ガッツリ依存せず疎結合にできるところは疎結合にする</li>
</ul>
</li>
</ul>
<h2 id="css-module">CSS-module</h2><ul>
<li>基本的に使わない方が良さそう</li>
<li>使う場合は構造化cssとして育てるのではなく、 <code>local</code> css
としてビルドしたほうが良さそう<ul>
<li>SDKなどで利用するのはアリ</li>
</ul>
</li>
</ul>
<h2 id="refs">Refs</h2><p><a href="https://developer.hatenastaff.com/entry/2016/04/14/150000">react-storybook を用いた React コンポーネント開発</a></p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 13 Sep 2016 12:38:08 GMT</pubDate>
      <link>https://9renpoto.win/entry/2016/09/13/storybook</link><guid>https://9renpoto.win/entry/2016/09/13/storybook</guid>
    </item><item>
      <title><![CDATA[勉強を続けること]]></title>
      <description><![CDATA[
# 勉強する

勉強について考える。

## TL;DR

- 勉強している人は本当に偉い
- 何事も尊敬できることは才能より努力

## 勉強から得られること

- 出来ないことができるようになる
- 出来る人のことを尊敬できるようになる
- 人間の時間は有限
  - 天才はいるが天才にはなれな]]></description>
      <content:encoded><![CDATA[<h1 id="">勉強する</h1><p>勉強について考える。</p>
<h2 id="tldr">TL;DR</h2><ul>
<li>勉強している人は本当に偉い</li>
<li>何事も尊敬できることは才能より努力</li>
</ul>
<h2 id="">勉強から得られること</h2><ul>
<li>出来ないことができるようになる</li>
<li>出来る人のことを尊敬できるようになる</li>
<li>人間の時間は有限<ul>
<li>天才はいるが天才にはなれない</li>
<li>効率化は二の次</li>
</ul>
</li>
<li>遊ぶことも勉強<ul>
<li>新しい知識を得ることは楽しい</li>
<li>出来ないことができるようになるため努力が必要</li>
<li>自分と相性の良い天性のことなんて存在した試しがない</li>
</ul>
</li>
</ul>
<h2 id="">まとめ</h2><ul>
<li>勉強は楽しい</li>
<li>時間は有限</li>
<li>求められたら勉強する</li>
</ul>
<h2 id="">余談</h2><p>Overwatchで勝てないのが厳しい。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 04 Sep 2016 15:54:18 GMT</pubDate>
      <link>https://9renpoto.win/entry/2016/09/05/study-motivation</link><guid>https://9renpoto.win/entry/2016/09/05/study-motivation</guid>
    </item><item>
      <title><![CDATA[#html5j 参加メモ]]></title>
      <description><![CDATA[
# html5j

![logo](https://events.html5j.org/conference/2016/9/assets/img/header/logo.svg)

`http://events.html6j.org/conference/2017/10/`

## 基調講演

s]]></description>
      <content:encoded><![CDATA[<h1 id="html5j">html5j</h1><p><img src="https://events.html5j.org/conference/2016/9/assets/img/header/logo.svg" alt="logo"></p>
<p><code>http://events.html6j.org/conference/2017/10/</code></p>
<h2 id="">基調講演</h2><p>speaker: 中村修。</p>
<p>大規模分散オペレーティングシステム。</p>
<ul>
<li>HDR</li>
<li>WebはWeb以外に存在するデータ表現を全てできるべき</li>
<li>全てinternetの上にある発想<ol>
<li>Big Data</li>
<li>AI</li>
<li>IoT</li>
</ol>
</li>
<li>Distributed Operating System</li>
<li>縦書きcss<ul>
<li>日本頑張ってる</li>
</ul>
</li>
</ul>
<p>speaker: 及川卓也。</p>
<ul>
<li>IE7担当してました</li>
<li>アプリケーションとしてのWeb<ul>
<li>API</li>
<li>Web Components</li>
<li>PWApps<ul>
<li>Service Worker</li>
</ul>
</li>
</ul>
</li>
<li>モバイルデバイスの普及<ul>
<li>ニュースキュレーションアプリ</li>
<li>AMP<ul>
<li>CMSやツールに依存している場合</li>
</ul>
</li>
</ul>
</li>
<li>今こそWebに再投資しよう</li>
</ul>
<h2 id="react">React の最新動向とベストプラクティス</h2><p>speaker: @koba04</p>
<ul>
<li>Stateless Function Components(SFC)</li>
<li>stateはviewに関係あるものだけで十分</li>
<li>React.PureComponent(v15.3.0~)<ul>
<li>ShoudComponentUpdateに類似（後で調べる）</li>
</ul>
</li>
<li><code>react-addons-perf</code><ul>
<li>計測ツール</li>
</ul>
</li>
<li>React.createClass<ul>
<li>徐々に非推奨</li>
<li>React.Componentへ</li>
</ul>
</li>
<li>High Order Function<ul>
<li>関数型っぽい</li>
<li><code>acdlite/recomponse</code></li>
</ul>
</li>
<li>stateの管理<ul>
<li>なるべく一箇所で管理</li>
<li>Redux<ul>
<li>Container Component<ul>
<li>更新処理・状態管理</li>
<li>DOMを持たない</li>
</ul>
</li>
<li>Presentational Component<ul>
<li>Viewの構築を担う</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>Componentをテストする<ul>
<li>TestUtil.renderInfoDocument</li>
<li>shallowRender</li>
<li><code>react-test-renderer</code></li>
</ul>
</li>
<li>開発をサポートするツール<ul>
<li><a href="https://github.com/zalmoxisus/redux-devtools-extension">https://github.com/zalmoxisus/redux-devtools-extension</a></li>
<li><a href="https://github.com/storybookjs/storybook">https://github.com/storybookjs/storybook</a></li>
</ul>
</li>
</ul>
<h2 id="service-worker-deep-dive">Service Worker Deep Dive</h2><p>speaker: @horo</p>
<p>slide:
<a href="https://docs.google.com/presentation/d/19x3yi7Jn-6In5igGYfEiK0tBfNI290BAclT0AiqDj4Q/pub?slide=id.p">https://docs.google.com/presentation/d/19x3yi7Jn-6In5igGYfEiK0tBfNI290BAclT0AiqDj4Q/pub?slide=id.p</a></p>
<p><a href="https://jakearchibald.github.io/isserviceworkerready/">https://jakearchibald.github.io/isserviceworkerready/</a></p>
<ul>
<li>stream<ul>
<li><a href="https://docs.google.com/presentation/d/19x3yi7Jn-6In5igGYfEiK0tBfNI290BAclT0AiqDj4Q/pub?slide=id.g1641acac50_0_0">https://docs.google.com/presentation/d/19x3yi7Jn-6In5igGYfEiK0tBfNI290BAclT0AiqDj4Q/pub?slide=id.g1641acac50_0_0</a></li>
<li>徐々に読み込んで処理できる</li>
<li><code>ReadableStream</code></li>
</ul>
</li>
<li><code>Unified Media Pipeline (android)</code></li>
<li>Usage<ul>
<li><code>rel=serviceworker</code></li>
</ul>
</li>
</ul>
<h2 id="the-first-step-to-angular-2">The First Step to Angular 2</h2><p>speaker: @laco0416</p>
<ul>
<li>Official Packages<ul>
<li><code>@angular/core</code></li>
<li><code>@angular/forms</code></li>
<li><code>@angular/http</code></li>
<li><code>@angular/router</code></li>
</ul>
</li>
<li>TypeScript<ul>
<li>常に正しいAPI</li>
</ul>
</li>
<li>API<ul>
<li><code>@component</code></li>
<li><code>@input</code> / <code>@output</code></li>
<li><code>@directive</code></li>
<li><code>@pipe</code></li>
<li><code>@NgModule</code></li>
</ul>
</li>
</ul>
<h2 id="web">Web パフォーマンス最前線</h2><ul>
<li>High Performance Web User Interface<ul>
<li>パフォーマンスに対する優先度<ul>
<li><code>RAIL</code> <a href="https://furoshiki.hatenadiary.jp/entry/2015/06/01/122537">https://furoshiki.hatenadiary.jp/entry/2015/06/01/122537</a><ul>
<li>Response</li>
<li>Animation</li>
<li>Idle</li>
<li>Loa</li>
</ul>
</li>
</ul>
</li>
<li><code>transform: translateZ(0)</code><ul>
<li>凶悪</li>
<li>Web標準： <code>will-change: transform</code><ul>
<li>Reduce GPU Memory</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>Scroll Performance<ul>
<li><code>&lt;img lazyload&gt;</code> :innocent:</li>
<li><code>intersectionObserver</code></li>
<li>throttle <a href="https://tsumikiinc.com/news/article/000337.html">https://tsumikiinc.com/news/article/000337.html</a><ul>
<li>TODO調べる</li>
</ul>
</li>
</ul>
</li>
<li>Task Optimization<ul>
<li><a href="https://devpixiv.hatenablog.com/entry/2015/12/24/182248">https://devpixiv.hatenablog.com/entry/2015/12/24/182248</a></li>
</ul>
</li>
</ul>
<h2 id="progressive-web-apps">Progressive Web Apps の導入基礎</h2><ul>
<li>Push Notification<ul>
<li>service worker</li>
<li>ユーザーの許諾を得て、メリットを提示してからやったほうが良い</li>
</ul>
</li>
</ul>
<p><a href="https://github.com/kuu/the-offline-cookbook-ja/blob/master/ja.md">https://github.com/kuu/the-offline-cookbook-ja/blob/master/ja.md</a></p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 03 Sep 2016 01:02:40 GMT</pubDate>
      <link>https://9renpoto.win/entry/2016/09/03/html5j</link><guid>https://9renpoto.win/entry/2016/09/03/html5j</guid>
    </item><item>
      <title><![CDATA[TypeScript のテスト環境を考える]]></title>
      <description><![CDATA[
# 上手く動かない

&lt;https://app.travis-ci.com/9renpoto/ts/builds/156475663&gt;

- アバウトな構成

```js
&quot;devDependencies&quot;: {
  &quot;@9renpoto/eslint-config&quot;: &quot;^1.1.0&quot;,
  &quot;]]></description>
      <content:encoded><![CDATA[<h1 id="">上手く動かない</h1><p><a href="https://app.travis-ci.com/9renpoto/ts/builds/156475663">https://app.travis-ci.com/9renpoto/ts/builds/156475663</a></p>
<ul>
<li>アバウトな構成</li>
</ul>
<pre><code class="language-js">&quot;devDependencies&quot;: {
  &quot;@9renpoto/eslint-config&quot;: &quot;^1.1.0&quot;,
  &quot;@9renpoto/tslint-config&quot;: &quot;^1.0.0&quot;,
  &quot;@types/mocha&quot;: &quot;^2.2.31&quot;,
  &quot;@types/power-assert&quot;: &quot;0.0.27&quot;,
  &quot;awesome-typescript-loader&quot;: &quot;^2.2.1&quot;,
  &quot;codecov&quot;: &quot;^1.0.1&quot;,
  &quot;eslint&quot;: &quot;^3.4.0&quot;,
  &quot;json-loader&quot;: &quot;^0.5.4&quot;,
  &quot;karma&quot;: &quot;^1.2.0&quot;,
  &quot;karma-coverage&quot;: &quot;^1.1.1&quot;,
  &quot;karma-firefox-launcher&quot;: &quot;^1.0.0&quot;,
  &quot;karma-mocha&quot;: &quot;^1.1.1&quot;,
  &quot;karma-sourcemap-loader&quot;: &quot;^0.3.7&quot;,
  &quot;karma-webpack&quot;: &quot;^1.8.0&quot;,
  &quot;mocha&quot;: &quot;^3.0.2&quot;,
  &quot;npm-run-all&quot;: &quot;^3.0.0&quot;,
  &quot;power-assert&quot;: &quot;^1.4.1&quot;,
  &quot;rimraf&quot;: &quot;^2.5.4&quot;,
  &quot;tslint&quot;: &quot;^3.15.1&quot;,
  &quot;typescript&quot;: &quot;^2.0.2&quot;,
  &quot;webpack&quot;: &quot;^1.13.2&quot;,
  &quot;webpack-espower-loader&quot;: &quot;^1.0.1&quot;
}
</code></pre>
<p><code>tsc</code> ・ <code>webpack</code> しても問題ないように見えるが、 <code>karma</code> を通した場合
<code>SyntaxError</code> など出てきて非常に厳しい。</p>
<p><a href="https://github.com/9renpoto/karma-power-assert-typescript-mocha-webpack-sample">https://github.com/9renpoto/karma-power-assert-typescript-mocha-webpack-sample</a></p>
<p>同様の構成で先に検証頂いているものを発見するも、現在構成との違いの無さに
こちらが動かない理由は不明、頭を悩ませる。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Wed, 31 Aug 2016 12:26:35 GMT</pubDate>
      <link>https://9renpoto.win/entry/2016/08/31/karma-webpack</link><guid>https://9renpoto.win/entry/2016/08/31/karma-webpack</guid>
    </item><item>
      <title><![CDATA[TypeScript で coverage を計測する]]></title>
      <description><![CDATA[
# TypeScript で Coverage report を計測する

## TL;DR

- [remap-istanbul](https://www.npmjs.com/package/remap-istanbul) を使う

## Usage

- `npm install remap-]]></description>
      <content:encoded><![CDATA[<h1 id="typescript-coverage-report">TypeScript で Coverage report を計測する</h1><h2 id="tldr">TL;DR</h2><ul>
<li><a href="https://www.npmjs.com/package/remap-istanbul">remap-istanbul</a> を使う</li>
</ul>
<h2 id="usage">Usage</h2><ul>
<li><code>npm install remap-istanbul</code></li>
<li><code>sourcemap: true</code></li>
</ul>
<h2 id="memo">Memo</h2><ul>
<li><code>tsc</code> &gt; <code>npm test</code> という流れになったためJavaScript としてテストをする形になる</li>
<li><a href="https://www.npmjs.com/package/espower-typescript">espower-typescript</a>
を使わないようになる<ul>
<li><code>espower-typescript</code> はtscのwrapperなのでtscする場合は使えなそう</li>
</ul>
</li>
<li><code>power-assert</code> が上手く構造を解釈してくれてなさそう<ul>
<li><code>espower-typescript</code> が担っていた役割を別で与える必要がある</li>
<li>TypeScriptに依存するなら無駄にbabel pluginなどは使いたくない<ul>
<li>TODO考える</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="refs">Refs</h2><ul>
<li><a href="http://blog.syati.info/post/typescript_coverage/">http://blog.syati.info/post/typescript_coverage/</a></li>
<li><a href="https://github.com/9renpoto/ts/pull/34">https://github.com/9renpoto/ts/pull/34</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 20 Aug 2016 05:28:25 GMT</pubDate>
      <link>https://9renpoto.win/entry/2016/08/20/typescript-coverage</link><guid>https://9renpoto.win/entry/2016/08/20/typescript-coverage</guid>
    </item><item>
      <title><![CDATA[TypeScript with power-assert]]></title>
      <description><![CDATA[
# TypeScript で power-assert を使いたい

[TypeScript テストについて](/entry/2016/06/23/typescript-module-test/)
少し調べました。

- &lt;https://github.com/9renpoto/ts/pull/3]]></description>
      <content:encoded><![CDATA[<h1 id="typescript-power-assert">TypeScript で power-assert を使いたい</h1><p><a href="/entry/2016/06/23/typescript-module-test/">TypeScript テストについて</a>
少し調べました。</p>
<ul>
<li><a href="https://github.com/9renpoto/ts/pull/31">https://github.com/9renpoto/ts/pull/31</a></li>
</ul>
<h2 id="">原因</h2><ul>
<li>TypeScriptがファイルパスを相対パスか絶対パスのどちらかで返す場合がある<ul>
<li><a href="https://github.com/Microsoft/TypeScript/blob/204f2c16c0d6ff851e4798c03a9646b625ac2bd7/src/compiler/core.ts#L821-L825">https://github.com/Microsoft/TypeScript/blob/204f2c16c0d6ff851e4798c03a9646b625ac2bd7/src/compiler/core.ts#L821-L825</a></li>
</ul>
</li>
</ul>
<h2 id="">対策</h2><ul>
<li><a href="https://github.com/teppeis/typescript-simple/pull/47">https://github.com/teppeis/typescript-simple/pull/47</a></li>
</ul>
<h2 id="">悩み</h2><ul>
<li><code>rootDir</code>, <code>outDir</code> の組み合わせで挙動が変わることを理解する必要がある</li>
<li><code>rootDirs</code> が入る（TypeScript 2.0~)</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 11 Aug 2016 12:43:32 GMT</pubDate>
      <link>https://9renpoto.win/entry/2016/08/11/module-test</link><guid>https://9renpoto.win/entry/2016/08/11/module-test</guid>
    </item><item>
      <title><![CDATA[riot.js 勉強会 #1]]></title>
      <description><![CDATA[
# Riot.js 勉強会 \#1

- &lt;https://riotjs-jp.connpass.com/event/35724/&gt;

## 参加メモ

- 小さいライブラリーを維持するための努力は大変
- セマンティックバージョニングは大事

## 悩み

- web component時代のc]]></description>
      <content:encoded><![CDATA[<h1 id="riotjs-1">Riot.js 勉強会 #1</h1><ul>
<li><a href="https://riotjs-jp.connpass.com/event/35724/">https://riotjs-jp.connpass.com/event/35724/</a></li>
</ul>
<h2 id="">参加メモ</h2><ul>
<li>小さいライブラリーを維持するための努力は大変</li>
<li>セマンティックバージョニングは大事</li>
</ul>
<h2 id="">悩み</h2><ul>
<li>web component時代のcss , htmlとの付き合い方<ul>
<li>styleguideはどこまで責任を持つべきか<ul>
<li>web componentライブラリーを含めて書くべきか</li>
</ul>
</li>
<li><a href="https://morishitter.hatenablog.com/entry/2016/07/29/204642">https://morishitter.hatenablog.com/entry/2016/07/29/204642</a><ul>
<li>まだCSS Modulesを使うべきか個人レベルではわからない</li>
<li>この記事を理解するための勉強あ必要</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="next">Next</h2><ul>
<li>styleguideを書く<ul>
<li><a href="https://github.com/9renpoto/style">https://github.com/9renpoto/style</a></li>
</ul>
</li>
<li>riotを使った簡単なものを作る<ul>
<li><code>https://github.com/9renpoto/profile</code></li>
</ul>
</li>
</ul>
<h2 id="">気持ち</h2><ul>
<li>できるだけ型のある世界で生きていく</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Wed, 27 Jul 2016 10:31:28 GMT</pubDate>
      <link>https://9renpoto.win/entry/2016/07/27/riotjs-jp-study</link><guid>https://9renpoto.win/entry/2016/07/27/riotjs-jp-study</guid>
    </item><item>
      <title><![CDATA[typescript test]]></title>
      <description><![CDATA[
# TypeScript の勉強を頑張ろう

- [9renpoto/javascript/pull/19](https://github.com/9renpoto/js/pull/19)

```json
{
  &quot;devDependencies&quot;: {
    &quot;eslint&quot;: &quot;^2.13]]></description>
      <content:encoded><![CDATA[<h1 id="typescript">TypeScript の勉強を頑張ろう</h1><ul>
<li><a href="https://github.com/9renpoto/js/pull/19">9renpoto/javascript/pull/19</a></li>
</ul>
<pre><code class="language-json">{
  &quot;devDependencies&quot;: {
    &quot;eslint&quot;: &quot;^2.13.1&quot;,
    &quot;espower-typescript&quot;: &quot;^5.0.1&quot;,
    &quot;mocha&quot;: &quot;^2.5.3&quot;,
    &quot;power-assert&quot;: &quot;^1.4.1&quot;,
    &quot;tslint&quot;: &quot;^3.11.0&quot;,
    &quot;typescript-eslint-parser&quot;: &quot;0.1.0-alpha-1&quot;,
    &quot;typings&quot;: &quot;^1.3.0&quot;
  }
}
</code></pre>
<p>下記を満たす簡単なサンプルを書く。</p>
<ul>
<li>複数module</li>
<li>mochaによるテスト</li>
<li>power-assertによるテスト</li>
</ul>
<p><code>espower-typescript</code> が通らないので中身を見て調べる。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 23 Jun 2016 02:25:56 GMT</pubDate>
      <link>https://9renpoto.win/entry/2016/06/23/typescript-module-test</link><guid>https://9renpoto.win/entry/2016/06/23/typescript-module-test</guid>
    </item><item>
      <title><![CDATA[Update Blog]]></title>
      <description><![CDATA[
# TL;DR

- Hugoを利用して `&lt;username&gt;.github.io` に公開
- [mozilla/oghliner](https://github.com/mozilla/oghliner)を利用してオフライン対応

## Hugo を利用して gh-pages にデプロイ

]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>Hugoを利用して <code>&lt;username&gt;.github.io</code> に公開</li>
<li><a href="https://github.com/mozilla/oghliner">mozilla/oghliner</a>を利用してオフライン対応</li>
</ul>
<h2 id="hugo-gh-pages">Hugo を利用して gh-pages にデプロイ</h2><p>公式ドキュメントでwercker-ci
を利用したデプロイ方法が<a href="https://gohugo.io/hosting-and-deployment/deployment-with-wercker/">紹介</a>されており、そちらを利用していましたが。</p>
<pre><code class="language-shell">http://9renpoto.github.io/&lt;project_name&gt;
</code></pre>
<p>という名前になってしまい、個人ページとして構築を目的とした場合不満があったため環境を見直し。</p>
<ul>
<li><a href="https://pages.github.com/">pages.github.com/</a></li>
<li><a href="https://qiita.com/eichann/items/4fe61b8b9bbafcfbe847#%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%82%922%E3%81%A4%E4%BD%9C%E6%88%90">qiita.com/eichann/items/4fe61b8b9bbafcfbe847</a></li>
</ul>
<p>を参考に問題を解決するために手を動かし始めました。</p>
<pre><code class="language-shell">&lt;username&gt;.github.io
</code></pre>
<p>リポジトリーを作成し <code>master</code> ブランチにpushされることによって公開される（not
gh-pages branch)ようなので。</p>
<p><code>public/</code> に生成されたものを <code>&lt;username&gt;.github.io</code> にdest
するように修正しました。</p>
<h2 id="">オフライン対応</h2><p><a href="https://github.com/mozilla/oghliner">mozilla/oghliner</a>がserviceWorker
を利用したオフライン化を簡単に提供していたので試しに使ってみる。</p>
<h2 id="feature">Feature</h2><p>ビルド・デプロイタスクを直す。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Wed, 13 Jan 2016 13:29:22 GMT</pubDate>
      <link>https://9renpoto.win/entry/2016/01/13/gh-pages</link><guid>https://9renpoto.win/entry/2016/01/13/gh-pages</guid>
    </item><item>
      <title><![CDATA[yapcasia]]></title>
      <description><![CDATA[
# yapc asia memo

yapcasiaに参加したときのメモを残します。

## Effective ES6

### denger

```javascript
function Persion(name) {
  this.name = name;
}

var p = Perso]]></description>
      <content:encoded><![CDATA[<h1 id="yapc-asia-memo">yapc asia memo</h1><p>yapcasiaに参加したときのメモを残します。</p>
<h2 id="effective-es6">Effective ES6</h2><h3 id="denger">denger</h3><pre><code class="language-javascript">function Persion(name) {
  this.name = name;
}

var p = Person(&quot;bob&quot;);
#p.name == undefined;
#window.name = &quot;bob&quot;;
</code></pre>
<ul>
<li><p>class</p>
<ul>
<li>constractor</li>
<li>newナシで呼ぶとError</li>
</ul>
</li>
<li><p>IE11 ES6は実装しない</p>
</li>
<li><p>transpiler</p>
<ul>
<li>ES6 to ES5</li>
</ul>
</li>
<li><p>polyfill</p>
<ul>
<li>buildinのclassをjs環境で動かすようにする</li>
</ul>
</li>
<li><p>Babel</p>
<ul>
<li>core.js # polyfill toolsもあるよ</li>
</ul>
</li>
<li><p>ES6 feature</p>
<ul>
<li><p>new syntax</p>
<ul>
<li>arrow function</li>
</ul>
<pre><code class="language-javascript">var add =&gt; (a,b) =&gt; {
    return a + b;
}
</code></pre>
<ul>
<li>class</li>
</ul>
<pre><code class="language-javascript">class Programmer extends Person {
  constracor(name, language) {
    super(name);
    this.language = language;
  }
}
</code></pre>
<ul>
<li>module</li>
</ul>
<pre><code class="language-javascript">export var foo = &#39;foo&#39;;
import (foo) from &#39;./module/path&#39;
</code></pre>
<ul>
<li>&#39;use strict&#39;<ul>
<li>書かなくていい</li>
</ul>
</li>
<li>block scope</li>
</ul>
<pre><code class="language-javascript">var a = &quot;outer&quot;;
function bar() {
  console.log(a);
  a = &quot;inner&quot;;
}
bar();
#undefined;
</code></pre>
<ul>
<li>arguments</li>
</ul>
<pre><code class="language-javascript">function foo(...rest) {}
</code></pre>
<pre><code class="language-javascript">function draw(x,y,{height:1,width:1} = {}) {
}
</code></pre>
<ul>
<li>template literal ` で文字列を囲むと改行付き文字列が定義できる</li>
<li>Promise<ul>
<li>callback地獄回避</li>
</ul>
</li>
<li>map/set</li>
<li>codePoint<ul>
<li>吉野家isvalid</li>
</ul>
</li>
</ul>
</li>
<li><p>trap</p>
</li>
</ul>
<pre><code class="language-javascript">if (a =&gt; 1) # if ( a &gt;= 1 ) が正
</code></pre>
<ul>
<li>balelっていこう</li>
</ul>
</li>
</ul>
<h2 id="">今フロントエンドで何が起こっているのか</h2><ul>
<li>htmlだけ返せばよかったような時代</li>
<li>ajaxの登場<ul>
<li>google map etc</li>
<li>ECMAscript5</li>
</ul>
</li>
<li>coffeescript</li>
<li>jQuery(from 2006)</li>
<li>backbonejs</li>
<li>nodejs(2009)</li>
<li>grunt(2012)<ul>
<li>config</li>
<li>plugin base</li>
</ul>
</li>
<li>typescript(2012)</li>
<li>AST<ul>
<li>abstract syntax template</li>
</ul>
</li>
<li>SPA<ul>
<li>問題<ul>
<li>SEO</li>
<li>Performance</li>
</ul>
</li>
</ul>
</li>
<li>AngularJS(2009)<ul>
<li>2way data binding</li>
<li>fullstack</li>
</ul>
</li>
<li>gulp<ul>
<li>stream base</li>
</ul>
</li>
<li>Browserify</li>
<li>ECMAscript 2015<ul>
<li>Stateless</li>
<li>Composable</li>
<li>stream</li>
</ul>
</li>
<li>babel (2014)</li>
<li>Service Workers<ul>
<li>Intercept Requeest<ul>
<li>offline / cahce</li>
<li>Background Sync</li>
<li>Push Notification</li>
</ul>
</li>
</ul>
</li>
<li>Extensible Web</li>
<li>Reactjs<ul>
<li>Stateless Component</li>
</ul>
</li>
<li>Flux</li>
<li>FRP<ul>
<li>Rx.js, Bacon.js</li>
</ul>
</li>
<li>Redux<ul>
<li>Inspired by Flux and Elm</li>
</ul>
</li>
</ul>
<h2 id="nodejs-iojs">どうしてこうなった Node.js と io.js の分裂と統合の行方。これからどう進化していくのか</h2><h3 id="nodejs-nodejs-nodejs">Node.js の歴史 (Node.js とは、Node.js が生まれた背景）</h3><ul>
<li>2001<ul>
<li>C10K Problem</li>
</ul>
</li>
<li>2007<ul>
<li>Web 2.0</li>
</ul>
</li>
<li>2009 ~ 2012<ul>
<li>JSConf EU<ul>
<li>Server-side JavaScript</li>
<li>Evented Non Blocking I/O</li>
<li>v8</li>
</ul>
</li>
<li>EventLoop Model<ul>
<li>libebb =&gt; libev/libeio &amp; libuv (Windows向け）</li>
<li>netv8 =&gt; node</li>
</ul>
</li>
<li>Joyent</li>
<li>破壊と創造<ul>
<li>APIがかなり深刻に変わる</li>
</ul>
</li>
<li>BDFL (優しい終身の独裁者モデル）</li>
</ul>
</li>
<li>2012 ~ 2014<ul>
<li>Socket.IO</li>
</ul>
</li>
</ul>
<h3 id="nodeiojs">Node/io.js の機能的な違いと性能的な違い</h3><ul>
<li>2014 ~<ul>
<li>node forward</li>
<li>BDFL =&gt; community model</li>
<li>Technical committee<ul>
<li>コアメンバー委員会</li>
</ul>
</li>
<li>Collaborator</li>
<li>Working group</li>
<li>Semantic Versioning<ul>
<li>major.minor.patch</li>
</ul>
</li>
<li>オープンガバナーンスモデル</li>
<li>Feature Node.js</li>
<li>io.jsのこと</li>
<li>node Foundation</li>
<li>log term suport</li>
</ul>
</li>
</ul>
<h3 id="nodeiojs">Node/io.js のロードマップ</h3><ul>
<li>ES6 compat ％ up</li>
<li>StrongScript</li>
<li>SimpleSteam</li>
<li>improve pref</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Fri, 21 Aug 2015 00:53:55 GMT</pubDate>
      <link>https://9renpoto.win/entry/2015/08/21/yapcasia</link><guid>https://9renpoto.win/entry/2015/08/21/yapcasia</guid>
    </item><item>
      <title><![CDATA[create hugo theme]]></title>
      <description><![CDATA[
# TL;DR

- ブログを `octpress` から `hugo` へ移行しました
- [hugo theme](https://github.com/9renpoto/delic) 書きました

## themeを書くために

cmd1つでテンプレート作成。

```shell
$ hug]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><ul>
<li>ブログを <code>octpress</code> から <code>hugo</code> へ移行しました</li>
<li><a href="https://github.com/9renpoto/delic">hugo theme</a> 書きました</li>
</ul>
<h2 id="theme">themeを書くために</h2><p>cmd1つでテンプレート作成。</p>
<pre><code class="language-shell">$ hugo new theme foo
.
└── themes
    └── foo
    ├── LICENSE.md
    ├── archetypes
    │   └── default.md
    ├── layouts
    │   ├── _default
    │   │   ├── list.html
    │   │   └── single.html
    │   ├── index.html
    │   └── partials
    │       ├── footer.html
    │       └── header.html
    ├── static
    │   ├── css
    │   └── js
    └── theme.toml
</code></pre>
<p><a href="https://gohugo.io/templates/">Document</a> がよくまとまっていますので参考に。</p>
<h2 id="todo">TODO</h2><ul>
<li><code>layouts/_default</code> 以外の使い方調べる</li>
<li>rss作成</li>
<li>bower installするbuild script</li>
</ul>
<h2 id="">感想</h2><p>octpressの時はtheme流用してたので手作りも勉強になりました。</p>
<p>t32kさんの<a href="https://github.com/t32k/mol">mol</a>を参考（ほぼコピー&amp;ペーストして）に作りました
ありがとうございます。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Mon, 11 May 2015 13:54:56 GMT</pubDate>
      <link>https://9renpoto.win/entry/2015/05/11/create-hugo-theme</link><guid>https://9renpoto.win/entry/2015/05/11/create-hugo-theme</guid>
    </item><item>
      <title><![CDATA[EscでIMEを抜ける]]></title>
      <description><![CDATA[
# vim など使ってると Escape して IME が残ってるとイライライラ

[ESC で確実に IME をオフにする](https://nobeans.hatenablog.com/entry/20090211/1234326782)を参考に設定を反映してみるも直ってないご様子。

どうも]]></description>
      <content:encoded><![CDATA[<h1 id="vim-escape-ime">vim など使ってると Escape して IME が残ってるとイライライラ</h1><p><a href="https://nobeans.hatenablog.com/entry/20090211/1234326782">ESC で確実に IME をオフにする</a>を参考に設定を反映してみるも直ってないご様子。</p>
<p>どうもGoogleIMEには神設定があるらしい。</p>
<p><img src="https://i.gyazo.com/64daf9848e558c14efc0df858aef8388.png" alt="image-googe-input"></p>
<p>これで <code>Esc</code> を使って快適に抜けられる最高。</p>
<p><img src="https://i.gyazo.com/2708f90efe1cebb5d4f5aad5195b1ce8.gif" alt="image"></p>
<h2 id="">参考</h2><ul>
<li>Vimでコマンドモードに戻るときIMEをオフにする <code>hotolab.net/blog/vim_ime</code></li>
<li><a href="https://nobeans.hatenablog.com/entry/20090211/1234326782">ESC で確実に IME をオフにする</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Fri, 11 Jul 2014 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2014/07/11/escape-ime</link><guid>https://9renpoto.win/entry/2014/07/11/escape-ime</guid>
    </item><item>
      <title><![CDATA[マルチカーソル]]></title>
      <description><![CDATA[
# 使い所がわからない

![image](https://i.gyazo.com/6f717eaff8e129c8669029f0a13a03e6.gif)

ハッシュの中だけを `{ foo: 1 }` のようなjsonフォーマットに直したいときatom
などでマルチカーソル操作をすると全部選]]></description>
      <content:encoded><![CDATA[<h1 id="">使い所がわからない</h1><p><img src="https://i.gyazo.com/6f717eaff8e129c8669029f0a13a03e6.gif" alt="image"></p>
<p>ハッシュの中だけを <code>{ foo: 1 }</code> のようなjsonフォーマットに直したいときatom
などでマルチカーソル操作をすると全部選択されてしまってツラまる。</p>
<p>良い方法が知りたい。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 10 Jul 2014 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2014/07/10/hash-to-json</link><guid>https://9renpoto.win/entry/2014/07/10/hash-to-json</guid>
    </item><item>
      <title><![CDATA[#hcj-2014]]></title>
      <description><![CDATA[
# Hadoop Conference Japan 2014 に参加してきました

個人的な所感としては。

- spark楽しそう（だけどまだ触るには勇気が）
- Prestoも熱そう
- MapR書くよりもSQL書く方がお手軽

以下はメモ書き。

## keynote

### hadoop]]></description>
      <content:encoded><![CDATA[<h1 id="hadoop-conference-japan-2014">Hadoop Conference Japan 2014 に参加してきました</h1><p>個人的な所感としては。</p>
<ul>
<li>spark楽しそう（だけどまだ触るには勇気が）</li>
<li>Prestoも熱そう</li>
<li>MapR書くよりもSQL書く方がお手軽</li>
</ul>
<p>以下はメモ書き。</p>
<h2 id="keynote">keynote</h2><h3 id="hadoop">hadoop を取り巻く環境について</h3><ul>
<li>始めて普及した並列分散<ul>
<li>データの読み込みのスループットを最大化<ul>
<li>全件データの処理を実現</li>
</ul>
</li>
<li>シンプルなモデル（MapReduce)</li>
<li>YARN<ul>
<li>MapReduceからそれ以外のアルゴリズムも</li>
<li>複数の並列分散エンジンを併用できる環境</li>
<li>メモリーの大容量化、10Gbpsネットワークの普及<ul>
<li>インメモリー処理の実現性の向上</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="the-future-of-data">The Future of Data</h3><p>Doug Cutting</p>
<ul>
<li>未来について<ul>
<li>ハードウェアの価格の低下、性能の向上</li>
<li>データの重要性の向上</li>
<li>オープンソースが勝ち残る</li>
</ul>
</li>
</ul>
<h3 id="the-future-of-spark">The Future of spark</h3><p>Patric Wendlell</p>
<ul>
<li>Sparkの目的<ul>
<li>データサイエンティスト、エンジニア能力の拡張</li>
<li>表現力のあるクリーンなAPIの提供</li>
<li>多様な環境にわたって統合されたランタイム</li>
</ul>
</li>
<li>API 　 stability<ul>
<li>3か月サイクルでマイナーリリース</li>
<li>必要におおじてメンテナンスリリース</li>
</ul>
</li>
<li>Spark SQL</li>
<li>MLlib<ul>
<li>Spark + R</li>
</ul>
</li>
<li>DataBricks</li>
</ul>
<h3 id="hadoop">Hadoop エコシステムの片鱗と見えてきた使いドコロ</h3><ul>
<li>TreasureData<ul>
<li>なぜHadoop使うのか<ul>
<li>Hadoopを使うのは最適な解か<ul>
<li>安いストレージとして使うだけならHadoopより良い物は沢山ある</li>
</ul>
</li>
<li>データの収集ソフトウェア<ul>
<li>多種多様なデータ・ソース</li>
<li>fluentd,flumea,kafka,sqoop</li>
</ul>
</li>
<li>ファイルフォーマット<ul>
<li>Schema on Read</li>
</ul>
</li>
<li>管理・人的コスト低減の支援</li>
<li>簡単にデータを扱うか<ul>
<li>Tez, Spark</li>
</ul>
</li>
<li>SQL on Hadoop<ul>
<li>Impala, SlarkSQL, Presto Drill</li>
<li>Mahout, Spark MLlib</li>
</ul>
</li>
<li>今までの時代<ul>
<li>データを入れるだけ入れたけど、レポート化できる人の限られている</li>
<li>今までは何でも入れられるだけ</li>
<li>これからはだれでも取り出せるようにしないと意味がない</li>
</ul>
</li>
<li>Hadoop -&gt; MPP<ul>
<li>Twitter: Hadoop -&gt; Vertica</li>
<li>Pinterest: Hadoop -&gt; redshift</li>
</ul>
</li>
<li>非構造化データの領域に踏み込む</li>
<li>混沌の時代</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="">セッション</h2><h3 id="hadoop">マルチテナント化に向けた Hadoop の最新セキュリティー事情</h3><ul>
<li>Hadoopのユースケースの移り変わり<ul>
<li>バッチ処理を効率よく行うため<ul>
<li>部門単位での利用、クラスターの乱立</li>
</ul>
</li>
<li>近年<ul>
<li>バッチ処理 + インタラクティブな処理</li>
<li>SQLによるアクセス</li>
</ul>
</li>
<li>データは一部の人だけのものではない<ul>
<li>クラスターの共有（マルチテナント）</li>
</ul>
</li>
<li>マルチテナントのメリット<ul>
<li>データの複製不要</li>
<li>業務の取り巻き</li>
<li>性能・効率の改善</li>
</ul>
</li>
<li>課題 　<ul>
<li>リソースの分離と管理</li>
<li>Role管理</li>
</ul>
</li>
</ul>
</li>
<li>マルチテナントとセキュリティーの関連性<ul>
<li>認証<ul>
<li>kerberos<ul>
<li>相手が何者であるかを保証するプロトコル</li>
<li>暗号化</li>
</ul>
</li>
</ul>
</li>
<li>認可<ul>
<li>HDFS ACL<ul>
<li>ファイルシステムレベルでのaccess control</li>
</ul>
</li>
<li>Apache Sentry<ul>
<li>データベース、テーブルview、行列の粒度でアクセス制御</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>認可モジュールSentryの紹介<ul>
<li>Apache Sentryはモジュールとして開発されている</li>
</ul>
</li>
</ul>
<h3 id="bigquery-and-the-world-after-mapreduce">BigQuery and the world after MapReduce</h3><ul>
<li>BigData at Google<ul>
<li>ログ分析するのにMapReduceを書いてる場合じゃない</li>
<li>BigQuery ( sql base )<ul>
<li>indexなんてないんや</li>
</ul>
</li>
<li>全文検索、120億行、10秒ぐらい</li>
<li>storage料金</li>
<li>Quesy料金</li>
</ul>
</li>
<li>Column Oriented Storage<ul>
<li>もはやスタンダード</li>
</ul>
</li>
<li>Colossus File System<ul>
<li>GFSの次のもの</li>
</ul>
</li>
<li>MPP<ul>
<li>1TBの内容を数秒で舐めるためには何台必要なのか</li>
</ul>
</li>
<li>JOIN<ul>
<li>small join</li>
<li>broadcast JOIN<ul>
<li>ばらまいてコピー =&gt; JOIN</li>
</ul>
</li>
<li>JOIN Each<ul>
<li>shuffleしてjoinできる</li>
</ul>
</li>
</ul>
</li>
<li>BigQuery Streaming<ul>
<li>fluentd</li>
<li>fluent-plugin-bigquery</li>
</ul>
</li>
<li>BigQuery User-Defined-Function-with-JavaScript<ul>
<li>クエリ内にJavaScript書く</li>
</ul>
</li>
<li>Cloud Pub/Sub</li>
<li>FlumeJava<ul>
<li><a href="https://pages.cs.wisc.edu/~akella/CS838/F12/838-CloudPapers/FlumeJava.pdf">論文あるよ!</a></li>
</ul>
</li>
<li>MillWheel<ul>
<li><a href="http://static.googleusercontent.com/media/research.google.com/ja//pubs/archive/41378.pdf">論文あるよ!</a></li>
</ul>
</li>
</ul>
<h3 id="sql">SQL によるバッチ処理とストリーム処理</h3><ul>
<li>@tagomoris<ul>
<li>stream処理<ul>
<li>norikra</li>
</ul>
</li>
<li>Hadoop<ul>
<li>Hive/ Presto</li>
</ul>
</li>
<li>SQL is NOT the best;<ul>
<li>But, SQL is better than NONE.</li>
</ul>
</li>
<li>Batch processing<ul>
<li>hive</li>
</ul>
</li>
<li>Stream processing<ul>
<li>storm</li>
<li>kafka</li>
<li>esper</li>
<li>norikra</li>
<li>fluentd</li>
</ul>
</li>
</ul>
</li>
<li>Lamda Architecture<ul>
<li>Streaming<ul>
<li>速報値</li>
</ul>
</li>
<li>Batch<ul>
<li>確定値</li>
</ul>
</li>
<li>両方に対応したい</li>
</ul>
</li>
<li>Stream処理<ul>
<li>レイテンシが低い</li>
<li>同じ処理をバッチとしても実行できる必要がある</li>
</ul>
</li>
</ul>
<h3 id="yarn">YARN</h3><ul>
<li>TD<ul>
<li>PlazumaDB<ul>
<li>S3上で動作</li>
<li>HDFS is not used</li>
</ul>
</li>
<li>Hadoop Cluster<ul>
<li>Customize hadoop</li>
<li>Customize hive</li>
<li>Customize Pig</li>
</ul>
</li>
<li>PlazumaDB<ul>
<li>Customize Impala</li>
<li>Customize Presto</li>
</ul>
</li>
<li>独自queue</li>
<li>独自scheduler</li>
<li>YARN cluster<ul>
<li>プロダクションにはまだ入れてないが環境整えている</li>
</ul>
</li>
</ul>
</li>
<li>YARNとは<ul>
<li>Job History Server注意<ul>
<li>起動してないと過去ログが追えなくなる</li>
</ul>
</li>
<li>NOTE<ul>
<li>Use the Hadoop 2.4.0 and later<ul>
<li>Capacity Scheduler、there is a bug</li>
<li>deadlock</li>
</ul>
</li>
<li>hadoop-conf-pseudo doees not work</li>
<li>2.2.0 and 2.4.0<ul>
<li>結構違うので注意</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="presto">Presto</h3><ul>
<li>what is Presto<ul>
<li>Facebookで作られてoss化</li>
<li>HDFS上のデータを可視化したい<ul>
<li>うまくいかない</li>
<li>hiveが遅すぎる</li>
</ul>
</li>
<li>hiveをバッチ化 =&gt; 中間DBに入れる<ul>
<li>中間DBはスケールしない</li>
</ul>
</li>
<li>HDFSに保存してないものは入れなきゃならない</li>
</ul>
</li>
<li>Presto<ul>
<li>中間データベースの取り除く有効な手段</li>
<li>他のデータストアを舐めることにも対応</li>
<li>Hiveとの使い分けが必要<ul>
<li>巨大なjoin</li>
<li>group by</li>
</ul>
</li>
<li>Interactiveなクエリを発行できる</li>
<li>複数のデータ・セットをまとめて表示できる</li>
</ul>
</li>
<li>BI tools<ul>
<li>可視化に利用していく</li>
<li><code>ODBC/JDBC is very complicated!</code></li>
</ul>
</li>
<li>Prestoの実行モデルについて<ul>
<li>not MapReduce</li>
<li>全部並行で動いてる<ul>
<li>一個死んだら全部死ぬ</li>
<li>メモリー溢れてしまうとクエリが死んでしまう</li>
</ul>
</li>
<li>メモリーの使用量はクラスターで管理されて、クラスターが死ぬことはない（はず）<ul>
<li>がクエリは死ぬ</li>
</ul>
</li>
</ul>
</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 08 Jul 2014 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2014/07/08/hcj</link><guid>https://9renpoto.win/entry/2014/07/08/hcj</guid>
    </item><item>
      <title><![CDATA[コメントを楽に入れる]]></title>
      <description><![CDATA[
# comment

![image](https://i.gyazo.com/4018e5f5ca75f1d8e374584233ad577a.gif)

vimだと矩形選択で頑張れるから甘えてましたがatomなど使っているとcomment
ショートカットが便利で良く使います。

![image]]></description>
      <content:encoded><![CDATA[<h1 id="comment">comment</h1><p><img src="https://i.gyazo.com/4018e5f5ca75f1d8e374584233ad577a.gif" alt="image"></p>
<p>vimだと矩形選択で頑張れるから甘えてましたがatomなど使っているとcomment
ショートカットが便利で良く使います。</p>
<p><img src="https://i.gyazo.com/d7058adad30b488c066ff44fac5c376b.gif" alt="image2"></p>
<p>vimでも使えるようにしました便利。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Mon, 07 Jul 2014 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2014/07/07/editor-comment</link><guid>https://9renpoto.win/entry/2014/07/07/editor-comment</guid>
    </item><item>
      <title><![CDATA[括弧の入力には欠かせない]]></title>
      <description><![CDATA[
# Surround

![image](https://i.gyazo.com/b1e2f9fd3623adf1a00afaf738c900de.gif)

surround.vim便利sublime-textでも使えるようですがatom
の公式パッケージにも早くほしい。
]]></description>
      <content:encoded><![CDATA[<h1 id="surround">Surround</h1><p><img src="https://i.gyazo.com/b1e2f9fd3623adf1a00afaf738c900de.gif" alt="image"></p>
<p>surround.vim便利sublime-textでも使えるようですがatom
の公式パッケージにも早くほしい。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 06 Jul 2014 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2014/07/06/surround</link><guid>https://9renpoto.win/entry/2014/07/06/surround</guid>
    </item><item>
      <title><![CDATA[GitGutter便利すぎ]]></title>
      <description><![CDATA[
# Gutter

![image](https://i.gyazo.com/9dda194e4854fcbe6f09e39c99f91273.png)

githubなどで開発しているとPRが便利で良くコードを見るようになりました
意味のないコード差分などはできれば出したくない。

sublim]]></description>
      <content:encoded><![CDATA[<h1 id="gutter">Gutter</h1><p><img src="https://i.gyazo.com/9dda194e4854fcbe6f09e39c99f91273.png" alt="image"></p>
<p>githubなどで開発しているとPRが便利で良くコードを見るようになりました
意味のないコード差分などはできれば出したくない。</p>
<p>sublime, atomにもあってvimにはないのかと思ってたら検索して3 分で見つかりました。</p>
<p>最高です。</p>
<p><a href="https://github.com/airblade/vim-gitgutter">vim-gitgutter</a></p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 05 Jul 2014 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2014/07/05/gitgutter</link><guid>https://9renpoto.win/entry/2014/07/05/gitgutter</guid>
    </item><item>
      <title><![CDATA[同じkeyのハッシュのを作る時の操作]]></title>
      <description><![CDATA[
# v-line edit

![image](https://i.gyazo.com/aa2a62f42d40670cbfb4a9edb48e0ed0.gif)

同じ変数名を利用してハッシュのようなものを作成するときに
情弱で、愚直な操作をしてしまっている。 もっと簡単に入力する方法を知りたい]]></description>
      <content:encoded><![CDATA[<h1 id="v-line-edit">v-line edit</h1><p><img src="https://i.gyazo.com/aa2a62f42d40670cbfb4a9edb48e0ed0.gif" alt="image"></p>
<p>同じ変数名を利用してハッシュのようなものを作成するときに
情弱で、愚直な操作をしてしまっている。 もっと簡単に入力する方法を知りたい。 atom
やsublime-textでは、さらに愚直に入力しており良い方法がないか知りたい。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 03 Jul 2014 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2014/07/03/v-line</link><guid>https://9renpoto.win/entry/2014/07/03/v-line</guid>
    </item><item>
      <title><![CDATA[読書 アジャイルサムライ]]></title>
      <description><![CDATA[
# メモ

アジャイル開発について悩んでおりましたので、噂のアジャイルサムライを読みました。

- 学べたこと
  - 考え方
    - 立場の明確化
      - プロダクトオーナー
      - スクラムマスター
      - 開発者
    - 立場に対して自分の役割が明確にある
 ]]></description>
      <content:encoded><![CDATA[<h1 id="">メモ</h1><p>アジャイル開発について悩んでおりましたので、噂のアジャイルサムライを読みました。</p>
<ul>
<li>学べたこと<ul>
<li>考え方<ul>
<li>立場の明確化<ul>
<li>プロダクトオーナー</li>
<li>スクラムマスター</li>
<li>開発者</li>
</ul>
</li>
<li>立場に対して自分の役割が明確にある<ul>
<li>わかりやすい</li>
</ul>
</li>
<li>大切なのは<strong>モノ</strong>を作ること<ul>
<li>未完成に価値はない</li>
</ul>
</li>
<li>時間・リソース・金は有限<ul>
<li>現実は非常に大切</li>
<li>優先順位の大切さ</li>
</ul>
</li>
</ul>
</li>
<li>流れ<ul>
<li>プロダクトオーナー<ul>
<li>作りたいものの決定</li>
<li>優先順位の決定</li>
</ul>
</li>
<li>スクラムマスター<ul>
<li>時間管理</li>
</ul>
</li>
<li>開発者<ul>
<li>見積もる</li>
<li>作る</li>
</ul>
</li>
</ul>
</li>
<li>ウォーターフォールとの違い<ul>
<li>見積もりが開発者に任せられてるところが良い</li>
<li>ストーリーポイントを基準に実現可能性を図る<ul>
<li>現実を見ている</li>
</ul>
</li>
<li>見積もれるタスク<ul>
<li>細かなサイクルを回すというよりも、見積もれる範囲を大切にするという考えに共感</li>
<li><strong>未完成に価値はない</strong> 完成品を作る（レビューする）</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>なるほどわかりやすい。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Wed, 25 Dec 2013 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2013/12/25/agile-samurai</link><guid>https://9renpoto.win/entry/2013/12/25/agile-samurai</guid>
    </item><item>
      <title><![CDATA[読書 Team Geek]]></title>
      <description><![CDATA[
# メモ

人間関係に悩んでおり、以下の本を読んでおりました。

読み終えたので簡単な感想をメモ。

- 大切
  - 謙虚
  - 信頼
  - 尊敬
- オープンに
  - 上の人は質問に堂々と答える
  - 下の人な恐れず質問する
- 責任
  - 重要
  - 自分事化

まず今までの失敗]]></description>
      <content:encoded><![CDATA[<h1 id="">メモ</h1><p>人間関係に悩んでおり、以下の本を読んでおりました。</p>
<p>読み終えたので簡単な感想をメモ。</p>
<ul>
<li>大切<ul>
<li>謙虚</li>
<li>信頼</li>
<li>尊敬</li>
</ul>
</li>
<li>オープンに<ul>
<li>上の人は質問に堂々と答える</li>
<li>下の人な恐れず質問する</li>
</ul>
</li>
<li>責任<ul>
<li>重要</li>
<li>自分事化</li>
</ul>
</li>
</ul>
<p>まず今までの失敗を繰り返さぬよう沢山実践して、違う失敗しよう。</p>
<blockquote>
<p>マーケティングの人のことを考えるとゾッとするのはなぜだろうか？
それはエンジニアリング文化と相入れないからだ．
ぼくたちの文化は「事実」に満ちあふれている．
コードはコンパイル「できる」と「できない」しかない．
ソフトウェアは機能を「持つ」と「持たない」しかない．
問題は解決「できる」と「できない」しかない．
説明を「引き伸ばす」ことはしない．事実だけを話す．</p>
<p>Brian W.Fitzpatrick, Ben Collins-Sussman（2013) 『Team Geek Google
のギークたちはいかにしてチームを作るのか』株式会社オライリー・ジャパン 150pp.</p>
</blockquote>
<p>学びとは少しそれた話ですが、上記の言葉が何よりも共感できました。</p>
<p>自分はエンジニアで居心地が良い。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Wed, 25 Dec 2013 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2013/12/25/team-geak</link><guid>https://9renpoto.win/entry/2013/12/25/team-geak</guid>
    </item><item>
      <title><![CDATA[入門chef]]></title>
      <description><![CDATA[
# chef memo

環境構築といえば、chefだという噂を随分と聞くようになってきましたが、
なんだかんだと使ってなかったのでメモ。 とはいえ、レシピは誰かが書いてるので、
今回は出来る限りレシピを使う方法で構築を目指す。

## 前準備

```ruby
# Gemfileに記載
sour]]></description>
      <content:encoded><![CDATA[<h1 id="chef-memo">chef memo</h1><p>環境構築といえば、chefだという噂を随分と聞くようになってきましたが、
なんだかんだと使ってなかったのでメモ。 とはいえ、レシピは誰かが書いてるので、
今回は出来る限りレシピを使う方法で構築を目指す。</p>
<h2 id="">前準備</h2><pre><code class="language-ruby"># Gemfileに記載
source &#39;https://rubygems。org&#39;  # URLの指定。呪文だと思って毎回書く

gem &#39;berkshelf&#39;
gem &#39;chef&#39;
gem &#39;knife-solo&#39;
</code></pre>
<p>必要なgemをいつものように。</p>
<pre><code class="language-shell">bundle install
</code></pre>
<p>chef-soloを使えるように初期設定を行う。</p>
<pre><code class="language-shell">bundle exec knife configure
</code></pre>
<h2 id="chef">そろそろchef</h2><p>ひな形の生成。</p>
<pre><code class="language-bash">$ bundle exec knife solo init chef-repo
$ tree chef-repo/
chef-repo/
├── cookbooks
├── data_bags
├── nodes
├── roles
├── site-cookbooks
└── solo。rb
</code></pre>
<p>忘れないうちにコミット。</p>
<pre><code class="language-shell">cd chef-repo
git init
git add 。
git commit -m &#39;first commit&#39;
</code></pre>
<p>公式なり、Githubにて公開されているレシピを利用しやすくるものとして <strong>Berksfile</strong>
があります。</p>
<pre><code class="language-ruby">site :opscode # Berksfile

cookbook &quot;apt&quot;
cookbook &quot;git&quot;
cookbook &quot;zsh&quot;
cookbook &#39;vim&#39;
cookbook &#39;the_silver_searcher&#39;
</code></pre>
<p>公開されているレシピの情報を記述しておけば、コマンド1つで落としてこれます。
便利。</p>
<pre><code class="language-shell">bundle exec berks install --permalink cookbooks
</code></pre>
<p>vagrant側でchefが使えるように以下のコマンドを実行。</p>
<pre><code class="language-shell">bundle exec knife solo prepare nodename
</code></pre>
<p>インストールしたいレシピを追加node/nodename.json。</p>
<pre><code class="language-js">{
  &quot;run_list&quot;: [
    &quot;recipe[apt]&quot;,
    &quot;recipe[git]&quot;,
    &quot;recipe[zsh]&quot;,
    &quot;recipe[vim]&quot;,
    &quot;recipe[the_silver_searcher]&quot;
  ]
}
</code></pre>
<p>レシピはできたのでcookしましょう。</p>
<pre><code class="language-shell">bundle exec knife solo cook nodename
</code></pre>
<h2 id="">参考</h2><ul>
<li><a href="https://qiita.com/uchiunyo/items/5aa243f7a39ae443e10d">qiita.com/uchiunyo/item</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 22 Dec 2013 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2013/12/22/my-first-chef</link><guid>https://9renpoto.win/entry/2013/12/22/my-first-chef</guid>
    </item><item>
      <title><![CDATA[クラス図を簡単に - PlantUML]]></title>
      <description><![CDATA[
# PlantUML

これから設計をはじめます、という時に
今までは小さな機能では、スキーマの設計から始めてしまっていたのですが。

久々に「クラス図を書いてみよう」という話になり どう書こうとなったのでメモ。

CUIで書けるのが最高です。

依存関係をテキストベースのみで記述できるので非常に]]></description>
      <content:encoded><![CDATA[<h1 id="plantuml">PlantUML</h1><p>これから設計をはじめます、という時に
今までは小さな機能では、スキーマの設計から始めてしまっていたのですが。</p>
<p>久々に「クラス図を書いてみよう」という話になり どう書こうとなったのでメモ。</p>
<p>CUIで書けるのが最高です。</p>
<p>依存関係をテキストベースのみで記述できるので非常に助かりました。</p>
<p>図の綺麗さなどを意識せず関係を記述することに集中できるのが魅力。</p>
<pre><code class="language-bash">wget http://sourceforge.net/projects/plantuml/files/plantuml.jar/download -O plantuml.jar
java -jar &quot;plantuml.jarのパス&quot; [option] 入力ファイル [...]
</code></pre>
<p>で入力ファイルを目的のUMLを生成します。</p>
<p>Graphvizが必要なのでインストールしておきます macはbrewだけで入りました。</p>
<pre><code class="language-bash">brew install graphviz
</code></pre>
<p>これだけで使えます。</p>
<pre><code class="language-plantuml">@startuml
class Bugs {
-bug_id
-description
-created_at
}

class Comments {
-comment_id
-bug_id
-auther
}

class Auther {
-id
-name
}

Bugs --_ Comments
Auther --_ Comments
@enduml
</code></pre>
<p><img src="https://dl.dropboxusercontent.com/u/9060848/PlantUML/PlantUML.png" alt="sample"></p>
<p>便利。</p>
<h2 id="">参考</h2><ul>
<li><a href="https://abicky.net/2012/10/16/093737/">https://abicky.net/2012/10/16/093737/</a></li>
<li><a href="http://yohshiy.blog.fc2.com/blog-entry-152.html">http://yohshiy.blog.fc2.com/blog-entry-152.html</a></li>
</ul>
<h2 id="gui">GUI関連</h2><p>Officeなどを使って作っても良いのですが、 専用のツールもメモ。</p>
<h3 id="astah">astah*</h3><p>Officeツール以外で関連ツールを探すと上位に出てくる<a href="https://astah.change-vision.com/ja/product/astah-community.html">良いツール</a>です。</p>
<h3 id="cacoo">Cacoo</h3><p>今までなかなか縁がなく利用していなかったCacooですが、そういえば使ってなかったなと思い軽く使ってみました。</p>
<p>ChromeAppなどで使えますし、お気軽さではダントツ。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Wed, 13 Nov 2013 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2013/11/13/plantuml</link><guid>https://9renpoto.win/entry/2013/11/13/plantuml</guid>
    </item><item>
      <title><![CDATA[riak meetup tokyo 2 に参加してきました]]></title>
      <description><![CDATA[
# riak meetup tokyo 2 memo

## RTB and FreakOut

RTB概略。

- ディスプレー広告の新しい見せ方
  - 1回の広告表示ごとに買い付け
  - オークション形式によりアラカルトメニュー

広告主のネット広告におけるROI最適を目指す。

RTBの]]></description>
      <content:encoded><![CDATA[<h1 id="riak-meetup-tokyo-2-memo">riak meetup tokyo 2 memo</h1><h2 id="rtb-and-freakout">RTB and FreakOut</h2><p>RTB概略。</p>
<ul>
<li>ディスプレー広告の新しい見せ方<ul>
<li>1回の広告表示ごとに買い付け</li>
<li>オークション形式によりアラカルトメニュー</li>
</ul>
</li>
</ul>
<p>広告主のネット広告におけるROI最適を目指す。</p>
<p>RTBの技術的課題。</p>
<h3 id="01">広告表示の時間は 0.1 秒</h3><ul>
<li>レイテンシの軽減</li>
<li>多数のRTBを処理</li>
<li>50mc or die</li>
</ul>
<h3 id="tokoykyototyranttycoon">[Tokoy|Kyoto][tyrant|tycoon]</h3><ul>
<li>高速</li>
<li>スケールは簡単にできない</li>
<li>運用実績はあるが用件を満たすのが難しい</li>
</ul>
<h2 id="riak-and-freakout">Riak and FreakOut</h2><ul>
<li>スループットを向上させるために<ul>
<li>hashからpartitionを特定する</li>
<li>素のままでは50mc or die的に厳しいため</li>
<li>構成の工夫が必要</li>
<li>スケーラビリティの問題を克服できるメリットは大きい</li>
<li>「サーバーを足すだけで運用」</li>
</ul>
</li>
</ul>
<h3 id="yokozuna">Yokozuna 日本語検索を評価しました</h3><p>@rev4t @yosisa</p>
<p>日本語検索： Yokozuna。</p>
<p>Solr XMLスキーマを利用した検索が可能便利そう。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Wed, 10 Jul 2013 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2013/07/10/riak-meetup-tokyo</link><guid>https://9renpoto.win/entry/2013/07/10/riak-meetup-tokyo</guid>
    </item><item>
      <title><![CDATA[Go Conference 2013 spring参加してきました #gocon]]></title>
      <description><![CDATA[
# Go Conference 参加メモ

![image](https://lh5.googleusercontent.com/-QHzKGzPe248/UtoeV0tBZyI/AAAAAAAAEuA/zr0wYEPCETE/s583-no/IMG_0299.JPG)

## Go 言語で作る ]]></description>
      <content:encoded><![CDATA[<h1 id="go-conference">Go Conference 参加メモ</h1><p><img src="https://lh5.googleusercontent.com/-QHzKGzPe248/UtoeV0tBZyI/AAAAAAAAEuA/zr0wYEPCETE/s583-no/IMG_0299.JPG" alt="image"></p>
<h2 id="go-web-tenntenn">Go 言語で作る Web アプリ @tenntenn</h2><p>HTTPサーバー簡単に書ける。</p>
<ul>
<li><a href="https://docs.google.com/presentation/d/1rrY2oibeUrqjF4ga5L3EhDioIURcMCUOz7jBXHWBdOM/pub?start=false&amp;loop=false&amp;delayms=3000#slide=id.gb8818ff4_2_0">https://docs.google.com/presentation/d/1rrY2oibeUrqjF4ga5L3EhDioIURcMCUOz7jBXHWBdOM/pub?start=false&amp;loop=false&amp;delayms=3000#slide=id.gb8818ff4_2_0</a></li>
</ul>
<h2 id="go-on-appengine-najeira">Go on AppEngine @najeira</h2><ul>
<li>Go言語のメリット<ul>
<li>簡単</li>
<li>Nativeで速い、少メモリ</li>
<li>モダン（並列、型推論、Stractual subtyping(部分型）</li>
</ul>
</li>
<li>AppEngineのメリット<ul>
<li>保守しなくてよいので開発に集中できる</li>
<li>大規模、伸縮</li>
<li>モダン（TQ、memcachedサポート）</li>
</ul>
</li>
<li>Testing<ul>
<li>AppEngine上でGo言語だけでテストを行うことは難しい</li>
<li>testbed <a href="https://github.com/najeira/testbed">https://github.com/najeira/testbed</a></li>
</ul>
</li>
<li>Goの優位性<ul>
<li>起動が速い（AppEngineとの相性は良い）</li>
</ul>
</li>
<li>速度についての補足<ul>
<li>常にGoが速いというわけではない（I/O、etc)</li>
</ul>
</li>
<li>まだ完全以降にコストかけて頑張るほどのノウハウはたまってない</li>
</ul>
<h2 id="gorutine-and-channel-jxck">Gorutine and channel @Jxck_</h2><ul>
<li>メモ漏れ</li>
</ul>
<h2 id="go-schaduler-methane">Go Schaduler @methane</h2><ul>
<li><a href="https://gist.github.com/methane/5377227#file-goscheduler-md">https://gist.github.com/methane/5377227#file-goscheduler-md</a><ul>
<li>Goroutine<ul>
<li>奥が深い</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="go">Go のどのあたりが良いか鵜飼さん</h2><ul>
<li><p>Goの第一印象</p>
<ul>
<li>慣れた言語から見ると違和感がある</li>
</ul>
</li>
<li><p>設計方針</p>
<blockquote>
<p>many on the decisions in Go are motivated by experience working on and
maintaing large code bases at Google.</p>
</blockquote>
<ul>
<li>書きやすさより読みやすさ、修正しやすさ</li>
<li>シンプルな仕様、簡潔な文法</li>
<li>細部まできちんと考えたコードを書くようになる</li>
</ul>
</li>
<li><p>型宣言</p>
<ul>
<li>逆</li>
<li>これは複雑な変数定義を行った際に分かりやすい</li>
</ul>
</li>
<li><p>コメント書くぐらいならコンパイラーにチェックさせろよ</p>
</li>
<li><p>クラス</p>
<ul>
<li>型定義</li>
<li>型に対してメソッドを追加する</li>
</ul>
</li>
<li><p>使われないコード</p>
<ul>
<li>Goはコンパイルエラーを徹底的に出す</li>
<li>大規模なコードになってきたとき、容易に肥大化してしまう問題を防ぐ</li>
</ul>
</li>
<li><p>エラー処理</p>
<ul>
<li>try ~ catchにしたがる<ul>
<li>制御の流れが複雑になる</li>
<li>変なGOTOをしているような感じ</li>
</ul>
</li>
<li>基本的にエラーはその場で処理させる</li>
</ul>
</li>
</ul>
<h2 id="moriyoshi">無題 @moriyoshi</h2><ul>
<li>Goでゲームを作るためのライブラリー紹介<ul>
<li>画面出力<ul>
<li>SDL系： go-sdl / gosdl</li>
<li>OpenGL系： gl / GoGL</li>
</ul>
</li>
<li>音<ul>
<li>portaudio-go / go-openal / pulsego</li>
</ul>
</li>
<li>入力<ul>
<li>入力のSDL系は標準でできる</li>
<li>OpenGL系ではGo-GLUT / glfwなど使える</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://github.com/moriyoshi/gohex">https://github.com/moriyoshi/gohex</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 13 Apr 2013 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2013/04/13/gocon</link><guid>https://9renpoto.win/entry/2013/04/13/gocon</guid>
    </item><item>
      <title><![CDATA[pyfes 2013/3]]></title>
      <description><![CDATA[
# TL;DR

![image](https://lh4.googleusercontent.com/-fe0PcN4vym0/UtoeWi_4knI/AAAAAAAAEuI/kgBwRtcB6hk/w437-h583-no/IMG_0230.JPG)

今回も楽しいお話がたくさん聞けました。
]]></description>
      <content:encoded><![CDATA[<h1 id="tldr">TL;DR</h1><p><img src="https://lh4.googleusercontent.com/-fe0PcN4vym0/UtoeWi_4knI/AAAAAAAAEuI/kgBwRtcB6hk/w437-h583-no/IMG_0230.JPG" alt="image"></p>
<p>今回も楽しいお話がたくさん聞けました。</p>
<p>ありがとうございました。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 16 Mar 2013 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2013/03/06/developer-festa</link><guid>https://9renpoto.win/entry/2013/03/06/developer-festa</guid>
    </item><item>
      <title><![CDATA[riak meetup tokyoに参加してきました]]></title>
      <description><![CDATA[
# Riak intro &amp; RICON 報告

@kuenishi

分散システムの研究や開発は5年ぐらい日本法人が9月に出来た。

## Riak の紹介

- Dynamoにインスパイアされた
- Consistent Hassingによる水平分割する
- Vector Clocksを用いて]]></description>
      <content:encoded><![CDATA[<h1 id="riak-intro-ricon">Riak intro &amp; RICON 報告</h1><p>@kuenishi</p>
<p>分散システムの研究や開発は5年ぐらい日本法人が9月に出来た。</p>
<h2 id="riak">Riak の紹介</h2><ul>
<li><p>Dynamoにインスパイアされた</p>
</li>
<li><p>Consistent Hassingによる水平分割する</p>
</li>
<li><p>Vector Clocksを用いてレプリケーション</p>
</li>
<li><p>Erlang/OTPで動作</p>
</li>
<li><p>分散KVS</p>
</li>
<li><p>HTTP / Protocol Buffers</p>
</li>
<li><p>Secondary Index/ MapReduce</p>
</li>
<li><p>Link Walking</p>
</li>
<li><p>Consistent Hassing and Replicas / Vecteor Clocks</p>
</li>
</ul>
<p>分散システム、ざっくり。</p>
<ul>
<li>Graph</li>
<li>SQL</li>
<li>Document</li>
<li>Scale out</li>
</ul>
<h2 id="ricon">RICON について</h2><ul>
<li>分散システム、分散DBのカンファレンス</li>
</ul>
<h3 id="">事例</h3><ul>
<li>Redis側でロックして、裏側はRiakで構築<ul>
<li>壊れても大丈夫なようにするのが鉄板のパターン</li>
</ul>
</li>
</ul>
<h2 id="">面白かった話</h2><ul>
<li>Rak Pipe</li>
<li>Introduction Yokozuna</li>
<li>Building Riak CS on Riak</li>
<li>Cloning the Cloud</li>
<li>Bringing Consistency on Riak</li>
</ul>
<h2 id="riak-with-engine-yard">Riak with Engine yard</h2><ul>
<li><p>EC2上のGentoo</p>
</li>
<li><p>すべてはChefで構築</p>
</li>
<li><p>その上にアプリをデプロイ</p>
</li>
<li><p>再起動も1から構築</p>
</li>
<li><p>ssh / sudo可能</p>
</li>
<li><p>何台、何度でも再現可能</p>
</li>
<li><p>DB</p>
<ul>
<li>PostgressSQL</li>
<li>MySQL</li>
<li>Riak</li>
</ul>
</li>
<li><p>Riakはバックエンドでたてないとダメ</p>
</li>
<li><p>Riak Searchを使って全文検索が可能</p>
</li>
<li><p>今後、Yokozunaに移行予定</p>
</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 12 Mar 2013 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2013/03/02/riak-meetoup-tokyo</link><guid>https://9renpoto.win/entry/2013/03/02/riak-meetoup-tokyo</guid>
    </item><item>
      <title><![CDATA[リーダブルコード読みました]]></title>
      <description><![CDATA[
# リーダーブルコードよんだメモ

ちょっと前の話ですが、リーダーブルコードを読みましたのでその感想をメモ。

## 印象に残った学び

- 名前の大切さ
  - プログラムで一番難しいところ
  - 良い名前ほど理解しやすい
- コメントの大切さ
  - コメントを書く目的
  - 意味のあるコ]]></description>
      <content:encoded><![CDATA[<h1 id="">リーダーブルコードよんだメモ</h1><p>ちょっと前の話ですが、リーダーブルコードを読みましたのでその感想をメモ。</p>
<h2 id="">印象に残った学び</h2><ul>
<li>名前の大切さ<ul>
<li>プログラムで一番難しいところ</li>
<li>良い名前ほど理解しやすい</li>
</ul>
</li>
<li>コメントの大切さ<ul>
<li>コメントを書く目的</li>
<li>意味のあるコメントを書かないと意味がない</li>
<li>コメントはコードの理解を助けるもの</li>
</ul>
</li>
<li>コードの分割<ul>
<li>小さければ小さいほど正義と読む前まで考えていた<ul>
<li>どう分割すべきか</li>
<li>重複コードとは何なのか</li>
</ul>
</li>
<li>理解しやすいように分割する</li>
<li>意味が明確に分かれるよう分割する</li>
</ul>
</li>
<li>短いコードを書く<ul>
<li>これは非常に難しいが理屈はよくわかる</li>
<li>よいメソッドよいモジュールを積極的に使っていくことが大事</li>
</ul>
</li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 03 Feb 2013 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2013/02/03/readable-code</link><guid>https://9renpoto.win/entry/2013/02/03/readable-code</guid>
    </item><item>
      <title><![CDATA[elixir install]]></title>
      <description><![CDATA[
# Elixirはじめよう

Elixir楽しそうなので勉強はじめますまずはerlangのinstallから。

    brew install erlang

erlangもbrewから入れられるなんて楽な世の中になったものです。

    brew install elixir

brewだ]]></description>
      <content:encoded><![CDATA[<h1 id="elixir">Elixirはじめよう</h1><p>Elixir楽しそうなので勉強はじめますまずはerlangのinstallから。</p>
<pre><code>brew install erlang
</code></pre>
<p>erlangもbrewから入れられるなんて楽な世の中になったものです。</p>
<pre><code>brew install elixir
</code></pre>
<p>brewだけでinstall終わり。</p>
<pre><code class="language-shell">Erlang R15B03 (erts-5.9.3.1) [source] [64-bit] [smp:4:4] [async-threads:0]
[hipe] [kernel-poll:false] [dtrace]

Interactive Elixir (0.7.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)&gt;
</code></pre>
<p>terminalでiexと打つと正常に起動。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 20 Dec 2012 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2012/12/20/elixir-install</link><guid>https://9renpoto.win/entry/2012/12/20/elixir-install</guid>
    </item><item>
      <title><![CDATA[Python Developer Festa 参加してきました]]></title>
      <description><![CDATA[
# Python Developer Festa 参加してきたので、そのメモ

## Cloudera Impala について

@shiumachiさんより。

### Impala とは

- Clouderaが開発した低レイテンシ・分析特化型のクエリ実行基盤
  - google Dreme]]></description>
      <content:encoded><![CDATA[<h1 id="python-developer-festa">Python Developer Festa 参加してきたので、そのメモ</h1><h2 id="cloudera-impala">Cloudera Impala について</h2><p>@shiumachiさんより。</p>
<h3 id="impala">Impala とは</h3><ul>
<li>Clouderaが開発した低レイテンシ・分析特化型のクエリ実行基盤<ul>
<li>google Dremel, Google F1などにインスパイアされて開発された</li>
</ul>
</li>
<li>データサイエンティストが使うことを想定している</li>
<li>Hadoopはクエリの内容がメモリーに乗っからなかった場合、HDDに逃げちゃう</li>
<li>Impalaはオンメモリー上で頑張ろうとする</li>
</ul>
<h4 id="impala-support">Impala support 状況</h4><h5 id="02">02 時点</h5><ul>
<li>Trevni, RCFileのサポートは現状まだ、今後に対応予定</li>
<li>Hiveで出来ることは、基本的にImpalaでは出来ないと思ってよい</li>
</ul>
<h3 id="">なぜ開発されたのか</h3><p>Hadoop(Map Reduce)だと高レイテンシで、すぐに結果が欲しくても処理に時間がかかる。</p>
<p>Hiveのようで手軽に使えるSQL
のインターフェイスをもち、かつ低レイテンシエンジンが欲しかったからです。</p>
<h3 id="mapreduce">MapReduce とは</h3><ul>
<li>Apache MapReduceとは<ul>
<li>バッチ処理を分散して行うシステム</li>
</ul>
</li>
<li>Apache Hive<ul>
<li>SQLライクに書ける</li>
</ul>
</li>
<li>MapReduceの問題<ul>
<li>レイテンシが高い</li>
<li>小さいキューを出しても数十秒時間かかる</li>
</ul>
</li>
</ul>
<h3 id="">よくある質問</h3><h4 id="q-hive">Q もう Hive いらないんじゃない</h4><ul>
<li>定期的に実行を行うクエリなどはHiveのほうが適しているのではないか</li>
</ul>
<h4 id="qimpala">Qimpala が落ちたらどうするの</h4><ul>
<li>クエリが全部こけます</li>
<li>JOINのサイズ制限あるの<ul>
<li>あります</li>
</ul>
</li>
</ul>
<h2 id="python-in-webkit">Python in Webkit</h2><p>@omo2009さんより。</p>
<h3 id="third-party-tools">Third party Tools</h3><ul>
<li>WebKit<ul>
<li>Buildbot</li>
<li>Trac</li>
</ul>
</li>
</ul>
<h3 id="webkit-patch">今回は <code>webkit-patch</code> について</h3><pre><code># Submitting for review
webkit-patch post
# Commiting a reviewd patch
# Commit log は自動で書く
webkit-patch land
# Reverting specific version
webkit-patch rollout
#
</code></pre>
<p>プロジェクト特有の問題を解決するために使っている。</p>
<pre><code>watchlist
suggest-reviewers
suggest-nominations
Bugzilla autocompletion
IRC
</code></pre>
<ul>
<li>誰にレビューしてもらえば良いかわからない</li>
<li>誰にレビューしてもらったか忘れちゃう</li>
<li>探すのに便利</li>
</ul>
<p>IRCでレビューを頼むと断られにくい。</p>
<h2 id="connpass">Connpass について</h2><p>@lanMLewis, @ae35概要と技術について。</p>
<h3 id="connpass">connpass とは</h3><ul>
<li>BePROUDで運営しているイベント支援サイト<ul>
<li>2010/08 django dash<ul>
<li>djangoを使って48時間でサービスを作ろう</li>
<li>既存のイベント支援サービス（ATND)使いにくいよね</li>
<li>作ってみよう</li>
</ul>
</li>
<li>大事だと思ってること<ul>
<li>実生活のつながり</li>
<li>共有・成長する</li>
<li>イベントから広がるコミュニティ</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="connpass">connpass で使われている技術</h3><ul>
<li>サーバーサイド<ul>
<li>MySQL</li>
<li>Redis</li>
<li>Django</li>
<li>Unix</li>
<li>Nginx</li>
<li>Gunicorn</li>
</ul>
</li>
<li>クライアントサイド<ul>
<li>CoffeeScript</li>
<li>REQUIRE JS</li>
<li>JavaScript怖い</li>
</ul>
</li>
</ul>
<h2 id="php-language-update">PHP Language Update</h2><h3 id="php-55">PHP 5.5 の目玉</h3><ul>
<li>ジェネレートとコールーチン<ul>
<li>yieldキーワードの追加</li>
</ul>
</li>
<li>foreachで変数分解だ</li>
<li>empty()の括弧内に変数以外が指定可能に</li>
<li><code>finally</code><ul>
<li><code>try-catch-finally</code><ul>
<li>なぜ今までになかったのか</li>
</ul>
</li>
<li>fatal errorが発生すると <code>finaly</code> が呼ばれない</li>
</ul>
</li>
</ul>
<p>Pythonでお仕事している人が日本にもたくさんいて嬉しいです。</p>
<p>発表者のみなさまおつかれさまでした。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sat, 24 Nov 2012 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2012/11/24/developer-festa</link><guid>https://9renpoto.win/entry/2012/11/24/developer-festa</guid>
    </item><item>
      <title><![CDATA[python install]]></title>
      <description><![CDATA[
# first Python

Pyconに参加しようと思ったんですが、Python素人のボクはまず環境構築から。

## Pythonのversion管理

Pythonはpythonbrew+virtualenvで環境を作るのが良いらしいので、言われるがままに環境作ってみます。

## pyt]]></description>
      <content:encoded><![CDATA[<h1 id="first-python">first Python</h1><p>Pyconに参加しようと思ったんですが、Python素人のボクはまず環境構築から。</p>
<h2 id="pythonversion">Pythonのversion管理</h2><p>Pythonはpythonbrew+virtualenvで環境を作るのが良いらしいので、言われるがままに環境作ってみます。</p>
<h2 id="pythonbrew">pythonbrewの環境構築</h2><pre><code class="language-shell">curl -kLO https://github.com/utahta/pythonbrew/raw/master/pythonbrew-install
chmod +x pythonbrew-install
./pythonbrew-install
</code></pre>
<p>pythonbrewの環境変数を通すzshの場合でも以下の内容を書くらしい。</p>
<pre><code class="language-shell">[[ -s $HOME/.pythonbrew/etc/bashrc ]] &amp;&amp; source $HOME/.pythonbrew/etc/bashrc

pythonbrew list -k # インストールできるversion確認
pythonbrew update # pythonbrewのupdate
</code></pre>
<p>2系と3系の環境構築。</p>
<pre><code class="language-shell">pythonbrew install 2.7.2
pythonbrew switch 2.7.2

pythonbrew install 3.2
pythonbrew switch 3.2
</code></pre>
<p>virtualenvの環境はまた今度する。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Thu, 13 Sep 2012 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2012/09/13/python-install</link><guid>https://9renpoto.win/entry/2012/09/13/python-install</guid>
    </item><item>
      <title><![CDATA[octpress install and setup]]></title>
      <description><![CDATA[
# octpress試す

Octpressの利用を始めたので、簡単にインストール方法と設定、使い方などをメモ。

## github pageの初期化

```bash
mkdir username.github.com
cd username.github.com
git init

touc]]></description>
      <content:encoded><![CDATA[<h1 id="octpress">octpress試す</h1><p>Octpressの利用を始めたので、簡単にインストール方法と設定、使い方などをメモ。</p>
<h2 id="github-page">github pageの初期化</h2><pre><code class="language-bash">mkdir username.github.com
cd username.github.com
git init

touch README.md
git add README.md
git commit -m &#39;first commit&#39;

git remote add origin git@GitHub.com:username/username.github.com.git
git push -u origin master
</code></pre>
<h3 id="octpress">octpressのインストール</h3><p>先ほど作成した <em>username.github.com</em> と同じ階層にoctpressをcloneする。</p>
<pre><code class="language-shell">git clone git://github.com/imathis/octopress.git octopress

cd octopress
gem install bundler

bundle install
Rake setup_github_pages

Rake generate
rake deploy

# 2つ一度にする
# Rake gen_deploy
</code></pre>
<h3 id="">記事投稿</h3><p>記事の作成もコマンド1つタイトルは英語で。</p>
<pre><code class="language-shell">rake new_post[&quot;my-new-page&quot;]
# zshは以下のように書く
rake new_post\[&quot;my-new-page&quot;\]
</code></pre>
<p>markdownの勉強にもなるし、GitHubとも仲良くなれるし、なかなかに良い仕組み。</p>
<p>いろいろ勉強します。</p>
<p>参考文献。</p>
<ul>
<li><a href="http://tokkonopapa.github.io/blog/2011/12/30/octopress-on-github-and-bitbucket/">http://tokkonopapa.github.io/blog/2011/12/30/octopress-on-github-and-bitbucket/</a></li>
<li><a href="https://blog.glidenote.com/blog/2011/11/07/install-octopress-on-github/">https://blog.glidenote.com/blog/2011/11/07/install-octopress-on-github/</a></li>
</ul>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Tue, 11 Sep 2012 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2012/09/11/octpress-install-and-setup</link><guid>https://9renpoto.win/entry/2012/09/11/octpress-install-and-setup</guid>
    </item><item>
      <title><![CDATA[start blog]]></title>
      <description><![CDATA[
# とりあえず

Blogger使っていたのですがいろいろと使いにくく感じていたのでこちらに移転。

適当に更新していきます。
]]></description>
      <content:encoded><![CDATA[<h1 id="">とりあえず</h1><p>Blogger使っていたのですがいろいろと使いにくく感じていたのでこちらに移転。</p>
<p>適当に更新していきます。</p>
]]></content:encoded>
      <author><![CDATA[Keisuke Umeno]]></author>
      <pubDate>Sun, 09 Sep 2012 00:00:00 GMT</pubDate>
      <link>https://9renpoto.win/entry/2012/09/09/start-blog</link><guid>https://9renpoto.win/entry/2012/09/09/start-blog</guid>
    </item>
  </channel></rss>