タグ

ブックマーク / blog.kyanny.me (46)

  • GitHub に入社して 3 年経った - @kyanny's blog

    2024-02-09 で GitHub に入社して丸 3 年経った。入社日は 2021-02-09 だった。 (これは 2024-03-06 に書いている) 3 年目はあまり良い一年ではなかった。年末年始は US テック業界にレイオフの嵐が吹き荒れ、GitHub でも 2 月にレイオフが行われた。比較的仲がよかったエンジニアも対象になり、数少ない「つて」がなくなった。春以降は同僚が育児休暇に入り(これはとても良いことだ)、仕事量が増えてオーバーワーク気味になった。勤怠の記録を振り返ると実稼働時間(残業)が顕著に増えたわけではないが、週末も翌週の仕事のことが頭から離れなかったり(まあそれは昔から割とそうだが)、仕事中も息つく暇なく次から次へと問い合わせをこなす感じで余裕がなかった。秋には状況が改善したが、知らずのうちにストレスを溜め込んでいたようで、職場に関連して思慮の浅さからくる失敗をして

    GitHub に入社して 3 年経った - @kyanny's blog
  • adopt と adapt の違いの覚え方 - @kyanny's blog

    辞書は読むもので、ちゃんと書いてあった。 adopt は "opt (選ぶ)" から、「採用する」という意味 adapt は "apt (合わせる)" から、「適合する」という意味 あとは発音の違いももセットで覚えないと...

    adopt と adapt の違いの覚え方 - @kyanny's blog
    yuiseki
    yuiseki 2023/07/14
  • 技術顧問ブームの流れを汲んだエンジニアリングマネージャーブーム、という考察 - @kyanny's blog

    というか、(かなり偏見を含む)空想。 blog.kyanny.me 「技術力が衰えつつあるおじさんエンジニアのキャリアパスをどうするか」という命題に対して業界は「経営がわかるCTO」「技術顧問」などの回答を示してきた しかしCTOも技術顧問も椅子に限りがあるため、業界は新たな受け皿を必要としていた 業界の平均年齢が上がり、他の業種と同様におじさんエンジニアたちは「管理職」になることを受け入れなければならなくなったが、この業界は「マネージャー(管理職) = 悪」という価値観が根強いため、業界人たちの意識変革が必要だった そういうもろもろの問題意識やら個々人の思惑やらが交錯した結果、どこかの誰かが「エンジニアのマネージャーは無能な管理職なんかじゃない!『髪の尖った上司』なんかじゃないんだよ!」といいだし、キャリアに不安を抱えていたおじさんエンジニアたち(と、そんなおじさんの背中をみてぼんやりと

    技術顧問ブームの流れを汲んだエンジニアリングマネージャーブーム、という考察 - @kyanny's blog
  • Firefox やめた - @kyanny's blog

    blog.kyanny.me 使い物にならない、とは言わないが、おすすめしない。 遅い もっぱら毎日 GitHubGoogle Drive にアクセスしているが、どこも Chrome に比べて体感で明らかにわかるほど表示も動作も遅い 速度がウリって、いったいどこのウェブサイトなら速いわけ? 一番困ったのが Cmd+W に対する反応が遅くて(処理落ちしてる感じ)気持ち長く押してしまうのか、閉じたくないタブまで閉じる操作ミスが頻発した 開発者ツールが使いづらい 慣れの問題もあるけど、機能の少なさはこなれてなさは否めない minify された .js ファイルを prettify してブレークポイントを設定しても、そこで止まってくれない。デバッグが致命的にやりづらい 拡張がめっちゃ少ない Quantum で過去の拡張を捨て去ったので、拡張を探しても軒並み未対応 Trello の公式拡張が未

    Firefox やめた - @kyanny's blog
  • 採用基準についてトレードオフスライダーを使って議論した - @kyanny's blog

    開発者の中途採用をやっていくにあたり、「チームの誰もが採用担当」というポリシーでインタビューやコードテストのレビューなどをみんなでやってきたが、「どういう人を採用すべきか?」についての認識が合わなくなってきたと感じたので、認識を合わせるために議論の場を設けた。議論を進めるためのツールとしてトレードオフスライダーを使ってみた。うまくいくか確証はなかったが、事後にアンケートをとったら過半数からフィードバックをもらえ、全て好意的だった(五段階評価で4と5が半数ずつ)ので、まぁまぁうまくいったのだろうと受け止めて、もろもろ公開します。 使った資料はこちら。 以下、意図とか進め方とか学びとか。 最終的な目標は「採用基準についての認識が合うこと」なのだが、全員の認識・見解が一致することなどありえないと思っていて、むしろ各人の認識がどれくらいズレているのかを明らかにすることのほうが重要だと思っていた。そ

    採用基準についてトレードオフスライダーを使って議論した - @kyanny's blog
  • How Quipper tests software - @kyanny's blog

    Excelなテスト仕様書をMarkdown/GitHub/CircleCIに移行した話 - トレタ開発者ブログ という記事を読み、「最初から Google Spreadsheets を使えばいいのに」と思った。 実際 Quipper では一年以上前からテスト仕様書として Google Spreadsheets を使っていて、それなりにうまくまわっている。 サービスごとにテストケースは異なるので、こういうスプレッドシートが複数ある(インドネシア・フィリピン・メキシコで展開している Quipper Video / Quipper School 用がそれぞれと、日で展開しているスタディサプリ用が一つ)これは Quipper Video 用で、 Quipper Video は利用者数の関係からインドネシア向けのアプリケーションに対してテストを実施するので、テストシナリオは英語で書かれているがとこ

    How Quipper tests software - @kyanny's blog
    yuiseki
    yuiseki 2016/07/08
  • New Relic のグラフを毎時チャットに貼り付ける - @kyanny's blog

    New Relic をこまめにチェックすべきだが怠惰かつ忘れっぽいせいでチェックできないので、グラフ画像が毎時チャットにつぶやかれるようにしてみた。 やり方はけっこう込み入っている。 New Relic の Embedded Charts 機能を使って埋め込み用のグラフを作る。 Amazon S3 にバケットポリシーでデフォルト公開設定にしたバケットを作る。 適当なサーバーに Jenkins と phantomjs と s3cmd をインストールし、 s3cmd は 2. で用意したバケットに書き込める Access Key Secret Key で --configure しておく。 capture_put.sh というスクリプトを使い、 phantomjs で embedded chart のスクリーンショットを撮って s3 に put し、画像の URL を HipChat に投稿す

    New Relic のグラフを毎時チャットに貼り付ける - @kyanny's blog
    yuiseki
    yuiseki 2014/11/18
  • livedoor Reader 終了に寄せて: Fastladder オープンソース版は GitHub で開発継続中です - @kyanny's blog

    【重要】 livedoor Reader サービス終了のお知らせ|livedoor Reader 開発日誌 livedoor Reader が 2014年12月25日(木) をもってサービスを終了します。自分でも永らく使っていたし、個人的に縁も思い入れもあるサービスなのでとても残念です。 Twitter で fastladder を検索 して眺めていると、やはりというか LDR 終了で移行先を探している方が多数いるようです。候補としてオープンソース版の Fastladder のセルフホストを検討している方もそれなりにいるようですが、 http://fastladder.org/ja/ のほうをみて「ずいぶん古そうだし、メンテナンスされてる気配もないからダメかな...」と諦めているつぶやきをみかけたので、ちょっとアナウンスを。 http://fastladder.org/ja/ のソースコー

    livedoor Reader 終了に寄せて: Fastladder オープンソース版は GitHub で開発継続中です - @kyanny's blog
    yuiseki
    yuiseki 2014/10/03
  • JavaScript で if 文を書くとき必ず波括弧を書くべきと主張しているスタイルガイド - @kyanny's blog

    新人さんの JavaScriptコードレビューをしていて、 if 文の体部分を波括弧で囲っていないコードを見つけた。 おれは体が一行しかなくても必ず波括弧で囲うようにしており(そのほうがわかりやすいと思っているから)、できればそうして欲しいけど個人の好みを押し付けるのはよくないので、広く支持されているコーディングスタイルガイドの類いで同様の主張をしているものが無いか探した。 Google とか Mozilla とか GitHub あたりのドキュメントを眺めてみたが if 文の波括弧についてはっきり言及している箇所を見つけられずにいたら、該当するドキュメントをいくつか教えてもらった。 http://contribute.jquery.org/style-guide/js/#spacing if/else/for/while/try always have braces and alw

    JavaScript で if 文を書くとき必ず波括弧を書くべきと主張しているスタイルガイド - @kyanny's blog
    yuiseki
    yuiseki 2014/06/02
  • Chromecast SDK で画像を一枚表示する最小限のサンプル - @kyanny's blog

    Chromecast を買ったので SDK で遊んでみた。 Happy casting! https://dl.dropboxusercontent.com/u/4289117/cast/sender.html ソースコードはこちら https://github.com/kyanny/chromecast-demo/tree/master Google Cast 拡張をインストール済みの Chrome ブラウザで上記のページを開くと、キャストするデバイスを選ぶウィンドウがポップアップする。デバイスを選ぶと我が家のの写真が表示されます :) デモ動画その1: Sender アプリケーション側。右側にあるのは Chrome DevTools のコンソールで、デバッグ用に仕込んだ console.log が流れている(なんか映像がボケてて見づらいけど...) デモ動画その2: 上記の操作をした

    Chromecast SDK で画像を一枚表示する最小限のサンプル - @kyanny's blog
    yuiseki
    yuiseki 2014/06/02
  • Single Page Application ではない場合 JavaScript コードのエントリポイントはどこにあるべきか? - @kyanny's blog

    仕事で中規模程度の Rails アプリケーションのコードベースをいじっている。このアプリはもともと app/assets/javascripts 以下に必要に応じて JavaScript ファイルを置き、適当なテンプレートファイルから直接 JavaScript の関数を呼び出したりしていた。ごく普通の Rails アプリである。 このアプリは CMS で、いわゆる「ブログの管理画面」みたいな用途で使われている。一部の機能はそれなりに込み入った UI 操作を必要としページ遷移なしに操作できる必要があるが、旧来のやり方では JavaScript コードの管理が間に合わなくなってきたので部分的に Backbone.js を導入し始めている。 最近悩んでいるのが、 Backbone.js なコードのエントリポイントをどのように呼び出すべきなのか?ということ。そもそも自分が Backbone.js

    Single Page Application ではない場合 JavaScript コードのエントリポイントはどこにあるべきか? - @kyanny's blog
    yuiseki
    yuiseki 2014/03/31
  • 例えば OSFA な API をやめる - @kyanny's blog

    OSFA == one-size-fits-all 単一の API で全てをカバーするのをやめたらどうか、ということ。 APIのバージョニングは限局分岐でやるのが良い - Hidden in Plain Sight @kenn 最近はRESTfulなエンドポイントは完全に後方互換なまま、クライアントごとにオーケストレーション層(radical versionin)を設けるという方向にシフトしようとしている。詳しくは http://t.co/zODm7mFr5B— Tatsuhiko Miyagawa (@miyagawa) February 28, 2014 この話のポイントとはちょっとずれてる && Podcast 聴いてないのですが。 Quipper プラットフォームで内部的に利用されている API も、 /v1 というパスの下にはえててごく一部のエンドポイントだけ /v2 がある、み

    例えば OSFA な API をやめる - @kyanny's blog
    yuiseki
    yuiseki 2014/03/07
  • Redis の maxmemory-policy について - @kyanny's blog

    Redis をキャッシュストレージとして利用する場合、 maxmemory によって利用可能なメモリの最大値を指定できる。 maxmemory の値を超えるデータの追加が発生した場合の振る舞いを maxmemory-policy によって指定できる。デフォルトの maxmemory-policy は volatile-lru で、 LRU アルゴリズムに従って古いキーの値が優先的に破棄される。 maxmemory-policy は数種類から選べるが、そのうち noeviction を選んだ場合、古いキーの値は破棄されず、新規追加はエラーとなる allkeys-lru または allkeys-random を選んだ場合、 expire の有無に関わらず、全てのキーの中から破棄対象が選ばれる その他を選んだ場合、 expire がセットされているキーのみが破棄対象となる という違いがある。実装

    Redis の maxmemory-policy について - @kyanny's blog
  • Quipper のスピード感 - @kyanny's blog

    先日、ブログ記事を読んでいて autodoc というツールを見つけた。 Rails の Request Spec から自動的に API ドキュメントを生成するというもの。コードとドキュメントがい違ってしまう問題を解決できるかも、と思って試しに Quipper 社内で紹介してみた。 当初は「良さそうだね、でも今使っている API サーバー用フレームワークでは使えないようだし、こまごまと不満もあるので、いずれ Rails に乗せかえるときにでも再検討しよう」なんていう反応を予想していた。自分の担当箇所でちょっと使うくらいが関の山だろうなと。しかしその予測は見事に外れた。 紹介した当日、我々が API サーバーを書くのに使っている grape という gem で autodoc を利用するのは骨が折れそうだということがわかる。にもかかわらず翌日、 API サーバーを Rails にマイグレーシ

    Quipper のスピード感 - @kyanny's blog
    yuiseki
    yuiseki 2013/10/22
  • rbenv のメカニズム - @kyanny's blog

    rbenv 環境下で実行された Ruby プログラムの中から他の Ruby プログラムを起動するときに、 rbenv 環境をリセットしたい―要するに別のバージョンの Ruby で外部プログラムを実行したい―という事情があったので rbenv のメカニズムについて調べた。 rbenv 環境下で ruby コマンドを実行するとき、実際にコンパイルされた ruby バイナリが直接実行されているわけではない。 rbenv 環境をお膳立てした上で ruby バイナリを exec するラッパーのシェルスクリプトが実行される。こういうものを binstub と呼ぶ。 binstub である ruby という名前のシェルスクリプトの中身をみてみると、最終的に rbenv exec というサブコマンドを呼び出している。 rbenv のサブコマンドはリポジトリでいうと libexec ディレクトリ以下にある。

    rbenv のメカニズム - @kyanny's blog
    yuiseki
    yuiseki 2013/05/30
  • デプロイ作業の属人化を徹底的に排除したい話 - @kyanny's blog

    ここ数カ月、デプロイとリリースについて、同僚や友人と議論したり雑談したりする機会が数多くあった。そんな折に、友人から Facebook のリリースエンジニアリングチームについて教えてもらった。曰く、 Facebook ではリリース作業を専門とするチームがあり、そこのメンバーは開発ブランチのコミットとそれに付随する ITS の議論を精査した上でリリースに値する変更をリリースブランチへ cherry-pick するのだそうだ。 2012/07/25 追記 Facebook のリリースエンジニアリングについては Facebook のリリースと文化 - Kato Kazuyoshi を参照のこと cherry-pick は無いわー、というのは置いておくとしても、リリースという極めて重要な作業が特定の人たちに委ねられている点に恐ろしさを感じた。嫌だと思うのはなぜなのかしばらく考えて、デプロイ作業の属

    デプロイ作業の属人化を徹底的に排除したい話 - @kyanny's blog
    yuiseki
    yuiseki 2012/07/20
  • 「RSpec は英語として読みやすいから良い」というお題目はなんだったのか - @kyanny's blog

    rspec-2.11 がリリースされましたね。いくつかの変更点の中に、今後は should ではなく expect を推奨し、デフォルトでは expect のみが有効化されるようになる、というものがありました。 http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax 個人的にこの変更は説得力に欠けるなーと思っていて、 expect 推しにする理由が should は Kernel にはえるので Kernel を include しない BasicObject のインスタンスに対して should を呼ぶとおかしくなる 標準ライブラリ delegate は Kernel のメソッドの一部だけを include するので rspec と delegate のどちらが先にロードされるかによって should の挙動

    「RSpec は英語として読みやすいから良い」というお題目はなんだったのか - @kyanny's blog
  • Ruby で動画を扱うライブラリについて (RVideo, RTranscoder, FLVTool2) - @kyanny's blog

    Ruby で動画を扱うライブラリについて少し調べたので書いておく。 ざっと探したところ、 RVideo, RTranscoder がそこそこ有名なようだった。あと変わり種で FLVTool2 というのがあった。他に良いのがあったら教えてください。ちなみにこれらのライブラリで動画の変換 (convert) はやったことがない。 RVideo http://rvideo.rubyforge.org/ (オススメしない) http://github.com/newbamboo/rvideo (オススメ) まず普通に gem install rvideo で手に入るバージョンは古い (0.9.3) ので使わないほうが良い。オフィシャルページ?には 0.9.4 とか書いてあるのにそんなバージョンないし。 Github でいろいろ fork されていて、俺は newbamboo-rvideo を使って

    Ruby で動画を扱うライブラリについて (RVideo, RTranscoder, FLVTool2) - @kyanny's blog
    yuiseki
    yuiseki 2012/06/08
  • 第1回Ruby開発環境勉強会 - @kyanny's blog

    第1回Ruby開発環境勉強会 - delirious thoughts http://kentaro.hatenablog.com/entry/2012/05/29/230254 という勉強会があったので、「見よう見まねでカスタマイズしてもどうせ使いこなせないからギリギリまでやらなくてよし」などという意識の低い感じの話をしました。 スライドには書いてないこともけっこう喋ったので捕捉: リファレンスマニュアルについて Emacs (anything) から perldoc とかるりまとか引けるようにしたこともあるけど、コマンド名やキーバインドを覚えられず定着しませんでした。あと、用例も見たいので結局ほかのページもぐぐることになり、もうブラウザでいいや、というのが今のところの結論です。わざわざキーワードを当てたのは、「赤い背景」のページばかり上位に出てくるのが嫌だったからで、単にキーボードから

    第1回Ruby開発環境勉強会 - @kyanny's blog
  • The Art of Readable Code の翻訳レビューに参加しました - @kyanny's blog

    The Art of Readable Code の日語訳がこの夏に発売されます。翻訳は「メタプログラミングRuby」や「ウェブオペレーション」でおなじみの 角 征典 (@kdmsnr) さんです。 自分のブログに The Art of Readable Code の感想を書いていたことがきっかけで、翻訳レビューに参加させて頂く機会を得ました。ささやかながらも技術書がつくられるプロセスに関わることができて、とても光栄です。夢がひとつ叶いました。ありがとうございました。 「メタプログラミングRuby」には非常に感銘を受け、また実務においてもずいぶん助けられました。 Perl コミュニティで Moose/Mouse などがブームになったとき、メタプログラミングという概念についていけなかった苦い思い出があるのですが、「メタプログラミングRuby」を読んだおかげで数年来の苦手意識を払拭することが

    yuiseki
    yuiseki 2012/04/20