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 セットアップメモ
新規に Emacs を自分の環境ファイルを使ってセットアップする機会があったので、その時のメモを備忘録として残しておく
MSYS2 をインストール
なくても動くようにしてるつもりだけど、結局grepとかないと不便なので…
emacs をインストール
emacs 環境ファイル
- github から .emacs.d を clone
- emacs 起動して、エラー出る箇所を見ながら下記をインストール
- migemo
- 本体は package-install で入る
- cmigemo はダウンロードしてインストール
→Windows は AppData/Local/cmigemo に入れて各アプリで共用できるようにした - migemo-dictionary 等の値を環境に合わせ設定
- もう UTF-8 以外の環境になることはなさそうなので削除
- ddskk
- 本体は package-install
- L 辞書は github からダウンロードして .emacs.d/etc/skk に入れる
- Win 環境では SKKFEP の L 辞書と共用にしようと思ったが、 SKKFEP 辞書の文字コード等が本家と変わっているので諦める
- (require 'skk-autoloads) は不要になった模様
※パッケージインストール限定かも - dired のカスタマイズ関連
- sorter.el (ファイルのソート)
オリジナルのファイルが見つからないので使うのを諦める - w32-symlinks (Windows のシンボリックリンクを処理できる)
EmacsWiki からダウンロード - bf-mode (ファイルの中身を表示)
package-install で入る - color-moccur (検索) grep や ripgrep 等が使えない環境 (Windows native とかw) のためにいれておく
package-install で入る - dabbrev-ja (動的略語展開 dabbrev の日本語対応設定)
オリジナルのファイルが見つからないので使うのを諦める
どうやら これ がオリジナルらしい (追加設定の方ねw) - dabbrev-highlight (動的略語展開時に色つけ)
オリジナルのファイルが見つからないので使うのを諦める
オリジナルの改良版 ここ にある - psvn (svn インターフェース) 職場では現役
EmacsWiki からダウンロード - helm 関係 … 下記全て package-install で入る
- recentf-ext (recentf でディレクトリも保存できるようにする)
- helm 本体
最新では (require 'helm-config) ではなく (require 'helm) になったようだ - helm-gtags
- helm-swoop (絞り込み検索の画面を編集して元ファイルに反映)
- helm-ag (ag で helm インターフェースを使う。設定で grep/ripgrep も使える)
- shell-toggle
package-install で入る - session (kill-ring やミニバッファ入力、開いたファイルなどの履歴を保存する)
package-install - cygwin-mount.el (cygwin形式のパスを扱えるようにする)
gtags等の外部ツールはパスがunix形式になるため必要
EmacsWiki からダウンロード magit (git インターフェース)
依存するパッケージ compat が見付からないとかで、インストール不可- その他設定
- shell-command-completion-mode 設定不要 (なくても補完できてそう)
2021年12月7日火曜日
mintty で全角文字の一部が重なって表示される
mintty で文字コードを UTF-8 にすると、一部の記号が下記の様に重なったり欠けたように表示される。
2021年11月1日月曜日
png に日付情報 (Exif) を追加
スマホのあるアプリで撮ったスクショ (PNG) を Amazon Photo に上げると「日付なし」となって日付で整理できない。
ファイル名にスクショしたタイムスタンプが使われているようなので、これを exiftool で撮影日として登録するスクリプトを書いてみた。
#!/usr/bin/ruby ARGV.each do |arg| /([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})/.match(arg) year = $1 month = $2 day = $3 hour = $4 minuite = $5 sec = $6 puts "#{year}/#{month}/#{day} #{hour}:#{minuite}:#{sec} <- #{arg}" system("exiftool -DateTimeOriginal=\"#{year}/#{month}/#{day} #{hour}:#{minuite}:#{sec} JST\" #{arg}") end
2020年5月8日金曜日
shell-toggle で ansi-term が立ち上がるようになった
ansi-term はいちいちモードを切り替えないと emacs のキーバインドが使えないので個人的に使い難い。
できれば通常の shell モードが立ち上げるようにしたい。
どうにかならないかと shell-toggle のコードを眺めてたら、どうやら shell-launch-shell を書き換えれば良さげだったので、 init.el に下記を書き込んで解決。
(setq shell-toggle-launch-shell 'shell)
2020年5月6日水曜日
携帯端末の通知を PC に転送する
携帯だと、画面に出る情報が少なくてストレスが貯まるのだ。
そういうわけで家で PC いじってると、携帯にメッセージや電話が来ても気付かない場合がある。
めんどいのでマナーモード解除しない場合が多々あるんで…💦
そういう場合に使えるアプリを見付けた。
Push Bullet さん
本来は携帯端末や PC にメッセージやファイルを送信するメッセージアプリだが
このアプリの設定に「通知ミラーリング」という項目があって、オンにすると
携帯の通知を PC で見ることができる。
PC 側のブラウザにも拡張機能の Push Bullet を入れたら、端末側の通知が PC でも表示される
![]() |
![]() |
| 携帯端末の通知 | PC のデスクトップ通知 |
複数の端末で Line を共有する
モバイル版アプリだと、一アカウントにつき一端末でしかログインできない。
- PC 版
- ipad 版
- Chromebook の chrome ブラウザによるアクセス
2019年7月8日月曜日
Android のギャラリーに余計な画像を表示させないようにする
以前から、スマホのギャラリーに
どう見ても特定アプリ用の背景画像やスタンプ、アイコン等が大量に表示されてしまい
SNS にアップしたい写真を探すのが大変なときがあった。
どうにかできないものかと思って調べてみたら、こんな記事を見付けた。
.nomedia ってファイルを置いたディレクトリはギャラリーの検索対象外になるらしい。
一個一個入れてくのは大変だけど…
ちなみに、全部のアプリの画像が出てるわけじゃない。
てゆーか、表示されてる画像の大半が LINE 関連のアプリ。
どーなってんの LINE さん?(#-_-)
2018年7月7日土曜日
HDD 内の画像を一覧表示する
今までに撮った写真を HDD に貯めているが 整理のため、年月毎にフォルダ分けしてるので、全部の写真を一覧表示できない。
そのためにわざわざアプリを入れるのも何だしなぁ…と思い 自分で作ってみることにした。
と言っても難しいことはできないので、 html を作ってブラウザで見ることにする。
<img="2018/0519.和製ウユニと猫島/IMG_8921.JPG" width="120" height="80"> <img="2018/0519.和製ウユニと猫島/IMG_8922.JPG" width="120" height="80"> <img="2018/0519.和製ウユニと猫島/IMG_8923.JPG" width="120" height="80"> <…>
とか、書いておけばいいだろうw
ということで作ったのがこちら。ファイル一覧とか出すのが簡単なので Bash Script で作成。 調子に乗って、アスペクト比を保持したまま縮小してサムネイル表示する仕組みを入れている。
#!/bin/sh
#長辺がこのサイズに収まるように整形する (縦横比を維持)
lbndry=120
cat <<'HEADER'
<html>
<meta charset="UTF-8">
<head>
<title>写真ビューア</title>
</head>
<body>
HEADER
find . -type f -iname "*.jpg" | sort | while read photo
do
reso=`file "${photo}" | perl -pe 's/.*?([0-9]+x[0-9]+).*/\1/g'`
width=${reso%%x*}
height=${reso##*x}
#
if [ "${width}" -gt "${height}" ]; then
height=$((height*lbndry/width))
width=${lbndry}
else
width=$((width*lbndry/height))
height=${lbndry}
fi
name=`basename "${photo}"`
echo "<a href=\"${photo}\"><img src=\"${photo}\" alt=\"${name}\" border=\"0\" width=\"${width}\" height=\"${height}\"></a>"
done
cat <<'FOOTER'
</body>
</html>
FOOTER
実際に動かしてみたのだが…。 html 作成にかかった時間は 10分程度。
まあ、 JPEG ファイルが 33000 程度あるからそんなもんか?
※一つずつ写真の解像度調べてるからなぁ…。アスペクト比計算をなくせばもっと速くなるだろうが。
ただ、実際にブラウザで表示させたら
表示が遅すぎて使えないw
やっぱり、ちゃんと サムネイルファイル 作らなきゃダメか…。(´・ω・`)
2017年11月27日月曜日
外付けHDDの「ごみ箱」を無効にする
よく見てみると、消したファイルがごみ箱に残っている。
あれ?今まで外付け HDD にごみ箱なんてあったっけ?
調べてみると Windows Vista 辺りから、どうやら外付け HDD にも自動で「ごみ箱」が作られるようになったようだ。(それより前はユーザーが作成しないとできない)
そのことをすっかり忘れ、また容量が増えずにアレ?てことを何回も繰り返したので
だんだんめんどくさくなってきた。
そもそも、外付け HDD は基本的にデータ退避用なので、正直ごみ箱は不要である。
ということで外付け HDD のごみ箱を無効化する方法を調べてみたが、
ちゃんと説明しているページが見つからなかったので、メモとして残しておく。
手順
- デスクトップのごみ箱を右クリックして「プロパティ」を選択
- 不要にしたいドライブを選択
- 「ごみ箱に移動しないで、削除と同時にファイルを消去する」を選択
- 「OK」または「適用」をクリック
2017年9月20日水曜日
Instagram 始めてみました
基本的に Instagram の写真は正方形が基本だが、ヘルプを見ると長方形の画像も投稿できるらしい。
前から疑問に思っていたのだが、 Instagram アプリで撮った写真は最初から正方形だからいいとして、
端末上にある純正カメラアプリで撮った写真や、クラウド (Google Photo) 上の写真 (長方形) を投稿した場合、アップされた画像は正方形になるのか、長方形になるのか?
実際にやって試してみた。
実験1
端末に以下の様な JPEG ファイルを用意して、 Instagram アプリ上で一つずつ投稿
投稿した元画像
![]() |
![]() |
![]() |
| 16:9 (4096×2304: 端末カメラの解像度) | 4:3 (4096×3072: 端末カメラの解像度) | 3:2 (5184×3456: 別カメラの解像度) |
変換された画像
![]() |
![]() |
![]() |
| 16:9 (1080×608) | 4:3 (1080×810) | 3:2 (1080×720) |
実験2
端末上の JPEG ファイル (実験 1 と同じ) を、 Instagram アプリ上でまとめて投稿
![]() |
![]() |
![]() |
| 16:9 → 1:1 (1080×1080) | 4:3 → 1:1 (1080×1080) | 3:2 → 1:1 (864×864) |
何で 3:2 画像だけ 1080pix じゃなくて 864pix にされたんだろう…?
実験3
Google Photo 上に以下の画像を準備し、 Google Photo アプリから一つずつ Instagram アプリに共有
投稿した元画像
![]() |
![]() |
![]() |
| 16:9 (4096×2304: 端末カメラの解像度) | 4:3 (4096×3072: 端末カメラの解像度) | 3:2 (4898×2304: 別カメラの解像度) |
変換された画像
![]() |
![]() |
![]() |
| 16:9 (1080×610) | 4:3 (1080×810) | 3:2 (1080×720) |
実験4
Google Photo 上の画像 (実験3 と同じ) を、まとめて Instagram アプリに共有
確認できず。どうやら Instagram アプリは複数画像の共有に対応していないらしい…orz結論
補足
ちなみに、テストでアップロードした画像は全て削除したけど、
シェアされた Facebook 側の画像は削除されませんでした。
使うときは気を付けなきゃ。
#やっぱり使い難いぞ…
2017年9月14日木曜日
水中用にマクロレンズが欲しい件
いや、マクロレンズは EF100mm F2.8L Macro IS USM を持ってるんだが
水中だとレンズ交換ができないので、小さな動物しか撮れない。
狙う生物がはっきりしている場合はいいのだが、
何が見れるのかわからない時なんかも多々あるので
35mm 換算で 56mm という標準レンズ並みの画角であるこのレンズなら
ちょっと大きめの生物や人なんかも撮れるんじゃ、と思ったわけ。
ただ、焦点距離が短くなるとワーキングディスタンスが短くなるので
手持ちのレンズポートで最短撮影距離まで寄れるか心配になった。
ということで、ちょっとシミュレートしてみよう。
レンズのサイズはメーカーのページを見ればわかるので
ワーキングディスタンスを計算しようとしたが…
何だ、カタログに 30mm って書いてあるじゃん。
後はハウジングにカメラをセットし、必要なサイズを計測してみたところ
![]() |
| ハウジングとポートとカメラの概略図(数字は mm) |
…あれ?レンズ先端からポート先端まで 30mm を越えてるぞ!?
てことは、等倍撮影はできないってことか…orz
ま、いっかw
等倍にこだわるなら 100mm 使えばいいし。
ちなみに、ハウジングの外からピントリングを回すためのギアも存在しないので
特注ギアを作る必要があるけど、既存のギアと値段さほど変らないので
作ってもいいかな、って思ってたり。
…やっぱり、欲しいわコレ。買っちゃおうかなぁ~。
悪魔の声: 欲しいんだろ?買え…。買ってしまえ!!
天使の声: ダメよ。壊れかけの洗濯機が先でしょ!?
ヽ(__ __|||)…
※注: 図の数値はものさしで適当に測っただけなので、誤差がかなりあると思われます。
参考程度にして下さい。
2017年5月4日木曜日
Windows 10 でスタートメニューに表示されないアプリがある
ふと気が付くとスタートメニューに DPP が表示されていない。
![]() |
| 本来なら Canon Utilities の下にあるはず |
アプリ本体はちゃんと
C:\Program Files\Canon\Digital Photo Professional 4\Dpp4.exeに存在し、起動することもできる。
ネットで調べてみたが、似た症状も有用な情報も見つからない。
俺の環境だけか?とちょっと絶望しかけたが、なんとか解決したので経緯をメモしておく。
まず、Windows のスタートメニューは、以下にあるショートカットを表示する仕組みである。
C:\Users\《ユーザー名》\AppData\Roaming\Microsoft\Windows\Start Menu (ユーザー個別) C:\ProgramData\Microsoft\Windows\Start Menu\ (全ユーザー共通)で、何かの表示に上記フォルダから DPP のショートカットを削除してしまったかと思い
確認したが、以下の場所にちゃんとある。
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Canon Utilities C:\Users\《ユーザー名》\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\_MyLauncher(下の方は、よく使うアプリをまとめるために作ったフォルダである)
そういえば、スタートメニューの _MyLauncher 以下には DPP はちゃんと表示されている。
![]() |
| 自作の _MyLauncher 以下にはちゃんと存在 |
そこで、ふと思った。
「もしかして、スタートメニューに表示されるアプリは一つだけじゃね?」
ということで、 _MyLauncher 以下の DPP ショートカットを消してみたところ
ちゃんと Canon Utilities 以下に表示された。
![]() |
| 復活!? |
やはり、複数ショートカットを作ってもスタートメニューに表示されるものは一つだけのようだ。
念のため、 Canon Utilities 以下のショートカットをコピーで 2 つに増やしてみたが
スタートメニューに表示されるのは一つだけだった。
つまり、ユーザー個別領域の _MyLauncher 以下にショートカットがあったため、そっちが優先されて
本家の Canon Utilities の方には表示されなかった、というのが真相のようだ。
と言うわけで DPP だけではなく _MyLauncher にショートカットを置いたアプリが全て
スタートメニューの「本来の位置」に表示されなくなっているわけだが、
スタートメニューには普通に表示させたい。
そこで、対策として _MyLauncher の位置を別の位置に変えることにした。
どうせ _MyLauncher を見るのはファイラーとして使っている X-Finder からであり、
別にスタートメニューに表示されなくてもよい。
これで解決。
しっかし…。 Windows 7 のころは両方とも表示されている※1ので
Windows 10 で変わったぽいが、なんでそんな意味不明の仕様に変えたんだろう???
JINA Drawer
JINA Drawerを使ってみた。 自分でアプリ分別してフォルダ毎に分類できるので便利✨️ でも、設定をバックアップしようとしてハマった どうやら いや、普通「Backup data」を選ぶだろこんなん😾
-
仕事でもプライベートでも Windows 上で emacs を使っているのだが キーバインドが干渉するため IME を emacs とその他のアプリで分けている。 emacs 使用時: Microsoft IME 1 上記以外: SKKFEP Win10 になって...
-
外付け HDD の容量がいっぱいになったので、不要ファイルを消したのだが HDD の残り容量が増えない。 よく見てみると、消したファイルがごみ箱に残っている。 あれ?今まで外付け HDD にごみ箱なんてあったっけ? 調べてみると Windows Vista 辺りから、ど...




















