matobaの備忘録

育児しながら働くあるエンジニアの記録

PyConJP 2017 初日の基調講演

PyConJP 2017にいって来ました。

ざっくり

PyConJP 2017の初日、楽しかったです。 たくさん知らないことが知れたのと、面白そうな話をたくさん知れたので勉強したいなあ、という気持ちになりました。

ここからは僕のツイートを貼り付けつつ、話を思い出しながら書いていきます。

基調講演の話

初日は、anacondaを開発するーーのーー、ーーー氏の基調講演から始まりました。 英語での発表なのですが、PyConJPの基調講演は同時通訳が付いていて、レシーバーから日本語を聞くことができます。

後日談的には、同時通訳のレシーバーは、はじめから席に置いてあって、数に限りがあったらしいですね。僕はなかったので、スライドを見ながら雰囲気で楽しみました。

内容に関する情報ツイートを貼り付けつつ、補足も書きます。

英語はあんまり聞き取れないけど、スライドから読み取るには、データ分析を行うプログラミング言語として、Pythonがいろんな分野の人に使われていて、そのいろんな分野が話をする共通言語として、Pythonが利用されている。という話をしていた。

あと、データ分析をするためのライブラリやフレームワーク、システムはたくさんあるけど、データのフォーマットが違ってその変換に時間がかかるが問題になってるらしい。

そして、その変換の橋渡しのためにApache Arrowの開発が進んでいる。という話もあがっていた。

あと、質疑応答周りでPyPIとかの話が出てたみたいだけど、僕は英語を聞き取れなかったのでよくわからない。ただ、白熱していた様子だった。

Twitterに参考資料が流れてきたので、僕は読んで勉強してた。

コンピュータに詳しくない人がPythonでデータ分析をするための環境を簡単に整えるための1つの方法としてAnacondaが作られた。そして、Anacondaはこれまで、Pythonコミュニティが議論してきたパッケージ管理の仕組みに従ってない。という話のようですね。

wheelとかまだよくわかっていない部分があるので、これから勉強していきたいなあ。

さて、、、少し長くなって来たので、ひとまず、ここで切り上げます。

githubに趣味で作ったもののソースをあげた話

唐突な話ですが、以前からOSSを作ってみたいと思っていたので、作ってみました。

と、いっても大したものを作った話ではなくて、 ちょうど趣味でプログラムを書いている時に作ったソースをgithubにあげてみただけです。

github.com

経緯

  • 過去のブログ記事を、はてなブログ(非公開)にインポートして、整理していた。
  • カテゴリがぐちゃぐちゃすぎるので整理して から公開したい。
  • 最初は手作業で整理しようとしたが、記事の数が多くて嫌になってきた。(約500記事)
  • プログラムで整理しようと思い、はてなブログからエクスポートした。
  • はてなブログからエクスポートしたら、MovableTypeのエクスポートフォーマットだった。
  • Pythonで編集したかったけど、MovableTypeのライブラリで気に入った感じの見つからなかった。
  • MovableTypeのexportフォーマットを確認したら、簡単そうなので自分でパースすることにした。
  • ついでだし、githubにソースを公開しておこう。と思った。

思ったこ

  • MovableTypeのエクスポートフォーマットは、今の所簡単にパースできていて、ハマりどころはない。
  • とりあえず、githubにソースをあげるのは、なんとなく気分的に楽しい感じがする。
  • せっかくgithubを使っているので、一人でブランチを切って、PR出して、一人でマージする、をしてみたけど、やったことが整理しやすい
  • issueを使うと、もう少し整理しやすくなりそうな気がするので、もうちょっと適当にissueとか発行して使ってみたい。
  • githubはissueとPRの番号が、通し番号になっていることに気づいた。どういう運用を想定しているのかいまいちわからない。

vimの環境周りがなんか汚くて、困っている話

最近思っている悩みを話します。

みなさん、MacPCでの開発環境ってどうやって作っていますか?

複数のマシンがあるときに、どうやって開発環境を揃えたらいいのがわからず困っているところがあります。

いや、厳密には開発環境はある程度揃っているのですが、開発環境が汚くて困っています。

とりあえず、状況を説明します。

これまで、僕が使ってきたMacは、4台あります。

  • 個人用マシン1(2010年〜2014年)
  • 研究用マシン(2012年〜2014年)
  • 個人用マシン2(2014年〜現在)
  • 仕事用マシン(2017年〜現在)

僕が開発するプログラムの大部分は、Pythonです。 それぞれにPythonの開発環境を整えてきました。 よく考えてみると最近は、Pythonの開発環境そのものには、あんまり困っていません。

個人用マシン1を使ってた時は、よく困りました。 そもそもパッケージ管理とかよくわからなくて、適当にパッケージを入れまくりました。 その結果、マシン環境がカオスになりました。

研究用マシンを使い始めた頃には、「適当にPythonパッケージをインストールすると困る。」ということがわかってきていたので、 個人用マシン1でいい感じにインストールできたライブラリだけをインストールしていました。

その後、個人用マシン2を買ってからは、パッケージ管理というものがあるのもある程度わかり、virtualenvやpyenvを使いだしました。 Pythonのパッケージは、pipでインストールするようになりました。

最近は、基本的に、Python3のvenvを利用して環境を作り、pipでライブラリをインストールしています。 そうするとあんまり、Python周りの開発環境は汚くならないようになりました。

じゃあ最近は何を困ってるの?というと、vim周りのプラグインですね。

僕はPythonの開発環境に、vimを使っています。 なんで、vimを使ってるの?というと、vimを使ってる人がコーディングしているのを見て、 「vimってコーディングはええええええ!!!カッケーーー!!!!」ってなって、僕もそれやりたいと思ったからです。

で、最近、vimを開発環境をもっと整えたいと思いながら、色々模索しています。 そして、NeoBundleというvimプラグイン管理のライブラリ?を使っています。

ただ、この仕組みがあんまりよくわかっていないのか、ちょっと個人用マシン2の環境がおかしくなっています。 ちょいちょいプラグインのインストールエラーが出たり、動きがなんかおかしいような気がしたりします。

研究用マシンを作った時と同じく、仕事用マシンをインストールする時は、 結構慎重にインストールするので、環境は汚くなっていないのですが、個人用マシンが・・・・ね。

ってわけで、vimの環境をいい感じにしたいんだけど、どこからやり直せばいいんだろうと思っています。 vimの環境をクリーンにして、vimrcだけ持ってきたい気持ちです。

どうやったらいいんだろう。 vimを一旦アンインストールすればいいのかなあ。

作ってるモノのマイルストーンを公開すること

帰宅中の電車です。

昨日の話をします。昨日は、bpstudy#120 に参加しました。

BP-Studyはこちら。

bpstudy.connpass.com

そこで、boardというWebサービスを開発するヴェルクという会社の社長が登壇されてました。

スライドがこちらにあります。

www.slideshare.net

その話を聞いている中で、個人的にいいなあと思った話がありました。

それは、boardさんが、開発ロードマップを公開しているという話です。

それを聞いて僕は

いいなあ。開発ロードマップ。楽しそうだなあ。

と、思いました。

周りから見ていてても、開発ロードマップが公開されていると、ワクワクするように思うんですよね。

それがなんか楽しそうな気がするんですよね。

なんでいうんだろう。

周りに言っちゃったからなんとかしなきゃ!感があると言うか、なんとかしっかりしないと。と思うところがあるだろうし、今こういうの作ってるんだ。って周りの人と話もできるだろうし、そういうの楽しいんですよねえ。

いいなあ。

自分のモチベーションコントロールってかなり難しいと思うんですが、これだとモチベーションがあがりそうだなあと思います。

あと、開発マイルストーンが公開されてると周りの人と次のようなことを考えると思うんですよね。

あ、この機能そのうち作られるんだ。 ん?この機能は、まだ作られないのか。 あーこういう順番で機能が開発されるのか。 あっ、こないだロードマップに書いてたこの機能、作られたんだなあ。

それって周りの人もなんか楽しいと思うんです。 見ている方も楽しい感じ。それがすごいいい感じだなあ。と思いました。

とりとめないですが、今日はこれで。

僕も自分が作ってるもののマイルストーンを整理して公開したいですねえ。

僕の知らないデータベースのトレンドの話

こんにちは。できるだけブログを更新したいのですが、3日ほど更新が滞っていました。

改めて更新したいと思います。

 

今回はデータベースのトレンドの話です。

 

この記事の発端

そもそもの話として、この記事の発端について書きます。

前になんとなくAmazonで見つけた次の本を買いました。

7つのデータベース 7つの世界

7つのデータベース 7つの世界

 

この本の話を読み進めたいのです。

ただ、1つ1つ時間かかりそうだなあと思いました。

 

まあ、本を買った目的は知らないデータベースを知ることです。

 

今回は、ざっくりとデータベースのトレンドを調べたいと思っています。

 

 この本で紹介される7つのデータベース

本の中で紹介されるデータベースは次の7つです。

 へ〜、半分くらい知らないなあ。で、それぞれのDBが何なの?って思いました。

それぞれのDBがどういうDBか、という話は、本を読んでもらいたいです。と言うか、僕もまだ知りません。

 

最近のデータベース事情について、調べてみるのですが、今回はGoogleトレンドで、それぞれの技術がどれくらい流行っているのかを調べて見ます。上記のデータベース以外に、以下のデータベースも知っています。これも加えつつ、話を膨らませていきたいです。

 

個人的に思う有名どころの比較

個人的には、以下のあたりは有名じゃないかなあと思います。

まずは、世界規模でいうとこんな感じ。なるほど。

 

そして日本だけに絞ると、こんな感じ。

 

ふむふむ。日本ではOracleが強そうですが、世界的にみるとMySQLが強いんですね。まあ、どっちにしてもOracle社が管理してるんですが。

 

本で紹介されているDBの比較

本で紹介されているDBもトレンドを確認して見ます。

さっきまでトレンドを確認していたDBはリレーショナルDBですが、本で紹介されているDBのうち、リレーショナルDBは、PostgreSQLだけでした。

Google トレンドの使用上、一度に5つまでしかトレンドを確認できないので、PostgreSQLベンチマークにしつつ、4つ組、2つで見て見ましょう。

まずはこれ。

世界

日本

 PostgreSQLがじわじわ伸びているのは、世界で見ても日本で見ても同じ状況に見えます。ただ、世界規模で見るとMongoDBが伸びているのに、日本ではあんまり伸びていない状況。

これがどういうことをさしてるの?って話までは、今のところの僕ではわかりませんが、そのうち日本でもMongoDBが流行りだすかもしれないですね。

 

世界

日本

 こっちを見ているとRedisが少しずつ普及していっていますね。今後、日本でもRedisを使うケースが増えて行くのかもしれませんね。

 

終わり

今回は、新しく名前を聞いたDBのトレンドを調べて見ました。

個人的にPosgreSQLは、よく名前を聞くもののあんまり使ったことがないDBだったので、一度何かで使って見たいなあと思いました。

 また、今回、久しぶりにGoogleトレンドを使いましたが、Googleトレンドを使うことで、ざっくりと温度感を知ることができて、いいなあと思いました。

 

今後も、Googleトレンドは利用していきたいと思います。

 

あとは、使ったことのないDBは使ってみたいなあ。

 

イチローの流儀という本を読んだ話。

イチローの流儀という本を読みました。

イチローの流儀 (新潮文庫)

イチローの流儀 (新潮文庫)

先日の日記の中で、イチローに興味を持ったことがありました。

その興味を持った理由は、「イチローは、自分の1つ1つの打席について、打てた理由を説明できる。らしいそれはなぜだろう?」という部分でした。

blog.mtb-production.info

とりあえず、イチローに関する本を読んでみたいな。と思い、今回イチローに関する本を買いました。

目次です。

イチローの流儀という本を買った

今回買ってきた本はこちらです。 なんでこの本を買ったかというと、Amazonで安かったからです。 本の値段が20円で、送料が257円。 送料たけえな。という話はありますが、本屋に探しに行く手間を考えてAmazonで買いました。 (Amazon以外で、本を安く売ってるネット通販を探してもいいかも。)

念のため、著者のプロフィールも見ました。 新潮社でジャーナリストをされている小西慶三さんです。 オリックス時代から野球記者を担当していたようです。

先日のアドバイスを参考にして読み方を変えました。

本の読み方についての話をします。 先日、情報の消化に困っているという話をした日記を書きました。 そこに、id:hirokikyにブックマークでコメントをもらいました。

収集した知識を素早く応用するのに困っている話 - blog.mtb-production.info

僕の場合は、ざっと全体把握して脳みそにインデックスを作ってから、自分の知識に活かせる場所を深く読んでる。全体把握するときに自分の知識とか経験とか学びたいことを照らし合わせて、違いとか学びとかあるか見る

2017/08/17 08:37
b.hatena.ne.jp

そのコメントを参考にして、本の読み方を変えました。

コメントで興味深かったのが、役に立つ部分がどこかを考えて、そこを重点的に読んで行くという話でした。

実践した読み方

今回の場合、イチローは、なんで打てた理由を説明できるのだろう?という疑問があって、イチローの考え方や自己管理術について、知りたい。という風になりました。その目的を達成できそうな本を買ったので目的を達成するために、関係が深そうな節を探して読みました。

節は目次から探しました。今回は興味のある場所以外は読んでいません。 まあ、別にいいかなと思っています。著者の感想が聞きたくて本を読む場合は、前から細かく読んで楽しむのですが、今回の場合は、イチローの話を知りたいだけなので。

で、興味のある節から、できるだけカッコがついている文章だけを読みました。

カッコがついている文章は、イチローの発言の引用です。その前後に著者の解釈や説明が入っているのですが、解釈や説明は、主観が入って勘違いするのが嫌だなと思いました。だから、実際にイチローの発言部分だけを探して読みました。

イチローの発言だけを読んで行って、気になる発言が出てきたら、前後を読みました。

イチローの言語化能力

この本を読む前に、amazonのレビューも確認したのですが、そのレビューの中で気になる話がありました。それは「イチローは言語化能力が高い」という話です。

読んでいる中で、「確かにイチローは言語化能力がすごいなあ」と思いました。

じゃあ、もともと気になっていた部分は、イチローの言語化能力が高いから、説明できているってこと?って思ったりしました。

いや、その結論は微妙すぎると思います。言語化能力は高いんだと思いますが、高くなるような生活とか、考え方があるように思うのです。ちょっと今回は、僕が知りたかったイチローがなぜ自分が打てた理由を説明できるのか、という部分はわかりませんでした。

ただ、せっかく読んで、イチローの発言の中で、いくつか気になった言葉があったので、書き出しておきます。

イチローの言葉で気になった言葉

『お客さんがたくさん入ってればモチベーションが高まることはあるけれど、それいう風に見ている人から与えられる重圧ばかりを感じてしまうと自分の中の価値観そのものなそこにフォーカスしてしまう可能性が出てくる。 〜中略〜 僕には他の人がそう言っているからそれでいいとは思えないし、思わない。あくまで自分がどう感じるかが大事だから。』 イチローの流儀 P44

『注目されることを苦しいなんて思わない。だって注目されないと選手として終わってしまう。プレッシャーを取り除く方法?簡単です。ヒットを打たなきゃいいんですよ。』 イチローの流儀 P66

『僕は、(純粋に野球を)やりたい人。(野球をすることで偉く)なりたい人ではない』 イチローの流儀 P157

本を読んで見て

イチローの考え方が面白いなあと思いました。面白いというか、なんだろう。クセが強いというか個性的というか。イチローらしい考え方。というのがなんとなく見えてきそうです。

そういうふうに、〇〇らしい。と思えるのはなんかいいなあと思うわけです。

そもそも、今回の最初の目的であった疑問は本を読んでも解消されませんでしたが、もう少しイチローの本は読んで見たいなあと思い、新しくイチローの本を2冊買いました。届いたら、また読もうと思います。楽しみだなあ。

まとめ

今回、イチローが自分の打席のことを説明できる理由について知りたいと思い、本を買いました。そして、その本で興味のある部分だけを抜き出して読みました。実際、今回、本を読んだのは、30分程度の時間でした。(読み終わるのが早い)そして、イチローの発言で気になったことがいくつかあったので、書き出して見ました。 今回の読書では知りたいことを知ることができませんでしたが、また別の本を読んだり考えることで、知りたいことが知れたらいいなあと思っています。

自分の道具箱を作りたいなと思った話。

コンサルタントの道具箱」という本を読んでいて、自分の道具箱を作りたい。と思いました。今回は、それについて詳しく考えてみて、内容をアウトプットしようと思います。

以下、目次です。

自分の道具箱を作りたい

自分の道具箱を作りたいと思いました。 なんでそんなことを思ったかというと、コンサルタントの道具箱、というのがワインバーグが生きてきた中で、手元に置いてあった考え方の道具集であったからです。

その考え方の道具というのはすごくいいアイディアだなあと思いました。 すごい。

人間、たくさんのことを覚えておくことは難しいです。 だから、メモするなりパソコンに入力するなり、どこかに保存しておこうとするわけです。

それでも、たくさん保存すればするほど確認するのが難しくなります。 それは、量が増えるほど確認するのに時間がかかってしまうからです。

自分の道具集というのは、常に心におきたい法則や考え方です。 f:id:mtb_beta:20170818223247j:plain

常に心におきたい法則集

ワインバーグの場合は11の考え方を心に置いて、仕事をしていたようです。 11という数字が少し気になります。

そういえば、先日、「0から1の発想術」という本を読みました。 その中でも発想術の数は、11になっていた記憶があります。間違っていたらすいません。 11という数になんか特別な意味があるんでしょうか。

何はともあれ、ワインバーグのいう、コンサルタントの道具集というのは、 自分が仕事をするときに考えるべきことを、11つ集めたことです。

ワインバーグの場合、それは非常に抽象的な言葉になっていました。

コンサルタントの道具箱、という本をその11の道具を一つ一つ説明していく本のようです。

その道具がどういう経験で生まれたのか、その道具が何に役立っているのか、というのをコンサルタントの道具箱の中では紹介してくれる様子です。

まあこれはまだ読んでいる最中なのですが。

自分は同じ過ちを繰り返す

なんで、道具箱が必要なのか。というと、自分は同じ過ちを何度もなんども犯すと思っているからです。

皆さんは、自分が過去にした過ちを今後一度も犯さないでしょうか?

そうだとしたらすごいと思います。

ただ、過ちを犯さないということは、チャレンジもしていないように思いますので、逆に心配になるところもあります。

私の考えとしては、人間なんだから間違うものだし、同じことを何度も何度もしてしまうことだってあるんじゃないかな?と思っています。

ただ、同じ過ちをなんの準備もなしにやるのはどうなの?と思います。

性格だからしょうがない

同じ過ちを何度も起こすというは、ある種、性格なんだからしょうがないと思っているところがあります。

そもそも過ちとは何か、という話もあると思うので、なんとも言い難い話かもしれません。

でも、すごく慎重にことを進める人は、慎重な性格をしていると思いますし、そういう人は、もしかしたら動き出すのが遅すぎて、時期を逃すことがあるかもしれません。

いや、本人が気づいていないだけで、時期を逃していることはあると思います。 当たり前ですが、逆もあります。

性格の長所短所は表裏一体なので、その性格による過ちを犯さないのは困難だと思います。

抑止することはできる

でも、そんな過ちを抑止することはできると思います。

自分の性格や特性、自分がやっている仕事や自分を取り巻く環境や状況を理解することで、過ちが問題に発展することを抑止したり、予防することはできるのではなかろうか。と思っています。

また、問題が発生した際に、生じる影響を低減することもできると思います。 f:id:mtb_beta:20170818231654j:plain

影響を低減することもできる

なんと言えばいいんでしょうか。 地震が起きることは防げないにしても、地震が起きたときに被害を小さくするための行動はできる。 と言えばいいのでしょうか。

どんなことが起きるか、事前に分かっていれば、先回りして問題が起きたときに、発生する影響といいますか、生じる被害を小さくするように、動いていくと良いという話です。

それは、人それぞれの性格や状況によって異なりますので、経験的に発生した問題を分析していくことになるのかと思っています。

問題はどうやって、抑止するか、低減するか

さて、問題は、どうやって被害を低減したり抑止していったりするか。という話です。 この話は、以前読んだリスク管理の話に近い話が書いてありました。

リスク管理の話は、このブログのどこかに書いた気がしますので、そちらを参照していただきたいです。(書いてなかったらごめんなさい。)

ただ、簡単にいうと、不確定なリスク要素を書き出して、最悪のシナリオを抑止するために、できることを検討する。また、最悪のシナリオが発生した際に、どうやって検出するのかの指標を作ったり、それを定期的に監視したり、という話だったと思います。

どうやったら思い浮かぶのか

さて、防止すべき問題やリスクは、どうやったら思い浮かぶのでしょうか。

うーん。とりあえず、自分がやってきたことを振り返っていくしかないんじゃないでしょうかねえ。 あんまり振り返りが好きではないという人もいますが、そういう人の場合はどうしたらいいんでしょう。

僕の場合は、やってきたことを振り返りつつ、どういうことを次はやるか、という話を考えるのが好きなので、あんまり苦にはならないのですが。

振り返らない場合は、本を読んだり、他の人に聞いたりすることになるかもしれません。

そもそも何を抑止するのか

何を抑止するか、というと、問題です。 問題というのは何か?という話もありますので、もう少し書きます。

リスク管理の本に書いてあった話で、僕はなるほどと思いながら読んだ話になりますが、

リスク管理では、まずは、最悪のシナリオを考えて、そのシナリオにたどり着く道を削っていくそうです。

原因からシナリオをイメージして、原因を潰していくのではなく、シナリオから潰していきます。 原因から潰すのは、恐怖が強すぎる。という話がリスク管理の本に書いてありました。

最悪のシナリオとは?

最悪のシナリオとはなんでしょうか。考えうる限り、最悪の状況という話です。 どういう条件が揃えば、そのシナリオにたどり着くのかを考えます。

そして、そのシナリオにたどり着かないようにいろんな準備を進めていきます。

そうするだけで、心は楽になっていき、最悪でもここまでしか落ちないという話がわかってくると、新しい冒険ができるようになります。

まとめ

僕は、自分の道具箱を作りたいという話をしました。その話について考えている中で、道具箱は、人や状況によって違うのだから、自分の道具箱は自分で作らないといけないという話をしました。また、道具箱を使ったとしても、問題を完全に防ぐことはできないと考えている話をしました。そこでリスク管理の考え方を導入しました。僕は、最悪のシナリオを恐れて前に進めなくなってしまうパターンがあります。今後は、リスク管理の考え方で道具を作りつつ、自分の道具箱を揃えていきたいと思っています。

ふわっとしてまとめになっていましましたが、今日はこれくらいで終わります。