タグ

ブックマーク / note.com/ruiu (5)

  • 「悪い方が良い」原則と僕の体験談|Rui Ueyama

    ソフトウェアの世界には「悪い方が良い」原則という有名なエッセイがある。キレイにレイヤ分けされた一貫性のある良いデザインよりも、一見手抜きの悪いデザインのほうが実は良いときもあるという話だ。この逆説的なデザイン原則を僕は身をもって体験したことがある。それについてちょっと書いてみようと思う。 僕はlldというリンカの現行バージョンのオリジナル作者だ。リンカというのはコンパイラと組み合わせて使うもので、実行ファイルやDLLを作るのに使用される。lldはプロダクトとしてはかなり成功していて、標準のシステムリンカとして採用しているOSがいくつかあったり、GoogleやFacebookなど皆が知っているような大規模サイトの中で広く使われていたりする。 現在のlldは2世代目で、第1世代のlldは僕がプロジェクトに参加する前から存在していたのだけど、数年前にそれを捨てて一から書き直すということになった。

    「悪い方が良い」原則と僕の体験談|Rui Ueyama
    natu3kan
    natu3kan 2018/04/07
    先に細かく区分けして作ると全く使わない部分と、便利だからと過剰に詰め込み過ぎてむらが出来ちゃうのはあるある。先に杓子定規な区分けをするより実際の経験に合わせて構造を分けた方がいい
  • エレベータに見るアルゴリズムの性能と公平性のバランス|Rui Ueyama

    現実世界でもコンピュータの中でも、何らかの性能指標だけを追求すると参加者にとって極端に不公平になってしまうことがある。例えばエレベータとHDDは共通点がありそうに思えないが、この2つは性能特性的にとてもよく似ていて、リーズナブルな性能と公平性を両立させるために同じ制御方法が使われている。これについてちょっと説明してみよう。 1基しかない場合のエレベータの動き方は単純だ。一度上に動き出すと、上で待ってる人や降りる人がいる限り上昇し続ける。同じように、一度下に動き出すと、下で待っている人や降りる人がいる限り下降し続ける。これ以外の動き方をするエレベータはまず存在しないので、これが唯一の制御方法のように思えるけど、別にこうしなければいけないというルールはない。 エレベータの平均待ち時間を最適化することを考えてみよう。そうすると、一方向に動き続ける代わりに、エレベータが現在存在する階に一番近い人の

    エレベータに見るアルゴリズムの性能と公平性のバランス|Rui Ueyama
    natu3kan
    natu3kan 2017/11/24
    エレベータとHDD
  • 「プログラミングの常識」を時々見直す必要性について|Rui Ueyama

    自分の中のプログラミングの常識というものは、ときどき現実のハードウェアに合わせて調節しないといけない。ハードウェアが進歩し続けているので、コンピュータで簡単にできることと相対的に難しいことのバランスが変化し続けているからだ。ここでは特にストレージにフォーカスして書こうと思う。 昔はメモリが相対的にとても貴重な資源だったので多くのプログラマがメモリを節約することに血道を上げていた。例えばWindowsの初期の頃に設計されたデータ構造には、メモリをバイト単位ででもいいから節約したいという意図の痕跡がいまでも多く見受けられる。DRAMの次に速い記憶装置はHDDだったので、メモリが足りなくなればHDDにデータを保存せざるを得ないのだが、DRAMとHDDのランダムアクセスの速度差は、机の上のの開いているページを見るのと、そのAmazonで注文して到着するのを待つのと同じくらいのスケールで違うの

    「プログラミングの常識」を時々見直す必要性について|Rui Ueyama
  • ソフトウェアエンジニアならもっと気軽にアメリカ移住を考えたほうがいいよ|Rui Ueyama|note

    なんか数年に一回くらいシリコンバレー移住は割りに合うのかという話が上がってくる気がする。前の地獄のシリコンバレーはトンチンカンで噴飯ものだったけど、今回の海外移住アメリカは止めた方がいいよはまあまあまともな意見な気がする。でも、なんか違うよなーと思った。 まず第一にやっぱりアメリカの方が待遇がずっとよくて、物価差を考慮に入れてもやっぱり全然違うと思う。やや大げさかもしれないけど、日のプロ野球と大リーグみたいな違いがあるように思うんだけど。 第二に、お金だけではないよね、ということ。現実としてソフトウェアの世界はアメリカを中心に動いていて、他の国はアメリカで開発されたものを使っている。シリコンバレーなら伝説的なプログラマがわりとそこらへんにいて、普通に話をしたり一緒に仕事をしたりすることができる。カンファレンスであまりにも有名人過ぎて話しかけるのに躊躇するようなレベルの人が職場のすぐそこ

    ソフトウェアエンジニアならもっと気軽にアメリカ移住を考えたほうがいいよ|Rui Ueyama|note
    natu3kan
    natu3kan 2016/12/27
    アメリカだと就労ビザ(H-1Bビザ)の取得が難しいから、アメリカで働けるチャンスができたならその職場が日本の底辺職場と大差なかったとしても、経験としてプラスになるかも。
  • アメリカの面接で質問してはいけない事項について|Rui Ueyama

    アメリカで採用活動的なことに関わっていると、面接ではどういうことを聞くと違法になるのかを覚えておく必要がある。気軽な雑談が深刻な質問として受け止められていたりしてあとで訴えられたりしたら大変だ。たとえ結果的に訴えられることがなくても、法的にまずいことを聞くこと自体が大きな問題である。 アメリカでは第一にレジュメに写真などは貼られていない。写真が貼ってあったらこっちだって困ってしまう。全員を面接するわけではなく書類で通らないひともいる以上、書類だけの情報で採用されないひともいるわけだけど、そこに人種とか容姿がわかってしまうような情報が存在していても害しかない。 直接話をする場合でも、年齢によって差別的待遇を行うのは違法なので、年を聞くのはNG。人種や宗教、結婚しているかどうかなどを質問するのも当然よくない。性別を訊くのもダメ。自分の性別を聞かれたくない人はたくさんいるし、そういう仕事に関係な

    アメリカの面接で質問してはいけない事項について|Rui Ueyama
    natu3kan
    natu3kan 2015/10/07
    性別や人種と宗教や思想と私生活は業務に関係ないことだし、多民族国家ならではの配慮だけどだよね。でも日本と同じで暗黙で見た目などで落とすのはあるんだろうが。あ、名前で民族や宗教を類推できるのか
  • 1