TextwellのConcatアクションが便利

Textwellではかどるライン・ライティング Concat - W&R : Jazzと読書の日々をインストールした。

“。”を打つ必要がなくなり入力の負担が1つ減った。Textwellは二本指タップで行選択できるので編集が簡単。Reorder Linesアクションと組み合わせるともっと便利で、簡単に文書を組み替えることができる。

長文を書くにはやはりPCが便利だが手元にあるのはスマホなのでそこでもある程度の量の文書は書けるようにしておきたい。Textwellと豊富なアクション群のおかげで大分効率がよくなった。

ゼロトレ感想 - 書評

健康はコードを書き続けるのに必要なので定期的に体の仕組みや体操の本を買っている。話題になっていたので手に取った。

元々猫背気味で姿勢改善の本は色々買っているがなかなか治らない。それを治す方法を期待して読み始めた。

内容はシンプルで、姿勢の歪みをゼロにすることで体の調子が良くなるというもの。かかと重心の重要性をすごく語っていた。腰のポジションがよい人は足音が小さい、というのはなるほどと思った(大きい)。

半分以上はどのようにしてゼロトレが生まれたか、なぜゼロトレがよいのかの話でスラスラよめる。後半にエクササイズが載っているがとてもシンプル。1時間位で読み終わったがすぐに実践に入れるし、覚えることも少ないし、他の本も読みたいからこれくらいでいいんじゃないかと思った。

後、最初に目次がなくてゼロ章のプロローグが始まり、ニューヨーク一枚絵のタイトル、目次、一章開始、とおしゃれな映画のような構成になっているのも面白かった。読んでる人にちょっとでも飽きずに楽しんでもらおうという気持ちを感じた。

本のすすめ通り、今の姿勢をスマホのセルフタイマーを使って撮り、耳、肩、ひじ、ひざ、足首に点を付けたら、首がめちゃ前に出ていることが分かったのでこれがトレーニングでどれだけよくなるか楽しみ。

書評 - エンジニアの知的生産術

最近アウトプットが減っていると感じており増やしたくて手に取った。インプット、考えをまとめる、アウトプットまで知的生産に必要な要素がたくさんの文献から集められている。

インプットで参考になったのは

  • 読みたいところから手をつける
  • 目次は情報が圧縮されていて有用
  • 読書は本によって目的が違う(娯楽、情報を見つける、理解を組み立てる)
  • 脳内で音読すると遅くなるのでしない

考えをまとめるで参考になったのは

  • 5分で知っていることを書き出してみる(書き出し法)
  • KJ法

アウトプットで参考になったのは

  • 時間を区切る(タイムボックス化)

書き出してみると特にどうやって情報を集めるか、インプットの部分で参考になる箇所が多かった(人によって変わると思う)。今まで何かを勉強するぞ、となるとつい体系的に学ぼうとしてスピードを意識していなかった気がする。後、せっかく本を買ったので全部読まないともったいないという気持ちとか。

これからは必要な情報をできるだけ最短距離で取得していくように、状況によっては書籍やWebページも辞書のように使っていくことを意識してみたい。

この本のおかげで、インプット、知識をまとめる、アウトプットのやりかたは以前よりも効率よく行うことができそうだ。

ただし、その後に湧いてきた問題としてどの問題に取り組むべきか?どうやって取り組むことを発見するのか、というのがまだはっきりしていない。ここについては書籍の最終章をもう一度読み直したり、ほかの書籍にもあたってさらに考えを深めていきたい。

「エンジニアの知的生産術」を読んでいる

まだまだ途中だが面白い。個人的に印象に残ったところを抜粋する。

  • 大まかに全体像を把握するのは大切、Pythonリファレンスは1000ページあるが目次は6ページしかない、賞見出しは34行しかない
  • プログラミングは、作って検証することにとても適した教材
  • 新しいことを学んだら「1日前の自分にどう説明するか?」を考えて解説するとよい
  • 悲観的な勘違いと楽観的な勘違いでは悲観的な勘違いのほうが影響が深刻、楽観的な勘違いは後から考えて修正できる
  • 時間を固定して実行する手法をタイムボックス化と言う(今やっている)
  • 読むことの目的。娯楽、情報を見つける、理解を組み立てる
  • 読む速度が遅い人の中には、無意識に声帯を動かして「静かな音読」をしている人がいる(気をつける)

全部読み終わったらまた感想書く。知的生産をしている全ての人におすすめ。気になる一章があればそこだけのために買ってもよいと思う。

書評 - 学びを結果に変えるアウトプット大全

歳をとって体力が落ち20代の頃に比べて無理がきかなくなったこともあり、昔に比べてソフトウェアを作って公開したりブログを書くことがなかなかできなくなっていた。アウトプット量を増やすキッカケになればと思い手に取った。

インプットは結構できるのにアウトプットはなかなかできないなぁと思っていたのだが、「アウトプットは運動である」という一節が心に残った。インプットとはエネルギーの使い方が違うので、アウトプットするにはそれなりの準備が必要とのこと。長時間アウトプットをするのは大変なので時間を区切って一気に書くとよい、などアウトプットのためのコツがたくさん書いてある。(この読書感想文も書籍内のテンプレートをベースに10分で書いている)

アウトプットを増やすには、毎日小さなアウトプットをするトレーニングを繰り返して、アウトプット体力を増やしていくしかないらしい。毎日5分で日記を書くのがよさそうだったので、しばらく続けてみることにする。

Goのコードリーディング、math.Abs()

math.Abs()のコードリーディング。

src/math/abs.go

関数本体。まずはFloat64bits()とFloat64frombits()を探す。

// Abs returns the absolute value of x.
//
// Special cases are:
// Abs(±Inf) = +Inf
// Abs(NaN) = NaN
func Abs(x float64) float64 {
    return Float64frombits(Float64bits(x) &^ (1 << 63))
}

src/math/unsafe.go

float値をIEEE754形式の符号なし64bit整数で返す。 複数個あったがmathパッケージなのでおそらくこれ。

// Float64bits returns the IEEE 754 binary representation of f.
func Float64bits(f float64) uint64 { return *(*uint64)(unsafe.Pointer(&f)) }

Float64frombitsはIEE754形式の符号なし64bit整数をfloat64に戻す。

// Float64frombits returns the floating point number corresponding
// the IEEE 754 binary representation b.
func Float64frombits(b uint64) float64 { return *(*float64)(unsafe.Pointer(&b)) }

src/math/abs.go

ここで再び元の関数に戻る。

  1. xをFloat64bits()で64bit整数に
  2. 1 << 63で一番左ビットのみ立った64bit整数
  3. &^golangbit clear演算子
  4. 1 &^ 2なので一番左のビットがクリアされることになる
  5. IEEE 754によると最上位ビットは符号なので符号ビットがクリアされることになる
  6. 最後にFloat64frombits()でfloat64に戻して終了
return Float64frombits(Float64bits(x) &^ (1 << 63))

毎日コードリーディング、List.csで使われている属性

List.csを引き続き読む。

標準ライブラリは型の先頭に大量のコメントや属性が付いているものが多い。1つずつ調べていくことにする。

TypeForwardFromだけ分からんが後はだいたいわかった。

型定義のdll置き場所を変えたときも、参照側のコードを変えずに済む仕組みというのは大量のユーザーを抱えるMSらしいよい仕組み。