タグ

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

  • 2016年を振り返る - @kyanny's blog

    毎年恒例の。 2015年を振り返る - @kyanny's blog Look Back 2014 - @kyanny's blog Look Back 2013 - @kyanny's blog Look back 2012 - @kyanny's blog 2011年を振り返る - @kyanny's blog 2010年を振り返る - 刺身☆ブーメランのはてなダイアリー 2009年を振り返る - 刺身☆ブーメランのはてなダイアリー 仕事 2016年は仕事に追われた一年だった。受験サプリを Quipper プラットフォームへ移管するのが一番大きな仕事だったが、移行当日に体調不良でぶっ倒れてしまい、肝心の移行作業中は自宅で床に臥せっていた。情けない。吐くほど具合が悪くなることは年に一度あるかないかで、なぜあのタイミングだったのか未だに不思議だ。 その後も雑多な仕事に終われる日々が続いたが

    2016年を振り返る - @kyanny's blog
    hfmgarden
    hfmgarden 2017/01/01
  • エンジニア立ち居振舞い: ルーズボールを拾う - @kyanny's blog

    お題「エンジニア立ち居振舞い」 チャットや課題管理システムを使って非同期コミュニケーションをしていると、誰かに向けて発せられたけど誰も応答していない、ルーズボールのようなメッセージができてしまう。こういうのを見かけたら、できるだけ拾うようにしている。 Quipper の Slack には #development という公開チャンネルがある。開発者が開発にまつわる話をする場で、開発者向けの #general チャンネルといった位置づけだ(なお、開発者向けの #random に相当する #slackoverflow というチャンネルもある) #development は公開チャンネルなので、開発者だけでなく、営業・マーケティング・カスタマーサポートなどの部門で働く人たちも参加している。時折、彼らがシステムのことで何か困っていて、開発者の手助けが必要なことがある。そういうとき、誰でも構わないか

    エンジニア立ち居振舞い: ルーズボールを拾う - @kyanny's blog
    hfmgarden
    hfmgarden 2016/11/18
  • kyanny@quipper.com - @kyanny's blog

    Quipper に入社したとき、ひとつだけ残念だったことがある。メールアドレスのローカルパートを選べなかったのだ。当時はファーストネームを使う決まりで、俺のメールアドレスは kensuke@quipper.com になった。Twitter でも GitHub でもブログの独自ドメインでも使っている kyanny を使えたらよかったのにな、と思ったものだった。まぁ、些細なことなんですが。 つい先ほど、メールアドレスが ID と違う問題に決着がつけられた。メールアドレスのルールは俺の入社後ほどなくしてフルネームを使うように変更され、ずっとそれで運用されてきたが、ついに同姓同名のひとがあらわれた。その場合の回避ルールも定められていたのだが、これをきっかけに議論が再燃?した。「メールを書く機会は少ないけど、実は Google カレンダーの予定に招待するとき探しづらくて不便だった」という声が多くあが

    kyanny@quipper.com - @kyanny's blog
    hfmgarden
    hfmgarden 2016/11/12
  • 私のソースコードの書き方 - @kyanny's blog

    note.mu なるほど自分も同じような感じでやっているなぁ、と思った。もうちょっと詳しく書くと、 まず変更しようと思っている部分の周辺のコードを読んで、「ここらへんをいじればよさそう」と当たりをつける(当たりのつけかたにもいろいろあるのだが後述) 土地勘を養ったところで具体的な変更の仕方を考える。必要に応じて紙に下手くそな図を書いたり、考えを箇条書きにしたり、実際にコードを試しに変更してみたりする この方針でいけそう、と道筋が見えたらいよいよコードを書き始める。細かい単位でコミットするかどうかは場合によるが、少なくとも git add はこまめに行う(エディタの undo でせっかく書いたコードを失わないため) 道筋が見えなかったり、プロトタイプ的に書いたコードが望み薄そうだったら潔く諦める。煮詰まっていることを自覚して、コーヒーを買いにいったり、オフィスの外を散歩したりして頭をリフレッ

    私のソースコードの書き方 - @kyanny's blog
    hfmgarden
    hfmgarden 2016/07/18
  • なぜ Quipper のエンジニア採用面接には必ず候補者の同僚となる人が参加するのか - @kyanny's blog

    ohbarye.hatenablog.jp Quipper のエンジニア採用には必ず候補者の同僚となる人*1が参加する。いつからかはわからないが自分が候補者として採用面接を受けた昨年の7月頃にはそうなっており 2015年の5月か6月ごろ、俺がエンジニア採用活動に関わるようになったタイミングで、強く希望してそういう仕組みにした。なぜか。 いちスタッフとして、自分が意見を表明する機会が無いまま、自分の同僚になるかもしれない人が選考・採用される状況に納得できなかったから。そして、自分自身は採用活動に関わるようになって不満を感じなくなっても、他の人は相変わらず同じように感じているかもしれない、そういうアンフェアな状況にも納得できなかったからだ。 なので、採用活動に関わるべき人たちに対して、採用活動における各種の情報ができるだけ多く共有されるように、少しずつ仕組みを変えていった。例えば: 試用期間を

    なぜ Quipper のエンジニア採用面接には必ず候補者の同僚となる人が参加するのか - @kyanny's blog
    hfmgarden
    hfmgarden 2016/07/16
  • 雑って言うやつが雑 - @kyanny's blog

    「雑」というレッテルをはって何か言った気になる、そういう姿勢は良くない。「雑」だけでは何が問題なのかもどうすれば解決できるのかも(そしてそもそもそれが当に問題なのかも)全くわからない。問題の分析をサボっている。「雑」という雑な言葉で雑なレッテルをはる行為そのものが雑なのだ。 「雑」という言葉を使うのをやめるべきだ。いい加減な言葉を使っている限り、問題に向き合い考える習慣は身につかない。事象を説明する適切な言葉は何か。それについて考える過程ではじめて問題分析の入り口に立てる。あらゆることを「雑」の一言で済ますのは、思考を放棄しているに等しい。

    雑って言うやつが雑 - @kyanny's blog
    hfmgarden
    hfmgarden 2016/07/03
    "雑って言うやつが雑"
  • Quipper に入社して丸3年が経った - @kyanny's blog

    Quipper に入社して丸3年が経った。そんなことすっかり忘れていた。3年と言われてもピンとこない。体感的にはものすごく昔のことのように感じられる。それだけいろいろあって濃い日々を過ごせたということだと思っておこう。 せっかくなので、 Quipper 日オフィスの変遷になぞらえながら振り返ってみる。 入社前夜 前職で担当していたサービスの事業展開がうまくいかず、英語を使う環境で仕事をしてみたいという希望もあり、海外スタートアップ企業への転職を考えはじめたのが2013年の3月だった。 3月上旬にWantedly で見つけた Engine Yard のソフトウェア開発者募集に応募して選考に進んだものの、合否がなかなか出ず、やきもきしていた頃に前職の同僚で同じサービスをペアで開発していた @banyan に「Quipper に転職するんだけど話聞いてみない?」と誘われたのが4月の半ば(たしか

    Quipper に入社して丸3年が経った - @kyanny's blog
    hfmgarden
    hfmgarden 2016/05/30
  • 最近思ったこと - @kyanny's blog

    ここ数ヶ月、十数年のソフトウェア開発者人生で初めて、悪名高いExcel方眼紙に書かれた仕様書というものに触れる機会を得たのだが、悪評の理由が身を持ってわかった。 装飾過多。長過ぎるフローチャートや謎のテーブル風定義一覧の「見栄え」ばかりよくて肝心のデータの見方・読み方がわからない。 おそらく装飾にパワーを取られすぎているからだと思うが、仕様の説明に不足がある。フィールド文字列長が何バイトとか書いてあるが超過したとき何が起こるか明記されていない、など。 そのシステムが実現するビジネスにおける仕様について(仕様書なのに)触れられていない。ドキュメントの書き手が読み手に対して「機械のように指示に忠実に実装だけすればよい」と考えているのが見え透いている。 実装例・サンプルコードの類に乏しい。コードを見ればすぐ理解できる類のことを無理にコード無しで伝達しようとするので情報の劣化が激しく、資料として不

    最近思ったこと - @kyanny's blog
    hfmgarden
    hfmgarden 2016/01/31
  • オレオレ Git サブコマンドを作る - @kyanny's blog

    今日同僚と「git copy ってないの?」「ないすよ」という話をして、そういえば svn のころの癖でつい git help copy などと探してしまうし、別にあっても害はないかなと思って git-copy を作ってみた。 https://github.com/kyanny/git-copy なんのことはない、単に cp(1) を実行するだけなんだけど、 Git は git-* という名前の実行ファイルを PATH の通ったところに置いておくと勝手にサブコマンドとして認識してくれるので*1、このように手軽にオレオレ Git サブコマンドを作ることができる。 git-copy は仕事の息抜きにちょろっと書いてみたジョークコマンドだけど、世の中には git-daily や git-now のような実用的なツールも存在する。もちろんサブコマンド化などせず独自の便利ツールを作ってもいいのだけど

    hfmgarden
    hfmgarden 2015/12/16
  • bundle のなかで bundle する - @kyanny's blog

    Bundler.with_clean_env と bundle install --gemfile について追記しました bundle exec した環境下でさらに bundle exec したいことがある。 bundle exec rake resque:work で起動した Resque ワーカーのなかで system("bundle exec rake spec") のような外部コマンドを呼び出すとか。ありますよね。ぼくは最近ありました。そしてハマった (そしてググりづらかった) のでこれ以上犠牲者を増やさないためにブログに書く。 bundler は実行時にいくつかの環境変数を定義するが、この場合問題になるのは BUNDLE_GEMFILE と GEM_HOME だ。 BUNDLE_GEMFILE は bundler が参照する Gemfile のパスで、 GEM_HOME は ge

    bundle のなかで bundle する - @kyanny's blog
    hfmgarden
    hfmgarden 2015/11/14
  • nginx は 複数の URL が含まれた X-REPROXY-URL ヘッダを扱えない - @kyanny's blog

    Perlbal には、リバースプロキシとして利用しているときバックエンドが X-REPROXY-URL というヘッダに「ファイルの実体の URL」を入れてレスポンスを返すと Perlbal が改めてその URL にリクエストして (reproxy) 実体をとってきてからクライアントに返す、という機能があり、画像や動画などファイルサイズが大きい静的コンテンツを配信するのに便利なのでよく使われている。特に MogileFS と組み合わせて使う例がよくみられる。 この X-REPROXY-URL ヘッダによる reproxy 機能は Perlbal 以外のウェブサーバでもサポートされていて、 nginx でも扱うことができる (Apache や Lighttpd でも対応したモジュールがある) できるんだけどリバースプロキシを Perlbal から nginx に変更したら X-REPROXY-

    nginx は 複数の URL が含まれた X-REPROXY-URL ヘッダを扱えない - @kyanny's blog
    hfmgarden
    hfmgarden 2015/10/01
    Perlbal と nginx のX-REPROXY-URLの比較が丁寧で分かり良い。
  • 手に馴染む - @kyanny's blog

    知人が「新しいソフトウェア技術を習得するためにコードを書いたりしているが、まだ手に馴染まなくて」と言っていて、いい表現だなと思った。 プログラミングやソフトウェア技術の学習方法としてよく紹介される「写経」はまさに、その言語やソフトウェアの使い方を手に馴染ませるための訓練だ。だから、文字通り一字一句書き写すのでも、アレンジを加えながらでも、どちらでも良いのだ。 とにかく手を動かすことだ。考えながらでも、何も考えなくても、手を動かした時間は無駄にならない。

    手に馴染む - @kyanny's blog
    hfmgarden
    hfmgarden 2015/09/13
  • 最近読んだもの - @kyanny's blog

    CSS再入門 - できる!中央寄せ 5 | CodeGrid 今回もよかった。今まで全く意味がわからなかった translate を使ったものがどういう仕組みか理解できた。 The One Skill That Beats Talent Every Time — On Breaking the Mold — Medium コミュニケーションと有言実行について。概ね同意。 コミュニケーションは非同期でも成り立つ、と考えているのは自分を含めごく一部の人間集団だけだ、という意識があると心構えができる。電話をかけて相手が出なかったらイラっとするように、メールやチャットの返事が即座に返ってこないことを「あたりまえ」とは考えない人が世の中にはたくさんいるのだ。 グループチャットができるソフトウェアは、その点で立ち位置がぶれているとも思う。非同期コミュニケーションを謳っておきながら、同期が期待されるプラ

    最近読んだもの - @kyanny's blog
    hfmgarden
    hfmgarden 2015/08/24
  • いま、 Quipper ではたらく魅力とは何か - @kyanny's blog

    イベント等で社外の方と会うと、セールストーク気味に「Quipper の魅力」を語ってしまうことがある。そういうときはたいてい、 世界各国でサービスを提供しているグローバル企業であること モダンな開発環境・開発プロセスを採用していること 「教育」という社会的に意義がある事業をやっていること みたいなことを言うのだが、内心「グローバルでモダンな開発で社会的意義のある事業をやってる会社は他にもあるよなぁ」と思わなくもなかった。平凡ではないが、圧倒的でもない。他との差別化には、これだけでは不十分だ。 だが、いまの Quipper には他を凌駕する魅力がある。「世界一への挑戦権」がそれだ。 jp.techcrunch.com TechCrunch の記事にも書いてあるように、 EdTech シーンはビッグプレイヤーが世界中で陣取り合戦をする段階に入っている。特定の分野や地域に特化したサービスは今後も

    いま、 Quipper ではたらく魅力とは何か - @kyanny's blog
    hfmgarden
    hfmgarden 2015/07/04
  • Go Newsletter issue 48 - @kyanny's blog

    Go Newsletter Issue 48: March 5, 2015 Go は未だに遠巻きに眺めているだけだが、 Cooper Press のメルマガシリーズにラインナップがあるのでしばらく前から購読している。 Disclimer: 私は Go ブームに乗り遅れたので Go を取り巻く物事を白けた気分で見がちです。よってこの記事に書かれている意見には強いマイナスのバイアスがかかっている可能性があります。 https://groups.google.com/d/msg/golang-dev/nMWoEAG55v8/iJGgur7W_SEJ Go にもそろそろ Ruby でいう Bundler 的な仕組みが必要だね、という提案。 Brad Fitzpatrick が Google に行ったときはまだ仕事Perl を書いていたんだっけなあ(もっとあとかもしれない)当時は Google

    Go Newsletter issue 48 - @kyanny's blog
    hfmgarden
    hfmgarden 2015/03/07
  • アナログ世界時計をチャットに貼れるサービス Tokei.link をリリース(Slack 対応) - @kyanny's blog

    「現在時刻を知りたい国や都市をチャットでつぶやいたら時計が表示されると便利だな」と思ってそういうサービスを作りました。無料です。登録も不要です。 http://www.tokei.link/ アナログ時計なので文字を読まずにパッと見でだいたいの時刻を把握できます。一つの国や都市の現地時刻を表示する機能と、二つの国や都市の現地時刻を並べて表示する機能があります。「ロンドンとシンガポールの同僚とビデオ会議をしたいけど、いま何時かな?」みたいなときに便利です。 API があります http://www.tokei.link/doc http://www.tokei.link/png?destination_timezone=New+York&local_timezone=London のような URL に GET リクエストを送ると、指定したタイムゾーンの現在時刻を表す PNG 画像を返します。

    アナログ世界時計をチャットに貼れるサービス Tokei.link をリリース(Slack 対応) - @kyanny's blog
    hfmgarden
    hfmgarden 2014/12/23
  • 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
    hfmgarden
    hfmgarden 2014/11/15
    おお,面白そう
  • 1