2009-10-01から1ヶ月間の記事一覧

JIS配列からUS配列への変更

メインのマシンのキーボード配列を US配列にしたので サブのマシン(日本語キーボード)も同様に修正。 Gnomeの設定からキーボードで 変更してもうまくいかず、コマンドラインから修正。 % setxkbmap -model us -layout usこれで Shift押しながら 2を押せばア…

リアルタイムシステム

社長に散々怒られたのでメモ。リアルタイムシステムというのは早ければいいというわけではない。 遅くても構わない(あまりないだろうけど)。大事なことは 一定時間に処理が終えることを保証できること。これができなければそのシステムはリアルタイムシステ…

ディレクトリにあるファイル名の取得

Perlだったら楽勝なんですが、C言語ではどうやるかが わからなかったので調べてみた。opendirでディレクトリを読み出して、readdirでディレクトリ エントリを読み出してファイル名を取得できる。 #include <stdio.h> #include <sys/types.h> #include <dirent.h> #include <sys/stat.h> int main (int arg</sys/stat.h></dirent.h></sys/types.h></stdio.h>…

続 Emacsのエンコーディング指定プラグマを挿入する

以前書いたバージョン では, 各プログラミング言語用にコメント記法をリストで保持していましたけど、 comment-regionを使えば、Emacsが認識する言語であれば正しくコメントアウト してくれるはず。ということで以下のようなものにした (defun insert-encodi…

標準エラー出力を標準出力にリダイレクト

方法がわからなかったので、perldocで調べてみると通常の openで "&"をつければいいみたい。そこで dupシステムコールと同じとあるん だけど、dupの意味が分からなかったでそちらも調べました。名前から 察するに単に複製って思っていたんですけど、既に開い…

WWW::Mechanizeで Basic認証

ちょっと必要になったので調べてみた。 my $mech = WWW::Mechanize->new(); $mech->credentials( username => password ); $mech->get($url); credentialsメソッドでユーザ名、パスワードを指定 してあとは通常通り getメソッドで urlを取得という ことでい…

WWW::Mechanizeを使ってみた

毎度お馴染み画像取得スクリプト #!/usr/bin/perl use strict; use warnings; use Time::HiRes; use IO::Handle; use File::Basename; use WWW::Mechanize; my $url = shift @ARGV or die "Error: please input url\n"; my $mech = WWW::Mechanize->new(); $…

Roleの使いどころ

Moose::Roleは Javaでいうところの Interfaceみたいに使うものと思って いたけど、もうちょっと高度なことにも使える。Interfaceだと、とにかく 決められたメソッドを実装するということになるけど、Roleだとそこに あるメソッドを定義して、そのメソッドに…

矩形処理

連続する行の先頭にスペースを何個か入れたいというようなことは よくあります。そんなときは Emacsでは string-rectangleをよく 使います。使い方は C-x r t [文字列]となります。 1:aaaa 2:bbbb 3:ccccこんなときに 1行目の先頭にマークをつけ、3行目の先…

UTF-8でないXMLファイルの解析

極めて稀ですが、XMLファイル(RSS)等がUTF-8でエンコーディング されていないときがあります。一応処理はできるようなんですが、 いろいろと設定がやるのが面倒くさいので以下のようなことで 実現しました。 #!/usr/bin/perl use strict; use warnings; use …

HTML::TreeBuilder::XPathを使ってみた。

XPathを知りたくてというか実践したくて使ってみた。 返り値となるオブジェクトがいろいろとでてきてわからないが、 そんなときは refとか isaで型をチェックして、ドキュメントを見て ということを繰り返せばなんとかなる。以下毎度お馴染みのサンプルです…

nullと undefinedの違い

GreaseMonkeyスクリプトを書いていたらなんかエラー出てるなって 放置していたけど意味がようやく理解できた。Javascriptって nullか どうかのチェックで undefinedのチェックができないんですね。 ていうか undefinedと nullが違うということさえ知らなかっ…

HTML::TokeParserを使ってみる

いろいろと HTMLを解析することがあるけど、最近はほとんどテンプレートから 生成されたものなので、正規表現で簡単にかけることが多い。でもたまに、 手書きだったり、オーサリングツール使っていたりするサイトだと、微妙に 属性の順番が変わっていたり、…

HTML::Parserを使ってみる

HTTP::Messageのソースコードを読んでるときに, HTML::Parserが使われて いたので perldocを読んでサンプルコードを書いてみた。 イベントドリブンなツールなんで毛嫌いしていたところもありますけど、 そんなに難しくなかった。ただコンストラクタが若干あ…

decoded_content

http://d.hatena.ne.jp/tokuhirom/20091004/1254672645を見て知ったんだけど、HTTP::Response(定義は HTTP::Message)には decoded_contentというメソッドがあって decodeした contentを返して くれるようです。perldoc HTTP::Messageに書いてあることだけで…

Config::Pitを使う

Web APIは普段は使わないけど、FTPでアップロードするための スクリプトはいくつか書いてます。その中で Passwordをハードコーディング していたところがあったので, Config::Pitが使えるなって思って使ってみた.ユーザ名とパスワードの指定は以下のように O…

grepのカラー化

lsとかは色がつけられるのに, なんで grepはカラーにできないだって 思っていたら普通にあった。 % grep --colorGNU grepはこれでいけるはずです。aliasしておくと良いでしょう alias grep='grep --color'最近は emacsの lgrepも使うようになったためか, カ…

Emacsのエンコーディング指定プラグマを挿入する

Emacsではエンコーディング方法や modeの指定をファイルごとに行う ことができます。 ;; -*- coding:utf-8 mode:cperl -*-です。コメントは別にいらないみたいなんですけど、当然コンパイラ等には 見せたくないのでコメントアウトするのが普通です. ファイル…

実行ファイルのフルパスの取得

会社の人に聞かれて強引な方法を提示してしまったで、 普通にできるだろってことで調べてみた。 Perl, シェルスクリプトどちらでも $0で実行ファイル名が 取得できます。それをフルパスにできればよいというわけです。 まあ basenameとか dirnameがあるんだ…