タグ

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

  • バッドノウハウと「奥が深い症候群」

    計算機を使っていると、何でこんなことを覚えないといけないのだ ろうか、とストレスを感じつつも、それを覚えないとソフトウェア を使いこなすことができないためにしぶしぶ覚えなければならない、 といった類いのノウハウは多い。そうした雑多なノウハウのことを、 来は知りたくもないノウハウという意味で、私はバッドノウハウ と呼んでいる。 バッドノウハウは、ソフトウェアの複雑怪奇な仕様が歴史的に引き ずられ、根的な改善は行われないまま、そのノウハウが文書によっ て受け継がれることによって蓄積が進行する。Unix 上で広く使わ れているツールとしてはTeX, Emacs, sendmail, bind, perl, gnuplot, procmail などは、役に立つツールであると同時に、その 複雑怪奇な仕様によって長年に渡ってユーザを苦しめ続け、バッド ノウハウの温床として悪名が名高い。こうしたツー

    TAKESAKO
    TAKESAKO 2010/05/24
    @Maki_Daisuke どうみても「奥が深い症候群」です。本当にありがとうございました
  • Unicode の雪だるま - bkブログ

    Unicode の雪だるま Unicode Snowman for You というサイトを知りました。Unicode の雪だるま (U+2603 SNOWMAN ☃) が表示されるだけのサイトです。が、ソースを見ると font-face で EOT 形式のウェブフォントが使われていることに気づきました。 この EOT (Embedded Open Type) 形式のウェブフォントは IE しか対応していないようです。IE で表示するとこのような雪だるまが表示されました。これはおそらく Arial Unicode MS の雪だるまです。ちょっとこわいような。。 一方、他のブラウザで表示すると、このような雪だるまが表示されました。これは私がデフォルトのフォントに設定しているメイリオの雪だるまです。これはかわいい。意外なところにも力が入っています。

    TAKESAKO
    TAKESAKO 2009/12/25
    Cool! RT @igaiga555 札幌Ruby会議のタイマーでつかったのがたぶんこれ。 @takesako Unicode の雪だるま (U+2603 SNOWMAN ☃) - bkブログ
  • ポイントにつられやすい人 - bkブログ

    ポイントにつられやすい人 航空会社のマイルや買い物で貯まるポイントの類に私は結構つられやすい方で、まめに貯めたり使ったりしています。そんな話をしていたら知人に「ポイントは(発行側にとって)負債」という考え方を教えてもらいました。 いわく、ポイントは発行側のお店にとっては負債(いつか客に返さないといけない債務)であり、反対に、客の側から見ればお店にお金を貸しているようなもの(しかも利子はつかない)、ゆえに、早く使って回収するのがよい、とのこと。 有効期限が切れたり、店がつぶれたり、といったリスクを考えて、こまめに使う方がいいと思っていましたが、早くお金を返してもらうという考え方の方がわかりやすくて強力です。 ポイントがもらえるより、その分安くしてもらった方がありがたいのですが、最近はたくさんの店でポイントを発行しているので、ポイントから逃れて暮らすのは難しそうです。 と言いつつ、ポイントプレ

    TAKESAKO
    TAKESAKO 2009/08/31
    >最近読んだ、『まぐれ』という本によると、最適化するタイプの人(数パーセントの節税をするために住所を変えたりするタイプの人)は余計な気苦労が増えるので不幸とのこと。当たっている気がします。
  • gdb tips - bkブログ

    gdb tips gdb を使う上で便利な tips を紹介します。基的な使い方をマスターしている人向けです。 .gdbinit の設定 ホームディレクトリに .gdbinit を置いておくと、gdb の起動の際に読み込まれます。私の場合は次のような設定をしています。 set history save on set history size 10000 set history filename ~/.gdb_history set print pretty on set print static-members off set charset ASCII set history から始まる最初の 3行は履歴に関する設定です。それぞれ、 gdb のコマンドラインの履歴をファイルに保存する、保存する行は最大 10000 行、ファイル名は ~/.gdb_history 、という意味になります。

  • いやなブログ - スクリプト言語用のデバッガの使い方 - 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

  • ファイル記述子をUnixドメインソケット経由で渡す - bkブログ

    ファイル記述子をUnixドメインソケット経由で渡す Unix 系の多くの OSには、ファイル記述子を別のプロセスに Unix ドメインソケット経由で渡す機能があります。一見、何のために使うのかよくわからない機能ですが、 glibc の nscd はこれをうまく使っています。 nscd (name service caching daemon) は glibc 内で行われる名前関連の問い合わせをキャッシュするサーバです。NIS や LDAP などを用いてネットワークベースでユーザ管理を行っている場合、 getpwuid() などの関数はユーザ名の取得にネットワークアクセスを必要としますが、 nscd を立ち上げておけば、二度目からの同じ問い合わせはキャッシュから得られます。 nscd を立ち上げている GNU/Linux システムでは、キャッシュファイルが /var/db/nscd 以下に作

  • yak shaving で人生の問題の80%が説明できる問題 - bkブログ

    yak shaving で人生の問題の80%が説明できる問題 つい最近、 yak shaving (ヤクの毛を刈る)、という言葉を知りました (原典)。これは「一見無関係に見えるけど、真の問題を解くのに必要な問題を解くのに必要な(これが何段階も続く)問題を解くのに必要な活動」という意味の言葉です。 yak shaving は、ようするに「ある問題を解こうと思ったら別の問題が出てきて、それを解こうと思ったらさらに別の問題が出てきて…」ということが延々と続く状況を表しています。ちなみに、ヤクとは毛が長い、牛の一種です。 yak shaving は、以前に覚えた bikeshed と同じくらい便利そうな表現です。というもの、プログラムを書いていると yak shaving 的な状況がすぐに発生するためです。 たとえば、「Amazon のほしい物リストを CSV 形式に変換して Excel で読み

    TAKESAKO
    TAKESAKO 2008/06/21
    「実際のところ、プログラムを書き始めてから今にいたるまで、年がら年中こんなようなことをやっているわけで、my life is yak shaving という感じであります。 」
  • リンクされているライブラリによってプログラムの動作を変える - bkブログ

    リンクされているライブラリによってプログラムの動作を変える weak シンボルを用いると、リンクされているライブラリによってプログラムの動作を変えることができます。ここでは GNU 拡張を用いて weak シンボルを利用する方法を紹介します。 それではさっそくサンプルコードを見てみましょう。このプログラムでは、libm に含まれる sqrt() 関数があるときは利用し、ない場合はその旨のメッセージを表示します。 weak.c #include <stdio.h> extern double sqrt(double x) __attribute__ ((weak)); void func () { if (sqrt) { printf("%f\n", sqrt(10.0)); } else { printf("sqrt isn't available\n"); } } weak-main.c

    TAKESAKO
    TAKESAKO 2008/06/09
  • いやなブログ: 配列操作の比較表: Ruby, Python, JavaScript, Perl, C++

    配列操作の比較表: Ruby, Python, JavaScript, Perl, C++ プログラムを書いていると、他のプログラミング言語の記憶とごっちゃになって、「配列の後ろに要素を追加するのは push だっけ、 append だっけ」などと混乱することがあります。特に Ruby, Python, JavaScript はコードの書き方が似ているので、この問題が起きがちです。 そこで、備忘録として、 Ruby, Python, JavaScript, Perl, C++ の配列操作の比較表を作りました。一番慣れている Ruby を基準にしています。間違いなどがあったらご指摘いただけると助かります。他の言語のもあるといいなあ。 Ruby (Array) Python (list) JavaScript (Array) Perl (@) C++ (std::vector)

  • デジイチデビュー、一年後 - bkブログ

    デジイチを買ってから1年以上経ちました。すぐ飽きるかと思いきや、いまだ飽きずに遊んでいます。同じ頃にデジイチを買った周りの人間も案外、飽きずに楽しんでいるようです。 ここでは、1年ほど使ってみて、「こんなことは最初から知っておけばよかった」と思ったことをまとめてみます。説明書に載っていることばかりですが…。 基的な事柄 絞り優先モードだいたい絞り優先モードで撮っています。開放(絞っていない状態)だとシャッター速度が速く、ピントより奥と手前がぼけます。反対に、絞るとシャッター速度が遅くなって、前後ともにシャープになります。『カメラのしくみ』にしくみが載っています。シャッター速度よ く、「1 / 焦点距離(35mm換算)」が手ぶれせずに撮れるシャッター速度の限界の目安と言われています。どのくらい当てになる目安か不明ですが、手ぶれ補正機能のない E-330 では 1/2, 1/4 秒といったシ

    TAKESAKO
    TAKESAKO 2007/12/17
    いつも勉強させてもらってます
  • Text Escaping and Unescaping in JavaScript(Unicode の文字列をエスケープする JavaScript)

    Notes No data is sent to the server (i.e. everything is done in JavaScript). Conversion from Unicode to other encodings such as Shift_JIS can be slow first time as it needs to initialize internal conversion tables. Surrogate pairs in UTF-16 are supported. Try inserting \uD840\uDC0B in the second form. Three-byte characters in EUC-JP are not supported. Links JavaScript Unicode Charts Try GNU Libidn

    TAKESAKO
    TAKESAKO 2007/10/16
    JavaScriptでエスケープまとめ
  • JavaScript で MIME ヘッダをデコード - bkブログ

    JavaScript で MIME ヘッダをデコード MIME ヘッダのデコーダを JavaScript で書いてみました。BとQエンコーディング、およびUTF-8, Shift_JIS, ISO-2022-JP の文字エンコーディングに対応しています。

  • 子プロセスに LD_PRELOAD を継承させない - bkブログ

    子プロセスに LD_PRELOAD を継承させない Linux で LD_PRELOAD 環境変数を使うと共有オブジェクト (共有ライブラリ) のプリロードを行うことができます。通常、LD_PRELOAD が設定されている間は、あるプロセスから呼んだ子プロセスも同様にプリロードを行いますが、場合によっては子プロセスにはプリロードさせたくないときもあります。 たとえば、make に対して foo.so をプリロードさせるつもりで、 LD_PRELOAD=./foo.so make と実行すると、make が呼び出すあらゆるコマンドも foo.so をプリロードします。 その結果、gcc や gcc の呼び出すプログラム cc1, as, collect2, ld まで foo.so をプリロードします。 foo.so が make の挙動を変えることのみを目的としていた場合、 gcc まで影

    TAKESAKO
    TAKESAKO 2007/08/24
  • tty mania

    Last Modified: 2001-06-02 (Since: 2001-05-18) What's tty mania? tty mania presents ttyrec videos. Please set your terminal size to 80x24 and have fun! Collection The collection is sorted in the order of dates, the newest first. . W3m_migemo demo, (w3m search improvement) Date: 2001-06-02 Author: HIRAOKA Kazuyuki Encoding: EUC-JP Time: 64 sec. . Yendot.org demo Date: 2001-05-27 Author: Yendot team

    TAKESAKO
    TAKESAKO 2007/05/09
    テラナツカシス
  • 信じ込ませる - 学校では教えてくれないバッドノウハウ英語 #11

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

  • 1