ドキュメントを書くための本

Docs for Developersを読んだ。

docsfordevelopers.com

いろんな企業や組織のtechnical writerの方達が書いた本で、Kelsey Hightowerも序文に参加している。

開発するための知見えるための本はたくさん出ていて、どうやって開発するかを知ることができる。一方ドキュメントについては、書くための知見を得るソースが少なく、どうやって書けばいいかがわからないことが多い。これがドキュメントの重要性やドキュメントの数を減らす結果を招いている。といったことが序文では述べられていました。

内容は想像上の企業がサービス利用ユーザに対して対してどうやってドキュメントを書けば良いかといったストーリー仕立てになっており、わかりやすく、とても読みやすい。

Code Readingを読んだ

www.amazon.co.jp

この本全体的に新しいことを学ぶ感じではなかったように思えるが、ここのトピックについてたまに読んでみるくらいでちょうどいんじゃないかと思った。

よいコードを読むのは当然いいことなんだけど、ダメなコードを読むの勉強になりますというのは確かそうで、なんでダメなのかを説明できるようになってくるのには良いのではないか(ダメなものばかり読んでもしようがないが)、とにかくたくさんコードを読むというのはエンジニアにとっての読書

org fileの更新日時をアップデートする

orgファイルの更新情報を追記できるようにしたかった。

基本的にはここに書いてあるものをコピペだが、一部kill-ringのところなどを変更して利用

org-roam.discourse.group

(defun my/update-org-modified-property ()
  "If a file contains a '#+LAST_MODIFIED' property update it to contain
  the current date/time"
  (interactive)
  (save-excursion
    (widen)
    (goto-char (point-min))
    (when (re-search-forward "^#\\+LAST_MODIFIED:" (point-max) t)
      (progn
        ;; https://www.emacswiki.org/emacs/ElispCookbook#h5o-13
        (let ((beg (point)))
          (forward-line 1)
          (forward-char -1)
          (delete-region beg (point)))
        ;; (kill-line)
        (insert (format-time-string " [%Y-%m-%d %a %H:%M]") )))))

(defun my/org-mode-before-save-hook ()
  (when (eq major-mode 'org-mode)
    (my/update-org-modified-property)))

(add-hook 'before-save-hook #'my/org-mode-before-save-hook)

macosでLaTeXの環境を整える

macLaTeXの環境を使いたいのですが、日本語でなかなか新しい記事がないので、記載。 brewのセットアップについてはこちらを参照

$ brew install mactex --cask
# set an additional path for timgr, /usr/local/texlive/2020/bin
$ sudo tlmgr update --self --all
$ sudo tlmgr paper a4

コンピュータの整数表現

コンピュータが扱う情報の最小単位はbit。

bitは2種類の状態を表現でき、bool typeならばtrue/falseと2種類の状態を表現する。コンピュータはbitをまとめたbyteを単位として情報を扱う。(ここでは1byteを8bitとする)

1byte中の8bitは28 = 256種類の状態を表現できる。  

符号なし整数

正の整数を単純に1byteを使って表現すると、0から255までの値を表現することができる。これを符号なし整数(unsigned integer)という。

int max = 0b11111111;

符号付き整数

符号なし整数では負の整数を扱うことができないため、正と負両方の整数を表現するために符号付き整数(signed integer)というものがある。この表現方法は符号bit表現とそれを拡張した補数表現がある。

符号bit

簡単にbyteで正負整数を表現するための表現方法として、符号bitがある。最上位bitを正負の符号として扱い 下位7bitを値として扱う。

0b00000001; // 1
0b10000001; // -1

下位7bitすべてをonにすると-0という表現になり、-128までをあつことはできない。

0b10000000; // -0?

符号bitで表現できる範囲は-127~127となり、問題は0が2つ存在する問題が出る。

2の補数

符号bitのこの問題は2の補填で解消することができる。

まず1の補数とは 全ビットを反転させること

0b00000001; // 1
0b11111110; // -1

となる

この状態から更に1bit足した値を「2の補数」という。

0b00000001; // 1
0b11111110; // -1 全ビット反転 (1の補数)
0b11111111; // -1 全ビット反転 + 1bit (2の補数)

符号bit表現で-1となってしまう値は2の補数表現では-128となり、0の表現方法を1つにすることができる。これにより整数の範囲は-128~127となる。

0b11111111; // -1
0b11111110; // -2
.
.
.
0b10000000; // -128

引き算

2の補数表現により、引き算を足し算(「負数の作成」+ 「足し算」)で表現することができる。

例: 111 - 17 = 94

111 -> 01101111

17 -> 00010001

-17 -> 11101111 (2の補数)

01101111 + 11101111

01011110 => 94

2の補数はほとんどのコンピュータで採用される、便利な表現方法である。

買って良かった2020

Thermos ステンレスキング 16オンスを毎日使っています。

お題「#買って良かった2020