タグ

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

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

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

    wacky
    wacky 2008/06/22
    『yak shaving → 「ある問題を解こうと思ったら別の問題が出てきて、それを解こうと思ったらさらに別の問題が出てきて…」が延々と続く状況をあらわす言葉』。例が面白い。
  • いやなブログ - 文字列操作の比較表: Ruby, Python, JavaScript, P...

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

    wacky
    wacky 2006/10/22
    Ruby、Python、JavaScript、Perl、C++ の文字列操作の比較表。
  • いやなブログ - JavaScript ではてなブックマーク数を表示

    JavaScriptはてなブックマーク数を表示 はてなブックマークのブックマーク数は人気の指標として参考になります。このブログでは各エントリの末尾に、ブックマーク数を画像で取得する API を使って、ブックマーク数を表示するように設定しています。 ブログシステムのようにテンプレートを使える場合は、ブックマーク数を表示する HTML をたくさんのページに貼り付けるのは簡単ですが、そうでない場合はなかなか面倒です。そこで、ここでは JavaScript を使ってはてなブックマーク数を表示する方法を紹介します。 やり方 まず、次のような JavaScripthatena-bookmark.js として保存してウェブに置きます。 function makeHatenaBookmarkLinks() { return ("<a href='http://b.hatena.ne.jp/ent

    wacky
    wacky 2006/08/12
    「ブックマーク数を画像で表示するAPI」を利用して、現在のページのはてなブックマーク数を表示させるJavaScript。
  • Ruby, Pythonで並列に逆引きを行う - bkブログ

    Ruby, Pythonで並列に逆引きを行う ウェブサーバのログを解析するときなど、IPアドレスからホスト名を引く処理 (逆引き) を大量に行いたいときがあります。DNS への逆引きの問い合わせには場合によっては数秒待たされることがあるため、大量の IP アドレスをひとつづつ順に処理していくとかなり時間がかかります。 記事では Ruby または Python でマルチスレッドで並列に逆引きを行う方法を紹介します。 Ruby の場合 Ruby で逆引きを行うには socket ライブラリを使う方法と、Resolv ライブラリを使う方法があります。マルチスレッドで並列に逆引きを行うには Resolv ライブラリを使う必要があります。 socket ライブラリを使った場合、 Socket.gethostbyaddr か Socket.getaddrinfo を使って逆引きを行います。これらは同

    wacky
    wacky 2006/01/26
    IPアドレスからホスト名の逆引きをマルチスレッドで並列処理する方法。Rubyの場合とPythonの場合。
  • バッドノウハウと「奥が深い症候群」

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

    wacky
    wacky 2006/01/22
    使いにくい ソフトウェアを使いこなす事の喜び = バッドノウハウのはびこる理由。『奥が深い症候群』か・・・、なるほど。
  • いやなブログ: Boost で再帰的な grep

    Boostの正規表現クラスを使う Boost の正規表現クラスを使ってみよう思い、ディレクトリ以下のファイルに対して再帰的に grep を行うコードを書いてみました。 以下がそのコードです。再帰的な grep はGNU grep の --recursive オプションでできるので実用的な意味はありません。 #include <assert.h> #include <unistd.h> #include <sys/mman.h> #include <sys/stat.h> #include <fcntl.h> #include <boost/bind.hpp> #include <boost/filesystem/operations.hpp> #include <boost/filesystem/path.hpp> #include <boost/regex.hpp> using name

    wacky
    wacky 2005/11/24
    Boostの正規表現クラスの使用例。
  • UTF-8 のオクテット数 - bkブログ

    UTF-8 のオクテット数 UTF-8 で表現した 1文字は最長で 6オクテット (バイト) と思っていたのですが、新しい方の RFC では 4 オクテットまでとなっているのを知りました。 RFC 2279 日語訳 (原文) UTF-8は、文字は1から6オクテット長に符号化される。 RFC 3629 日語訳 (原文) UTF-8において、U+0000..U+10FFFF範囲(UTF-16アクセス可能範囲)からの文字は、1から4までオクテットの連鎖を使って符号化される。 RFC 3629 の「RFC 2279からの変更点」を見ると「文字の範囲を0000-10FFFFに限定した (UTF-16アクセス可能範囲)」と説明がありました。新しい方といっても 2003年11月に公開されているので、もう2年近く経っているのですね。

    wacky
    wacky 2005/09/24
    RFC 2279では最大6オクテットだったが、RFC 3629で最大4オクテットに変更されていたという話。
  • いやなブログ: 配列操作の比較表: 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)

    wacky
    wacky 2005/08/28
    同じようで微妙に異なるRuby、Python、JavaScript、Perl、C++(std::vector) の配列操作の比較表。
  • JavaScript Unicode Charts - bkブログ

    JavaScript Unicode Charts Unicode の表を JavaScript で動的に生成して、検索もできたりするツールがあると便利ではないかと思い立ちました。そこで、自分で作り始める前に試しに javascript unicode で検索してみたところ、ちょうど欲しいと思っていたようなものが見つかりました。JavaScript Unicode Charts というページです。 JavaScript Unicode Charts のページの一番上の入力欄に「あ」と入力してEnterキーを押すと、「あ」のコードポイント 0x3042 がわかります。この機能は Unicode を使ったプログラミングに役立ちそうです。 たとえば、 JavaScript で document.createTextNode を使ってテキストノードを作るときは実態参照は使えないので、 » (&ra

    wacky
    wacky 2005/08/22
    入力した文字のUnicodeコードポイントを簡単に調べられる「JavaScript Unicode Charts」の紹介。
  • いやなブログ: JavaScript とクロージャ

    JavaScript とクロージャ JavaScript プログラミングはなかなかおもしろいよ、と知人に言ってみたところ、 全然信用されずに怪訝な顔をされる、という目に遭いました。 クロージャが使えて DOM ツリーにイベントハンドラを簡単に追加できるよ、と続けると多少は興味を持ってもらえるようなので、クロージャを使ったサンプルプログラムを書いてみました。 箱の中でマウスカーソルを適当に動かしてください。 このプログラムでは各セルの色の濃さをクロージャを使って保持しています。makeHandler という関数の depth という変数がそれです。クロージャを使うと、個々のイベントハンドラごとに独立した状態を簡単に持たせされるのがポイントです。 別にクロージャを使わなくてもいいようなプログラムですが (クロージャではなく DOM のエレメントに状態を持たせるとか)、こういう風にも書けるよ、と

    wacky
    wacky 2005/07/23
    JavaScriptでクロージャを使うサンプル。このスクリプト面白いなぁ。
  • wxWidgets でクロスプラットフォーム GUIアプリを作ろう

    最終更新日: 2004-10-08 (公開日: 2004-10-08) UNIX USER誌 2004年8月号 に掲載された記事の元の原稿です。 文中の「原稿執筆時点」は「2004年 6月半ば」を指します。 wxWidgets は Linux, Windows, Mac OS X など多くのプラットフォー ムに対応したオープンソースの GUI ツールキットである。稿で は wxWidgets を用いてクロスプラットフォーム対応の GUI アプリ ケーションを開発する方法を紹介する。 はじめに Unix の大きな魅力のひとつに、強力なコマンドライン処理がある。 zsh などのシェルと perl などのワンライナーを組み合せて、大量 のファイルを一気に処理するときなどは、「これぞコマンドライン の醍醐味」と感じる瞬間である。 一方、Unix の大きな不満のひとつに、凶悪なコマンドライン書法

    wacky
    wacky 2005/06/02
    UNIX USER誌 2004年8月号 に掲載された記事の元の原稿。
  • 1