読者です 読者をやめる 読者になる 読者になる

postfixの勉強 #1

仕事上,ちょっと触る機会があったんだけど,
イマイチ仕組みがよく分からなかったので,勉強することにした.
ちなみにメールサーバは今まで一度も構築したことがない.

postfixというのは,メール転送用のサーバアプリケーションのこと.
言うまでもないことだけど,メールというのは
SMTPというプロトコル(ルール)に基づきながら
サーバ間で次々とバトンリレーすることで宛先まで転送される.
SMTPの規約としては以下.真面目に読んだことはないけど.

https://www.ietf.org/rfc/rfc5321.txt

とりあえず詳しい仕組みは後回しとして,インストールしてみる.
Dockerfileは以下の超最低限なものを用意.

from centos
RUN yum install -y postfix

ビルドしたイメージからコンテナを起動し,さっそく入ってみる.
/etc/配下にpostfixというディレクトリが新設されていた.
以下はその中身の確認と,プロセスのチェック.

# ll
total 148
-rw-r--r-- 1 root root 20876 Jun 10  2014 access
-rw-r--r-- 1 root root 11681 Jun 10  2014 canonical
-rw-r--r-- 1 root root  9904 Jun 10  2014 generic
-rw-r--r-- 1 root root 21545 Jun 10  2014 header_checks
-rw-r--r-- 1 root root 27176 Jun 10  2014 main.cf
-rw-r--r-- 1 root root  6105 Jun 10  2014 master.cf
-rw-r--r-- 1 root root  6816 Jun 10  2014 relocated
-rw-r--r-- 1 root root 12549 Jun 10  2014 transport
-rw-r--r-- 1 root root 12494 Jun 10  2014 virtual
# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
postfix    137  0.0  0.6  89092  6412 ?        S    06:50   0:00 pickup -l -t unix -u
postfix    138  0.0  0.6  89160  6416 ?        S    06:50   0:00 qmgr -l -t unix -u

とりあえず何かしらインストールされているようである.
論より証拠ということで,メールを送って,ログを覗いてみる.

# sendmail ■■■@gmail.com
From:oreore@oreore.com
To:■■■@gmail.com
Subject:Test Mail

This is test mail.

.
# journalctl | tail
Mar 18 07:51:44 ec4adde595ab postfix/pickup[252]: 0531460138FB: uid=0 from=<root>
Mar 18 07:51:44 ec4adde595ab postfix/cleanup[326]: 0531460138FB: message-id=<20170318075144.0531460138FB@ec4adde595ab.localdomain>
Mar 18 07:51:44 ec4adde595ab postfix/qmgr[253]: 0531460138FB: from=<root@ec4adde595ab.localdomain>, size=328, nrcpt=1 (queue active)
Mar 18 07:51:44 ec4adde595ab postfix/smtp[328]: connect to gmail-smtp-in.l.google.com[2404:6800:4008:c06::1a]:25: Network is unreachable
Mar 18 07:51:45 ec4adde595ab postfix/smtp[328]: 0531460138FB: to=<■■■@gmail.com>, relay=gmail-smtp-in.l.google.com[74.125.23.27]:25, delay=27, delays=26/0/0.44/0.53, dsn=2.0.0, status=sent (250 2.0.0 OK 1489823504 t10si10983459plh.196 - gsmtp)
Mar 18 07:51:45 ec4adde595ab postfix/qmgr[253]: 0531460138FB: removed

送信元のoreore@oreore.comは適当につけた存在しないメールアドレスで,
送信先の■■■@gmail.comは実在するメールアドレスとなる.

journaldのログを見る限り,内部的には
pickup→cleanup→qmgr→smtp→qmgr
というキャッチボールの末にメールが送られているようである.
Gmailの当該アカウントを確認したところ,確かにメールは送られていた.

それぞれのプロセスの意味は次回確認するとして,今回はここまで.

サバイバルファミリー 感想


「サバイバルファミリー」予告

時間が空いたので見に行ってきた.

ある日突然,大規模な停電が首都圏に襲い掛かる.
何日経っても状況は改善せず,原因が説明される様子もない.
食糧が徐々に枯渇し,治安も悪化する一方となっていた.
そんな中,とある4人家族は,東京での生活に見切りをつけ,
母方の祖父が暮らす鹿児島への移住を決意する.

停電とは言ったけれど,厳密に言えば
「電気」自体が世界から消失して,乾電池すら使えないという状況.
主人公達は本当にただの平凡な一家なので,
状況を解決したりするわけではなく,
ただひたすらに西へ西へと無力な逃避行を続けていく形となる.

設定自体はありきたりなので,
どこでオリジナリティを出すか……という点に期待したんだけど,
正直そういった要素は最後まで見えてこなかった.
コメディにしたいのかシリアスにしたいのか,
そのあたりの指針が監督の中でもブレてたんじゃないかなと.

小日向文世のダメ親父演技は流石.
CGやスタントは基本的に使っていないらしいので,
そういった事前知識つきで見ると,また違った感想を抱くかも.

駄作とは言わないけれど,
光るところがあったかというと疑問符がついてしまう,そんな作品.


ちなみにカツラは小日向の自前らしいです.

新幹線の途中下車

「JRは途中下車可能」
という話を聞いたので,実践してきた.
結論としては,あっけなく成功.

今回は「広島→東京」というルートで,新大阪で途中下車.
購入した切符としては,
・広島→東京23区の乗車券
・広島→新大阪の指定席特急券
・新大阪→東京の指定席特急券
の3つ.
ちなみに乗車券については往復割での購入.

懸念として,
JR西日本の自動改札機は,一部,途中下車に対応していない」
という情報がネット上に転がっていたけれど,
駅員に一応聞いてみたら「大丈夫ですよ」とお墨付きを受領.
改札を通したら,あっさり通過出来て,乗車券も戻ってきた.
新大阪駅以外だとどうなるか不明.

新大阪から再乗車するときは,その乗車券を使えばOK,という寸法.

以下はネットで調べていたときに得た追加情報.
どこまで正しいかは不明.

・片道100キロ未満の乗車券の場合,途中下車は不可能
・自動改札を使わずに途中下車した場合,再乗車時に自動改札は使えない
・途中下車は複数回可能だけど,逆走は不可.
 例えば俺のケースだと,「新大阪で再乗車後に新神戸で再下車」とかはNG.

長距離の電車旅行をするときは,この戦法を使えば捗るかもね.

Bリーグの試合を観戦してきた

仕事がようやく一区切りついたので,北海道に旅行してきました.
そのついでとして観戦してきたので,その感想.

皆さんは「B.League(Bリーグ)」ってご存知だろうか.
昨年の秋くらいに,フジテレビが隙あらば宣伝していたので
多少なりとも目にした人はいると思う.

Bリーグとは,日本におけるバスケットボールのプロリーグ.
以前より日本では2つのリーグが並立して睨み合っていたんだけど,
国際バスケ連盟から
「お前ら,いい加減1つにまとまらんと連盟から追い出すぞ」
と脅されて,渋々結託……という,割と恥ずかしい経緯で誕生.

で,どうせなら一度見に行こうと思い,今回の話に至る.
ちなみに,バスケの試合を生で見るのはリーグ問わず初めて.


対象としたのは「レバンガ北海道 VS 滋賀レイクスターズ」.
先述のとおり,あくまで北海道旅行ありきだったので,
特にこの2チームに思い入れがあるというわけではない.

チケットはインターネットで購入.
受取は紙 or 電子(アプリ)の二択だったので,今回は電子を選択.
受付でそのアプリのチケット画面を提示すると,
入場証明の電子スタンプを貰える,という方式.

会場は「北海きたえーる」という体育館.
札幌駅から地下鉄1本で行ける上に駅から直通路があるので,
アクセスはかなり良かった.
会場内は,まあ,かなりこじんまりしていた印象で,
スタジアムグルメも最低限という感じ.
そもそも目まぐるしく攻守が入れ替わる競技なので,
「何かを食べながら/飲みながら」という観戦には向いてない.

座席は,大ハズレだった.
チケット価格・座席図 - レバンガ北海道
上ページ内の図で言うところの「BCブロック」に座っていたんだけど,
あらゆるパフォーマンスが,BE~BGブロック側を向いて行われるので,
なんというか「蚊帳の外」という気分.
たぶん,バスケの観戦ではこういうの常識なんだろうし,
ちゃんと調査しなかった俺が悪いんだけど.

試合前には,オフェンス/ディフェンスコールのレクチャタイム.
全く無知なので,この辺はありがたいと思った.
ハーフタイム中の参加型のイベントといい,
運営側の「皆で盛り上がろう」という気概は
十分に感じた.
まあ,盛り上がっていたかといわれると,正直微妙だけど,
こういうのは地道に定着させてナンボなので,今は仕方ないと思う.

試合は北海道が勝利.
内容は,まあ,こんなもんかぁという感じ.
追いかける滋賀の攻撃が素人目に見ても強引になっていき,
結果傷口を広げて自滅,という形だった.
両チームとも下位だし,1試合で全てを知ったつもりでは毛頭ないけど,
「すげぇ!プロすげぇ!!」
というプレーにはあまり無かったかなぁ.

まとめると,現状では入場料金に見合う内容ではないと思う.
当面,見る側は「お布施」「先行投資」と割り切るくらいの覚悟が必要かなぁ.
まあ,課題は大量にあるとはいえ,
冬季スポーツ不足な日本のスポーツ観戦事情を考えると,
今後も定着に向けて頑張って欲しいとは思う.


なお,帰りは新千歳空港で缶詰になりかけました.辛うじてセーフ.

君の名は。 感想

www.youtube.com
近場に映画館が無くなって以来,映画はご無沙汰状態だったけれど,
仕事の都合で丸一日暇という状況が発生したので,行ってみた.

高校生の三葉と瀧は,
ある日突然,お互いの意識が入れ替わってしまうようになる.
不定期に訪れるその現象を,最初は「夢」と思っていた二人だが,
現実であると認識してからは,お互いの生活を守るため,
スマホに入れ替わり中の行動を記録するようになる.

こういう「入れ替わり」ネタ自体は,
色んな作品で使い古されているけれど,
その多くは知り合い同士での入れ替わりがメインであり,
こういう,ボーイミーツガールの手段として
使われるのは珍しいと思う.

ストーリーは,
「この設定でやってみたかったことを
 全部詰め込んだ上で,頑張って2時間に整形しました」
という感じで,
三葉と父親の確執の顛末など,いくつか消化不良なところもある.
まあ,ストーリーが破たんするレベルではないので,
「こまけぇことは良いんだよ!」
の精神で見るのが,正しいんだろうなぁと思う.

全体的に絵はキレイだったし,良作だとは思う.
欲を言えば,前半のドタバタコメディな雰囲気のパートを
もう少し長めにとって欲しかったかな.


そういえば劇場でアニメ見たの,小学生の頃のドラゴンボール以来だ.

SQLアンチパターン 感想

SQLアンチパターン

SQLアンチパターン

今やってる仕事でSQL(正確にはPL/SQL)を扱っており,
その絡みで購入した次第.読む時間中々作れず2か月かかって読了.

SQLとはご存知のとおり,関係データベースを操作するときに使用する言語.
どんな人でも,大なり小なり触れたことはあるんじゃないかな.

そして,おそらくほとんどの人が,
「あれ?目的はシンプルなのに,何故こんなにクエリが複雑になるんだろう?」
と苦労した経験があると思う.
そういうときは,まず,
この本に書かれているような「アンチパターン」に陥っていることを
疑うべき.そして,早急に対処すべき.

1点補足すると,この本における「SQL」の多くは
DDL(データ定義言語)」のことだと思ってくれて良いと思う.
即ち,テーブル設計がグダグダだと,
それを扱う人が,上述のような地獄を見ることになるぞ,
というのが本書が訴えたいこと.

その実例として様々な種類のアンチパターンを紹介しているけれど,
ザックリ集約すると,以下の3パターンに分類できると思う.

・中途半端な正規化
・EAV(Entity-Attribute-Value)
・性能に無頓着な設計

正規化とは,乱暴に表現するならば,
「テーブルを可能な限り分割する」行為を指す.
オブジェクト指向設計における単一責任の原則と,発想は似ているかな.
これが出来ていないと,複数テーブルを組み合わせて情報を取得する際に
ものすごく苦労することになるし,仕様変更にも弱くなる.

EAVとは,書籍内の表現を借りるならば
「属性を行に格納すること」
となる.
これを導入すると,テーブル定義を変更することなく
様々な情報をRDBMSに格納できるようになるので,一見便利に思えるんだけど,
やはり様々な不具合の温床になるので,避けた方が良い.

RDBMSと性能は,切っても切り離せない問題.
簡単には解決できない上に,性能を追求しようとするあまりに
他のアンチパターンに陥ってしまうケースも間々あるので,銀の弾丸は存在しない.
この本でもそのあたりは心得ていて,
性能に関する主張は「絶対にNGなインデックスの張り方」など,
一般論に留まっている感じ.
逆に言うと,ここに書かれていることすら留意できていないと論外,ということ.

この類の本の感想で毎回言っている気がするけれど,
書いてある内容自体は
「いや,そりゃそうでしょ」
というものが多い.
それでも,こういう本が売れるのは,すなわち,
それすら守れていない残念な自称エンジニアが世の中には沢山存在し,
その人たちの残念な設計のせいで,他のメンバが苦しめられているからに他ならない.

SQLに関わる人は,こういうアンチパターンに陥らぬよう,
また他者が陥りそうなときは全力で止められるような,
そんなエンジニアを目指してほしいと思う.


現在進行形で前任のクソ設計に苦しめられているので,今回若干恨み節増量.

2016年の広島東洋カープの自由契約選手

 先日NPBが発表.カープからは9名.
今年は引退選手が多かったこともあり,
いわゆる「クビ」という意味の選手は少なめ.
自由契約選手 | 2016年度公示 | NPB.jp 日本野球機構

(1) 黒田
暗黒期からエースとしてチームを支えた速球派右腕.
MLBに挑戦し,そのまま海外で選手人生を全うするかと思いきや,
2014年オフに,まさかの電撃復帰.
今年の夏場以降は不安定な内容が続くも
通算200勝および年間10勝を達成し,華々しい引退となった.
背番号15は永久欠番となることが発表されている.

(2) 西原
カープ名物の「社会人出身の即戦力外投手」の系譜,2016年バージョン.
もう,このチームは社会人投手とらなくて良いと思う.

(3) 久本
中日を戦力外となったことでカープに移籍したベテラン左腕.
先発にリリーフにと,ポジション問わずフル回転してくれた.
肘の手術からの復帰登板で炎上し,結局それが1軍ラスト登板に.
来年からは古巣中日で打撃投手とのこと.

(4) デラバー
シーズン途中で加入も,そのまま退団.
いかんせん,ジョンソン・ヘーゲンズ・ジャクソンの3枚看板が鉄壁すぎた.
消化試合では結果を出したので,どこかが保険として獲得するかも.

(5) 倉
カープの正捕手は石原か?倉か?」
そんな不毛な論争も,今となっては懐かしい話.
2軍コーチ兼任ということもあり,去年あたりからはほとんど1軍で姿を見られず.
引退試合が雨天コールドとなったため,記録上,今年は出場無し.
来年からはコーチ専任とのこと.引き続きよろしくお願いします.

(6) ルナ
エルドレッド離脱時期などの苦しい時期の主軸を担ってくれたものの,
全面的な信頼は勝ち取れず.
来季契約を賭けて挑んだCSも故障で即リタイアし,退団.

(7) 中東
捕手&外野手という,異色の特性を持つ選手.
新人時は怪我で開幕捕手を逃したり,オールスターで骨折したりと,
イマイチ「持ってない」選手ではあった.
スーパーサブとして定着するも,徐々に出番が減少し,ついに戦力外に.

(8) プライディ
怪我がちなエルドレッドの保険として獲得した外野手.
外国人枠の壁やら本人の成績不振やら色々あり,結局出番なく退団.

(9) 廣瀬
強肩が売りの外野手.
15打席連続出塁なんて記録を樹立をしたりもしたが,
個人的には永遠の1.5軍というイメージ.良くも悪くも泥臭い選手だった.
ちなみにカープ選手でブログを最初に開設したのは多分この人.