タグ

ブックマーク / blog.sigbus.info (5)

  • 中学生でもわかるベジェ曲線

    ベジェ曲線をレンダリングしていたら面白くて丁寧に描いてしまった。せっかくなのでこれを使って誰にでもわかるように(たぶん中学生でも分かるように)ベジェ曲線というものが何かを説明してみたいと思う。 ベジェ曲線というのはなめらかな曲線を描くためのものなのだけど、説明はまず単なる直線から始めることになる。この下の図の点の動きがすべての基になるからだ。 一の直線があって、その上を点Mが一定の速度で移動している。この点Mの軌跡は、もちろんだけど、単なる直線になる。いいよね。tというのは線分上をどれだけの割合進んだのかを表す数値だ。 もうひとつ線を増やして、その上に、Mと同じように移動する点をもうひとつ増やすことができる。もともとの点MをM0、新しい点をM1と呼ぶことにしよう。M0とM1が動くルールは同じままだ。M1が増えても特にややこしくなっていることはないね。 さて、ここでM0とM1をつなぐ線を

    中学生でもわかるベジェ曲線
  • 転職して7年が過ぎた

    これを一部でシェアしたのは2014年なので結構前ですが、エンジニアのキャリアパスを考えるにあたって参考になるかと思って公開します。あくまで個人的な体験談で会社の見解などとは関係ないということに注意してください。 -------- 入社日記念の無料マッサージクーポンのメールを受け取って気づいたんだけど、こないだで入社後7年が経過したらしい。僕は結構長い期間をここで過ごしたことになるんだなと思った。ちょっと以前のことを振り返ってみようと思う。言うまでもないけどこれは僕の書ける範囲での個人的な感想と体験談であって会社の見解等を表しているものではない。 きっかけ そもそも最初は2007年にGoogle Japanのリクルーターからメールをもらったのがきっかけだった。Google Japanの知り合いから紹介で誘いがきて、「お、これは引き抜きってことかな?」と思ってよろこんで話を聞きに行ったのだった

  • アメリカではIT企業はコンピュータサイエンティストが経営しているケースが多い気がする

    アメリカではコンピュータサイエンスに長けた人が経営を行っている例が目立つよなぁと思っていた。ちょっと思いついたものをリストアップしてみた。 エリック・シュミット Googleの元CEOで現会長。UCバークレーで電子工学・コンピュータサイエンスの博士号を取得。コンパイラを書くときに使われるLexのオリジナル作者の一人としてコンピュータサイエンスの歴史に名を刻んでいる(論文)。1990年台後半にNovellの社長を務めたあと、2001年から2011年までGoogleの社長を務める。総資産83億ドル(1兆円)で、創業者でもなくこれだけの財を成した人物は珍しい。社長をできる人物を探していたラリー・ページとサーゲイ・ブリンを感銘させてCEOとして雇われたらしいが、確かに彼は話がいちいち説得力があって面白い。趣味としてパイロット免許も持っている。 ビル・ゲイツ マイクロソフトの共同創業者で、1995年

  • ダメなコードを改造しなくてはいけなくなったときは、ダメさを片っ端から潰していくしかない

    仕事としてプログラミングをしていると、ときどき、どう見てもダメなコードを扱わないといけないことがある。そういうコードでも動いている以上はそれなりの価値を提供しているわけだけど、ときどき触るのすら嫌悪感を感じるようなものがある。 なぜ嫌悪感を感じるのかといえば、自分で最低限だと思っている想定すら守られていないからだ。常識の通じない人たちの書いたコードには身の毛もよだつような何かがある。 コーディングスタイルが統一されていない インデントが狂っている 到達不能なデッドコードがたくさんある 無意味なコメントやコメントアウトされたコードがある コメントの文章が文章としておかしい コピペの繰り返しがたくさんある ネストが恐ろしく深い 関数が絶望的に長い 無意味に複雑 こういったコードを触らなくてはいけなくなったとき、そのままで編集するのはかなり難しい。コードの内容以前に、不自然な部分でいちいち引っか

  • コードを削除したら喜ぶべき。知らない人がみたら意味不明なコードが残っていませんか?

    昔はよくわかっていなくて、今は身にしみてよくわかっていることの一つは、追加した行数がマイナスのパッチは素晴らしいということだ。コードは削除できるなら消したいし、自分の書いたコードであれ、誰かが消してくれたらとてもよいことだと思う。 昔はがんばって書いたコードはなるべく「活用」したいと思っていた。活用というのはつまり、捨てるのはなんとなくもったいないから、そのコードをなるべく消さずにすませたいということだ。 しかし無理にコードを生かしておくことの意味など何もない。 コードの履歴などは全部いったん置いておいて、ある時点のソースコードを初めて見たものとしよう。そのソースコードが、そのプログラムが実装するべき機能を実装するために十分かつ最小限のコードであるのと、十分かつ最小限のコードに加えて何かよくわからないコードのどちらかであるとしたら、どちらのほうがいいコードだと思うだろうか? 前者のほうがい

  • 1