tateren’s diary

何か書きたくなった時に使う

Webラジオ録音中tmuxのステータスバーに通知を表示する

録音中にリブートかける悲しみを繰り返さないために。

rec_status.sh

#!/bin/sh
if pgrep rtmpdump > /dev/null ; then
  echo 'REC●'
fi

.tmux.conf(抜粋)

set-option -g status-right '#[fg=red]#(rec_status.sh)#[fg=green] %m月%d日(%a) %H:%M '

f:id:tateren:20160607223951p:plain

f:id:tateren:20160607224000p:plain

よさそう

rtmpdumpが起動してるからって録音してるとは限らないって?

f:id:tateren:20160607225932j:plain

PostgreSQLで無から複数行の任意のデータをSELECTする

テーブルも何も無い所から一行の固定値をSELECT(複数カラムもいける)

postgres=# SELECT 'ゆゆ式' AS title, '三上小又' AS Author;
 title  |  author  
--------+----------
 ゆゆ式 | 三上小又
(1 行)

これはよくやる(?)気がするんだけど、何も無いところから複数行SELECTするのってどうやるんだっけと思ってちょっと調べたら…

VALUES

VALUESを使えば良いのか。

postgres=# VALUES ('野々原'),('日向'),('櫟井'); --必要最小限の VALUES コマンド
 column1 
---------
 野々原
 日向
 櫟井
(3 行)

こんな感じでVALUESだけでテーブルが返ってくるんだけど敢えてSELECT文に組み込むならFROM句の中で使ってこうなる。

postgres=# SELECT * FROM (VALUES ('野々原'),('日向'),('櫟井')) AS yuyushiki(name);
  name  
--------
 野々原
 日向
 櫟井
(3 行)

VALUES を FROM 句の中で使用する場合には、 AS 句が必須となることに注意しましょう。

テーブルなので、結合もできる。

postgres=# SELECT * FROM (VALUES ('野々原'),('日向'),('櫟井')) AS family(family_name),
postgres-# (VALUES ('ゆずこ'),('縁'),('唯')) AS first (first_name);
 family_name | first_name 
-------------+------------
 野々原      | ゆずこ
 野々原      | 縁
 野々原      | 唯
 日向        | ゆずこ
 日向        | 縁
 日向        | 唯
 櫟井        | ゆずこ
 櫟井        | 縁
 櫟井        | 唯
(9 行)

なるほど…なるほど…

nasneの録画番組一覧を取得する

nasneのAPI叩いてHDD残量を確認するとかはよく見かけるんだけど、録画番組一覧を取得できたりしないかなーと思って調べてみた。

手掛かり

PC TV with nasne™とやらがある

www.sony.jp

パケットキャプチャしながら動かしつつ眺めてたらどうやらこのurlで番組一覧を取得してるらしい事が分かった。

http://{nasneのIP}:64220/recorded/titleListGet?searchCriteria=0&filter=0&startingIndex=0&requestedCount=0&sortCriteria=0&withDescriptionLong=0&withUserData=0

パラメータがいっぱいあるけどとりあえずこまけぇことは気にしない。

取得してみる

curlで取ってきたらjsonが返ってきたので整形したげると良い感じになった。

curl -s 'http://{nasneのIP}:64220/recorded/titleListGet?searchCriteria=0&filter=0&startingIndex=0&requestedCount=0&sortCriteria=0&withDescriptionLong=0&withUserData=0' \
| jq .

f:id:tateren:20160303003140p:plain

なんか化けてる文字があったけど、[新][終][字]みたいな特殊文字のようだったので整形前に該当の文字を置換してあげる。

Unicodeエスケープシーケンス 対応文字 置換後
\ue195 □の中に終 [終]
\ue193 □の中に新 [新]
\ue0fe □の中に字 [字]

ついでに出力項目も絞ろう。

curl -s 'http://{nasneのIP}:64220/recorded/titleListGet?searchCriteria=0&filter=0&startingIndex=0&requestedCount=0&sortCriteria=0&withDescriptionLong=0&withUserData=0' \
| sed -e 's/\\ue195/[\\u7D42]/g' -e 's/\\ue193/[\\u65B0]/g' -e 's/\\ue0fe/[\\u5B57]/g' \
| jq -r '.item[] | { title: .title, description: .description}'

f:id:tateren:20160303004720p:plain

だいぶそれっぽくなったんじゃないでしょうか。

Launchyを使ってShift_JISでWEBを検索する

Windowsで使えるMacのAlfredみたいなコマンドラインランチャーを探してたらLaunchyというのが良さげだった。

Launchy: The Open Source Keystroke Launcher

デフォルトで入ってるWebyというプラグインで検索ランチャーとしても使える。

f:id:tateren:20160116095158g:plain

突然ゆゆ式の画像が必要になることってありますよね。

しかしこのプラグイン渡す文字列がUTF-8から変更できないっぽくて、ごく稀にShift_JISで書かれたサイトを検索したい時に対応できなくて困っていた。

なんとかした

SJISでURLエンコードして検索するスクリプトを叩かせれば良いんじゃね?

gist5bb5a1649aa4c95fd9ae

これを適当な場所に配置してプラグインのRunnerから実行する。

設定はこんな感じ。

f:id:tateren:20160116110639p:plain

動かしてみる。

f:id:tateren:20160116104654g:plain

powershellのコンソールが一瞬立ち上がるけど同じ使用感で実現できたので良いんじゃないでしょうか

検索ランチャーEurecaを触ってみた

愛用してる検索ランチャーアプリのseeq+がいつの間にかストアから消えてて公式から新アプリへの誘導があった。

Eureca - 超時短!検索ポータルアプリ

Eureca - 超時短!検索ポータルアプリ

  • VARY LLC.
  • ユーティリティ
  • 無料

vary-llc.com

デフォルトブラウザが選択できるようになったのは良いな〜と思ったんだけど有料オプションらしい。

課金しないでChromeで開く

カスタムアイテムはseeq+の時と同じように作れるので

googlechrome-x-callback://x-callback-url/open/?x-source=Eureca&x-success=eureca:&url={PercentEncodedURL}&create-new-tab

と検索URLを設定してあげればchromeが起動して新規タブで開いてくれる。

自分が一番使うのがkindleストアの検索で…

googlechrome-x-callback://x-callback-url/open/?x-source=Eureca&x-success=eureca:&url=http%3a%2f%2fwww%2eamazon%2eco%2ejp%2fgp%2faw%2fs%2fref%3dkina_tsf_%3fi%3ddigital%2dtext%26__mk_ja_JP%3d%e3%82%ab%e3%82%bf%e3%82%ab%e3%83%8a%26k%3d_Q_%26x%3d0%26y%3d0&create-new-tab

こんな感じにしてやればchrome上でストアの検索ができる。

他にもイメージ検索、自分のtwilogの検索、yahooリアルタイム検索等を設定している。

他のアプリで開く

目的の操作を行うURLスキームを指定すれば他のアプリを起動して検索を実行することもできる。

親切にもデフォルトで追加できるアイテムに「Amazonアプリで検索」があったので使ってみると…

f:id:tateren:20151219190758j:plain

日本語の検索文字列が化けしてしまった。

アイテムを追加した時に設定された検索URLはこれ

com.amazon.mobile.shopping://www.amazon.co.jp/s/ref=nb_sb_ss_i_0_4?__mk_ja_JP=%83J%83%5E%83J%83i&url=search-alias%3Daps&field-keywords=_Q_

最後の_Q_が検索文字列として渡される値で、UTF-8エンコードされているはず。 seeq+の時は文字コードを指定できたので同じ要領で試しに_SJIS_に変更して検索してみると…

com.amazon.mobile.shopping://www.amazon.co.jp/s/ref=nb_sb_ss_i_0_4?__mk_ja_JP=%83J%83%5E%83J%83i&url=search-alias%3Daps&field-keywords=_SJIS_

f:id:tateren:20151219190904j:plain

ゴンさんで検索することに成功した。

他にも例えばiTunes Storeで検索するには…

itms://itunes.apple.com/WebObjects/MZStore.woa/wa/search?term=_Q_

これでいけた。

結局

検索アイテム未指定時の挙動を「chromegoogle検索」にしたかったんだけど、アプリの設定からデフォルトブラウザを変更する必要があったので課金した。

Windows10のウィンドウ境界の間隔を変える

ウィンドウの縁の幅の話。

Windows10にアップグレードしたら1ドットくらいになって嬉しかったんだけどWindows Updateかけたら以前のOSのデフォルトくらいに戻ってしまった。

f:id:tateren:20151129000738p:plain

このくらい。

設定

Windows7だったら コントロール パネル\デスクトップのカスタマイズ\個人設定 あたりから詳細設定が変えられた気がするんだけど見あたらない…

調べた

ウィンドウ枠の幅を変えられますか? - マイクロソフト コミュニティ

Windows8から設定箇所が消えているらしいけど、レジストリをいじれば変更可能とのこと。

早速 HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\PaddedBorderWidth の値を0にして再ログイン。

f:id:tateren:20151129001625p:plain

いい感じ。