狠狠撸

狠狠撸Share a Scribd company logo
あひるに焼かれた話と
今後のおーぷん万葉について
2016/9/3 東海道らぐオフ@横浜
はしもとまさひこ
今日は初の方もいらっしゃるので自己紹介
●
東海道らぐ関東の案内人(元名古屋案内人)
– 東海道らぐ5周年!!!
– サーバー管理人…からは脱却する予定 ←今日のお題
●
ちびぎーこ保護者会(別名:日本openSUSEユーザ会)の人
– こちらも最近は???^^;;;
●
最近は日本語入力についていろいろ勉強中。
– 今日のお題その2
近況報告(1)
●
引っ越しました!!!
– 引っ越し前:
● 2LDK 約45平米
●
2階で目の前は家!
● 最寄り駅 徒歩25分
● 家賃 75,000円
– 引越し後:
● 3DK 約50平米
● 4階で見晴らし良好!(但しエレベータ無し)
●
最寄り駅 徒歩8分
● 家賃 80,000円
もちろんめちゃくちゃ楽!!
引越しコストが高かったけどorz
近況報告(2)
● 東海道らぐサーバ(Web & ML)も引っ越しました!!
– 引越し前:
● Ubuntu 12.04 LTS(←インストール時に間違えたんじゃいw)
● Apache 2.2
● Mailman
– 引越し後:
● Ubuntu 16.04 LTS (←これで5年は使える!!w)
● Apache 2.4
● Mailman
そもそも自分の引っ越しで手一杯なのに
サーバーまで引っ越しとか
きついっちゅーねん!!!
全ての元凶 ↓
あ、あひる焼き。
名前: あひる(焼き)
職業: (たぶん)大学生
生息地: 名古屋の某大学
わからない方は
「あひる焼き」でググッていただけたら。。。
事の発端は…
だがしかし、そもそもOSはそろそろEOLを迎える
→ どうせならOSごと再インストールだな
→ あひる「Let’s Encryptまだ??」と催促
→ 「ちょっと待て!」と応戦(すること約半年w)
→ …あれこれやるうちに8月にやることにした
→ が、その8月に自分自身の引っ越しとなったw
→ 大炎上!(^^)!
東海道らぐサーバーに
Let’s Encryptを導入しましょう!!!
今回の引越し作業でハマったこと
● mailmanがDebian/Ubuntu系でUTF-8対応
→ 文字化けのせいでメールが送信できない!??
● Apache2.4系になった
→ 「Require all granted」を使いましょう!!
→ mailman付属のapache.confの置き場所が変更?
●
その他
– あひると最後の攻防(謎)
1. mailman文字化け対応(1)
mailman(MLサーバー)からメールを送信しようとすると
下記のログを残して落ちてしまう…
Aug 21 16:10:07 2016 (13405) Uncaught runner exception: 'utf8' codec can't decode byte 0xc5 in position 0: invalid
continuation byte
Aug 21 16:10:07 2016 (13405) Traceback (most recent call last):
File "/var/lib/mailman/Mailman/Queue/Runner.py", line 119, in _oneloop
self._onefile(msg, msgdata)
File "/var/lib/mailman/Mailman/Queue/Runner.py", line 190, in _onefile
keepqueued = self._dispose(mlist, msg, msgdata)
File "/var/lib/mailman/Mailman/Queue/IncomingRunner.py", line 130, in _dispose
more = self._dopipeline(mlist, msg, msgdata, pipeline)
File "/var/lib/mailman/Mailman/Queue/IncomingRunner.py", line 153, in _dopipeline
sys.modules[modname].process(mlist, msg, msgdata)
File "/var/lib/mailman/Mailman/Handlers/CookHeaders.py", line 226, in process
i18ndesc = uheader(mlist, mlist.description, 'Reply-To')
File "/var/lib/mailman/Mailman/Handlers/CookHeaders.py", line 68, in uheader
return Header(s, charset, maxlinelen, header_name, continuation_ws)
File "/usr/lib/python2.7/email/header.py", line 183, in __init__
self.append(s, charset, errors)
File "/usr/lib/python2.7/email/header.py", line 267, in append
ustr = unicode(s, incodec, errors)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xc5 in position 0: invalid continuation byte
Aug 21 16:10:07 2016 (13405) SHUNTING: 1471763406.166946+da420da292e58a12f0210c1f63f729395700e571
落ちた???
1. mailman文字化け対応(2)
肝はこれですね↓
UnicodeDecodeError: 'utf8' codec can't decode
→どうやらmailmanのWeb設定画面で
 文字化けが発生していることが原因らしい。。
(え、Web画面の文字化けが原因でメール送信できないの??)
– LILOの西山さんのブログを参考に
Web設定画面の文字化けを修正しました。
http://blog.n-z.jp/blog/2016-04-30-mailman-error.html
(ありがとうございました?!!!)
2. Apache2.2→2.4対応 (1)
Apacheのアクセス制限の書式が変わった
知ってる方も多いと思うのでここは簡単に。
(詳しくはググってください^^)
– Apache2.2:
Order allow,deny
Allow from all
 ↓
– Apache2.4:
Require all granted
LPICでも出題される基本的な箇所
…が、仕様変更したのね。。。
2. Apache2.2→2.4対応 (2)
mailman管理画面にアクセスしようとすると
「404 Not found」が返ってくる (そこはせめて「500」だろ…orz)
※このせいでmailmanのWeb設定画面が表示できなかった
→どうやらアクセスしようとするとApacheが落ちてる…
mailmanの付属ファイル = apache.confの
置き場所が変わった!!!
Ubuntu 12.04 : /etc/apache2/site-available
→ Ubuntu 16.04 : /etc/apache2/conf-available
以前はsite-availableに置いて普通に動いてたけど
そこに置くとApacheが落ちるようになったとか
…豪快ですねw(てか気づかないよ?!!)
原因
というわけで東海道らぐ鯖の今後。
● Let’s Encryptに対応
→SSLがオレオレ証明書ではなくなりました!
→東海道らぐWebページが常時SSLに!
あひるさんが一昨日対応済み
●
今後はおいらと、しまださんと、あひるさんで
サーバーメンテを行います。。。(たぶん)
めでたしめでたし。
…というわけで、本日の本题です。(ぉ
おーぷん万葉の今後
(をざっくりと。)
2016/9/3 東海道らぐオフ@横浜
はしもとまさひこ
7月末のOSC京都にて…
かな漢字変換「Genji」のrc phase1をリリース!
…が、今回は「まず動くこと」が第一だったので
本当に動くくらいの機能しかなかったw
そもそも変換のための辞書ファイルを
行きの新幹線で作成してる始末だったので
まともな変換ができるわけなかったorz
「Genji rc phase1」の実力
●
できたこと
– 当然「わたしのなまえはなかのです」は変換可能
– 「あひるやき」も変換できた
●
できなかったこと
– 「きょうと」が変換できない ←致命的!!!
– 「おおさか」が「大坂」になってしまう
ところでどんな変換アルゴリズムだったのか?
純粋に「文節区切りの単語n-gram」です
と話しただけでひよわさんは理解できたっぽい(さすがだ
例: 「私の名前は中野です」
→ これを単語区切りにするとこうなります
「私」「の」「名前」「は」「中野」「です」
→ で、単語n-gramなのでこうなります
「私の」「の名前」「名前は」「は中野」「中野です」
→ ただし、文節でデータを区切るので
「私の」「名前は」「中野です」
この単位で辞書データに登録されていました
「私」が来た場合に、「の」はどれくらいの確率で来るのか?
というのが辞書データに載っています
Genji rc phase1の全体像
● 辞書作成ツールを作る → 「Kasuga」 / 「Fujitsubo」
– 形態素解析器: mecab + naist-jdic
●
変換ライブラリ作成
– ローマ字→ひらがな変換 : 「aoi」
– ひらがな→漢字変換 : 「murasaki」
●
辞書検索ライブラリ
– オープンソースライブラリの「ux」を使用
1. 辞書作成
「Kasuga」
– Mecab & naist-jdic を利用して形態素解析を行い
文節単位に区切って、データをSQLiteで保存
– この際に単語n-gramの確率も保存します
「Fujitsubo」
– SQLiteで保存されたデータをGenjiで使えるように変換
– OSSライブラリuxを利用して辞書を作成します
2. 変換処理
「aoi」
– ローマ字→ひらがな変換のライブラリ
– 独自のTrie実装!(前に東海道と小江戸オフそれぞれで話したかも)
「murasaki」
– ひらがな→かな漢字変換のライブラリ
– uxで保存されたデータを取り出して変換する(わりとえぐい実装orz
OSC京都にいなかった人のために
ささっと実演。
(おそらく時間ないでしょうし)
Genjiの今後
OSC東京秋&KOFで「rc phase2」をリリース(予定)
「rc phase2」で入るもの:
– 同音異義語対応 ※「大坂」変換問題…
– 係り受け対応 ←これがメイン!!!
というわけで!
OSC東京秋 & KOF を
お楽しみに?
(てか間に合うのか?)
ご清聴、ありがとうございましたm(_ _)m

More Related Content

あひるに焼かれた话と今后のおーぷん万叶について