例えば以下のようなメトリクスがあったとします。みての通り、名前は一緒でラベルだけが異なるメトリクスです。

  • mqtt_topic{instance="127.0.0.1:9981",job="mqtt",topic="/home/sensor/temp"}
  • mqtt_topic{instance="127.0.0.1:9981",job="mqtt",topic="/home/sensor/humidity"}

これらを演算しようとして以下のようにしても no data になります。

 mqtt_topic{topic="/home/sensor/temp"} *  mqtt_topic{topic="/home/sensor/humidity"}

Vector Matching に書いてある通りですが、デフォルトではこのようなベクター同士の演算の場合、左右でラベルが全て一致するメトリクス同士のみが結果に出力されます。

SQL の INNER JOIN でラベル全ての一致が ON 条件に入ってるのをイメージするとわかりやすそうです。

この条件を変更するには、ignoring() または on() を使います。今回のケースでは以下の2つの結果は同じです。

 mqtt_topic{topic="/home/sensor/temp"} *  ignoring(topic) mqtt_topic{topic="/home/sensor/humidity"}
 mqtt_topic{topic="/home/sensor/temp"} *  on(instance,job) mqtt_topic{topic="/home/sensor/humidity"}

ignoring() は JOIN の条件から指定したラベルを除くように働き、on() は JOIN の条件を明示的にすべて指定するように働きます。

リテラル演算との組合せ

数値リテラル(スカラ)とベクターを演算すると、結果はベクターになります。スカラ値との演算時には上記のように ignoring() や on() は指定できません (syntax error になります)。複雑な計算をする場合、適切な場所に on() または ignoring() を書く必要があります。つまりベクター同士の演算になる場所に書きます。

例えば、topic="/home/sensor/temp" を温度、topic="/home/sensor/humidity" を湿度として不快指数を計算したいと思う場合、以下のようになります。

(0.81 * mqtt_topic{topic="/home/sensor/temp"})
  + ignoring(topic) (0.01 *  mqtt_topic{topic="/home/sensor/humidity"})
  * ignoring(topic) (0.99 *  mqtt_topic{topic="/home/sensor/temp"} - 14.3)
  + 46.3
  1. トップ
  2. tech
  3. PromQL でラベル違いのメトリクス同士を演算して no data

最近はこう

ssh-keygen -t ecdsa -b 521

最近の raspi イメージはデフォルトで弱い暗号方式を無効化してあるのでさっさと ecdsa 鍵に乗り換えましょう……

  1. トップ
  2. tech
  3. ssh-keygen

というのがあるらしいことを知った。ペルオキソ一硫酸水素カリウム+塩化ナトリウムで構成される薬剤らしい。一般向けには杏林製薬がルビスタという製品で売っていて、アマゾンでも買える。動物・畜産分野ではおそらく同様のものがバイエル薬品からアンテックビルコンSという製品名で出ている。

メカニズムをみると、ペルオキソ一硫酸水素カリウム自体の酸化作用と、生成される次亜塩素酸ナトリムの酸化作用が働くらしい。どっちが支配的なのかはよくわからなかった。

Y's Square:病院感染、院内感染対策学術情報 | 塩素系に分類される消毒薬および除菌・洗浄剤の特性と選択 とかを見ると各塩素系消毒薬の特徴が書いてあっておもしろい。

ルビスタの場合は洗浄成分(界面活性剤)も入っているので、掃除と消毒を同時にできるのがひとつも特徴となっているみたい。5gを500mlに溶かして1%として使用するということになっている。5g×12包で3300円ぐらいなので、1包 500ml あたり 275円。

次亜塩素酸ナトリウム6%ハイターは5Lで800円程度で、使用時には10倍希薄0.5%扱いとすると500mlあたりは8円、1%希薄(0.5%で十分だが)でも16円なので、ただの次亜塩素酸ナトリムに比べると、かなり割高ではある。

まぁでも、一般家庭では感染症が発生しない限り日常的に使うものでもないので、いざってときに塩素臭がしないのはかなり嬉しいポイントだと思う。実際に次亜塩素酸ナトリウムを広範囲に消毒に使ってみると塩素の刺激臭でなかなかつらいものがある(経験談)。一方で漬け置き漂白みたいな用途には使えないみたいなので、汎用性でいくとやはり次亜塩素酸ナトリウムが勝るっぽい。


最近ちょっとOAタップの意識が高まってしまって、常用するOAタップはできるだけパナソニック製品 (できが良い) にしようという気概が生まれてきてしまった。

それはともかく、パナソニックはOAタップに「コードなし」モデルをラインナップしている。つまりユーザ側で任意のコードを取り付けられるようになっている。

必要なのは以下の通り。

  • コードなしOAタップ
  • 3心ビニルキャブタイヤ丸形コード(VCTF)2.0mm^2
  • プラグ (2P接地極) 2P
  • (オプション。あったほうが綺麗にできる) R2-3.5 裸圧着端子

ちなみに、価格的には普通にコード付きのを買ったほうが多少安い。作業コストも含めるとカスタム長コードはかなり高くつくことに注意されたい。

自分でコードをつける利点は

  • 任意コード長にできる
  • あとから部分的に構成を変えられる
  • OAタップ側は接地極付きにするがプラグは2極にする、みたいな変な構成のタップが作れる

あたり。特に最後のやつは地味に便利だと思っている。一般家庭だとまず接地極が存在していないので、3極タップに対しては余計に変換プラグが必要になったりするんだけど、それをなくしてコンセント付近をスリムにできる。

ref.

  1. トップ
  2. tech
  3. カスタムコード長OAタップを作る

なんとなく発見があったらいいなぁぐらいで土曜日に行ってきた。

発見と面白かったのは以下らへん

  • SONY が思いのほか SPRESENSE を押してた
  • MESH はちょっと小さめ。SONY と MESH は別々にスポンサーになっていた
  • ソラコムがスポンサーで出展してた
  • 手動で射出成形するというアイデア (樹脂を手動でいれて、温めて手動で圧力かける) がおもしろかった
  • Prusa が出展してた。やっぱ MK3 はベースの剛性よさそう。
  • 自動で組紐するマシンを2つぐらい見掛けた。君の名は的な流行りなのだろうか
  • アマチュア無線関係はほとんどない。明確なのは1つだけかな? ちっちゃいSDR。BGA リフローしたりしてて極めて高度だけど、MFT ではなかなかウケにくそう


MFT はとにかく「音」「光」「動」がないと歩いてる人に興味を持ってもらいにくいのがなかなか厳しいと思った。

【Amazon Alexa認定取得製品】 TP-Link WiFi スマートプラグ 遠隔操作 直差しコンセント Echo シリーズ Googleホーム対応 音声コントロール コンパクト ハブ不要 3年保証 HS105 -

5.0 / 5.0

HS105 を買ってみた。中にリレーが入っていて Wi-Fi 経由でオン・オフできるというもの。

値段的には3000円ぐらいで買ったので、まぁこのぐらいだろうという気がする。まともな24時間タイマースイッチと同じぐらいの値段と考えると、買える値段。定価だとちょっと高いなと感じる。

アプリからのオン/オフは結構はやい。リレーの動作音 (カチ) がするので、リレーの動作音が好きな人(自分)には嬉しい。

最大電流が14Aまでだけど、14A限界まで連続して使うような負荷には使わないほうが良さそう。今のところエアコンと連動させたいサーキュレータに使っている。

うちでは他に使えそうな機器があんまりないかな。冬になったらホットカーペットに使うのが便利かも。あとはいざってときに強制的に再起動したい機器につけとくと遠隔で再起動できて良いかもしれない。

Google Home から制御

デバイスは TP-Link の Kasa というアプリで設定する。このとき Kasa のアカウントを作るので覚えておく。

Google Home アプリからデバイスを追加で TP-Link Kasa を選び、Kasa アカウントでログインするとデバイスが現れる。ニックネームを適切に設定すると「OK Google、サーキュレーターつけて」とかで制御できる。

コマンドラインから制御

自力で制御する場合は GitHub - plasticrake/tplink-smarthome-api: TP-Link Smarthome WiFi API (formerly hs100-api) が使える。コマンドラインアプリもついてるので、以下のようにシェルから実行できる。

tplink-smarthome-api sendCommand 192.168.0.26:9999 '{"system":{"set_relay_state":{"state":0}}}'
  1. トップ
  2. tech
  3. TP-Link のスマートプラグ HS105 を買って制御してみた

Huawei 5.8インチ P20 SIMフリースマートフォン ミッドナイトブルー【日本正規代理店品】 -

4.0 / 5.0

ASUS ZenFone3 から Huawei P20 に機種変更した。ピンクゴールドにした。

妻が使ってる ZenFone2 がだいぶ微妙になってきて、検討の結果、自分の ZenFone3 を妻にあげて自分が機種変することになった。

普段使いで ZenFone3 に不満はまったくなくて機種変のモチベーションはあんまりなかったが、写真が綺麗なやつが欲しいなと思い P20 に。

使ってみると全体的にパフォーマンスあがってることは実感できるけど、ものすごく快適になった!というほど不満がなかったので、それほど感動はなかった。

写真は暗所の性能がものすごく良くて、室内撮影なら手ブレを気にせず撮って出しできるぶん一眼レフよりもかえって楽に感じる。この手のハイエンドスマフォのカメラはのきなみ同じソニーセンサーを使ってるので、レンズとソフトの違いになるけど、Huawei はいずれにも力を入れてるなあと実感できる。

しかし ZenFone2 も ZenFone3 も microSIM だったが、最近の端末は nanoSIM だったりで面倒な感じ。

SIM カードのサイズ変更

iijmio でネットからSIMカードのサイズ変更をすると未知の長さのダウンタイムが発生して気が乗らなかったが、ビックカメラのカウンターだと (iijmio の SIM でも) 即日変更できると聞いてやってきた。新宿でやったけど店員さんも慣れてて、20分ぐらいで変更できた。税込で3600円ぐらいが後日契約カードに請求されるとのこと。

そもそもビックSIMがIIJってことを知らなかったわ。


  • マーカータイ
    • 表示スペース付結束バンド
    • label zip tie とかで検索
  • ファイバータグ
    • 線名札 ケーブル札 ケーブルタグ

あたりが検索ワード

やっぱり、これをつけるのとつけないのでは全然違う。そんなに変更するわけではない配線でもつけておくとちょっと配線かえようというときに安心してできる。

マーカータイ

使い捨てで単価が安い (数円)。基本的にこれを使う。

ラベルが巻きつくタイプ

マーカータイ100白-100P -

3.0 / 5.0

LANケーブルなどに使うと、結束する部分が邪魔になることがある。

ラベルが立つタイプ

uxcell タグジップタイ ケーブルタイ ナイロン製マーカーの配線タイ パワーケーブル 100個 -

3.0 / 5.0

ラベル自体が邪魔になることがある。

場合によって使いわけるのがよさそう。

ファイバータグ

電気工事の配線時のラベリングに使われてる。単価がちょっとだけ高くて場所をとる。結びかたによって再利用可能。

ELPA 丸札 小判形 NH-11H -

3.0 / 5.0

これは今回は使ってない。

  1. トップ
  2. tech
  3. ケーブルにラベル・タグをつける

最短の結論

server の指定を消して pool だけ書けば良い。pool は DNS ラウンドロビンしているドメイン名を指定すれば、返ってくるIPアドレスをすべて同期先に登録する (複数 server を書くのと同じ)

pool ntp.jst.mfeed.ad.jp iburst

確認

状態の確認は ntpq -p

watch ntpq -p

offset が上位サーバとのズレ (ms)。

http://www.jst.mfeed.ad.jp/others/01.html を見ると、mfeed の時点で ±2msぐらいのずれはあるようなのであんまり気にしても負け。

ネットワーク的な近さ

うちでは ntp.nict.jp よりも mfeed のほうが近い (7〜8ms 6hop)。mfeed は st=2 だが、nict と mfeed は専用線接続 (インターネットを経由しない) なので外乱なしで安定している。

ちなみに IPv6 より IPv4 のほうが traceroute6 的には hop 数がすくなかったけど、DS-Lite で transix (mfeed) まで IPv6 トンネル貼ってるからで、基本的には IPv6 のほうが近い気がする。ただ、IPv6 では DNS ラウンドロビンしているホスト名がないので pool は使えず、server ですべてのサーバを指定する必要がある。

  1. トップ
  2. tech
  3. /etc/ntp.conf の設定


(放置してボロボロになったタッパーと、取り出した中身)

100均のタッパーをコモンモードフィルタのケースなどとして利用して屋外に放置していたのだけど、まあ硬化してボロボロになってしまった。

そこで、未来工業 PVK-AOJ というのを買ってみた。いわゆるプルボックスというやつで、高耐候性を謳っている。

未来工業 PVKボックス 中形四角浅型 ノックなし ベージュ PVK-AOJ -

5.0 / 5.0

ヨドバシだと300円ぐらい(ただし取り寄せ)なのでヨドバシで買うのがお勧め。

ノックアウト(配管穴)なしのものは普通のプラスチックケースなのでドリルで任意の穴をあけて使える。

こんな感じでコモンモードフィルタを入れて固定した。固定はグルーガン。


プルボックスを使うのはなかなか良さそう。蓋がビス止めだけど、ビスを緩めても、完全には外れないようになっていて便利。

ただしこのボックスはおそらく屋内用で、密閉構造ではないので、方向に気をつけないと雨が入る。下側に水抜きの穴をあけたほうがよさそう。設置条件による

  1. トップ
  2. tech
  3. 耐候性のあるプラスチックボックス

無事に合格通知がきたのでよかった。

免状申請もすませた。2週間後ぐらいにくるらしい

4月ぐらいから勉強しはじめたっぽいので約4〜5ヶ月ぐらい。長かった。筆記試験から技能試験までの待ち時間と技能試験から結果発表までの待ち時間が無駄に長い。実際の試験対策としては筆記に1ヶ月、技能に1ヶ月って感じっぽい。

  1. トップ
  2. tech
  3. 第二種電気工事士 試験終わり

公式の Wiki を見るとわかるのだが、Nano Pi NEO 2 には V1.0 と V1.1 (LTS) の2つのバージョンがある。スペック的には一緒なのだけど、コネクタ位置が微妙に異るため、それぞれ専用に設計されたケースに互換性がない。

例えば V1.0 には 3D プリント用のモデルがある NanoPi NEO2's 3D printed housing
が、V1.1 にはない。

一方で V1.1 用にはシャレたアルミケースとOLEDのキットがある。写真はこれを使った V1.1 版のもの。

タイトルの通りだけど秋月電子通商で買えるのは前者のバージョンになる。

アルミケース+OLEDを買ったあとに秋月で本体を購入したところ初めてあわないことに気付いた。罠すぎる。結局 V1.1 も Friendly Elec の公式通販から買ってしまった (ちなみに公式の通販ではヒートシンクが付属しているので、余計に買わないように…… ヒートシンクも余計に買ってしまって二重に失敗してる)

間違えて買った V1.0 は 3D プリンタでケースを用意して普通に使っている。

V1.1 のアルミケースはかなり可愛いのでなにかに使いたいが特に用途は決まってない。

  1. トップ
  2. tech
  3. 秋月で売ってる Nano Pi NEO 2 は古いバージョン


ebay で売っていたものを買ってみた。810円ぐらい。ABSのケースが1000円で売ってたりするので、かなりお得なのではないか? 放熱用にカバー側に突起がついてておもしろいが、うまく接触するのかよくわからない。

  1. トップ
  2. tech
  3. Raspberry Pi 用の安いアルミケース

第二種電気工事士 試験終わり | tech - 氾濫原 昨日に不在票が入っていたので、申請から到着まで5日だった。2週間ぐらいと言われたたが早かった。免許日は27日。

  1. トップ
  2. tech
  3. 第二種電気工事士免状がきました (神奈川県)


子どもの持ち物には記名する必要があるが、たびたび洗う必要のあるものはどうしても記名自体が長持ちしない。

何とかならないか考えた結果UVレジンで表面をコーティングしてみることにした。透明度が高くコーティングしても目立たないこと、硬化してしまえば安定してること、紫外線で硬化のため扱いやすく 硬化時間が短いこと、あたりが魅力的。

UVレジンは耐熱性が低い(70℃程度)ようなので食洗機で不安。一回洗ったぐらいではなんともなさそうだが、繰り返し熱を加えられたときどうなるか微妙かもしれない。


使ったレジンはキヨハラというメーカーのこれ。さらさらではなく適度に粘性があり、囲いなどが無くても勝手に流れていくようなことはなかった。

KIYOHARA Craft Gallery UVクラフトレジン液 25g UVR -

3.0 / 5.0

硬化用LED

硬化はUV LED 14個 OptSupply OSV1YL5111A (30円)。1本あたりの放射束が2〜4mW(@20mA)とかなり効率が悪い。日亜化学工業の 375nm NSPU510CS (500円) は 15.1mW (@15mA) なので効率は6分の1以下。ただし価格は圧倒的に OSV1YL5111A が安いので同じ放射束を得るには4分の1程度のコストで良い (ただし消費電力とトレードオフ)。

30分ぐらいで完全硬化した。375nm 365nm を混ぜたが365nmだけで良かったかも。時間かかるので、このLEDを使うならもうちょい数が多いほうが良さそう。