タグ

2018年10月19日のブックマーク (4件)

  • 『達人プログラマー(新装版)』 読んだ - Hack Your Design!

    きっかけはRebuild.fm。 169: Your Blog Can Be Generated By Neural Networks (@omo2009) https://t.co/OPtfjQuKQK #rebuildfm — Rebuild Podcast (@rebuildfm) December 25, 2016話されている内容としてはomoさんがひたすら巷で良と名高い『達人プログラマー』をブッタ切るというものだ。omoさんが一時間かけてじっくりディスる対象となるということで逆に気になって手に取った書である。 で、どうだったの?一読した感想としては、たいへんに良であった。1999年出版されたということもあり、一部古い記述があるもののそれを差し引いても良いだった。 書はざっくり言うと大きく2つの内容が書かれている。 <達人プログラマ>のメンタルモデルの話技術的なア

    『達人プログラマー(新装版)』 読んだ - Hack Your Design!
    ohbarye
    ohbarye 2018/10/19
  • 完備辞書(簡潔ビットベクトル)の解説 - アスペ日記

    以前、「簡潔データ構造 LOUDS の解説」というシリーズの記事を書いたことがあります。 LOUDS というのは木構造やtrieを簡潔に表すことができるデータ構造なのですが、この中で「簡潔ビットベクトル」というものについてはブラックボックスとして扱っていました。 また、中学生にもわかるウェーブレット行列を書いたときも、その中で出てきた「完備辞書」の実装には触れませんでした。 この「簡潔ビットベクトル」「完備辞書」は、同じものを指しています*1。 今回は、このデータ構造*2について書いてみます。 完備辞書でできること ビット列に対する定数時間の rank と selectです*3。 rank()は、「ビット列の先頭から位置 k までに、1 のビットがいくつあるか」*4。 select()は、「ビット列の先頭から見て、n 個目の 1 のビットの次の位置はどこか」*5。 それぞれ例を挙げます。

    完備辞書(簡潔ビットベクトル)の解説 - アスペ日記
    ohbarye
    ohbarye 2018/10/19
  • 簡潔ビットベクトルでRubyをlog N倍速くした - クックパッド開発者ブログ

    技術部のフルタイムRubyコミッタの遠藤(@mametter)です。昨日の Hackarade #04 の開催報告に続き、2日連続で記事を投稿します。 今回は、ある条件下でのRubyの実行速度を高速化した話を紹介します。この改善はすでにMRIの先端にコミットされていて*1、年末リリース予定のRuby 2.6に含まれる予定です。 ひとことで言うと、「簡潔ビットベクトルを索引に使うことで、プログラムカウンタから行番号を計算するアルゴリズムをO(log N)からO(1)に改善した。これにより、TracePoint有効時やコードカバレッジ測定下で、長さ N のメソッドの実行が O(N log N) から O(N) に高速化される」ということです。順に説明します。 背景:Rubyのバイトコードの構造 この最適化を理解するにはまず、Rubyのバイトコードのある特徴を知る必要があります。 たとえば x

    簡潔ビットベクトルでRubyをlog N倍速くした - クックパッド開発者ブログ
    ohbarye
    ohbarye 2018/10/19
    わかりやすくて面白い…!
  • 私とコミュニティと生きる道 地方のソフトウェアエンジニアがコミュニティで成長してCTOになる話 - GeekOutコラム

    はじめまして。そーだい(@soudai1025)です。 ソフトウェアエンジニアとして、地方の受託開発会社や「はてな」などを経て、今は都内でWeb系スタートアップ・株式会社オミカレのCTOをしています。 私は生まれも育ちも広島県、今日もカープのセ・リーグ優勝の余韻に浸りながらこの記事を書いています。ソフトウェアエンジニアになった経緯ですが、私も子供の頃からゲームが大好きで「人生で大切なことは格ゲーから学んだ」タイプですから、「自分もゲームを作るんだ!」と幼少期からソフトウェアエンジニアに憧れていました。 そんな私ですが、実は高校を卒業後、警察官として4年半ほど奉職していました。憧れだったソフトウェアエンジニアではなく、公務員だからという理由で警察官を選んだ私は常に後悔の気持ちと向き合うことになります。もちろん、警察官という仕事はやりがいもありましたが、それでもソフトウェアエンジニアの夢を諦め

    私とコミュニティと生きる道 地方のソフトウェアエンジニアがコミュニティで成長してCTOになる話 - GeekOutコラム
    ohbarye
    ohbarye 2018/10/19
    ぐぅ / “アウトプット駆動学習は、時間がなく、意思の弱い私が成長するために必要な学習手法なのです。”