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