タグ

ブックマーク / 0xcc.net (28)

  • 誤った判定 - 学校では教えてくれないバッドノウハウ英語 #13 - bkブログ

    誤った判定 - 学校では教えてくれないバッドノウハウ英語 #13 学校では教えてくれないバッドノウハウ英語の13回は、誤った判定(間違った判定)に関する表現を取り上げたいと思います。 スパムフィルタによるスパムの判定や、メモリチェックツールによるメモリリークの判定など、コンピュータの世界では、ソフトウェアを用いて何かを自動で判定することがよくあります。 ここで問題となるのが、誤った判定です。スパムフィルタの例で言えば、「当はスパムじゃないのにスパムと判定された(大切なメールがスパムフォルダに行ってしまった)」と「当はスパムなのにスパムじゃないメールとして判別された(スパムが受信箱に入ってきた)」という2つの場合があります。 英語では前者の場合を false positive、後者の場合を false negative と呼びます。日語では偽陽性、偽陰性となりますが、基的に医学用語な

  • 外に追い出す - 学校では教えてくれないバッドノウハウ英語 #12 - bkブログ

    外に追い出す - 学校では教えてくれないバッドノウハウ英語 #12 学校では教えてくれないバッドノウハウ英語の12回は、factor out を取り上げたいと思います。 factor out はコードレビューの際によく使われる「外に追い出す」という意味の表現です。たとえば、長くなりすぎた関数の一部分を外に追い出すときに factor out といいます。 例) Would it be too hard to factor out the inner loop into a separate function? その内側のループを別の関数として外に追い出すのは難しい? You should factor out the part common to foo() and bar(). foo() と bar()で共通している部分を外に出すべし。 たいていの場合、factor out はコードの

  • 信じ込ませる - 学校では教えてくれないバッドノウハウ英語 #11

    信じ込ませる - 学校では教えてくれないバッドノウハウ英語 #11 学校では教えてくれないバッドノウハウ英語の11回は、 hoge を取り上げたいと思います。 hoge は日のプログラマの間で、「何か適当なもの」を指す変数として親しまれています。英語圏では hoge の代わりに foo がよく使われます。このような変数は、メタ構文変数(metasyntactic variable) と呼ばれ、ソフトウェアに関する議論や文書などで広く用いられています。 hoge は日ではなぜかメタ構文変数として定着していますが、英語では「信じ込ませる」という意味のれっきとした単語 (ホウジと発音) です。日人以外に対して hoge を用いると誤解を生じる可能性があるため注意が必要です。hoge は通常、動詞として用いられます。 例) Please don't hoge me about the sto

  • 重箱の隅をつつく - 学校では教えてくれないバッドノウハウ英語 #10 - bkブログ

    重箱の隅をつつく - 学校では教えてくれないバッドノウハウ英語 #10 学校では教えてくれないバッドノウハウ英語の10回は、 nitpick, cherrypick という、ともに pick で終わる表現を取り上げたいと思います。 "nitpick" は「あら探しをする」という意味の表現です。動詞にも名詞にも使われます。nit はシラミの卵という意味で、シラミの卵を摘み取るのはいかにも小さなこと、という響きがあります。コードレビューの際に、重箱の隅をつつくような指摘をするときにぴったりの表現です。nit-pick とハイフンが入る場合もあります。 例) It's just a nitpick but I think "file_name" is better than "filename". 重箱の隅だけど、 filename より file_name の方がいいと思うよ。 Please

  • 特別扱いする - 学校では教えてくれないバッドノウハウ英語 #9 - bkブログ

    特別扱いする - 学校では教えてくれないバッドノウハウ英語 #9 学校では教えてくれないバッドノウハウ英語の9回は、special case ~という動詞の表現を取り上げたいと思います。 "special case" は通常、「特別な場合」という意味の名詞として使われます。しかし、英語も日語と同様に、名詞は動詞化する傾向があるため、"special case" は「特別扱いする」という意味の動詞としてもよく使われます。 例) I didn't want to special case IE4 but I had to... IE4 を特別扱いしたくなかったんだけど、避けられなかったよ。。 Would it be possible to special-case this file so that we don't have to worry about it? このファイルのことを気にし

  • 数字に関する短縮記法 - 学校では教えてくれないバッドノウハウ英語 #8 - bkブログ

    数字に関する短縮記法 - 学校では教えてくれないバッドノウハウ英語 #8 学校では教えてくれないバッドノウハウ英語の8回は、数字に関する短縮記法を取り上げたいと思います。 2x, 10x, ... ソフトウェアの開発では、性能が2倍になった、などのように数字が何倍になったかを議論することがよくあります。このようなときに便利なのが数字の後ろに x をつける記法です。 例) C++ is 10x faster than Perl for this kind of application. この手のアプリには C++ の方が Perl より10倍速いよ This simpler code gained a 5x performance improvement. もっと単純なこのコードで 5倍の性能改善が得られたよ。 上の例は x を使わない場合、 ten times faster や five-

  • いやなブログ - スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl

    スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl スクリプト言語用の CUIのデバッガの使い方を簡単にまとめました。対象言語は Ruby, Python, Perl です。 私は C, C++ でプログラムを書いているときはデバッガ (主に GNU/Linux 上の gdb) を頻繁に利用します。しかし、スクリプト言語ではそれほどでもありません。これはおそらく次のような理由によります。 ビルドが不要なので printf デバッグが容易 (ある程度大きい C++ のプログラムではビルド時間が長いので printf の挿入はしんどい) 異常終了時にスタックトレースが表示される (Ruby, Python なら自動、Perl の場合は use Carp; $SIG{__DIE__} = \&Carp::confess; など) オブジェクトのインスペクトが簡単 (Ru

  • デバッグに使えるサスペンス用語 - 学校では教えてくれないバッドノウハウ英語 #7 - bkブログ

    デバッグに使えるサスペンス用語 - 学校では教えてくれないバッドノウハウ英語 #7 学校では教えてくれないバッドノウハウ英語の7回は、"post-mortem", "tombstone", "culprit" を取り上げたいと思います。いずれもデバッグに関する議論で使える表現です。 "post-mortem", "tombstone", "culprit" の通常の意味はそれぞれ「検死」「墓石」「容疑者」です。どれもサスペンス映画に登場するような言葉ですが、ソフトウェア開でも、デバッグという一種のサスペンスの場面で使われます。 "post-mortem" は、プログラムの検死、すなわち、プログラムがなぜ死んだのかを原因調査すること、または調査結果を意味します。 例) We should perform a post-mortem analysis to make sure this doe

  • JavaScript でソートアルゴリズムを可視化 - bkブログ

    JavaScript でソートアルゴリズムを可視化 JavaScript でソートアルゴリズムを可視化するプログラムを書いてみました。元ネタは Jon Bentley による ソートアルゴリズムを可視化する Java アプレットです。 アルゴリズム 要素数 動作確認は Firefox 2, IE 7, Opera 9 で行いました。要素数は最大で200まで選べますが、かなり重くなるので遅いマシンで実行すると危険です。 English version is also available. ソースコード: sort-animation.js 解説 X軸が配列の添え字、Y軸が配列の要素の値を示しています。最初に要素がランダムに並んでいる配列 (値に重複なし) を作って、それを各種のソートアルゴリズムでソートする様子をアニメーションで表示します。 ただし、要素のあらゆる変更に対して毎回表示を更新し

  • 実用上OK - 学校では教えてくれないバッドノウハウ英語 #6 - bkブログ

    実用上OK - 学校では教えてくれないバッドノウハウ英語 #6 学校では教えてくれないバッドノウハウ英語の6回は、"in practice" を取り上げたいと思います。ソフトウェアの設計に関する議論などで役立つ表現です。 ソフトウェアの設計にはトレードオフがつきものです。速度を追求しようとすればメモリの消費が増えたり、メモリを節約しようとすればプログラムが複雑化したりと、さまざまな面でトレードオフが発生します。 すべての条件を満たす理想の設計は存在しないため、実用上問題にならない要素については割り切る必要があります。そこで便利なのが今回紹介する "in practice" という表現です。 "in practice" は「実際上」「事実上」「実用上」といった意味を表します。同様の意味は副詞の "practically" でも表せますが、"in practice" の方が多少、フォーマルっぽ

  • 問題を再現させる - 学校では教えてくれないバッドノウハウ英語 #5 - bkブログ

    問題を再現させる - 学校では教えてくれないバッドノウハウ英語 #5 学校では教えてくれないバッドノウハウ英語の5回は、"reproduce" と "reproducible" を取り上げたいと思います。バグ報告のやり取りの際に役立つ表現です。 エラーを再現させる、という意味での「再現させる」は英語では "reproduce" という動詞を使います。問題を再現させることはデバッグの基ですが、報告を受けたバグが手元では再現しないことはよくあります。そのようなときは "I can't reproduce the error" (そのエラー再現できんかったよ) と相手に伝えるといいでしょう。 例) I tried the same configuration you used, but couldn't reproduce it. お前と同じ設定を試してみたけど、再現しなかったよ。 A way

  • 動くようにする - 学校では教えてくれないバッドノウハウ英語 #4 - bkブログ

    動くようにする - 学校では教えてくれないバッドノウハウ英語 #4 学校では教えてくれないバッドノウハウ英語の4回は、"get it to work" を取り上げたいと思います。トラブルシューティングの場面で使える表現です。 "get it to work" の直訳は「それを動くようにする」です。簡単にいえば「動かす」です。典型的な用例は I can't get it to work で、「動かせねー!」というときに使います。 例) I tried all sorts of things but just could not get it to work. いろいろやってみたけど、動かせなかったよ。 I couldn't figure out if there was a way to get it to work. 動かす方法があるかわからんかったよ。 Do you happen to

  • いやなブログ - Binary 2.0カンファレンス 2006 発表資料とレポート

    Binary 2.0カンファレンス 2006 発表資料とレポート Binary 2.0 カンファレンス 2006 は大盛況のうちに無事終了いたしました。開催にご協力いただいた皆様、スピーカーの皆様、参加していただいた皆様、大変ありがとうございました。当日の発表資料とレポートをこのエントリでまとめます。

  • もし必要なら - 学校では教えてくれないバッドノウハウ英語 #3 - bkブログ

    もし必要なら - 学校では教えてくれないバッドノウハウ英語 #3 学校では教えてくれないバッドノウハウ英語の3回は、"if need be" を取り上げたいと思います。"if need be" はソースコードのコメントの中でとりわけよくみられる表現です。 "if need be" の意味は「もし必要なら」です。同じ意味を表す "if necessary" という表現も一般的ですが、"if need be" の方が2文字分短いためか、"if need be" の方を好むプログラマも多いようです。 例) // Change the font size if need be. // フォントサイズを変更する、必要なら。 We could help improve the test coverage if need be. 必要ならテストカバレージの改善を手伝ってもいいよ。 この表現はメールでもよ

  • やっとくよ - 学校では教えてくれないバッドノウハウ英語 #2 - bkブログ

    やっとくよ - 学校では教えてくれないバッドノウハウ英語 #2 学校では教えてくれないバッドノウハウ英語の2回は、"Will do." を取り上げたいと思います。主語も目的語もなく Will と do とピリオドだけで構成される、テストでは 0点をもらいそうな表現です。 この表現に初めて出くわしたのは、私が出した "I think it would be good to handle this case (この場合も処理したらいいと思う)" といった感じのメールに対する返信の中です。 そのときの返事は "Will do." の一文しかなく、主語が省略されているため、肝心の「誰がやるのか」という点がはっきりせず、もしかして、 "You will do that (お前がやる)" だったらどうしようとかなり焦りました。結局、省略されていた主語は "I" で、 "I will do that (

  • こうすればうまくいくよ - 学校では教えてくれないバッドノウハウ英語 #1 - bkブログ

    こうすればうまくいくよ - 学校では教えてくれないバッドノウハウ英語 #1 宮川さんの人気企画「学校では教えてくれないエンジニアリング英語」に便乗して、私もソフトウェア開発に使えるフレーズ、とりわけバッドノウハウ的な場面において役立つフレーズを紹介していこうと思います。第1回は "do the trick" です。 do the trick は「こうすればうまくいくよ」というときに使えるフレーズです。日常会話にも使えますが、とりわけ「うまくいかない」「うまくいった」という場面が多く発生するソフトウェア開発では特に便利なフレーズです。 例) In that case, setting LD_ASSUME_KERNEL=2.4.19 should do the trick. それなら、 LD_ASSUME_KERNEL=2.4.19 をセットすればうまくいくはず。 Heh, this seem

  • システム上のユーザのアイドル時間を調べる - bkブログ

    システム上のユーザのアイドル時間を調べる デーモンや cron から何か重い処理を走らせたいときに、作業中のユーザに迷惑をかけないよう、システムにログインして作業しているユーザがいるか確認したいときがあります。ここでは、GNU/Linux システムでつかえる方法をいくつか検討してみたいと思います。 ロードアベレージを調べる ロードアベレージは/proc/loadavg から調べられます。ロードアベレージが 1を超えるような状況では重い処理は走らせないほうがいいでしょう。 この方法の欠点は、システム全体の忙しさはわかっても、ユーザがログインして作業しているかどうかはわからない点にあります。たとえば、ユーザがテキストエディタなどで軽い作業を行っていた場合、ロードアベレージは低い数字になります。 端末のアイドル時間を調べる w コマンドを実行すると IDLE という欄に各端末のアイドル時間が表示

  • Binary Hacks のサンプルPDFを公開しました - bkブログ

    Binary Hacks のサンプルPDFを公開しました Binary Hacks のサンプルPDFを公開しました。このファイルには「書に寄せて」「はじめに」および書籍に収録された Hack 5に加えて、書籍に収録できなかった Hack が2、入っています。 詳しい内容は オラの村の記事をどうぞ。

  • Binary Hacks のここがすごい - bkブログ

    Binary Hacks のここがすごい Binary Hacks の宣伝週間ということで、著者の一人である私から見て Binary Hacks のここが気に入っている、という点について書いてみたいと思います。 新しい発見がいっぱい Binary Hacks はメインの著者5人、コントリビュータ 6人という大人数で書かれています。各人が「これは役立つ」「これはおもしろい」というアイディアを持ち寄った結果、扱われているトピックは非常に多岐にわたります。著者間で内容のチェックをしたときも、「こんなことができたのか」「こういうこともできるよ」と新しい発見に大いに盛り上がりました。 「はじめに」にも書きましたが、これまで「知る人ぞ知る」的な傾向のあったノウハウを集めて誰にでも使えるようにすることが書の試みです。ほかのにはあまり載っていない情報がたくさん載っていると思います。ぜひ目次をご覧くださ

  • いやなブログ - 文字列操作の比較表: Ruby, Python, JavaScript, P...

    文字列操作の比較表: Ruby, Python, JavaScript, Perl, C++ Ruby, Python, JavaScript, Perl, C++ の文字列操作の比較表を作りました。配列操作の比較表の続編です。間違いなどがあったらご指摘いただけると助かります。 Ruby (String) Python (str) JavaScript (String) Perl C++ (std::string)