ボブサップになりたい人のブログ

ボブサップにはなりたいけれど、エンジニアにもなりたいのでそのあたりのことを書きます

「アウトプット大全」を読了した。良書

アウトプット大全を読んだ

内容

インプットよりもアウトプットの量を増やしたほうが人生うまく回りますよ

大体3:7にするといい感じだよということを言っている本。

アウトプットすることの意義だけではなく、アウトプットを仕事でどう応用するかだとか、その訓練の仕方までおさえられていて、読みやすく良書だと思いました。

心に残ったこと

フィードバックはアウトプットの大きなメリットの一つ

アウトプットが大事なのは前々から知っていた。

プログラミング、情報工学を勉強している身としてはこの世界は成果物を出してなんぼの世界だからだ。

でもフィードバックを貰えるという視点でアウトプットというものを眺めたことがあまりなかったことにこの本を読んでいて気づいた。

成果物を出すことは記憶の定着という効果以外にも周りの反応から自分の成長を促すことができるという効果があるんだなぁと。。。

ポジティブな言葉が大事

これもよく言われることだが、自分の中で意外と軽視しているんじゃないかってことに気づいた。

趣味のランニング中も、「辛い、長い」ということを考えたり、口に出したりすると足が重くなる(最もこの例は因果関係が逆かもしれないが。。。)。

これからはポジティブなことを話して、悪口やネガティブなことは考えても口に出さないようにしたい。

制限時間をつけたほうが文章の出来が良くなる。

ダラダラ書くよりも制限時間を設けて、集中しながら文章を書いたほうが、良いものをかけるということらしい。

良い文章を素早く書くというのは自分が一番できていないこと。

いつも迷いながら、過剰に推敲しながら書くので文章を書くのが以上に遅い。

先日某企業のESを書いたが、大したことを書いていないのに1週間以上作成に時間がかかってしまった。

このアドバイスは是非取り入れたい。

これから習慣としていくと決意したこと

アウトプット大全いわく10冊の本を読んでも、書いてあることをアウトプットできなければ全く意味がないとのこと。

この本のアドバイスを参考にいくつかアウトプットをしてみようと思う。

具体的には。。。

  1. ブログを1週間に2記事以上書く(1記事20分で書く)
  2. ラソン中にポジティブな言葉しか吐かない

終わりに

とりあえずこの本は僕の生活に影響を与えた(実際にこの記事を普段ブログを書かない僕に書かせている)ので良い本だと思う。読みやすいし。

アウトプット大全が売れようと、僕には一錢も入らないけど、興味があったら是非書店で手にとって見てほしい。

1000円であなたの生活が良い方向に動くかもしれない。

今話題のFlutterを触った(iPhoneアプリもAndroidアプリもwebアプリケーションも作れる!)

はじめに

前回投稿からずいぶん時間が空いてしまった.

m5stackについての記事を投稿すると予告したが思ったような成果が上がっていないので保留する.

今日は何かと話題?なFlutterを触ったのでそれについて書いてみる.

Flutterって何?

Flutter(フラッター)は、Googleによって開発されたフリーかつオープンソースのモバイルアプリケーションフレームワークである。FlutterはAndroidiOS向けのアプリケーションの開発に利用されている。(wikipedia)

ということだ.

さらにFlutter for Webというものも最近発表されたようでFlutterでwebアプリケーションも作れるようになった.

何それ,最強じゃないか.

Flutter for Webが発表されたので、早速動かしてみた!! - Qiita

早速動かしてみる.

動作確認

主に下のサイトを参考に動かしてみた

FlutterでAndroid/iOS両対応アプリを作ってみる

同じことを書いても仕方ないので詰まった部分(上のブログに書いていないところ)だけここに書き残す.

iOS tool chain導入時のhome brew のエラー

  • やったこと,エラーメッセージ
$ brew install --HEAD libimobiledevice

Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks
  • 解決方法
sudo chown -R $(whoami) $(brew —prefix)/*

Android SDKを認識しない

Android Studioは重いので入れたくない.SDKを単体で入れようとしたがうまく行かなかった.

おとなしくAndroid Studioとセットでインストールしたらうまく行った

intellijの開発環境を整える.

jet brainのIDEで開発したかったのでintellijプラグインを追加した.具体的には以下のような流れ.

  1. intellijを開いてconfigureを選択
  2. plugins選択
  3. browse repositories選択
  4. Dartを検索してインストール,intellij再起動
  5. browse repositoriesを選択し,Flutterをインストール,再起動

初回,プロジェクト立ち上げ時に「DartSDKのパス設定しろや!」みたいな警告が出るけどconfigureでFlutterSDKのパスを設定し直せば大丈夫.

終わりに

いつかFlutter使って人工知能アプリケーション作ってみたいなぁ.

読書記録「思考の整理学」「時をかける少女」「海辺のカフカ」

思考の整理学

読み切ってはいません。(自分は途中でイマイチだなと思ったら、読むのやめて違う本読む派)

生協でゴリ押しされていたので購入しました。

学んだことは

  • 缶詰で何かを考えてもいい結果につながらない。一度忘れてふとした時に良いアイデアはやってくる

  • 未知の現象について考えるとき既知の類似した現象が解決のヒントを与える事がある。

  • 何かをリサーチするときは対象範囲だけを徹底的に調べる。大は小を兼ねるの精神は良くない

  • 良いアイデアはいつやってくるかわからないからとにかくすぐにメモできる環境を作ろう。そして、あとでそれを纏めるノートを作ろう。

こんなところだろうか。

時をかける少女

有名だがアニメ版も原作も見たことがなかったので読んでみた。

正直かなり昔の作品なので主人公の女の子の言葉遣いなど節々に、今では不自然な言い回しがあったのが読んでいて気になってしまった。

おそらくこの作品は今や定番となっている「爽やかなSF」の走りなのだろう。

歴史的作品だと思ったし、こうした起源のようなものをしっておくことが、これから別の作品を読むときの楽しみ方を増やしてくれるのだろう。

海辺のカフカ

読破したが、なかなか記事を書ききれず。

やはり村上春樹は面白い。

後日投稿

jupyter notebook のセルを実行しようとしたら*マークのまま固まってしまう話

症状

タイトルの通り。

久しぶりにjupyter notebook で作業しようと思ったら、うまく行かなかった。

エラー内容は以下の通り。

ValueError: signal only works in main thread

解決法

一時間近く格闘したところ、コマンドを以下のように打つことで解決した。

pip install --upgrade ipykernel

参考文献

Jupyter console crashes on Python 3.7 · Issue #163 · jupyter/jupyter_console · GitHub

プロダクト量子化(Product Quantization)

プロダクト量子化とは

一言で言うと「大量の(=エントリー数が大きく)要素数の大きい(=高次元の)ベクトルの最近傍探索(ユークリッド距離を用いた)を高速で行えるよ」というアルゴリズムです。

理論もそこまで難しそうではないですし、実装もFaceBookがつくったFaissというpythonライブラリがあるので簡単です。

実装例をご紹介します。

実装例

まず、Faissのインストールからanacondaのcondaで簡単にインストールできます。

やろうと思えばイチから、ソースコードからもインストールできるみたいです。

詳しくはFaissのgithubを御覧ください

(cpu版)
$ conda install faiss-cpu -c pytorch

これで準備完了です。

Faissのgithubにあるtutorialを参考にして実装します。

検索が本当に一瞬で驚きます。

かなりパワフルです。

参考

理論の参考

http://lear.inrialpes.fr/pubs/2011/JDS11/jegou_searching_with_quantization.pdf

映像奮闘記: 直積量子化(Product Quantization)を用いた近似最近傍探索についての簡単な解説

実装の参考

GitHub - facebookresearch/faiss: A library for efficient similarity search and clustering of dense vectors.

faiss/3-IVFPQ.py at master · facebookresearch/faiss · GitHub

Darknet

Darknetとは

C で書かれたディープラーニングフレームワーク。早くて簡単ですごいらしい(語彙喪失)

とにかくやってみる。

pjreddie.com

手順

下のようにターミナル打ち込む

$ git clone https://github.com/pjreddie/darknet.git
$ cd darknet
$ make

これだけでビルドは完了

続いて、ニューラルネットの重みをダウンロードする。

色んな種類の重みがあるが、yolov3.weightを読み込んでみる。

wget http://pjreddie.com/media/files/yolov3.weights

サンプルの画像をオブジェクト認識してみる。

./darknet yolo test cfg/yolov3.cfg yolov3.weights data/dog.jpg

f:id:reinforcement_kmas:20180921224150j:plain

prediction

すごい簡単。

ちなみにこの四角。バウンディングボックスというらしい。

参考文献

karaage.hatenadiary.jp

karaage.hatenadiary.jp