2017/10/17

問答無用でテキストファイルの文字コードを UTF-8 にする

この記事 を見ていて文字化けとかつらいよなー、と思うなど。
私だったら nkf を CLI で使うかな、と思ったのでそれを書いておこうかなと思います。


コマンド

UTF-8 + 改行コードを unix にする、だと
  • $ nkf -wLu --override **/*.html
とか。 glob が長いと怒られるのなら
  • $ find -name '*.html' | xargs -L1 nkf -wLu --override
とか。 git 管理下にあるのなら
  • $ git ls-files | xargs -L1 nkf -wLu --override
とかでも良いでしょう。

meta タグの置換はとりあえず単に Shift_JIS を UTF-8 にするだけでいけると仮定。
それなら
  • $ sed -i -e 's/Shift_JIS/UTF-8/'
でいけます。 確か -i オプションは GNU 版の sed にしかなかったはず。
meta タグを検出する必要があったら正規表現を複雑にする必要がありますね。


おまけ

このファイルの文字コード何だ? となったら
  • $ nkf -g file.txt
で分かります。


環境

  • OS: macOS Sierra 10.12.6
  • nkf: Network Kanji Filter Version 2.1.4 (2015-12-12) 
  • sed: gsed (GNU sed) 4.4

2017/10/13

VALU で貰ったビットコインを換金する

VALU にアカウントを作っていたのですが、私のVALUを買ってくれる人がいました。
もちろん VALU でのやりとりは bitcoin 。
とりあえず遊びで仮想通貨に触れてみるのも良いかなと思って換金してみました。


ビットコイン購入/販売所 のアカウントを作る

まずは貰った bitcoin の送り先を確保します。
銀行に口座を作るみたいな感じですね。
とりあえず国内取引量最大らしい bitFlyer にアカウントを作る。


ビットコインアドレスを確認する

次に送信先のアドレスを確認します。
口座番号みたいなものですね。
bitFlyer だと
  • 設定 > bitFlyer アカウントご登録内容
にあります。
例えば「3K61u2B3k5bGmwCyDSMKyL8uF5xi7z863D」といった3から始まる長い文字列です。


VALU から bitFlyer に送金する

VALU で貰った bitcoin を確認したアドレス宛に送信します。
  • メニュー > 口座の管理 > 送金
で先程確認したアドレスを指定して、送金する bitcoin の数を決めます。
手数料で 0.0005 bitcoin ほど VALU に取られるので注意。
手数料は 2017/10/13 の時点だと300円ちょっとくらい? ですね。


bitFlyer で着金していることを確認する

bitcoin の送金には時間がかかります。
私の場合だと1時間くらいかかりました。
あとは bitFlyer で日本円に換金して終わりです。やったね。


最後に

このような手順で VALU でもらった bitcoin を日本円に換金できます。
また、もしこの記事に価値を感じた方は「3K61u2B3k5bGmwCyDSMKyL8uF5xi7z863D」に bitcoin を送ってくれると幸いです。

2017/10/12

systemd 制御下のプロセスの SEGV を追う

systemd で起動したプロセスがいつの間にか死んでる。
systemctl status を確認すると SEGV している。SEGV ......
SEGV の原因を追うために systemd 管理下のプロセスで core を取る方法とかのログ。
ちなみにそのプロセスは FreeRADIUS ですね。


コアを dump するように

  • $ vim /etc/security/limits.d/core.conf
  • $ vim /etc/sysctl.d/core.conf

コアを取るように設定。
  • $ reboot
したら設定の適用完了。


動作確認

きちんと取れるか、死んでたプロセスに

    • $ kill -11 <pid>
    とかしたら core が取れるか確認できます。


    その後

    取れたコアを使って gdb で原因を追っていく。
    その際に bt などが使えないのがつらいので
    • $ yum --enablerepo='*debug*' install /usr/lib/debug/.build-id/9c/hogehogefugafuga

    とかしておく。
    こうすると freeradius-debuginfo が入って bt とかを見られるようになる。
    とかとかしながらデバッグして原因を突き止めたのがこの記事です。


    環境

    • OS: CentOS Linux release 7.4.1708 (Core) 
    • kernel: 3.10.0-693.2.2.el7.x86_64
    • systemd: 219 +PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN
    • FreeRADIUS: 3.0.4

    Amazon Mastercard ゴールドを無料で再発行してもらった

    東京に引っ越してから Amazon を使う機会が増えたので Amazon Mastercard ゴールド を作りました。
    プライムユーザが Amazon で買い物をすると 2.5% ポイントとして還元してくれる。
    普通に使っても 1% 還元なのでその辺のポイントカードを持ち歩くよりは楽。

    という感じでクレカライフを楽しんでいたのですが、財布を洗濯するという悲劇が発生。
    結果クレカは無惨にも曲がってしまい、どう見ても使えない状態に。
    サポートデスクに電話したら「ゴールドカードの会員様は無料で新しいカードを発行させて頂きます」と。
    紛失した訳ではないので、番号とかもそのまま、カードを再発行してもらえました。

    手厚いサポートという感じだ。こういう面も含めて便利で良い。

    zmv を使ってまとめてファイルを rename する

    zsh には zmv という機能があって、glob で指定した部分を置換できます。
    例えば *.jpg というファイル群をまとめて *.jpeg に変換できます。

    仮に以下のようなファイル群があったとして

    • ls

    bar.jpg foo.jpg fuga.jpg hoge.jpg piyo.jpg
    • zmv -w  '*.jpg' '*.jpeg'
    すると以下のようになります。
    • ls
    bar.jpeg foo.jpeg fuga.jpeg hoge.jpeg piyo.jpeg
    便利。zmv を使うには .zshrc に
    autoload -Uz zmv
    と書く必要があります。

    ちなみに dry-run option も存在していて、 -n で dry-run ができます。
    • zmv -n -w  '*.jpg' '$1.jpeg'
    mv -- bar.jpg bar.jpeg
    mv -- foo.jpg foo.jpeg
    mv -- fuga.jpg fuga.jpeg
    mv -- hoge.jpg hoge.jpeg
    mv -- piyo.jpg piyo.jpeg

    以上、ちょっとした小技 zmv でした。-w とか -W は help を読んでみてね。
    man zshall とかを読んでも良いかも。


    環境

    • zsh: 5.4.2 (x86_64-apple-darwin16.7.0)