tech::hexagram

personal note for technical issue.

4年目の健康診断とか

一昨日だった。

  • 身長 : 173.9cm 変化なし
  • 体重 : 63.6kg +3.7kg
  • 視力 : あんま変わらず両目1.2
    • 実感として正直測定値ほど見えている気がしない
  • 血圧 : 上がちょっと上がった。1回測定ミスってテンパったのかもしれない

内科の担当医のおっちゃんがそっけなさすぎてちょっと萎えた。 食生活ちょっと脂っこい方に寄ってるから血液検査が心配。 あと最近食後喉に食い物が少し詰まったような感覚あるから病院行ったほうが良いような気がしないでもない

前回書いていた陰陽座のラジオcron録音は上手く動いていた。 ただブログに書いてあった放送時間が間違っていて最後尻切れトンボになってた。20分じゃなくて25分らしい…

陰陽座の新ラジオ番組をRadikoで予約録音する

mttb.jugem.jp

先日、瞬火blogで紹介があり、TOKYO FM陰陽座の新しいラジオ番組がスタートしたそうだ。 時間は水曜25:30-25:50(つまり木曜1:30-1:50)と遅く、リアルタイムの拝聴をすると翌日が平日なのでキツイ。

初回は聞き逃してしまったので、なんとかしてcronで自動録音できるすべを探ってみた。

Radikoを使う

Radikoは、インターネット経由でラジオを聞けるサービスだが、いろいろ調べているとスクリプトで録音ができるらしい。

kyoshiaki.hatenablog.com

これを使って、MBP経由で録音する。

事前準備

$ brew install wget rtmpdump swftools libxml2 ffmpeg

スクリプトの実行に必要なライブラリをbrew経由でインストール。 インストール中、brewとgitのversionが古かったことに起因するエラーが表示されたので、そちらもアップデートした。

現在の手元のhomebrewとgitのバージョンは以下のとおり。

$ brew --version
0.9.5 (git revision 60140; last commit 2015-10-09)

$ git --version
git version 2.5.3

試しに録音する

をダウンロードし、適当なディレクトリに配置。

まず先に、エリア情報シェルスクリプトを使って、TOKYO FMのidを確認する。

$ radiko_curl_area.sh

神奈川県はJP14.xml と思われるので、中身を確認する。

129  <station>
130     <id>FMT</id>
131     <name>TOKYO FM</name>
132     <ascii_name>TOKYO FM</ascii_name>
133     <href>http://www.tfm.co.jp/</href>
134     <logo_xsmall>http://radiko.jp/station/logo/FMT/logo_xsmall.png</logo_xsmall>
135     <logo_small>http://radiko.jp/station/logo/FMT/logo_small.png</logo_small>
136     <logo_medium>http://radiko.jp/station/logo/FMT/logo_medium.png</logo_medium>
137     <logo_large>http://radiko.jp/station/logo/FMT/logo_large.png</logo_large>
138 <logo width="124" height="40">http://radiko.jp/v2/static/station/logo/FMT/124x40.png</logo>
139 <logo width="344" height="80">http://radiko.jp/v2/static/station/logo/FMT/344x80.png</logo>
140 <logo width="688" height="160">http://radiko.jp/v2/static/station/logo/FMT/688x160.png</logo>
141 <logo width="172" height="40">http://radiko.jp/v2/static/station/logo/FMT/172x40.png</logo>
142 <logo width="224" height="100">http://radiko.jp/v2/static/station/logo/FMT/224x100.png</logo>
143 <logo width="448" height="200">http://radiko.jp/v2/static/station/logo/FMT/448x200.png</logo>
144 <logo width="112" height="50">http://radiko.jp/v2/static/station/logo/FMT/112x50.png</logo>
145 <logo width="168" height="75">http://radiko.jp/v2/static/station/logo/FMT/168x75.png</logo>
146 <logo width="258" height="60">http://radiko.jp/v2/static/station/logo/FMT/258x60.png</logo>
147 <feed>http://radiko.jp/station/feed/FMT.xml</feed>
148 <banner>http://radiko.jp/res/banner/FMT/20150930211427.jpg</banner>
149 </station>

TOKYO FMのidは FMT

$ rec_radiko.sh FMT 1 data

引数は以下の順番で定義されている。

$ rec_radiko.sh <channel_name_id> <minutes> <outputdir>

これでTOKYO FMの音源が録音されていればOK。

crontabで定期実行する

$ sudo launchctl unload /System/Library/LaunchDaemons/com.vix.cron.plist
$ sudo launchctl load /System/Library/LaunchDaemons/com.vix.cron.plist

launchctlを起動した後、crontabに録音スクリプトの実行内容を記述する。

$ crontab -l
29 1 * * 4 cd /path/to/script;/bin/bash -l ./rec_radiko.sh FMT 22 data

今回は上記の内容で記述した。

Chefで構築していた仮想開発環境をfedora 20からCentOS6.5に乗り換えた

少し前からChefを使って仮想開発環境を作れるgenerator(コードネーム:Almagest)を作っていた。

当初はOSにfedora 20を使っていたが、同僚からvagrantのboxを検索できるサイトを教えていただいた。

fedoraの新しいバージョンについてもイメージが乗っていたものの、VagrantのGuest Additionsのバージョンアップが上手く動かない問題があった。VagrantのboxのGuest Additionsのアップデート方法

このため、fedora 20 -> fedora 21 -> CentOS6.5とイメージを変更した。

fedora 20 -> fedora 21に乗り換えた際のハマりどころ

新しいboxに以下のコマンドが存在しなかった。

  • tmux, readline-devel, tar

tmux に関してはcookbookを追加して解決。

boxのurlを変更した後に bundle exec knife solo bootstrap almagest を実行すると、anyenv経由でrubyのインストールに何度か失敗した。

rubyのインストールの際に tar や、readline-devel が必要らしく、その途中でコケていた模様。

対応法としては、anyenvのcookbookに tar, readline-devel に依存する旨を明記する。

あるcookbookが別のcookbookに依存する場合は、以下の3点を行えば良いらしい。

  • (1) : Berksfileに依存するcookbookを記載 or 必要なcookbookを site-cookbooks 以下に配置
    • 今回は前者だったが、supermarketに乗ってないcookbookに依存する場合はおそらく配置すれば大丈夫
+cookbook 'tar',  '~> 0.7.0'
+cookbook 'readline', '~> 0.0.5'
  • (2) : metadata.rb に依存関係を明記
+depends          'tar'
+depends          'readline'
  • (3) : recipes/default.rb に依存関係を明記
+include_recipe 'tar::default'
+include_recipe 'readline::default'

自分の作ったリポジトリ見ていると、 Berksfile に定義されているのに site-cookbooks にそのファイル突っ込んでいたりと、差分的に要らないものがいくつかありそうなので後で整理したい。

fedora 21 -> CentOS 6.5に乗り換えた際のハマりどころ
  • knife solo bootstrapでchefを適用した後vagrant reloadするとIPのアサインに失敗する
    • 自前のdotfilesのcookbookが原因だった模様。.bashrcをまるっと置き換えてしまうと良くないようなので、ここは改善する予定。

iOSアプリのCoreDataの中身を確認する方法

雑記程度に。

iOS7以降では、CoreDataの保存方法がWALモードと呼ばれるものに変わった(stackoverflow)ため、単純にApp.sqliteだけ抽出しても確認ができない。

確認環境

Xcode6.4

実機からxcappdataを取り出す

  • Window->Devicesから端末の情報画面を開く
  • Macにexportしたいアプリ名を選択して歯車を押して「Download Container」

xcappdataからsqliteファイルを取得する

cp xx\ YYYY-MM-DD\ hh\:mm.ss.xcappdata/Appdata/Documents/XX.sqlite ./
cp xx\ YYYY-MM-DD\ hh\:mm.ss.xcappdata/Appdata/Documents/XX.sqlite-wal ./
cp xx\ YYYY-MM-DD\ hh\:mm.ss.xcappdata/Appdata/Documents/XX.sqlite-shm ./

取得したsqliteファイルを開く

sqlitebrowserが便利。 インストールして起動後、XX.sqliteをウィンドウに放り込めばOK。

sphykeのセキュリティパーツを個人輸入しようとしたら最悪だった話

タイトルの通り。

GWにロードバイクを買ったこともあり、ちょこちょこと自転車用のパーツを買い足している。

sphykeのC3Nという、自転車のボルト部分を鍵にしてサドルや前後輪の盗難防止をするロードバイク用のセキュリティパーツを自転車購入時と同時期に注文したら対応がトンデモだったのでここにぶちまけておく。

時系列的には以下の様な感じ。

2015.05.08

オンラインショップで当該パーツを購入。 購入直後は注文内容の確認メールが来ただけでその後発送の連絡など一切なし。

2015.05.26

さすがに2週間たっても音沙汰が無いのはおかしいのでサポートにメール。 すると以下の回答が。

Oh no, this is bad. 
For all orders in the last 2 weeks we have sent out an email from our head engineer- see it below.

It appears that this email has not made it through to you, and that we missed the fact you had not replied. 
I am very sorry about this.

Our new 2015 stock has landed, and is current in customs. So will be sent out on Thursday - worse case Wedsday

在庫切れだったのでこれから発送するとのこと。まぁ仕方ないかともう少し待つ。

2015.06.04

担当者から鍵の番号の設定をどうするかメールが来る。これでお願いしますと返答したものの回答なし。

2015.07.06

色々忙しかったりしたのもあって注文したことすら忘れかけてた。思い出したタイミングでまだ届かないのでメールすると以下の回答。

I tracked your order;

Result:

Shipment number
xxxxxxx

 It was not possible to reach the recipient; the item was scanned. The item is either being delivered in Japan or being held for pick-up.

It looks like your C3N lock made it to your address, but they could not find you.

ラッキングコードを追ってみるともう時すでに遅し。ドイツに返送されてる…

image

さすがにもう2ヶ月も待たされて届かないしキャンセルさせてくれというものの、荷物は発送済みだからキャンセルできないと断られる。もう一度送り直すから英語と日本語の宛先両方書いてくれとメールが来る。

I can not cancel your order as it has been already sent.
 
However because you did not receive your order I can send you new product
 
Do you know why they could not find you?
 
please give me your address again in Japanese, and also in English
 
I will put both addresses on the  package

2015.07.23

荷物は届いたぞとメールが来る。

it has been sent
 
Result:
Shipment number : xxxx
Item status : The item reached local delivery in the country of destination Japan at Jul 17, 2015.
Additional processing steps : 

image

日本語の住所(自宅の住所は神奈川県)も添えたにもかかわらず着いたのは愛知県。 もう開いた口が塞がらなかった…

ラッキング番号は分かっているものの、荷物がもう届いてしまっているのでこれ以上追跡のしようがなさそうだし、これ以上不毛なやりとりをするのも疲れたので泣き寝入りすることにした。

このエントリを書くにあたってもう一度sphykeの公式サイトを見に行ったら日本向けの販売ページがあった。 そっち最初から案内してくれよ!

そちらで買えば確実に届きそうだけど、本家での価格よりかなり高いしもう疲れたので今は買う気力が失せている。

というわけでsphyke C3Nの購入を検討されている日本の方は日本向けの販売ページから買うことをオススメします。。