考えてみるとほとんどパスワードを保存するコードを書いたことがない。現状のベストプラクティスを知らなかったのでメモ書き。

現状では bcrypt 使うのがいいみたい。b は Blowfish の b。

Modular Crypt Format というフォーマットとコンパチの出力をする。crypt (3) はもともと DES の短いフォーマットだが、弱すぎたため md5 拡張なりSHA512 拡張などが存在している。(htpasswd でも使われているので見たことある人は多いだろう)

これの Blowflish を使ったものが bcrypt で、prefix に $2$, $2a$, $2x$, $2y$ $2b$ がついている。prefix の違いはバージョンの違いであり、現在は 2b を使うのが良い。ストレッチング回数も出力に含まれるので、あるとき急にストレッチング回数を増やしても特に問題はない。

このフォーマットは出力に salt も含むので、生成された MCF はそのまま保存すれば良い。

Blowfish ってなんだ

Blowfish 自体は一方向ハッシュ化アルゴリズムではなく共通鍵暗号化アルゴリズム。処理速度が早く鍵長がある程度可変でライセンスフリーというのが特徴。

共通鍵暗号なのになんでハッシュとして使えるの?

bcrypt は "OrpheanBeholderScryDoubt" という決まった文字列を 64回 Blowfish で暗号化する。 このとき暗号に使う状態 (暗号化の鍵) を password や salt から初期化する。この初期化にも Blowfish の暗号化が使われる。

暗号化済みテキストに鍵の情報が入ることはない (もしあったとしたら暗号化アルゴリズムではない) ので一方向になる。

また "OrpheanBeholderScryDoubt" に復号化できるキーを探す (クリブ / plain text attack) も Blowfish では難しいため、実質的にブルートフォースアタックしかできない。

備考: salt を別途保存する必要がないのは bcrypt に限らない

そもそも Modular Crypt Format のものは des crypt ですら salt も出力に含んでいる。ググると「bcrypt なら salt は別に保存する必要がない」と書いてる人がいたりする。間違いではないが正しくはない。

Modular Crypt Format のいくつかのパターンを引用する

des_crypt    : {salt}{checksum}
md5_crypt    : $1${salt}${checksum}
bcrypt       : $2a${rounds}${salt}{checksum}
sha256_crypt : $5$rounds={rounds}${salt}${checksum}

( https://passlib.readthedocs.io/en/stable/modular_crypt_format.html から一部をコピペ)

備考: パスワード保存は必要か?

そもそも現代ではプラットフォーマーでなければパスワードを保存しなければならないケースがかなり少ない。OAuth などで外部サービスに認証を委託したほうがはるかに楽だからだ。パスワードを保存するということはそれ自体が難しいうえに、パスワードリセットや2段階認証なども含めてトータルで抜け道がないか考える必要がある。

ref.

  1. トップ
  2. tech
  3. パスワード保存のベストプラクティスと bcrypt のメモ書き

書いてなかったけど追いうちノミも買ってた


常三郎 東秀石 台付鉋 白樫 60mm - 常三郎

常三郎

4.0 / 5.0

本職用 (すぐ使えないやつ) の60mmのカンナを買ってみたので仕込み (初期設定) した。ググったらやりかたでてくるし動画で説明してる人もいて良い時代。大工道具は基本的に初期設定が必要なものが多い。自分用の .vimrc 書くようなもんだ。

自分でやりかた説明してもしょうがない (しばらく二度とやらないだろうし、メモにしても将来結局ググりなおす) ので写真だけ

60mm (寸四) でも結構デカい。自分は手のサイズ小さくないほうだと思うけど持つと結構つかれる。これ以下のサイズだと小鉋になる。

表なじみと抑え溝を削る

新品は刃を叩いても出ないようになっているので、当たってる表なじみを削る。同様に抑え溝も削る。

表なじみはちょっとしか削ってない。抑え溝は結構 (0.2mmぐらい)は削ったかな

台なおし

定規あててみた感じではガタつきもなく、削ってあって直す必要なさそうだったのでそのまま。

刃研ぎ


裏押し前


裏押し後

裏押し難しい……一応鏡面まで持っていったがこれで十分なのかよくわからない。

しのぎ面。軟鉄部分は鏡面にならないのか??と不安になったが、どうやら曇った感じであってるっぽい。鋼部分だけ鏡面になれば良いようだ。

鉋や鑿には裏に凹みがついている。これを裏すきという。なぜ凹みがついているかというと、裏の平面出しを楽にするためである。裏すきに対して、すいてない平面部分のことを裏押しという。(片刃の和包丁も同様に裏すきがある)

片刃の刃物は裏に完全に平面が出ていることが要求される。しかし実際に裏を全て平面にしようとすると、硬い鋼面であるうえに削る面積が大きく、途方もない時間がかかってしまう。

そこで、裏すきを入れることで、平面を出す必要がある部分を刃のごく近くに限定し、すばやく平面を出せるようにしてある。

鉋と比べると鑿はベタ裏でも問題がない。というのも鉋と比較すると鑿は刃の面積がそもそも狭いため、ある程度ベタ裏でも現実的な時間で平面が出せるからである。もちろん鑿の大きさにもより、大きい鑿ほど細い裏がついていなければ研ぐのが難しくなる。

研ぎやすさ

裏すきに限らず、刃物類は「研ぎやすさ」の観点が大事になっている。硬い鋼と軟鉄を貼り合せて刃物を構成しているのも研ぎやすさに寄与する。すべてが硬い鋼だと大変な労力がかかってしまう。

ミニ鉋を持ってたけど表面仕上げには使ってなかった (削り幅が多い調整用途が多かった)。が、実はサンディングするより鉋がけで仕上げたほうがいいのではないかと思いはじめた、というのも

  • 粉が舞わない
    • カンナの切削屑はサンディングと比べてかなり大きい
  • 早く表面が仕上る
    • 削り幅が多い
    • 特に表面の自動プレナーのナイフマークはサンディングで消すのは困難
  • 静か
    • 手道具なので…
  • 仕上がりが綺麗
    • #240 のサンディングよりも切れるカンナの切削のほうが綺麗 (ほっぺたすりすりできるぐらい)

というメリットを感じたからだ。特に粉が舞わないのと静かなことは作業場を確保できない場合かなり嬉しい。

研ぎと調整さえ覚えればいい気がしているので試行錯誤している。

なかなか見た目も可愛いのでエンクロージャーから作りなおすというほどでもない。吸音材(ホワイトキューオン)をいれるのと、回路定数だけ見なおすことにした。

アンプICは 8002A CK2T24 1N と刻印されている。http://www.shenzhensum.com/products/datasheet/8002%282.0W%29.pdf これとかかな

基板上の入力カップリングコンデンサは LCR メータで測ると 0.1μF。入力抵抗は 682 =6.8kΩ。 fc = 1/(2πRi*Ci) で、そんなわけで、入力は234Hzのハイパスフィルタを構成してしまっている。

フィードバック抵抗は 223 = 22kΩ。Av =2*(Rf/Ri) で、約6.5倍の電圧ゲイン。

入力定数のおかげで低音がかなりカットされている。これはこれで別に悪くはないけど、試しにもうちょっと低音まで出せるようにしてみた。やったことは 4.7μF を並列に繋げるだけ。チップコンなら単に積層してあげるだけなので難しくはない。そもそもこういうカップリングにセラミックコンデンサを使うのはよくない (DCバイアスでかなり容量が変化する) みたいだけど、あんまこだわらない。

  1. トップ
  2. tech
  3. ダイソー300円スピーカーのちょい改造

2013年に中古で買ったイトーキのプラオチェアがもう限界っぽい。気がつくと赤っぽいオイルが床に滴っていることがある。

売りに出る前何年使われていたかはわからないが、うちにきてから6年経過しているので、まぁしょうがないという感じはする。

次買うならさすがに新品を買いたいかな。しかし家具の事情で椅子を買っても搬入するのが難しいので困った……

sdkmanager をダウンロードする

Android Studio のダウンロードページから「コマンドラインツールのみ」を選んでダウンロードしてくる。Android Studio が必要なら別に全部入りでもいい。

このコマンドラインツールには共通で使う最低限のものしか入ってない。

プラットフォームごとにツールをダウンロードする

REPO_OS_OVERRIDE を指定しつつダウンロードすると、動かしているプラットフォーム以外のバイナリも取得することができる。例えば Mac OS で Linux のバイナリが欲しいときなどに使える。

REPO_OS_OVERRIDE=linux ./sdkmanager --sdk_root=/tmp/linux --verbose  "build-tools;28.0.3"

こうすると /tmp/linux/build-tools/28.0.3 とかにツールがダウンロードされる。/tmp/linux/build-tools/28.0.3/lib64 以下の共有ライブラリも実行に必要なので注意

  1. トップ
  2. tech
  3. Android SDK の各プラットフォームのビルドツールの一部を使いたいとき

ジョイントマットの処分

子どもの誕生以来ジョイントマットをリビング全面にひいて生活していたが、ヘタったり汚れたり不満があったりしたのですべて処分した。といっても4年ぐらい使ったので十分だろう。

具体的にジョイントマットの何がダメかというと以下の通り

  • だんだんジョイント部にすきまがあく
  • 汚れが落ちにくい
  • 水を吸わないので、こぼしたときはジョイント部からすべてフローリングの間に流れていく
    • これがとても厄介で、ジョイントマットを外してフローリングを吹いてマットを洗う必要があるわけだが結構広範囲に及んでしまい大変
  • しきっぱなしでもフローリングとの間にかなりゴミが溜って不衛生
    • たぶんジョイント部から入りこんで振動で拡散していくんだとおもう

フローリング直生活でもいいと思ったが、思ったより寒いし子どもの足音がうるさいし、椅子でキズがつきそうだしで、やはり敷物をしきたくなった。

タイルカーペットの検討

ということで、いろいろ検討した結果タイルカーペットがいいのではという結論に至った。普通のラグなども考えたが汎用性が高いものに惹かれた。

メーカーなどをリサーチした結果、東リのファブリックフロアが良さそうということになった。

  • 東リはシェアが高い
    • n年後でもメンテナンスで追加で買えそうだということ
  • 吸着加工
    • フローリングに吸着して固定される。糊で貼る必要がない
  • 価格もそれほど激安といわれている商品と変わらない (1.2倍程度)

敷く面積によって大きく値段が変わってくる。アタック350という一番安いシリーズで一枚あたり380円ほど。40cm角なので、200x160cm 20枚で7600円ぐらい。ジョイントマットと比べると高くつく。全面張りカーペットというよりはラグとして使うほうが良いだろう。

ダイニングテーブルまわりと、子どもが遊ぶ部分に敷きたい。ラグとして使ったほうがいいと言っておいてアレだけど、ほぼ全面張りになる。そうするとうちの場合は8x6=48枚ほど必要なことがわかった。2万円弱。

タイルカーペットのデザインツール

公式にあればよかったがなかったのでつくった。公式サイトのタイル画像をそのまま使っているので、とりあえず公開せずスクショだけ。

タイルカーペットも並べかたにいろいろ種類があるっぽいので、フル機能を作ろうとすると大変だと思う。市松貼りがスタンダードっぽいので、それにだけ対応している。

東リから画像の利用許諾を得られたので公開しました。

あるDIY動画でトルクス(Torx / hexalobular internal / star screwdriver / star bits / 6lobe)ヘッドのビスを多様していたので気になった。調べてみるとヨーロッパではプラスネジより主流になりつつあるらしい。羨しい。

とはいえトルクスは国内ではとても入手性の悪いネジなので、使うことはまずない。悲しい。


最近はできるだけ六角キャップボルト(アーレンキーを使うもの)を使うようにしている。が、コーススレッドみたいなものはどうしてもプラスしか入手できない。

トルクスと六角だとトルクスのほうがよりトルクをかけやすく、力が分散するので壊れにくいようだ。

英語版ウィキペディアに六角との比較がある。https://en.wikipedia.org/wiki/Torx

2x4 アジャスタ(突っ張り) + 棚柱が最高

棚柱

チャンネルサポートとかガチャ柱とかいうもの。店舗やオフィスでよく使われている。

2x4アジャスタとの組合せ

棚柱自体は壁に強固に固定する必要があるものなので、そのままでは賃貸住宅では使いようがない。そこで 2x4 アジャスタの出番になる。2x4 の柱を立ててそこに棚柱を固定する。

棚柱はどのメーカーのを使うか?

基本的にメーカーごとの互換性はない。メジャーなのはロイヤルAAシリーズかスガツネのLAMPのシリーズあたりになる。

特にロイヤルのAAシリーズは店舗向けでシェアが高いようで入手性が良い。ホームセンターやハンズでも手に入る。

といってもロイヤルの棚柱も種類があってややこしい。ホームセンターや東急ハンズで手に入りやすいのはAA SYSTEMというもの。棚柱(チャンネルサポート)などにAAのマークがついているのでわかりやすい。ロイヤルだと住宅向けにSS SYSTEMというもあるが自分は取り扱いを見たことがない……

このシリーズ内でもチャンネルサポートの厚み違いなのがあって、かなりややこしい。ASF-1 が 11mm で、 ASF-10 が 14mm。他の厚みもある。すべて統一するか、すくなくとも使う分はセットで買うべき。厚みが違うだけで、棚板金具は共通で使える。調べた感じでは ASF-10 が最も入手性が良い。

2x4アジャスタと棚柱の耐荷重

LABRICO の 2x4 アジャスタの荷重は片方に頼れるような力の加わりかたの場合は1本あたり20kg。棚柱の場合最低でも2本は立てることになる。合計で40kg。(ちなみに倒れこむ方向に棚があり、2本の柱が支えあうような形にする場合は耐荷重がなくなる。というかただの突っ張り棚と同じ)

棚柱の耐荷重は
メーカーの指標によると 17〜33kg のようだ。

ということで棚柱の耐荷重を守っている限りだと2本の 2x4 アジャスタでも十分ということになる。

メタルラックと比べると耐荷重は10分の1程度なので、重量物は置けないと考えておいたほうが安全。

メモ

コーナン ネット通販がやすいっぽい。送料は5000円以上なら無料

パナソニック スチームオーブンレンジ ビストロ 30L ヘルツフリー ブラック NE-BS805-K - パナソニック(Panasonic)

パナソニック(Panasonic)

5.0 / 5.0

12月に買い替えてた。パナソニックのビストロにした。NEBS805 という30Lのもの。要件としては

  • テーブルがない (回らないやつ)
  • トーストがそこそこうまく、はやく焼ける
  • スチーム機能がある
  • コンベクションオーブン

このあたりを必須で考えた。オーブンレンジはシャープのヘルシオとパナソニックのビストロが二大巨頭なので、どっちかにしようと思った。トーストが早く焼けるという点ではビストロが勝つのでまぁビストロかなという感じに。

現状での感想

よかったところ

  • まわらない
    • 「これ回ったときに庫内の壁にあたりそうだな…」みたいなストレスがない
    • ちゃんとうごいてるのか不安になってしまう!
  • 自動加熱が優秀で、温度を指定して温めできていい。1分ぐらいで現在温度もでる。
  • スチームあたためが良い (スチーム+300W電子レンジ) 焼き鳥とかパサつかなくて良い
  • トーストがだいぶおいしく焼けるようになった
  • オーブンの最高温度が上がったのでグラタンとかが可能になった

わるかったところ

オーブンなど庫内が高温になると自動あたためができなくなる。まぁしかたないのはわかるけど結構不便。手動加熱はもちろん可能なので死ぬほど困るというわけではないが、自動加熱を先にやっておくとか、加熱順を考える必要がある。

よくもわるくもなかったところ

上位モデルだと液晶タッチディスプレイになってユーザーインターフェイスが改善されるが、このモデルの自動メニューは昔からある数字を選んで実行するタイプになる。あんまり使いやすいとは思わないが、実際によく使う自動メニューは限られているので、そんなに困るというほどではない。

タッチディスプレイのほうが良いのは確かだと思うが、価格差ぶんの価値はないなと思った。

電子レンジの考えかた

設定したら目を離せるというところに意味がある。ガスレンジと違って常に見ている必要がないので、作業の並列度を上げることができる。並列度を上げるという意味では、自動掃除機(ルンバ)とか保温調理器(シャトルシェフ)とかと同じような効果が期待できる。

電子レンジ単体ではガスレンジでやるよりも時間がかかることが多い。しかし家事全体の並列度をあげて、作業者 (CPU) のビジー状態を減らすことで、他のタスクにより多くの時間を振ることができる (時短できる)。なので、「トースト焼くなら電子レンジよりガスグリルつかえ」というのはハズしてると考える。

いままでの

今までのはシャープのRE-SW10-B (15L)というやつだった。2009年3月に15kぐらいで買ったようだ。そろそろ10年ってとこか。一人暮らしはじめるときに買ったものなので 15L はさすがに小さいとか、トースト機能がイマイチなど問題がいくつかった。