何かを書き留める何か

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

Final Fantasy XII サブイベント「キャビンチーフ七姉妹」を効率的に攻略する

突然のゲーム攻略エントリ だいぶ前にFinal Fantasy XII The Zodiac AgeのNintendo Switch版を購入し、先日ラスボスを撃破し、現在2周目をやっている。 FF12のサブイベントに「キャビンチーフ七姉妹」というものがあり、飛空艇定期便の「ゆったり飛空艇」の…

『コンピュータ・システム』読書記録

図 2.4 のコード オブジェクトのバイト表現を表示するコード。 ポインタのキャストを活用している。 #include <stdio.h> #include <string.h> typedef unsigned char *byte_pointer; void show_bytes(byte_pointer start, size_t len){ size_t i; for (i = 0; i < len; i++){ pr</string.h></stdio.h>…

『ゼロからはじめるデータサイエンス 第2版』の技術査読を担当しました

ゼロからデータサイエンスも第2版 2020年5月1日にオライリージャパンから『Data Science from Scratch, 2nd Edition』の邦訳である 『ゼロからはじめるデータサイエンス 第2版』が発売される。 www.oreilly.co.jp この度、邦訳の査読者として参加させていた…

Pythonのタプルに括弧は必要なのかどうなのか

タプル同士の比較、そう思っていた時期が僕にもありました。 Pythonで式True, True, True == (True, True, True) がどう評価されるのか、頭の中で考えてみてほしい。 そして、お手元のPythonインタプリタで True, True, True == (True, True, True) を実行し…

『Pythonではじめる教師なし学習』の査読を担当しました

その先の機械学習へ 2020年4月13日にオライリージャパンから『Hands-On Unsupervised Learning Using Python』の邦訳 『Pythonではじめる教師なし学習』が発売される。 www.oreilly.co.jp この度、邦訳の査読者として参加させていただいた。 オライリーの方…

PyCon mini Shizuokaにオンラインで参加しました

久しぶりの静岡、初めての藤枝、になるはずだった 2020年2月29日に藤枝 BiviキャンにてPyCon mini Shizuokaが行われる予定であったが、新型コロナウィルスの影響でオンライン開催となった。 shizuoka.pycon.jp shizuoka.pycon.jp 今回、『君はcmathを知って…

『データサイエンス設計マニュアル』の査読を担当しました

統計学と計算機科学の枠を越えたデータサイエンス 2020年1月28日にオライリージャパンから『The Data Science Design Manual』の邦訳 『データサイエンス設計マニュアル』が発売される。 www.oreilly.co.jp この度、邦訳の査読者として参加させていただいた…

朝礼あれこれ

最近、巷で朝礼なる概念が流行っているので、忘れないうちに経験したことがある朝礼を書き綴ってみる。 1社目:定時の30分前に始まる朝礼、定時の1時間前に始まる定例会議 週一回、決まった曜日に定時の1時間前から定例会議が行われていた。 内容は本社で行…

去る言語への餞

お亡くなりになったんだ。このバージョンは、この世を去ったの。事切れてしまった。息を引き取り、GvRの御許に逝かれた。これは『元メジャーバージョン』。EoL。命尽きて、電子の海に還っていった。Python 3移行でもめていなければ、今頃はひな菊いっぱいの…

2019年大反省会

自分以外特に誰も楽しみにしていない、年末恒例の反省会エントリを書く季節がやってきた。

『Pythonによるファイナンス 第2版』の査読を担当しました

金融もPythonでやろう 2019年12月26日にオライリージャパンから『Python for Finance, 2nd Edition』の邦訳『Pythonによるファイナンス 第2版』が発売される。 www.oreilly.co.jp この度、邦訳の査読者として参加させていただいた。 オライリーの方から話が…

『Effective Python 2nd ed.』項目5:複雑な式の代わりにヘルパー関数を書く

不変でも進化する 『Effective Python 2nd ed.』の続き effectivepython.com 項目5は初版の項目4の続投であり、主張もそのままである。 Python特有の主張ではなく、どの言語でも大事にするべき項目である。 それでは何も変わっていないのか、というと、実は2…

『Effective Python 2nd ed.』項目4:C言語形式の書式化やstr.formatではなくフォーマット済み文字列を使おう

フォーマット済み文字列は単なる糖衣構文、そう思っていた時期が僕にもありました。

『Effective Python 2nd ed.』項目3:bytesとstrの違いを知ろう

実質的に初版のItem 3の続投であるが、初版はPython 2の文字列である`str`と`unicode`、Python 3の`bytes`と`str`の違いを含めて説明があったが、 2版ではPython 3向けの説明に特化して更新された。 単純にPython 2向けの説明を削ったのではなく、システムの…

『Effective Python 2nd ed.』項目2:PEP 8スタイルガイドに従おう

言語に依存しない原則 『Effective Python 2nd ed.』の続き effectivepython.com これも初版からの続投であるが、コーディングスタイルを揃えるという話題はPythonに限らずどの言語でも重要なことである。 Pythonの場合、PEP 8という形で広く使われているコ…

『Effective Python 2nd ed.』項目1:使っているPythonのバージョンを知ろう。

11月まで楽しみに待っていよう...と思っていたが、O'Reilly Learningから電子版が読めることが分かった(!)ので、少しずつ読み進めてみよう。

PyCon mini Hiroshima 2019に参加しました

初めての広島 2019年10月12日に広島市立大学サテライトキャンパスにてPyCon mini Hiroshima 2019が行われた。 今回、『Pythonで楽しむ初等整数論』という題目で発表を行った。 hiroshima.pycon.jp 何度か技術系のカンファレンスやイベントで発表をしたり、聴…

『NumPyによるデータ分析入門』の査読を担当しました

ありそうでなかったNumPy本 2019年9月27日にオライリージャパンから『Mastering Numerical Computing with NumPy』の邦訳『NumPyによるデータ分析入門』が発売される。 この度、邦訳の査読者として参加させていただいた。 オライリーの方から話があったのは2…

『レガシーコードからの脱却』を読んだ。

知っていることと実践することは違うよ オライリージャパンさんから『レガシーコードからの脱却』を頂きました。 ありがとうございます。 www.oreilly.co.jp 本書は、レガシーコード(修正や拡張が難しいコード)をどうするかというより、そもそもレガシーコ…

Pycon JP 2019に参加しました。

ブースのお守り 2019年9月16日、17日にPyCon JP 2019のカンファレンスが行われた。 2014, 2015, 2016, 2017, 2018に続いて6回連続6回目の参加である。 今回は2回連続2回目のスポンサーブースの主担当者として参加という今までとは趣が異なる立場でのPyCon JP…

辞書のリストから重複した辞書を取り除く

困った時のitertools Pythonにおいて、リストから重複を取り除く手段としてよく取り上げられるのが集合set()に渡して取り除く方法である。 >>> a = [1, 3, 2, 3, 6, 2, 5] >>> a = list(set(a)) >>> a [1, 2, 3, 5, 6] この手法の欠点は、集合の要素はハッシ…

『 Linuxプログラミングインタフェース』を気合いで読む会 第7回:6章プロセス:環境変数の編集

スタックとヒープの違いが見抜ける人でないと(putenv()を使うのは)難しい 『 Linuxプログラミングインタフェース』6章の環境変数の続き。 C言語で環境変数を扱うための関数はstdlib.hに用意されているが、その中でも扱いが難しいのがputenv()である。 int …

『 Linuxプログラミングインタフェース』を気合いで読む会 第6回:6章プロセス:環境変数の表示

環境変数の環境とは 『 Linuxプログラミングインタフェース』6章では環境変数も扱われている。 プロセスごとに環境変数が設定されていて、Linux上では/proc/PID/environから、C言語上ではグローバル変数**environから取得する。 Python os.environに辞書形式…

『 Linuxプログラミングインタフェース』を気合いで読む会 第5回:6章プロセス:コマンドラインパラメータ

nechoとは 『 Linuxプログラミングインタフェース』6章はプロセスの話。 とりあえずすぐに書けそうだった(というより散々書いてきた)コマンドラインパラメータ取得のサンプルコードをPythonおよびRustで書いてみる。 C言語の場合はargcとargvであるが、そ…

『 Linuxプログラミングインタフェース』を気合いで読む会 第4回:5章ファイルIO詳細

ファイルディスクリプタを複製すると何が起きる? 『 Linuxプログラミングインタフェース』5章はファイルIO詳細ということで、fcntl周りの話などがメインである。 演習問題としてファイルディスクリプタを複製するdupコマンドおよびdup2コマンドをfcntlで実…

『 Linuxプログラミングインタフェース』を気合いで読む会 第3回:ファイルIO演習

1対1対応の演習で例題しかやらなかったタイプ 『 Linuxプログラミングインタフェース』4章の演習としてteeコマンドの実装をする。 teeコマンドは標準入力をEOFまで受け取り、標準出力と指定したファイルに書き出すコマンドである。 デフォルト動作は、指定し…

『 Linuxプログラミングインタフェース』を気合いで読む会 第2回:ファイルIO後半戦

l is for long int 『 Linuxプログラミングインタフェース』4章の後半戦としてlseek()を使ったプログラミングを行う。 lseek()はファイルオフセットを操作するシステムコールである。 名前のlはlongの意味で、引数offsetと返り値がlongであった名残だそうで…

『 Linuxプログラミングインタフェース』を気合いで読む会 第1回:ファイルIO前半戦

転回 『Unix/Linuxプログラミング 理論と実践』をダシにしてRustのお勉強、システムプログラミングよりのPythonのお勉強をしようと思い立ったものの、『Unix/Linuxプログラミング 理論と実践』の who コマンド実装でmacOSとDocker上のUbuntu Linuxの違いで疲…

『Unix/Linuxプログラミング 理論と実践』をダシにしてRustのお勉強をする会

些細なる第一歩 プログラミング言語Rustの勉強をしたいと常日頃考えていたが、中々手を出せずにいた。 ずっと仕事ではPythonを使っているが、それしかできないのは流石に幅が狭かろう、と。 少しだけ『The Rust Programming Language 2nd edition』を読んで…

『Python計算機科学新教本』の査読を担当しました

2019年6月25日にオライリージャパンから『Classic Computer Science Problems in Python』の邦訳『Python計算機科学新教本』が発売される。 この度、邦訳の査読者として参加させていただいた。