今日も元気にテクニカル

技術情報書きたいけど本ブログに書きたくないからこんな名前になりました。

postfixでメール送信

postfixは去年の12月17日に設定に挑戦したのだが上手く動かなかった。特に使う予定もなかったので分からないまま放置していたが、今回自鯖からメールを送信したかったため、再挑戦してみた。

去年も今回も参考にしたのはこのサイト。

メールサーバー構築(Postfix+Dovecot) - Fedoraで自宅サーバー構築
OP25B(Outbound Port 25 Blocking)対策 - Fedoraで自宅サーバー構築

最初のページから順番に設定を見直すも、間違っているところが分からない…。ので、マニュアルから外れて試行錯誤した結果、一つ目の間違いが分かった。

1.プロバイダのSMTPアドレスが間違っていた。

僕はbbexciteを利用しているので、relayhostに設定するSMTPアドレスは

smtp.star.bbexcite.jp

これを

smtp.star.bbexcite.co.jp

としていたため、正しくメールリレーされていなかったのだ…。がっかりした所で改めてメールを送って成功!しなかった。

553 sorry, that domain isn't in my list of allowed rcpthosts 

メーラーデーモンからこんなメッセージ付きのエラーメール着信。どうやらSMTP認証ができていない時に出るらしいので、IDやパスワードを見直したが特に間違っている所もなし。ここでまたマニュアルから外れて試行錯誤した結果、間違いが分かりました。

2.そもそもSMTP認証が有効になっていなかった。

OP25B対策(Outbound Port 25 Blocking対策)

特に最初の「smtp_sasl_auth_enable = yes」は、自分がサーバとしてSMTP-AUTHをサポートするときの「smtpd_sasl_auth_enable = yes」と勘違いしやすいが全く別なので必ず設定が必要である。

smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions =
    permit_auth_destination,
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination

<strong>smtp_sasl_auth_enable = yes</strong>
smtp_sasl_password_maps = hash:/etc/postfix/authinfo
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = LOGIN, CRAM-MD5, PLAIN

いや、分かりづれーから!
てことで、太字の部分を追加した結果、無事gmailにメールを送れました。

前回も今回も、酒飲みながらやったのがまずかったかな。うん。

日本語URLを含む「こえ部」のタグページを解析す

こえ部(http://koebu.com)で投稿数が2以上のお題を抽出したいと考えた。

最初はこんな感じでやろうとしたが…

require &#39;mechanize&#39;

url = &#39;http://koebu.com/topic/tag/男声向け&#39;

agent = WWW::Mechanize.new
page = agent.get(url)
puts page.body.tosjis

「指定したお題が見つかりません」と言われる。どうやら

url = 'http://koebu.com/topic/tag/男声向け'

が上手く認識できてないみたいで以下のようにURLエンコードしてもダメ。

url = 'http://koebu.com/topic/tag/%E7%94%B7%E5%A3%B0%E5%90%91%E3%81%91'

よってopen-urlを使った。(原因を問い詰めないのが俺流)

require &#39;open-uri&#39;
require &#39;hpricot&#39;

maxpagenum = 3
limitpost = 2

1.upto(maxpagenum) do |num|
  doc = Hpricot(open("http://koebu.com/topic/tag/%E7%94%B7%E5%A3%B0%E5%90%91%E3%81%91&page=" + num.to_s))
  (doc/%Q[li.unitTi]).each do |elem|
    if elem.inner_text.slice(%r[\((\d+)\)$], 1).to_i >= limitpost
      title = elem.to_html.slice(%r[<a href=".*?">(.*)</a>], 1)
      title = elem.inner_text
      url = "http://koebu.com/" + elem.to_html.slice(%r[<a href="(.*?)" title="], 1)
      puts title
      puts url
    end
  end
end

これでよし。

Ubuntu8.10でemacsを使ってみる(アンチエイリアスフォント)

vimでの日本語入力<->移動モードの切りかえが面倒くさすぎて、emacsを使おうとしてみました。Ubuntu8.10にはデフォルトでインストールされていないので、Synapticから"emacs22"とその付属パッケージをインストール→起動。しかしフォントが汚い!どうやらemacs23以降じゃないとアンチエイリアスがかからないらしい。Ubuntu8.10ではSynapticから以下のパッケージをインストールすることでemacs23が使えるようになる。

"emacs"でemacs-snapshotが起動するようにエイリアスを変更

alias emacs =&#39;emacs-snapshot-gtk&#39;

お次はフォントの設定。

/~.emacsというファイルを作成し、以下のように記述

(when window-system
(progn
(set-default-font "VL Gothic-10")
(set-fontset-font (frame-parameter nil &#39;font)
&#39;japanese-jisx0208
&#39;("VL ゴシック" . "unicode-bmp"))))

フォント名の横の数字はフォントサイズ(ここでは10)。使えるフォント一覧はfc-listコマンドで調べられる。

Ubuntu 7.10 でアンチエイリアスの効いた Emacs を使う - 「侘び,寂び,萌え」 ”wabi , sabi , moe”
http://hdotunclipped.blog99.fc2.com/blog-entry-192.html
ゆたりんブログ: emacs23 によるフォントのアンチエイリアス表示 -実践編-
ubulog: Emacsでアンチエイリアス
Ubuntu 8.10からIPAモナーフォントがデフォルトではなくなります - いくやの斬鉄日記

2008/12/26 Ubuntu8.10いじりメモ

Skypeを導入する

公式ページからダウンロード→インストールで完了。ちなみにダブルクリックでもインストールできるが、dpkg -i [パッケージ名]でインストールするとLinuxぽいですね。
で、Bluetoothヘッドセットとの接続ですが苦労すると思いきや、Ubuntu付属のBluetoothアプレットで簡単に接続できた。ここらへんマジ凄い。まぁSkypeなんてモロ「Linuxな人々が使ってそうなツール」だから対応が手厚いのかもしれませんが。

KDEを入れてみる

Amarokのデザインが格好良かったので、KDEをインストールして使ってみた。インストールはSynapticからKDEを選択して付属品も一緒に導入。使い方は自動ログインをオフにしてPC再起動→ログイン画面でログインに使用するセッションにKDEを選択。おお!見栄え代わった!…と喜んだのはつかの間、なんか不安定?最初かっこいいと思っていたデザインも、なんだかしつこくていけ好かない感じだなのでw Gnomeに戻してしまった。

K3bでDVDを焼いてみる

ウィザードにしたがってあっさり焼けました。書く事なし。標準でISO焼けるのはWindowsと違って便利だなぁ。思えばWinXPって7年前のOSなんだよね…。

ssh-serverを動かしてみる

Ubuntuではデフォルトではsshクライアントしか動いていないのでssh-serverを導入する。

sudo apt-get install openssh-server

WineでWindowsアプリケーションを動かしてみる。

LinuxWindowsアプリを動かせる"Wine"というソフトがあるので導入。

sudo apt-get install wine

MediaCoderっていう動画変換ソフトがWineでの動作を推奨しているので試してみる。

  1. 公式からEXEをダウンロード
  2. ダウンロードしたEXEを右クリックして「Wine Windows Program Loaderで開く」を選択。
  3. いつものWindowsアプリをインストールする画面が出てくるので、「次へ」を選択してインストール終了。

ちょwww簡単過ぎなんだけどwww
フォントとかは野暮ったいけど、間違いなくWindowsアプリが動いている。これ、結構感動した。早速他のアプリも試してみようと思う。

追記。実はウィンドウの起動まで上手くいっただけで、変換しようとすると速攻プロセスが落ちて使えませんでした。まぁMediaCoder自体が不安定らしいし、AV系ソフトはエミュレーターで上手く動かないことが多いのでしょうがないかな。

Sleipnir2をWINEで動かしてみる。

全然ダメ。インストール画面が正しく表示されずダメな雰囲気がぷんぷん。強引にインストールしてもツールバーをいじるだけで落ちる。ちょっと使えないなぁ。

Opera for Linuxに再挑戦

前エントリの通り、OperaKonquerorが使えなかったのでFirefoxに戻ったのだがやっぱりFirefoxが遅すぎるのでOpera for Linuxに関する情報を再収集。するとこんなエントリが。

http://d.hatena.ne.jp/bend_tail/20080614/1213450200

どうやらフォント設定を変更することで正常に日本語表示ができるようになるらしい。ってことで早速やってみたところ完璧に日本語表示できるようになりました。これいいね。

日本語表示できるようになったところでちょちょいとネットサーフィンするとFirefoxより全然早い。FirefoxIPv6設定を切ってもその他諸々で遅いのかなぁ。とにかくOperaは爆速。Sleipnir2 on Windowsに迫るくらい。ということで、学生時代にOpera5.5を使って以来、メインブラウザがOperaになるかも。

にしてもやっぱダブルブラウザ体制はいいわ。1ブラウザだとクッキー切り替えとか面倒くさいんだよね。

いろいろなエディタをWINEで動かしてみる。

geditが普段使いのメモ帳として使いにくい(コード書くにはいいかもしれないけど)ので、Wine経由でWindowsのエディタを使ってみる。LinuxってEmacsVim使いが多すぎて、「メモ帳の延長線上にあるエディタ」に関してはWindowsに比べて劣る気がするなぁ。

サクラエディタ

愛用しているサクラエディタはWineで動くかな?インストール画面はSleipnirと同じように表示されなかったが、起動しちゃえばちゃんと動く。定義ファイルもWindowsのが使えるしこりゃサクラエディタで決まりだね、と思いきや上下左右のキーが効かないという致命的な欠陥が。ネットでは正常に使えてる人もいるっぽいので環境依存かなぁ…。残念。

Terapad

シンプルで有名なTerapad。とりあえずインストールして不具合なく使えました。
…が、今更Terapadなんて嫌だなぁ(失礼)と思いいろんな機能を試していると、2バイト文字の置換が出来ないという問題を発見!うん、こりゃTerapadじゃダメだから(嬉)違うエディタを探そう!

サクラエディタよりははるかに使えます。

notepad++

各所でWineでの動作確認があがっているのがこれ。

Electronic Genome - Linuxのwineで動作するWindows用テキストエディタ動作比較
Notepad++ Home

なんせMediaCoderと一緒で公式にWineを使ったLinuxへのインストール手法が書いてあるくらいだからなぁ。とはいえ、僕はこのエディタを使ったことがない。僕の目的は「Windowsで使い慣れたエディタをLinuxで使う」ことであるので、例えこのエディタがLinux上で完璧に動作したとしても、僕に取っての利点はない。もちろん、これを機会にサクラエディタからnotepad++に乗り換える、という選択肢もあるがそれは別のはなしである。

gvim

郷に入れば郷に従え、ってことでvimを再検討。実はgvimは2バイト記号(■、△)が1バイトのスペースしか確保せず文字が重なるという不具合があったのだが、解消方法があるらしい。

ただのメモ

set ambiwidth=doubleを$HOME/.vimrcにでも書いておく。もしかしたら、いわゆる『2バイト半角』でおかしくなるかも(未だに使ってる人がいるのか知らないけど)。

これで正しくなりました。

アプリケーションメニューが開かない

不要になったSleipnir2をアプリケーションメニューから削除するため、アプリケーション→右クリック→メニューの編集より削除したところ、アプリケーションメニューが平かなくなりました。この解決法は以下のページにあり。

Ubuntu日本語フォーラム / 【済】アプリケーションメニューが開かない

Wineのバグ?で./config/menu/application.menuが空になりこのような症状が発生するみたいです。とはいえ心配無用。このファイルを削除すれば新たにapplication.menuファイルが作成されます。にしても、なんでも公式で解決するUbuntuっていいね。

メールサーバを立ててみる

Webサーバ、SambaFTPサーバときたらメールサーバを構築しよう。

メールサーバー構築(Postfix+Dovecot) - CentOSで自宅サーバー構築
PostfixによるSMTPサーバの構築(CentOS標準版編)

設定については以上の2サイトが分かりやすすぎるのでここでは気になった所だけメモ。

  • postfixをアンインストールすると/etc/postfix/main.cf.rpmsaveに設定ファイルのバックアップが作成されるので、再設定が簡単。
  • sendmail_path = /usr/sbin/sendmail.postfixsendmailpostfix用互換プログラムをしっかり確認して設定すること。

これで内部<->内部へは簡単にメールが送れる。問題は外に出るとき。

安斎先生、外に出たいです…。

スパムメールが横行するこのご時世、どこの馬の骨とも分からんサーバには簡単にメールを送らせない、ということで各プロバイダはOP25B対策を実施中。僕はプロバイダにBBExciteを使っているのだが、BBExciteではOP25Bのために別料金でメールを契約しないといけないらしい。

��3271 BB.exciteについて - Web Patio - Fedoraで自宅サーバー構築

…といろいろ手順がややこしくなってきたのでまた今度。

2008/12/18 Ubuntu8.10いじりメモ

しばらく更新していなかったがサボっていた訳ではない。普段使いのOSをWindowsXPからUbuntu8.10に変更しいろいろな機能を使用している。Ubuntu-Desktopタグがついたエントリでは、UbuntuGUI操作メモを記載していく事にする。今のところ「やりたい」と思ったことはググれば必ず実現で来ている状況なので、内容の薄いメモになる。

デュアルブート-WindowsXPインストール済み領域の再パーティショニング

WindowsXPインストール済み領域に空きがあったので、20GBほど切り出してUbuntu8.10のインストールを実施した。使用したソフトはGParted Live CDというもの。これはLiveCDから簡易Linuxを起動させ、その上でパーティション変更を行うツールである。OSオンライン状態からパーティション操作できるEASEUS Partition Managerというソフトもあるが、安定性はこちらの方が上だろう。

USBオーディオを有効にするためにオンボードサウンドをオフ

Ubuntuをインストールして最初に困ったのは、FirefoxやAmarokで音が鳴らない事である。Rhythmboxや動画プレイヤーでは問題ないことより、デフォルトでUbuntuにインストールされていないアプリで問題がある様子。これは結局BIOSオンボードサウンドをOFFにすることで解決した。オンボードサウンドが見えなくなったところで、USBオーディオがデフォルトのオーディオデバイスとして認識されたようである。

NFTS領域をマウント

Windowsで使用していたNTFS領域を自動的にマウントするようにした。Ubuntuでは接続済みNTFS領域を「ディスク」として認識しダブルクリックでマウントしてくれるので、マウント状態での/etc/mtabをパクって/etc/fstabに以下のように記載した。

/dev/sda2	/home/user01/D	ntfs-3g rw,nosuid,nodev,allow_other,blksize=4096 0 0

実は/etc/mtabではfuseblkを使っていたのだが上手くいかず、ntfs-3gにすることで成功した。ここらへんの理論はよく分からない。

ネットワーク(Firefox)高速化

普段使いで一番困ったのはFirefoxがとにかく遅すぎること。これはFirefoxUbuntuIPv6設定がダブルで有効になっているため名前解決に時間かかるから。IPv6を切り、固定IP+DNSサーバも指定するともうちょい早くなる。

ubuntu amd64 で Firefox 3 のスクロールが遅い (Gmail, Twitter, Fastladder 編) - Assemblr
http://roma56.exblog.jp/8742272/
http://blog.goo.ne.jp/leaurouge/e/cdfd6b4094ceb82de069187a21919ab6
ネットワークデバイスへのアドレス設定(DHCPクライアント、DNS設定含む) (setting_netif)
Ubuntu日本語フォーラム / IPアドレスを固定したい

ただ、これらの設定をしてもWindows版より全然遅い。

Firefox以外のブラウザを試す。Opera

試しにシェア2位、3位のOperaKonquerorを使ってみたがあまりの使えなさに愕然。まず日本語の表示に難がある時点でダメだろ…。残念ながらLinuxのブラウザはFirefox一択らしい。これじゃあんまりなので後日WINEを使ってSleipnir2を動かしてみる異にする。

Synergy設定(サーバ)

設定ファイルを作成後、それを呼び出すような設定をスタートアップスクリプトに仕込む。Linux側のIPアドレスを固定にして、WindowsでもLinuxでも同じように接続できるように設定。ここらへんは過去のSynergyに関するエントリを参照。クライアントはIPベースでアクセスするからサーバ側のOSは問わない。いいかんじ。

Amarok日本語化+MP3タグをUnicode

AmarokはKDEアプリなので、「kde-i18n-ja」Synapticからインストールし日本語化する必要がある。
またWindowsエンコードしたMP3はShift-JISでID3タグが記録されるが、Amarokではこれを読み込めないのでUnicode化する必要がある。これはEasyTagというツールを使用する。ポイントは

  • ID3v2タグをID3v2.3に設定。
  • Unicodeを選択。
  • 「ID3v1のタグは書き込まない」設定
  • ID3タグのバージョンをv2.4にしては×

http://www.k5.dion.ne.jp/~r-f/sicklylife/memo/using_ubuntu_804/music.html
2007-11-04 - 寒らふの光と影(Saburahu’s Diary) -3rd Edition-
Windowsやめました→Ubuntu8.10へ - PLAYNOTE

実はWindowsでできるツールも探したのですが、EasyTAGが一番使いやすそうだったのでこれにしました。こういう裏側を設定する系のツールが充実してるのがいいですね。

vimSJISを読み込む

vimrcに以下の設定を追加。

:set fenc=utf-8
:set fencs=iso-2022-jp,euc-jp,cp932,utf-8
:set enc=utf-8

他に設定方法もWebで見つかったけど上手くいかなかった。どうやらバージョンによってやり方が違うみたい。
で、意気揚々とTodoリストを読み込んだはいいけど2バイト記号文字(■、★など)を上手く扱えず文字がずれて見える…。どうやら2バイト記号を1バイト換算で描画してしまってるみたい。フォント調整でなんとかなるけど綺麗じゃないなぁ‥・。

第34回 テキストエディタの活用(3):vi/vim その1:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

今後のTodo

2009年Apple StoreのLucky Bag(福袋)の入荷有無を判定するスクリプト

require &#39;mechanize&#39;
require &#39;kconv&#39;

url = &#39;http://store.apple.com/jp/browse/home/specialdeals/luckybag&#39;

agent = WWW::Mechanize.new
page = agent.get(url)

while /在庫切れ/ =~ page.body.tosjis
  puts Time.now.to_s + " 在庫切れです"
  sleep 60
  agent = WWW::Mechanize.new
  page = agent.get(url)
end

puts "入荷しました!"

exit

ちなみにこのスクリプトには致命的な欠陥があり、このままコピペしても正しく判定がされないようになっている。どこが間違いかは親切なブックマーカーが指摘してくれるかもしれない。

プログラミング初心者のid:takerunba氏もボットを作ったらしいが、ちょっとプログラムの知識があればPCの前に張り付いてブラウザの更新ボタン連打せずともAppleの福袋を買えたりするわけだ。元々のIT知識レベルにもよるが、はてな記法を使ってはてダをかけるくらい(世間から見ると)レベルが高い人となら、こんなプログラムは小説1冊読み終わるくらいの時間で書けると思う。