- 2009/07/02/毎日少しずつLuaする (2009-07-02) このエントリーを含むブックマーク

先週末は、なんとか、ちょっと Lua する時間が取れたのですが、毎日のタスクが多すぎて今週に入ってからはぜんぜん触れずです。そこで、毎日、少しずつ Lua するように習慣にして、Lua マスターになることに挑戦してみます。目指せ、一日一関数!なでしこ2を Lua で作ると決めたので、そのために作業します。

  • (1)トークンで区切る
  • (2)構文木に変換する
  • (3)Luaのソース or バイトコードを吐く (ここが一番難しい)
  • (4)Luaのインタプリタで実行

今日からしばらくは、なでしこのソースコードをトークンに区切るというところを作っていきます。パーサーの作成からです。おもむろに、NParser.lua というファイルを作って、そこにいろいろ作っていきます。

- 2009/06/30/iTunesの操作感について (2009-06-30) このエントリーを含むブックマーク

iPhoneを使っている関係で、iTunes をよく使うのですが、iTunes Store や Podcast などの操作感の悪さには、ちょっといらいらするところがあります。

いくつかのボタンは、クリックしても視覚的にへこまないし画面もしばらく変化がありません。クリックして、じっと画面に変化があったかどうか観察し続けなくてはならないのです。(あるいは何度もクリックして、しばらく立ってから警告ダイアログがいくつも出る...)

画面の操作感、ユーザーが操作して、即座に画面に反応を表示するという点では、Chrome を見習いたいところ。クリックしたら、カーソルを変えてボタンを無効状態にするなど、他の Windows アプリと挙動を合わせて欲しいモノです。

加えて、iPhone の OS を 3 にアップデートしてから、文字入力で候補が押せない時があるのは、私の iPhone だけでしょうか。

コメントの一覧
canotWindows版iTunesの重さは異常ですね。「Win版iTunesが重いのはWindows版を重くすることでMacに移行した時快適に感じるようにしているんだ」というジョークがあったほどです。特に、文字がたくさん表示されたとき(利用規約の更新画面とか)のスクロールの挙動のダサさは特筆モノです。扱っているコンテンツは良質なだけに、残念な部分ですね。 (2009-07-02 03:23:32)

- 2009/06/26/Luaのdoctest (2009-06-28) このエントリーを含むブックマーク

Lua の doctest.lua を使い始めました。これは、ソースコードのコメント中に書いたテストコードを実行してくれるというものです。

ただし、バージョンが古いのか、そのままでは動かなかったので、メモ。261行目(付近?)にある、if num > 1 then が問題で、これだと引数に指定した 1つ目のソースを無視してしまいます。(Windows 版 Lua 5.1.4)

-			if num > 1 then
+			if num >= 1 then

加えて、doctest では、テストする関数の名前を取り出してくれて便利なのですが、これが単純な[a-z]+的なものしかピックアップしてくれないので「function lib.name()」のようなライブラリ中の関数だとライブラリ名しか取り出してくれません。そこで、217行目(付近?)にある、doctest の抜き出し用正規表現を次のように修正しました。

- local doctestre = g.string.format("%s(.-)%s[\r\n]*([%%w _]*)",
+ local doctestre = g.string.format("%s(.-)%s[\r\n]*([%%w _.:]*)",

すると、以下のように、ライブラリのテストで便利です。以下のようなテストを書いたとすると...

--[=[= embed variables
~~~
> =ku.embed("this is {name}",{name="pen"})
this is pen
> = ku.embed("{a}:{a}:{b}",{a="A",b="B"})
A:A:B
> = ku.embed("abc", {a="a"})
abc
=]=]
ku.embed = function (str, vars)
	local ret = str
	for name, value in pairs(vars) do
		local pat = "{"..name.."}"
		ret = string.gsub(ret, pat, value)
	end
	return ret
end

以下のような結果を表示させることができます。

testing ku.lua
---------------
1.1 (ku.embed): ok
1.2 (ku.embed): ok
1.3 (ku.embed): ok
---------------
3 of 3 ok
doctest.lua の使い方 †

テストを実行したいソースは、以下のようなコメントの中に書くこと

--[=[=
※ここにテストコード
=]=]

テストコードは、Lua の対話 モードでのテストコードと実行結果のように書くこと

--[=[=
> =doctest.matches(",", ",")
true
=]=]

Lua の対話モードは、Pythonと違って、30 のような値を直接書くとエラーになるので、下記のように "= 式" のような形式で書くこと

--[=[=
>=30
30
=]=]

- 2009/06/25/USB対応歩数計をチェック (2009-06-25) このエントリーを含むブックマーク

体重の記録に続き、歩数計も欲しくなったのでチェック。以前、普通の歩数計を買って、すぐに壊れてしまってから、歩数計のことを忘れてしまったのですが、知り合いが歩数計がきっかけで歩く習慣ができたという話を聞いて、また欲しくなりました。そして、せっかく買うなら、PCと接続できて、記録されるやつがいいなぁと思ったのです。

そこで、USB 接続が可能な歩数計をチェックしてみました。

オムロン(OMRON) ヘルスカウンタ Walking style HJ-710IT †

今見たら、Amazonで3060円(なんと今50%OFF!激安!!)とのことでした。Amazonの歩数計ランキングでは、一位!評判も上々なので、候補にあがっています。半年に一回電池の交換時にデータの入れ直しが必要で面倒という話もありました。まぁ、半年に一回なら問題なしでしょうか。

シチズン(CITIZEN) デジタル歩数計 Peb TW700 †

実売 4000円前後でした。見た目は、こちらの方が好きです。付属ソフトでは、グラフ表示や日本一周機能があり魅力的ですが、Amazonのレビューでは好みが分かれるところみたいです。こちらは、電池交換でデータが消えるなどの問題はないようです。

PC連動の歩数計 CSVデータ転送も可とのことですが、上記のオムロンのものもCSV転送できるようです。ただ、付属ソフトのできが良くないと、専らの評判です。

...

他の歩数計もいろいろ考察してみましたが、候補にあがったのは、上記二機種でした。(そもそも、USB対応しているものが少ないのですが。)

シチズンのデジタル歩数計 Peb TW700が発売日的にはずっと後なので、いろいろ機能面で良いと思うのですが、HJ-710ITが1000円近く安いのと、TW700が付属ソフトのできが良くないと評判があったので、結局、50%OFFのセール中の HJ-710ITを買うことにしました。使用感は、またレポートします。

前日の記事で書きましたが、Wii Fit で体重を記録しようと思っています。それで、この歩数計でCSV出力したデータと、体重の記録をマージして、グラフとか表示するアプリを作れば、かなり健康管理が楽しくなりそうです。

コメントの一覧
canotいまさらですがDS用にも歩数計があったりします。同期方法が赤外線だったのでハック的には注目されませんでしたが…。[ http://www.nintendo.co.jp/ds/imwj/index.html ]WiiFitとも連動できたらよかったんですけどね。また、この技術の延長か、今度発売のポケモンにもついてきますよ。 (2009-07-02 03:34:49)

- 2009/06/24/体重の自動記録にWiiFitを使う (2009-06-24) このエントリーを含むブックマーク

毎日体重を記録しているのですが、体重をUSBメモリなどに自動保存する体重計はないのかな?と思いました。それで、いろいろ調べてみると、実際にそうしたガジェットが発売されているようです。

しかし、既に埃を被って使っていない Wii Fitを、この代わりに使うことができるのではないかと思いつきました。そう思って調べてみたら、ありました!!

ただ、せっかくなので自分で作ってみたいなぁと思って調べると本になっていました。


私が苦労して書いた「実践バグ管理」がついに発売になりました!!

作成:1970-01-01 09:00:00/更新:2008-02-04 14:16:51

くじらぶろぐD by kujirahand RSS

konawiki 0.23