2013/04/27

[git]コミットのログ

仕事でgitを使い始めた。

今までは、一人でadd、一人でcommit、一人でpush。
何も困ることはなかった。

しかし、これが複数になると全然、もう全然状況が異なる。
svnもそうだったけど、gitはできることが多いためか、正直なところ「いじるのが怖い」という気持ちになっている。

まあ、pushしなければまだ大丈夫、という気持ちだけで耐えているところだ。


コミットされたログを見ていると、いくつかパターンがあることがわかった。

よく見るandroidのlibnfc-nxpなんかを見てみると、こんな感じだった。

  1. 普通の文言
  2. Mergeではじまる
  3. mergeではじまる
  4. amではじまる
  5. Revertではじまる
  6. Reconcileではじまる
  7. DO NOT MERGEで始まる

うーん・・・。

やったことがあるのはrevertだけなので、5番はgit revert {xxx}という操作で自動的に生成されることがわかった。

別にコメントだから変更はできるのだけど、自動で打たれるコメントをそのまま使うことが多いんじゃないかね。
だいたい、自動のやつはそのまま残して、追記するんじゃなかろうか。


git amというコマンドがあり、これはmbox形式のdiffファイルみたいなものを、うまいことマージしてくれるらしい。
Apply Mergeとかなんかであろうか?

これは4番なのではなかろうか。

 

すまん、これ以外がよくわからない・・・。
どう調べたらいいんだろうか?
この「わからなさ」が怖いと感じているというところである。

試せばいいんだろうけど、どう調べればいいんかね?

2013/04/26

[nfc]NFC開発で知っておいた方がいいようなこと (2)

東京観光して疲れているが、ビールを飲みながら書いてみよう。

 

タグの違いを区別するか否か

まず、これを決めることになるか。

NDEF使えばタグの違いは吸収されるんじゃないの?と思われるかもしれないが、「NDEF」は単にNFC Forumが決めただけのものだから、従う必要などはない。
それに、NFC Forumの内容だけではセキュリティを保てないため、どうしてもタグ独自の機能を持ちいらざるを得ないことになる。

たとえば、nimocaやSuicaみたいなお金が絡むものは、タグ独自の機能を最大限有効に使ってセキュリティを確保しようとしている。
つまりタグ独自の機能を使うので、NFCタグが固定される、という見方になる。
MIFARE ULなどもセキュリティ機能があるので、それを使うなら同じことだ。

 

じゃあ、タグを読むときにそれぞれ違いを検出して、アクセス方法だけ変えればいいやん、という気もする。
それでいいときもあるだろう。
ただ、速度を重視する場合には、その「違いを検出して切り替える」という時間が命取りになりそうだ。
ほら、SIMにセキュアエレメントを持つ方式のNFCだと日本の交通状況には耐えられない、という記事があったではないか。
まあ、レジとかであれば切り替え時間があっても大丈夫かもね。

NDEFを使ってやる、といった場合でも、各タグに対して動作するような実装を用意しないといかんし、実装をしたらテストせんといかんし、いろいろとコストがかかる。
これをタグ固定にすると、費用を抑えやすくなるだろう。
Androidを使っているとあまり気にしないかもしれないが、自分でNFC R/Wを用意して小さなシステムでやってしまいたい、となると、各タグに対応するという手間を用意するのは自分になる。
(まあ、作ってしまえばいい、といわれるとそれまでだが。。)

使う用途によって、なにかを犠牲にしないといけないという例であった。


こう書いてしまうと、「じゃあT2Tだけ」とか「日本だからT3Tに絞るか」と考えるかもしれないが、それは見方次第である。
Androidみたいにアクセスするプラットフォームが既にあるのなら、T2TだろうとT3Tだろうとそれほど実装の労力はないと思う(テストはそれぞれ行った方がよいだろうが)。

なので、やりたいこと次第で変わる、ということになるだろう。

2013/04/24

[nfc]NFC開発で知っておいた方がいいようなこと (1)

最近、NFCから遠ざかっている。。。

いや、生活ではnimocaを毎日使うなどして身近なのだが、NFCの開発をしていないという意味だ。
出張だと、どうしてもそういう機材は持って行けなくて、PaSoRi程度しかないのよねえ。

だったらPaSoRiを使えばいいんだけど、今の仕事の方が優先度高いので、ちょっと遠ざかっているというのが実状だ。

かといって、このままNFC開発のことを忘れてしまっても困るので、記憶に残っていることをずらずらと書いておこう。


ここでは、狭義のNFC開発のことを書く。

NFCっていうと、nimocaとかSuicaみたいなお金から交通から何でもかんでも含んだシステムを思い出すかもしれないが(思い出すのか?)、そこまでいくとNFCってのは単なる人とシステムのインターフェースとして使っているだけで、どっちかというとそれよりも外側のしくみの方が巨大だ。

私はそんなに視野が広くないので、NFCでアクセスする、とか、NFCをアクセスする、とか、そんなNFCから30cmくらいの円内に収まるようなことだけを考えている。
いつかは、もっと円を広げたいものだが、まあやれることをやってくしかないな。


NFC Forumに準じるかどうか

NFC Forumは単なる団体なので、「NFC Forumに準じないからNFCじゃない」というわけではない。

では、何をもって「準ずる」とするかだけど、私にとっては「NDEFを使うかどうか」だと思っている。
かなり狭い定義だとは思うが、それ以外だとあまりいいものが思いつかない。

たとえば無線方式。
今のNFC Forumでは、NFC-A、NFC-B、NFC-Fという3つの方式(NFC Forum用語で"Technology")があるけれども、これらはNFC Forum独自というわけではなく、すでに存在している方式だ。
Type-AとType-Bは、国際規格ISO/IEC-14443などで定義されているし、Type-AとType-FはISO/IEC-18092などで定義されている。
だから、これらの規格に対応しさえすれば、NFC Forumのことなど気にしなくてもよい。

他にも、メモリ構造としてType 2 TagとかType 3 Tagなんて定義がNFC Forumにあるけれども、これも既存製品を元に整理したものである。

NFC Forumで決めた新たな部分は、NDEF(NFC Data Exchange Format)だと思っている。
NDEFは、無線方式やメモリ構造に影響されない、データ交換をする目的のものだ。
「データ交換」と書くとなんだかわかりにくいが、やりたいことは、無線方式や、メモリ構造などを乗り越え、データの構造だけでお話ししましょうや、という考えだ。

 

NFCのAやらBやらFやらを跳び越えてやる、という考えだが、違う目線から見るとNFC-A, B, Fの特長を殺して同じように扱おう、ということもできる。

個を殺して調和性のために生きるか、トップアスリートを目指すか・・・、そういう選択になるのかもしれない。

これはどの選択がいいか、というよりも、やりたいことの内容に応じて決めればいいと思う。
NFC Forumではセキュリティなどについては触れていないので、セキュリティがほしければNFCの種別や製品ごとに持っているセキュリティ機能を使うしかないだろう。

 

そんな感じで、なんでもかんでもNFC Forumに従わなくてもよいと思う。

2013/04/07

NFCラボのGoogleグループに入った

今さらといえば今さらになるが、NFCラボのGoogleグループに参加した。
さっき見ると、私は418番目のようだ。
よろしくお願いします(という挨拶メールは出してないが、出してみようかしら)。

なんで今?と思われそうだが、いろいろあるのだ・・・。
一番の要因は、入社時の研修で「何のために仕事をしているのか考えてみましょう」みたいなことを言われたからだ。
うっ、目の前の仕事を片付けるのに精一杯で、そういった目標などを持っていない・・・。
けっこう、愕然としたのであった。

これじゃいかんと思い、とりあえず自分がやりたいことを考え出すことにした。
そんなに安易でいいのか?とも思ったが、やりたくないことを考え出しても仕方が無いし、目標がないよりも合った方がいいだろう。
より自分に合うものが見つかったら、変更すればいいや。
あまり深刻に考えないことにしたのだ。

私のやりたいことは、そんなに多くない。
  • 組込み好きなので、技術を上げたい。
  • NFCをこんだけ調べているので、そろそろ何かに生かしたい。
  • なぜか医療好き(特に何もしてないが)
こんなものなのか、私は・・・。
まあ、そういうところにはショックを受けなくていいだろう。
少ない方が絞りやすくてよいではないか、よいではないか。

じゃあ3つともまとめてやる目標にするか、というと、それも今ひとつそうだ。
NFCラボでは、NFCを使ったイベントなどの紹介があり、そういうのもいいな、とは思うが、個人には荷が重たい。
重たいのだが、そういう動きは面白いな。

今までの自分の活動(と言えるのかわからんが)を見ていくと、NFCで何かする、よりも、NFCのことを説明する、に重きを置いているようだ。
これは、私が説明することが好きなのだろうと思う。
うん、たぶんそうだな。
でもねぇ、NFCの説明って、いろんな人がしているし、それだけだと物足りないような気がする。
「仕事の目標を立てる」と言っているわりには、規模が小さいのでは。。。
いやいや、そういうことを気にしているから、いつまで経っても目標を立てることができていないのだ。
「遠くの目標を作って、それを具体的にしていきましょう」とよく言われるのだが、どうも苦手だ。
だから、ちょっと遠い目標を作って、それを達成させる過程でまたちょっと遠い目標を見つけていく、という風にしていこう。

あと、仕事でNFCをやりたいですな。
いままでは「仕事でNFCはやってません」が売り(?)だったのだが、せっかくなので仕事でやってもいいんじゃないか、と思うようになってきた。
まあ、技が少ないので、持っている材料で闘うしかない、というだけなのだが・・・。

そんなわけで、2013年4月はこうしておこう。
まずはこれを1年くらいで考えていきますかね。
「甘い!」のは十分承知だが、やっていけば慣れていって、10年後くらいには偉そうなことが言えるようになっているといいな。
  • NFCの知識を一般に広める
    • 一般向け
    • 技術者向け(かといって、Android向けとかBlackBerry向けとかは難しいが・・・)
  • 仕事でNFCをやる(内容未定)

cygwinでgitがうまくいかんかったが、rebaseallで直った

久しぶりにcygwinからgitを使おうとすると、読み込んだアドレスがどうのこうの、というエラーに見舞われた。
前回はWindows7マシンだったが、今回はWindows8マシンだ。
同じことをやったつもりなのだが・・・直らない。
cygwinを起動させず、ash.exeを単体で立ち上げて、/bin/rebaseallを実行すればよい、というのがだいたいの方針だ。
しかしそれでも直らないので、peflagall?を実行したり、ash.exeを管理者権限で起動させたり、rebaseall後にcygwinのsetup.exeを実行させるなどしたが、変化が見られない。
思いついて、Windows8自体を再起動すると・・・直った。
そんだけかー。