タグ

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

  • オーバーフローが引き起こした面白いバグの話|Rui Ueyama

    一度聞いたら忘れられないような印象深いバグというものがある。僕は数値のオーバーフローと聞くと必ずこの2つのバグを思い出してしまう。どちらも面白いエピソードなのでちょっと紹介してみよう。 一つ目は、初代Civilizationにあったバグである。Civilizationは文明間で戦う戦略シミュレーションゲームで、チンギスハンとかエリザベス女王みたいなプレイヤーを選んで、世界制覇か宇宙開発競争での勝利を目指すというゲームだ。 初代Civilizationにあったバグは、非暴力主義のガンジーが突然核攻撃してくるというものだった。原因は文明が民主主義を採用すると攻撃性が2下がるというロジックだった。初代Civではガンジーの攻撃性は全プレイヤー中で最小の1なのだが、ゲームが進んでインド文明が民主主義を採用すると、攻撃性がマイナス2されてオーバーフローで255になり、ガンジーがゲーム中で突如、極度に攻

    オーバーフローが引き起こした面白いバグの話|Rui Ueyama
  • 「プログラミングの常識」を時々見直す必要性について|Rui Ueyama

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

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

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

    ソフトウェアエンジニアならもっと気軽にアメリカ移住を考えたほうがいいよ|Rui Ueyama|note
  • 1