このサイトについて
Pythonで嫁を見つけた話 - みんなのPython第四版に寄せて

Pythonで嫁を見つけた話 - みんなのPython第四版に寄せて

まもなく発刊される拙著みんなのPython 第四版の改訂向け執筆を終えた。

初版の発売は2006年で,今年はちょうど10年目になる。そこでふと,もしPythonを使っていなかったらどうなったろう,と考えてみた。そして重大なことに気づいた。

みんなのPythonを書く少し前,2005年ごろの僕は,今以上に後先考えないで行動するオッサンだった。当時まだ日本では無名に近かったPythonのより新し情報を仕入れ,本場のオープンソース関連カンファレンスに行って技術の成長点の雰囲気を味わうべく,ワシントンDCで開催されたPyCon USに行ってみよう,と突然思ったのだった。今以上に英語ができなかった僕は,頭がキレッキレの第一線級エンジニアが繰り出す早口の英語トークも聞き取れるはずもなく,おまけに機内で米国人のパーサーにコーヒーを頼んだらコーラが出てくるような始末であった。

そんなことがあり,海外からの情報を咀嚼して活かし,この先生き残るには英語を勉強するしかない,と決心したのだった。そして通い始めた英語学校で嫁と出会い,結婚に至ったのだった。

そうだ。Pythonを使っていなかった時間線の僕は,嫁と出会っていなかったはずなのだ。嫁と出会っていなかったとしたら僕は,今のようには暮らしていなかったと思う。

仕事の面を振り返ると,Pythonを使っていたおかげでいただけた案件がとても多い。Pythonを使っていなかったら,今のように悠々と仕事をしていられなかったと思う。PythonはWebやクラウドなど先端的な技術分野で牽引役と言ってもいい立場にずっと立ち続けてきた。近年,機械学習・AIやデータサイエンスの分野において,Pythonが重要な役割を果たしているのがその証左と言える。

つまり,Python周辺の成長点を追い続けることで,これから来る技術にいち早く触れることができるわけだ。そのおかけで,個人事業主に毛が生えた程度の僕には不釣り合いなほど大きな案件にも多く関わって来れた。今は自社サービスだけで細々と食べて行けるようになったので受託の開発は受けなくなってしまったけど,先端分野を追ってサービスに活かしていることには変わりがない。

昔話はこのくらいにして,未来の話をしてみよう。10年先のことを言い当てるのは難しいけど,一つ確実に分かっていることは,日本の人口が1,000万人ほど減っている,ということだ。人口構成も大きく変化し,労働力人口は今以上に減っている。過疎化が進み,地方を中心に地域を維持できない自治体が増えてゆく。

AI,人工知能技術は,今望まれているほど発達していないと思う。今のブームはどう見ても過剰すぎるので,その反動で急激に注目を集めなくなってゆくとすら思っている。しかし,機械学習の分野は,増え続けるデータを,確率や統計の手法を使ってよりインテリジェントに処理するための手法として,今以上に一般化するはずだ。

10年後の日本では,ドローンやIoTデバイス,自動運転自動車やロボットなどの技術が,マンパワーの不足をうまく補っているだろうか。過疎化と同時に進む過密化の解消を,うまく次世代のイノベーションにつなげて行けるだろうか。

10年間,僕がなんとかやってこれたのは,紛れもなくPythonのおかげだ。愛する家族も得て,今こうして幸せに暮らしているのもPythonのおかげだ。

今から10年後,僕は何をしているだろう。そしてみなさんは,10年後何をしているだろう。そんな気持ちを添えて,10周年を迎えたみんなのPython 第四版をお届けする。

2016-11-25 12:00 Read More
Pythonのプログラムをワンライナー化するOnelinerizerがいろんな意味ですごい

Pythonのプログラムをワンライナー化するOnelinerizerがいろんな意味ですごい

Pythonのプログラムを構成する要素には大きく分けて「式(Expression)」「文(Statement)」がある。式とは演算式や比較式,オブジェクトのリテラル,関数呼び出しなど。一方,文は,if文,for文や関数定義,クラス定義やモジュール/パッケージのインポート,そして代入,など。式は改行を要求しないので,一行にいくらでも連ねることができるけど,文は改行や,しばしばインデントを伴うブロックを要求する。

Pythonは文と式がきっかり分かれている。そんなわけで,Pythonではプログラムを一行で書くいわゆる「ワンライナー」がつくりにくいと言われている。Pythonでワンライナー作るとき,文をいかにして式に変換するか,というテクニックを駆使することになるんだけど,lambda式を駆使したり名前空間を無理矢理貪ったりするような技巧の数々はたいてい変態的で,だからこそプログラマの魂を揺さぶって一定の人々の興味を常にかき立てるのかも知れない。

ここで紹介するOneliner-izerは,Python2のワンライナーに斜め上から挑戦したツール。スクリプトを食わせると,文法解析して自動的にワンライナー化してくれる。

たとえば,次のようなコードは

s = "いっぱい"
print s.replace("い", "お", 1)

次のように変換されます。

(lambda __g, __print: [(__print(s.replace('\xe3\x81\x84', '\xe3\x81\x8a', 1)), None)[1] for __g['s'] in [('\xe3\x81\x84\xe3\x81\xa3\xe3\x81\xb1\xe3\x81\x84')]][0])(globals(), __import__('__builtin__').__dict__['print'])

なんだかすごい。昔書いたこの記事を思い出した。

コードを読んでみると,ast使って変換してるらしい。GitHubのページ見ると「from XX import *とyieldとwithには未対応」ってなっていて,逆に言うとそれ以外には対応してるってことらしくてすごい。なお,yieldとwithはOpen Problemsとなっており,あきらめてないっぷりがすごい。

作者のチェルシーさんはMITの学生さん。PyCon 2016でトークしてて,内容もすごいしっかりしてるし,Pythonの勉強になってすごい。完全なる才能の無駄遣いっぽいけどそれがまたすごい。どうやったらうちの姫様をこんな素敵なお嬢さんを育てることができるのだろうか。

2016-11-09 17:00 Read More
シン・ゴジラはアンノ自身の再生・覚醒の物語だ

シン・ゴジラはアンノ自身の再生・覚醒の物語だ

実は一度だけプライベートのリアル庵野を見たことがある。神奈川県内のとあるパーキングエリアの売店でのことだった。2013年ごろ,エヴァQが終わってしばらくした頃で,エヴァを完結すべく製作に邁進しているはずの庵野さんがなんでこんなところにいるのか,その時は正直不思議でならなかった。

声をかけようかとも思ったのだけど,妙におどおどしているというか,自信なさげな表情で,「気づいてくれるなよ」といった負のオーラを発していた。そのまま遠巻きに見ているとカールを買ってそのまま売店を出て行ってしまって,スナック菓子が主食って本当だったんだなぁ,と思ったりした。

その時の,数々のヒットアニメを手がけた巨匠,というイメージからはほど遠い印象の彼の沈んだ表情が,妙に頭から離れなかった。

宮崎駿の「風立ちぬ」に声優として出演することを知ったのはそれからしばらくしてからのことだった。そういうニュースを目にする度に「エヴァはよ」と心の中でつぶやきながら,あの時の庵野さんの表情を思い出していたのだった。

そうこうしているうち,東宝の「ゴジラ」の総監督を務めることが発表されたのだった。このニュースを知ったときの正直な感想は「またわざわざ火中の栗を拾うようなことを」だった。成城の東宝スタジオに隣接したスーパーやホームセンターによく買い物に行くのだけど,スタジオの壁一面には大きなゴジラが描いてある。東宝にとってそれくらい大きな知財であることろのゴジラを,長い歴史があって手垢がつきまくったコンテンツを,なぜ,また,いま,アンノが。

東宝スタジオの壁に描かれたゴジラ

庵野さんが,エヴァQの後,鬱状態になっていたのを知ったのはその後のことだった。パーキングエリアで見た庵野さんは,多分半ば逃げ場を求めるように放浪していたのに違いない。そういう前提があってのあの表情。

この事実を知ってから,関連したエピソードが線になって繋がったのだった。自ら生み出したコンテンツに一端は打ち負かされながらも,師匠と慕う人から信頼され奮い立つアンノ。あるいは,朋友出渕裕が見事に現代のコンテンツとしてよみがえらせた宇宙戦艦ヤマトに鼓舞されるアンノ。日本のアニメーターを救うべく立ち上がり,ついには東宝が一度は手放したビッグIP再生の先陣に立つアンノ。こう見ると,シン・ゴジラは庵野氏自身の再生の,そして覚醒の物語であったのではないかと思えてくる。

彼が主人公に語らせたセリフ「この国はまだまだやれる・この国は立ち直れる」の主語は「オレ」と置き換えてもいいだろうし,はたまた「この国の特撮」とか「この国のアニメ」と置き換えてもいい。そして,このセリフの主語を見た者自身に置き換えた言葉こそ,この映画が持つ本当のメッセージなのではないかと思う。嫁さんとすばらしいできの本編を見たとき,そんなことを思いながら,熱い気持ちがこみ上げてきたのだった。

2016-08-18 17:00 Read More
自宅の庭にウッドデッキを作りました

自宅の庭にウッドデッキを作りました

自宅のウッドデッキ

去年の12月に新築した世田谷区某所の自宅は思いのほか庭が広い。家族といろいろ活用計画を練りながら,庭にウッドデッキを作ることにした。設計から業者に頼んでもよかったんだけど,どうせならと思って自分達で青写真かいて作ろうと思ったのだった。ソフトウエアの開発と土木とか木工って根底では繋がっていると思っていて,ソフトウエア開発の分野でもとんがった部分に触れながら培ってきた,未知の領域に踏み込む手法とか,不案内な場でもできるだけ迷わずしなやかに出口にたどり着く方法論なんかを,別の分野でも試してみたかった,というモチベーションもあった。いろいろ調べていたらキットのウッドデッキを見つけたりして,これなら行けそう,と判断して自作することにした。

木工で一番大変なのは木材のカット。このキットはあらかじめ寸法を出しておけば,部材を必要なサイズにカットして届けてくれるので,大変な部分を初心者がやらなくて済み,手軽にデッキを作れ,失敗する可能性も低くなる。

これが施工前の様子。

ウッドデッキを作る前に,通路側のコンクリをはがして庭部分を拡張したかったのだけど,この工事はDIYの範疇を超えるので業者さんにお願いした。

そして工事後。広くなった部分と通路との仕切りを作り,黒土を入れてもらって家庭菜園にする予定。

黒土のエリアを仕切るため,またウッドデッキ側に敷く敷石の土留めのため,レンガ仕切りをつくる。

ウッドデッキ側の,ブロック塀脇に花壇を作り,シンボルツリーを植えるための円形の仕切りを,同じくレンガで作り込む。そして,砂利を挽く前に,雑草避けのために防草シートを敷くところまでが事前準備。

防草シートの上に,デッキの土台となる束石を置いて行く。ここで念入りに並行を出しておくと,あとあとの作業が楽になる。

束石を置いたら,その上に束を置いて行く。この束はウッドデッキキットの販売業者さんが設計した特別製で,ボルトで高さの調整が出来る。束を木で作ると,束石のレベルを合わせる必要がある(これが難しい)んたけど,束の高さを調整できるようになっているため,束石の段階では平行だけ出しておけばよく,作業が楽になる。

束を置いたら横引きを設置。建物側を基準に,だいたい直角&平行を出しておき,横板を置いて縦横の並行を出す。平行が出たら,横板を木ねじで仮留めして,対角線の長さを測る。対角線の長さがそろっていれば,デッキ外縁の直角が出ている,ということになる。木工や土木の作業はこういうノウハウのかたまりだ。位置が決まったら,デッキ下にホームセンターから2トントラックで運んできた敷石を敷く。

庭でなにかやってるのが気になるワンコ。

デッキ周囲の直角が出たら,横板を乗せて木ねじで留めて行く。

このとき,スペーサーを使いながら,隙間を均等に保つようにする。直角が出ていて,かつ寸法があっていれば,大きく隙間があいたりすることはまずない。逆を言うと,ここまでいかに丁寧に仕事を進めてきたかが重要,というわけ。

最後に,オプションの手摺を設置する。まずは柱を取り付ける。

パパの真似をしたがる息子ちゃん。

手摺は,スタイリッシュな横板のあるタイプを選んだ。手摺の横板も,間隔を均等に保つようにつけてゆく。

最後に,大引きと横板が見えている部分に鼻隠しという板を打ち付けて,デッキの完成。

この状態で庭全体の完成度としては70%くらい。このあと,防草シートの見えている部分に敷石を敷いて,花壇に草花を,シンボルツリーを植える。家庭菜園部分を作って庭と通路の仕切り,扉を設置して,庭にわんこを放せるようにしたら完成。年内にできるといいな,というところ。

2015-11-24 14:00 Read More
最近のジャニーズ Jr.はPythonをやるらしいです

最近のジャニーズ Jr.はPythonをやるらしいです

みんなのPythonを読む阿部君 1

Twitter検索してたら「ジャニーズJrの阿部くんって子がみんなのPython読んでるよ」っていうTweetを発見。「マジか? ホントだったら著者として超自慢できるやんけ」と思ったので,インタビューが載ってる「ダンススクエア」っていう雑誌をアマゾンで購入。

そしたら,

みんなのPythonを読む阿部君 2

読んでる!!!

みんなのPythonを読む阿部君 3

本当に読んでるよ!!!!

雑誌に掲載されている阿部亮平くんのインタビューも読んでみた。なんでも,ダンスや歌があまり得意でないらしく,ジャニーズの中での立ち位置について悩んでおり,ジャニーズのお勉強マンとしての地位を確立するため,仕事を半年休んで一般入試で大学(上智らしい)に現役合格した努力家らしい。イケメンで背が高い阿部くんのスペックでも,ジャニーズの中では埋もれてしまうという危機感を感じるほど,競争が激しいってことなんだなきっと。あるいは,歌もダンスもかなりイケてても「まだまだ」って思える向上心のなせるわざなのかもしれない。

体脂肪率とか一桁でジュニアでそこそこ活躍してて,その上でPythonやるんだぜ。Pythonやってるオッサンが筋肉鍛えてるのとレベルが違うんだぜ。そういう子がPython選ぶ世の中なんだぜ。普及を超えてコモディティ化してるよPython。

「Pythonできます」

「ジャニーズの子もやってるらしいけど,キミはイケメンでダンスとか歌できて向上心も満点なの?」

「ゴメンナサイ」

って会話が成り立ちかねない世界において,古参のPythonistaはどのように闘っていけばいいというのか。今回の一件を嫁に自慢したり,息子が通ってるプールの待合室で周りに聞こえるようにひとしきり喋ったりしながら,そんなことを考えたりしたのでした。もはや「Pythonやってます」ってだけでクールな時代はすっかり過ぎ去って,Pythonで何をやっているのか,もっと言うと,どんな価値を生み出しているのかまで考えてはじめてクールってことになってきているんだと思います。

あと,阿部くん応援してます,Python教えます。

そして後日談がwww。

2015-10-01 14:00 Read More