タグ

ブックマーク / llamerada.hatenadiary.org (6)

  • llameradaの日記 - Ruby on Railsによるソーシャル・ブックマーク管理デスクトップ・アプリケーション

    Ruby on Railsで作成したweb アプリケーションは、exe形式の実行ファイルにすることが出来る。詳しくは、Distributing Rails Applications - A Tutorialを参照のこと。 この仕組みを知って、何か面白いことが出来ないかなと考えていた。そこで、前から欲しかったソーシャル・ブックマーク管理デスクトップ・アプリケーションを作った。現在のところ、del.icio.usとはてなブックマークに対応している。 何故、こんなアプリが欲しかったいうかというと、自分のブックマークを迅速に検索したいからだ。私はソーシャル・ブックマークとしてdel.icio.usを使っているが、del.icio.usのサーバはそれなりに重い。そのため、目的のブックマークを探し出すのに時間がかかってイライラすることがある。 デスクトップ・アプリケーションならば、計算資源に余裕がある

    llameradaの日記 - Ruby on Railsによるソーシャル・ブックマーク管理デスクトップ・アプリケーション
  • Rubyでモナドの練習メモ - llameradaの日記

    Haskellに登場するらしいモナドを少し勉強してみる。よくわからないが、試しにMaybeモナドをRubyで書いてみた。どこか間違えていると思うが、コードは下記。 class Maybe def Maybe.wrap( value ) Maybe.new(value) end attr_accessor :value def initialize(value) @value = value end def pass if @value.nil? Maybe.new(nil) else yield @value end end end def div6(x) if x == 0 nil else 6 / x end end def inc(x) x + 1 end def normal_div6_inc(x) rv = div6(x) if rv inc(x) else nil end en

    Rubyでモナドの練習メモ - llameradaの日記
  • llameradaの日記 - 任意のコマンドをreadline化するRubyスクリプト

    telnetなどのreadlineが組み込まれていない環境で入力を間違えた場合、ctrl+BSで文字を削除する(bash環境)。これでも十分ではあるが、慣れ親しんだemacsキーバインドが使えた方が便利だと思った。 そこで、任意のコマンドをreadline環境下で実行するスクリプトrl.rbを作ってみた。使い方は下記のようになる。 rl.rb telnet d.hatena.ne.jp 80 対話環境でctrl+h(1文字削除), ctrl+a(行の先頭へ移動)などが使えるようになる。また、ヒストリも有効にしてある。ただし、^]などのエスケープ・シークエンスが送れなくなるので注意すること。 コードは下記。ライセンスはrubyと同一とする。 #! /usr/bin/env ruby # rl.rb - readline wrapper # by llamerada (http://d.hat

    llameradaの日記 - 任意のコマンドをreadline化するRubyスクリプト
  • MochiKitと日本語は相性が悪い? - llameradaの日記

    brazilさんのMochiKit解説記事(http://d.hatena.ne.jp/brazil/20060122/1137926216)を読んでいて、関数型言語風のプログラムは読みにくいなと思った。読みにくい原因をつらつらと考えてみると、日語の言語構造と前置型が相性が悪いのが原因の一つではないかと思った。 MochiKitJavaScriptのライブラリである。Pythonの影響を受けており、Lispなどの関数型言語風な記述が出来る。brazilさんの記事で取り上げられているサンプル・コードはこちら。 theSum = sum(takewhile( partial(operator.gt, 10), imap( partial(operator.mul, 2), count() ) )); ok( theSum == (0 + 2 + 4 + 6 + 8) ); theSum に

    MochiKitと日本語は相性が悪い? - llameradaの日記
  • JavaScriptによる全文検索エンジン - llameradaの日記

    JavaScriptでインデックス型の全文検索エンジンを作ってみた。全文検索エンジンを作る際に問題となるのは、インデックスデータを部分的に読み込む方法である。通常はmmapやpreadなどを使ってファイルの一部を部分的に読み込むのだが、もちろん、ブラウザには使えない。ブラウザでファイルの一部分を読み込むには2通りの方法がある。1つは、ファイルを多数のファイルに分割する方法であり、もう1つはHTTPリクエストのRangeヘッダを利用して、ファイルの一部を取得する方法である。前者の利点は、ブラウザのキャッシュが効くことや、対応ブラウザが多いことである。後者の利点は、ファイル数が少なくなるので、インデックスの管理が容易になることである。今回はRangeヘッダの実用性にも興味があったので、後者の方法を用いた。 参考ページ:最速インターフェース研究会 :: Ajaxを使ったシンプルなチャット 転置イ

    JavaScriptによる全文検索エンジン - llameradaの日記
  • UTF-8文字列を圧縮されたUTF-8文字列に変換するライブラリ u-lzss - llameradaの日記

    UTF-8文字列の圧縮ライブラリを作っている。いまさら圧縮ライブラリをなぜ作るのかというと、JavaScriptによる全文検索エンジンで、インデックスの圧縮を行いたいからである。検索結果に概要文を出すには、インデックスが元テキスト全てを含む必要がある。従って、インデックスサイズの肥大化を避けるには、圧縮が必要不可欠である。ところが、次の条件を満たすライブラリを見つけられなかった。 圧縮後のデータがUTF-8文字列 JavaScriptで復元可能 前者の条件が必要なのは、JavaScriptでバイナリが扱えない為、圧縮後のデータがUTF-8文字列である必要がある為である。後者の条件は当たり前であるが、意外に該当するライブラリは少なかった。JavaScriptによるzipの解凍ライブラリは公開されているが、ライセンスが不明であった。 しょうがないので、LZSS符号をベースに、自分でライブラリを

    UTF-8文字列を圧縮されたUTF-8文字列に変換するライブラリ u-lzss - llameradaの日記
  • 1