Get me outta here!

blog.delphinus.dev

vim とか Perl な話題とか……

Menu

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

Author Archives

delphinus

Javascriptライブラリをgzip圧縮する

2010年2月21日 by delphinus

うちのサイトを構成してるファイル群を見ると、一番大きなファイルは画像ファイルではなく、prototype.jsだった。なんと123.17KBもあるのだ。Webalizerの統計によると、サイト全体の転送量の10%を占める。
100220-0001.png

こぶたのラッパ : 世界の片隅で.jgzと言ってみる
http://smil.exblog.jp/4650470/

早速、生のprototype.jsとgzip圧縮したprototype.jgzを用意した。prototype.jsのバージョンは1.6.0.2だ。

$ cp prototype.js prototype.tmp
$ gzip prototype.tmp
$ mv prototype.tmp.gz prototype.jgz
$ ll prototype.*
-rw-r--r--@ 1 delphinus  staff   29166  2 19 12:29 prototype.jgz
-rw-r--r--@ 1 delphinus  staff  126132  3 10  2008 prototype.js

Continue reading →

javascript Leave a comment

Mac miniのメモリを8GBに増設

2010年2月20日 by delphinus

IMG_0980.PNG

WiredとActiveで8割弱を占め、Page insに対してPage outsが43%。しかもSwapが6GBってこれ、実メモリの1.5倍もある!

ってことでメモリを増設することにした。調べてみると、過去のMac miniではメモリを8GBに増設すると激しく不安定になることがあったようだ1が、現行モデル(MC239J/A)では特に問題は見つからない。

早速秋葉まで行って次のメモリを買ってきた。

秋葉原アーク(ark)PC
DDR3 204Pin S.O.DDR3-1066 4GB Micron純正品
http://www.ark-pc.co.jp/item//code/11300163

増設作業は前に書いたHDD→SSD換装(その1、その2、その3)とほとんど同じである。(OSのリストアは必要ない) 一応今回もいくつか画像を載せておこう。

Continue reading →

Mac Leave a comment

【perl】範囲演算子についての日本語マニュアルの誤訳

2010年2月19日 by delphinus

スカラーコンテキストでの範囲演算子(所謂フリップフロップ演算子)の使い方がいまいちわからなかったのでググってみたのだが、perldoc.jpの日本語マニュアルがいきなり間違ってたので悪戦苦闘。

http://perldoc.jp/docs/perl/5.10.1/perlop.pod

はじめは、左被演算子が偽である間、演算全体も偽となっています。範囲演算子は、いったん左被演算子が真になると、右被演算子が真である間、真を返すようになります。右被演算子が偽になると、演算子も偽を返すようになります。

ラクダ本を読み返してみたら、太字にした部分が正反対じゃないか!

http://www.oreilly.co.jp/books/4873110963/
Google ブックスで該当頁を開く

120頁 3.15 範囲演算子
左オペランドが偽である限り、状態は「偽」のままである。ひとたび左オペランドが真になれば、右オペランドが真になるまで演算子の状態は「真」のままになる。右オペランドが真になると、その次から状態は再び偽に戻る。

他のバージョンも見てみると、一番古いv5.6.1の時点ですでに誤訳されているようだ。最初から横着せずに原典(或いはperlop.podそのもの)を読めば良かったよ……。

perl Leave a comment

【Perl, Windows】WMIに接続する(応用編)

2010年2月18日 by delphinus

前回はWMIへの接続の基本を書いた。

$wmi  = Win32::OLE->GetObject( "winmgmts:/root/CIMV2" );
$items = $wmi->ExecQuery( $sql );

しかし、この構文ではローカルのPC、しかも現在のユーザー資格情報で接続しようとする。別の資格情報を使ったり、他のPCの情報が欲しいときは次の構文を使う。

$locator = Win32::OLE->CreateObject( "WbemScripting.SWbemLocator" )
$wmi = $locator->connectserver( "サーバー名", "root/CIMV2", "ユーザー名", "パスワード" );

前回の例(デスクトップの壁紙のファイル名を得るスクリプト)を書き直してみよう。

Continue reading →

perl Windows WMI Leave a comment

Exchange Serverでメールボックスをエクスポートする

2010年2月17日 by delphinus

Exchange Serverで管理しているメールボックスをバックアップしたり別のアカウントにリストアするときは次のユーティリティを使う。

Download details: Microsoft Exchange Server Mailbox Merge Wizard (ExMerge)
http://www.microsoft.com/downloads/details.aspx?familyid=429163ec-dcdf-47dc-96da-1c12d67327d5&displaylang=en

ここから「Exmerge.exe」をダウンロードして実行するとExmergeというフォルダにプログラムが解凍される。

フォルダの中のExmerge.exeをダブルクリックするとプログラムが起動!……するはずだが、そのままではダメだ。

exmerge1.png

exchmem.dllというファイルが足りないらしい。このファイルはC:\Program Files\Exchsrvr\binにある。これをExmergeフォルダにコピーした後、もう一度Exmerge.exeをダブルクリックする。

exmerge2.png

後は基本的に「次へ」のボタンをクリックしていくだけなので迷うことはないだろう。途中には、

  • Exchange Serverのホスト名
  • メールボックスをエクスポートしたいアカウント
  • エクスポートしたファイルを保存するフォルダ

を指定する画面がある。予め用意しておこう。

エクスポートが成功すると、指定したフォルダに.pstファイルが作成されている。これをインポートしたいPCにコピーし、Outlookでインポート操作を行う。このやり方は詳しく書いてあるサイトが多数あるので改めてここに載せるまでもないだろう。

ファイルをインポートする – Outlook – Microsoft Office Online
http://office.microsoft.com/ja-jp/outlook/HP030737381041.aspx

注意点としては、予めインポート先のフォルダを作成(「ファイル」メニュー→「新規作成」→「フォルダ」)しておくことである。そうでないと中身がごちゃ混ぜになって非常に困る(困った)。

Windows メール Leave a comment

findについての覚え書き

2010年2月16日 by delphinus

一定数の新しいディレクトリを残して、古いものだけ削除する。例えばこんなときに、

$ ll -d upload_*
drwxr-xr-x 2 apache apache 4096  2月 15 20:21 upload_1266232894
drwxr-xr-x 2 apache apache 4096  2月 15 20:26 upload_1266233148
drwxr-xr-x 2 apache apache 4096  2月 15 20:29 upload_1266233372
drwxr-xr-x 2 apache apache 4096  2月 15 20:37 upload_1266233808
drwxr-xr-x 2 apache apache 4096  2月 15 20:40 upload_1266234035
drwxr-xr-x 2 apache apache 4096  2月 15 21:02 upload_1266235350
drwxr-xr-x 2 apache apache 4096  2月 15 21:05 upload_1266235518
drwxr-xr-x 2 apache apache 4096  2月 15 21:07 upload_1266235658
drwxr-xr-x 2 apache apache 4096  2月 15 21:14 upload_1266236074

新しい3個だけ残して後は全て削除するときはこうする。

$ find -maxdepth 1 -name 'upload_*' | sort | head -n -3 | xargs rm -fr

事前に削除するファイルを確認したいときは-printfオプション。

$ find -maxdepth 1 -name 'upload_*' -printf '%p ; %t\n' | sort | head -n -3
./upload_1266232894 ; Mon Feb 15 20:21:52 2010
./upload_1266233148 ; Mon Feb 15 20:26:06 2010
./upload_1266233372 ; Mon Feb 15 20:29:49 2010
./upload_1266233808 ; Mon Feb 15 20:37:10 2010
./upload_1266234035 ; Mon Feb 15 20:40:54 2010
./upload_1266235350 ; Mon Feb 15 21:02:49 2010

単純に一日(24時間)以上前のものを削除するだけなら、

$ find -maxdepth 1 -mtime +0 -name 'upload_*' -printf '%p ; %t\n' -exec rm -fr {} \;

  • -mtimeオプションの引数は実際の日数より一つ少ないものを指定する。
  • -execオプションはセミコロンで終わるが、バックスラッシュ(円マーク)でエスケープしないとシェルに検知されてしまう。
  • 日単位ではなく、分単位で指定するときは-mtimeオプションではなく、-mminオプションを使う。
Unix系OS Leave a comment

【Perl, Windows】WMIに接続する(基本編)

2010年2月15日 by delphinus

前回のネタについて細かく見て行こう。

そもそもWMIとは何か。

Windows Management Instrumentation – Wikipedia
http://ja.wikipedia.org/wiki/WMI

Windows Management Instrumentation(WMI)は、Windows Driver Modelへの拡張の一種で、システムの構成要素について情報収集と通知を行うオペレーティングシステムのインタフェースを提供する。

これだけではなんだかよくわからないが、要するに、OSから得られる様々な情報に対する統括的なインターフェイスだ。Windowsの状態について知りたいならばこれで全て賄えるのである。

PerlからこのWMIへのアクセスにはWin32::OLEモジュールを使う。基本的な構文はこうだ。

$wmi = Win32::OLE->GetObject( "winmgmts:/root/CIMV2" );
$items = $wmi->ExecQuery( $sql );

$sqlにはSQL(みたいな)構文が入る。例として、デスクトップに使っている壁紙のファイル名を得るプログラムを書いてみよう。

Continue reading →

perl Windows WMI 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.