2006-01-01から1年間の記事一覧

Vimを使い終わったらGNU Screenのステータスラインのタイトルを「** free **」に

この前のDeveloper Enviroments Conferenceでid:secondlifeさんが発表された資料を見て、 キーリピート加速ツール「kbdacc」 GNU Screenのステータスラインのタイトルを、VimのBufEnterフックで現在編集しているバッファ名に のtipsを普段使うようになりまし…

zsh: diffの結果をvimで色付けして表示するグローバルエイリアス

コードを書いていると、以前のコードと現在のコードとのdiffを取りたいことがよくあります。 でも、diffの結果はちょっと読みにくい。もしdiffの結果が色付けされていたら、もっと読みやすいじゃないかと、今日ふと思いました。そこで、zshのグローバルエイ…

zshな環境でGNU Screenのセッションのレジューム機能を最小限の労力で利用する方法

今日, GNU Screenのセッションのレジュームをしようとした時にzshの有難さを再認識しました. zshとGNU Screenを一緒に使われている方は, 今回紹介するtipはすでにご存知かもしれません. 今まで, GNU Screenのセッションをレジュームしたい時には, 以下のよう…

はてなブックマークカウンターを任意のサイトに設置するGreasemonkeyスクリプト

提供が開始された はてなブックマークカウンターをネタにして、久しぶりにGreasemonkeyスクリプトを作ってみました。これから、はてなブックマークカウンターを設置するブログサイトが増えると思いますが、それまで待てないので、今見ているサイトのページの…

SoftEtherの登さんのインタビューを観よう

ビデオ出演: Microsoft の MSDN channel 9 普段、Webアプリケーションのような高レイヤーでPerlとかRubyとかJavaScriptとかばっかりさわっている技術者は、是非このインタビューを観ることをお勧めします。というのも、今、低レイヤーの技術の重要性を再認識…

GDBと作業プロセスの記述の重要性

GDBは積極的に活用しないと、もったいない。今では、そう思うようになりました。GDBをさわるようになるまでは、C言語で実装したプログラムのデバッグは、いわゆるprintデバッグで行うことが多かったです。printデバッグは簡単だし、ちょっとしたデバッグをし…

「WEBRickをGDBでいじる」を実際に試して、バイナリーハックを体験してみよう

DECONで高林さんが紹介された「Binary Hacks in Action」のスライドを見ていて、「WEBRickをGDBでいじる」という所がとても興味深く感じました。本当にそんなことができるのか?と一瞬思いました。そこで、ちょっと試してみました。最初はうまくいかなかった…

今月号のオープンソースマガジンはSICPとの併読がおすすめ

今月号のオープンソースマガジンの「プログラミング言語の進化を追え」の特集が面白そうだったので、買ってみました。その特集の中でも特に「Part 3 クロージャとオブジェクトの微妙な関係」が興味深かったです。このPart 3の記事をもっと楽しむには、SICPも…

AJAJA: Perlモジュールを使えるようにするpmconnectが熱い(かもしれない)

AJAJAのsvnリポジトリに面白いコードが追加されました。pmconnectという新しいモジュールです。http://ajaja.alphageek.jp/trac/changeset/32これは、PerlモジュールをAJAJAから利用できるようにする試みのようです。面白いですね。Linuxの環境が手元にない…

AJAJA: memcachedを使えるようにしてみよう

大よそ、C言語でのAJAJAのモジュールの書き方がわかってきたので、例題としてmemcachedをAJAJAで使えるようにしてみました。(何でこのタイミングでmemcachedのバインディングを書いたのか?と聞かれると困ります(汗。単に興味があったからやってみただけです…

AJAJA: Systemモジュールを拡張してsleepできるようにしてみよう

AJAJAのSystemモジュールがロードされるまでの制御フローは大よそ理解できたので、今度はSystemモジュールを拡張してsleepできるようにしてみました。なぜsleepを取り上げたかと言うと、 入出力を伴わないので簡単に実装できそう JavaScriptから下層レイヤー…

AJAJA: Systemモジュールがロードされるまでの制御フローの解析

AJAJAを実際に走らせてみて、AJAJAの動作をもう少し詳しく知りたくなりました。特に、AJAJAでCGIを実現するのに利用されているSystemモジュールが、どのようにしてユーザーランドから利用できるようにしているのか、興味を持ちました。そこで今回は、System…

AJAJA: 勉強材料としての可能性とSQLiteを使ったちょっとした実験

AJAJA: Asynchronous JavaScript and JavaScript/ASPAJAJA は「ブラウザだけでなくサーバサイドでも JavaScript を使おう!」というプロジェクトです。 できること - JavaScript を埋め込んだ ASP ファイルを処理する - JavaScript から SQLite などのシステ…

LLR2006: HaskellでCollatz予想に挑戦

お待たせしました! キミならどう書く 2.0 ROUND 2の開催です!!今回のLL Ringでは「LLで関数プログラミング」のセッションをはじめとし,関数型言語の活躍が期待されます.そこで,前哨戦にも関数型のお題を用意しました.お題は「Collatz予想」(角谷予想…

Intel MacでHaskellプログラミング

ついに、Intel MacでHaskellプログラミングができる環境が手に入りました。今まで、GHCが正式にIntel Macに対応していないこともあって、MacBook ProでHaskellプログラミングを楽しむのを諦めていました。一応、Dan Kogaiさんのblogで説明されていた、GHCをI…

システムにおけるmaintainabilityとflexibilityのバランス感覚

maintainabilityとflexibility。これらのキーワードは、Flickrの本を読んでいる & システム開発をしている今、とても気になる言葉です。両者は対立する概念で、どちらかを優先すると、もう一方が失われます。つまり、maintainabilityを得ようとすると、flexi…

WindowsにおけるRailsアプリの開発環境を改善するWSHスクリプト

RailsをベースにしたアプリケーションをWindowsで開発していて、いつも不便に感じていたことがあります。それは、Railsのテストサーバを起動したりジェネレータを実行したりする度に、コマンドプロンプトを立ち上げてはcdコマンドでアプリがあるディレクトリ…

Building Scalable Web Sites

Amazonで予約していた本が届きました。数ヶ月前に注文した本なので、存在を忘れかけていました。。。 さらっと目を通してみましたが、この本は買って正解でした。 Flickrの技術者が経験して得られた貴重なノウハウが満載で、大変勉強になります。 Webアプリ…

Google Notebookに先をやられました

ついに公開されました。 早速試してみました。FirefoxでGoogle Notebookのページを見に行ってログインすると、Firefoxのエクステンションをダウンロードするページが表示されました。Mac OS Xでは動かないかもしれないという注意書きがありましたが、インス…

「UI as Commons」という発想を図にしてみました

naoyaさんとmiyagawaさんが面白い議論をされていたので、僕もちょっと考えてみました。 バックエンドアプリケーションの API インタフェースを規定するフロントエンド特化型アプリケーション API, UI as Commons お二人の議論を参考に図にしてみると、こんな…

「これだけは知っておけ! vim 勉強会」勉強になりました

secondlifeさんの講義、勉強になりました。 物理的行移動(gj、gk)、知りませんでした。便利そうですね。 あと、:h も知りませんでした。help重要ですね。メモメモ。今度は、vimのカスタマイズなんかを講義してもらえるとうれしいですw これだけは知っておけ!…

zsh: 直前にうったコマンドをクリップボードに(Mac OS X限定)

シェルで打った直前のコマンドをクリップボードにショートカットでコピーとかできたら作業メモとかとるのにえらいベンリだと思った。.zsh-hitory をうまく使ってとかでも。誰か作ってそう。 naoyaの日記より このネタで、初めてのzshカスタマイズプログラミ…

svnじゃなくてsvkでバージョン管理しよう

MacBook Proを買った初日にsvkがインストールできるかどうか試してみたら、DarwinPortsからあっさりインストールできました。今までsvnを使っていましたが、svkに乗り換えた方が良さそうです。 svkを使っていて便利だなと思ったことは、以下の通りです。 イ…

キーのリピート速度の設定は変えた方が良い

vimでスクロールするのにjとkをよく使いますが、MacBook Proのデフォルトのキーのリピートの速度の設定では、viでのスクロールが遅くてストレスがたまります。設定の変更は簡単です。Mac OS Xだと、「システム環境設定」-> 「キーボードとマウス」-> 「キー…

New weapon: MacBook Pro

買ってしまいました。 生まれてはじめてMacを使いました。良いですねMac。特にGUIが気に入りました。今までMacにはあまり興味が無かったのですが、YAPCとかで使っている人を見て、興味を持つようになりました。とりあえず設定は一通り終わって、RailsやCatal…

HACKING: THE ART OF EXPLOITATION

結構前に買った本なのですが、ネットワークの勉強も兼ねて、読み直し中です。セキュリティーに興味がある方にはおすすめの一冊です。システムをhacking(悪い方の意味)する方法について実践的な説明がされています。例えば、バッファオーバーフローの脆弱性が…

はじめての英会話 with パキスタン人

久しぶりにちょっと長め文章のエントリ。就職活動で東京に日帰りで行ってきました。それでその帰りにあった出来事についてちょっと書いてみました。東京から京都に帰る新幹線で、面白い出来事がありました。東京駅から乗車して最初は隣の席には誰もいなかっ…

TAPL: 純粋なλ計算では関数がすべて

TAPLでλ計算を勉強していて、チャーチ数という面白い数(関数)を知りました。今まで「数字」というのは、数字でしか表現できないと思っていましたが、実はそうではなくて、λ計算の世界においては関数で数字が表現できてしまうのです。不思議ですね。興味を持…

Types and Programming Languages

Audrey Tangさんに刺激されてAmazonで買ってしまいました。 Types and Programming Languagesを勉強することで、これまでとは違った物の考え方ができるようになればなぁと思っています。実際に読み始めると、自分の数学の理解力が壁になりそうな感じがしまし…

Haskell: QuickCheckの意外な使い方

QuickCheckは想像以上にパワフルなツールだ。単にテストをしてくれるだけのツールじゃない。以下の文書を読むと、QuickCheckの意外な使い方が書いてあった。Haskell以外のプログラマーも目を通すことをおすすめする。 QuickCheck as a test set generator こ…