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

anything-gtagsのシンボル長の制限を取り払う。

仕事柄カーネルのソースコード見ることが多くて、anything-gtagsは かなり愛用しているんですけど、シンボル長が長いものを検索すると なんか変ってなりました。具体的には以下のような感じです。 GNU globalでシンボルを調べる場合、調べているシンボル名が…

Cocoa::Growlで遊ぶ。

モジュールのアップデート書けてたら Growl::Anyがアップデートされてて なんだろって思ったら、Cocoa::Growl対応となっていた。なんじゃそりゃ って思った。調べていると最近できたモジュールらしいです。 詳しいことはhttp://perl-users.jp/articles/adven…

emacsclientを使おう

性なる夜にこんばんわ。 今彼女と過ごしているいるって人は末永く爆発してくださいね。 それはさておき、Emacs Advent Calendar JP 2010 の 25日目の記事です。 昨日 24日目は ki_nuさんの「アウトライン副モードのことなど」でした。 私なんかがトリで大変…

vc-modeをトグルする

昨日ぐらいから FreeBSDで Emacsがもっさりするし、やたら落ちるしって ことで topを眺めていると gitが動きまくっていることがわかった。 なんで今までそうならなかったのかがよくわからないけど、vc-gitだと 裏でやたらと gitが動いてdiffを取ったりしてい…

buffer全体をクリアする

最近はファイルを残すようにしたので scratchバッファをそれほど 使ってないですけど、計算式とかいろいろ書いていると汚くなります。 バッファ全体を消す関数ってあるのかなって思ったんだけど、見当たらない。 バッファ全体をリージョンとして(C-x h)でカ…

git向けの設定

gitを使い出してから、必要と思われるものはすべて gitで管理するように なった。それに伴っていくつか Emacsの設定を追加したので、それについての メモ。 (setq vc-follow-symlinks t)まずはこれなんですが、バージョン管理しているファイルの シンボリッ…

Furlを使ってみた。

tokuhirom氏作成のモジュールFurlを使ってみた。 ニコ動の毎時のランキングを 20個分表示するという単純なもの。 まあこんな単純なものではそこまで影響が出るわけでないので あれですが、LWP::UserAgentのインタフェースみたく使えるから、 LWP::UserAgent…

Zipアーカイバ改良。

Windowsから送られてきた Zipファイルの展開 - Life is very shortで作ったけど、 テストしやすいように書きなおした。ついでにマッチするものだけ展開する オプションを追加。基本的に全部展開でいいと思うんだけど、不要な広告 ファイルはいらね、ってとき…

行番号挿入プログラムの改良

プログラムを打ち合わせ資料に貼り付けるときに使っていたものが あったんだけど、数百行ぐらいになるとちょっともっさりってことで 改良。何行あるか一行一行数えていたんだけど、line-number-at-pos っていう関数が Emacs22であったから、それを使ってみま…

selectシステムコールのサンプル

完全に写経でしかないのですが。selectシステムコールの例。 複数のファイルハンドルを待つっていう状況がイメージしづらい ですが。ネットワークとかデバイスの状態を複数監視というのに 使えるのだろう。 とりあえず使ってみないとイメージわかないから、 …

navi2chの設定

Firefoxの chaikaがなんかすごく調子悪いので navi2chを導入。設定がよくわからないんだけど、デフォルトでは 100までしか レスが見れなかったので、それを 1000にしたぐらい。スレ開くまでの 時間が若干気になるけど、開いて更新する分は大丈夫そう。 ;; na…

WWW::Curlを使ってアプリを書いてみた

WWW::Curlを使う練習。もともとは LWP::UserAgentを使っていたんですが、 ちょっとでも早くなったらいいかなと思って書き直した。 ネットワークが一番ボトルネックになるから、そんな大差はない 気がするけど、早めにレスポンスが返るときはより早くなったか…

Set::ArrayでSEGV

SEGVが発生してしまったのだが、どう解析をするもんだろうか? #!/usr/bin/env perl use strict; use warnings; use autodie; use Set::Array; my $a = Set::Array->new(1, 2, 3, 4, 5); my $b = Set::Array->new(3, 4, 5); #my @c = $a->difference($b); # …

Perlで Google日本語入力 API 再び

直してみた。JSONモジュールを使うように修正。 Encode::JavaScript::UCSというのがあるのを知った。 Encodeモジュールのサブクラスで大変簡潔に書かれて いるので問題もないことでしょう。 #!/usr/bin/env perl use strict; use warnings; use autodie; use…

Perlで Google 日本語入力 API

http://www.google.com/intl/ja/ime/cgiapi.htmlのやつを Perlから利用してみようと思ったんだけど、Unicodeエスケープされた 文字を JSONモジュールで評価するとうまくいかない。\uというのが uppercaseとして解釈されてしまうせいか、消えてしまいます。 …

否定先読み

正規表現クックブックを読んでたら否定先読みというものを 初めて知りました。これはネタに使えるって思ったんだけど、 今の僕の頭では有効な活用方法が思い浮かばなかった。 #!/usr/bin/env perl use strict; use warnings; use autodie; use Encode; use u…

dict.pyの修正

辞書(Dictionary).appを使い倒そう : 紹介マニアに Macの Dictionary.appを コマンドラインから使うということで pythonスクリプトが載っているん ですが、エラーチェックも何もないので、検索ワードがヒットしないとき 気持ち悪かったんで修正しました。 #!…

Windowsから送られてきた Zipファイルの展開

僕は仕事はLinuxで行っているのですが、お客さんは Windowsがほとんどです。 そんなお客さんから Zipファイルが送られてくることがたまにありますが、 それを普通に unzipしてしまうと文字化けしてどれがどのファイルかが よくわかりません。 昔のubuntuだと…

weakシンボル

glibcのソースを見ていたら weakシンボルをやたらと多様していた。 なんとなく言葉は知っていたが、はっきりとわかっていたわけでない ので改めて確認する。 普通関数を 2つ定義すると多重定義ということで怒られるけど、 そのうちの一つが weakシンボルであ…

Cronの Path

cronに設定した perlプログラムがうまく動かないなって 思ってエラーログを見ていたら /usr/local/bin/perlでなくて /usr/bin/perlを使っていた。 cronは rootで実行されるけど、 ubuntuだと rootがないんでそのあたりがどうなっているか あんまり考えていな…

モンテカルロ法

あんまりよくわかっていないけど、ランダムな 2つの自然数の 最大公約数が 1になる確率は 6 / π^2 らしい。そんな話を 昔聞いたような聞かなかったような。忘れた。 schemeで実装してみた。 #!/usr/bin/env gosh (use srfi-27) (define (get-pi experiments)…

@INCにコードリファレンスを入れる

cpanminusのソースコードを見ているとそんなコードがあった。 どういう目的でこういうことになっているのかは全然わかっていない ですが、@INCにコードリファレンスを入れるとそれが実行される ようである。引数は第一引数が自分自身のコードリファレンス、 …

Pod::Usageのpod2usage関数

とあるモジュールのソースコードを見ていたらヘルプの 表示でpod2usageという関数があったので調べてみた。 ヘルプオプションなんかでヘルプを表示するのってわざわざ 関数書いてしていたりしていたけど、これだと PODで書いた ことがそのまま出せるので手間…

Imager::QRCodeを使ってみた

PODにあるコードそのまま実行してもエラーになるな〜って思って しばらく悩んでいましたけど、Imagerは errstrというメソッドで エラーメッセージが見れるので、それを見たら問題があっという間に 解決されました。 gifで出力できなかったのは私の環境で対応…

LWP::UserAgentのrequestメソッド

requestメソッドを使うとGETで取得した内容をそのままファイルに 落とすことができるんですね。それだけですが。 #!/usr/bin/env perl use strict; use warnings; use File::Basename; use LWP::UserAgent; use HTTP::Response; use Time::HiRes; my $url = …

リハビリその2

ニコニコ動画で動画のタグを取得するコードを書いてみた。 ニコニコAPIなんてものがあったんですね。 #!/usr/bin/env/perl use strict; use warnings; use LWP::UserAgent; use Getopt::Long; use XML::XPath; binmode STDOUT, ":utf8"; my %opt; GetOptions…

リハビリでコードを書いてみた。

病のため全然やる気になれなかったが久しぶりにコードを 書いた。まいどまいど同じようなコードだが、DMMの週刊ランキングを 取得してみた。 #!/usr/bin/env perl use strict; use warnings; use Web::Scraper; use URI; binmode STDOUT, ":utf8"; my $rank_…

AV女優の情報をデータベースに突っ込む

データベースを扱うプログラムの例として, DMM.comからAV女優の 情報を取得して、データベースに突っ込むというコードを書いてみた。 #!/usr/bin/env perl use strict; use warnings; use utf8; use Web::Scraper; use URI; use Time::HiRes; use DBI; binmo…

ブログの更新頻度確認プログラム

RSSからブログの更新概要を取得するということをしたいのですが、 そのブログがあまりに更新されていないのであれば、対象から外したい。 単純に最新のエントリの更新時刻と現在時刻を比較するっていうのも ありますけど、最新とその前のエントリの更新がど…

時刻の計算

ブログがどの程度の頻度で更新されているかを調べるのに 少し調べてみた。二つの記事の更新日時を取得して差分を 求めれば、どれぐらい更新されていないかがわかるはず DateTimeオブジェクトは演算子のオーバロードを行っており、 イメージに近い感じで日付…