週間アスキー 2013/9/10号付属のNFC ディスクを速攻で試してみた
週アスにNFCタグの付録がついてくるという情報を得たので早速買ってみました。
そして、愛用のNXPタグ読み込みソフト、NFC Taginfo by NXPで読んでみました。
NFC TagInfo by NXP - Android Apps on Google Play
MIFARE Ultralightとは、Type Aの一番安いタイプのNFCタグで、メーカーはNXP(フィリップスの半導体部門)のものですね。
週刊誌のおまけなので、妥当なレベルで、予想通り。
NDEFタグが書かれているとのことなので、みてみると以下のとおり。
NDEFとは、NFCの規格標準団体であるNFC Forumで作成した国際標準規格のひとつで、いくつかあるNFC Deviceを超えて、共通にデータが触れるよう規格されているデータフォーマットです。
中身は、URIフォーマットで、週間アスキーのURLが記録されています。
よって、NFCの規格的には、このタグをかざすとURLが読み込まれるように、設計されています。
紙面上にはいろいろな使われ方が書かれていますが、それはこれとは違ったところを参照し、アクションと紐付けて使用しています。
上記のモザイク部分に、ユニークIDが記載されています。
ここには、それなりにユニークな値で、おおよそタグごことに異なる値が記録されています。ちょっと歯切れ悪い書き方になっていますが、完全にユニークであるかどうかは、?な部分があります。
このIDとアクションを紐付ければ、かざしただけで、○○が起こるといったことが可能になります。
時間があったら、もうちょっといじってみたいと思います。
plenv + cpanm + cartonな環境で、crontabでハマった
plenv + cpanm + cartonな環境で、crontabでハマったので、そのときの記録を残しておきます。
Cent OSは、サポート期限が長く使いやすいOSなのですが、個人的には標準で組み込まれる、システムperlのバージョンが古いのがいまいちでした。
その解決方法として、plenvがあります。仮想環境上で、新しいバージョンのperlを使え、とても便利です。その使用方法はいろいろな所で紹介されています。
自分が参考にしたのはこれ
そして、次に課題になるのが、cpanモジュールの管理。
plenvを使えば、
$ plenv install-cpanm
で、簡単にcpanmをインストールできとても便利です。しかし、cpanモジュールのバージョン管理や可搬性を考えると、このままではちょっと物足りません。
そこで、登場するのが、Cartonです。
Install自体は、
$ cpanm Carton
で、簡単に行えます。
モジュールの管理については、
1.3 Cartonによるアプリケーションの実行環境の構築 : Practical Modern Perl (仮)
にわかりやすく書いてありましたので、こちらを参照にしました。
そして、最後に、悩んだポイント、crontabから、この環境を使用しようとした時、一筋縄では行きませんでした。
plenvは、ディレクトリごとにperlの仮想環境を構築します。
Cartonは、cpanモジュールの管理をディレクトリごとに行います。
よって、crontabから、perlのスクリプトを実行する際、意図したバージョンのperl、モジュールを実行するにはディレクトリを意識して、実行しなくてはなりません。
例えば、plenvというユーザーを使い/home/plenv というディレクトリに、plenv + Cartonの環境を構築して、/etc/crontabを編集し
*/1 * * * * plenv /home/plenv/carton exec -- perl test.pl
と記載しても動く動きません。
contabから実行される環境では、ホームディレクトリが引き継がれていなかったり、パスが通っていなかったり、plenvの初期化も走らずうまく動きません。
そこで、以下の様なバッチをかませてやると、うまく動きました。
kick.sh
#!/bin/sh
export HOME=/home/plenv
export PATH="$HOME/.plenv/bin:$PATH"
eval "$(plenv init -)"
cd $HOME
exec carton exec -- "$1"
※2013.08.06 追記
crontabの記載
*/1 * * * * plenv /home/plenv/kick.sh "/home/plenv/test.pl"
同じバッチをかませてやることにより、daemontoolからの起動もスムースに出来るようになります。
開設
皆さんはじめまして。
今年は方位学的には八方塞がりのエンジニアがお送りする、エンジニアリングブログを開設いたしました。
個人的に学習した技術ネタを公開していきますので、よろしくお願いいたします。