ブックマーク / takeda25.hatenablog.jp (8)

  • 腐った翻訳に対する態度について - アスペ日記

    今回、SICPの翻訳改訂版を公開するにあたって、minghai氏の非公式日語版(以下、minghai氏版)については「惨憺たる翻訳」「そびえ立つクソの山」などと書きました。これらの言葉は、もちろん心からのものです。しかし、それを表に出すかどうかについては、冷静に考えた結果として意図的に選択したことも確かです。ここでは、その背景について書こうと思います。 約一年前、私が善意のひどい訳についてという記事を書いたとき、しぶかわよしき様から以下のコメントをいただきました。 趣味お金にならない翻訳だとだいたい最初の下訳で出しちゃいますね。だからといってそれが悪いことだとは思いません。英語を読まない人は言うまでもなく、英語を読める人でも「下訳」があれば原文を読む時にの速度は上がりますからね。クオリティに対して個人でできることといえば、指摘などで黙々と時間コストを代わりに負担するか、takeda2

    腐った翻訳に対する態度について - アスペ日記
    dayafterneet
    dayafterneet 2015/10/30
    誠実な文章
  • プログラマの生産性と報酬 - アスペ日記

    追記: 続編を書きました。マッチョとの戦い 最近、プログラマの生産性が話題です。 いろんな意見があるものの、個人的には 10〜100倍の生産性の違いはあると思います。 いや、それは違う、生産性の高いエンジニアは生産性の低いエンジニアに作れないものが作れるのだからそういう話ではない、という意見もあります。 しかし、実際には生産性の低いエンジニアができもしないことをしようとして結局できないで終わるということがあったりしつつも、何らかの貢献をするというのが普通だと思いますので*1、最終的には 10〜100倍の違いといった形に落とし込めると思います。 で、この生産性の違いはどこから来るのか。 個人的には才能だと思っています。 ぼく自身は、自分のことを中間レベルのエンジニアだと認識しています。 平均の 3〜10 倍できて、トップより 3〜10 倍できないくらい。 でも、自分が平均から抜け出るために何

    プログラマの生産性と報酬 - アスペ日記
    dayafterneet
    dayafterneet 2014/02/26
    結論はともかくとしてw かなり共感する。2の状況は個人や少数の力では変えられないくらい分厚い壁だから闇なんですよね……もちろん1のような会社で給与も含めた環境も良い会社も増えてると思うけど。
  • いつからその方法で偏りのない乱数が得られると錯覚していた? - アスペ日記

    私はつい最近まで勘違いしていました。 ここのページに書いてあるような方法で、一様分布する整数が得られると。 int random(int n) { return (int)(( rand() / (RAND_MAX + 1.0) ) * n); } この方法、一見すると実に一様分布が得られそうに見えるんですよね。 どういう思考回路を通っているかというのを自己分析すると、次のような感じです。 1. rand() では 0〜RAND_MAX のランダムな整数が得られる。 2. それを RAND_MAX + 1 で割ると、[0, 1) に一様分布する実数が得られる。 3. [0, 1) の一様な実数を n 倍して小数点以下を切り捨てたら、0 から n-1 に一様分布する整数が得られる。 これの罠なところは、1 と(特に)3 が正しいというところだと思います。 ただ、2 がダウト。 思いっきりダウ

    いつからその方法で偏りのない乱数が得られると錯覚していた? - アスペ日記
  • ウェーブレット木でできることはウェーブレット行列でもできる - アスペ日記

    ウェーブレット行列のテスト実装に、rank(), select() の他、wat-array で実装されているものをだいたい追加しました。ウェーブレット木でできることは、ウェーブレット行列でも同じようにできる(元論文の最後にちゃんとそう書いてある)ということが確認できました。 なぜ可能なのかというと、ウェーブレット行列でもウェーブレット木のブロックがそのまま保たれているからです。 例として、11, 0, 15, 6, 5, 2, 7, 12, 11, 0, 12, 12, 13, 4, 6, 13, 1, 11, 6, 1, 7, 10, 2, 7, 14, 11, 1, 7, 5, 4, 14, 6 という配列に対してウェーブレット木とウェーブレット行列を作ることを考えます。 まず、ウェーブレット木の場合から見てみます。 初めに、最上位ビットが 0 か 1 かを調べて、その配列を作ります

  • 中学生にもわかるウェーブレット行列 - アスペ日記

    id:echizen_tm さんの記事「ウェーブレット木の効率的で簡単な実装 "The Wavelet Matrix"」から始まったウェーブレット行列ブームから半年以上が過ぎ、すでに枯れた技術として確立されつつある感があります。 …嘘です。 日以外ではあんまり来ていません。 理由としては、やはりアルファベット圏では単語境界が明確であるため、こちらの記事で書かれているような「キーワード分割の難易度」といったことがあまり問題にならないということがあるかもしれません。 まあ、そういうわけで局所的に来ているウェーブレット行列ですが、日語をはじめとする単語境界のない言語圏にとっては重要なネタであると思うため、解説記事を書き直して*1みようと思います。 ウェーブレット行列でできること 主となる操作は、文字列に対する 定数時間の rank() と select()*2 です。 rank() は、「文

  • 地味すぎて気づかれにくい日本語の変化 - アスペ日記

    語の変化というと、「的を得る」とか人気ですよね。 「的を射る」が正しい!とドヤ顔して、ちょっとした満足感を得るのにお手軽です。 しかし、日語の変化というのは意外と地味なところで起きていたりします。 いくつか書いてみます。 1. 「す」から「せる」へ 金融界を揺るがせている 将来に思いを巡らせる 五感を研ぎ澄ませて楽しむ 名刺を切らせてしまった これらの表現に違和感があるでしょうか。 まったくないという人もいるかもしれません。 しかし、「揺るがせる」「巡らせる」等は、辞書を見てもないことが多いのです。 辞書には、「揺るがす」「巡らす」として載っています。 「揺るがす」のほうは、「す」という使役形を含んでいます。 これは、元々は下二段活用(否定は「せず」)だったのが、下二段活用がなくなるとともに、五段の「す」(否定は「さない」)と下一段の「せる」(否定は「せない」)に分かれた片割れです。

    地味すぎて気づかれにくい日本語の変化 - アスペ日記
  • 日本語の用言リストを作りました - アスペ日記

    語の用言リストを作りました。 https://github.com/hiroshi-manabe/japanese_verb_adj_list 書くべきことはだいたいこちらの README に書いてありますが、少しだけ補足を。 このリストは既存の辞書やコーパス等をベースにしていますが、特に新語・俗語については、これまでの職場で働く中で自然と知識として蓄積されたものもあります。しかし、それらは語彙として自分の中で確固たる位置を占めており、その知識を使うことに倫理的な問題はないと判断しました。 用言リストを作るのに人間なんていらないよ、時代は機械だよ、という意見もあるかもしれませんが、現状で多くの IME は固定した辞書を持っており、また私自身もそのような IME を使いやすいと感じているため、作る過程では補助的にスクリプト等を用いても、最終的な判断は人間が行うのがよいと考えています。です

    日本語の用言リストを作りました - アスペ日記
  • Wavelet Matrix のテスト実装 - アスペ日記

    えちぜんさんによる Wavelet Matrixの紹介記事を読んで、これはすごいと感銘を受けたので、試しに Python で実装してみた。 https://github.com/hiroshi-manabe/wavelet-matrix (追記: wat-array を元にした C++版 https://github.com/hiroshi-manabe/wavelet-matrix-cpp も書きました。) 実装したのは rank() だけ*1。 ここで使っているビットベクタはモックで、rank() の実行にサイズに対して線形の時間がかかるため、Wavelet Matrix も同じだけ時間がかかる。ビットベクタを定数のものに替えたら、こちらも定数(bit 数には比例するけど)でいけるはず。 理解するためにノートに実際の例を書いて手動ステップ実行して、それでやっと実装できた。 それにしても

    Wavelet Matrix のテスト実装 - アスペ日記
  • 1