<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Born Too Late</title><link>https://blog.yuyat.jp/</link><description>Recent content on Born Too Late</description><generator>Hugo -- gohugo.io</generator><language>ja-jp</language><lastBuildDate>Sat, 15 Nov 2025 14:00:00 +0900</lastBuildDate><atom:link href="https://blog.yuyat.jp/index.xml" rel="self" type="application/rss+xml"/><item><title>LayerX TechBook 1 に "人と SaaS と AI エージェントが協業する権限管理" というタイトルで寄稿しました &amp; 中身をチラ見せ</title><link>https://blog.yuyat.jp/post/layerx-techbook-1/</link><pubDate>Sat, 15 Nov 2025 14:00:00 +0900</pubDate><guid>https://blog.yuyat.jp/post/layerx-techbook-1/</guid><description>&lt;p>技術書典 19 において、所属している LayerX で LayerX Techbook 1 という書籍を有志で執筆し、その中で「人と SaaS と AI エージェントが協業する権限管理」というタイトルで寄稿しました。コーポレートエンジニアとして AI エージェントを活用してくためにどのようなことを考えて実践しているかについて書いています。&lt;/p>
&lt;p>すでに&lt;a href="https://techbookfest.org/product/5zbWgnL90mCvjt7MmnwxW2">技術書展のオンラインマーケットで購入可能&lt;/a>なのと、明日 2025 年 11 月 16 日 (日) には物理本を売るのと僕も売り子として立ちます！来てくれ！！&lt;/p>
&lt;p>この記事では僕が書いた章の中身を少しだけチラ見せします。コーポレートエンジニアリングと言いつつ Terraform、Kubernetes、React.js などの話をしています。&lt;/p></description></item><item><title>初めてのサービスでリソースを Terraform 化するときの私のアプローチ</title><link>https://blog.yuyat.jp/post/my-approach-to-using-terraform/</link><pubDate>Tue, 03 Dec 2024 10:30:00 +0900</pubDate><guid>https://blog.yuyat.jp/post/my-approach-to-using-terraform/</guid><description>&lt;p>この記事は &lt;a href="https://qiita.com/advent-calendar/2024/terraform">terraform Advent Calendar 2024&lt;/a> の 3 日目です。&lt;/p>
&lt;ul>
&lt;li>前日: &lt;a href="https://x.com/raki">raki さん&lt;/a>による &lt;a href="https://zenn.dev/terraform_jp/articles/2024-12-02_terraform_version_constraints">Terraform のバージョン制約&lt;/a>&lt;/li>
&lt;li>翌日 &lt;a href="https://x.com/bgpat_">bgpat さん&lt;/a>による&lt;a href="https://qiita.com/bgpat/items/fd5a109888f8b25854f8">Terraform の Provider-defined Function はどうやって実装されているのか&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="tl-dr">tl; dr&lt;/h2>
&lt;ol>
&lt;li>安全に試行錯誤できるサンドボックス環境を用意し、まずは手作業でリソースを組み上げる&lt;/li>
&lt;li>概ねでき上がったら &lt;code>import&lt;/code> ブロックを活用しながらローカル環境で &lt;code>terraform plan&lt;/code>/&lt;code>apply&lt;/code> を行う&lt;/li>
&lt;li>最終的な tf ファイルの Pull Request を出す&lt;/li>
&lt;/ol></description></item><item><title>GitHub Actions の Workflow 内で複数行の文字列をマスクする</title><link>https://blog.yuyat.jp/post/mask-multiple-lines-text-in-github-actions-workflow/</link><pubDate>Sun, 26 May 2024 22:00:00 +0900</pubDate><guid>https://blog.yuyat.jp/post/mask-multiple-lines-text-in-github-actions-workflow/</guid><description>&lt;h2 id="tl-dr">tl; dr&lt;/h2>
&lt;p>バッドノウハウ感が強いですが、以下のワンライナーで &lt;code>$multiple_lines_text&lt;/code> の中身をマスクすることが可能です。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4">&lt;code class="language-yaml" data-lang="yaml">- &lt;span style="color:#f92672">run&lt;/span>: |&lt;span style="color:#e6db74">
&lt;/span>&lt;span style="color:#e6db74"> &lt;/span> &lt;span style="color:#ae81ff">echo &amp;#34;::add-mask::$(echo &amp;#34;$multiple_lines_text&amp;#34; | sed &amp;#39;:a;N;$!ba;s/%/%25/g&amp;#39; | sed &amp;#39;:a;N;$!ba;s/\r/%0D/g&amp;#39; | sed &amp;#39;:a;N;$!ba;s/\n/%0A/g&amp;#39;)&amp;#34;&lt;/span>
&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>クラウドサービスについての知識をいかに身につけるか</title><link>https://blog.yuyat.jp/post/how-i-learn-about-cloud-services/</link><pubDate>Fri, 03 Nov 2023 18:00:00 +0900</pubDate><guid>https://blog.yuyat.jp/post/how-i-learn-about-cloud-services/</guid><description>&lt;p>&lt;img src="https://blog.yuyat.jp/images/how-i-learn-about-cloud-services/cover.webp" alt="クラウドサービスについて学ぼう">
この記事における画像は全て ChatGPT (DALL·E 3) によって生成されています。&lt;/p>
&lt;h2 id="はじめにまとめ">はじめにまとめ&lt;/h2>
&lt;ul>
&lt;li>身銭を切り、リスクを取る&lt;/li>
&lt;li>より多く打席に立つ&lt;/li>
&lt;li>自分の盆栽を持つ&lt;/li>
&lt;/ul>
&lt;h2 id="この記事のスコープ">この記事のスコープ&lt;/h2>
&lt;ul>
&lt;li>コンピュータサイエンスの基本的な知識（OS・ハードウェア等）はクラウド時代においても重要ですし、陳腐化の遅いより本質的な知識といえますが、それらの話はしません&lt;/li>
&lt;li>今回は、クラウドサービスの固有知識のような、「知ってるか知らないか」だけのあまり本質的ではないが、身につけることで短期的な生産性につながる知識をいかに得るか、という話です&lt;/li>
&lt;/ul></description></item><item><title>リモートワーク時代に買ってよかったもの (ほぼ 2021 年)</title><link>https://blog.yuyat.jp/post/best-buys-2021/</link><pubDate>Fri, 31 Dec 2021 01:30:00 +0900</pubDate><guid>https://blog.yuyat.jp/post/best-buys-2021/</guid><description>&lt;p>2021 年も終わりですね。&lt;/p>
&lt;p>2020 年の 2 月ごろから会社がほとんどリモートになり、約丸 2 年が経ちました。自宅の作業環境を中心に改善が進み、いつしか会社のオフィスでは再現が難しいレベルになったなと感じます。&lt;/p>
&lt;p>今年の大きなトピックとしては 2 月に引っ越しをし、家が少し広くなったり、そのタイミングで家事周りも色々見直して省力化、またはより楽しめる形にしてきました。&lt;/p>
&lt;p>そんなアフィリエイトブログです。前回は 2017 年だったので 4 年ぶり。&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://blog.yuyat.jp/post/best-buys-2016/">引越・同棲 1 年目の 2016 年に買って良かったもの&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.yuyat.jp/post/best-buys-2017/">プログラマが 2017 年に買って良かったもの&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>今回は以下のカテゴリに分けています。&lt;/p>
&lt;ul>
&lt;li>作業環境編&lt;/li>
&lt;li>娯楽編&lt;/li>
&lt;li>調理関連編&lt;/li>
&lt;li>清掃・衛生関連編&lt;/li>
&lt;li>運動関連編&lt;/li>
&lt;li>その他&lt;/li>
&lt;/ul></description></item><item><title>この世界の全人類は須らく成長を求めているに決まっている、そんなことは当たり前じゃないか</title><link>https://blog.yuyat.jp/post/all-you-need-is-growth/</link><pubDate>Tue, 11 Feb 2020 03:00:00 +0900</pubDate><guid>https://blog.yuyat.jp/post/all-you-need-is-growth/</guid><description>&lt;p>はてなブックマークで、Togetter のこんなまとめが盛り上がっていました。&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://togetter.com/li/1466883">マネジメントをする立場の人が知っておくべきこと『すべての人類が成長を望んでいるわけではない』成長したくない理由や価値観の話&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>この記事は、このまとめに対する自分なりの考えです。なお、まとめの内容は大して読んでません。&lt;/p></description></item><item><title>平手友梨奈は天才なんかじゃない</title><link>https://blog.yuyat.jp/post/yurina-hirate-is-not-a-genius/</link><pubDate>Mon, 10 Feb 2020 02:30:00 +0900</pubDate><guid>https://blog.yuyat.jp/post/yurina-hirate-is-not-a-genius/</guid><description>&lt;p>平手友梨奈さんが欅坂46 を脱退しちゃいましたね。&lt;/p>
&lt;p>夏の全国アリーナツアー2019 における東京ドーム公演 2 日目で角を曲がるのパフォーマンスを見て、多くの人が卒業を予感したと思います。僕はそうでした。&lt;/p>
&lt;p>僕が欅坂46 のファンになったきっかけは、2017 FNS歌謡祭における平井堅とのコラボレーションにおける平手さんのダンスに衝撃を受けたことでした。平手推しとして始まったものの、彼女のあまりの凄さに「推し」という言葉はあまりに収まりが悪く、いつかそれを表明できなくなっていきました。そこからは箱推しとしてグループを見つめ、彼女のあり方については次第に共感できなくなることも増えていきました。&lt;/p>
&lt;p>ですが、今は純粋に彼女の門出を祝う気持ちで溢れています。彼女がセンターに立つ欅坂46 が見られなくなることに寂しさがないと言ったら嘘になりますが、これからの新しい彼女やグループが見られることに比べれば些細なことです。また仮に、彼女がこのまま芸能界を引退して、その姿をこちらから見られなくなるのだとしても、その気持ちに変わりはありません。ファンだからこそ、彼女の「脱退」という選択に最大限の敬意を示すべきだと思うからです。&lt;/p></description></item><item><title>今さら M-1グランプリ2019 における和牛のすごさを振り返る</title><link>https://blog.yuyat.jp/post/m1-2019-wagyu/</link><pubDate>Mon, 03 Feb 2020 09:20:00 +0900</pubDate><guid>https://blog.yuyat.jp/post/m1-2019-wagyu/</guid><description>&lt;p>昨日ご飯を食べていてこんな会話をした。&lt;/p>
&lt;p>「M-1 2019 の決勝に出たのってさ、ミルクボーイとぺこぱと和牛だったじゃん?」&lt;/p>
&lt;p>「うん」&lt;/p>
&lt;p>「その時のネタってどんなんだったっけ?」&lt;/p>
&lt;p>思い出せない。思い出せないけど「和牛はすごかった」という感覚だけが残っている。録画を改めて見たらやはり凄かったので、その凄さがどこにあったのか、素人なりに考えてみる。&lt;/p></description></item><item><title>ソフトウェア開発の文脈で割れ窓理論を引用するのはミスリーディングではないか</title><link>https://blog.yuyat.jp/post/no-more-broken-windows-theory/</link><pubDate>Sat, 01 Feb 2020 16:00:00 +0900</pubDate><guid>https://blog.yuyat.jp/post/no-more-broken-windows-theory/</guid><description>&lt;p>基本的には Twitter に既に書いた内容のまとめです。&lt;/p></description></item><item><title>AirPods Pro を使って英会話の訓練をしながら Kubernetes をはじめとするあらゆるテクノロジーについて学べるすごい学習法</title><link>https://blog.yuyat.jp/post/learn-kubernetes-in-english/</link><pubDate>Mon, 02 Dec 2019 03:15:00 +0900</pubDate><guid>https://blog.yuyat.jp/post/learn-kubernetes-in-english/</guid><description>&lt;p>約 1 年ぶりにブログを書くにあたって、めちゃくちゃ釣りっぽいタイトルにしてみました。 (昨日すでに&lt;a href="https://blog.yuyat.jp/post/becoming-an-engineering-manager/">別の記事&lt;/a>が出ていますが、書き始めたのはこちらが先でした)&lt;/p>
&lt;p>この記事は &lt;a href="https://amzn.to/33xf90B">AirPods Pro&lt;/a> のアフィリエイトによる小銭稼ぎ (まぁ今現在 Amazon では売り切れてるけど) と、僕のあらゆる物事に対する学習・訓練に対する考え方をまとめて、識者からフィードバックを得ることを目的にしています。&lt;/p>
&lt;p>で、その両方を達成する上で都合がいいので、AirPods Pro を使ったシャドーイングを題材に書いてみようと思います。学習に関する考え方についてはいかにもわかってる風に書きますが、素人が適当なことを言っているだけなので、暇つぶし程度にご笑覧いただければ幸いです。&lt;/p></description></item><item><title>SRE チームで Engineering Manager になって二ヶ月経っての心境など</title><link>https://blog.yuyat.jp/post/becoming-an-engineering-manager/</link><pubDate>Sun, 01 Dec 2019 00:22:00 +0900</pubDate><guid>https://blog.yuyat.jp/post/becoming-an-engineering-manager/</guid><description>&lt;p>この記事は &lt;a href="https://qiita.com/advent-calendar/2019/em2">Engineering Manager vol.2 Advent Calendar 2019&lt;/a> の 1 日目の記事です。&lt;/p>
&lt;p>2 日目は &lt;a href="https://twitter.com/sbntaminif">taminif&lt;/a> さんの&lt;a href="http://taminif.hatenablog.jp/entry/2019/12/02/011112">マネージャーになったら身に付けたいファシリテーションスキル&lt;/a>です。&lt;/p>
&lt;p>ふわっとしたタイトルのゆる目の記事ですが、Engineering Manager としては新米ですし、Advent Calendar 的にもまだ初日なのでこれぐらいで許してください。&lt;/p>
&lt;p>まぁ一言でいうと「Engineering Manager は決して楽ではないけど楽しいぞ！」という感じです。&lt;/p></description></item><item><title>Kubernetes The Hard Way をやってみた</title><link>https://blog.yuyat.jp/post/kubernetes-the-hard-way/</link><pubDate>Sun, 30 Dec 2018 01:25:45 +0900</pubDate><guid>https://blog.yuyat.jp/post/kubernetes-the-hard-way/</guid><description>&lt;p>冬休みに入ったので、前からやってみたいと思っていた &lt;a href="https://github.com/kelseyhightower/kubernetes-the-hard-way">Kubernetes The Hard Way&lt;/a> をやってみました。という日記です。&lt;/p></description></item><item><title>CircleCI 上でのコマンドの実行時間を Datadog に残す circle-dd-bench 作った</title><link>https://blog.yuyat.jp/post/circle-dd-bench/</link><pubDate>Tue, 25 Dec 2018 23:30:00 +0900</pubDate><guid>https://blog.yuyat.jp/post/circle-dd-bench/</guid><description>&lt;p>この記事は &lt;a href="https://qiita.com/advent-calendar/2018/circleci">CircleCI Advent Calendar 2018&lt;/a> 7 日目の記事です。今日は 12 月 25 日ですが、自分の担当分をサボっていたわけではなく、週末作ったツールについて今朝方ツイートしたところ、CircleCI Japan の中の方に「アドベントカレンダーの7日目が空いてしまったのてすがもしよければ」と誘われて書いている次第です。&lt;/p>
&lt;!-- raw HTML omitted -->
&lt;p>というわけで早速この &lt;a href="https://github.com/yuya-takeyama/circle-dd-bench">circle-dd-bench&lt;/a> というツールについて紹介します。&lt;/p></description></item><item><title>CLI ツールを Go で書いて Docker イメージとしてリリースする</title><link>https://blog.yuyat.jp/post/make-tools-in-go-and-release-as-docker-images/</link><pubDate>Wed, 10 Oct 2018 01:30:00 +0900</pubDate><guid>https://blog.yuyat.jp/post/make-tools-in-go-and-release-as-docker-images/</guid><description>&lt;p>最近ようやく開発ツールとして Docker が手に馴染んできたので、タイトルの件も含めていくつか雑多に書きます。&lt;/p></description></item><item><title>docker build 内の bundle install を最適化するために guruguru-cache というツールを作った</title><link>https://blog.yuyat.jp/post/guruguru-cache/</link><pubDate>Tue, 09 Oct 2018 01:10:00 +0900</pubDate><guid>https://blog.yuyat.jp/post/guruguru-cache/</guid><description>&lt;p>作りました。&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/yuya-takeyama/guruguru-cache">yuya-takeyama/guruguru-cache&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Kubernetes の ConfigMap を Immutable に管理する</title><link>https://blog.yuyat.jp/post/kubernetes-immutable-configmap/</link><pubDate>Sun, 01 Jul 2018 21:00:00 +0900</pubDate><guid>https://blog.yuyat.jp/post/kubernetes-immutable-configmap/</guid><description>&lt;p>Quipper では Microservices 基盤として Kubernetes によるクラスタを構築し、もうすぐ本番環境にリリースしようとしています。本当は &lt;a href="https://deis.com/docs/workflow/">Deis Workflow&lt;/a> で使う Kubernetes クラスタを既に本番で運用していますが、Deis なしでの運用に変えようとしているのが最近の状況です。&lt;/p>
&lt;p>そこら辺の背景は 2018/07/19 に行われる &lt;a href="https://techplay.jp/event/680406">Quipper Product Meetup&lt;/a> でお話しするとして、今は YAML の管理どうするかみたいなところから試行錯誤している状態で、基本的には Pull Request ベースでレビューしてマージされたらデプロイ、みたいなことをアプリでもクラスタでもやる感じになっています。&lt;/p>
&lt;p>今日は、その中でも &lt;code>ConfigMap&lt;/code> をどう扱うか、について Mutable/Immutable 2 つのアプローチについて実際に動く設定・スクリプト付きで紹介します。&lt;/p></description></item><item><title>Oculus Go で Kindle の電子書籍を寝ながら読む</title><link>https://blog.yuyat.jp/post/oculus-go-kindle/</link><pubDate>Mon, 07 May 2018 04:30:00 +0900</pubDate><guid>https://blog.yuyat.jp/post/oculus-go-kindle/</guid><description>&lt;p>&lt;a href="https://www.oculus.com/go/">Oculus Go&lt;/a> を買いました。64GB のものが 29,800 円税込送料なしという圧倒的格安なので、VR に興味のある方は是非買いましょう。Amazon で売られている転売品はくれぐれも買わないように。&lt;/p>
&lt;p>&lt;a href="https://www.moguravr.com/netflix-oculus-go/">寝転んでNetflixを大画面で観る方法（Oculus Goユーザー必見）&lt;/a>という記事を読んで、寝ながらの Netflix の体験がとにかく良かったので、Kindle の書籍も同じように読めないかやってみました。&lt;/p></description></item><item><title>bundle install には --clean を指定する (特に Circle CI では)</title><link>https://blog.yuyat.jp/post/bundle-install-clean/</link><pubDate>Mon, 16 Apr 2018 21:28:11 +0900</pubDate><guid>https://blog.yuyat.jp/post/bundle-install-clean/</guid><description>&lt;h2 id="tldr">TL;DR&lt;/h2>
&lt;p>&lt;code>bundle install&lt;/code> を &lt;code>--clean&lt;/code> オプション付きで実行することで、もう使っていない gem や古いバージョンの gem が削除されます。&lt;/p>
&lt;p>さもないと、Circle CI 上における Bundler のキャッシュの restore はどんどん遅くなります。&lt;/p></description></item><item><title>プログラマが 2017 年に買って良かったもの</title><link>https://blog.yuyat.jp/post/best-buys-2017/</link><pubDate>Mon, 01 Jan 2018 06:00:00 +0900</pubDate><guid>https://blog.yuyat.jp/post/best-buys-2017/</guid><description>&lt;p>あけましておめでとうございます。&lt;/p>
&lt;p>2016 年の記事は思いの外読まれたおかげで &lt;a href="http://amzn.to/2ElqIwx">Anova&lt;/a> が買えたので、今年も書いてみます。&lt;/p>
&lt;p>傾向として、去年は引越しに伴った生活関係の買い物が多かったですが、その辺の買い物は落ち着いて、今年は自宅の作業環境周りでの買い物が多かったように思います。&lt;/p></description></item><item><title>欅坂46 の情報が聞ける Alexa Skill を作った</title><link>https://blog.yuyat.jp/post/alexa-skill-keyakizaka46/</link><pubDate>Sun, 31 Dec 2017 20:30:19 +0900</pubDate><guid>https://blog.yuyat.jp/post/alexa-skill-keyakizaka46/</guid><description>&lt;p>なかなか来てくれなかった &lt;a href="http://amzn.to/2zT3Hxt">Amazon Echo Dot&lt;/a> の招待がようやく来たので、早速買ってみました。&lt;/p>
&lt;p>ある日、テレビでたまたま、平井堅のノンフィクションという曲に合わせて踊る平手友梨奈さんを観て衝撃を受けて以来、欅坂46 の事ばっかり考えているし CD や雑誌をすごい勢いで買って &lt;a href="http://countdownjapan.jp/">COUNTDOWN JAPAN&lt;/a> ではライブも観て来ました。&lt;a href="https://www.youtube.com/watch?v=8y14n7mEVlo">避雷針&lt;/a>すごく良かったです。&lt;/p>
&lt;p>というわけで題材は欅坂46 です。&lt;/p></description></item><item><title>Ruby Conf Indonesia 2017 に参加して絶望した話</title><link>https://blog.yuyat.jp/post/ruby-conf-indonesia-2017/</link><pubDate>Mon, 09 Oct 2017 05:30:00 +0900</pubDate><guid>https://blog.yuyat.jp/post/ruby-conf-indonesia-2017/</guid><description>&lt;p>会社の出張で &lt;a href="http://ruby.id/conf/2017/">Ruby Conf Indonesia 2017&lt;/a> に行って来た。はじめに断っておくと、この記事にはトークの内容についての言及はない。&lt;/p></description></item><item><title>peco で S3 のバケット・ファイル一覧を見るやつを作ったらめちゃくちゃ便利なのができた</title><link>https://blog.yuyat.jp/post/peco-s3.zsh/</link><pubDate>Fri, 12 May 2017 00:46:00 +0900</pubDate><guid>https://blog.yuyat.jp/post/peco-s3.zsh/</guid><description>&lt;p>釣りっぽいタイトルにしてしまったけどまぁ主観なので&amp;hellip;&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/yuya-takeyama/peco-s3.zsh">yuya-takeyama/peco-s3.zsh&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>MongoMapper で Mass Assignment を自動検出する</title><link>https://blog.yuyat.jp/post/automatic-mass-assignment-detection-for-mongomapper/</link><pubDate>Thu, 13 Apr 2017 01:14:30 +0900</pubDate><guid>https://blog.yuyat.jp/post/automatic-mass-assignment-detection-for-mongomapper/</guid><description>&lt;p>GitHub が &lt;a href="https://www.infoq.com/jp/news/2012/03/GitHub-Compromised">Mass Assignment 脆弱性を突かれて&lt;/a>からもう 5 年も経っているんですね。&lt;/p>
&lt;p>&lt;code>ActiveRecord&lt;/code> (というか &lt;code>ActiveModel&lt;/code>) では適切に &lt;code>.permit&lt;/code> したパラメータ以外は &lt;code>ActiveModel::ForbiddenAttributesError&lt;/code> が発生するようになっていますが、&lt;code>MongoMapper&lt;/code> ではそうなってなかったので対応させてみました。&lt;/p></description></item><item><title>Heroku で Resque を Graceful Shutdown する</title><link>https://blog.yuyat.jp/post/graceful-shutdown-resque-in-heroku/</link><pubDate>Mon, 10 Apr 2017 02:02:59 +0900</pubDate><guid>https://blog.yuyat.jp/post/graceful-shutdown-resque-in-heroku/</guid><description>&lt;p>Heroku で Resque を動かす場合、何も考えないでセットアップすると、デプロイによるプロセスの再起動時や、Dyno のスケールダウン時に Worker プロセスが強制終了され、&lt;code>Resque::DirtyExit&lt;/code> としてエラーになってしまいます。&lt;/p>
&lt;p>これを避けるために正しく &lt;strong>Graceful Shutdown&lt;/strong> する方法について調べてみました。&lt;/p></description></item><item><title>Node.js のスタックトレースを控えめにする supress-stack-trace 書いた</title><link>https://blog.yuyat.jp/post/supress-stack-trace/</link><pubDate>Wed, 29 Mar 2017 02:21:11 +0900</pubDate><guid>https://blog.yuyat.jp/post/supress-stack-trace/</guid><description>&lt;p>最近仕事で React/Redux で構築されたアプリを触っていて、&lt;a href="https://mochajs.org/">mocha&lt;/a> でテストがコケたときのスタックトレースがうるさい感じだったので &lt;code>node_modules&lt;/code> 内のエラーを除外するためのものを作ってみた。&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/yuya-takeyama/supress-stack-trace">yuya-takeyama/supress-stack-trace&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Ruby で週をオブジェクトとして扱うライブラリ ActiveWeek を作った</title><link>https://blog.yuyat.jp/post/activeweek/</link><pubDate>Mon, 09 Jan 2017 03:02:40 +0900</pubDate><guid>https://blog.yuyat.jp/post/activeweek/</guid><description>&lt;p>仕事で必要があって作ったものから仕事固有の事情とかを取り除いた形で作り直してみた。&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/yuya-takeyama/activeweek">yuya-takeyama/activeweek&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>引越・同棲 1 年目の 2016 年に買って良かったもの</title><link>https://blog.yuyat.jp/post/best-buys-2016/</link><pubDate>Sat, 31 Dec 2016 19:49:41 +0900</pubDate><guid>https://blog.yuyat.jp/post/best-buys-2016/</guid><description>&lt;p>去年 1 番のイベントは&lt;a href="http://blog.yuyat.jp/archives/2631">転職&lt;/a>でしたが、今年は引越・同棲というのが一大イベントでした。&lt;/p>
&lt;p>丸 7 年住んだ埼玉から浅草に引越したことで京橋の職場への出勤時間が半分の 30 分に縮まったのも良かったですが、生活環境が変わったのを機に家具も色々と買い、QoL も大幅に向上したので、それを振り返ってみるという体でアフィブログを書きます。&lt;/p></description></item><item><title>instance_eval で特異メソッドを定義する</title><link>https://blog.yuyat.jp/post/defining-singleton-methods-with-instance_eval/</link><pubDate>Sun, 25 Dec 2016 04:29:36 +0900</pubDate><guid>https://blog.yuyat.jp/post/defining-singleton-methods-with-instance_eval/</guid><description>&lt;p>最近 &lt;a href="https://github.com/yuya-takeyama/flagship">Flagship&lt;/a> という機能フラグを Ruby の言語内 DSL で定義する gem を作っていて、その中で出てきた DSL 定義パターンっぽいものをメモ。&lt;/p></description></item><item><title>BigQuery の標準 SQL モードで日付テーブルのフィルタリング、または Re:dash の Query Snippets を活用する話</title><link>https://blog.yuyat.jp/post/filtering-tables-in-bigquery-standard-sql/</link><pubDate>Sun, 04 Dec 2016 23:47:21 +0900</pubDate><guid>https://blog.yuyat.jp/post/filtering-tables-in-bigquery-standard-sql/</guid><description>&lt;p>要は Legacy SQL モード で &lt;code>FROM (TABLE_DATE_RANGE(dataset.table_, TIMESTAMP('2016-01-01'), TIMESTAMP('2016-01-14')))&lt;/code> とか書いていたのを標準 SQL でどう書くか、という話です。&lt;br>
すぐ忘れるのでメモ。&lt;/p></description></item><item><title>GitHub の Issue を作るコマンド ghissue を作った</title><link>https://blog.yuyat.jp/post/ghissue-a-command-to-create-github-issues/</link><pubDate>Sun, 27 Nov 2016 02:43:58 +0900</pubDate><guid>https://blog.yuyat.jp/post/ghissue-a-command-to-create-github-issues/</guid><description>&lt;p>作りました。&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/yuya-takeyama/ghissue">yuya-takeyama/ghissue&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Ruby で Dir.glob して require するときは sort してからにする</title><link>https://blog.yuyat.jp/post/make-sure-loading-order-to-be-consistent/</link><pubDate>Sun, 23 Oct 2016 16:39:29 +0900</pubDate><guid>https://blog.yuyat.jp/post/make-sure-loading-order-to-be-consistent/</guid><description>以下のように特定のディレクトリ配下のファイルを雑に require することがあるとする。
Dir.glob(&amp;#39;./lib/**/*.rb&amp;#39;).each {|f| require f } これだと読み込み順が一定でないので、場合によっては A というクラスが依存している B というクラスを読み込む前に参照しようとして NameError にったりする。
# a.rb class A &amp;lt; B end # b.rb class B end もちろん、これは a.rb の先頭で require 'b.rb' すればいい話ではある。
だが問題は、テスト中はたまたま問題なくいっていたものが本番で急にエラーになったりすることである。
そのため事前に sort しておくと良い。
Dir.glob(&amp;#39;./lib/**/*.rb&amp;#39;).each.sort {|f| require f } これならファイルの読み込み順序は一定になる、はず。 (OS やファイルシステムによって違う可能性もあり得る?)</description></item><item><title>Docker コンテナを DigitalOcean 上でサクッと動かす</title><link>https://blog.yuyat.jp/post/run-docker-container-in-digitalocean/</link><pubDate>Tue, 11 Oct 2016 21:29:41 +0900</pubDate><guid>https://blog.yuyat.jp/post/run-docker-container-in-digitalocean/</guid><description>&lt;h2 id="やりたいこと">やりたいこと&lt;/h2>
&lt;ul>
&lt;li>任意のアプリの Docker コンテナをサクッと立ち上げたい&lt;/li>
&lt;li>かつグローバル IP アドレスを割り当てて外から接続したい&lt;/li>
&lt;/ul>
&lt;p>より具体的には、今回は &lt;code>mitmproxy&lt;/code> をインターネット上で動かして iPhone 等のスマートフォン端末からつなぎたかった、という感じです。&lt;/p></description></item><item><title>Docker のメトリクスを Re:dash でビジュアライズ</title><link>https://blog.yuyat.jp/post/visualize-docker-metrics-with-redash/</link><pubDate>Sun, 02 Oct 2016 14:56:46 +0900</pubDate><guid>https://blog.yuyat.jp/post/visualize-docker-metrics-with-redash/</guid><description>&lt;p>しばらく前から &lt;a href="http://dokku.viewdocs.io/dokku/">Dokku&lt;/a> という Docker ベースの Heroku ライクな PaaS 基盤を趣味で運用していて、その中で旧ブログの WordPress や 自分用のツールなんかを動かしたりしている。&lt;/p>
&lt;p>サーバのメトリクス収集には &lt;a href="https://mackerel.io/">Mackerel&lt;/a> を利用しているが、Docker コンテナ単位での計測は行っていなかった。&lt;br>
Mackerel はホスト数に応じた課金を行っていて、5 ホストまでは無料だが、コンテナまで追加してしまうとすぐにその枠を溢れてしまう。&lt;/p>
&lt;p>というわけで簡単な仕組みを自分で用意いてみた。&lt;/p></description></item><item><title>【RMP×Quipper】Food&amp;Drink meetup #3 で発表した</title><link>https://blog.yuyat.jp/post/rmp-quipper-food-and-drink-meetup/</link><pubDate>Sat, 01 Oct 2016 16:41:07 +0900</pubDate><guid>https://blog.yuyat.jp/post/rmp-quipper-food-and-drink-meetup/</guid><description>&lt;p>Quipper とその親会社であるところのリクルートマーケティングパートナーズ (RMP) とでの&lt;a href="http://rmp-quipper.connpass.com/event/39082/">合同イベント&lt;/a> (平たくいうと採用イベント) があって、LT の発表枠が空いていたので発表してきた。&lt;/p></description></item><item><title>curl でレスポンスタイムをシュッと取るヤツ</title><link>https://blog.yuyat.jp/post/stuff-to-get-response-time-with-curl/</link><pubDate>Tue, 27 Sep 2016 09:10:34 +0900</pubDate><guid>https://blog.yuyat.jp/post/stuff-to-get-response-time-with-curl/</guid><description>&lt;p>以前 Qiita に&lt;a href="http://qiita.com/yuya_takeyama/items/baf48a3f643e743a46b4">curl でサッと HTTP ベンチマーク&lt;/a>と書いたが、それをもうちょい簡単にやるために以下のようなコマンドを用意してみた。&lt;/p></description></item><item><title>標準エラー出力に tee するコマンド tee2err を作った</title><link>https://blog.yuyat.jp/post/tee2err/</link><pubDate>Mon, 26 Sep 2016 01:00:24 +0900</pubDate><guid>https://blog.yuyat.jp/post/tee2err/</guid><description>&lt;p>GNU tee でも BSD tee でもできないので作りました。&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/yuya-takeyama/tee2err">yuya-takeyama/tee2err&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>GitHub Pages を nginx のリバースプロキシ越しに配信する</title><link>https://blog.yuyat.jp/post/serving-github-pages-through-reverse-proxy/</link><pubDate>Sun, 25 Sep 2016 17:57:40 +0900</pubDate><guid>https://blog.yuyat.jp/post/serving-github-pages-through-reverse-proxy/</guid><description>&lt;p>このブログは&lt;a href="https://blog.yuyat.jp/post/auto-deploy-hugo-to-github-pages-with-circleci/">以前の記事&lt;/a>にも書いた通り、&lt;a href="https://pages.github.com/">GitHub Pages&lt;/a> から配信しています。&lt;/p>
&lt;p>そしてさらに、前段に nginx のリバースプロキシを置いた構成になってます。&lt;/p></description></item><item><title>Let's Encrypt の証明書を Ansible と certbot で Nginx にインストール &amp; 自動更新</title><link>https://blog.yuyat.jp/post/auto-renew-letsencrypt-cert-keys-with-ansible-and-certbot/</link><pubDate>Mon, 19 Sep 2016 14:12:38 +0900</pubDate><guid>https://blog.yuyat.jp/post/auto-renew-letsencrypt-cert-keys-with-ansible-and-certbot/</guid><description>&lt;p>これも&lt;a href="https://blog.yuyat.jp/post/brand-new-blog/">リニューアル&lt;/a>ネタです。&lt;/p></description></item><item><title>Hugo で作ったサイトを CircleCI で GitHub Pages に自動デプロイ</title><link>https://blog.yuyat.jp/post/auto-deploy-hugo-to-github-pages-with-circleci/</link><pubDate>Mon, 19 Sep 2016 10:30:35 +0900</pubDate><guid>https://blog.yuyat.jp/post/auto-deploy-hugo-to-github-pages-with-circleci/</guid><description>&lt;p>Hugo は Jekyll と違って、GitHub Pages に push しても勝手にページ生成はされません。&lt;br>
どうにかして自分で Hugo を実行し、それで生成されたファイルを push する必要があります。&lt;br>
このブログを構築するにあたって、CircleCI でビルドして自動デプロイする手順がまとまったので公開します。&lt;/p></description></item><item><title>ブログを Hugo でリニューアルした</title><link>https://blog.yuyat.jp/post/brand-new-blog/</link><pubDate>Mon, 19 Sep 2016 02:39:31 +0900</pubDate><guid>https://blog.yuyat.jp/post/brand-new-blog/</guid><description>&lt;p>長年 Wordpress を使ってきたけどいい加減辛くなってきたので &lt;a href="https://gohugo.io/">Hugo&lt;/a> に移行しました。&lt;/p></description></item></channel></rss>