2009年10月アーカイブ



仕事でCanvas要素を使う機会があったので情報をまとめとく。



これはいい!と思ったのが、canvas要素に対してtoDataURL()メソッドを使うと、生データが取れる点。


あとはimg要素に流しこめば画像として複製出来るし。



現状、IEが対応してないので、ExplorerCanvasのJavaScriptを使って対応する。




参考


W3C The canvas element

W3CによるCanvas要素の仕様。


英語版しかないのと、チュートリアルが不十分。。


W3C HTML5 4.8.11 The canvas element


Canvas チュートリアル(Mozila Developer Center)

さすが、Mozila.org。


チュートリアルが日本語化までしっかりされてる。


Canvas チュートリアル



ExplorerCanvas

InternetExplorerでCanvasを利用可能にするJavaScript。


Google code explorercanvas


HTML5.JP Canvas

一般企業さんが運営されているサイトの情報の質が高い。


HTML5.JP Canvas



Apple Developer Connection Web Apps Dev Center

アカウント取る必要があるけど。


Apple Developer Connection Web Apps Dev Center



追記


なぜか、TwitterでHTML5watcherというbotにフォローされた..なぜだ?


http://twitter.com/HTML5watcher




にこにこ動画でふと目にとまった動画でなきたくなった。



D



気がついたら同じ処理ばかりテスト


そしていつも同じ場所でおちる



あきらめずにソースの解析にも挑戦するけど、


全然意味がわからない。



ダミーのデータがあれば、楽に単体テストは通るけど


何回やっても何回やっても


結合テスト通らないよ



あの仕様書何回読んでもわからない


設計者を捕まえてみたけど、本人もよくわかってない



いっそ全部作り直したいけど、許可が下りなくちゃ意味がない



だから、明日は絶対帰るため


私テスト結果のの捏造はじめとく



(帰りたいよ)



試験の種類メモ書き。



  • 単体試験UT (Unit Test)

  • 結合試験SI (System Integration)

  • 総合試験=PT (Product Test)

  • 運転試験=RT (Running Test)


































小節
第1部 予備知識1章 LispとScheme
2章 Gaucheの特徴
3章 Gaucheの設計思想や誕生の背景
第2部 Gaucheの基礎練習4章 Gaucheの開発スタイル
5章 プログラムの書式
6章 リスト
7章 手続き
8章 真偽値と条件判断
9章 状態の管理
10章 テストと例外処理
11章 評価モデル
第3部 実用的なプログラミング12章 数値
13章 文字と文字列の処理
14章 入出力
15章 テキストの構築
16章 さまざまなデータ構造
17章 総称関数とオブジェクト
18章 構文の拡張
19章 継続
20章 モジュールシステム
21章 デバッグ
22章 データベース
23章 日付と時間
第4部 Webアプリケーションへの応用24章 GaucheでCGIスクリプトを書いてみる
25章 スケジュール管理アプリケーション
26章 継続渡しによるWebアプリケーション
27章 Kahuaアプリケーションを書こう
付録AGaucheインストール
付録BEmacsの設定
付録CKahuaインストール
付録DGaucheとR6RS

履修表(はてな記法)


履修表をはてなダイアリーで使いたい方は下記をコピペして下さい。



|*部|*章|*節|*小節|*済|
|第1部 予備知識|1章 LispとScheme| | | |
| |2章 Gaucheの特徴| | | |
| |3章 Gaucheの設計思想や誕生の背景| | | |
|第2部 Gaucheの基礎練習|4章 Gaucheの開発スタイル| | | |
| |5章 プログラムの書式| | | |
| |6章 リスト| | | |
| |7章 手続き| | | |
| |8章 真偽値と条件判断| | | |
| |9章 状態の管理| | | |
| |10章 テストと例外処理| | | |
| |11章 評価モデル| | | |
|第3部 実用的なプログラミング|12章 数値| | | |
| |13章 文字と文字列の処理| | | |
| |14章 入出力| | | |
| |15章 テキストの構築| | | |
| |16章 さまざまなデータ構造| | | |
| |17章 総称関数とオブジェクト| | | |
| |18章 構文の拡張| | | |
| |19章 継続| | | |
| |20章 モジュールシステム| | | |
| |21章 デバッグ| | | |
| |22章 データベース| | | |
| |23章 日付と時間| | | |
|第4部 Webアプリケーションへの応用|24章 GaucheでCGIスクリプトを書いてみる| | | |
| |25章 スケジュール管理アプリケーション| | | |
| |26章 継続渡しによるWebアプリケーション| | | |
| |27章 Kahuaアプリケーションを書こう| | | |
|付録A|Gaucheインストール| | | |
|付録B|Emacsの設定| | | |
|付録C|Kahuaインストール| | | |
|付録D|GaucheとR6RS| | | |



TDDを求めるエンジニアが多いので、gaucheでのユニットテスト例。



;;テスト対象
(define (proc1 a b c)
(if (and (<= a b)(<= a c))
(+ (proc2 b)(proc2 c))
(proc1 b c a)))

(define (proc2 x)
(* x x))

#|
以下ユニットテスト例。
|#
;;テストモジュールを読み込む
(use gauche.test)

;;テストをスタート
(test-start "proc1 test")

;;テスト群の名前付け。
(test-section "test group 1")

;;テスト項目
(test* "proc1 13" 13 (proc1 1 2 3))
(test* "proc1 25" 25 (proc1 2 4 3))
(test* "proc1 41" 41 (proc1 5 4 3))
(test* "proc1 2" 2 (proc1 1 1 1))

;;テストの終了
(test-end)

実行結果



Testing proc1 test ...
<test group 1>-----------------------------------------------------------------
test proc1 13, expects 13 ==> ok
test proc1 25, expects 25 ==> ok
test proc1 41, expects 41 ==> ok
test proc1 2, expects 2 ==> ok
passed.

参考



Gaucheについてまとめた記事


Gaucheの有用情報まとめ




java-ja来てた??


問題1.3


問題1.3はJavaScriptとSchemeで考えながら解いた。


帰宅してから解答がおおよそ浮かび、翌日の朝やっと完了。


Gauche


(define (proc1 a b c)
(if (and (<= a b)(<= a c))
(+ (proc2 b)(proc2 c))
(proc1 b c a)))

(define (proc2 x)
(* x x))

(print (proc1 1 2 3))
;=>13
(print (proc1 2 4 3))
;=>25
(print (proc1 5 4 3))
;=>41
(print (proc1 1 1 1))
;=>2

JavaScript



  • defineはvarで宣言した変数に束縛する。function宣言だと書いてみたけどないわー。

  • 原則returnで返す。



var proc1 = function(a,b,c){
if(a <= b && a <= c){
return proc2(b) + proc2(c);
}
return proc1(b,c,a);
};
var proc2 = function(x){
return x * x;
};

alert(proc1(1,2,3));
//=>13
alert(proc1(2,4,3));
//=>25
alert(proc1(5,4,3));
//=>41
alert(proc1(1,1,1));
//=>2



JJUGのjava-ja枠でJavaScriptについて語った。


反省点が多々あるので、戒めのため。



  • 発表中にPCが落ちた。

    • 電源コード重要。



  • 資料が雑だし、もっと笑わせないと!

  • あがってた。


ということで、伝えたい事を伝える事が出来なかった。すみません。



ひとまず、はてなダイアリーで記事にしてこうと思います。




行ってきたのでまとめ。


デベロッパのためのHTML5入門


白石俊平さん(id:Syunpei



  • Google Gearsの経験がHTML5で生きてる。

  • HTML5のドラフトが8/25にちに公開された。10月中に再度更新される予定。

  • divとsectionは使い分けが必要。

  • canvas要素の話。

  • キャッシュマニュフェスト

    • JavaScriptはUIスレッドで実行される。



  • WebSocketsの話。

  • HTML5の勧告は2022年(笑)実装はもっと早くに終わる。

    • 現にOperaはinputカレンダーの実装終わってる。




私事

HTML5でもJavaScriptが活躍するなーと私見。canvas要素はまだ使ってないので使ってみる。


情報収集のため、Google Groupのhtml5-developers-jpに参加した。


別件

id:ichii386はGauche本をSICPを購入したとのこと。awkは触った事ないから調べる。


mixiアプリで見るオープン化戦略


田中洋一郎さん(id:yoichiro



  • 3つの外部API

    • mixiアプリ

    • mixiConnect

    • mixiOpenID



  • Apache Shinding

    • PHP版とJava版が存在する。mixiはJava版を採用。



  • mixiプラットフォームはPerl。一部Java。

  • 苦労話

    • 8.24 mixi一般公開。

    • 8.24-8.31 mixiアプリ起動失敗。

      • Shindingの不具合。closedしてなかった...



    • APIのダウン

      • パーミッションモデルの複雑さが要因。



    • 障害対応

      • 横に増やせばすむだろとサーバーを増やしてみた。だめだった...

      • プロファイラを使って、実装の見直しを行った。





  • mixi = mod_perl + memcached + MySQL

  • クラウドの力を使うと良い。

    • Google AppEngineとか、Amazon EC2とか。



  • モバイル版はDeNAのエンジニアと直で話をしたりして仕様(外部API?)を決めたりしてる。

    • 要は連携してるらしい。



  • OpenSocialでの開発をサポートするJSライブラリ

    • opensocial jQuery

    • jOpenSocial

    • jQuery.opensocial_simple Plugin




私事

よういちろうさんからサイン貰った。


f:id:rokujyouhitoma:20091010134341j:image



OpenSocial入門 ~ソーシャルアプリケーションの実践開発

OpenSocial入門 ~ソーシャルアプリケーションの実践開発





jQuery系のライブラリには興味ありだな。あとで調べる。


Google waveで始まるリアルタイムコミュニケーション


a2c@atusiさん(id:a2c)



  • クライアント、API、プロトコルが存在する。

  • GoogleDocsとかGmailとかGadgetの集合体?

  • XMLで定義されてる。

  • ジャストなうな編集が出来るwikiとかちゃっとみたいな。


まだサービス概要が理解できてないので、GoogleGroupのGoogle-Wave-API-Japanに参加した。


最近はてブに蓄積しすぎてみなおせてないからブログへ。

macfuse
http://code.google.com/p/macfuse/

NTFS-3G
http://macntfs-3g.blogspot.com/

参考記事:http://d.hatena.ne.jp/gosyu/20090310/p1

html5doctor
http://www.html5.jp/html5doctor/index.html

あわせて読みたい

  • あわせて読みたいブログパーツ

Lingr java-ja

ウェブページ

Powered by Movable Type 4.1