2011年10月22日土曜日

Simple@中山

いつもの勉強会@中山。

◆まずは血圧の測定。

最近、医者に高血圧といわれ薬を飲み始めた。
ので、今日は一日の血圧の変動を測定する。

測定器は、アマゾンで評価のよかった手首ではかるタイプのやつ(右)。ただ医者で測定するより20ぐらい低く出る。

06:09 116−66
11:45 126−79
16:54 139−80


◆何しようかな。

◆Dioモジュール作ってます(PHP)

https://github.com/asaokamei/Dio

Yet-another-validatorですが、入力値のサニタイズ、文字種変換、バリデーション、の全部入りモジュールです。こんな感じで使える予定。

$mail = Dio::request( 'user_mail', 'email',
  array(
    'default' => 'text@example.com',
    'required' => TRUE,

    'toHankaku' => TRUE,
    'string' => 'lower',

    'regexp' => array( '*jp$', 'err_msg' => '日本ドメインのみ可' ),
  )
);


特徴は:
  • できるだけ簡単に。
    例のような感じで、普通に簡単に使えるようにしたい。
  • 文字種変換など順番を指定できる。
    全角英数字を半角に変換してからバリデーションする、とか順番が大事なので、前もって順番を指定しておいて、適当に使っても大丈夫にしたい。
  • 複数の項目を一つにして読み込める。
    例:date_y, date_m, date_d を「date」として読み込めます。
まだ一度も走らせてません。シンタックスエラーすら未チェック状態。

◆今日の課題を決定:fluxflex

to-be-continue


2011年9月17日土曜日

Simple@高円寺、Qunitなど

いつものSimple勉強会。今日は高円寺にて。
まったりとスタート。

◆QUnitでユニットテスト

Cena-DTAのJavaScriptのユニットテストをするためにQUnitを使ってみた。
http://docs.jquery.com/Qunit

テストコードを作るのはとても簡単。

非同期(asynchronous)の場合のテストもできる。
http://net.tutsplus.com/tutorials/javascript-ajax/how-to-test-your-javascript-code-with-qunit/

「QUnit asynchronous」でググって最初のページだけど。
疑似コードは:

test( "asynchronous test sample", function() {
  stop(); // テストを一旦止める
  async( callback_func );
    var callback_func = function() {
      start(); // テスト再開
      ok( true );
    }
{);

・時間の読めない関数(async)を呼ぶ前に、一旦テストをstop、
・コールバック関数で、実際に実行される箇所で、テストstart、
・それからテスト条件を書く、
という感じ。

面倒な点といえば・・・
テストしたいのがDOMに正しく書かれたかどうかのため、テストの設定が大変だった。また書かれた内容をjQueryで読み込んでとかも面倒。

これはQUnitが原因ではなくて、おしなべてJavaScript全般にいえることでしょう。

◆もっとテストを

結構、テスト書くのは大変です。
どの機能を、どうやってテストしたらいいのか、考えるだけでも時間がかかってます。先にテストを考えてから作るといいんですかね?

それって、ボトムアップみたいな開発ならできそうなのですが、トップダウンで作ってるとき(つまり試行錯誤しながらクラス設計する場合)後回しにしてしまいそう。いや、後回しにして、後でテスト足りなくて困るという・・・

2011年9月13日火曜日

PHPカンファレンスでCena-DTA発表

2011年9月10日のPHPカンファレンスでCena-DTAの発表してきました。
緊張したなぁ~

UStream
http://www.ustream.tv/recorded/17175804

発表資料
http://www.slideshare.net/asao_jp/cenadta-php-conference-2011-slides

技評さんの「PHPカンファレンス2011 スペシャルレポート」
http://gihyo.jp/news/report/01/phpcon2011/0001?page=2

技術評論社さんには
「まだ過渡期の技術ですが今後どんどん
 開発が進んでいく注目の技術かもしれません。」
と書いてもらえました。

うん?
「今後どんどん開発が進んでいく~かも」とは、どういう意味でしょう?
もっと頑張れ、ということかも知れません。

確かに、発表内容は技術の紹介が半分近くを占めてます。
発表タイトルにある「アプリ開発」には、ちょっとしか触れてません。
聞いてくれた人には、思ってたのと違う内容だったかも知れません。

そういう意味で、まだまだ過渡期。
次こそは、「ぜひ使ってください」という発表をしたいです。

使ってもらえるためには、何が必要でしょう?
コードとプロトコルをきれいにする?
セキュリティを極める?

自分としては、摘要可能なRDBの範囲を見極めたいです。
まだまだ単純なケースでしかCena-DTAが有効であることを示せてません。
もっと複雑な構造だったら?
もっと大量のデータだったら?

それと、他の技術もあるけど、
どういう場合にCena-DTAを使うべきなの?

こういった疑問に答えられるようになりたいです。

2011年8月11日木曜日

Mac OS X Lion で homebrew を使ってみる。

◆homebrewかmacports

今はhomebrewがおされらしい。
macportsの問題は色々あるみたいだけど、OSアップデートしたら環境全部壊れた、見たいな事がある、らしいと理解しました。

◆インストール

色々なサイトを参考に、インストール自体は問題なく出来たように見えました。

◆が、インストールがおかしい

最初はインストールしたのですが、
brew update
/usr/local/.git: Permission denied
Error: Failure while executing: git init
などといわれます。
もう一度homebrewをインストールしてみても、似たようなエラー。

まさかね、と思いながら探していると
http://stackoverflow.com/questions/6936678/cant-install-homebrew-on-mac-os-x-lion

ちょっと怖いけど、次のコマンドを発行。

chmod 777 /usr/local
エラーは直りました。


◆早速、mysql.server start

エラーはなし。
が、今度はmysql -u root -pでソケットがありませんとエラーが出ます。
mysql_config --socketなどで調べたけど、訳が分からず。
リブートしたら動いた。



2011年6月25日土曜日

Simple@Idx 2011/06/25

CenaをGithubに登録する作業。

数ヶ月前にSSHを設定して、動いていたのだけど、
パスフレーズをなくしてしまった。

ので、SSHの再設定するのに四苦八苦。
いろいろググッたけど、結局Githubのヘルプ読むのが
一番簡単だった。

https://github.com/asaokamei/Cena-DTA

で、Cena-DTAのソースコードをプッシュ。
友人のマック上で展開して、動作確認してもらって、

  動*い*た。

MySQLの設定部も問題なく進んだし。

さて、GPLv2で公開した。
ということは、もう後戻りはできない、ということですね。

2011年4月23日土曜日

Simple@Idx 2011/04/23

久々に中山で勉強会。

◆CenaDTAと名づけることに

cenaはイタリア語で夕食の意味。
意味のある言葉をプロジェクト名にすると、後々面倒なので「Cena-DTA」にすることにした。
「Cena Data Transfer Agent」の略ということで。

◆gitHub

今後のバージョン管理はgitHub使うことにした。
有名だからという程度の理由。今まではローカルHDD上でmercurial使ってたので、過去の履歴はすべて破棄されることになる。が、仕方ないんだろうなぁ。

で、早速インストール。
セットアップの方法にしたがって、インストーラーをダウンロードして走らせると、説明とまったく同じ画面とバージョン番号が出ていた。これって、実はすごいことだと思う。

説明にしたがってSSHキーを取得したりしているうちに動き出した。

が、コミットしてもgitHubに反映されない。
これはpushが必要だから、と思ったがgitGuiからpushできず。
結局、gitBashから説明どおりに打ち込んで公開完了した。

https://github.com/asaokamei/Cena-DTA

◆眠くなってきたのでウェブサイトでも作ることに

ざっくりとデザインを決めてアップ。
http://www.workspot.jp/cena/

2011年2月26日土曜日

Simple@Idx 2011/02/26

デモをアンドロイドの実機で動かすのが目標。

実機はGalaxy S。Android 2.2が乗ってます。
デモはノートブックPCのローカル環境で動いてます。

◆無線LAN環境を整えよう

LogitecのUSB無線LANはAPモードになる。
アンドロイドからWiFiでPCにつなげられる。

つながったと思ったら不安定だったので、
最新のドライバーにアップグレード。

◆つなげてみよう

PCのローカルIPを調べて、
ブラウザーに直接打ち込むと、
お、動いた。

ここまでは簡単。

◆デモが動かない。

HTMLは表示されるが、WebSqlDatabaseからの読み込まない。
PHP、JavaScript自体の問題はないみたい。
デバッグ情報もalertもOK…
さて、どうしたものか。

◆Android SDKをインストールしてみる。

するとJDKもインストールしろといわれたので、した。
インストールは簡単に終了。が、動かない。

どうもコンポーネントのダウンロードに失敗していたらしい。
Windowsなので、「管理者として実行」としたら動いた。
例の「Program Files」フォルダー以下に書き込めないのが原因だろう。

・・・

なんか動いたみたい。
すごく遅い。

お、動いた。
WebSqlDatabaseも動いた。
エミュレーター上では問題なし。

◆Galaxy Sの問題?

お、Galaxy Sのファームウェアバージョンアップがあった。
Samsung KiesをPCにインストールする必要があるのか。
どうしよう。

簡単なWebSqlDatabaseのサンプル・デモを作ったのを思い出した。
Galaxy Sで確認すると、動いた。

◆jQueryをアップグレード

デモのjQueryが1.4.1と古かったので、1.5.1にアップグレードしてみた。
すると、PC上のChromeでも動かない。
直さないといけないみたい。

仕方ないので1.4.4にアップグレード。PC、エミュレーターでは動く。
が、実機では動かない。

◆実機でデバッグ

しろと。
ADBとやらを動かして、consoleのアウトプットをみると。
このあたりのリンクを参考にして。
http://www.nanaze.com/2009/01/debugging-javascript-on-android.html

以上で、時間切れ。