Home > Archives > 2010年3月 Archive

2010年3月 Archive

1 2 3 4

Windowsで英語キーボードを使いたい!

英語キーボードが好きだ。キートップにひらがなが載っていないのでシンプルだし、スペース“キー”ではなくスペース“バー”がど真ん中に鎮座ましましているのがいい。配列だって

  • Shift + ' = "
  • Shift + - = _
  • Shift + ; = :

みたいに、規則的で覚えやすいと思わない? そうでもない? というわけで、昔からHappy Hacking KeyboardとかRealForce英語配列版とかを使い続けている。

自分だけで使うPCならそれで良かったのだが、会社や家族で共用して使うPCだとうまくいかなくなる。WindowsというOSは再起動なしにキー配列を変えることが出来ないという困った仕様なので、自分の使うときだけキーボードをつなぎ替えるような、勝手なことは出来ないのだ *1 。これは誰しも悩むことのようで、解決してくれるソフトも販売されている。

Continue reading

【Perl】LinuxからMicrosoft SQL Serverへアクセスする

PerlからMicrosoft SQL Serverにアクセスする場合、WindowsではOS標準のODBC機能(コントロールパネル→管理ツールから設定する)+DBD::ODBCが使える。

#!/usr/bin/perl
use DBI;
my $dbh = DBI->connect(
    "dbi:ODBC:Driver={SQL Server};"
    . "Server=サーバのIPアドレス;"
    . "database=データベース名;"
    . "uid=ユーザー名;"
    . "pwd=パスワード;" );

しかし、Unix系OSではこの手は使えない。unixODBCとFreeTDSという2つのソフトを介して接続することになる。

Milano::Monolog: unixODBC+FreeTDS+DBD::ODBCでSQL Serverに接続する
http://rebecca.ac/milano/mt/archives/001412.html

unixODBC
http://www.unixodbc.org/

FreeTDS.org
http://www.freetds.org/

Continue reading

【Perl】Spreadsheet::XLSXでセルの値に勝手にフリガナが付く件について

Excel 2007形式(XLSX)のファイルをPerlで扱う必要があったので調べてみると、「Spreadsheet::XLSX」というモジュールを見付けた。

Spreadsheet::XLSX - search.cpan.org
http://search.cpan.org/~dmow/Spreadsheet-XLSX-0.12/lib/Spreadsheet/XLSX.pm

そして次のようにXLSX形式のファイルを用意してスクリプトを実行してみたのだが、セルの値にフリガナがくっついて表示されてしまう *1

excel01.png
#!/usr/bin/perl -l
use Spreadsheet::XLSX;
my $excel = Spreadsheet::XLSX->new( "Book1.xlsx" );
my $sheet = $excel->{Worksheet}[0];
print $sheet->{Cells}[0][0]{Val};

実行結果

$ perl readexcel.pl
文字列モジレツ

XLSX形式についてよく知らなかったのでまずはそこから調べてみた。

Continue reading

【Perl】Win32::GUI::LoftでGUIプログラミング

Windows + PerlでGUIアプリを作る手段はいくつかあるが、一番手頃で機能もそれなりなのがWin32::GUIを使うことだ。

Win32::GUI at SourceForge
http://perl-win32-gui.sourceforge.net/cgi-bin/index.cgi

ただ、これにはGUIビルダが付いていない。GUIの構築はあくまでスクリプト上で行わねばならないのが辛いところ。それを解決してくれるツールがThe GUI Loftだ。

The GUI Loft
http://www.darserman.com/Perl/Loft/

遙か5年以上前から更新が停止してるのがなんだかもの悲しいが、その分安定してるのだと考えよう。実際に最新のActivePerl 5.10.1 + Windows7環境でも問題なく動くのだから。

Continue reading

Perlの小ネタ集

備忘録。単独記事に書くまでもない小ネタ。


Perl 5.10で追加された予約語(“say”、“given ~ when”、“state”)などをワンライナーで使うときは“-e”の代わりに“-E”を使う。

$ perl -E 'say "Hello, World!"'
Hello, World!

Perl 5.8だか5.10だかわからんときは、“-l”オプションを付けておくとprintsayに変身するので便利。

$ perl -le 'print "Hello, World!"'
Hello, World!

スクリプトの一行目(shebang)にオプションを書いても良い。

#!/usr/bin/perl -l
print "Hello, World!";

これは「$\ = $/;」を本文に含むことと等価だ。そのため、「$/」特殊変数をいじるオプション(“-0”など)と共に利用するときは順番に注意しないといけない。

$ perl -e '$\ = $/; print "Hello, World!"'
Hello, World!

Continue reading

【Apache】サイトのコンテンツ全てをgzip圧縮する

Javascriptライブラリをgzip圧縮する」や「YUI CompressorでJavascriptを圧縮する」では、個々のファイルを圧縮して転送量を減らす技を書いた。でも、このように個別に指定するのではなく、透過的に実行してくれる方がありがたい。そのようなときに便利なのがApacheのmod_deflateモジュールだ。

@IT:mod_deflateによるコンテンツの圧縮転送
http://www.atmarkit.co.jp/flinux/rensai/apache2_04/apache04a.html
wadsのblog » Blog Archive » [Apache] mod_deflateでコンテンツをgzip圧縮して通信する
http://wadslab.net/2008/09/mod_deflate/

mod_deflateに関しては上の2つのリンクが詳しいのだが、ちょっと情報が古い。「圧縮するべきファイルのタイプ」を指定する為に使われている「AddOutputFilterByType」ディレクティブは現在では非推奨になっている。

下で説明される理由により、本ディレクティブは非推奨です。 (中略) AddOutputFilterByTypeディレクティブにより有効にしたフィルタは場合によっては、部分的もしくは完全に適用されないことがあります。例えば、MIMEタイプが決定できないときにはDefaultTypeの設定が同じだったとしても、DefaultType設定を使うようになります。
http://httpd.apache.org/docs/2.2/ja/mod/core.html#addoutputfilterbytype

その代替策として使えるのがmod_filterだ。

Apache 2.2 mod_filterを使いこなす – AddOutputFilterByType DEFLATE text/htmlを書き換えてみる « cyano
http://www.onflow.jp/cyano/archives/137

Continue reading

自分のサイトのURLをOpenIDとして利用する

OpenID - Wikipedia
http://ja.wikipedia.org/wiki/Openid

まだOpenIDに対応したサイトは数少ないが、一つのIDで複数のサービスを利用可能というのはおもしろい。加えて、認証作業を「委譲」(delegate)すれば自分の所有するサイトのURLをIDとして使えるのだ。今回はOpenID.ne.jpで取得したIDを自分のサイトに関連づけてみた。

作業自体は単純である。OpenID.ne.jpで「delphinus」というアカウントを取得したとするとOpenIDは「http://delphinus.openid.ne.jp/」となる。URLのように見えるがこれがIDだ。そして次のコードをIDにしたいサイトの<head>〜</head>の中に記載する。

<link rel="openid.server" href="http://www.openid.ne.jp/index.php/serve">
<link rel="openid.delegate" href="http://delphinus.openid.ne.jp/">

これで完成。今回は試しにこのブログのトップ「http://blog.remora.cx/」に載せてみた。

OpenID対応サイト「Live Journal」で実際に試したところ、OpenID「http://blog.remora.cx/」で確かにログインできた。これは非常に便利。もっと対応サイトが増えないかなあ。

【Catalyst】HTML::Tidyを使って出力を整形する

いろんなテンプレートをインクルードしまくったせいか生成されるHTMLが非常に汚かったので、HTML::Tidyを使って整形してみた。

HTML::Tidyのインストール

これは前の記事を参照。

簡単に手順だけ書いておく *1

$ sudo yum install tidy libtidy libtidy-devel
$ sudo cpan -i P/PE/PETDANCE/HTML-Tidy-1.08.tar.gz

Continue reading

【GVim】Proggy + Osakaで快適コーディング

vim_guifontwide.png

Windows版のGVimでフォントを指定するときは「guifont」「guifontwide」の二種類を指定する必要がある……というのを今日初めて知った。前者は半角、後者は全角のフォントを指定する。今までは前者しか指定してなかったので、全角文字についてはレジストリをいじってFontLinkを使うことで対処していた。

Windows 2000/XPのFont Link機能(Font Linking)の紹介
http://blue.ribbon.to/~akene/fontlink.htm

これでも機能的には十分なのだが、変更するのにレジストリエディタを起動するのは億劫だし、OSを再起動しないと有効にならないのが困りもの。でも、わざわざこんな苦労することなかったのだ。

Gvim on Windows: フォント設定: まじかんと雑記
http://magicant.txt-nifty.com/main/2009/03/gvim-on-windows.html

ここに詳細に書かれているのだが、指定すべきオプションは3つある。

Continue reading

【MovableType】決まった時刻にブログを自動で再構築する

記事を投稿したとしても、最新の状態になるのはその記事とトップページなどで、他の記事に含まれる「最近のエントリー」「関連するエントリー」は更新されない。これらを更新するためにはブログ全体の再構築が必要なのだが、記事の投稿のたびにやるのでは二度手間だ。そういうときにはこれ。

Movable Type 備忘録 - MovableTypeを自動的に再構築する
http://bizcaz.com/archives/2006/08/09-221138.php

mt-rebuild / Code / The Appnel Group
http://appnel.com/code/mt-rebuild

ずいぶん古いスクリプトだがMT5でも問題なく動くようだ。インストールした上で、Cronを使ってサーバの暇な頃(朝4時とか)に実行するよう設定した。

mt-rebuildのインストール

ダウンロードしたファイルをmtディレクトリに展開する。

$ cd mt
$ tar zxvf ~/Downloads/mt-rebuild-0.2.tar.gz
x Changes
x docs/
x docs/mtrebuild.html
x mt-rebuild.pl

試しに再構築してみる

コマンドラインから実際に再構築をやってみよう。

$ ./mt-rebuild.pl -blog_id=ブログID -mode="all"

-modeオプションや-archive_typeオプションで(必要ならば)再構築する範囲を指定できるが、今回はそこまで指定していない。

指定時刻に実行するように設定する

$ sudo crontab -e
10 4 * * * /path/to/mt/mt-rebuild.pl -blog_id=4 -mode="all" > /dev/null 2>&1

これで毎日午前4時10分に実行されるようになった。

1 2 3 4

Index of all entries

Home > Archives > 2010年3月 Archive

Feeds
CC Licence

Creative Commons License

このブログはクリエイティブ・コモンズでライセンスされています。

W3C Validation

I ♥ validator

Return to page top