gitインストール
Mac で screen 起動後に pbcopy を動くようにする方法 | Supernova で必要になったのでインストール。
作業履歴
/* macportsからインストール */ $ sudo port install git-core /* screenのソースを落としてみる */ $ git clone git://git.sv.gnu.org/screen.git
Perlモジュールをパスを検索
※ 2010/03/06 追記:
普通に「perldoc -l <モジュール名>」で調べられた。。。。今迄知らなかった…。
いつもPerlモジュールのコードを読むときは「perldoc -m モジュール名」としているが、モジュールのパスだけ知りたいときもある。
そんなときのために簡単なコードを書いてみた。
sm.pl
#! /opt/local/bin/perl -w use strict; use File::Find; use File::Spec::Functions; use File::Basename; use Getopt::Long; my $sModPath = ''; # path to Module file (like path/to/module). my %opt = ( full_path => 1, m_name => undef, ); GetOptions( 'full_path!' => \$opt{full_path}, 'm_name=s' => \$opt{m_name}, ) or usage(); init_opt(); find { wanted => \&filter, no_chdir => 1, }, @INC; sub filter { if (/$sModPath\.pm$/) { if (!$opt{full_path}) { # Only file name required. $_ = basename($_); } print canonpath "$_\n"; } } sub init_opt { if (defined $opt{m_name}) { my @aModPath = split /::/, $opt{m_name}; $sModPath = catfile(@aModPath); } } sub usage { print STDERR "USAGE: $0 [--full_path] [--m_name <module::name>]\n"; exit 1; }
使い方
/* 全てのモジュールをフルパスで取得 */ $ sm.pl /* <module::name>のパスを取得(フルパス) */ $ sm.pl --m_name <module::name> /* <module::name>のパスを取得(モジュールファイルのみ) */ $ sm.pl --m_name <module::name> --nofull_path
Hadoop始めました
Hadoopを買ったが、早速p.24のサンプルで躓いたOTZ
以下のページを参考にやったらできた。たぶん後で追記する。
自作したHadoopのジョブを動かす - 研究メモ
この本一冊でいけるかと思ったけど404 Not Foundなども併せて読まないと理解できなそうだな。。。
あと、Hadoopのために Java-1.6.x を入れようとして気づいたが、イントールしただけじゃ古いパスを見続けてたり、シンボリックリンクを付け替えないといけなかったり、色々とカオスだった(Mac OSXの場合)。
素直に会社のサーバを使わせてもらったほうがよさそう。
CREATE TABLE release ではまった
Macで開発用SMTPサーバを立てたい
どうすればよいか?
postfixをスタート $ sudo postfix start ログはここ $ tail -f /var/log/mail.log
これで無事、SMTPサーバが起動した。(今回はSMTPサーバが動けばよいので詳しくは調べていない)
macのスタート時にSMTPサーバを起動するには「/etc/hostconfig」を以下のように編集すればよいらしい。(確かめていないので間違っているかも)
/etc/hostconfig に 「MAILSERVER=-YES-」を追加 $ sudo vim /etc/hostconfig ... MAILSERVER=-YES- ...
参考ページ:
guess what?: Macで開発用SMTPサーバをたてたい!:情報源。
OS X ハッキング! (19) システム環境設定と/etc/hostconfigの関係 | マイナビニュース:/etc/hostconfig について
localホスト宛に送信テスト(perlスクリプト):
$ vi email_send.pl use MIME::Lite; use Jcode; $email = 'hoge@localhost'; $content = <<"EOF"; Hello!!!!!!!!!! MIME::Lite test. EOF my $msg = MIME::Lite->new( From => 'sample@example.com', To => $email, Subject => 'Email Send Test', Type => 'text/plain; charset=utf-8', Encoding => '7bit', Data => Jcode->new($content)->utf8, ); $msg->send_by_smtp('localhost'); $ perl email_send.pl
早速ログを見てみると…
Sep 12 22:42:34 macbook postfix/smtpd[4519]: warning: database /etc/aliases.db is older than source file /etc/aliases Sep 12 22:42:34 macbook postfix/smtpd[4519]: connect from localhost[127.0.0.1] Sep 12 22:42:34 macbook postfix/smtpd[4519]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 550 5.1.1 <hoge@localhost>: Recipient address rejected: User unknown in local recipient table; from=<sample@example.com> to=<hoge@localhost> proto=ESMTP helo=<localhost.localdomain> Sep 12 22:42:34 macbook postfix/smtpd[4519]: lost connection after RCPT from localhost[127.0.0.1] Sep 12 22:42:34 macbook postfix/smtpd[4519]: disconnect from localhost[127.0.0.1]
送れてないみたい。。
調べてみると、Postfix の設定で
ローカルユーザ名またはアドレスが $local_recipient_maps にリストアップされていないと、 Postfix SMTP サーバはアドレスを "User unknown in local recipient table" で拒否します。 デフォルトの設定では、以下に示すように、受信者が UNIX アカウントもしくはローカルエイリアスである、 ローカル配送にデフォルトの Postfix local(8) 配送エージェントを使うことを想定しています: /etc/postfix/main.cf: local_recipient_maps = proxy:unix:passwd.byname $alias_maps
とある。
情報源:Postfix で知らないローカルユーザを拒否する
それじゃあ受信者を自分のunixアカウントにしてしまえってことで、上に示したコードの「$email = 'hoge@localhost';」を「$email = '<自分のunixアカウント>@localhost';」にしたらうまく行った。
もう一回実行 $ perl email_send.pl ログを確認。「delivered to mailbox」と出力されているので送信された模様 $ less /var/log/mail.log ... Sep 12 23:09:36 macbook postfix/local[4590]: 72C62E4B50B: to=<your_account@localhost.localhost>, orig_to=<your_account@localhost>, relay=local, delay=0.02, delays=0.01/0.01/0/0, dsn=2.0.0, status=sent (delivered to mailbox) ... ログだけでなく、ちゃんと届いているか、メールボックスを確認 $ less /var/mail/<自分のunixアカウント名> ... Hello!!!!!!!!!! MIME::Lite test. ※ 実際はメールボックスを「tail -f」しておいてから送信したほうが分かり易いが、説明し易くするため「less」を使用した
届いた!
今回はテストなのでlocalhost宛に送信したが、gmail宛に送信する場合は、postfixの設定やらヘッダのFromやらをvalidな値にしないとgmail側で弾かれてしまうので注意。
参考:MacのマシンからPostfixでGmailに送信できるようにする - F.Ko-Jiの「一秒後は未来」
MacVim 入れた
it's all text を入れた。エディタはmacvim - Vim for the Mac - Google Project Hostingを使うことにする。
MacVimには「mvim」という名前で起動用のシェルスクリプトも入っているので、こいつを「/Applications/mvim」に置いて it's all text 用のエディタとしてパス指定してやればOK。
mac だとEmacsのキーバインドが快適に使えるので、ほとんど it's all text は使わないかもしれないけど。。