Get me outta here!

blog.delphinus.dev

vim とか Perl な話題とか……

Menu

Skip to content
  • プライバシーポリシー
  • perl
  • Vim
  • 映画
  • 投稿一覧
  • はじめに

Author Archives

delphinus

【MovableType】Tidy を使って HTML を整形するプラグイン

2010年3月6日 by delphinus

以前、「外部リンクを明示するMovableTypeプラグイン | blog.delphinus.dev」で紹介したプラグインで、MovableType で生成する HTML をちょっとだけ整形してみた。今度は本格的なツールを使ってみよう。

HTML Tidy による整形

HTML Tidy は整形ツールとしては一番著名で強力なツールだ。歴史も古く、最初のバージョンは前世紀まで遡る。

HTML Tidy Project Page
http://tidy.sourceforge.net/

現バージョンの `HTML::Tidy` では tidyp というツールが推奨されているようだ。tidyp を使うならば、後述の `HTML::Tidy` のバージョン違いによるエラーは起こらない。詳しくはこちら。
【Perl】HTML / XML の 整形には tidy“p”? | blog.delphinus.dev

そしてそれを Perl から利用するためのモジュールが HTML::Tidy。

HTML::Tidy – search.cpan.org
http://search.cpan.org/~petdance/HTML-Tidy-1.50/lib/HTML/Tidy.pm

更に HTML::Tidy を利用して、MovableType で生成する HTML の整形を行ってくれるのがこれ。

Movable Type Monday: Etelos Partnership, Plugin Development, HTML Tidy, and More | The Blog Herald
http://www.blogherald.com/2009/04/07/movable-type-monday-etelos-partnership-plugin-development-html-tidy-and-more/

3つもインストールしなければならない上、一つ一つがかなり曲者だった(Mac OS X を使っていることが主因なんだけれども)。

Continue reading →

Mac Movable Type perl 4 Comments

【Perl】ユーザーにプロンプトから入力して貰うスクリプト

2010年3月5日 by delphinus

モジュール「Term::ReadKey」を使うと出来る。これはUnix系OSだけじゃなくてWindows(ActivePerl 5.10.1 build 1007で確認)でも動く。

Term::ReadKey – search.cpan.org

http://search.cpan.org/dist/TermReadKey/ReadKey.pm

例1:文字列を入力して貰う

#!/usr/bin/perl
use Term::ReadKey;
print "type some keys : ";
ReadMode "normal";
chomp( my $line = ReadLine 0 );
print "you typed '$line'\n";

chompしないと最後に改行が付いたままになってしまうので注意。

例2:画面に文字を表示しないで入力

#!/usr/bin/perl
use Term::ReadKey;
print "enter your password : ";
ReadMode "noecho";
chomp( my $line = ReadLine 0 );
ReadMode "restore";
print "\nyou typed '$line'\n";

パスワード入力に使えるだろう。

例3:1文字だけ受け付ける(選択肢を選んで貰う)

#!/usr/bin/perl
use Term::ReadKey;
print "are you Hungry? (y/n)\n";
ReadMode "cbreak";
my $char = ReadKey 0;
ReadMode "restore";
print "you typed '$char'\n";

このスクリプトはWindowsにおいて挙動がおかしい。なぜかエンターキーだけを認識しないのだ(他のキーは全く問題ない)。そのときはTerm::Getchを使おう。

Term::Getch – ReadKeyライクなインターフェースのMSWin32用の代替

http://okilab.jp/document/japanate/perldoc/html/Term-Getch-0.20/Term/Getch.htm

#!/usr/bin/perl
use Term::Getch;
print "are you Hungry? (y/n)\n";
my $char;
1 while ! ( $char = getch );
print "you typed '$char'\n";

例4:文字入力をn秒待つ

#!/usr/bin/perl
use Term::ReadKey;
print "please press key within 3 seconds.\n";
ReadMode "cbreak";
my $char = ReadKey 3;
ReadMode "restore";
print "you typed '$char'\n";

ReadKey関数に正の数字を渡すとその秒数だけ待つ。この例だけはWindowsでうまく動かせなかった。

perl Windows Leave a comment

Time Machineでバックアップされないファイルたち

2010年3月4日 by delphinus

Time Machineは僕がMac OS Xの中で一番気に入っている機能の一つだが、一つだけ難点がある。それはすべてのファイルをバックアップするわけではないことだ。

よくあるトラブルとして、Time Machineからのフルリストアをやった後にApacheが起動できなくなるというものがあった。これは「/private/var/log」ディレクトリがバックアップ対象となっていないために、access_logなどのログファイルが作成不能になることが問題だ1。

Coffee and Ashtray: Mac Timemachine復元後 Apache起動しない
http://coffeeash.blogspot.com/2009/04/mac-timemachine-apache.html

何がバックアップされないか

バックアップされないものには次のようなものがある。

  • キャッシュディレクトリ(~/Library/Cachesなど)
  • テンポラリディレクトリ(/tmpなど)
  • マウント用のディレクトリ(/Volumes)
  • スワップファイル(/var/vm)
  • ログファイル(/var/log)

最後のログファイルが問題である。大規模なサイトを構築してものすごい量のログファイルが作成される環境なら、Time Machineの対象にしないのもわかる(代わりにDVDなどに焼くだろう)。でもうちみたいな小規模な鯖じゃそこまでする気にはなれない。それに、マシンに障害が起こってTime Machineから復旧したとしても、ログファイルが残ってなければ原因の調べようもないではないか。

というわけで、Time Machineにバックアップされないファイル・ディレクトリの完全なリストはどこにあるのか調べていたら、次のような情報があった。

Continue reading →

Mac Leave a comment

MovableTypeからSMTP認証+SSLでメール送信

2010年3月3日 by delphinus

少々回りくどい表題だが、要するに「GmailのアドレスでMovableTypeからメールを送りたい!」という話。このプラグインを使うとできる。

The Tweezer’s Edge: Stories: SMTP Auth Plugin

http://tweezersedge.com/archives/stories/smtp_auth_plugin.html

依存モジュールのインストール

割とたくさんインストールする必要がある。

  • Sys::Hostname
  • Time::Local
  • MIME::Base64
  • Net::SMTP
  • Authen::SASL
  • Net::SMTP::SSL
  • Net::IDN::Encode
  • IO::Socket::SSL
  • Net::SSLeay

太字で書いたNet::IDN::Encodeはマニュアルに記載がないが、これがないとIO::Socket::SSLのインストールがうまく行かなかった。

Continue reading →

Movable Type perl メール Leave a comment

IEがpタグにinnerHTMLできないのはバグ?

2010年3月2日 by delphinus

<p> タグの中に innerHTML プロパティを使って文字列を挿入するときに、それが不正なHTMLだとIEは無視してしまう。

Pieces Of Rakesh: IE’s Unknown Runtime Error When Using innerHTML

http://piecesofrakesh.blogspot.com/2007/02/ies-unknown-runtime-error-when-using.html

IE で innerHTML に変な HTML を入れるとエラーになる件 – *Trace Output*

http://d.hatena.ne.jp/miyamuko/20060320/p1

単純な文字列ならば問題ない。例えば次の文はちゃんと動くが、

document.getElementById( "some-id" ).innerHTML = "あいう<br />えお";

次の文はエラーになってしまう。なんというわかりにくさ。

document.getElementById( "some-id" ).innerHTML = "<div>あいうえお</div>";

もっとも、「<p> タグの中にブロックレベル要素を入れてはいけない」というのは HTML の解説書には必ず書いてある決まり事ではある。Firefox や Google Chrome では問題ないのに、IE だけが規則に厳格なんて珍しいこともあるものだ。

以下はおまけ。

Continue reading →

Movable Type Leave a comment

コメントできなくなってましたorz

2010年3月2日 by delphinus

スパム避けのための Captcha 画像が表示されず、コメントしようにもできなくなってました。コメントできなかった方、ごめんなさい。今は可能になっているはずです。Captcha 画像が表示されない方はリロードしてみてください。

Captcha 画像が表示されなかった原因は以下の 2 つ。

  1. mt-config.cgi の CaptchaSourceImageBase が間違ってた
  2. <p> タグに関する innerHTML プロパティのバグ(IE 限定。仕様なのかな?)

1 番はどうしようもないミスなので論外だけど、2 番は初めて知ったので別記事にでも。

Movable Type Leave a comment

AWStatsでちょっとリッチなアクセス解析 @ Mac OS X

2010年3月1日 by delphinus

100301-0001.png

すでにWebalizerは導入済みなのだけれど、もうちょっとリッチなアクセスログ解析システムが欲しくなった。ググってみるとそのようなシステムはいくつかある。

Analog: WWW logfile analysis
http://analog.cx/

Visitors – fast web log analyzer
http://www.hping.org/visitors/index_jp.php

Home of The Webalizer
http://www.mrunix.net/webalizer/

AWStats – Free log file analyzer for advanced statistics (GNU GPL).
http://awstats.sourceforge.net/

参考:Google Analytics にてアクセスIPをチェック|トピックを表示
http://forum.tsukaeru.net/viewtopic.php?t=3470

いろいろある中でもPerlで書かれてて中身がわかりやすそうなAWStatsを選んだ。こいつは前に導入したWebalizerよりずっと優れていて、解析結果が細かいだけでなく、スクリプトまで書いて対処した問題に煩わされることもない。

Continue reading →

Apache Mac Unix系OS Leave a comment

Post navigation

← Older posts
Newer posts →

アカウントでログイン

最近の投稿

  • Moves API のための Perl モジュールを作りました 2013年9月11日
  • ロボットは僕に言った「君は人間じゃない」 2013年7月30日
  • 人は一生に何回キーを叩くんだろう? 2013年7月29日
  • 【Vim】カラースキームを切り替えるたった一つのさえたやりかた 2013年7月23日
  • 【WordPress】「前の記事」「次の記事」のリンクにサムネイルを付ける 2013年7月17日
  • 【Powerline】Git branch セグメントが Mac OS X で動かない? 2013年7月16日
  • 【Vim】80桁教信者の憂鬱 その2(ホットキーでトグル、他) 2013年6月24日
  • 【vim】80桁教信者の憂鬱 2013年6月20日
  • 【MacVim】メニューバーでアイコンが見えない! 2013年6月19日
  • 【unite.vim】set_substitute_pattern は衰退しました(その2) 2013年6月18日
Proudly powered by WordPress | Theme: Something Fishy by Caroline Moore.
blog.delphinus.dev
Proudly powered by WordPress | Theme: Something Fishy by Caroline Moore.