アルファベット文字列をフォネティックコードで表記するPythonモジュールをつくったよ:a2pcej
アカウントの追加業務とかで、パスワードをこちらで適当に生成してお知らせるときに、パスワード文字列のよみがなをつけて渡すということが、しばしばあるわけです。
たとえば、こんなやつ。
ユーザー名: hogehoge パスワード: WPzm60zh (ダブリュー(大文字)・ピー(大文字)・ゼット・エム・ロク・ゼロ・ゼット・エイチ)
大した数じゃなければ手打ちするのもいいんですが、一気にどかっと発行するとかなると手打ちするは厄介です。自動でやってしまいたいところです。
Google先生に尋ねると、
- フリガナつきパスワード生成ツール - Password Generator
- パスワードをカナに変換するツール|シラサヤ備忘館
- Excel2010 英数字にふりがな|ichiのおもちゃ箱
- パスワードの読み仮名を作るc2pコマンド | /var/log/azumakuniyuki
といったのが出てきます。パスワードの生成からやってしまってよければ、フリガナつきパスワード生成ツール - Password Generator は、大量生産できるのでよさ気ですが...
パスワードのよみがなの区切り文字や、大文字につける表記が自分のところで使っているフォーマットと合わなかった...
ということで、実はずい分前に手元で使える用には、ざっくりpythonスクリプトで作ってありました。
今回これを大改造して、
- 区切り文字を指定できる
- 大文字につける印を指定できる
- カタカナ表記だけではなく、英語圏用(?)にフォネティックコード表記できる
というものを作ってみました。いろんなところで使いまわしやすいように、PyPIに上げて、pipでインストールできるようにしました。 謎のネーミングセンスにより、a2pcejという名称にしました。一応、convert Alphabet to Phonetic Code in English and Japaneseの略。
使い方
以下Python3.5環境での出力例です。関数の戻り値はunicode文字列になっています。
兎にも角にもモジュールをインポート。
>>> from a2pcej import *
アルファベットの文字列にカタカナでよみがなをつける。 :conv_ak()
>>> conv_ak('examples') 'イー・エクス・エイ・エム・ピー・エル・イー・エス'
アルファベット大文字にはデフォルトで「(大文字)」と付く。
アルファベット以外(記号や数字)はデフォルトだとよみがな変換されない(その文字がそのままま出る)。
>>> conv_ak('Examples002') 'イー(大文字)・エクス・エイ・エム・ピー・エル・イー・エス・0・0・2'
区切り文字を変更するには、delimiter='文字列'
を引数に追加する。
アルファベット大文字につく文字列の変更をするには、 sign='文字列'
を引数に追加する。
空にすれば、区切りなし、大文字表記なしになる。
>>> conv_ak('Examples003', delimiter='/', sign='(大)') 'イー(大)/エクス/エイ/エム/ピー/エル/イー/エス/0/0/3' >>> conv_ak('Examples003', delimiter='', sign='') 'イーエクスエイエムピーエルイーエス00'
数字にもよみがなを付けたいときは、num=True
を引数に加える。
>>> conv_ak('Examples004', num=True) 'イー(大文字)・エクス・エイ・エム・ピー・エル・イー・エス・ゼロ・ゼロ・ヨン'
アルファベットの文字列に英単語のフォネティックコードをつける。 :conv_al()
オプションは、 conv_ak()
と同じなので、出力例だけ。
区切り文字、大文字につく文字列のデフォルトを英語圏っぽいのにしてある。
>>> conv_al('examples') 'Echo-Xray-Alfa-Mike-Papa-Lima-Echo-Sierra' >>> conv_al('Examples002') 'Echo(CAPS)-Xray-Alfa-Mike-Papa-Lima-Echo-Sierra-0-0-2' >>> conv_al('Examples003', delimiter=', ', sign='(CAPITAL)') 'Echo(CAPITAL), Xray, Alfa, Mike, Papa, Lima, Echo, Sierra, 0, 0, 3,' >>> conv_al('Examples004', num=True) 'Echo(CAPS)-Xray-Alfa-Mike-Papa-Lima-Echo-Sierra-zero-zero-four'
ソース
PyPI
雑感
python2での文字コードのこととか、パッケージングする方法とか、pandocってなんか便利なツールがあるとか、いろいろお勉強になりましたです。久しぶりに英文も書いたらスペルミスと謎の構文の嵐です。
Windowsのhostsファイルに記述できるエイリアス数の罠
ローカルの開発環境やら、別サーバーに環境を移すときやらに、お世話になるhostsファイル。
Windows 7以降だと、C:\WINDOWS\system32\drivers\etc\hostsを管理者モードで実行したメモ帳で編集してあげれば良いのですが、ちょっとした罠がありました。
127.0.0.1 exsample.com sub1.exsample.com sub2.exsample.com sub3.exsample.com sub4.exsample.com sub5.exsample.com sub6.exsample.com sub7.exsample.com sub8.exsample.com sub9.exsample.com sub10.exsample.com
という具合に、複数のホスト名を書くと、exsample.comとsub1~sub8まではうまくいきますが、sub9、sub10はうまく名前解決してくれません。
Microsofftの公式ドキュメントでも説明されていました。
原因
Windows XP/Windows Server 2003 以降の OS では、HOSTS ファイルの 1 行に記載できる別名 (エイリアス) の数は、ホスト名 1 つにつき 8 個までとなっています。
また、この制限はソース コード上でハード コードされているため、変更することはできません。
解決方法
1 つの IP アドレスに対して、別名を 9 個以上記載したい場合には、複数行に分けて記載して下さい。
Windows10 でも同様の現象となるようで、特に更新されていないようです。
Windowsでchecksumを調べる---FCIVを利用してみた
「ファイル チェックサム整合性検証 (FCIV) ユーティリティ」を使ってみました。 特に深い理由はありません。GIMPさんをインストールするときに徐に、ダウンロードファイルのMD5チェックサムでも一応確認しようかとふと思い立っただけです。
FCIVですが、
FCIV ユーティリティは、Microsoft Windows 2000、Windows XP、および Windows Server 2003 上で実行されます。
https://support.microsoft.com/ja-jp/kb/841290
なんてあって、ドキュメントの最終更新が2011/09/10のようなので、古くからあるツールの模様。
手元のWindows10では、公式ドキュメントのインストールの項目どおりに作業すれば問題なく動きました。コマンドプロンプトからでももちろんPowrShellからでも問題ないようです。
チェックサムを計算
PS C:\Users\Kastuay\Downloads> fciv.exe .\gimp-2.8.16-setup-4.exe
//
// File Checksum Integrity Verifier version 2.05.
//
3dbad964d5fe1d2a065bc9cbea0ee1a0 .\gimp-2.8.16-setup-4.exe
md5ないし、sha1でのハッシュ値を計算できるようで、特定のディレクトリ下を再帰的に確認して、xmlで出力するなんてこともできるんだとか。
ディレクトリ下の各ファイルのチェックサムを計算して、xml形式ファイルに出力
PS C:\Users\Katsuya\Downloads> fciv.exe -r .\sumtest\ -xml sumtest.xml
//
// File Checksum Integrity Verifier version 2.05.
//
Start Time: 06/11/2016 at 12h40'36''
Error loading XML document.
Create New XML database
End Time..: 06/11/2016 at 12h40'37''
Processed 1 directories
Processed 2 files
Errors have been reported to fciv.err
出力したXMLファイルの内容からチェックサム結果を表示
PS C:\Users\Katsuya\Downloads> fciv.exe -list -xml .\sumtest.xml
//
// File Checksum Integrity Verifier version 2.05.
//
Listing entries in database:
----------------------------
MD5 Filename
-------------------------------------------------------------------------
acc0db27eed709ecb25e5369fb8cfd87 .\sumtest\FileZilla_3.13.1_win64.zip
3dbad964d5fe1d2a065bc9cbea0ee1a0 .\sumtest\gimp-2.8.16-setup-4.exe
チェックサムと一致するか確認する。
PS C:\Users\Katsuya\Downloads> fciv.exe -v -xml .\sumtest.xml
一致
PS C:\Users\Katsuya\Downloads> fciv.exe -v -xml .\sumtest.xml
//
// File Checksum Integrity Verifier version 2.05.
//
Could not create the registry key.
Starting checksums verification : 06/11/2016 at 12h54'37
All files verified successfully
End Verification : 06/11/2016 at 12h54'37
不一致
一方のZIPファイルの中身をちょっといじってみた。
PS C:\Users\Katsuya\Downloads> fciv.exe -v -xml .\sumtest.xml
//
// File Checksum Integrity Verifier version 2.05.
//
Could not create the registry key.
Starting checksums verification : 06/11/2016 at 12h55'58
List of modified files:
-----------------------
.\sumtest\FileZilla_3.13.1_win64.zip
Hash is : acc0db27eed709ecb25e5369fb8cfd87
It should be : ea4684909453db52c7d4fa3105bdcd8e
End Verification : 06/11/2016 at 12h55'58
XMLの中身
チェックサムの結果は、Base64でエンコードされて格納される仕様だそうだ。なのでXMLを直接ただ見ただけだとチェックサムの値はわからない。
Base64デコードするか、FCIVの-listオプションを使ってプロンプト上で見る必要がある模様。
ユーティリティ説明資料
Windows10の環境変数を設定する画面が親切になっていた。
Windowsを使っていてほとんど触る機会はないけど、ちょっとマニアックな何かをインストールしてみたりするときとかに、必要になる環境変数の操作。変にいじってしまったら大事件が起きるんじゃないか感が強いわりに、UIが結構使いにくくて、間違わないかいじるたびに冷や冷やしていた覚えがあった。
Win32 OpenSSHを、快適に使おうと久々に環境変数の画面を開いたら、劇的に変わっていてびっくり。
ここは今まで通り。
ここもほぼ今まで通り?
ここが素晴らしい
いままで、自分でセミコロンで区切って値を入れていたわけですが、値が一行ごとに分かれています。
自作マシンとかでSSD&HDD構成にしたときに、SSDの寿命を慮ってTEMPファイルの書き出し先をシステムドライブにしたSSDじゃなくてHDDにするとかでよく使った、TEMPの値変更の部分に至っては、よくあるファイルを選択する画面のUIになっていて、変なパスを指定してしまう事件が起こりづらくなっています。
ちょっと感動して、記録がてら書いてからググったら先人がいました。変更点もまとまってます。ほほー。 hiiragi.hateblo.jp
続・SSHクライアントといえば?
こんな記事を書いてから早半年以上が経過していました。 kitaeng.hateblo.jp
Windows 10だとなんだかPoderosaがうまく動いてくれなかったり、Ubuntuのターミナルでも自動でコマンドログを取る方法もググったら意外とたくさん出てきて、何とかなったので、すっかりPoderosaは使わなくなった今日この頃です。
この間、WindowsのSSHクライアント環境に新兵器たちが現れ始めましたようです。ざっくり言ってしまうと、まだ、正式リリースになっていないものたちなので、実用性的には微妙な感じだけど、今後に期待というところ。
WindowsにBashが?
だいぶ盛り上がりは去った感がありますが、今夏に予定されているWindows10の大型アップデート「Anniversary Update」の新機能の1つとして、「Bash on Windows」が話題に上って、ちょっと選択肢が増えたかもな状況でありました。(かくいう自分もこの新機能が気になって、Windows10のマシンをInsiderPreviewでアップデートするように設定を変えました。そして、直後にうまく起動しなくなるという事件に見舞われました...)
これ-->鈴木淳也の「Windowsフロントライン」:Windows 10で動く「Bash」を試す Mac使いの開発者にもアピールする? (1/3) - ITmedia PC USER
PowershellにOpenSSHが移植されていた
すっかり冒頭の記事を書いている時には気が付いていませんでしたが、冒頭の記事を書いている時にはすでに、pre-release版で、「Win32 OpenSSH」なるものが、公開されていたようです。
これ --> WindowsでOpenSSHを使ってSSHサーバーの起動と接続をする方法~PowerShell編 - Qiita MSDNのblogにも記事になってた --> OpenSSH for Windows Update | Windows PowerShell Blog
開発はもりもり進んでいるようで、今夏ぐらいにはOpenSSHの本家の方にくっつくのを目指しているのだとか。昨冬に出たばかりのころは、.ssh/configファイルなんかが使えなくて...だったようですが、ここのところのアップデートで、configファイルは利くようになった模様。 github.com
普通にsshする分には、結構便利。何せ、gitからダウンロードしてきて、設置したPATHを環境変数に追加すればいいだけだから、WindowsにBashより楽ちん(そりゃ、Bashの方はssh以外にもいろいろできちゃうんだから当たり前か...)。設定が悪いのか、ssh先でvimとか、topとか使うと画面表示が崩れるので、メイン使用にはできそうにない。設定をいじればなんとかなるんだろうか。