「僕は君たちに武器を配りたい」読了

2020年2冊目。故瀧本氏の本。就職活動・転職活動をしている人に向けた本だが社会人を15年やってきている私が読んでも、納得する箇所が多かった。リーマン不況の真っ只中に(2012頃?)に執筆しているので不況を前提として話が書かれている。投資家的視点を持ったビジネスマンになれよ。間違ってもコモディティになるな、と警笛を鳴らしている。エキスパートを目指すなというのもがあるが、これはソフトウェアエンジニアにも当てはまるのであろうか。当時は、インド等にソフトウェアをアウトソースする流れだったが現在では、プログラミングという知的生産物はアウトソースできない部類のものとう認識が一般的であろう。そして、コモディティというより、需要が高まる一方の職種になっている。

また、英語に関しては、コモディティというよりも読み書きそろばんのたぐいの必要不可欠のツールになると私は強く思う。だからこそ、国際教育のビジネスをしている。日本は人口が減少し国力が衰える。そうなると母国語だけではお金が稼げなくなる。だから、ヨーロッパ諸国の英語力はネイティブ並であると思っている。英語を使いこなせるまで5,6年はかかるように思うし、始めるなら早い方が良い。英語はツールで専門は別に持つというは前提である。

リスクを取らないことが一番のリスク

私が日頃思っている言葉が出てきたのは印象深い。

「スタンフォードの自分を変える教室」読了

新年はじめに良さそうな本を選び聴き終えた。意思の力は自己に責任があるのではなく、科学的・心理学的な要因により決まるということを説明した本。ダイエットの例が沢山出てくるが、個人での問題に置き換えて話を聞いていた。自分を許す、認める等を意識的に行い負のスパイラルから抜け出す等は使えそうだ。

オーディオブックの問題として、すぐに忘れてしまう。一週間かけて聴いたら、最初の方は忘れてしまっている。本ならページを戻れるが、それが厳しい。要約ブログなどを最後に読み、記憶の整理をするのが良さそう。

2020 Goals

40歳にもなると一年があっという間なので今年のゴールを設定しておく。

  • Todo Listを毎日使う
  • 本を月に2冊読む・聞く
  • 毎日運動する
  • 毎週一つブログでアウトプットする

Todo Listを毎日使う

Todo Listを使うと非常に生産性の高くなるのだが、すぐに使わなくなってしまう。今年は毎日使うことを目標にする。ツールは、Todoist + Toggl(pomodoro)に決めた。

本を月に2冊読む・聞く

通勤が徒歩になり、本を読まなくなった。英語のAudio bookは続かなかったので今年は日本語で挑戦する。2週間に1冊が目標。

毎日運動する

半年ほど毎日軽いジョギングorウォーキングを行っているのでこれを継続する

毎週一つブログでアウトプットする

日々思うことがあるのに何もアウトプットしていないとダラダラとしてしまう。毎週なにか書き留めておこうと思う。

これからの教育に思うこと

教育という業界に来て早いもので5年が経とうとしている。

CTOとして開発メインで事業に参画したが、早いうちからビジネスに関わるようになり、教育というものをいつも考えるようになっている。子供の教育に関して、大事なものを3つあげるとしたら、

  1. 情報収集する力
  2. 目的達成のための学習
  3. 継続する習慣

他にもコラボレーションも大事だが、まずは個として自立するためにはこの3つが必要に思う。

情報収集する力

世の中は偏りのある情報で溢れている。あなたTwitterタイムラインが誰とも違うようにネットではすでにパーソナライズされた情報を得ているので、あなたの常識は隣人の常識ではない時代が始まっている。情報を取捨選択し、解釈・消化していく、そのプロセスを念頭に置かなければならない。Googleの検索結果自体が、すでにパーソナライズされている場合、次世代の子はどのように一般常識を学ぶことができるのだろうか。その答えの一つは、色々な情報に触れること。ネットだけでなく、実際に人と話したり、世界の小説を読んだりすることでないかと思う。共通語としての英語は非常に有用なものである。他の国の人と話すことで、そのバックグランド・文化を理解できるし、共通語に翻訳されている情報は多い。日本語は人口の減少とともによりマイナー言語となり、小さな情報源となる。

目的達成のための学習

人は忘れる。コンピュータは忘れない。忘れるといことは精神を安定させるために作られた非常に大事な機構である。小学校のときに習った社会を覚えてるであろうか。もし覚えていたとしても、その情報は古くあまり役にたたない。例えば、日本の小麦の生産量など、我々の多くは30年前の記憶をベースにしているのかもしれない。記憶はコンピュータに任せるべきで、人は概略とインデックス(目次)を覚えておけば良い。忘れないものは何かといえば、自分で考え導き出した学習だ。体験したものは忘れにくいし、自分で工夫を入れたものなら尚覚えているし、そのプロセス自体が将来に役に立つ可能性は高い。具体的には、例えば、作成中のロボットがよく転ぶ、それはなぜか、重心が問題だ。重心を調べよう、というような目的のための学習だ。そもそも、社会人になると経験から学ぶことが多い。実生活から学び、それを糧としていきていく。プログラミングなどのIT教育に熱が入るが、目的に対して実装を自分で考えるプロセスは非常に有用だと思う。プログラミングという手段は10年後必要がない、もしくは量子コンピュータなどの新しいパラダイムが現れているかもしれない。手段は時代時代に変わる。目的に対して実装を自分で行うというプロセスは不変だ。その体験は未来につながる。

継続する習慣

人は非効率。一つスキルを得るのに3年ぐらいかかる。大学が4年あるのも理解できる。スポーツでも音楽でも技術を身につけるのは時間がかかる。昔からいうように継続は力だ。これは不変なように思う。これを前提とすると、どうやって継続するか。それは、興味だ。好きなものは時間を忘れて没頭する。好きだから続けるし、続けるとその次が見えてきて、気がつくと長期間時間を使っている。では、興味をどうやって見つけるか。これは親が手伝える。選択肢をあげて、好きだったものが一つでもあったら、その結果に対して、褒めて褒めて褒めまくることだと思う。選択肢はうまく調節しないといけないが。

Released iOS/iPadOS app, Wazari Browser, to make use of external keyboard


I just released iOS/iPadOS browser. This browser has the following functions.

  • Customizable shortcuts to operate browser. e.g. Change tabs without touching screen.
  • Panes to split views vertiacally or horizontally.
  • Hit-A-Hint – without touching, click links to move pages.
  • Customizable modifiers. e.g. swap capslock with ctrl key.
  • Customizable default search engine – DuckDuckGo or Google
  • Exclude web sites not to use keymapping. Some dynamic web site doesn’t use Input type=text or textarea, which Wazari keymapping doesn’t work. But you can exclude these website so you can still type on it.
  • Histories to go back easily
  • (Optional and Paying serivce) Integrated to Wazaterm so you can terminal.

Wazari browser is my first open source project and also a sub project of Wazaterm.

Download from App store


I use react-native(iOS only) to build this to catch up recent React/React Native. I will post what technique that I used for this with the following posts.

Mov to mp4/gif with ffmpeg

For the sake of my memory.

mov to mp4

mov to animation gif

macOSでkey repeatが動かない時の対処法

実際はkeyrepeatは作動している。(例えば、$などはブラウザ上でキーリピートするし、Terminalでは問題なく動く)
この現象のときは、下記をターミナルを開いて打つ。

そして、再起動。

Railsで特定のバージョンのmigrationをロールバックする方法

git branchを行ったり来たりしていてしっかり管理しないとlocalでゴミテーブルができるのでしっかりdownさせる。

db:migrate:statusでマイグレーションの状態を確認。

最初の数列をコピペしてそのファイルだけ戻す。

その後必要ならSQLでmigrationエントリを消す

Sidekiqでdelayを使う。しかし、クラスメソッドを使いダイナミックなQueue名を使わない

DelayedJobと比べると使い方が少し違うので注意が必要。

Extentionを読み込むとdelayが使える

config/initializers/sidekq.rbに下記を追加(存在しない場合は作成)。これで毎回performを書かなくて良い。

これで、User.delay.my_methodが使える!

https://github.com/mperham/sidekiq/wiki/Delayed-extensions

インスタンスメソッドを使わない

インスタンスメソッドでも一見動いたので大丈夫かと思ったが実際運用してみるとだめだった。クラスメソッドでWrapして使いましょう。よく見ると太字でだめと書かれている。

I strongly recommend avoiding delaying methods on instances. This stores object state in Redis which can get out of date, causing stale data problems.

ランタイム時に動的なQueue名を指定しない

それ用のライブラリが別途あるのでそれを使用。スタティックなQueue使いにくい。。ユーザ毎にキューを用意したい。。

https://stackoverflow.com/questions/20133346/how-can-i-create-sidekiq-queues-with-variable-names-at-runtime

[LXD/LXC] lxd imageのexportとimport方法

LXDのversionは3.03

LXD export

作成してあるコンテナのイメージではなくて初期起動時にダウンロードしてくるOSイメージをexportするにはlxc launchで指定するイメージ名を引数にいれてexportする。

LXD import

version3.03ではtar.xzとsquashfsが作成されるのでこれを2つとも指定し、importする。aliasで名前をイメージ名を指定できる。:(コロン)は使えないので注意。

launchまでの速度比較

同じfingerprintのイメージをimageリストに持てないので、ubuntu16と18で比較してますが、、だいたい同じになると思います。

イメージダウンロード後にLaunch

約3分半。

importしてlaunch

52秒ぐらいで2分半は早く起動できることを確認!

Scroll to top