emacsでこのブログの記事を書いて、投稿するときに org2blog-buffer-post-save 関数を実行している。このときに emacs の画面が上下に分割されるため困っていたら解決策が公式の Issue にあった。
下記のように org-export-show-temporary-export-buffer を設定すれば大丈夫。
(setq org-export-show-temporary-export-buffer nil)
Emacs + 暗号 + 数学 + プログラム
emacsでこのブログの記事を書いて、投稿するときに org2blog-buffer-post-save 関数を実行している。このときに emacs の画面が上下に分割されるため困っていたら解決策が公式の Issue にあった。
下記のように org-export-show-temporary-export-buffer を設定すれば大丈夫。
(setq org-export-show-temporary-export-buffer nil)
このブログはorg2blogで書いているが、どうにも日本語に変な空白が混ざるときがあった。調べると同一の現象を解決しているする方法が2つあった。
一つ目の方法は perl スクリプトがいることや少し古めの記事であったため、二つ目の方法を採用することにした。
記事のままであるが、下記にその elisp を転載する。
(defun remove-org-newlines-at-cjk-text (&optional _mode) "先頭が '*', '#', '|' でなく、改行の前後が日本の文字の場合はその改行を除去する。" (interactive) (goto-char (point-min)) (while (re-search-forward "^\\([^|#*\n].+\\)\\(.\\)\n *\\(.\\)" nil t) (if (and (> (string-to-char (match-string 2)) #x2000) (> (string-to-char (match-string 3)) #x2000)) (replace-match "\\1\\2\\3")) (goto-char (point-at-bol)))) (with-eval-after-load "ox" (add-hook 'org-export-before-processing-hook 'remove-org-newlines-at-cjk-text))
アティアの本の演習問題に取り組んでいる。
命題1.9 は Jacobson根基についてであり下記のような命題である。
\(x \in \mathfrak{R} \Leftrightarrow 1 – xy\) is a unit in \(\mathit{A}\) for all \(y \in \mathit{A}\)
命題は元 \(x\) がJacobson根基に含まれるならば、 \(\mathit{A}\) の元 \(y\) に 対して \(1-xy\) が単元になることを主張している。また、 \(1-xy\) が単元であ れば \(x\) はJacobson根基であるとも主張している。
この命題( \(\Rightarrow\) )の証明を自分なりに理解したのでここに書く。
背理法を使用している。すなわち、 \(1-xy\) が単元でないとする。すると命題 1.5より単元でない全ての元はある極大イデアルに含まれることになる。ある 極大イデアルを \(\mathfrak{m}\) とする。また、Jacobson根基 \(\mathfrak{R}\) は全ての極大イデアルの共通部分として定義されるため、必 然的に \(x \in \mathfrak{R} \subseteq \mathfrak{m}\) となる。イデアルの 性質より、 \(xy \in \mathfrak{m}\) である。そうすると、 \(1-xy\) の \(xy\) がイデアルの元になり、 \(1\) もイデアル \(\mathfrak{m}\) の元とならなけれ ばならない。しかし、そうすると \(\mathfrak{m}\) は単項イデアル \((1)\) に なるため極大イデアルではなくなってしまう。これは矛盾である。
アティアの本の演習問題に取り組んでいる。
羃零根基(nilradical)が\(\mathfrak{N}\) で Jacobson根基(Jacobson radical)が \(\mathfrak{R}\) であるのだが、上記の本は古いのでどうにも判 別が難しい。。。
下記書籍の4章の曲線を描いてみました。
List Modification にある知らなかった関数。
delete 関数指定した値をリストから削除した新しいリストを返す。元になったリストは 破壊される。
(setq l01 '(1 2 3))
(delete 1 l01)
重複も削除する。
(setq l01 '(1 1 2 3 1 1))
(delete 1 l01)
元のリストは破壊される。
(setq l01 '(1 1 2 3 1 1))
(delete 1 l01)
l01
remove 関数元のリストから指定した値を削除する。元になったリストは無事。
(setq l01 '(1 2 3))
(remove 1 l01)
元のリストは無事。
(setq l01 '(1 1 2 3 1 1))
(remove 1 l01)
l01
append 関数2つのリストを連結したリストを返す。
(setq l01 '(1 2 3)) (setq l02 '(4 5 6)) (append l01 l02)
butlast 関数指定した個数の要素をリストから除外したリストを返却する。
(setq l01 '(1 2 3 4 5))
(butlast l01 3)
musicForProgramming のmp3ファイルをemacsで再生できないかをあれこれと 試行錯誤したのでその備忘録として。
Music Players にあるようにいくつかのパッケージがあるが emms を選択。
customize-group コマンドで emms-volume で emms-volume-change-function に emms-volume-pulse-change を設定。
mp3 を追加してボリュームを上げようとすると以下のメッセージがミニバッ ファーに表示される。
Wrong type argument: stringp, nil
emms-volume-pulse.el の pactl の出力をパースするところが問題。コー ドではSink, Name, Volume を目印として情報を取得しているようで、コマ ンド出力が英語以外だと問題となる。
(string-match
(mapconcat 'identity
'(".*Sink[ \t]+\\#\\([0-9]+\\)"
".*Name:[ \t]\\([^\n]+\\)"
".*Volume:.*?\\([0-9]+\\)%.*\n?")
"\n")
output)
コード内の pactl コマンドを再現すると日本語表示になっている。
pactl list sinks
シンク #0
状態: RUNNING
名前: alsa_output.pci-0000_00_01.1.hdmi-stereo-extra1
説明: 内部オーディオ Digital Stereo (HDMI 2)
ドライバー: module-alsa-card.c
サンプル仕様: s16le 2ch 44100Hz
チャンネルマップ: front-left,front-right
所有者モジュール: 6
ミュート: いいえ
ボリューム: front-left: 39321 / 60% / -13.31 dB, front-right: 39321 / 60% / -13.31 dB
ロケールを設定すると英語で表示される。
LC_ALL=C pactl list sinks
Sink #0
State: RUNNING
Name: alsa_output.pci-0000_00_01.1.hdmi-stereo-extra1
Description: 内部オーディオ Digital Stereo (HDMI 2)
Driver: module-alsa-card.c
Sample Specification: s16le 2ch 44100Hz
Channel Map: front-left,front-right
Owner Module: 6
Mute: no
Volume: front-left: 39321 / 60% / -13.31 dB, front-right: 39321 / 60% / -13.31 dB
defadvice を使用して問題の関数の環境変数を一時的に置換して問題を回 避。
(defadvice emms-volume--pulse-get-volume (around emms-volume--pulse-get-volume-around activate) (let ((process-environment (append process-environment '("LC_ALL=C")))) ad-do-it))
Introduction – Learn RxJS を参考に rxjs を勉強中。仕事で angular を使 用したフロントエンド開発があるため、理解しながらコーディングをやりたい。