タグ

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

  • 最近思ったこと - @kyanny's blog

    ユニットテストの話題読んだ。 テストを書くか書かないかの判断の話 · GitHub フロントエンドに秩序を取り戻す方法 // Speaker Deck 仕事でよくコード書くアプリケーションが五個か六個くらいあって、三個は CoffeeScript と Marionette.js でフロントエンドをほぼ全部書いてるシングルページアプリケーションみたいなやつで、二個はフロントエンド部分と JSON API 部分が一個の Rails アプリケーションのリポジトリ内にそれぞれ同居してて、残りの一個はフロントエンドのみで JSON API は別アプリケーションになってる。 シングルページアプリケーションみたいなやつはユニットテストけっこう頑張って書いてて、フロントエンドのみのやつが 2152 passing (54s) 1 pending 1 failing で、 Rails と同居してるやつが 1

    最近思ったこと - @kyanny's blog
    hamaco
    hamaco 2015/11/17
  • 第二次CTOブームから技術顧問ブームへの流れについての考察 - @kyanny's blog

    エンジニア組織のトップには最も技術力が高い人が立つべき」という価値観にもとづいて、多くのWeb事業会社においてエース格のスターエンジニアがCTOないし類似の肩書と地位と権力を持つポジションに就いたゼロ年代のムーブメントを第一次CTOブームと呼ぶことにしよう それを踏まえてテン年代に入り、「スタートアップのような小さな組織ではそれで問題なかったけど、組織が大きくなり成熟していく過程では、経営者の視点からエンジニア組織をマネジメントできる人がいないと組織力を発揮しきれないのでダメだよね」という価値観を後ろ盾に、そこそこ年齢を重ねて気力体力的に現場の第一線がつらくなったりライフステージの変化によって以前に比べパフォーマンスを発揮できなくなった元エースや、技能ではエースに及ばないがそれ以外の格(社歴など)で勝るシニアな人材などの思惑が重なり、「次のキャリア」としてCTOという役職に再びスポットが

    第二次CTOブームから技術顧問ブームへの流れについての考察 - @kyanny's blog
    hamaco
    hamaco 2015/10/06
  • YAPC 1日目 感想 - @kyanny's blog

    世界展開する大規模ウェブサービスのデプロイを支える技術 - YAPC::Asia Tokyo 2015 直列な pull 型のデプロイで限界がきたら結局 tarball 配布して展開とかに行き着くんじゃないのかなと思ってたらやっぱりそういうプランのようだった。 Git リポジトリ同期システムを何の言語で実装し、またなぜそれを選び他を選ばなかったのか?と質問して、開発を支える部分なので運用で冒険したくなく、 Node なども考えたが慣れている Perl5 を選んだとの回答で、正しい選択(基準)だなーと思った。 HTTP/2時代のウェブサイト設計 - YAPC::Asia Tokyo 2015 今フロントエンドで何が起こっているのかを聴きたかったけど満室で入れなかったので広くて入れそうな部屋に入った。 HTTP/2 と SPDY の違いが未だにわかってないので勉強しないとなと思った。 asse

    YAPC 1日目 感想 - @kyanny's blog
    hamaco
    hamaco 2015/08/26
  • YAPC 2日目 感想 - @kyanny's blog

    Mackerel開発におけるScalaGo、そしてPerlを聴きそびれた。目覚ましかけておいて止めた覚えもないのに寝坊してしまい、遅れて到着したら案の定部屋が満室で入れなかった。1日目に引き続き7階の部屋に一度も入ることができなかった。狭すぎだと思う。ショックで心が折れてもう帰ろうかとも思ったが心を落ち着けるためにスタバでコーヒーを飲んで踏みとどまった。 Perl 5.22 and You - YAPC::Asia Tokyo 2015 せっかくだから Perl の話でも聴くかということで聴いた。 sub ($a = 0, return $b = 0) みたいなのが悪い意味でやばいと思った。 「Perl5 コアチームにとって、新しい syntax や operator を追加する動機は何か?よりよい言語デザインのためなのか、言語をより実用的にするためなのか。」という質問を(英語で)した。

    YAPC 2日目 感想 - @kyanny's blog
    hamaco
    hamaco 2015/08/26
  • Qiita::Team やめた - @kyanny's blog

    Quipper 日オフィス(+ 海外オフィス勤務の日人)で「チャット以上 Wiki 未満」な情報共有ツールとして二年ほど使ってきた Qiita::Team をやめて、 GitHub Issues に移行した。 Qiita::Team は日人の間では活用されていたが、グローバル企業なので英語以外のみでの情報共有は好ましくなく、しかも Qiita::Team は個別に invite しないとアクセスできないので海外拠点のスタッフにとっては非常に閉鎖的な場だった。せめてアクセス可能にしようと plan をアップグレードし invite したものの、国際化対応が不十分だったりそもそも日語の文章を翻訳して読もうというガッツもなかったりして、日人以外には活用されなかった。 Quipper は外部サービスの導入にポジティブだが、使われていないものはスパッとやめるポリシーがあり、幽霊会員と化して

    Qiita::Team やめた - @kyanny's blog
    hamaco
    hamaco 2015/07/30
  • インフラ系トレンド私的まとめ - @kyanny's blog

    社内勉強会でいろいろ教えてもらったのでメモ。トレンドと呼ぶには一、二年遅い。なお自分の考えを整理するために書いているものなので正確さは保証しませんしツッコミも不要です。 前提: 仮想マシンと仮想マシンイメージ VirtualBox とか、 AWS なら AMI とか。ホストマシン上で動作しているものが仮想マシンで、仮想マシンイメージは仮想マシンのスナップショットだったり、それをもとに新しい仮想マシンを作れる雛形だったり、くらいに理解しておけばよい。 Vagrant と Packer 仮想マシンと仮想マシンイメージの技術があるおかげで、作業環境(Mac とか Windows とか)上でプロダクション環境により近い環境を手軽に用意できるようになた。しかし仮想マシンの管理(起動したり、設定を変えたり)は手作業でやる必要があった(VirtualBox なら GUI でぽちぽちやったりとか) Vag

    インフラ系トレンド私的まとめ - @kyanny's blog
    hamaco
    hamaco 2015/06/17
  • フレームワークとアプリケーションの境目 - @kyanny's blog

    それでもRailsを選択する3つの理由 - pblog 興味深く読んだ。 ずっと気になっていることがある。フレームワークとアプリケーションの境目について。 アプリケーションとフレームワークははっきり区別されるべきなんだろうか。 Rails は「区別するべきだ」と要請しているように感じられる。アプリケーションはフレームワークが規定する「できること」の範囲内で書くべきであり、その範囲を外れる場合は相応の覚悟をしろ、領分を守る限り難しいが一般的な問題はフレームワークが正しく解決してやるぞ、と。 一方で、フレームワークもアプリケーションの一部である、とする考え方もあると思う。足場を支えるライブラリに過ぎない、という思想。両者の境界は曖昧になり、フレームワークが規定する「できること」だけでは物足りなくなったとき、アプリケーション側を「できること」の枠内に合わせるのではなく、フレームワーク側を拡張して

    フレームワークとアプリケーションの境目 - @kyanny's blog
    hamaco
    hamaco 2015/03/20
  • Book: Web API: The Good Parts - @kyanny's blog

    内容はよくまとまっていた。確かにそこは悩むよね、という点がいくつもカバーされていて、かつ既存の API をリサーチしたまとめを元にベターな選択肢が述べられていて納得感がある。 API の設計や実装に慣れている人でも、迷ったときのリファレンスとして利用できると思う。薄いなので全体的に言及が浅い印象があるけど、随所でより深い議論へのポインタがあるのもよい(海外ブログの URL とか) セキュリティの話題を扱う第6章だけ異彩を放っている感じがした。一読する価値はあるけど、バージョニングの話とかレスポンスデータ構造の話とかと比べるとだいぶ毛色が違っていて、この章の一部だけ妙に収まりが悪く感じた。 校正が杜撰だった。あまりにひどくて読みながら誤変換とかミスっぽい部分をメモしたら21箇所もあった。それ以外にも日語の文章としてなんか変、みたいなのもあった。今まで読んだのなかで最低レベルのミスの多さ

    Book: Web API: The Good Parts - @kyanny's blog
    hamaco
    hamaco 2014/12/19
  • Speaker としての #rubykaigi 2014 を終えて - @kyanny's blog

    RubyKaigi 2014 二日目 9/19 11:30 から Hall A にて <%= link_to "bundle", "update" %> - Make "bundle update" more fun to review という発表をさせていただきました。お聞きいただいた皆さん、ありがとうございました。 https://speakerdeck.com/kyanny/percent-equals-link-to-bundle-update-percent-make-bundle-update-more-fun-to-review Compare Linker というツールの紹介と、なぜそれを作ったのか、そして開発を通じて得た学び、などについて発表しました。 Compare Linker については You can review "bundle update" efficien

    Speaker としての #rubykaigi 2014 を終えて - @kyanny's blog
    hamaco
    hamaco 2014/09/24
  • 「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
    hamaco
    hamaco 2014/05/07
  • 例えば 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
    hamaco
    hamaco 2014/03/14
  • GitHub の未読通知をコマンドラインから開く ghn というツールをリリース - @kyanny's blog

    GitHub の未読通知をコマンドラインから開く ghn というツールをリリースした。 $ gem install ghn でインストールできる。 Quipper では GitHub を使い込んでいる。毎日数十個もの通知が届く。未読と言われると読まずにはいられない性分なので基的に全部読んでいるが、いい加減毎日何度もクリックするのに疲れたのでこのツールを作った。 ghn list と実行すると GitHub API を叩いて未読通知の URL を改行区切りで出力する。 UNIX のお作法にならい、他のコマンドにパイプして使える。 とはいえ毎度パイプするコマンドを書くのも面倒くさいので、 --open というオプションもつけた。 Mac OSX の open コマンドで URL を開いてくれる。これができたら便利だろうなぁ、と思って作ってみたら思ったとおり便利だった。 いまのままでも自分にと

    GitHub の未読通知をコマンドラインから開く ghn というツールをリリース - @kyanny's blog
    hamaco
    hamaco 2013/10/29
  • Quipper のスピード感 - @kyanny's blog

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

    Quipper のスピード感 - @kyanny's blog
    hamaco
    hamaco 2013/10/23
  • Increments は和製 GitHub の夢を見るか? - @kyanny's blog

    Quipper では日オフィスの開発者を中心に、 Qiita::Team を導入して社内のドキュメント共有を行なっている。書かれる内容は日報が多いが、技術 Tips の共有やチャットでは適切でない込み入った技術的問題を解決する議論の場としても活用している。 なぜわざわざドキュメント共有?ていうか日報書くなんてダサすぎじゃね?そう思ったあなた、日報を見くびっちゃいけません。上手に運用すればナレッジシェアやコラボレーションのみならず、チームビルディングにも役立つんです。 上手に運用された日報には前例がある。ペパボの社内 SNS であるタンパクがそれだ。毎日スタッフ全員が日報を書くきまりなのだが、来の目的である業務内容の記録以外に一言コメントを書く欄がある。定型文で済ます人もいればブログ並の長文を書く人もおり(それはわたしです!)、これがそこらの SNS なんかよりよっぽど面白いコンテンツな

    Increments は和製 GitHub の夢を見るか? - @kyanny's blog
    hamaco
    hamaco 2013/08/01
  • ルーク、 MongoLab を使え! - @kyanny's blog

    五月の終わりから Quipper で働いている。 Quipper は DeNA の co-founder である渡辺雅之氏がロンドンで創業したモバイル学習プラットフォームの会社で...みたいな話は長くなるし、読者の興味を引きそうにないのでやめておく。このへんの話を詳しく知りたい人は渡辺によるハーバード・ビジネス・レビューの連載をどうぞ。 ソフトウェア開発者にとって一番気になるのは、会社の事業内容とか売上利益よりも、「どんな環境でソフトウェア開発をしているのか」じゃないだろうか。どんなインフラを使っているのか、バージョン管理やタスク管理はどうしているのか、自動テストはどのくらいやっているのか、開発手法はアジャイルなのか、 Mac で開発できるのか、椅子は六万円以上か(冗談ですよ)、などなど。 こういった、ソフトウェア開発者が日々過ごす広義の「環境」について言えば、 Quipper はかなりい

    ルーク、 MongoLab を使え! - @kyanny's blog
  • 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
    hamaco
    hamaco 2013/05/11
  • Jenkins に bundle update した上で Pull Request させる - @kyanny's blog

    皆さん bundle update してますか?ぼくは忙しさにかまけてついサボりがちなのですが先日何ヶ月ぶりかにやってみたらけっこういろんな gem がアップデートしててヒヤリとしました。 bundle update 忘れは今後もまたやってしまいそうだと思い、なにかこれを解決する方法がないか考えたところ、 マメにやるのは無理。余裕があればやるけど忙しくなったら忘れる。自分の意識が低くなっても破綻しない仕組みを作るべき 差分が小さくても Pull Request を出すのは悪くない。というか Pull Request は毎日全員が見るし放置されにくい bundle outdated の結果をメールするのもお手軽そうだけど、メールなんてどうせ見ない (pendaxes がいい例で、毎朝メールがきても痛くも痒くもない) ということで「Jenkins に毎週 bundle update したブラン

    Jenkins に bundle update した上で Pull Request させる - @kyanny's blog
  • master ブランチにマージ済みのリモートブランチをまとめて削除する git-prune-remote-branch というスクリプトを作った - @kyanny's blog

    必要になったのでそういうものを作りました。 https://github.com/kyanny/git-prune-remote-branch パスの通ったところに置いて Git のワーキングディレクトリで実行すると master と develop にすでにマージ済みのリモートブランチを全部削除します。 --noop で dry-run モードになるので実際に消す前に確認もできます。なんで master だけじゃなく develop も?というと、僕のチームで gitflow を使っているからです。 $ git clone git://github.com/kyanny/git-prune-remote-branch.git $ git-prune-remote-branch --noop $ git-prune-remote-branchgit push --mirror じゃダメなの

    master ブランチにマージ済みのリモートブランチをまとめて削除する git-prune-remote-branch というスクリプトを作った - @kyanny's blog
    hamaco
    hamaco 2012/10/11
    お、これ便利そうだな〜。 問題は必要になった時に忘れてる可能性があることか……
  • tig でいま見ているコミットをブラウザで開く - @kyanny's blog

    tig で Git リポジトリのログを読んでるときに「このコミットのページをブラウザで見たい!でもコピペするのは面倒だ!」と思ったので o 押したら開くようにした。 tig のキーバインドは .tigrc というファイルでカスタマイズできる。外部コマンドの呼び出しができるし、いまみている commit の SHA1 を渡せるので、こんな感じで hub コマンドを呼び出せる。 だいぶ楽なのでおすすめです。

    tig でいま見ているコミットをブラウザで開く - @kyanny's blog
    hamaco
    hamaco 2012/07/23
  • デプロイ作業の属人化を徹底的に排除したい話 - @kyanny's blog

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

    デプロイ作業の属人化を徹底的に排除したい話 - @kyanny's blog