タグ

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

  • 横着プログラミング 第1回: Unixのメモ技術

    最終更新日: 2002-03-18 (公開日: 2002-03-18) Unix Magazine 誌に 2002年1月号から 2003年2月号にかけて連載し ていた記事の元の原稿です。 横着プログラミングとは 私は必要が発明の母だとは思わない。私の意見では、発明とは怠惰 から、おそらくはまた、まさに無精から生じるものである。面倒を 省くために。 -- アガサ・クリスティ この言葉によると、どうも発明とは横着したいがために生まれるも のらしい。そう考えてみると確かに、私がプログラミングをする動 機は、横着するためのソフトウェアを作るため、という要素が大き い。突然、「うげー、面倒くせー」と叫んでプログラムを書き始め るのである。 そんなわけで、横着するためにプログラミングすることを私は勝手 に「横着プログラミング」と呼んでいる。連載では横着プログラ ミングをテーマに、横着のコツや私が作っ

    uemu
    uemu 2009/11/03
    この話は僕の人生において非常に大きいものだった
  • Binary Hacks の発売日決定 - bkブログ

    Binary Hacks の発売日決定 Binary Hacksの発売日が決まりました。 Amazon には 2006/11/14 とありますが、出版社に確認したところ、正式な発売日は 2006年 11月11日でした。めでたく1111というバイナリな発売日となりました。 Binary Hacks のアイディアをオライリーの方に話したのが、昨年 12月の Binary 2.0 カンファレンスにおいて。それか1年近くかかってしまいましたが、ようやく完成しました。 内容的に類書があまりないユニークな1冊に仕上がったと思います。 ぜひ、目次とはじめにをご覧ください。 ちなみに、書は qwikWeb を使って執筆しました。雑多な取りまとめと比較的簡単なところを私が担当し、高度な部分は他の方が書いています。「書に寄せて」は大変光栄なことに、川合史朗さんに寄稿していただきました。

    uemu
    uemu 2006/10/29
    qwikWebを使って執筆に驚いた
  • Ruby, Pythonで並列に逆引きを行う - bkブログ

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

    uemu
    uemu 2006/01/26
    おぉ 高林さんによるRubyとPythonの書き比べ、、、Googleなだけにpythonも触ってるのかな
  • Epeg で JPEG ファイルのサムネイルを高速に生成する - bkブログ

    Epeg で JPEG ファイルのサムネイルを高速に生成する Epegは JPEG ファイルのサムネイル (縮小画像) を高速に生成するライブラリです。JPEG に特化した手法でサムネイルの処理を行うため、内部的に画像をビットマップに伸張せず、高速かつ少ないメモリで処理できるのが特徴です。 インストール Epeg は Debian パッケージになっていないようなので、ソース (ダウンロード) からインストールしました Epeg は内部的に libjpeg を使っているため、Debian GNU/Linux では sudo apt-get install libjpeg62-dev で事前にインストールしておく必要があります。 Epeg そのものは ./configure && make && sudo make install でビルド・インストールできます。 サンプルコード Epeg の

    uemu
    uemu 2006/01/20
    ほほう まぁ あまりつかうことはなさそうだけど メモ
  • 便乗5冊企画: スーパーエンジニアへの道、他 - bkブログ

    最初の一冊はワインバーグの「スーパーエンジニアへの道」にしました。 このコンサルタントの秘密―技術アドバイスの人間学と相補的な内容となっています。スーパーエンジニアの方は主に自分が学ぶするための方法、コンサルタントの方は人に影響を与えるための方法について書かれています。以前に、コンサルタントの秘密を読んで改心した話を書いていますが、結局のところ、基的にはあまり変わっていないような気もします。

    uemu
    uemu 2005/09/25
    高林さんの選ぶ影響を受けた5冊
  • いやなブログ: SpiderMonkey で JavaScript のインタラクティブシェル

    SpiderMonkey で JavaScript のインタラクティブシェル JavaScript のコードをインタラクティブに動かせるツール (Ruby における irb のようなもの) が欲しいと以前から思っていたのですが、今日になってようやく SpiderMonkey のインタラクティブシェルをインストールしました。 Debian GNU/Linux なら sudo apt-get install spidermonkey-bin を実行するだけでインストールできます。インストール後、 js コマンドを実行するとインタラクティブシェルが立ち上がります。 式を入力すると値が表示されます。 readline ライブラリがリンクされているので、コマンドライン編集は bash と同様にできます。 js> a = [1,2,3] 1,2,3 js> a.push(4) // 末尾に 4 を追加

    uemu
    uemu 2005/09/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)

    uemu
    uemu 2005/08/28
    べんりそうだ
  • JavaScript Unicode Charts - bkブログ

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

    uemu
    uemu 2005/08/23
    コードポイントを調べるのに使えそう。覚えておく
  • いやなブログ: UTF-8 への移行計画

    UTF-8 への移行計画 以前からやろうやろうと思っていた、 UTF-8 への移行計画を実施し ました。これまで手元のテキストファイルの類はすべて EUC-JP で 保存していたのですが、これを UTF-8 にしようという計画です。 Emacs の設定 まずは Emacs の設定です。これまで euc-jp となっていた部分を utf-8 に置き換えました。 (set-language-environment "Japanese") (set-terminal-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8) (set-buffer-file-coding-system 'utf-8) (setq default-buffer-file-coding-system 'utf-8) 新規に作成したファイルの文字コードを UTF

    uemu
    uemu 2005/08/17
    するときがきたら参考にさせてもらう
  • 横着プログラミング 第3回: 履歴マニア

    最終更新日: 2002-05-18 (公開日: 2002-05-18) Unix Magazine 誌に 2002年1月号から 2003年2月号にかけて連載し ていた記事の元の原稿です。 コンピュータの方がうまくできることに人間を使うな。 -- Tom Duff *1 私の見る限り、プログラマという人種は決まって事務作業が嫌いな ようである。同じような書類を何枚も書かされたり、1つ誤字があ るから書き直せと言われたりすると、異常にストレスがたまる。 同様に、計算機を使っていても、同じような作業を何度も繰り返し たり、ちょっとでも間違えたら最初からやり直し、というのは耐え られない。そこで、今回は履歴を活用して作業の再利用をするノウ ハウを取り上げる。 シェルの履歴 Unixを使い始めて間もない初心者が作業しているところを見ると、 打ち間違えたコマンドを律儀に最初から打ち直しているのに気づく

    uemu
    uemu 2005/06/02
    高林さんのzsh講座 もう一度勉強
  • 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 の大きな不満のひとつに、凶悪なコマンドライン書法

    uemu
    uemu 2005/05/31
    高林さんの記事
  • Emacsでファイルの自動保存 (auto-save-buffers)

    うっかりファイルの保存を忘れていたために、OSやアプリケーショ ンが突然落ちて何時間もの作業を失ったという経験のある人は多い。 うっかりと書いたが、これはうっかりしていた人間が悪いというよ り、作業内容を失ってしまう計算機の方が悪い話である。 こうした「ファイルの保存し忘れ問題」に備える現実的な対策は、 ファイルの保存をこまめに行う、という方法である。実際、多くの 人がこれを行っている。なんだかおかしな話だ。 Emacs にはバックアップを自動保存する機能が備わっているが、 いざというときに復元の仕方がよくわからない。 M-x recove-file して復元するファイル名を指定する。 バックアップファイルが残っているときにファイルを開くと M-x recover-file せよ、と説明がでるけど、 再度ファイル名を指定し直さないといけないのは不便 (このととき RET を押だけでもいいけ

    uemu
    uemu 2005/05/31
    高林さんの0.5秒間隔で自動保存する設定ファイルがある
  • pdumpfs: a daily backup system similar to Plan9's dumpfs

    What's pdumpfs? pdumpfs is a simple daily backup system similar to Plan9's dumpfs which preserves every daily snapshot. pdumpfs is written in Ruby. You can access the past snapshots at any time for retrieving a certain day's file. Let's backup your home directory with pdumpfs! pdumpfs constructs the snapshot YYYY/MM/DD in the destination directory. All source files are copied to the snapshot direc

    uemu
    uemu 2005/05/31
    毎日スナップショットでバックアップを取るプログラム 高林さん作
  • zsh のプロンプトでカレントディレクトリを短縮表示 - bkブログ

    zsh のプロンプトでカレントディレクトリを短縮表示 追記: 翌日のエントリの方法の方がよいです。 かなりしょうもないけど、 zsh のプロンプトの設定を次のように変えてみた。 ~/.zshrc の設定: case "$TERM" in xterm*|kterm*|rxvt*) function precmd () { # Shorten the path of pwd pwd=`pwd | \ perl -pe 's!$ENV{"HOME"}!~!;s!^(.{10,}?/)(.+)(/.{15,})$!$1...$3!'` PROMPT=$(print "%B%{\e[34m%}%m:${pwd}%{\e[33m%}%# %b") PROMPT=$(print "%{\e]2;%n@%m: %~^G%}$PROMPT") # title bar } ;; esac このおまじないにしか

    uemu
    uemu 2005/05/22
    高林さんのzshの設定
  • いやなブログ: JavaScript でインクリメンタル 検索 (grepではない版)

    JavaScript でインクリメンタル 検索 (grepではない版) JavaScript でインクリメンタル grep 検索 のコードでは、検索に正規表現をそのまま使っています。正規表現を使うと pr.*f のような検索ができるのですが、一方で、 . や * や ( などを検索するにはそれぞれ \ でエスケープする必要が生じます。そのことを知らないと「(*.*) がなぜか検索できねー」と混乱することになります。 正規表現を使えてもうれしいことはそんなになさそうなので、gonzui では次のような関数を作って、メタ文字をエスケープしてから検索をかけるようにしました。 function quotemeta (string) { return string.replace(/(\W)/, "\\$1"); } quotemeta を使ったインクリメンタル検索のコードは次のようになります。 f

    uemu
    uemu 2005/04/14
    すばらしい。
  • 1