✖
シャボン玉 酸素系漂白剤 750g cho45
空気清浄機の加湿を使おうとしたら吹き出す風が若干臭くて、掃除マニュアル通りクエン酸溶液につけたり、消毒用アルコールをかけたりして、一時的にはよくなっても、すぐ臭くなってしまって2日に1度ぐらい掃除するみたいになって、これがだいぶストレスになっていた。
気化部分を見ると部分的に黒くなっていて、カビかなと思ったので、洗濯漕を綺麗にするために買って余った酸素系漂白剤をつかってみた。風呂場で湯船にお湯を溜めて、気化部分をひたして漂白剤をふりかけ、割り箸でときどきかき混ぜながら1時間ぐらい放置したら黒い部分はなくなった。
一応 (反応が終わっていれば無害だけど) 念入りにすすいでからセットしたら臭いは解決した。どのぐらい持つかわからないけど、しばらくは大丈夫そうな気がする。
酸素系の漂白剤は、塩素系のものほどには気を使わなくていいのが使いやすい。
関連エントリー
- 酸素系漂白剤が便利 シャボン玉 酸素系漂白剤 750g cho45 シャボン玉石けん ★ 5.0 / 5.0 cho45 もともと洗濯機の掃除に酸素系漂白剤が効...
- ハイターの種類と選びかた。最も汎用性が高いのは 花王の漂白剤シリーズに「ハイター」というのがあるが、種類がいっぱいあってよくわからない。というところだけど、実は公式のFAQに一覧があって、...
- 空気清浄機の加湿が臭うとかなんとか 加湿器の除菌タイム 液体タイプ 無香料 給水タンク内の除菌・ヌメリ防止専用除菌剤 500ml cho45 除菌タイム ★ 4.0 / 5.0...
- 塩素臭のしない塩素系消毒剤 というのがあるらしいことを知った。ペルオキソ一硫酸水素カリウム+塩化ナトリウムで構成される薬剤らしい。一般向けには杏林製薬がルビスタという製...
- ダイキンの空気清浄機を分解清掃 2年前の買ったダイキンのACK75L-Tの中に虫が入りこんで死んでいるっぽいので分解清掃した。 ダイキンは法人向け技術資料を普通に公開してい...
✖
gerry++
gerry++
gerry++
✖
gerry++
gerry++
OpenSSL のあの暗号化って Perl でどうやんの?
DES, 3DES (またの名をDES EDEあるいはTripleDES) * ECB, CBC だけ。最初、 Crypt::TripleDES というモジュールが見つかったので試したけど一向にうまくいかず、EDE のほうを見つけるのに苦労しました。
#!perl
use v5.12;
use utf8;
use strict;
use warnings;
use Crypt::ECB;
use Crypt::CBC;
use Crypt::DES;
use Crypt::DES_EDE3;
use MIME::Base64;
use Test::More;
use File::Temp;
sub openssl ($$) {
my ($args, $content) = @_;
my $fh = File::Temp->new;
print $fh $content;
close $fh;
my $cmd = "openssl $args -in " . $fh->filename;
note $cmd;
my $ret = `$cmd`;
chomp $ret;
$ret;
}
subtest 'DES ECB' => sub {
my $key = '1' x 16;
is openssl("enc -e -nopad -des-ecb -K $key -base64", "foobar "), do {
my $cipher = Crypt::ECB->new;
$cipher->key(pack("H16", $key));
$cipher->cipher('DES');
encode_base64($cipher->encrypt('foobar '), '');
};
};
subtest 'DES CBC' => sub {
my $key = '1' x 16;
my $iv = '1' x 16;
is openssl("enc -e -nopad -des-cbc -iv $iv -K $key -base64", "foobar "), do {
my $cipher = Crypt::CBC->new({
cipher => Crypt::DES->new(pack('H16', $key)),
padding => 'none',
header => 'none',
iv => pack('H16', $iv),
});
encode_base64($cipher->encrypt('foobar '), '');
};
};
subtest '3DES ECB' => sub {
my $key = '1' x 48;
is openssl("enc -e -nopad -des-ede -K $key -base64", "foobar "), do {
my $cipher = Crypt::ECB->new;
$cipher->key(pack("H48", $key));
$cipher->cipher('DES_EDE3');
encode_base64($cipher->encrypt('foobar '), '');
};
};
subtest '3DES CBC' => sub {
my $key = '1' x 48;
my $iv = '1' x 16;
is openssl("enc -e -des-ede-cbc -iv $iv -K $key -base64", "foobar"), do {
my $cipher = Crypt::CBC->new({
cipher => Crypt::DES_EDE3->new(pack('H48', $key)),
header => 'none',
iv => pack('H16', $iv),
});
encode_base64($cipher->encrypt('foobar'), '');
};
};
subtest '3DES CBC (space padding)' => sub {
my $key = '1' x 48;
my $iv = '1' x 16;
is openssl("enc -e -nopad -des-ede-cbc -iv $iv -K $key -base64", "foobar "), do {
my $cipher = Crypt::CBC->new({
cipher => Crypt::DES_EDE3->new(pack('H48', $key)),
padding => 'space',
header => 'none',
iv => pack('H16', $iv),
});
encode_base64($cipher->encrypt('foobar'), '');
};
};
done_testing;
✖
日記は書けるけどブログは書けない。
gerry++
✖
✖
gerry++
✖
✖
gerry++
✖
✖
✖
家計簿のいいつけかたを知りたい。が、まず要件が自分でわかっていないようなので整理が必要。
知りたいこと・やりたいこと
- 特定の日の実際使えるお金 (純資産)
- 預金総額
- クレジットカード利用額 (借金額)
- 他に借金してないのでここだけ処理が面倒
- 未来の予定している収入・支出を先に計上したい
- 何年分? 最大でも15年程度で十分そう
- 税金・保険料の可視化
- 簡単に現金の決済結果を記録したい
- PASMO で支払った分は自動化したい
当然できるだけ自動化しようと思うのだけれど、カード利用の明細はちゃんと残しつつ (つまり使った日に何に使ったかを含めて記載したい)、銀行からの引き落としも全部統一して扱いたいと思うと、複式で書くしかないような気がする。けど、複式だとぱっと見で何がどうなってるか理解できないので (どれが負債なのかとか)、なんとかしたい。
自動化しようと思うと、未来の予定の記述が邪魔になる (自動化されていると二重に記載されてしまう)。確定した時点で上書きするみたいな処理が必要。
十分に半自動化ぐらいまでできないとつける気が起きない。
関連エントリー
- 月1万円の支出削減は資産400万円に相当する 経済的独立 (FIREのFIの部分)の文脈では「月1万円の支出削減は資産400万円を増やすのと同じ効果」があるといえる。 これは いわゆる「...
- 人間のファイナンシャルプランナーよりLLMのほうがマシだよね ファイナンシャルプランナーって信用できないじゃないですか。信用できるかどうか判断するためには相手と同等以上の金融知識が必要になる。人間には利...
- 資産運用の基本的な考えかたを勉強してる 特に資産をドル建てで持つことの意味をちゃんと理解しているとはいえなかったので自分なりに整理してみる。 運用の基本的な考えかた 購買力の維持ま...
- 金融政策が不安定なのは「遅すぎる」からか 国債発行がやたら悪役扱いされるのを不思議に思って調べていくうちに、どうも「政府は古いデータでしか判断できない」という構造的な遅さが背景にある...
- ✖ クレジットカードについては家計簿に自動入力しているのだけれど、利用日から1ヶ月ぐらい経ってから請求がくることも多々あって、年をまたぐとものす...
gerry++
Google Apps Script はマジですごい。自分でサーバーを持たず、定期的に Gmail のメールを集計することができる
最近知ったがGoogle Apps Scriptはだいぶいろいろなことができてすごい。
ので、とりあえず楽天カード (今話題) の売上情報メールを集計して家計簿に記録していくみたいなスクリプト (Google Apps Script で使用する言語は JavaScript) を書いてみた。
Google SpreadSheet を開き、ツール → スクリプトエディタ で開かれるエディタに以下をコピペして、run 関数を実行すると、Gmail のメール直近1ヶ月のうち、楽天カードの売上メールから決済情報を抜きだし、シートに転記することができる。手動で実行してもいいが、定期的に実行することもできるみたいだ。
また、ウェブアプリも作ることができて、CSVのインポート画面を作ることもできそうなので作ってみてる。銀行のサイトでブックマークレットを実行すると CSV をつくってインポート画面を開く、みたいなことができそうだ。現金記録用のアプリだけ何か良さそうなのを見つければ、あとはほぼ自動で家計簿的なものを作れそうだと思う。
Google Apps Script はカレンダーの予定とかもいじれるようなので、例えば旅行の予定を入れておけば、自動でそれらも纏めて家計簿の備考欄に追記できると思う。大変夢が広がる。
ただしいくつか欠点もありそうだと思う。
- ウェブアプリは大変遅い
- スクリプト実行6分の時間制限
- Google に完全にロックインされる (もはや抜けようがない)
function run () {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var exists = {};
var values = sheet.getDataRange().getValues();
for (var i = 0, row; row = values[i]; i++) {
exists[ [ row[0], row[1], row[4] ].join(':') ] = true;
}
var rakuten = getRakutenCardData(new Date(new Date().getTime() - (1000 * 60 * 60 * 24 * 30)));
for (var i = 0, it; it = rakuten[i]; i++) {
var debit = guessTitle(it.place);
var credit = "クレジット (楽天)";
var row = [it.date, it.place, debit, credit, it.amount, "支払い予定日: " + [it.pay_date.getYear(), it.pay_date.getMonth() + 1, it.pay_date.getDate()].join('/') ];
if (exists[ [ row[0], row[1], row[4] ].join(':') ]) continue;
sheet.appendRow(row);
}
sheet.sort(1);
function guessTitle (name) {
if (/ガス|ガス|スイドウ|スイドウ|水道|デンキ|電力/.test(name)) {
return "光熱費";
} else
if (/ユニクロ/.test(name)) {
return "衣服費";
} else
if (/スーパー/.test(name)) {
return "食費";
} else
if (/KDDI/.test(name)) {
return "通信費";
} else
if (/SONY ONLINE SERVICES|デイ-エムエム/.test(name)) {
return "娯楽費";
} else {
return "";
}
}
}
var regexp = new RegExp('<tr><td align="center" bgcolor="#ffff00"><font size="-1"><input type="checkbox" name="uriage\\[\\]" value="[0-9]+"></font></td><td align="center"><font size="-1">([0-9]+)/([0-9]+)/([0-9]+)</font></td><td align="left"><font size="-1">([^<]+)</font></td><td align="center"><font size="-1">[^<]+</font></td><td align="right"><font size="-1">([0-9,]+) 円</font></td><td align="center"><font size="-1">([0-9]+)/([0-9]+)</font></td><td align="right"><font size="-1">[0-9]+ ポイント</font></td><td align="right"><font size="-1">[0-9]+/[0-9]+</font></td></tr>', 'g');
function getRakutenCardData (fromDate) {
var result = [];
var newer = [fromDate.getYear(), fromDate.getMonth() + 1, fromDate.getDate()].join('/');
var threads = GmailApp.search('subject:"【売上情報】カード利用お知らせメール" newer:' + newer, 0, 50);
for (var i = 0, it; it = threads[i]; i++) {
var messages = it.getMessages();
for (var j = 0, message; message = messages[j]; j++) {
var matched = [];
message.getBody().replace(regexp, function (_, year, month, date, place, amount, pay_year, pay_month) {
Logger.log([ year, month, date, place, amount ]);
matched.push({
date : new Date(+year, +month - 1, +date),
pay_date : new Date(+pay_year, +pay_month - 1, 27),
place : place,
amount : +(amount.replace(/,/g, ''))
});
});
if (matched.length) {
result = result.concat(matched);
} else {
Logger.log("unmatched: %s (%s)", message.getId(), message.getSubject());
}
}
}
Logger.log(result);
return result;
}
✖
✖
✖
✖
レンズの解像度限界
センサーの高解像度化はどこまで可能なのか、実際今はどれぐらい限界に近付いているのかが気になった。
収差が全くないレンズであっても、回折によって解像度は低下してしまう。これは物理的にどうしようもない限界だ。Wikipedia のエアリーディスクの項を読むと比較的わかりやすい気がする。
ありがいたいことにカメラにおける分解能限界の式も求めてあるので、あてはめて JS で計算してみた。
/**
* F値 `f`, 波長 `lambda` nm における分解能 (mm)
*/
function rayleighLimit (f, lambda) {
return 1.22 * (lambda * 0.000001 * f);
}
// 500nm は緑
console.log('rayleighLimit F32', rayleighLimit(32, 500));
//=> rayleighLimit F32 0.01952
console.log('rayleighLimit F11', rayleighLimit(11, 500));
//=> rayleighLimit F11 0.00671
console.log('rayleighLimit F8', rayleighLimit(8, 500));
//=> rayleighLimit F8 0.00488
console.log('rayleighLimit F5.6', rayleighLimit(5.6, 500));
//=> rayleighLimit F5.6 0.0034159999999999998
console.log('rayleighLimit F2.8', rayleighLimit(2.8, 500));
//=> rayleighLimit F2.8 0.0017079999999999999 光の波長によって変わるらしいが (波長が長いほど分解能は低下する)、この例では人間の目が一番感じやすいらしい緑の波長に設定した。
Canon EOS 5D Mark II のピクセルサイズは 0.0064 mm ぐらいなので、F11 ぐらいになると1ピクセルを超えてしまうようだ。Nikon D800 だとピクセルサイズが 0.0049mm ぐらいで F8 ぐらいが物理的なぎりぎりになってしまう。
結論
- 既に割と限界ぎりぎり
- 開放すれば回折の影響は出なくなるけど、今度は収差がでる (どれぐらいでるかはわからない。物理的に無収差にできるのかもわからない)
- さらにはボケてしまう (ピント面外の解像度が低下する)
- F8 がだいたい最高解像度になるみたいな話は収差と回折のバランスをとった答えのようだ
- さらなる解像度を求めるなら大判にするしかない
関連エントリー
- ディスプレイのppiはどれぐらい必要か? 疑問:ディスプレイサイズが大きくなるほど鑑賞距離も長くなっていき、ppi もそれほど必要なくなるはずだが、実際のところどれぐらいの ppi ...
- EOS 5DS というフルサイズ5060万画素のカメラが発表された。 フルサイズ5060万画素 ところで以前レンズの理論上の解像度限界というのを求めたことがあった。これは、絞りを絞るほど回折によってボケてしまう...
- Google Photo のリリースで無料分のサイズ拡大・アスペクト比別最大サイズの求めかた 今までは2048px以下なら無料というルールだったので、写真をあげるときは全て Lightroom 側で長辺 2048px でリサイズしてい...
- たまにやってくるピンホールカメラ期 30年生きてきてピンホールは3回ぐらい期がきてるので、病気としては10年ぐらいで免疫が切れると考えられる。 ミラーレスフルサイズ (Eマウン...
- NMEA ログから衛星のスカイビューを生成する 既にある NMEA のログから、どの衛星が強く受信できているかをプロットしてみる。 ファイルを指定して png を書き出すコードを node...
gerry++
✖
✖
瀬戸内海
広島
11/23,24,25と広島へ。1日目は尾道、2日目は宮島、3日目は市内の主要スポットを見てまわった。なんかいろいろ書く気になれないので大変重要な点だけ箇条書きにする。
- 尾道は晴れているときにまた行きたい
- 曇りだった。雨が降らないだけましだった
- はっさく大福は必ず食べるべきである
- ネットだと売ってない
- 宮島は臭い
- 鹿がいっぱいいた。奈良かよ
- 厳島神社はできるだけ早い時間に行ったほうがいい
- 10時ぐらいになるともはや大変混む
- 宮島の弥山に登る場合、自力で登ろうと思わないほうが良い
- 2時間待ち程度ならロープウェイ使ったほうが幸せだと思った
- それ以上ならそもそも登らなくて良い
- 焼き牡蠣は沖野水産が一番うまかった
- 単にでかいだけなら別のところもあるけど、でかさじゃないなと思った
- 生牡蠣は一切食わなかったけど楽しめた
- 牡蠣もたくさん食えば一時的に飽きる
- 紅葉饅頭はうまい
- 広島市内は栄えてて、整然としている。京都の河原町が町全体にあるという感じがする
- だいたいのスポットは歩いていける範囲にある
尾道 (猫)
尾道
✖
精神が弱めの人でもつける職業ってないんですか?














































