PowershellでREST APIを利用する

最近PowershellでREST APIを使う用事がありました。特にPowershellにこだわる必要はなかったのですが、使い慣れているのと、例によってWindowsであればどの端末でも実行できるという点が便利だったのでPowershellを使うことにしました。

要件としては単純にGETメソッドを使って情報を取り出すというだけです。こういう簡単なスクリプトではよくPythonが推奨されるところかと思いますが、Powershellでも割と簡単でした。

コマンドレットとしてはInvoke-Restmethodというものがあるのでそれを使います。

Invoke-RestMethod

[Microsoft Learn]

サンプルとして何のAPIを使おうかと思いましたが、よく考えたらWordpressがREST APIに対応していたので、このブログに対して情報取得を試してみることにしました。

APIで取得したデータはJSON形式で返ってくるということは何となく知っていたのですが、ああいった構造化されたデータをどう処理するのかがピンときませんでした。Powershellの場合は結果を変数に格納すると暗黙的にPSObjectに変換してくれるということで、Powershellに慣れている身からすればこれは結構使いやすく感じました。

試しにこのブログの直近の投稿をAPIで取得し、結果をテーブル形式に変換して表示してみるコードを作ってみました。

<Powershell>
$uri = 'https://hebodj.net/wp-json/wp/v2/posts/'
$Response = Invoke-RestMethod -URI $uri

#メンバー一覧を出力
$Response | Get-Member | Format-Table

これでとりあえずPSObjectにどんなメンバーが格納されているかが分かります。ざっと眺めてみるとこれが投稿のタイトルかな、これが投稿時刻かな、というのが分かってきます。

続いて投稿のタイトルを抜き出して列挙するコードを考えてみます。

<Powershell>
$uri = 'https://hebodj.net/wp-json/wp/v2/posts/'
$Response = Invoke-RestMethod -URI $uri

# 各投稿のタイトルを表示
foreach ($post in $Response) {
    Write-Host $post.title.rendered
}
特に何も指定しないとトップページに表示されているエントリが対象になるようです。

こんな感じでOKです。同じような要領で本文も抜き出すことができるので、APIで今までのエントリの内容をファイルに出力して統計情報を出すなど、面白い使い方ができそうです。

今まであまりWebに関係する技術に縁がなかったのでREST APIも苦手意識があったのですが、Powershell経由であれば割と簡単にハンドリングできそうな気がします。

Insta360 AceとAce Proが登場

Insta360の新製品はいわゆるGoPro的なフォームファクタのアクションカメラだそうです。

Insta360 Ace & Ace Pro 発売:比類ない画質を実現させるスマートなアクションカメラ

[Insta360]

今回の製品はライカとの共同開発製品だということです。従来も大型センサーモジュールはライカが協力しているという例がありましたが、今回は全面的に関わっているようです。

本体には2.4インチの角度を変えられる液晶画面が搭載され、車載マウントした時や自撮り時に映像を確認しながら撮影ができます。従来はスマホ用のアプリでWi-Fi接続を使ってカメラとアプリ間で接続をしてプレビューを確認する方式でした。

これはこれで良くできていたのですが、撮影の度にカメラとアプリの接続処理が必要で、始めるまでが少々面倒でした。今回は本体でプレビューを完結させることができるので便利そうです。

また、Garmin製デバイスやApple Watchと接続してGPSデータやライフログデータを動画にレイヤーできるようになっているとのことです。従来こういったデータの追加には専用のGPSリモコンを使うか、別途用意したデータを別のツールで合成するなどの手順が必要でしたが、今回のカメラではこれらのデータも簡単に合成できるようになっているようです。

単純なスペックアップもさることながら、実際に使う上で 不満点として感じやすい部分をしっかり対処しているように思います。

Googleマップのアップデート(2023年11月)

Googleマップを開いたら地図の図式(見た目)がかなり大きく変わっていました。時々アイコンの形状などは変わることがありますが、今回は配色が全体的に変更になっているので大規模な変更に感じます。

従来、地の色がグレー系の上に道路が白系という配色でしたが、今回のアップデートでは道路はより濃いグレー、幹線道路はかなりはっきりしたブルーグレーで表すことになったようです。

全体的には高コントラストになった感じで、見やすくなったと思います。細かい道路の線形も視認しやすくなったので、変わったレイアウトの住宅街なんかを見つけやすくなったかもしれません。

他にも機能面でのアップデートがあって興味を引くのですが、基本的には大都市圏中心のリリースになると思うので身近なところでは使える場面がなさそうなのが残念です。

新しいマップのアップデート:ルートのイマーシブビューやその他の AI 機能

[Google Japan blog]

テーマ別の検索は自転車ツーリングの目的地選定に役立ってくれるのではという期待感があります。

栗おこわ

先日いただいた栗がまだ少し残っていたので、最後は栗おこわにしてみることにしました。

おこわにする場合もち米の調達が必要になりますが、1回のおこわ作りのためにもち米をキロ単位で買うのはちょっとためらいます。ちょうど無印良品に普通の白米ともち米の50/50で2合という便利な商品が売られていたのでそれを使うことにしました。

分量が2合ということで1人で作っても多すぎませんし、普通の白米が混ざっているので水加減や炊飯方法は普段通りで良いということです。取り扱いのしやすさもなかなか良いと思います。

そんなわけで残っていた栗とおこわ用のお米を使って自宅でも簡単に栗おこわを作ることができました。今回はちょうど野菜の炊き合わせの余った煮汁があったのでそれを炊く際に使用し、うっすら味のついた感じにしてみました。

Googleが新しいTitanセキュリティキーを発表

最近パスワードレスでの認証を実現するパスキーによる認証が話題になっていますが、単体デバイスとしてパスキーを作成できるTitanセキュリティキーという製品を以前からGoogleは提供しています。今回この製品がリニューアルされたようです。

The latest Titan Security Key is in the Google Store

[Google Security & Safety Blog]

一応我が家のWindows PCとスマートフォンは共に生体認証には対応しているのですが、NFC対応の単体デバイスという点に少々興味を引かれます。お値段の方もUSB-A型が4,000円、USB-C型が4,500円とそこまで高価なものでもないようです。

かんずり ぬれ七味

珍しい新潟の調味料を入手しました。上越地域で有名なかんずりという唐辛子を発酵させた調味料がありますが、その姉妹品の味付け七味です。

これは発酵しているわけではなく、かんずりの製造時に使用する(?)醤油に七味唐辛子を漬け込んだもののようです。

このような感じで、ペースト状の調味料になっています。

七味なのですが醤油に漬けてあるので単体で塩気があります。そのため、豆腐など味が薄い食品の味付けに使うのがおすすめです。

スマートフォン用ショルダーストラップ

最近よく見かけるスマートフォン用のショルダーストラップを導入してみました。

今使っているPixel7は私の手にはサイズが大きめで、片手で持つとうっかり落としそうな気がするので、持ち歩く場面が多そうな時の保険として導入に至った次第です。

導入したのはELECOMのショルダーストラップです。いくつかデザインにバリエーションがあるようです。

これが金具付きの台座で、ケースのスピーカーの穴を使って金具を外に出します。

スマートフォン用のケースと併用することが前提で、ケースと本体の間に付属の金具付き台座を挟み込むことで本体から金具が出た状態になります。

このようにケースに台座を入れて、本体をケースに入れることで台座が固定されます。

そして、金具にストラップを装着して好みの長さに調節すれば完成となります。

金具周辺がかなりコンパクトなので強度面が少々不安ですが、私の場合吊り下げてぶらぶらと持ち歩くことは想定しておらず、あくまでも安全帯的な使い方なのでこれで十分という気がしています。

不要な時はストラップを外して金具だけの状態にしてもそこまで邪魔ではないので、任意に着脱できるところも良いと思います。

小菅の里

飯山市に小菅という地域があります。場所としては北竜湖のやや南です。結構標高の高い場所ながら地図で見るとコンパクトに住宅が広がっていて、何か由来があって人が住んでいる場所なのではないかと思っていました。

調べてみるとこの集落を山に向かって登っていった一番奥の山頂に小菅神社という神社があり、そこは古くから修験道の聖地として有名であったそうです。神社の参道沿いに人家や観音堂・護摩堂などが広がっていたことから、現在でも山の斜面に集落が存在しているとのことです。

こちらが小菅地区の案内図です。神社仏閣があわせて存在しているほか、巨岩の遺構がある点が修験道の聖地であることを感じさせます。

こちらは主要な建造物の1つである講堂です。現在は資料館として資料を収蔵しているようです。

せっかく訪問したのですが、この日は写真の通り天気が今ひとつで一旦引き上げることにしました。今度天候が良く、山からの眺望も期待できるタイミングで改めて訪問してみたいところです。

ガスコンロの電池交換

自宅のガスコンロの電池が切れてしまったらしく、火がつかなくなってしまいました。ガスコンロで使用する電池は単1という最近あまり使わないサイズですが、一応念のために予備を買っておいたのでそちらに交換しました。

あんまり見たことのない富士通製の電池が出てきました。

交換してみたところ、今まで「チッチッチッチ…」くらいだった点火時の放電が「チチチチチ…」と非常に元気が良くなりました。今まで火がつきにくかったのも改善したのでもっと早い段階で交換しておけば良かったと思いました。

ガス会社やコンロ製造元の情報を見ると”交換時期はおおよそ1年”と書いてあるので、今まで全く目安を守らずに引っ張って使っていたことになります。火がつかないのはまあまあストレスなので次回以降はもう少し早めに交換してしまいたいと思います。

Remapで1キー2役のキーを作る

自作キーボードのキーマッピングの面白いポイントとして、1キーで2役のキーを設定できるという点が挙げられます。キーを短く押した時と長く押し続けた時で違うキーコードを出せるように設定が可能です。

最近キーマッピングでよく使っているRemapを使うと簡単に設定が可能です。Remapでキーボードを認識させて設定したいキーを指定すると3つタブ状に切り替えられる設定項目があります。中央の”HOLD/TAP”という項目を選択します。

HOLDが長押しした時に使うキーコードで、TAPが短く押した時に使うキーコードになります。例えば、短く押した時はEnter、長く押した時はレイヤー2に切り替えと設定したい場合は以下のような設定になります。

2つ割り当てをすると誤入力が起きるのではないかと心配しましたが、実際に使ってみる限りではトラブルもなくとても便利です。自作キーボードならではの面白いポイントなので、とてもおすすめの設定です。