ubuntu で pdfファイルからテキスト抽出
インストール
$ sudo apt-get install poppler-utils
上記でpdftotextというコマンドが使えます。
コマンドの例
$ pdftotext abc.pdf abc.txt
レイアウトを維持したい場合
$ pdftotext -layout abc.pdf abc.txt最後の5ページを変換
$ pdftotext -l 5 abc.pdf abc.txt最初の5ページを変換
$ pdftotext -f 5 abc.pdf abc.txtパスワード付きのPDFの場合
$ pdftotext -upw 'password' abc.pdf abc.txt
SSDの寿命対策 google chrome のキャッシュ保存先変更
SSDへの書き込み回数を減らすため、空きメモリ上にドライブを作成しそちらへキャッシュ保存先を変更する。
(メモリ上にドライブを作成するソフトはBUFFALO RAMDISKを利用)
google chromeの起動オプションで下記を指定。ショートカットを右クリックで起動パスに下記を追記
キャッシュの保存先を D:\ChromeCache キャッシュサイズは200MBを指定した場合
--disk-cache-dir="D:\ChromeCache" --disk-cache-size=204800000 --media-cache-size=204800000
具体的に下記のようなパスになる。
C:\Users\hoge\AppData\Local\Google\Chrome\Application\chrome.exe --disk-cache-dir="D:\ChromeCache" --disk-cache-size=204800000 --media-cache-size=204800000
まれに、OS(Windwos7)を強制終了した場合には、起動オプションが消えている場合があるので再度設定の必要あり。
LWP::Authen::Digest を使って perl でDigest認証
LWP::Authen::Digestを使えば簡単
use LWP;
use LWP::Authen::Digest;my $username = "hoge";
my $password = "fuga";
my $url = "http://x68000.q-e-d.net/~68user/net/sample/http-auth-digest/secret.html";
my $host_port = "x68000.q-e-d.net:80";
my $realm = "Secret Zone";
my $browser = LWP::UserAgent->new();$browser->env_proxy;
$browser->credentials("$host_port","$realm","$username","$password");
my $response=$browser->get($url);if($response->is_success) {
print $response->decoded_content;
}
else {
die $response->status_line;
}
ダイジェスト認証自体の詳細はこの辺を参照で。
http://x68000.q-e-d.net/~68user/net/http-auth-2.html
perl の localtime
たまに利用するけどよく忘れるのでメモ
localtimeは下記のリストを返す。
1. 秒
2. 分
3. 時
4. 日
5. 月(0〜11) 1月の場合に0、2月の場合に1、……、12月の場合に11
6. 年(西暦から1900を引いた値) 2008年の場合に108
7. 曜日(0:日、1:月、……、6:土)
8. 年明けからの経過日数(1月1日の時に0)
9. サマータイムが有効の場合正の整数、無効の場合0、不明の場合負の整数
使用例:現在時刻を取得し時分秒を表示
my @now = localtime;
print "$now[2]時$now[1]分$now[0]秒\n";
使用例:1時間後はtimeに3600を足して
my @time = localtime(time + 3600);
$time[5] += 1900;
$time[4] += 1;
print "$time[5]年$time[4]月$time[3]日 $time[2]時$time[1]分$time[0]秒\n";
ピンポイントでほしい場合はスライスで
my ($min , $hour) = (localtime)[1,2];
JavaScriptの jsファイルをWebService::Google::Closureでコンパクト化
Google Closure Tools の JavaScriptのコードを最適化する
「Closure Compiler」をperlから利用する。
Closure Compilerは元のJavaScriptコードに対して大きく分けて二つの処理を行います。
1.既存のJavaScriptコードの最適化
2.外部参照しているコードの取り込み
cpanのままだけど、サンプルは
use WebService::Google::Closure;
my $res = WebService::Google::Closure->new(
url => "http://code.jquery.com/jquery-1.8.0.js",
compilation_level => 3,
)->compile;print "Orig Size = " . $res->stats->original_size . "\n";
print "Comp Size = " . $res->stats->compressed_size . "\n";
jquery-1.8.0.js だとサイズは下記の感じになる。
# prints;
# Orig Size = 163855
# Comp Size = 65523