2010年5月30日日曜日

GitHubについて

GitHubについて


概要
    GitHubとは、
        Webサイト。
            https://github.com/

        プロジェクトのソースコードを管理する場所を貸してくれる、Webサービス。
        有料、無料のプランがある。
        
    まじめにGitHubを使う機会が来たので、使用してみる。
    結論から言うと、
    ・無償だとロックが掛けられない
    ・有償だとロックが掛けられる、月額7ドル〜 参加人数増加と同時管理プロジェクト数によって金額が上がっていく。

    無償で使う場合、企業秘密守るにはちょっと敷居が高いかな。




使用手順
    1.gitHubにアカウントを作る
    2.開発クライアントになるマシン上でSSHPublicKeyを作成する
    3.キーをgitHubに登録する
    4.プロジェクトを作成/既存のプロジェクトの読み込みを行う
    5.コミットcommitを行う
    6.プッシュpushを行う
    



Gitって何、って人用資料
    自作の資料

    日本語、クライアントソフトを含めて参考になった資料

    わかりやすいけど英語の資料


キー作成の手順
    userName:~ userName$ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/Users/userName/.ssh/id_rsa): 
    Created directory '/Users/userName/.ssh'.
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /Users/userName/.ssh/id_rsa.
    Your public key has been saved in /Users/userName/.ssh/id_rsa.pub.
    The key fingerprint is:
    中略 userName@userName.local
    The key's randomart image is:
    +--[ RSA 2048]----+
    中略
    +-----------------+
    userName:~ userName$ cd .ssh
    userName:.ssh userName$ ls -l
    total 16
    -rw-------  1 userName  staff  1743  5 30 12:28 id_rsa
    -rw-r--r--  1 userName  staff   407  5 30 12:28 id_rsa.pub
    userName:.ssh userName$ cat id_rsa.pub | pbcopy    //GitHubサイトにペーストするために、スクラップブックにコピー



入力したコード一覧(メモ用)
//適当にテストのプロジェクトを作ってみる
userName:~ userName$ mkdir test
userName:~ userName$ cd test
userName:test userName$ git init
Initialized empty Git repository in /Users/userName/test/.git/
userName:test userName$ touch README
userName:test userName$ git add README
userName:test userName$ git commit -m 'comment it'
[master (root-commit) 75038dd] comment it
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README

//リモートサイト(集合場所)にGitHubのサイトを指定
userName:test userName$ git remote add origin git@github.com:GitHubLoggedInName/GitHubCreatedProjectName.git

//プッシュ(SVNでいうcommit)
userName:test userName$ git push origin master
中略
Counting objects: 3, done.
Writing objects: 100% (3/3), 205 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:GitHubLoggedInName/GitHubCreatedProjectName.git
 * [new branch]      master -> master


公開済み -toru inoue 10/05/30 15:08 







Gitについて

Gitについて 


概要
    分散バージョン管理ツール。写真はそのクライアントソフトの一つ、GitX
    
    (写真はGitX/Mac)
    

分散バージョン管理とは?
    自分の環境でリポジトリへの投稿とバージョン管理(commit)→ 共有目的の特定のリポジトリへの投稿とバージョン管理(push)
    雑に言うとこの二段階があるバージョン管理方法、手段、手法。
    
    ユーザー各自にリポジトリが存在するため、そうではないSVNなどと比較する意味で分散バージョン管理と呼ばれる。
    この方法を実装しているソフトウェアとしては、gitのほかにMercurial、Bazzarなどがある。

    この方式がいい、というよりは、SVNがアレすぎるという意向で代替として使っている人が多いのではないか。。。

    利点は各人で独自のタイミングでの開発が、SVNよりは容易に出来る事。
    十分に練度の高い方々には全く持って蛇足、チーム意識を害される場合もあるので、「今SVNでうまく行ってるもん!」という人にはあまり薦めない。

    要は慣れと規則化とルールだし、設計を生かすために使う、なんていうのはナンセンスだしね。



特徴
    SVNより処理が軽量、隠しファイルをデフォルトでトップ階層の一つしか作らない(SVNは全階層に作る)
    Mercurialに非常に似ている(出自がほぼ一緒だし)
    SVNよりもクライアントソフトの選択肢がかなり少ない。まあLinux用だし。



インストール
    ここでは、クライアント上で動作するCUIアプリケーションと、
    それらを視覚的に扱いやすくするGUIアプリケーションを取り扱う。

    CUIアプリケーション
        アプリケーションというかシステム本体。 これが無いとGUIがあっても動かないときがあったり無かったり。
        GoogleCodeにインストーラがある。    



    GUIアプリケーション
        Mac版:
            GitX
                Push,Pullが出来ない以外は最高のインターフェース。
                それらの機能は制作中、なのかな。 I 'll buy this! please let me donate.
                http://gitx.frim.nl/

                日本語の解説は下記が詳しい。
        
        

        Windows版:
            TortoiseGit


このページへのリンク:


公開済み -toru inoue 10/06/01 23:12 

2010年5月14日金曜日

実験メモ

実験メモ(Toru Inoue@KISSAKI)


自分用に書き連ねる実験レポート。(Toru Inoue@KISSAKI)。 
用意したり設定したりする上での前提が、端から見て不鮮明だとおもうが、
まあ実験用なので、出来てる部分と出来てない部分と実験の成功率を上げ記録するためのファイルですので気にしないでください。

万が一、御用の場合のご連絡は sassemblaアットマークhotmail.com か、KISSAKI worksのメールフォームまで。
Toru InoueのTwitterはtoru_inoueです。



* 1.JavaScriptからの外部へのアクセスポイント = APIの出力

 * 2.インターフェースクラスの作成

 * 後述するラッパークラスの宣言

 * 3.実装クラスの作成

 * Javaのラッパークラス

 * javaScriptを呼び出すJSNIクラス

 * 4.テスト

 * 

 * これらを行いたい。

 * 出来ると、凄く楽になるし、他の物も使えるようになるかもしれない。

 * 

 * オブジェクトへの名前空間のアタッチは不明だがな! 

 * その辺りは、JSNIで作成する段階でID化されていたような気がしないでもない。

 * &wndからの取得部分を外部化するのも、読み出しを事前チェックするように出来そうだ。


編集工学

直感の言葉化

遊びと人間 (単行本)R・カイヨワ (著), 清水 幾太郎 (翻訳), 霧生 和夫 (翻訳) 

ジェジェック 遊び 遊学(松岡正剛)
※※編集工学の分類法…編集の場合
 ☆■収集(分けると分かる) 収集・選択・分類・流派・系統
 A■編定(縮めて伝える) 編定・要約・凝縮・翻訳・結合
 B■原型(型にして見る) 原型・模型・適合・列挙・配置・意匠・装飾・図解
 C■順番(繋げて較べる) 順番・規則・交換・競合・比較・共鳴
 D■暗示(含みを持たせる) 暗示・相似・擬態・象徴
 E■引用(盗んで補う) 比喩・推理・引用・例示・補償
 F■注釈(付け加える) 注釈・付加・削除・拉致・保留・代行 
 G■模擬(測って調べる) 模擬・測度・強調・変容
 H■焦点(ニュースにする) 焦点・報道・統御
 I■境界(区切りを変える) 境界・場面
 J■周期(リズムをつける) 周期・曲節
 K■諧謔(おおげさにする) 歪曲・不調・輪郭・諧謔
 L■形態(構造を見つける) 構造・形態・生態
 M■劇化(物語で遊ぶ) 筋道・脚本・劇化・遊戯




JavaScriptからfunctionを抽出する

概要
    JavaScriptからfunctionの一覧を取得する作業を自動化する
    取得した一覧に対してGWTのラッパを作成する作業を自動化する


手法
    なんてものを作るのは嫌なので、EclipsePluginのJSDTから拝借。
    ロジックだけでも還元できるか?
    →シンタックスハイライトがもっと軽量な事に気がついたorz。
    
    

Vaadin GWTGraphics + Processingを使ってみる

概要
    SVGとかが使いやすいようにしてくれているライブラリがある。
    利用者コミュニティもそれなりに大きいようだが、さて?
    日本人の使用者いねーーーーーーー。

内容
    
    前提として、GWTでのGraphicsを行う GWTGraphics ライブラリと、 Processing.jsを独自拡張したものの連携物らしい。
    
    GWTGraphics

    GoogleCoce
    
    ライセンスはApache2.0
    

    で、Processing.jsの改造物本体
    Processing GWT Graphics Component

    情報はここ(Vaadin Wiki)
    
    ダウンロードはここ

    テーマは、ProcessingをGWTで使えるように、、、なのだけれど、悲しいかな、Vaadinの本体との組み付きっぷりがちょっと固い。
    コンポーネントの拡張クラスから依存してしまっている。
    こういう時、Guice使って切り分けてほしくなる。
    ていうか単体でも動かせるようにしたい。。ほんと、ただのインターフェース希望。

    Vaadin自体がGWTGraphicsを拡張する方向に動いているグループみたいね。
    いろんなサンプルがある。すべて組み付いていると思うと、ちょっと「ぞっとしない」
    
非常にいいと思うところ&怖いところ
    GWTIncubatorが無くてもキャンバス描画できる。 というか出来てしまう。
    Incubatorとは異なるCanvas実装をしている。
    (事実、Canvasよりも上位のクラスからコンポーネントを作成している。)

    IncubatorがGoogle公認という認識なので、とりあえずこの時点でバイバイ確立がガっと上がる。


現在の進行度
    デモが実行できねえ。。
    
    とおもったらデモはオンラインでないと機能しないのか、、、
   
問題点
    デモではオンラインで無いと挙動しない、みたいな部分があったけど、
    ダウンロードが終われば自由になったりするのかな。
    その意味であれば、価値はあるかと思われる。
    ただ、すべて描画されないとかそういうのは、勘弁な。

    現状のステータスは、お見送り。
    教訓としては、他の要素と組み付く部分での自由度の支点(力点作用点)が、他のモジュールとダブってないかを
    確認するリストを作った方がいいかも、ということか。
    
    今回の場合、キャンバスオブジェクトの扱いが主なポイントになる気がする。
    Widgetの実装深度?まだ言葉がまとまらない。





Processing.js + GWTでの描画

前提
    processing.min.js/processing.jsを使用。
    →対応範囲から、やりたい事をリストアップする。
    →最新バージョンを使用するように変更 最新版ゲット 0.8 -sassemblamac.com 10/05/08 18:05 
        最新版への変更に伴って、いろいろ仕様変更を確認した。
        インターフェース次第だねえ。

利点と考えているポイント
    Javaで作成されているProcessingを、JavaScriptに移植したもの(途中)がProcessing.js。
    国内はそうでもないけど、国外での利用度はなかなかの物。
    
    JavaScriptということは、アクセッサをGWT側から作れるため、モジュール化が楽。
    外部モジュールであるため、切り離しと利用が楽
    問題点としては、GWTのブリッジが中途半端になりそうなこと。
    メモリとして持てばまあ大丈夫かな。
    初期化時にそのメモリを持つクラスを設計するか。
    →Processingを内容したクラスできた。
        インターフェースをいろいろ出力するか。
        クラス構造を規定しよう。

0.カメラ

概要
    カメラメソッドなんて面白そうなものを(そして簡単で効果高そうなものを!!)見つけたので使ってみる。

現状のメモ
    p.lights();でエラーをはく。   
    内容はminでは無理、という領域 + jsだと無理、なのだろうな。
    まあ、描画の基礎を行うモジュールのみで十分有効範囲なのだから、
    Canvasでそれらが使えるだけで凄いでしょう。
    *GWTでは、まだ、直接Javaでは描画できないんだぜーw
    
    さてはて。



1.画像描画

概要
    画像を描画する
    注目すべき点としては、
    1、Webからのダウンロードと描画が1行で書ける事
    2、ダウンロード元には、DevelopmentモードのGWTが使える事
    3、変形を掛けるのが超簡単そうな事

現状のメモ

    var path = "http://127.0.0.1:8888/resource/4.jpg";

    var imgS;

    imgS = p.loadImage(path);//ここまでは通過

    p.image(imgS, 0, 45);//image自体が未定義みたい。 



2.文字描画

概要
    GWTと連携させたProcessing.jsで文字を描画


現状のメモ
    フォント指定用のローディングが失敗しているようだ。
    p.text("",100,100);//描画されない、デフォルトのフォント指定は無いようだ。 エラーも出ない。


3.SVGの描画

    
概要
    ProcessingでSVGを使って描画を行う

移植中。。。
    うーん、芳しくないなあ、
    Processing.js自体で、まだサポートしてない内容になる。
    まあでも、何だ、ここでデータを放り込むのには、Javaが使えるなあ。



4.Bezierの描画

概要
    描画と動くものを作ってみよう。
    おおむね動きそうな感覚! 後は、、実装の内容の問題。多分OK
    

結論

ラッパーが用意できれば使える
    確認できた点としては、
    1.まあ使えない事も無い
    2.ライブラリ化が凄く楽なので、過去の資産流用としてはアリ
    3.権利関係もOK
    というところか。
    
    jsライブラリを使う上で、vaadinあたりと競り合うには、ちょっと時間がないかも。
    かんたんな表示なら、最速。
    アンチエイリアス付きでの描画でも、最速。
    Vaadinだと、ライブラリが大きすぎる印象があるんだよな、、、
    Webサーバ側に準備がいるし。

    
バージョン差の不安
    Processing.js、 Ver0.8でのみ発生している現象だが、
    JavaScriptオブジェクトを作る段で、以前は必要なかった引数aCode(本来は実行コードをぶち込んで動かすためのもの!)に翻弄されて、
    以前動いた物が全く動かなくなってた。

    Processingオブジェクトを生成する際に使用するファンクション
    function Processing(aElement, aCode)
    なのだが、
    aCodeにはProcessingに食わせるコード(実行コードの文字列)が入る。
    以前は、引数が無ければ特に何も行わずProcessingのオブジェクトだけを返してくれる関数だったのだけれど、
    0.8のバージョンでは、aCodeがあるかないかをチェックする前に、aCodeの内容から画面サイズに関する命令
    size(100,100);
    とかを抜き出して、使ってしまっている。
    aCodeを空にしたままだと、unDefinedを出すし、
    aCodeを入れたら入れたで、size(100,100);関数を使うしか無かった。

    Resigさんのソース内コメントによれば、そのうちどうにかなるようにするつもりらしい。
    せめて、aCodeの有無を調べる順番だけはなんとかしてちょ、とお願いするつもり。
    
    大変そうだのう、、、
    
    サイズ変更は後から効くので、問題は無い。
    
    
GWTのキャッシュ(外部JavaScriptを読み込む場合)
    キャッシュが発生している範囲が判明、
        ・ブラウザ
            JavaScriptのキャッシュ

        ・war/プロジェクト名フォルダ
            プログラムのキャッシュ、書き換えの手続きを行わないと変わらない。
        

        一応動く内容も確認できたが、関数の上書きが出来ない、、らしい。もしくは名前が変わっているのか>
        中身がえらく特化している印象。
        
if (aMode && (aMode === "OPENGL" || aMode === "P3D")) {

        // get the 3D rendering context

        try {

          if (!curContext) {

            curContext = curElement.getContext("experimental-webgl");

          }

        } catch(e_size) {

          Processing.debug(e_size);

        }


    今のところちょっとパス。 でも使える。










GWTでCanvasを自在に使う 完了、別記事移植待ち -sassemblamac.com 10/05/07 17:42 

概要
    GWTでCanvasを使うと、画面サイズや伸縮に対して他の要素の影響を受ける。どんな要素が影響しているのか

    GWTでCanvasタグの有効活用、JavaScriptからのマウス制御の位置調整をする

    問題点を明確にし、二度と迷わないように知識化、体系化を行う。


問題点
    Canvasが横長になる 解決完了 -sassemblamac.com 10/05/02 20:42 
    マウス位置の検知が左上にずれる 解決完了 -sassemblamac.com 10/05/02 20:42 
    挙動速度のネックがまちまち(JavaScriptとの併用で高速化が可能。GWTが遅いという意味ではなく。)
    iPhone向けにデプロイした物が表示できるかチェックが必要 完了 -sassemblamac.com 10/05/02 20:42 


エラーの見つけ方
    JavaScriptのエラーの見つけ方で現状の物は、
    FireFoxのFireBugで、下記のように表示される
    


    これが、唯一に近いくらい便利。



以下メモ
    シンプルなHTMLに貼付けてみたら、widthとheightの値が、Processing使用直前のサイズで
    925,555だった。 そんな数字は定義してない。
    なにかと思ったら、その時点でのブラウザのサイズだった。ええええ?
    変数が一つ増えた。

    Canvasの作成サイズ
    Processingの設定サイズ
    ブラウザのサイズ
    
    キャンバスオブジェクトがこんな感じだが、、さて。
    <canvas style="width: 100px; height: 100px; background-color: rgba(0, 0, 0, 0.496094); " width="0" height="0"></canvas>
    
    確かめてみたところ、Processingに渡すところで確かにサイズ参照してて、それを用意してあるキャンバスに無理矢理乗っけてただけだった。
    っていうかこんなところまで出来るのか、感心した。
    切り抜いて表示するかと思った。

    ともあれ、謎は解けた。
    iPhone/Androidの既存携帯に向けてのチューニング開始
    






JSONを使う

    下記をモジュールに加えると楽
    <inherits name="com.google.gwt.json.JSON" />

    <inherits name='com.google.gwt.jsonp.Jsonp'/>







このページのURL

















2010年5月11日火曜日

資料リンク

資料リンク ©KISSAKI works


in English


概要
    外部向けに解放しているHTML5アプリケーション/作成ツールの資料リンクです。
    今のところ、リファレンスオンリーです。
    今後、議論と更新が可能なようにBlogに移す予定です。
    (GoogleDocsから更新できるBloggerに移行中。)



デモサイト:
    MAP デモ開始 -sassembla@mac.com 10/04/25 18:11 
        GoogleMapAPIとHTML5系アニメーション等を使用したデモです。
        

        製作記録

        

    ToDo
        テスト中
        GAE+GWTで作成したToDoリストアプリケーション。RTMとは別の切り口。

    
    Flight
        テスト中
        HTML5グラフィカルデモ。
        

制作環境系ツール:

    環境構築:Java
        http://docs.google.com/View?id=dwp4j2r_227hk4r9sg8





バージョン管理ツール:

    Mercurialについて


    Gitについて




Eclipse Plugin系:

    Reloについて

    
    GWTDesignerについて




フレームワーク系:

    Guiceについて


    GINについて
        記述中



Google系技術:

    GWTについて


    GAEについて
        記述中



実験:

    実験サイト





インフォメーション:

To KISSAKI


この記事へのリンク





フォロワー