【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

MySQLにユーザーを登録する

新しくインストールするたびに調べてるので、覚え書きとしておいておく。

ユーザ権限の設定 | MySQL講座 [Smart]
http://www.rfs.jp/server/mysql/02/02.html

インストール直後は

$ /usr/bin/mysqladmin -u root password 'new-password'

とやって、rootにパスワードを設定する。更に、localhost以外のホストからもアクセス可能にする(ハイライトしている部分が入力すべきコマンド)。

$ mysql -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'パスワード' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

後は、MySQL AdministratorでGUIを使って一般ユーザーを作れば楽ちん。

MySQL :: MySQL GUI Tools Bundle: Archived Downloads
http://dev.mysql.com/downloads/gui-tools/5.0.html

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

少々回りくどい表題だが、要するに「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

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

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

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

VimでPerldocを引く(Unix系OS編)

100213-0001.png

Perlでごりごり書いてるときに、モジュールのドキュメントが読みたくなることはよくある。GNU Screen + Vimでやってるときは別のウィンドウで「perldoc モジュール名」でもいいのだが、GVimではそういうわけにも行かない。

そんなときに便利なのが次のプラグイン。

PERLDOC2 – Perldoc with sytnax highlighting in vim : vim online
http://www.vim.org/scripts/script.php?script_id=2171

インストールは以下の手順で行う。

  1. CPANからPod::Simple::Vimモジュールをインストール1
  2. ダウンロードしたzipファイルの中身を~/.vimに解凍する
  3. .vimrcに次のような記述を追加
" Perldoc表示用
let g:Perldoc_path=expand("$HOME")."/.vim/perldoc_cache/"

expand以下がキャッシュディレクトリだ。ディレクトリ作成したりするのが面倒なら、単に「expand("$TEMP")."/"」とだけ指定しておけばいいかもしれない。使用法はコマンドモードで

:Perldoc モジュール名

とするとドキュメントが引ける。これだけでも十分読みやすいのだが、いくつか不満点があるので改良した。

Continue reading

【Vim】指定されたPerlモジュールのソースファイルを開く

Perlモジュール名を指定するとそのソース(.pmファイル)を開いてくれるコマンド。已にどっかにありそうな機能ではあるが、勉強のために作ってみた。

使い方

openPM.vimをpluginディレクトリ(Unix系なら~/.vim/plugins、Windowsなら$HOME/vimfiles/plguin)に、searchPM(WindowsはsearchPM.bat)をパスの通ったディレクトリに置き、実行権限を与える。そしてVimを起動し、

:OpenPM モジュール名

で、.pmファイルが開く。モジュール名が指定されなかった場合は、カーソル下にある文字列を認識して開く。

使用例

こんなファイルでカーソルをここにおいて、

100211-0001.png
:O<Enter>」とすると、モジュールのソースが開く。

100211-0002.png

Continue reading

DBIx::Classのクエリで関数を使う

備忘録。

UPDATE users SET password = MD5('mypass') WHERE id = 15;

idが15であるユーザーのパスワードに’mypass’をMD5で符号化して保存する。

みたいなSQL文をDBIx::Class(というか、SQL::Abstract)で表現するにはどうするか。この場合はこう書く。

$schema->resultset( "Users" )
    ->update( {
        password => \"MD5('mypass')",
        id => 15,
    } );

なんてことはない。文字列のリファレンスを値として与えるだけだ。更に応用として次のようなSQLだと、

SELECT CONCAT( 'ID', LPAD( id, 6, '0' ) ) AS member_id FROM users;

usersテーブルからidを取り出し、頭に'ID'を付けて6桁0埋めで取り出す。(id = 15なら'ID000015'となる)

こうなる。

my $it = $schema->resultset( "Users" )
    ->search( undef, {
        "+select" => [ \"CONCAT( 'ID', LPAD( id, 6, '0' ) )" ],
        "+as" => [ "member_id" ],
    } );

say $it->first->get_column( "member_id" );
# 「ID000015」などと表示される