2023-02-18 ブラーバ ジェット m6 を半年使った感想 / bouzuya/node-wsse 6.0.0 をつくった
ブラーバ ジェット m6 のことは過去に何度か書いている。
- 2022-08-03 2022-08-01 からブラーバ ジェット m6 をレンタルしている
- 2022-08-30 2022-08-28 にブラーバ ジェット m6 を返却した
- 2022-09-04 2022-09-02 にブラーバ ジェット m6 を買った (詳細を書いていない)
2022-08 から数えると 6 ヶ月は使って 7 ヶ月目だろうか。半年ほど使った感想を書いておきたい。
おおまかな感想は 2022-08-30 と変わらない。ルンバと同様に、それ自体が大きな効果をもたらすものではなく、「最低限の作業を機械に肩代わりさせる」ものだ。過度に期待すると後悔する。きれいになっている感覚はほとんどないが、汚れが取れているのは分かるので、使用をやめれば多少は感じられると思う。これもルンバと同様に、「機械が活躍できる状態に持っていく」ことの効果が大きい。床にものを置かない。
ぼくは毎朝動かしている。水分量はウルトラ・床拭きルートの重複は強にしている。この設定だとわりとびちゃびちゃになるので朝早めの時間に動かしている。起きるまでには乾く。
公式のウェットパッドと非公式のウェットパッド https://www.amazon.co.jp/gp/product/B07YDC8JKB を使っている。だいたい 2, 3 日ごとに洗って干している。わりと頻繁に洗っている。ゴミがつくのもそうなのだけど、放置するとすぐに「雑巾のにおい」になるからだ。小・中学生のとき銀色のバケツにかかっていたアレのにおいだ。
非公式のウェットパッドのほうが毛並み (?) は悪いのだけど、プラ部分を取り外せるので洗いやすい。公式も採用すれば良いと思う。
水の入れ替えも洗いと同様に 2, 3 日ごとにしている。先のパッドの洗浄もそうだけど、そも水が切れて動かなくなるので、毎日動かすとこの頻度になる。部屋の狭さがバレそうだ。
ゴミは掃除してくれない。いまの iRobot の最上位モデルは両方ともやってくれるはずだけど、ぼくがこのモデルを見た当時はルンバを動かしたあとに動かすことをすすめていたはずだ。髪の毛やホコリなどを多少は集めてくれるものの、期待しないほうが良い。
これは床に少量の水をぶちまけて布でふく (こするわけでもない) だけの機械だ。
値段も定価は 69,800 円 (今日見た値段) と高いので万人には進められそうにない。ぼくが購入したのは 59,800 円 だったようだ。
個人的には悪くないし、愛用しているし、今後もずっと使っていく。参考になるかは分からないが書いておく。
bouzuya/node-wsse の 6.0.0 をつくった。
- CommonJS のサポートを削除した
CommonJS のサポートの削除については、ひさしく Node.js を触っていないのだけど、もう ESM だけで書けるようになっているようなので、積極的に切っていくことにした。 2023-02-11 に npm:got が切っているのを見た影響もある。
CommonJS のサポートを削除した関係で rollup を削除できた。あわせて babel や power-assert などの変換を避けることでも依存関係を減らした。そのほか Travis CI から GitHub Actions, renovate から dependabot に移行した。
もう自身で積極的に使うパッケージでもないのだけど、 GitHub のぼくのプロフィールページ https://github.com/bouzuya/ に Popular repositories として表示されていて、そこがセキュリティ警告だらけというのもあんまりなのでバージョンアップした次第だ。 2023-02-11 の bouzuya-icon-generator のセキュリティアップデートの流れでもある。
diverta 2019 Programming Contest 2 の B を解いた。
- B - Picking Up
https://atcoder.jp/contests/diverta2019-2/tasks/diverta2019_2_b
- 提出: https://atcoder.jp/contests/diverta2019-2/submissions/38976212
- 制約が
N <= 50
なので 2 点間の距離を列挙すればコスト 0 になり得る p, q の組 (最大 2,500 個) を得られる - これらをすべて試しても間に合う (
O(N^4)
) - ただ、列挙のタイミングでコスト 0 になる個数も求められてしまうので
N - 個数
することですこしだけ早くなる N = 1
のケースを忘れて 1WA
use std::collections::HashMap;
use proconio::input;
fn main() {
input! {
n: usize,
xy: [(i64, i64); n],
};
let mut map = HashMap::new();
for (x1, y1) in xy.iter().copied() {
for (x2, y2) in xy.iter().copied() {
let p = x1 - x2;
let q = y1 - y2;
if p != 0 || q != 0 {
*map.entry((p, q)).or_insert(0_usize) += 1;
}
}
}
let ans = n - *map.values().max().unwrap_or(&0);
println!("{}", ans);
}
今日のコミット。