u-ryo's blog

various information for coding...

Set My Postfix Able to Send Over OP25B(Outbound Port 25 Blocking) Using Mailgun

| Comments

OP25Bが始まってから、ってもう大分前のことですが、 自前でmailを送るのは諦めて、 GMailを経由して送ってました。 でも、GMailを経由すると、 Fromが強制的に自分のaccountになっちゃうんですよね。 だから、例えば自前serverで定義したMLも、 上手く機能しなくなっちゃいました。 もうそういうのは自前でやる時代じゃないのかな、 と諦観してたんですけど、 Mailgunを使えばspfとかcleanにして外に出してくれるんですね。 今頃になって知ったので、試してみました。

cf.

自分でちょっとハマったところ

  1. postfixのmain.cfで、relayhost = [smtp.mailgun.net]:587 と[]で囲う必要があった事(でも囲わなくても行けるみたいですよ /etc/postfix/passwordの方でも囲わなければ)
  2. MyDNSにおいて、spfを指定する場合には、Hostに_spfと入れなければならないこと (MyDNSのlocal ruleでした)
  3. DKIM(domainkey)の指定がなかなか反映されなかったようであること (その他の項目は全て反映されてたし、 $ host -t txt ...で引くと見えてたので、大丈夫だろうと思ってたんですが、 そうでもなかったようです。 小一時間待ったら、認識されました。 ここが通らないとVerifiedにならず、使えないので、途方に暮れかけました)
  4. 受信の設定はroutesなるものを設定しないとならないこと (MXを直接自前serverに向ければいいんですが、 mailgunで受信するにはどうしたらいいんだろう? と思っていると、そういうこと[=routesを設定する必要がある]だったんですね) 自分は、GMailにforwardするようにしました。 そうすればGMail見てるだけで済みますので。

久し振りに自前serverのmail logを見たら、 中国からのbrute force attackがずっと続いていたことがわかりました。 嫌なので、mail serverは落として、 GMailへのforwardingにすることにしました。

More Package-list in Emacs on Ubuntu

| Comments

emacsでmarkdownを書く時に、 markdown-modeが欲しいと思ったので、 list-packageしたら、 なかったんですね選択肢に。 調べると、.emacsに、

1
2
3
4
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/"))
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)

が必要でした。

cf.init-loader.el と package.el を導入して快適 Emacs ライフ

Preview

あと、emacsで書いてpreviewだけ別にしたいな、 と思ったぼくには、 ChromeのMarkdown Preview Plus extentionが便利でした。 install後、 Manage extentionsで「Allow access to file URLs」にチェックを入れないとならない、 というのがハマりポイントでした。

PDFへの変換

Pandoc で Markdown から PDF へ変換にある通り、 apt-getで入るpandocを使えば楽かなぁと。 header.texが必要というのがtrickyですね。 これもLuaLaTeXで変換出来ました。

header.tex

1
2
3
4
\usepackage{luatexja}
\setmainfont{TakaoPMincho}
\setsansfont{TakaoPGothic}
\setmonofont{TakaoGothic}
1
$ pandoc --latex-engine=lualatex -o /tmp/test.pdf -H ~/header.tex /tmp/test.md

Table

Table Generatorというのがあります。 orgtbl-modeは、よくわからないので使ってません。

online editor

ってうか、既にbrowser上でedit/preview出来るもの、あるじゃないですか。 もう古い記事ですが、 Webブラウザで使えるMarkdownエディタの比較を見ますと、 今はもっとあるんでしょうね... 2015年の記事もありますね。ブラウザ上で使えるMarkdownエディタ

wri.pe凄いですね。 GitHub accountで入れますし、 スッと使えるinterfaceを感じます。

LuaLaTeX

| Comments

表題の通り、LaTeXをよく使っています。 pLaTeXが長かったので、 LuaLaTeXについてのメモ書きです。 例によって、ちょっと調べればいくらでも出てますけど。

  1. preambleは\documentclass{ltjsarticle}
  2. usepackageはluatexja (\usepackage{luatexja})
  3. \usepackage[dvipdfmx]{graphics}
  4. pngを貼りこむ時には、普通に\includegraphics{XXX.png}で良いが、
    1
    
    $ extractbb XXX.png
    
  5. zw\zw

reportもMarkdownで書いてみようかな...

Normalizer in Java

| Comments

同僚に、「JavaのNormalizer.NFCとかって何?」と聞かれたので、 調べてみました。 ITproの櫻庭さんの解説が わかりやすいかも、と思ったんですが、

互換合成 Normalize Function Compativle Composite (NFKC)

とかって、スペルミスもあるし、そもそも原典と違うじゃん、 ということに気付いて。

  • Normalization Form D (NFD) Canonical Decomposition
  • Normalization Form C (NFC) Canonical Decomposition,followed by Canonical Composition
  • Normalization Form KD (NFKD) Compatibility Decomposition
  • Normalization Form KC (NFKC) Compatibility Decomposition,followed by Canonical Composition

Canonical Equivalent(正準等価性)が「か+゛」=「が」 Compatibility Equivalent(互換等価性)が「カ」=「カ」 なので、

  • 「Canonical Decomposition」(正準分解)を「「が」→「か+゛」にすること」
  • 「Canonical Composition」(正準合成)を「「か+゛」→「が」にすること」
  • 「Compatibility Composition」(互換合成)を「「カ」を「カ」とすること」

と読めばいいのでは?

だから例えば、「NFKC」は、 「「カ」を「カ」としてから「か+゛」→「が」にすること」

気を付けたいのは、「Compatibility Composition」というのはない! ということですね。 だからよく読むと、各所にある日本語の解説は怪しいかも、です。

文字コード地獄秘話 第3話:後戻りの効かないUnicode正規化の解説が良さげです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
groovy:000> import java.text.*
===> java.text.*
groovy:000> str = "神と神㌀㈲¼が"
===> 神と神㌀㈲¼が
groovy:000> println(Normalizer.normalize(str, Normalizer.Form.NFD))
神と神㌀㈲¼か
===> null
groovy:000> println(Normalizer.normalize(str, Normalizer.Form.NFC))
神と神㌀㈲¼が
===> null
groovy:000> println(Normalizer.normalize(str, Normalizer.Form.NFKD))
神と神アハート(有)1⁄4か
===> null
groovy:000> println(Normalizer.normalize(str, Normalizer.Form.NFKC))
神と神アパート(有)1⁄4が
===> null

Codenvy for GAE

| Comments

CodenvyはGAEに直接deploy出来るからいい、 って読んだんですけど(もうEclipseはいらない? codenvy IDEによるクラウド開発 (1/6))、 じゃぁっていうんで使ってみたら、 うーん、command lineが使えないので、 JARなprojectとかうまく動かせない(buildしても成果物をどうやって取り出すのか、 どうやってoptionつけて実行して試せるのか)感じでした。 あと、月20時間?しかtest起動、buildが出来ないみたいですね。

Cloud9ではGAE連携できないのかな、 と調べてみると、GAEってgitでもdeploy出来るって?! へーと思ってGAEを見てみると、今は出来ないみたいですね... Google Cloud Consoleからソースの閲覧っていメニュー、 無くなってます。 まぁ、普通にcommand叩けば良いのかな? という感じです。

Kodingも、 無料だと1プロジェクトしか作れませんが、 どうせGitHubに置いておくので、 とっかえひっかえすればいいのかなぁ。 でも流石に面倒そうですよねぇ。