何かを書き留める何か

数学や読んだ本について書く何かです。最近は社会人として生き残りの術を学ぶ日々です。

亡きメーリングリストのための一節

404 Not Foundなんかじゃない。お亡くなりになったんだ。このメーリングリストは、この世を去ったの。停止したの。無意味なビット列になって、電子の海へ去っていった。これは「故メーリングリスト」。リンク切れ。サービスが止まって、永遠の眠りについてい…

『Effective Python』Item 36 訳注の補遺(のつもり)

過去にこのようなエントリを書いた。 掲載されている下記のコードがWindowsでは動かない、という内容であった。 def run_openssl(data): env = os.environ.copy() env['password'] = b'\xe24U\n\xd0Ql3S\x11' proc = subprocess.Popen( ['openssl', 'enc', '…

2015年大反省会を2016年に行う

もう2016年1月も終わりますが 2015年の大きな出来事は『Effective Python』を購入し、私家版翻訳を進め、 気づくと邦訳版の査読者になって、なぜか査読者略歴まで掲載されたことである。 2015年大反省会は2015年の大晦日に行うものであるが、『Effective Pyt…

『Effective Python』の査読を担当しました

2016年1月23日にオライリージャパンから『Effective Python』の邦訳版が発売された。 この度、邦訳の査読者として参加させていただいた。 驚くべきことに査読者紹介として略歴まで掲載されている。 『Effective Python』の邦訳を世に出すべきだと思い淡々と…

鬼の代わりに笑いたい

(一社)情報サービス産業協会のプレスリリースに 『その技術は消えるか消えないか? JISAが読み解く情報技術の近未来 ~通算2万5千人参加の会員アンケートから5年後に必要な技術を予測~』 という興味をそそるものがあった。 その技術は消えるか消えないか? …

応用情報技術者試験に向けてやったこと

去る2015年10月18日に応用情報技術者試験を受験し、12月18日に合格発表があった。結果は合格だった。合格率は23.4%である。 想像以上に合格率が低いので、ここで僕が応用情報技術者試験に向けてやったことをまとめてみたい。 1. 申し込む どうすれば応用情報…

「マイナンバーは素数だ!」発言による情報漏洩

「マイナンバーは素数だ!」発言の危うさ マイナンバーキタ━ヽ( ゚∀゚)ノ┌┛)`Д゚)・;'━!! やったー!チェックディジットを除けば素数だ!(この情報量は何ビットになるか計算せよ)— Haruhiko Okumura (@h_okumura) 2015, 11月 23 この世には素数に異常な執着をもつ…

第58回Python Mini Hack-a-thonに参加しました。

宿題その2に全く手をつけていない。pyhackでやろうかなとか目論んでいるけどまだ床枠なんだよねえ— XaroCydeykn (@CardinalXaro) 2015, 11月 3 ここで、宿題とは単なる隠語。現在、普段の仕事とは関係のない何かを2つ抱えている。 明日の #pyhack 、とうとう…

『UNIXという考え方』を読んで

『UNIXという考え方』を読んだ。 UNIXという考え方―その設計思想と哲学作者: Mike Gancarz,芳尾桂出版社/メーカー: オーム社発売日: 2001/02メディア: 単行本購入: 40人 クリック: 498回この商品を含むブログ (141件) を見る きっかけは、 一般社団法人コン…

Pycon JP 2015 1日目に参加しました。

PyCon JP 2015が行われたのはもう先週のことである。今更感想など書いても需要がないかもしれないが思い出代わりに書いておく。 残念ながら、2日目は体調を崩してスプリント含め2日間寝込んでいた。現在は何とか復活したがカンファレンス2日目に参加できなか…

『時を超えた建設の道』を読んで

『時を超えた建設の道』を読んだ。 時を超えた建設の道作者: クリストファーアレグザンダー,Christopher Alexander,平田翰那出版社/メーカー: 鹿島出版会発売日: 1993/10メディア: 単行本購入: 4人 クリック: 33回この商品を含むブログ (16件) を見る http:/…

『Effective Python』Item 37: スレッドはブロッキングI/Oに使い、並列処理は避けよう

『Effective Python』の続き。不遇のWindows。 Effective Python › The Bookwww.effectivepython.com 人によってはGlobal Interpreter Lock(GIL) と聞くと嫌な思い出が蘇ることがあるのだろうか。 私は恥ずかしながら並列・並行プログラミング未経験というア…

『Effective Python』Item 36: 子プロセスを制御するためにsubprocessを使おう

『Effective Python』の続き。想像以上につらい。 Effective Python › The Bookwww.effectivepython.com Item 36から「Concurrency and Parallelism(並行と並列)」と題してPythonによる並行・並列プログラミングのコツを解説…となるのはよいが2つ問題があ…

『Effective Python』Item 35: メタクラスを使ってクラス属性に注釈をつけよう

『Effective Python』の続き。メタクラスとディスクリプタの華麗なる関係。 Effective Python › The Bookwww.effectivepython.com メタクラスの応用例、そしてChapter 4の最後を飾るのはクラス属性の注釈、またはメタクラスとディスクリプタの合わせ技の話で…

『Effective Python』Item 34: メタクラスを使ってクラスの存在を登録をしよう

『Effective Python』の続き。末端の人間頑張れメソッドダメ、ゼッタイ。 Effective Python › The Bookwww.effectivepython.com メタクラスの活用第二弾として、クラスの登録を挙げている。 PythonのオブジェクトをJSON文字列へシリアライズ、JSON文字列から…

『Effective Python』Item 33: メタクラスを使ってサブクラスの検証をしよう

『Effective Python』の続き。水際で防げ。 Effective Python › The Bookwww.effectivepython.com 『Effective Python』のChapter 4冒頭に筆者は次のように述べている。 Metaclass are often mentioned in lists of Python's features, but few understand w…

『Effective Python』Item 32: 属性の遅延評価には__getattr__, __getattribute__,__setattr__を使おう

『Effective Python』の続き。ナマケモノでいこう。 Effective Python › The Bookwww.effectivepython.com 遅延評価を__getattr__やgetattribute__、__setattr__で実現できますよ、という話。 __getattr__らは一般に、クラスの属性アクセスを制御するための…

『Effective Python』Item 31: 再利用可能な@propertyメソッドにはディスクリプタを使おう

『Effective Python』の続き。@propertyの限界を超えろ。 Effective Python › The Bookwww.effectivepython.com @propertyデコレータの欠点として再利用ができないというのがある。 テストの成績を管理するクラスを例に説明している。 class Exam(object): d…

『Effective Python』Item 30: 属性をリファクタリングする代わりに@propertyを検討しよう

『Effective Python』の続き。@property大好き一番好きなデコレータです! Effective Python › The Bookwww.effectivepython.com @propertyを使えばクラス全体をリファクタリングすることなく属性のリファクタリングができますよ、という話。 リーキーバケッ…

『Effective Python』Item 29: ゲッターやセッターの代わりに通常の属性を使おう

『Effective Python』の続き。ゲッターやセッターをPythonで実装しちゃうのは素人。 Effective Python › The Bookwww.effectivepython.com 今回からChapter 4「メタクラスと属性」に突入。 タイトルの順序はメタクラスが先であるが、しばらくは属性の話が続…

『Effective Python』Item 28: カスタムコンテナ型はcollections.abcから継承しよう

『Effective Python』の続き。足りないものを補うために。 Effective Python › The Bookwww.effectivepython.com 自作のコンテナを作る際にはlistとかから直接継承するのではなく、collections.abcから継承して作りましょうという話である。 次の二分木にリ…

『Effective Python』Item 27: プライベート属性よりもパブリック属性を使おう

『Effective Python』の続き。Pythonにプライベートなどない。 Effective Python › The Bookwww.effectivepython.com 「Pythonには、パブリックとプライベートという2つのクラス属性があります。(超訳)」からこのItemは始まるが、基本的にはパブリックを使い…

『Effective Python』Item 26: 多重継承はMix-inユーティリティクラスでのみ使おう

『Effective Python』の続き。多重継承は日の目を見るか。 Effective Python › The Bookwww.effectivepython.com 多重継承は一般的に避けましょうとしつつ、どうしても使いたい場合はMix-inを検討しましょうという話である。 Mix-inというとRubyが思い浮かぶ…

『Effective Python』Item 25: 親クラスの初期化にはsuperを使おう

『Effective Python』の続き。親の顔を見てみたい。 Effective Python › The Bookwww.effectivepython.com 子クラスのインスタンスから親クラスの初期化をしたい場合はsuper使え、というタイトルオンリーな話。 クラス階層のメソッドの検索順序はMethod Reso…

『Effective Python』Item 24: ジェネリックなオブジェクト構築には@classmethodポリモーフィズムを使おう

『Effective Python』の続き。__init__のポリモーフィズム? Effective Python › The Bookwww.effectivepython.com Googleに勤務する筆者らしく、MapReduceの構築を例にジェネリックなオブジェクト構築を説明している。 ハードディスク上の巨大なファイルの…

『Effective Python』Item 23: 単純なインタフェースではクラスの代わりに関数を受けよう

『Effective Python』の続き。Callableなクラスも。 Effective Python › The Bookwww.effectivepython.com listのsortメソッドやcollections.defaultdictのdefault_factoryに渡すような函数についての話。 他の言語だとフックを実現するには抽象クラスを定義…

『Effective Python』Item 22: 辞書やタプルで保持するよりもヘルパークラスを使おう

『Effective Python』の続き。リファクタリング! Effective Python › The Bookwww.effectivepython.com Pythonの辞書は便利だなあと思いつつ、次から次へと湧いてくる仕様変更・追加機能に対応していくと酷い目に合う。 生徒の成績を管理するコンテナを作る…

『Effective Python』Item 21: キーワード専用引数で関数をわかりやすくしよう

『Effective Python』の続き。Chapter2.の最後を飾るのはキーワード専用引数。 Effective Python › The Bookwww.effectivepython.com 割り算で、オーバーフローとかゼロ除算を無視して扱いたい、という場合、以下の様な気のきいたオプション付きの函数が書け…

『Effective Python』Item 20: 動的デフォルト引数ではNoneとドキュメンテーション文字列を使おう

『Effective Python』の続き。デフォルト引数の評価は作成時一度のみ。繰り返しませんのでどうか皆様Noneを使ってdocstringをお書きください。 Effective Python › The Bookwww.effectivepython.com 前回『Effective Python』Item 19: キーワード引数でオプ…

Pythonで函数の型チェック

先日、 第6回Python文法詳解を詳解する会に参加した。 python-in-depth.connpass.com デコレータと聞いたので、予習としてデコレータによる型チェック機能をPythonで実装した。 引数とアノテーションに関する情報はinspectモジュールで取得、逐一isinstance…

『Effective Python』Item 19: キーワード引数でオプションを提供しよう

『Effective Python』の続き。すごいぞキーワード変数。 Effective Python › The Bookwww.effectivepython.com 筆者はキーワード引数の利点として3つあげている。 函数の呼び出しの意図が明確になるから。 函数定義時にデフォルト値を定義できるから。 後方…

Pythonによる体上の多項式環

整数剰余環の次は体上の多項式環である。 j2kun/finite-fields · GitHubを参考に…どころか数学的な部分はまる写しという体たらくである。 メタクラスを使ったり、コメントをつけたり、unittestを書いたのが私の頑張った範囲である。 プログラミングによる有…

Pythonの組み込み函数sumについて

Pythonで有限体を実装しようと思い立ち、j2kun/finite-fields · GitHubを参考に体上の多項式環を実装しようとしていた。 多項式の和で組み込みのsumを利用しようとしたらTypeErrorが生じた。原因を調べたところ、sum内で組み込み型intと自作の体のクラスと__…

バージョン管理がない世界

バージョン管理は記憶力とファイル名、Diffは人力で色を変えるという地獄で働いているXaroさん— Xaro (@CardinalXaro) 2015, 6月 12 日経SYSTEMという雑誌に「新3種の神器を導入しよう」という記事がある。 調査で分かった!ITの現場「新3種の神器」 - 新3種…

Pythonでメタクラスを使ってみたかった

先日、 第5回Python文法詳解を詳解する会に参加した。 Python文法詳解を詳解する会 - 第5回 (2015/06/10 19:00〜)python-in-depth.connpass.com Pythonの名前空間とクラスに関する話が続き、最後にメタクラスが登場した。 メタクラスは名前こそ聞いたことが…

カミカゼOJT -理論と実践-

元寇の時の故事に由来して、思いがけない幸運に恵まれることについて「神風が吹く」という表現が使われる。 また、神風特攻隊に由来して、身の危険を省みない攻撃に対する比喩としても用いられる。 神風 - Wikipedia はじめに 皆様はカミカゼOJTというのをご…

Wordにソースコードを貼る

どうでもよい前書き 何故、あなたはWordでソースコードを扱うことになったのだろうか、胸に手を当てて考えて欲しい。 テキストファイルで十分じゃないか?そう思うのであればテキストファイルを使うべきである。 しかし、Wordでソースコードを扱いたくないの…

整理整頓すると仕事ができるようになる?

最近、私の周囲で整理整頓をしましょう、整理整頓が出来る人は仕事が出来る、相関関係がある、という話をよく聞く。 このような正論に何か言うのもはばかれるが、何とも言葉にしがたい違和感を感じている。 その言葉にしたがい何かを文章に起こすことで頭の…

第4回Python文法詳解を詳解する会に参加して

第4回Python文法詳解を詳解する会に参加した。講師である石本さん、会場である(株)クロス・マーケティング様には感謝を申し上げたい。初台は大学時代通過するだけの駅で初めて降りた。なんだかお洒落なビルであった。 折角なので、記録したメモを公開したい…

『Effective Python』Item 18: 可変長引数で視覚的ノイズを減らそう

『Effective Python』の続き。*argの使い道。 Effective Python › The Bookwww.effectivepython.com Pythonの函数の引数に*をつけると可変長引数となる。Item 18では2つ注意点をあげている。 まず、*をつけるとタプルとして展開される点である。 例えば、次…

『Effective Python』Item 17: 引数によるイテレーションは防御的に行う

『Effective Python』の続き。イテレータは使い捨て。 Effective Python › The Bookwww.effectivepython.com イテレータは状態を持っている(ステートフル)ので、「使い終わった」という状態が存在する。また、「使い終わった」と「元々何も無い」が区別で…

『Effective Python』Item 16: リストを返す代わりにジェネレータを検討しよう

『Effective Python』の続き。ジェネレータ便利みんな使おう。 Effective Python › The Bookwww.effectivepython.com まだ翻訳したのはItem 16までであるが、『Effective Python』には大きく2つのテーマがあると思う。 ビジュアルノイズを減らせ メモリ不足…

『Effective Python』Item 15: クロージャと変数スコープの関係を知ろう

『Effective Python』の続き。Pythonのスコープを勉強しなおした。 Effective Python › The Bookwww.effectivepython.com クロージャを理解しようとして書いたのが次の実用性に欠けるコードである。 def outer(out): def middle(mid): def inner(inn): print…

『基礎からわかるTCP/IPネットワークコンピューティング入門 第3版』を読んで

『基礎からわかるTCP/IPネットワークコンピューティング入門 第3版』を読んだ。 基礎からわかるTCP/IP ネットワークコンピューティング入門 第3版作者: 村山公保出版社/メーカー: オーム社発売日: 2015/02/26メディア: 単行本(ソフトカバー)この商品を含む…

『Effective Python』Item 14: Noneを返すよりも例外を発生させよう

『Effective Python』の続き。第二章突入。 Effective Python › The Bookwww.effectivepython.com 第二章は函数の扱い方。返り値にNoneというのはやったことがないが、結構使われているのだろうか。 何が問題なのかは次のコードで一発だと思う。 def divide(…

『Effective Python』Item 13: try/except/else/finallyブロックを活用しよう

『Effective Python』の続き。for/elseとtry/except/else/finallyのelse`の扱いの違いとは Effective Python › The Bookwww.effectivepython.com タイトル通り、try/except/else/finallyをフル活用しようぜ、という話。 try/finallyは確実に終了処理をしたい…

『Effective Python』Item 12: forやwhileループ後のelseブロックは避ける

『Effective Python』の続き。for/else、while/elseダメ絶対 Effective Python › The Bookwww.effectivepython.com Python 言語リファレンス — Python 3.4.2 ドキュメントを読むと、for文やwhile文の後にelse節を追加できることが書いてある。 筆者は、いか…

『Effective Python』Item 11: 複数のイテレータを同時に処理するならzipを使おう

『Effective Python』の続き。そろそろAmazonのリンクは目障りなので外す。アフェリエイトなどやっていないのでね…。 Effective Python › The Bookwww.effectivepython.com 互いに関連している複数のリストを処理する際に、 names = ['Cecilia', 'Lise', 'Ma…

『Effective Python』Item 10: rangeよりもenumerateを使おう

『Effective Python』の続き。 Effective Python: 59 Specific Ways to Write Better Python (Effective Software Development Series)作者: Brett Slatkin出版社/メーカー: Addison-Wesley Professional発売日: 2015/03/08メディア: ペーパーバックこの商品…

『Effective Python』Item 9: 大きなリスト内包表記ではジェネレータ式を検討しよう

『Effective Python』の続き。みんな大好きリスト内包表記第三弾。 Effective Python: 59 Specific Ways to Write Better Python (Effective Software Development Series)作者: Brett Slatkin出版社/メーカー: Addison-Wesley Professional発売日: 2015/03/…