「エンジニアの知的生産術」を買った
昨日電子版を買って、3章まで読んだ。
エンジニアの知的生産術 ──効率的に学び、整理し、アウトプットする (WEB+DB PRESS plusシリーズ)
- 作者: 西尾泰和
- 出版社/メーカー: 技術評論社
- 発売日: 2018/08/10
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
1章では情報収集・モデル化・検証の学びのサイクルについて書かれていて、2章ではやる気が出ない状態をどうやって解決するかについて書かれている。また3章では脳の記憶について書かれていて、さらに繰り返すことが必要、繰り返すのもテストを行ったほうがよいと書かれている。
ちょっと最近の自分は乱雑に情報を眺めることとが多く、具体的な成果も上げられていない(ちょこっとatcoderをやってたりはするが)ので、この本を読んでなんか足しにできるようにする。現状検証やアウトプットが足りていないと思う(ので、こうやってブログに書くことでアウトプットしている)
本の内容としては別に"エンジニアの"とつけなくてもいい感じはあるが、いきなりPythonの話が出てきたりするのでエンジニア向きではあると思う。あと3章でいきなり脳の構造に行くのは話が飛びすぎ、とも思った。ただ自分が現状抱えているもやもや感を解消する助けにはなりそうだと思っている。
以下読んだときのメモ。
“それを学ぶことは諦めて、よりやる気の出ることに気持ちを切り替えたほ うがよいです。”ほう
— しょうゆ@4thday2参加 (@shsub) September 4, 2018
“SMART criteria 組織の目標設定を想定して作られた基準なので、個人が(ry)オーバースペックです”
— しょうゆ@4thday2参加 (@shsub) September 4, 2018
”目標が明確化されている””目標が達成可能である””大まかに全体像を把握している”
— しょうゆ@4thday2参加 (@shsub) September 4, 2018
“内部構造を解説したドキュメントがあればそれを読む ディレクトリ構造を読む ファイル構成を読む 略語を調査する データ構造を知る 関数どうしの呼び出し関係を把握する 関数を読む”
— しょうゆ@4thday2参加 (@shsub) September 4, 2018
“25 分間で章見出しとキーワードを赤ペンで囲う作業をしました。「論 文を詳細に理解する」という不明確で遠いゴールの代わりに、時間を区切っ て明確なゴールを作り、大まかな構造を頭に入れようとしたわけです。”
— しょうゆ@4thday2参加 (@shsub) September 4, 2018
“大雑把に情報収集できないなら、片っ端からやるしかありません。”
— しょうゆ@4thday2参加 (@shsub) September 4, 2018
”抽象化とは具体的な対象から重要な部分だけ抜き出すことだ と学びました。モデルとは現実の複雑なシステムから、重要な一部だけを 抜き出したものだと学びました。プログラミングにおけるモジュールの使 われ方は、まさに抽象化であり、モデル化ですね。”
— しょうゆ@4thday2参加 (@shsub) September 4, 2018
1章では情報収集・モデル化・検証の学びのサイクルについて書かれている。
— しょうゆ@4thday2参加 (@shsub) September 4, 2018
“GTD では、まずは「気になること」を全部 1ヵ所に集めます。”
— しょうゆ@4thday2参加 (@shsub) September 4, 2018
“「気になることすべての整 理」にはとても時間がかかるので、まずはその一部である「今日やること」の 整理に集中しましょう”
— しょうゆ@4thday2参加 (@shsub) September 4, 2018
“まず金銭価値が高くリスクも高いフィーチャから実装 し、次に金銭価値が高くてリスクが低いフィーチャを実装し、最後に金銭 価値が低くてリスクも低いフィーチャを実装せよ、金銭価値が低くてリス クが高いフィーチャは実装するな”
— しょうゆ@4thday2参加 (@shsub) September 4, 2018
“緊急だが重要でないタスク❸に対して No と言い、その時間を❷(重要だが緊急でない)のタスクに割り当てるのです” 図の数値が間違ってるので注意
— しょうゆ@4thday2参加 (@shsub) September 4, 2018
2章ではやる気が出ない状態をどうやって解決するか。タスクを一つに絞って、タスクの粒度を細かくする。また計測することで見積もり精度をあげる。
— しょうゆ@4thday2参加 (@shsub) September 4, 2018
3章では脳の記憶について書かれていて、さらに繰り返すことが必要、繰り返すのもテストを行ったほうがよいと書かれている。
— しょうゆ@4thday2参加 (@shsub) September 4, 2018
Ubuntu Server 18.04に上げたらvagrant upでエラーが出た
(この記事は以前Qiitaに掲載していたものの転載になります。)
Ubuntu Serverを16.04から18.04に上げたらvagrant upでエラーが出たのでメモ。
バージョン
- Vagrant 1.8.1
- Virtualbox 5.2.10
~/hogehoge$ vagrant up No usable default provider could be found for your system. (以下略)
対策
hashicorpにあるvagrant 2.1.2を入れたら動いた。
~$ wget https://releases.hashicorp.com/vagrant/2.1.2/vagrant_2.1.2_x86_64.deb ~$ sudo dpkg -i vagrant_2.1.2_x86_64.deb ~$ cd hogehoge ~/hogehoge$ vagrant up
検索しても18.04でエラーに遭遇した人はいなさそうだけど、Ubuntuを新規インストールしたらエラーに遭遇しないのだろうか?
AtCoder Beginner Contest 106(ABC106)に参加しました
CD駄目です。ってCは発想は合ってたのにWAなのは何故?
A: 道を端っこに寄せればOK。(A-1)*(B-1)が答え。
B: ちょっと悩んだ。けど愚直に約数を求めてった。
gist43ad696ab18dcb8d304d71c88e7bbfe8
C: 1以外の数字が来たらそれが答えってのはわかったのに通らぬ。。
TensorFlowのseq2seqでTwitter botの返答を増やそうとしたが上手くいかなかった
(この記事は以前Qiitaに掲載してみたものの転載です。内容がだいぶ古いので、手順が変わっている事も多々あるかと思います。)
先人に習って https://twitter.com/ha_ma の返答の種類を増やそうとしたが、上手くいかなかったので途中経過をメモとして残しておきます。
参考
TensorFlowのseq2seqでチャットボットが作りたい https://qiita.com/Pu-of-Parari/items/62d7226814a6aba98354
実行環境
DockerのJupyter-notebook( https://github.com/jupyter/docker-stacks )で実行してます。
TensorFlowは0.12が使われているので、conda install tensorflow==0.12.1とか入れてインストールしました。
GPUはこの環境では動きません。
実行内容
先述のページにある内容をほぼそのままコピペしてjupyter notebook上で動かしました。in_vocab_sizeとout_vocab_sizeを100000に増やしました。
data_utilsが足りないので、https://github.com/sanshirookazaki/chat/blob/master/data_utils.py をダウンロードしてjupyter notebookの実行ディレクトリにアップロードしました。また、./datas/vocab_{in|out}.txtを事前に作っておく必要があります(jupyterのコンソールでtouch ./datas/vocab_in.txtとか) 。
データはha_maのTimelineに流れたTweetのうちReplyのあるもの9万件です。8万件を訓練データ、約1万件をテストデータに分割しました。
実行結果
単独で実行させた結果、
> こんにちわ
yes
> ただいま
おかえり
> 起きねば
いいなー
> ITジャーナリスト
ん?
> 帰宅
おかえりなさーい
の様に上手く言ったのですが、後述の途中成果物で通常のTweetを入力としたところ、
安楽安楽純血純血純血純血純血純血純血純血純血純血純血純血純血純血純血純血純血純血安楽安楽安楽安楽安楽
とか
尽く禿禿禿禿爆睡爆睡爆睡爆睡爆睡爆睡爆睡爆睡爆睡爆睡爆睡爆睡爆睡爆睡爆睡爆睡爆睡爆睡爆睡爆睡
とか残念な結果になりました。
途中成果物
別途MySQLが必要だったりしてそのままでは動かないと思います。 https://github.com/showyou/hama_seq2seq
Google Colaboratoryでの実行
jupyter notebook上でも動くような代物なのでGoogle Colaboratoryでも動きます。
!pip install tensorflow==0.12.1
と入力して実行すればtensorflowの0.12が動きます。
ファイルのアップロード/ダウンロードは以下のページが参考になります。
【Tips】Google Colaboratory でPythonのファイル入出力演習 https://qiita.com/GandT/items/bd80fad2b8258ed87956
一つハマった点としては、upload関数は時間制限があるので、一定時間後にファイルを選択した場合アップロードされず、再度upload関数を実行しなければなりません。またColaboratory環境は一定時間が経つとノートブック以外全部消されるので途中で結果ファイルをダウンロードしなければなりません。
余談
GPUを使いたい場合、nvidia-dockerからjupyter notebookの環境を作るしかありません。
Nvidia-dockerでGPUコンテナの作成 https://qiita.com/uni-3/items/f5911aaaa538b33f370f
幸い、そのへんをまとめたDockerfileを@lambda_sakuraが作ってるので使うのも手でしょう。
最近使っているDeepLearning用の開発環境 – さくらんぼの技術備忘録 https://light-of-moe.ddo.jp/~sakura/diary/?p=510
2018/08/10現在Ubuntu18.04のCuda9.2のDockerだとTensorFlowが動かないので、Ubuntu16.04をホストに使うのが良いでしょう。
今回使ってるseq2seqは https://github.com/tensorflow/tensorflow/blob/r0.12/tensorflow/models/rnn/translate/seq2seq_model.py にあるのですが、そこで呼ばれている
tf.nn.seq2seq.embedding_attention_seq2seq
が見当たらないような気がします。どこにあるのでしょうか。v1.9だと https://github.com/tensorflow/tensorflow/blob/r1.9/tensorflow/contrib/legacy_seq2seq/python/ops/seq2seq.py がそれっぽいのですが・・
今後の課題としては、一定以上まともな返答だけを自動で返せるような仕組みにできればいいなと考えています。
AtCoder Beginner Contest 104(ABC104)に参加しました
相変わらずCDが解けない・・ってか回答見ても分かってないぞ!?
頭柔らかくしていく必要がありそう。。
Aは単なる分岐。
giste0e7cd9df005f0b9193daaabb9cd2612
Bはちょっと手間取ったけど強引に持ってった。
Ubuntu server 16.04LTSから18.04LTSに上げたら名前解決ができなくなった
Ubuntu server 16.04LTS から18.04LTSに上げたら名前解決ができなくなった。
/etc/resolv.confを見たところ、127.0.0.53と書かれており、なんじゃこりゃとなった。
/etc/resolv.confを直接書き換えたら名前解決できるものの、当然再起動すると127.0.0.53に戻ってしまう。
最近のUbuntuだとsystemd-resolveというのが使われていて、これが127.0.0.53を見ている様子。
/etc/systemd/resolved.confの中の、
[Resolve]
DNS=
となっているところに
[Resolve]
DNS=[ルータのIP]
と書き換えて再起動したところ、繋がるようになった。