bootstrap Python package¶
以前、Pythonパッケージ生成用のテンプレートをシェルスクリプトで作ったのですが、Pythonで一から書き直して bootstrap-py としてPyPIで公開しました。
できること¶
そのままPyPIに登録可能な形でPythonパッケージを生成
PyPIで登録されている名前を事前チェック
Toxを使ってユニットテストとテストツールを実行
pytest-covによるカバレッジの計測
pytest-pep8 コーディング規約のチェック
pytest-flakes による文法チェック
pytest-pylint によるコードチェック
PyChecker によるバグ検出
docstringのチェック
ユニットテストの実行順をランダム化
前回以前のテスト実行時の古いバイトコードを削除
Sphinxでのドキュメントビルドチェック
Sphinxとautomoduleによるドキュメント自動生成
ClassifiersからのOSI Approved LICENSESとdevelopment statusの選択
GitHubアカウントを指定した場合に、Travis-CI, Coveralls, ReadTheDocsのステータスボタンをREADMEに設定
GitPythonで上記が設定した状態でGitリポジトリを生成し、user.name, user.email およびremote originを設定し、Initial commitを作成
Python 2.7以上、Python3.3以上、PyPy 2.4.0以上で初期コミット状態でtoxが通ります。(生成されたリポジトリでのPythonコードは実質setup.pyだけ、というのもありますが)
使い方などはREADMEにありますのでそちらを参照ください。
リポジトリは、 こちら 。
GitPython久しぶりに使った¶
約3年半前に ネタで書いたコード で使って以来、久しぶりにGitPythonを使いました。あー、便利。だけど、早速バグを見つけてしまった(commit時に、.git/HEADに \n
が最後に付加されない)ので、バグ報告しておこう。
余談¶
以前はこれの拡張で、Django + django REST framework + Django絡みのベストプラクティスと言われるようなのを予め反映させるテンプレート(それもやはりシェルスクリプト)を作ったのですが、最近Djangoは使っていないのでとりあえず予定はありません。
おわり。
Activate 0 SIM by so-net¶
12/25に会社のオフィス近所の書店 1 で購入していた デジモノステーション 2月号 の付録の 0 SIM by so-net をアクティベートしました。接続確認は昔購入して使わなくなった、 b-mobile WiFiルータ を使ったのですが、本誌の記事や So-netの設定用の FAQ や マニュアル や 動画 にはダイヤル番号が載っていなくて困ったのですが、 他のFAQ に載っていました。備忘のため、記載しておきます。
b-mobile WiFiルータでの設定¶
- プロファイル名
任意の名前。so-netとしておいた
- APN
so-net.jp
- ダイヤル番号
*99#
- DNS
自動
- 認証方法
PAP or CHAP。無論CHAPにした 2
- ユーザー名
nuro
- パスワード
nuro
まとめ¶
SORACOM SIM買って、b-mobile WiFiルータでIntel Edisonで遊ぼうと思っていたのですが、0 SIM使えば運用コストほぼ0円で済みそうなのでお財布的に助かるなぁと。
Footnotes
Aspiration of the 2016¶
あけましておめでとうございます。今年もよろしくお願いします。
そして悲報。今日で休みも終わりです。 妻にとっても悲報です。まだ幼稚園はお休みです。
今回の年末年始のお休みは¶
Debian JP Projectのサーバーリプレース作業の準備(とりあえず一段落)
おまめ一号と温泉の回数券使い切るタスク(おまめ一号はソフトクリーム目当て)
おまめ二号のアデノウイルス感染症で可哀想&辛い(おまめ一号とこまちゃん以外は眠れない日々)
久々に大掃除した(妻の家事力がパワーアップしていて助かりました)
ディズニーランドに行く計画は中止(子連れだと基本日にち指定は買わないのでいいんだけど)
年賀状作成に追われる(今回も年明け…)
Amazon定期便の事前通知のあと調整忘れる(必要なくてキャンセルする必要のあったのまで発送されて涙目)
実家に行って、妹の結婚絡みの話が長引いておまめ一号と一泊して帰宅(日帰りの予定だった)
実家帰りのその足で法定一年点検(ワイパーブレードとエアコンフィルター交換で思わぬ出費)
という感じでした。いつもよりむしろ休んでないよね。
今年の抱負¶
昨年もそういえば、おまめ二号はこの時期風邪を引いていました。昨年の振り返り(Review the 2015)でも書いたとおり、11月に職場も仕事も変わり、サーバーサイドはRailsで実装しているサービスのお仕事をすることになりました 1 。2ヶ月かかってようやく慣れてきたところで新年を迎えられました。ということを踏まえ、
「家族皆健康第一、短い時間できっちり成果出す」
を今年の抱負にします。
年末の振り返りから再度KPTは以下。
Keep¶
7-16時勤務の朝型生活
これからの繁忙期も維持できるのか分からないですが、この辺はマネージャーと話をちゃんとしよう
毎日コーディング
Debian の活動が減っているので無理ない程度に増やす
Problem¶
おまめ一号のDebianデビュー
妻にPythonを教える
Try¶
英語を使う機会が減っているのでまず習慣化する
娘たちとのコミュニケーションを改善する
年明けてこの三日間はとりあえず良好
自分に余裕がなくなると悪化する、というのはわかっているので、仕事、健康、家庭、自分の時間と、如何に一定に保つか、が重要
環境や条件が変わっても一定に保つってのが一番難しいので
おまめ一号のキーボード操作レクチャー
中断したHaskellの勉強の再開&何か作る
C++の勉強継続、何か作る
一昨年、昨年と妻と一緒に娘のことで悩んだり決断したことを、なんらかの形にする
Footnotes
Review the 2015¶
あと30分弱で新年ですが今年の振り返りをしてみました。
「家族皆健康第一」は?¶
12/30におまめ二号が発熱し、大晦日もぐったりしていたので病院に連れて行ってみたところ、アデノウイルス感染症で終わった一年でした。 それとは別に、今後どう向き合う、というか付き合っていくか、ということを何度も考えたり、決断をすることが多かった一年ではあったのですが概ね健康で過ごせたかなと思います。
その他の目標¶
7-16時勤務の朝型生活
11月から職場を変えたので、一時期維持するのが難しかったのですが現在は概ね戻せて来た感じです。
毎日コーディング
概ね達成できてます。最近はアウトプットだけでなくインプットも増やしてます。
Debian の活動が減っているので無理ない程度に増やす
とりあえず現状維持。
英語を使う機会が減っているのでまず習慣化する
未達成。要見直し。
おまめ一号とのコミュニケーションを改善する
おまめ二号も自我が出てきて、さらに環境も変わって、むしろ悪化している気がする…。
おまめ一号のDebianデビュー
未達成。字をようやく覚え始めたのでキーボード操作はまだその後かなという感じ。
妻にPythonを教える
「私には無理」と拒絶。別のアプローチが必要
中断したHaskellの勉強の再開&何か作る
これは未達成だったものの、仕事上、Python&GoだったのがRuby&Railsを扱うことになりました。
プライベートではC++の勉強をはじめました
(2015年)4月からおまめ一号の幼稚園でさらに支出が増えるので、収支の改善方法を検討&実行する
私および妻ともに、auからIIJ mioに切り替えることで月々の電話料金の削減は達成 * 育児用品や生活用品などの購入をAmazon Primeと楽天だけだったのをヨドバシや他のサイトを利用することになったことで、定期的な購入費用は割と改善できた感じ
コストコや楽天などでの大量購入の頻度を上げる
高速道路の利用頻度が増えたので、ETC導入
基本未着手分を増額するなど、予算の立て方変更
まとめ¶
書き始めたのが遅かったので書き終えたら年越しちゃったよ。
A sequel to pull request for ansible-ldap¶
昨日の記事(ansible-ldap is very simple and useful)で、ansible-ldap のAnsible Galaxy 対応のPRを送ったところ、早速返事がありました。
If you’d like to publish these on Ansible Galaxy, feel free. You don’t need anything from me.
Ansible Galaxyでの公開はしないそうですが、公開そのものはご自由にどうぞ 、ということでした。
ということで、 fork版として公開 しました。
今後の方針¶
現状、テストコードがなく、Ansible 2.0も未対応なのでその対応を行う予定です。 1 upstream側での変更が今後されるのかわかりませんが、可能であれば追従していくつもりです。
インストール方法¶
ansible-galaxy
コマンドでインストールできます。
$ ansible-galaxy install -p library mkouhei.ldap
Mercurial から Gitへの変換¶
オリジナルはMercurialのリポジトリとしてBitbucketで公開されています。一方、Ansible Galaxyで公開するにはGitHubで公開する必要があります。 そこで、次の手順でMercurialからGitに変換しました。
hg-fast-exportをインストール
$ sudo apt-get intall hg-fast-export
インポート先のGitリポジトリを作成
$ mkdir ansible-role-ldap
$ cd ansible-role-ldap
$ git init
MercurialからGitに変換
変換元のMercurialのリポジトリは、却下されたPull requestを作成するためにfeature branchを作ったローカルリポジトリを使いました。
$ hg-fast-export -r /path/to/ansible-ldap
master: Exporting full revision 1/6 with 4/0/0 added/changed/removed files
master: Exporting simple delta revision 2/6 with 0/2/0 added/changed/removed files
master: Exporting simple delta revision 3/6 with 0/2/0 added/changed/removed files
for-ansible-galaxy: Exporting simple delta revision 4/6 with 1/0/0 added/changed/removed files
for-ansible-galaxy: Exporting simple delta revision 5/6 with 2/0/2 added/changed/removed files
for-ansible-galaxy: Exporting simple delta revision 6/6 with 0/2/0 added/changed/removed files
Issued 6 commands
git-fast-import statistics:
---------------------------------------------------------------------
Alloc'd objects: 5000
Total objects: 28 ( 3 duplicates )
blobs : 11 ( 2 duplicates 6 deltas of 11 attempts)
trees : 11 ( 1 duplicates 5 deltas of 11 attempts)
commits: 6 ( 0 duplicates 0 deltas of 0 attempts)
tags : 0 ( 0 duplicates 0 deltas of 0 attempts)
Total branches: 2 ( 2 loads )
marks: 1024 ( 6 unique )
atoms: 8
Memory total: 2344 KiB
pools: 2110 KiB
objects: 234 KiB
---------------------------------------------------------------------
pack_report: getpagesize() = 4096
pack_report: core.packedGitWindowSize = 1073741824
pack_report: core.packedGitLimit = 8589934592
pack_report: pack_used_ctr = 7
pack_report: pack_mmap_calls = 3
pack_report: pack_open_windows = 1 / 1
pack_report: pack_mapped = 19729 / 19729
---------------------------------------------------------------------
$ git branch
for-ansible-galaxy
* master
GitHubにリモートリポジトリを作成
git push
$ git remote add origin git@github.com:mkouhei/ansible-role-ldap.git
$ git push --mirror
for-ansible-galaxy ブランチを master にマージ
Ansible Galaxyでインポート、公開
footnotes
- 1
先日公開した include_csv もですが。