陸の孤島
メモや日常思ったこと、自分のための備忘録など。
メインは他の SNS を使っています。
他の SNS では書ききれないものをこちらに書いてます。
2026年6月27日土曜日
JINA Drawer
露出計算ツール
基本式
- 露出: \[ Ev = Av + Tv - Sv \]
- Av ⇔ 絞りF: \[ Av = 2\log_2 F ⇔ F = 2^{ \frac{Av}{2}} = \sqrt{2^{Av}} \]
- Tv ⇔ シャッター速度T: \[ Tv = log_2 T ⇔ T = 2^{-Tv} = \frac{1}{2^{Tv}} \]
- Sv ⇔ ISO感度S: \[ Sv = log_2\frac{30}{100}S ≒ log_2\frac{S}{100}+5 ⇔ 100 \times 2^{Sv-5} \]
Av ⇔ F, Tv ⇔ T, Sv ⇔ S
| → | → |
| → | → |
| → | → |
| → | |
| → | |
| → |
Chart
2026年5月5日火曜日
モバイルバッテリー容量計算
2026.4.24 から始まったモバイルバッテリー機内持ち込みのルールでは
モバイルバッテリーが 2 個 (容量 160Wh までであること)とあるが、 160Wh ってナニ? mAh しか知らんぞ? となったので、調べてみた。
- mAh も Wh もバッテリー容量を指す
- 読んで字のごとく、1 時間当たりの消費量が mA か W の違いだけ
- つまり、それぞれ a [mAh], w [Wh], バッテリー内部電圧 v [V] とすると \[ w = \frac{a}{1000} \times v \]
- 通常、バッテリー内部電圧は 3.7 [V] なので \[ 10000 [mAh] = 37 [Wh] \]
計算機
2026年5月1日金曜日
JScript の配列と WScript.Arguments
JScript の配列と WScript.Arguments
知っている人は当たり前なのだろうが、よく間違えるので備忘録として残しておく。
こんな風に配列長を求める JScript を書いて動かしてみる。
test.js
// 引数を取得 WScript.Echo('引数の数: ' + WScript.Arguments.Length); WScript.Echo('引数1: ' + WScript.Arguments(0)); WScript.Echo('引数2: ' + WScript.Arguments(1)); // 空配列に値を追加 var ary = []; WScript.Echo('追加前: ' + ary.Length); ary.push('foo'); WScript.Echo('一つ目追加: ' + ary.Length); ary.push('bar'); WScript.Echo('二つ目追加: ' + ary.Length); WScript.Echo('一つ目: ' + ary[0]); WScript.Echo('二つ目: ' + ary[1]);出力
c:\Users\toasted.laver\Downloads>cscript /nologo test.js aaa bbb 引数の数: 2 引数1: aaa 引数2: bbb 追加前: undefined 一つ目追加: undefined 二つ目追加: undefined 一つ目: foo 二つ目: bar
Length が定義されていない と言われるが、 WScript.Arguments.Length の方はちゃんと想定の値を返している。
'L' を小文字 'l' すると意図通り動くようになる。
ary.Length ⇒ ary.length
出力
追加前: 0 一つ目追加: 1 二つ目追加: 2 一つ目: foo 二つ目: bar
恐らく、Arguments は Windows の組込みオブジェクトなので大文字でも小文字でも動くようになっている1 が JScript 言語で定義されている配列はそうはいかない。
てことだろう。知らんけどw
まとめ
大文字 WScript.Arguments.Length OK ary.Length NG 小文字 WScript.Arguments.length OK ary.length OK
Footnotes:
そもそも、 Arguments は配列じゃないしねw
Created: 2026-05-01 金 15:03
2026年4月4日土曜日
EXCEL での正規表現置換
EXCEL での正規表現置換
エクセルで、"No" の後の数字を一括で A1 セルで指定した内容に置換したくて
REGEXREPLACE(B10,"(No)[0-9]+","$1"&A1)
と書いたらエラーになった。なんで?
& 以降を取ったらエラーは出ないので、式自体は問題ないはず…
…
小一時間熟考して気がついた。
A1 セルに入ってたのは 2 。そらエラーになるわ orz
- 解説
数式を展開すると
REGEXREPLACE(B10,"(No)[0-9]+","$1"&"2")
↓式を処理すると
REGEXREPLACE(B10,"(No)[0-9]+","$12")
⇒ 12番目の括弧はない からエラー
こんな風に
{と}で括らなきゃいけなかったのね。REGEXREPLACE(B10,"(No)[0-9]+", "${1}"&A1)
Created: 2026-05-01 金 14:04
2025年5月1日木曜日
EXCELでスピルを使う時のメモ
一部非対応関数がある。確認したのは
AND(), OR()
例えば、下記の様な表があったとして
| A | B | |
|---|---|---|
| 1 | TRUE | TRUE |
| 2 | FALSE | TRUE |
| 3 | FALSE | FALSE |
ここで、下記の様に C 列に「A 列と B 列の各行毎の AND」を表示したい。
| A | B | C | |
|---|---|---|---|
| 1 | TRUE | TRUE | TRUE |
| 2 | FALSE | TRUE | FALSE |
| 3 | FALSE | FALSE | FALSE |
で、C1 に =AND(A1:A3,B1:B3) を入れると
| A | B | C | |
|---|---|---|---|
| 1 | TRUE | TRUE | FALSE |
| 2 | FALSE | TRUE | |
| 3 | FALSE | FALSE |
となりうまくいかない。
恐らく AND(A1,A2,A3,B1,B2,B3) と解釈されてるのだろう。
今のところ、各行毎の AND を取りたいなら、 IF((A1:A3)*(B1:B3),TRUE,FALSE) 等とするしかないようだ。
(OR なら + を使う)
Created: 2025-05-01 木 11:31
2025年4月30日水曜日
WEB版EXCELで「名前を付けたLAMBDA関数」を使う
以前、WEB 版 EXCEL で 名前を付けたLAMBDA関数 を作成しようとして、できなかったので使用を諦めていたのだが、今回登録方法が見付かったのでメモっておく。
やり方
数式タブ→「ネームマネージャー」→「+新規」これでWEB版でも自作関数が作れる😸
(追記)
WEB版で自作関数にセルの範囲指定を入れたら、動作しなかった😿- セルB5 に 0.3 を入れる
LAMBDA(no,INDEX(Config!B5:B7,no,1))にhogeて名前つけるhoge(1)を評価すると0
現時点では、Excel for the web ではスコープを編集できません。規定では、名前のスコープはブックに設定されますて書いてあったので、 INDIRECT 使って書き直したら意図通りに動いたw
LAMBDA(cno,INDEX(INDIRECT("Config!B5:B7"),cno,1))
2024年6月17日月曜日
2024年5月2日木曜日
Eamcs セットアップメモ
最終更新: 2026-07-10
新規に Emacs を自分の環境ファイルを使ってセットアップする機会があったので、その時のメモを備忘録として残しておく
前準備
MSYS2 のインストール
なくても動くけど、結局grepとかがないと不便なので…
本家のページ よりダウンロードしてインストール
emacs をインストール
本体
本家のページ よりダウンロードしてインストール
環境ファイル
My GitHub より取得
- ssh 経由で clone する
$ git clone git@github.com:toastedlaver/.emacs.d.git - または ZIP ダウンロード
追加パッケージをインストール
emacs 起動して、エラー出る箇所を見ながら下記をインストールしていく
package-install で導入
| パッケージ | 概要 | 補足 |
|---|---|---|
| migemo | ローマ字日本語検索 | |
| ddskk | 日本語入力 | |
| bf-mode | dired でファイルの中身を表示 | |
| color-moccur | 検索 | grep/ripgrep などが使えない環境 (Windows native とか) のため |
| recentf-ext | recentf でディレクトリも保存 | helm を動かすために必要 |
| helm 本体 | 検索 | (require 'helm-config) ではなく
(require 'helm) になったようだ |
| helm-gtags | ||
| helm-swoop | 検索画面を編集して元ファイルに反映 | |
| helm-ag | ag で helm インターフェースを使う | 設定すれば grep/ripgrep も使える |
| shell-toggle | ||
| session | kill-ring やミニバッファ入力、開いたファイルなどの履歴を保存 | |
| magit | git I/F |
パッケージ管理外
| elisp | 概要 | DL | メモ |
|---|---|---|---|
| sorter.el | dired でファイルのソートを拡張 | オリジナルのファイルが所在不明 | |
| w32-symlinks.el | dired で Win のショートカットを処理 | EmacsWiki | |
| dabbrev-highlight.el | dabbrev 展開時に色つけ | オリジナルの改良版 | |
| dabbrev-ja.el | dabbrev を日本語に対応 | コード | dabbrev-highlight のページ → 追加設定 |
| cygwin-mount.el | cygwin形式のパスを扱えるようにする | EmacsWiki | Cygwin や MSYS2 等の一部コマンドは UNIX 形式パスしか処理できないので必要 |
| psvn | Subversion I/F | EmacsWiki | もうコードがメンテされてなさそうなので、
package-install できる dsvn に変えた方が良いかも |
その他
for migemo
- 実行ファイル cmigemo
- Windows では他のアプリでも使うので
%USERPROFILE%\AppData\Local\cmigemoに入れている - Linux なら普通に
make→make install - migemo-dictionary 等の値を環境に合わせ設定
- 辞書の文字コードは UTF-8 (もう SJIS とか使わんでいいやろw)
- Windows では他のアプリでも使うので