自分で作ったり提供したりするものは、まず自分自身で使ってみろろということです。自分じゃ使わないものなら人はいくらでも無責任にも無思考にもなれる。そういう投げやりな「サービス」やら「プロダクツ」なんて、だれだってイヤだ。自分が作り手と同時に利用者の立場になれば、ちゃんと使えるレベルのものを提供しようとします。

2010年11月24日水曜日

SqlEndia 2.6.1

データベース開発ツールSqlEndia 2.6.1テスト版ダウンロードURLを公開します。

http://www.sqlendia.com/download/sqlendia2.6.1.zip

対応内容:
①SqlServer2008対応
②バグ修正

2010年11月19日金曜日

c# string compareto

C#でストリング比較関数(CompareTo)実行結果をメモします。

string teststring = "20101115";
System.Diagnostics.Debug.WriteLine(teststring.CompareTo("20101114"));
System.Diagnostics.Debug.WriteLine(teststring.CompareTo("20101115"));
System.Diagnostics.Debug.WriteLine(teststring.CompareTo("20101116"));

実行結果:
1
0
-1

また
string teststring = "20101115";
System.Diagnostics.Debug.WriteLine("20101113".CompareTo(teststring));
System.Diagnostics.Debug.WriteLine("20101114".CompareTo(teststring));
System.Diagnostics.Debug.WriteLine("20101115".CompareTo(teststring));
System.Diagnostics.Debug.WriteLine("20101116".CompareTo(teststring));
System.Diagnostics.Debug.WriteLine("20101117".CompareTo(teststring));

実行結果:
-1
-1
0
1
1

2010年11月10日水曜日

asp.net mvc2 controller attributeサンプル

asp.net mvc2フレームワークのコントローラー属性を定義するサンプルです。

ShowMessageAttribute.cs
namespace MvcApplicationEmpty.Attributes
{
    public class ShowMessageAttribute : ActionFilterAttribute
    {
        public string Message { get; set; }

        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //base.OnActionExecuting(filterContext);
            filterContext.HttpContext.Response.Write("[OnActionExecuting " + Message + "]");
        }
        public override void OnActionExecuted(ActionExecutedContext filterContext)
        {
            //base.OnActionExecuted(filterContext);
            filterContext.HttpContext.Response.Write("[OnActionExecuted " + Message + "]");
        }
        public override void OnResultExecuting(ResultExecutingContext filterContext)
        {
            //base.OnResultExecuting(filterContext);
            filterContext.HttpContext.Response.Write("[OnResultExecuting " + Message + "]");
        }
        public override void OnResultExecuted(ResultExecutedContext filterContext)
        {
            //base.OnResultExecuted(filterContext);
            filterContext.HttpContext.Response.Write("[OnResultExecuted " + Message + "]");
        }
    }
}

asp.net mvc複数ボタンの処理

asp.net mvcフレームワークのformに複数のSubmitボタンを配置して、押したボタン情報のみサーバーに送信する処理を説明します。

①まずViewModelにCmdプロパティを定義する。
public string Cmd { get; set; }

②画面にSubmitボタンを配置する。
<button name="Cmd" value="btn1">確定1</button>
<button name="Cmd" value="btn2">確定2</button>

③コントローラーにCmd引数を判定して、ボタン処理を振り分ける。
[HttpPost]
public ViewResult DoLink2(GuestResponse pobjGuestResponse)
{
    switch (pobjGuestResponse.Cmd)
    {
        case "btn1":
            break;
        case "btn2":
            break;
    }
...
}

asp.net mvc2メモ

参照用ソースのメモです。
1、Controllersフォルダにコントローラーを作る
2、Viewsフォルダにコントローラーごとにフォルダを作って、下にコントローラーメッソド(Action)ごとにビューページを作る
3、Global.asax.csにデフォールトページ或はコントローラーを指定する

2010年11月9日火曜日

jQuery ajaxサンプル

jQuery ajax関数のサンプルをメモします。

ソース:
<script type="text/javascript">
    $(function () {
        $("#btn01").click(function () {
            $.ajax(
                {
                    async: false,
                    global: false,
                    ifModified:false,
                    url: "/txt/txt1.txt",
                    cache: false,
                    beforeSend: function () {
                        $("#div01").append("<hr/>");
                    },
                    dataFilter: function(data, type){
                        return "<b>" + data + "</b>";
                    },
                    success: function (msg, textStatus) {
                        $("#div01").append(msg + "<br/>");
                    },
                    error: function(xhrobj, status, errorEx){
                        $("#div01").append(status + "<br/>");
                    },
                    complete: function (xhrobj, textStatus) {
                        $("#div01").append(textStatus + "(complete)<hr/>");
                    }
                }
            );
        });

        $("#btn02").click(function () {
            $.ajax(
                {
                    type: "post",
                    url: "/Home/AjaxTest",
                    cache:false,
                    dataType: "text", // xml, html, script, json, jsonp, text
                    data:
                    { 
                        data: "あいうえお",
                        data1: ["aaa", "bbb"],
                    },
                    success: function (msg, textStatus) {
                        $("#div02").append("success:<br/>");
                        $("#div02").append(msg + "<br/>");
                        var obj = jQuery.parseJSON(msg);
                        $("#div02").append("obj.a=" + obj.a + ",obj.b=" + obj.b + "<br/>");
                    },
                }
            );
        });
    });
</script>

2010年11月8日月曜日

jQuery :parentフィルター

:parentはセレクター内容の親タグにマッチします。


文字1
文字2
文字3

jQuery :hasフィルター

:hasは引数で指定されたセレクターにマッチする少なくとも一つのタグを含む対象に絞り込みます。


文字1
文字2
文字3
文字4

jQuery :emptyフィルター

:emptyはサブ要素を持たない親タグを絞り込みます。


文字1
文字2
文字4

jQuery :containsフィルター

引数の文字列を含むタグにマッチします。


文字1
文字2
文字3
文字4

2010年11月5日金曜日

jQuery paramを利用して、URLパラメーターを作成する

jQuery内部関数paramを利用して、フォーム内容をURLパラメータに簡単に纏めれる。

uid:
pwd:

2010年11月4日木曜日

jQuery queue動画サンプル

jQuery queueを利用して、もう一つのサンプルを紹介します。


jQuery queueを利用して、アニメーションを作成する

jQuery queueを利用して、DOMオブジェクトの属性を動的に変更して、動画効果を実現する。


jQuery dataの利用

jQuery dataオブジェクトを利用するサンプルです。

ボタンを押してください

jQueryオブジェクトをDOMオブジェクトとして操作する

$("")でマッチした要素をDOMオブジェクトで操作するサンプルです。

何かの文字内容

jQuery.eachで配列を列挙する

jQuery.each利用方法を紹介します。


SqlEndia 2.6 ダウンロードURL

データベースクライアントツールSqlEndia最新版2.6をここにリリースします、下記のURLからごダウンロードください。

SqlEndia2.6

url:
http://www.sqlendia.com/download/sqlendia2.6.zip

jQueryで逆順に並び替える

reverseメソッドを利用して、画面表示内容を並び替えます。


  • 分類1


  • 分類2


  • 分類3


  • 分類4


  • 分類5



  • jQuery文字追加

    jQueryの内容追加処理を紹介します。



    基本内容



    jQueryでcheckboxとradioを一括設定する

    jQueryセレクタでcheckboxとradioを一括選定できて、設定することもできます。



    jQuery css動画

    jQueryのanimateメソッドを利用して、css属性を動的に設定することができます。


    jQueryマジック

    2010年11月2日火曜日

    jQuery each使用

    jQuery eachロープ処理のサンプルです。



    PS:
    ループ内にreturn falseを書けば、処理を中断します。

    jQuery ボタン配列のクリック処理

    画面にいくつかのボタンを配置して、クリックイベントを一括に処理するサンプルです。





    (Internet Explorer確認済み)

    jQuery css一連設定

    jQuery cssメソッドで一連のCSS内容を設定するサンプルです。


    jQuery formサンプル

    jQuery Ajax Formサンプルを紹介します。

    このサンプルで、クライアント側でファイルをアップロードすると、画面サブミットせずにアップロードできます。
    <script src="jquery-1.4.3.min.js" type="text/javascript"></script>
    <script src="jquery.form.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {
            var options = {
                //target:   // target element(s) to be updated with server response
                success: function (responseText, statusText, xhr, $form) {
                    alert("サブミット完了しました。[" + response + "]");
                }
                , iframe: true
            };
            $('#uploadFileForm').ajaxForm(options);
        });
    <form id="uploadFileForm" runat="server" enctype = "multipart/form-data">
    <div>
        <input type="file" id="fileUpload1" name="fileUpload"/>
        <asp:Button ID="Button1" runat="server" Text="アップロード"/>
    </div>
    </form>
    

    Google jQueryライブラリの利用方法

    Google社提供しているJavascriptライブラリの利用方法を紹介します。

    このトピックでjQueryの利用サンプルを説明します。

    【Google API Test】ボタンを押して、Google jQueryライブラリを経由して【Hello】メッセージを出します。


    2010年10月31日日曜日

    WCF勉強開始

    Windows Communication Foundation(WCF)は、.NET Framework 3.0 における新しい通信サブシステムであり、アプリケーション同士をネットワーク経由で接続する仕組みである。Indigo とも呼ばれていた。WCF アプリケーションは .NET でサポートされている言語なら、どの言語でも開発できる。

    IT人としてこのWCF技術を勉強しないと、時代に遅れるでしょう。


    2010年10月23日土曜日

    NEW! The HP Slate 500 for Businesses

    iPadライバルでWindows7を採用するHP Slate500は登場しました、プレビューをご覧ください。

    2010年10月22日金曜日

    htcサンプル

    ウェブアプリを作る技術の一つ、htcサンプルを紹介します。

    まずCSSファイルの下記のように記述する
    input, tr
    {
     behavior:url(koma.htc);
    }
    

    koma.htc内容:
    <public:attach event="onfocus" onevent="koma_onfocus();" />
    <public:attach event="onblur" onevent="koma_onblur();" />
    
    <script language="javascript">
    function setBgColor(vColor)
    {
     if (window.event.srcElement.type != null
     && window.event.srcElement.readOnly != null
     )
     {
      if (window.event.srcElement.type == 'text'
      && window.event.srcElement.readOnly != true
      )
      {
       window.event.srcElement.style.backgroundColor = vColor;
      }
     }
    }
    
    function koma_onfocus()
    {
     setBgColor('lightyellow');
    }
    
    function koma_onblur()
    {
     setBgColor('');
    }
    </script>
    

    2010年10月15日金曜日

    html5 web workersサンプル

    html5からマルチスレッドAPIも提供しています、これはWeb Workersです。これを利用して、画面側で動的に内容表示や大量計算など処理はよりより実現可能になります。

    サンプル:
    http://html5next.appspot.com/webworkers.html

    ps3 backup ftpユーザー

    PS3のFTPサーバーソフトはps3 ftp serverとOpen Managerは二つあります。この二つのアプリのFTPユーザーネームは違いますので、ここにメモします。

    ps3 ftp server:
    FTPD12345

    Open Manager:
    OMAN46756

    ですが…

    2010年10月13日水曜日

    html5 form紹介

    html5仕様からたくさんのformタグが追加されました、このトピックで紹介します。

    まずは現時点で各ブラウザーのサポート状況をまとめておきます、下記のリストをご覧ください。
    ブラウザー 説明
    Chrome 5.0からemail,number,tel,url,search,rangeとバリデーション一部をサポート開始
    Firefox 4.0からサポート予定
    IE 9.0から?
    Opera ほとんどサポートしている
    Safari 4.0からemail,number,tel,url,search,rangeとバリデーション一部を、サマートフォンのほうがさらによりよくサポートする

    サンプル:
    http://html5next.appspot.com/html5_form.html

    2010年10月12日火曜日

    これはWindows Phone 7 か?

    マイクロソフト社は最新スマートフォンWindows Phone 7を発表しました、機能面はとりあえずほっとおいて、デザインはなんとなくiPhoneより下手な感じです、皆さんもそうと思いませんか?



    今後マイクロソフトさんは製品の見栄えに凝らないと危ない将来とは。。。

    2010年10月8日金曜日

    ps3 jb情報サイト

    このようなサイトはいつか閉鎖されるか分からないですけど、メモとして記録します。



    http://www.ps3break.com/
    http://wiki.psfreedom.com/wiki/Main_Page
    http://www.ps3yes.com/English/
    http://greenpois0n.com/
    http://psfreedom.com/
    http://psgroove.com/

    これらのサイトに載っている内容は何パーセント信じれるかもわかりません。

    2010年10月7日木曜日

    iPad 2来年発売か?

    ネットでiPad 2のような写真一枚を見つけた、来年に発売始まるみたいです。

    この写真によると、見た目はiPad1よりいい感じと思いますが、これが本当のiPad2の写真ですか?皆一緒に判断しましょう。

    HTML5 XMLHttpRequest Level 2 Sample

    いろいろ試してみたんですが、やはりだめです…:'(

    html5仕様によりHTML5 XMLHttpRequest Level 2 APIがサポートされるはずですが、自分で作ったサンプルはやはりだめだった。マルチドメインにアクセス処理は現時点でまだサポートされていないでしょうか?

    下記のサンプルではGoogle或はYahooサイトを取得できるはずですが、何回も試したら、エラー0を戻されました、これはどんなエラーでしょうか?自分の勉強不足でエラーの原因が分かりません。;(

    サンプル:
    http://html5next.appspot.com/xmlhttprequest.html

    ご存知の方はいらっしゃったら教えていただけませんでしょうか?

    HTML5 XMLHttpRequest Level 2

    HTML5仕様もAjax機能を増強しています、従来のAjax処理を実装するのはXMLHttpRequestオブジェクトを利用するのは一般ですけど、XMLHttpRequestオブジェクトは一つのドメインしかアクセスできないため、システム開発には不便だとよく言われています。XMLHttpRequest Level2からはマルチドメインにアクセスできることになりました、下記のイメージのようにアプリケーション仕組みを築くことも簡単に実装可能です。



    なお、現在はXMLHttpRequest Level 2 APIをサポートしているブラウザーはわずかですが、将来はどんどん増えるでしょう。

    ブラウザー 詳細
    Chrome 2.0以上
    Firefox 3.5以上
    Microsoft IE Not
    Opera Not
    Safari 4.0以上

    2010年10月6日水曜日

    html5 Communication APIsを通じてドキュメント間の通信機能を実現

     この前はウェブページ間のデータ交換などの処理はほとんどURLパラメータや、openerなどの方式で実装されるんですが、HTML5から新しい通信APIが提供されました、これはCommunication APIsとなります。

    サンプル:
    http://html5next.appspot.com/postMessagePortal.html

    このサンプルはホストページとIFrameページ間のデータ交換処理を示しています。

    HTML5 Geolocation Sample紹介

    このサンプルはHTML5 Geolocation APIを利用してクライアント位置情報を取得して、Google地図に表示するのです。(クライアント位置取得のはユーザー許可が必要です。)

    サンプル:
    http://html5next.appspot.com/geolocation1.html

    2010年10月5日火曜日

    HTML5 Geolocationの仕組み

    html5仕様でクライアント位置を取得する機能も定められています、これはHTML5 Geolocation APIです、現時点ではGeolocation仕様グループもW3Cから分離されてたみたいです、詳細のことはまだ分かりません。

    このトピックでHTML5 Geolocationの仕組みを紹介しようとします、まずは下記のイメージをご覧ください。


    解説:
    ①ユーザーはブラウザーでロケーション機能のあるページにアクセスする
    ②ロケーション機能関数より、クライアント位置取得リクエストを実行する。この際に、ブラウザーから何かの提示が表示され、ユーザーに確認していただくのは普通です。(【はい】とします)
    ③ブラウザーはクライアント設備(iPhoneなど)から位置情報を収集する。(IPアドレス、GPS座標など)
    ④ブラウザーから収集した情報を信頼しているロケーションサービスに送信し、さらに詳しい位置情報を取得する。

    html5 audio制御サンプル

    html5でaudioタグを利用してオーディオファイルを再生することも可能です。

    サンプル:
    http://html5next.appspot.com/video2.html

    iPad向けアプリ開発の方にSafariアプリの開発をお勧めします。

     自分もそうするつもりです。iPhone/iPadよりはAndroidアプリの開発がオープンであると思われてる方はたくさんいるでしょう。Android SDKを利用して、開発したアプリをすぐ実機に導入でき、利用することに対し、iPhone/iPadアプリはアップルストアーにアップロードしないと利用できないです。ですから、iPhone/iPad開発はHTML5+Javascriptを利用してSafariアプリを開発するほうがましです。自分もそうするつもりです。

    Safari開発リファレンス:
    http://developer.apple.com/library/safari/navigation/

    PS:
    html5のすばらしさはFlashに劣らないように存在します。

    html5 audio videoの基本

    html4よりhtml5はマルチメディアへのサポートは強くなりました、現時点のhtml5仕様によりサポートするメディアファイルのフォーマットは下記のようにあります。

    ・ Audio Video Interleave (.avi)
    ・ Flash Video (.flv)
    ・ MPEG 4 (.mp4)
    ・ Matroska (.mkv)
    ・ Ogg (.ogv)

    コーダー/デコーダー(coders/decoders)
    オーディオ:
    ・ AAC
    ・ MPEG-3
    ・ Ogg Vorbis

    ビデオ:
    ・ H.264
    ・ VP8
    ・ Ogg Theora

    となります。

    なお、html5サポートしていない機能も紹介します。
    ・ ストリームオーディオとビデオ(Flashオンライン放送などの機能)
    ・ クロースオリジン(cross-origin)リソースしか利用できない
    ・ フルスクリーンサポートしない(ブラウザー機能を利用すれば可能です)
    ・ 仕様の一部はまだ策定中

    au Android OS携帯発表

     au社はAndroid OSを採用する最新携帯IS03を発表しました、2010年11月に発売開始という予定です。この製品の仕様を少し調査しました、Android OSを日本ローカル化した携帯といっても過言ではないでしょう。自分の驚いたところは、IS03はGoogle Marketにつながらずに、自分のauマーケットを通してアプリを利用する予定です。このやり方は日本特有なものでしょうか?先日中国製Android製品(A81E)も購入しましたので、この製品は問題なくGoogle Marketに利用できます、何でほとんどの日本Android製品は自分のメーカマーケットを開設することになるでしょうか?今後Android提供者のGoogle社の位置づけはどうなるんでしょうか?

    PS:
     年末に発売する予定のシャープ電子書籍端末(GALAPAGOS)も自分のマーケットにしか使えないみたいです。

    パブリッククラウドとプライベートクラウド

     最近クラウドサービスの話題は沸いてきました、採用検討中の企業は少なくないようですが、既存システムとどのように連携するかは私今までずっと持っている質問です。私の認識により、クラウドサービスというのはインターネットを通じてあるISPから提供されるウェブサービスの一種であることで、ちょっと知識不足かなと感じました。実はクラウドサービスというのはパブリッククラウドとプライベートクラウドが二つあります。自分が今まで考えているのはパブリッククラウドです、プライベートクラウドは全然知りませんでした。

     この二種類のサービスの使い分けは、このように考えても大丈夫でしょう。中小企業に対してはパブリッククラウドを利用して社内情報管理などの手間の作業は簡単に実現できる代わりに、大手企業に対しては、プライベートクラウドサービスを通じて、既存システムと統合して一括に管理できるようになるではないかと認識しました。

    パブリッククラウド:
    Google App Engine
    Microsoft Windows Azure(アズレではなく、アジュールと呼ぶ)

    プライベートクラウド:
    Vblockなど

    2010年10月4日月曜日

    Android Marketの一つ【Camangi】

    AndroidマーケットはGoogleだけではなく、いろんなメーカから提供されています、このトピックに自分の収集したAndroid Market情報を公開します。

    Camangi
    http://www.camangimarket.com/index_jp.html

    javascript数値関数

    javascriptで数値を整理する関数もあります、ここに小数点処理関数を紹介します。

    切り上げ:Math.ceil(9.8);
    切り捨て:Math.floor(9.8);
    四捨五入:Math.round(9.8);

    結果確認:



    html5 canvas座標系の変換

    html5 canvasのcontextオブジェクトのsave()とrestore()メソッドを使って座標系変換処理を示します。

    使い関数:
    context.save();
    context.translate(100, 0);
    ...
    context.restore();

    サンプル:
    http://html5next.appspot.com/canvas4.html

    html5 image表示

    html5で画像イメージを表示する方法を紹介します。

    このサンプルではイメージリソースをロードしたら表示するようにするサンプルです。

    サンプル:
    http://html5next.appspot.com/image1.html

    html5曲線の描画

    html5で曲線を描画する方法を紹介します。

    新しい知識はないので、ただCanvas描画APIの紹介です。

    サンプル:
    http://html5next.appspot.com/curves1.html

    html5 web storage技術

    html5仕様に定められるローカルストレージ技術は二種類に分かられます。

    ①localStorage
     cookieのように利用できるんですが、切り期限などは設定しません。データ保存量も従来のcookieより多いで、パフォーマンス面もよいです。
    ②sessionStorage
     ブラウザーを閉じるまで存在するローカル保存ストレージです。

    サンプル:
    http://html5next.appspot.com/storage1.html

    Androidシステムを備えたタブレットはやってきた

    先日ネットで注文したAndroid OSの中国製A81Eタブレットは先週土曜日に到着しました、日本製品のようにじっくり作られるものではないですけど、自分の望む機能はほとんどあるので、納得できる。



    Androidシステムはどんなものかと知りたいため、このデバイスを注文した、自分でAndroidアプリを開発できるかなと思って、いろいろ調査して、この中国製A81Eを決めました、なんとiPhone 3Gと同じなCPU(A8)を使ってるので、操作性はよりよいと思いましたが、やっぱりiPhone 3Gのようにスムーズに動作できなかった。どこのせいか分からなくて、A81E本体の設計は悪いか、それとも、Androidシステムは遅いかは本当に分からないです。

    驚いたところもあります。Androidアプリのインストールはすごく簡単です、ブラウザーから【apk】ファイルをminiSDカードにダウンロードして、Apk explorerで実行してすぐインストールできます、その便利性は予想外です。

    Androidシステムは今まだ勉強中で、いろいろ使ってみて、今後もこの製品の使用レポートを報告します。

    2010年10月1日金曜日

    html5 canvasタグ描画サンプル②

    html5 canvasの基本利用方法②です、canvasタグのpathとstrokeを利用してイメージを描画する

    サンプル:
    http://html5next.appspot.com/canvas2.html

    w3schoolsリソース

    ウェブサイト関連技術を一括に網羅している有名なサイトです。

    英語:
    http://www.w3schools.com/

    中国語:
    http://www.w3school.com.cn/

    残念ですが、日本語サイトは見つかりませんでした。

    html5 video再生サンプル

    現時点のHTML5仕様では二種類のビデオが再生可能となります。

      IE 8 Firefox 3.5 Opera 10.5 Chrome 3.0 Safari 3.0
    Ogg    
    MPEG 4      

    MPEG4再生サンプル:(ChromeSafariのみ見れます)
    http://html5next.appspot.com/video1.html

    2010年9月30日木曜日

    html5 canvasタグ描画サンプル①

    html5 canvasタグを利用して、簡単なイメージを描画する覚書です。

    サンプル:
    http://html5next.appspot.com/canvas1.html

    ソース:
    <canvas id="cvs01" height="250" width="250" style="border:1px solid black;">
    </canvas>
    <script type="text/javascript">
    function drawCanvas()
    {
     var objCanvas = document.getElementById("cvs01");
     var objContext = objCanvas.getContext("2d");
    
     // Create a path in absolute coordinates 
        objContext.beginPath(); 
        objContext.moveTo(70, 140); 
        objContext.lineTo(140, 70); 
     
        // Stroke the line onto the canvas
        objContext.strokeStyle = "red"; 
        objContext.stroke(); 
    }
    drawCanvas();
    </script>
    

    あなたのブラウザーはHTML5仕様をサポートしていますか?

    下記のURLにアクセスして、判定してください。

    http://html5next.appspot.com/checkbrowserttml5support.html

    Android SDK

    グーグルAndroid OSを採用したタブレットを予約しました、週末ごろに届けるかな

    携帯、タブレット開発を進めるため、iOSやAndroidの開発便利性を調査するつもりで、Android製品を手にも入れたいです。

    Android開発環境:
    http://developer.android.com/sdk/index.html

    Android開発入門参考:
    http://itpro.nikkeibp.co.jp/article/COLUMN/20090708/333496/?ST=android-dev

    HTTPヘッダー内容を全部表示する方法(jsp)

    クライアントブラウザー情報などを判断するため、HTTPヘッダーの内容を読み取る必要です。

    サンプル:
    http://html5next.appspot.com/cb.jsp

    ソース:
    <%@ page language="java" contentType="text/html; charset=utf-8"
     pageEncoding="utf-8" import="java.util.*"%>
    <%
     Enumeration objEnm = request.getHeaderNames();
     while (objEnm.hasMoreElements()) {
      String strKey = (String) (objEnm.nextElement());
      out.println(strKey + "=" + request.getHeader(strKey) + "<br/>");
     }
    %>
    

    2010年9月29日水曜日

    Mac OSにWindowsをインストールする方法

    Boot Campのインストールと設定ガイドのダウンロードURLを共有します。

    http://manuals.info.apple.com/ja_JP/Boot_Camp_Install-Setup_J.pdf

    html5+javascriptの初体験

    html5ドキュメント内容を処理するため、javascriptが必要不可欠です、このトピックでこの二つの技術の統合処理を紹介します。

    サンプル:
    http://html5next.appspot.com/html5js.html

    html5 sectionサンプル

    html5ページにセクションタグによりいつくかの部分を分けることができます。

    例えば:
    header,footer,section,article,aside,nav

    サンプル:
    http://html5next.appspot.com/section.html

    html5コンテンツ分類

    コンテンツ分類 説明
    Embedded 文字以外のリソースをインポートする、例えば:audio,video,canvas,image
    Flow ページ内容記述用のタグ、例えば:form,h1,table,div
    Heading ヘッダー記述用、例えば:h1,hgroup
    Interactive 利用者との交互用、例えば:input,button,textarea
    Metadata ページ行為などの記述用、例えば:meta,script,style,title
    Phrasing 文字表示用、例えば:mark,sub,sup
    Sectioning ページ領域分割用、例えば:article,aside,title

    全てのタグはCSSスタイルが通用できます。

    html5ページ記述の変更点

    ウェブページの【DOCTYPE】と【Character Set】の記述方法は分かりました。

    【DOCTYPE】

    html4:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

    html5:
    <!DOCTYPE html>

    【Character Set】

    html4:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

    html5:
    <meta charset="utf-8">

    html5の特徴

    従来のhtml4よりhtml5スペックの特徴を紹介します。(現時点ではhtml5スペックはまだ策定中です)

    html5の特徴:
    • Canvas (2D and 3D)
    • Channel messaging
    • Cross-document messaging
    • Geolocation
    • MathML
    • Microdata
    • Server-Sent events
    • Scalable Vector Graphics (SVG)
    • WebSocket API and protocol
    • Web origin concept
    • Web storage
    • Web SQL database
    • Web Workers
    • XMLHttpRequest Level 2
    

    これから少しずつhtml5の奥義を探りたいと思います。

    ps3もjailbreakされたか?

    ソニーゲーム機PS3もハックされたみたいで、最近どこかのサイトからこのニュースを見ました、はっきり覚えてないですけど、【PS3 break】というUSBデバイスでハックする可能です。ただゲームファイルをバックアップする機能なので、完全にハックされたとは言えないでしょう。

    PS:
    ハックされたよりは脱獄されたほうが正しいでしょうかね?

    2010年9月28日火曜日

    HTML5サンプル第一弾

    簡単なHTML5サンプルをデモします。

    http://html5next.appspot.com/

    HTML5の面白さをちゃんと分かりました、今後勉強します。

    万能メディアファイル再生ソフト-K-Lite Codec Pack

    このソフト一本を持ってるなら、どんなビデオ、音楽でも再生可能になります、本当にすばらしいソフトなので、紹介します。

    K-Lite Codec Pack
    http://www.codecguide.com/

    シャープのタブレットGALAPAGOSが発表され

    発表された仕様、機能などから見れば、以下の問題点があると思います。

    問題点:
    ①シャープの電子ブックストアしか使えない
    ②Android OSを採用したのに、Android Marketをサポートしない可能性がある
    ③値段はまだ発表されてないけど、Amazonキンドル3のような低価格で提供する見通しはない
    ④本体サイズは16:9型でありそうで、僕のかばんはそのサイズにあわない(iPadのようなサイズだったら問題ないですけど)

    この製品は本当に大丈夫でしょうか?

    結論:
    ①普通のユーザー(作者)にとって自作品を電子ブックで発表できて儲かれるなら、悪くないです
    ②5.5サイズのほうは1万円ほどであれば、買ってみるつもり

    2010年9月27日月曜日

    クラウドサービスは大丈夫でしょうか?

     自分はグーグル社のクラウドサービスGoogle App Engine(以下はGAE)を利用したことがあります、このサービスを通してアプリケーションの開発と配布することはすごく簡単で済みます、ハードウェアなども一切に気にせず、単純に一行のコマンドを実行してアプリを更新することが可能です(Eclipseプラグインからも簡単にリリースできます)。他社のクラウドサービスも同じ感じと思います。けど、このような透明的なクラウドサービスを利用したら、既存業務システムのデータの移行は同かなと思います、その作業は簡単に実施するのではないでしょう。例えば、A社のクラウドサービスを採用したら、既存の業務データをA社のデータベースクラウドサービスに導入しないと、システムの連動性もできないでしょう。新規システムの場合(既存システムデータはほとんど無視の場合)、クラウドサービスを採用すれば悪くないですけど…

    結論:
     クラウドサービスを採用する前に、まず既存業務システムデータの移行範囲を検討すべきです。

    iPhone/iPad開発にはObjCかHTML5か

     最近iPhone/iPad開発に力を入れようとしますが、採用技術のほうにちょっと迷っています。困っているところはObjCを勉強するか、それともHTML5+Javascriptを勉強するかのことです。

     ObjCはアップル系のネイティブ開発言語なので、これができたら、iPhone/iPadというか、Macアプリまでも開発可能になりますが、アプリ配布はアップルストーに限定されているため、パッケージ更新などはすごく不便と感じています。これに対して、HTML5は新しいウェブページ標準なので、開発したアプリはウェブサーバーに配布しておくだけで、クライアントのウェブブラウザーから直接にアクセスする可能です、なお、HTML5の新標準によりアプリデータはローカルセーブ(オフライン)も可能です。普通の企業アプリ開発には十分だと考えますが、華やかなゲームなどの開発には向いてません。企業アプリケーション開発は、iPhone/iPad限定のクライアントであれば、HTTPリクエストのヘッダにフィールドを判断して、Safari以外のブラウザーを拒否すれば、制御可能になります。

    結論:
     操作性や見栄えなどに凝るアプリ(ゲーム)はObjCがお勧めで、企業の業務アプリケーション(閲覧処理は80%を占めるMISシステムなど)はHTML5が優先としていいじゃないでしょうか。

    Sql切り上げ処理

    Sql関数の切り上げ処理をメモします。

    select TRUNC(1000 / 1000 + 0.999,0) from dual --結果:1
    select TRUNC(1001 / 1000 + 0.999,0) from dual --結果:2
    select TRUNC(1103 / 1000 + 0.999,0) from dual --結果:2
    select TRUNC(1203 / 1000 + 0.999,0) from dual --結果:2
    select TRUNC(1303 / 1000 + 0.999,0) from dual --結果:2
    select TRUNC(1403 / 1000 + 0.999,0) from dual --結果:2
    select TRUNC(1503 / 1000 + 0.999,0) from dual --結果:2
    select TRUNC(1603 / 1000 + 0.999,0) from dual --結果:2
    select TRUNC(1703 / 1000 + 0.999,0) from dual --結果:2
    select TRUNC(1803 / 1000 + 0.999,0) from dual --結果:2
    select TRUNC(1903 / 1000 + 0.999,0) from dual --結果:2
    select TRUNC(1999 / 1000 + 0.999,0) from dual --結果:2

    PS:
    TRUNC関数は切り上げ関数ではなく、切捨て関数です。

    2010年9月15日水曜日

    Objective-C 2.0プログラミング言語

    最近ずっとObjective-Cを勉強しています、この言語の面白さも分かるようになりました。正直言うと、ObjCの勉強は始めたときは、『何だこれ』、『変な言語』だと思ったことがありますけど、今は全然慣れました、変な言語というより、悪くない言語だと考え直しました。

    アップルデベロッパーサイトからダウンロードしたObjC勉強ドキュメントを学んでいましたので、本当に役に立ちました。

    このURLを紹介します。
    http://developer.apple.com/jp/documentation/cocoa/conceptual/objectivec/ObjC.pdf

    2010年9月14日火曜日

    Cコンパイルの過程

    Cプログラムをコンパイルする四つの過程を紹介します。

    ①予備処理→②コンパイル→③アセンブラ→④リンク

    具体例:hello.c
    #include <stdio.h>
    int main( int argc, char *argv[] )
    {
        printf( "Hello World!\n" );
       
        return 0;
    }

    ①予備処理
    gcc -E hello.c -o hello.i

    ②コンパイル
    gcc -S hello.i -o hello.s

    ③アセンブラ
    gcc -c hello.s -o hello.o

    ④リンク
    gcc hello.o -o hello.exe

    2010年9月13日月曜日

    Windowsシステム整理ツール紹介

    最近家のパソコンはすごく遅くなった、余計なソフトはたくさん入ってる原因だと思いますので、先週週末に一気に整理しました、役にたったツールを紹介します。

    TweakNow RegCleaner
    URL:http://www.tweaknow.com/

    Revo Uninstaller
    URL:http://www.revouninstaller.com/revo_uninstaller_free_download.html

    ダンスか?武道か?

    先日見つかった面白い写真を公開します。

    2010年9月11日土曜日

    Macから初めての投稿

    先月に注文したアップルマックミニはついに到着しました、本当にいいデザインできれいなOSです。

    これからObjective-Cの勉強は続いていくため、しばらくマイクロソフトWindowsOSから離れてMacOSに専攻することにしました。

    よし、頑張ろう。。。俺の子のため

    2010年9月10日金曜日

    Javascriptで月数はマイナス1関数

    JavascriptでDateオブジェクトを利用して「-1」処理を実装する関数です。

    <script language="javascript">
    function Minus1Month(dteYM)
    {
        var strRet = "";

        if (dteYM.length == 6)
        {
            var strYear = dteYM.substring(0,4);
            var strMonth = dteYM.substring(4) - 1;

            var objDate = null;
            if (strMonth == 0)
            {
                objDate = new Date(strYear - 1, 11, 1); // 月は11ですけど、実は12月です
            }
            else
                objDate = new Date(strYear, strMonth - 1, 1);

            strYear = objDate.getYear();
            strMonth = objDate.getMonth() + 1;
           
            if (strMonth.toString().length == 1)
                strRet = strYear + "0" + strMonth;
            else
                strRet = strYear + "" + strMonth;
        }
       
        return strRet;
    }

    alert(Minus1Month("201001"));
    </script>

    2010年9月8日水曜日

    僕の子

    9月から僕はパパになりました、4.5キロの赤ちゃんなので、でかすぎるかな

    2010年9月7日火曜日

    Javascriptで数値型を判定する

    function txtAge_keydown()
    {
        if (
            event.keyCode==8 || //バックスペース
            event.keyCode==9 || //タブキー
            event.keyCode==46 || //deleteキー
            (37<=event.keyCode && event.keyCode<=40) || //矢印キー
            event.keyCode==189 || //マイナス「-」
            event.keyCode==109 || //テンキーのマイナス「-」
            //数字判定
            (48<=event.keyCode && event.keyCode<=57) || //テンキーじゃない方の数字
            (96<=event.keyCode && event.keyCode<=105) //テンキーの数字
        )
            return true;
        else
            return false;
    }

    全てのコントロールのカーソル設定(WebPage)

    Ajaxコーディングでは、ページがサブミットしないため、カーソルの制御などが必要となるので、一つのコツとしてメモします。

    function setWaitCursor()
    {
        var i,origLength;
        origLength = document.all.length;
        for (i = 0; i < origLength; i++)
        {
            document.all[i].style.cursor = "wait";
        }
    }
    function resetCursor()
    {
        var i,origLength;
        origLength = document.all.length;
        for (i = 0; i < origLength; i++)
        {
            document.all[i].style.cursor = "";
        }
    }

    2010年9月5日日曜日

    8月30日に注文したMac miniはまだ届いてない:(

    8月30日にAppleストアで注文したMac miniは今日までまだ届いていません、先ヤマトクロネコサイトに調べてみると、荷物配達情報がわかりましたが、明日に届けるようですけど。

    2010年9月3日金曜日

    WindowsでObjectiveCコンパイル環境を構築する(GNUstep)

    GNUstepでMacOSX開発に近い環境を構築することもできます。

    オフィシャル:
    http://www.gnustep.org/

    必要なファイル:
    gnustep-msys-system-0.25.1-setup.exe
    gnustep-core-0.25.0-setup.exe
    gnustep-devel-1.1.1-setup.exe

    インストール手順:
    ①システムファイルを
     gnustep-msys-system-0.25.1-setup.exe
    ②ライブラリファイルを
     gnustep-core-0.25.0-setup.exe
    ③開発ツール(GCC)を
     gnustep-devel-1.1.1-setup.exe

    コンパイルコマンド:
    gcc -o main main.m -I c:/GNUstep/GNUstep/System/Library/Headers -L c:/GNUstep/GNUstep/System/Library/Libraries -lobjc -lgnustep-base -fconstant-string-class=NSConstantString -enable-auto-import

    WindowsでObjectiveCコンパイル環境を構築する(GNU)

    必要ソフト:
    MinGW
    ObjectiveC Compiler(MinGWインストールに既に入ってるけれども、インストールしたら入ってないみたいです、バグ?だから、単独にObjectiveCコンパイラーをダウンロードする必要です。)

    手順:(重要)
    ①mingwインストール
    mingw-get-inst-20100831.exe

    ②パス設定:
    PATH=C:\MinGW;C:\MinGW\msys\1.0\bin;...

    ③gcc-objc-4.5.0_20100311-2-mingw32-bin.tar.lzmaをC:\MinGWにコピーする

    ④DOSに入り、下記のコマンドを実行する
    cd C:\MinGW
    tar xvf gcc-objc-4.5.0_20100311-2-mingw32-bin.tar.lzma --lzma

    ⑤完了
    注意:デフォルトはObjectiveCファイルの拡張子が「m」ではないとコンパイルエラーです。

    ファイルリスト:
    mingw-get-inst-20100831.exe
    gcc-objc-4.5.0_20100311-2-mingw32-bin.tar.lzma

    2010年9月2日木曜日

    ObjectiveC先の一歩

    iPhone/iPadアプリの開発を勉強しようとするため、前日にアップルストアでMac miniを注文しましたが、現在まだ届いていません。このうちに、まずObjectiveC開発環境をWindowsプラットフォームに構築するつもりです。

    必要なソフト:
    Cygwin

    オフィシャルサイト:
    http://cygwin.com/

    インストールビデオ:(参考まで)
    http://www.youtube.com/watch?v=tBRhjEDuck0

    PS:
    Cygwinのインストールする際に、GCCコンパイルパケッジはあるかどうかを確認する必要があるみたいです。

    其の他:
    Dev-C++
    http://www.bloodshed.net

    2010年8月30日月曜日

    WindowsとOfficeのバージョンと保守サポート期間

    2010年8月26日木曜日

    UpdatePanel使用コツ

    ①クライアントのjavascriptを実行する
       private void RunClientScript(string key, string content)
       {
         ScriptManager.RegisterClientScriptBlock(UpdatePanelGridView, typeof(UpdatePanel), key, content, true);
       }

    ②PageLoadイベントに非同期リクエストかどうかを判断する
      ScriptManager170.IsInAsyncPostBack

    2010年8月20日金曜日

    URLルート知識

    URLルート追加:
    routes.MapRoute(
        "Default",                                      // Route name
        "{controller}/{action}/{id}",                   // URL with parameters
        new { controller = "Home", action = "Index",    // Parameter defaults
              id = UrlParameter.Optional }
    );

    本来の書き方:
    Route myRoute = new Route("{controller}/{action}/{id}", new MvcRouteHandler())
    {
        Defaults = new RouteValueDictionary( new {
            controller = "Home", action = "Index", id = UrlParameter.Optional
        })
    };
    routes.Add("Default", myRoute);

    2010年8月19日木曜日

    lambda式サンプル

    C#3.0からlambda式文法が提供されました、ここでlambda式使用方法を紹介します。

    関数定義:
    private int test01(int p1, Func<int, int> func1)
    {
    return func1(p1);
    }
    この関数の第二引数は一つのint引数とint戻り値の関数式を指定しています。

    lambda文法使用例:
    int temp = 0;
    temp = test01(5, x => x * x); // 25
    temp = test01(5, x => x + x); // 10
    temp = test01(5, x => x - x); // 0

    2010年8月18日水曜日

    Ninject(IoC/DIコンテナ)

    Don't call me, I will call you.

    Ninject入門サンプル
    一、ログ出力インターフェースを宣言する
    1. public interface ILogger
    2. {
    3.     void Write(string message);
    4. }
    二、ログ出力2つのパターンを定義する
    1. public class FlatFileLogger : ILogger
    2. {
    3.     public void Write(string message)
    4.     {
    5.         Console.WriteLine(String.Format("Message:{0}", message));
    6.         Console.WriteLine("Target:FlatFile");
    7.     }
    8. }

    9. public class DatabaseLogger : ILogger
    10. {
    11.     public void Write(string message)
    12.     {
    13.         Console.WriteLine(String.Format("Message:{0}", message));
    14.         Console.WriteLine("Target:Database");
    15.     }
    16. }
    三、NinjectModuleを通じて、DI(Dependency Injection)を実現する
    1. internal class MyModule : Ninject.Modules.NinjectModule
    2. {
    3.     public override void Load()
    4.     {
    5.         Bind<ILogger>().To<FlatFileLogger>();
    6.         Bind<ILogger>().To<DatabaseLogger>();
    7.     }
    8. }
    四、利用方法
    1. private static IKernel kernel = new StandardKernel(new MyModule());
    2. static void Main(string[] args)
    3. {
    4.     ILogger logger = kernel.Get<ILogger>();
    5.     logger.Write("Bruce Say: Hello Ninject!");
    6.     Console.WriteLine("continues..");
    7.     Console.Read();
    8. }

    2010年8月17日火曜日

    Asp.Net MVC2必須技術のまとめ

    Ninject
    http://ninject.org/

    WatiN
    http://watin.sourceforge.net/

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

    オプション:(勉強したほうがいい)
    SpecFlow
    http://specflow.org/

    2010年8月16日月曜日

    iPhoneとiPadアプリ紹介サイト


    http://apptrackr.org/

    2010年8月11日水曜日

    Celtics-UBuntu

    urlエンコード(javascript)

    function button1_onclick() {
        text2.value = escape(text1.value);
        text2.value = encodeURI(text1.value);
        text2.value = encodeURIComponent(text1.value);
    }
    
    function button2_onclick() {
        text3.value = unescape(text2.value);
        text3.value = decodeURI(text2.value);
        text3.value = decodeURIComponent(text2.value);
    }

    2010年7月20日火曜日

    電話の取り次ぎ方

    普通の取次ぎ:
    「○○でございますね。ただいま代わりますので少々お待ちいただけますでしょうか」

    保留の時間
    「申し訳ございません。まだ少々時間がかかりそうですので、折り返しこちらからお電話させていただきます」

    担当者が不在の時
    「申し訳ございません。あいにく ○○は席をはずして(外出して)おります」
    「お急ぎでしょうか」
    「こちらからお電話いたしましょうか」
    「よろしければご用件を承っておきましょうか」
    「○日(○曜日)まで出張しております」
    「本日は休みをいただいております。○日には出社いたします」
    「申し訳ございません。○○はただいま席をはずしております。伝言を承りましょうか、それとも戻り次第、お電話を差し上げるよう申しましょうか。」

    担当者が電話中の時
    「あいにく、ほかの電話に出ております。いかがいたしましょうか」
    「それでは少々お待ちください」
    「かしこまりました。それではお電話があったことを申し伝えます」
    「確かに申し伝えます」

    接客中、会議中の取次ぎ
    「あいにく会議中(接客中)ですが、いかがいたしましょうか」
    「○○社の△△様からお急ぎのお電話が入っております」
    「お話中失礼します」
    「会議中失礼します」

    2010年7月15日木曜日

    Linq-GroupBy

    Linq言語のGroupBy機能を紹介します。

    従来のSELECT文でGroupByをしていますが、Linq言語を利用したら簡単にできるようになりました、本当にありがたい技術です。

    class Pet
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }

    // Uses method-based query syntax.
    public static void GroupByEx1()
    {
        // Create a list of pets.
        List<Pet> pets =
            new List<Pet>{ new Pet { Name="Barley", Age=8 },
                           new Pet { Name="Boots", Age=4 },
                           new Pet { Name="Whiskers", Age=1 },
                           new Pet { Name="Daisy", Age=4 } };

        // Group the pets using Age as the key value
        // and selecting only the pet's Name for each value.
        IEnumerable<IGrouping<int, string>> query =
            pets.GroupBy(pet => pet.Age, pet => pet.Name);

        // Iterate over each IGrouping in the collection.
        foreach (IGrouping<int, string> petGroup in query)
        {
            // Print the key value of the IGrouping.
            Console.WriteLine(petGroup.Key);
            // Iterate over each value in the
            // IGrouping and print the value.
            foreach (string name in petGroup)
                Console.WriteLine("  {0}", name);
        }
    }

    2010年7月14日水曜日

    NBAボストン・セルティックス

    来年NBAボストン・セルティックスチームのBig3が最後のチャンスと思います。もし来年でもNBAチャンピオンも勝てなければ、今後もチャンスがないです、というと、2010-2011シーズンはBig3の絶唱だと思います。

    2010年7月12日月曜日

    Linq文法でExcelプロセスメモリを解放する

    /// Excel作成プロセスを解放する
    public static void ReleaseExcelMemoryResource()
    {
        System.Diagnostics.Process[] aobjProcessExcel =
            System.Diagnostics.Process.GetProcessesByName("excel");
        var LinqExcelProess = from excelprocess in aobjProcessExcel
                              orderby excelprocess.StartTime descending
                              select excelprocess;
        LinqExcelProess.First().Kill();
    }

    2010年7月6日火曜日

    IT人こそ投資で勝てる

    IT人として投資で儲かる条件を取り上げます。

    ①頭がいい
     頭がいい人こそプログラムができる
    ②勉強能力が強い
     IT業界に生存してる人は毎日勉強しないと(新技術など)、すぐ業界に捨てられる恐れがある
    ③分析能力が強い
     システムエンジニアの分析能力は普通以上にある
    ④アイデアが多い
     新製品開発、新サービス提案

    だから、IT人の僕はこれから金融業に挑戦しようとします。:)

    よし、やってやる…

    2010年7月4日日曜日

    米経済、振れの大きな世界市場からの逆風に直面=オバマ大統領

    オバマ米大統領は2日、国内経済は正しい方向に向かっているが、振れの大きな世界市場の動向が引き続き向かい風となっているとの認識を示した。  6月の雇用統計発表後に記者会見した大統領は「われわれが正しい方向に向かっていることに間違いない」とした上で、「多くの国民にとって(景気回復が)十分なペースで進んでいない」と述べた。  6月の雇用統計・非農業部門雇用者数は、多くの臨時雇用契約が終了する中、予想以上の減少となった。減少は今年に入ってから初めて。  大統領は「われわれは振れの大きな世界の市場からの逆風と引き続き闘っている。経済を修復し、国民を仕事に復帰させるためにすべきことはまだ山積している」と語った。

    一方、米経済諮問委員会(CEA)のローマー委員長は声明で、雇用統計は労働市場の段階的回復の兆候を引き続き示しているとし「特に最近の世界市場の振れの大きさや他の経済指標の内容がまちまちであることを踏まえると、こうした回復の継続的兆候が重要だ」と説明した。

    2010年6月30日水曜日

    出産予定日計算ツール

    現在、妻は妊娠しているんで、赤ちゃんの出産予定日を計算するため、出産予定日計算ツールを作成しておきました、自分だけ使用するのではなく、皆さんにも共有します。


    出産予定日計算ツールURL:

    http://babykoma.appspot.com

    皆さんぜひご利用ください。:)

    2010年6月28日月曜日

    Google I/O 2010 Keynote

    Google I/O毎年開催されるので、今年(2010)の会場ビデオをリンクします。

    愛国主義とは何ですか?

    中国サイトから参照してきた【愛国主義】の纏めです。現在の中国には【憤青】という若者がいます、毎日【愛国主義】に囲まれてる彼たちは中国以外のこと(アメリカとか、日本とか、歴史とか、ワールドカップでも)何でも叱ってるんで、彼たちは本当に中国のことを考えてるでしょうか?

    PS:
    憤青(ふんせい、簡体字:愤青、ピン音:Fènqīng フェンチン)とは、「愤怒青年」を短縮した、中国語で「怒れる若者」を意味する言葉。1960年代の日本語の「怒れる若者達」、英語の「angry youngmen」と同義。この言葉は1970年代の香港で、中国社会に不満を持ち改革を望む若者を指して初めて使用された。また、文化大革命で農村に下放され、学問の道を絶たれたゆえに「憤慨する青年」を指すこともあった。しかし今日では中国のネット上で特別な意味を持つ言葉として使用されている。

    2010年6月22日火曜日

    これからはAndroidの革命か?

    東芝は2010年6月21日、OSにAndroid 2.1を採用したネットブック「dynabook AZ」を発表した。10.1型液晶とハードウエアキーボードを備えて、重量は870g。東芝では「クラウドブック」と呼ぶ。2010年8月下旬に出荷する。

    これからの時代は本当にAndroid主導の業界革命でしょうか?IT人としてAndroid技術と製品を知らないと危ないでしょうか?


    Android

    Google Chart Toolsサンプル

    最近、Google App Engine(以下はGAEと称する)からグラフを出力する技術を研究しています。セキュリティの考慮であるかもしれないで、GAE環境にはjava.awt.*パッケージを利用できないのです。この制限で、Graphics2Dを利用してイメージ出力処理もできなくなりました、他の方法を探すしかないです。この成行きで、Google Chart Toolsを発見しました、これは完璧な解決案ではなく、他のいい方法を見つけるまでこれを一時的に利用するだけです。

    Google Chart Tools実行効果:

    2010年6月21日月曜日

    Google App EngineでExcel出力する

    Google App Engine(以下はGAEと称する)でjexcelapiを利用して、Excelを作成してダウンロードする処理を実装しました。

    GAEにはホワイトリストがありますの、このリスト以外のクラスがサポートされていません、例えばApache POIはExcel作成によく使われるんですが、GAE環境にはなかなか使えません。(多分Apache POIがJava低レベルAPIを使っているかもしれません)いろいろ調べると、jexcelapiが見つかりました、これを利用して問題なくExcelファイルが作成でき、ダウンロードすることもできるようになりました。このサンプルを作成しましたので、ご覧ください。

    中国の「過剰投資」は報われるのか

    中国ビジネスに関して興味深い文書を発見しました、本当に勉強になりました。

    ●米中が「不均衡の是正」という皮肉
     まずは、中国の歴史と現在の状況から始めたいと思います。長い視点で見ると、そもそも中国は四大文明の1つを起源とし、高い文化と発明を誇ってきた強国でしたし、欧米列強に利権を奪われる19世紀までは、世界最大の経済大国であったというデータもあります。逆に言えば、中国がマイナーな存在になったのは、この100年余りのことなのです。

    ●高まる「不動産開発バブル」崩壊リスク
     さらに中国の累積された設備(資本のストック)の状況を分析してみます。中国は、1997年のアジア危機以降の拡大財政政策に始まり、2001 年の WTO以降も投資を加速し、さらに2008年の北京オリンピック開催に向けて政府の固定資産投資を積み上げ、累積設備を増やしてきました。そうした中で、オリンピック後に、本来はそろそろ投資の速度を緩めようとした矢先に金融危機が起こり(それはまたちょうど政治的にも建国60周年を迎え安定を求められる時期でもあったので)、さらに思い切った財政政策を打たざるを得なかったのです。

    ●日本と中国の成長過程は相似形
     新興国の発展過程を、私たち日本人が体験した1970年代の高度経済成長期に当てはめて、イメージしてみたいと思います。(1)日本の高度経済成長は、 1960年の「所得倍増計画」に始まりました。ここから、1964年の東京オリンピックに向けて設備投資が加速しましたが、その後その反動もあり、 1965年には「昭和40年不況」に突入。ただその後も息の長い「いざなぎ景気」が1970年まで続きました。
     中国では、 1986~1990年の間に生まれた3回目のベビー・ブーマーが、2004年から大量就職を始めます(実は旧共産圏でも同じ時期にベビー・ブーマーが大量就職を終えているようです)。高校卒業組から大学卒業組まで考えると、今まさに大量の就職者がいるわけですが、2007年までの好景気の時期はともかく、昨年来の金融危機の影響を受けている中では大変な就職難だと聞いています。

    Google Font APIサンプル

    5月からGoogle社は新しいAPIサービスを提供し始めました、これはGoogle Font APIです。

    これはどんなサービスかというと、クライアントにインストールしないフォントでも当サービスを利用して正しく表示できるサービスです。


    WelCome To Koma Blog

    上記の文字はGoogle Font APIサービスを利用して表示したイメージです。

    現時点では利用可能なフォントは下記のURLから御確認ください。
    http://code.google.com/webfonts

    問題:
    日本語フォントはまだサポートされていません。

    面白い日本語

     先週週末も本屋に足を運びました、元々買うつもりはないですが、下記の本を発見して本屋で一気に半分以上読んでしまいました、教え方は本当に面白いので、最後はやはり買ってきました。






     この本は外国留学生さんは日本語を習う間は先生にいろいろな質問をしていて、日本語先生はこのような質問攻撃を受けて、さらに自分で日本文化を勉強していて、知らないうちに学生さんは日本語ができるようになり、先生も【日本人の知らない日本語】を勉強されてる物語です。

    2010年6月17日木曜日

    漫画 はじめての投資大作戦

     最近は一人暮らしになるので、暇のときは読書をしています。この前はほとんどIT技術に関連する本しか呼んでいませんでしたが、最近他の領域に興味を持つようになりました、例えば投資、心理学など。先週週末に隣の本屋へ足を運びましたんで、投資知識を教えてくれる漫画本を購入しました。



     なぜ漫画形式の本を買うかというと、新しい領域の入門者の私にとっては分かりやすいのが一番大切です。

    2010年6月15日火曜日

    WebDeskTop.Japan

    新しいウェブアプリのリリースプラットフォームを立ち上げました、今後のアプリ更新を全部このプラットフォームを通して展開します。

    http://www.webdesktop.jp



    2010年6月8日火曜日

    Appleが薄さ9.3mmの「iPhone 4」を発表、6月24日発売

    米Appleは米国時間2010年6月7日、携帯電話の新機種「iPhone 4」を発表した。モバイルOSの新版「iOS 4」を搭載する。500万画素のデジタルカメラを内蔵し、ビデオ通話機能「FaceTime」を備える。薄さ9.3mmで重さ137g。米国、日本など5 カ国で6月24日に発売する。

    iPhone 4は、3.5インチの「Retina」ディスプレイを搭載する。解像度は960×640ピクセルで、現行製品「iPhone 3GS」より4倍向上した。デジタルカメラは5倍デジタルズームとLEDライトを備え、高品位(HD)ビデオ撮影も行える。

    Apple独自のプロセッサ「A4」を採用したことにより、バッテリー寿命が従来と比べ40%向上した。連続待ち受け時間は最大300時間。音声通話なら最大7時間、WebブラウジングならWi-Fi経由で最大10時間、3Gネットワークでは最大6時間行える。動画再生は最大10時間、音楽再生は最大 40時間可能という。

    また、新たなゲーム体験の提供を目指し、3軸ジャイロセンサーを実装した。加速度センサーと組み合わせることで、上下、左右、前後の6軸を感知する。

    カラーはブラックとホワイトの2種類。米国と日本のほか、フランス、ドイツ、英国で6月24日に販売を開始する。米国での希望小売価格(米AT&Tと2 年契約を結んだ場合)は、16Gバイトモデルが199ドル、32Gバイトモデルが299ドル。6月15日より予約注文を受け付ける。9月末までに88カ国に販売を拡大する計画。またiPhone 4の発売に合わせて、iPhone 3GSの8Gバイトモデルを99ドルで提供する。

    iOS 4は100以上の新機能を追加した。マルチタスク機能、フォルダー機能、企業向け機能を備え、メールアプリケーションを強化し、同社の広告プラットフォーム「iAd」を実装する。iAdでは、ユーザーがビデオ再生、ゲーム利用、アプリケーションダウンロードなどを行う際に広告を表示する。Appleが広告枠の販売とホスティングを行う。iAdは7月1日より利用可能にする。

    iOS 4は6月21日に無償アップデートソフトをリリースする。iPhone 4とiPhone 3GS、「iPhone 3G」のほか、第2世代および第3世代の「iPod touch」で利用可能。

    2010年5月26日水曜日

    Asp.Netファイルダウンロード

    Asp.Netのファイルダウンロード処理のサンプルソースをメモします。

    VB.Net

    2010年5月24日月曜日

    ブラウザー閉じるボタンを押したら、スクリプトを実行させる方法

    システム開発にはよく問われる問題ですので、他のサイトから見かけた解決方法を纏めたいと思います。

    方法①
    function window.onunload()
    {
      if(self.closed || (event.clientX&lt;=-9000 &amp;&amp; event.clientY&lt;=-9000))
      {
      // セッション解放処理
      }
    }

    2010年5月18日火曜日

    GWTでファイルをダウンロードする

    GWTでファイルをダウンロードするサンプルをメモします。

    画面に何かのボタンのイベントに呼び出して、ファイルをダウンロードする。

    2010年5月13日木曜日

    上海万博の日本館も贋物か?

    上海万博の日本館と同じような建物を発見しました、皆さんこの写真を見て判断してください。

    上海万博の日本館:


    もう一つの日本館?

    2010年5月12日水曜日

    JDO-トランザクション使用例

    明示的なトランザクションを使用していない場合、どちらのエンティティも個別のアトミックなアクションを使用して作成されます。その場合、 Employee エンティティの作成が成功し、ContactInfo エンティティの作成が失敗することも考えられます。どちらのエンティティも正常に作成されたか、どちらのエンティティも作成されていないことを保証するには、トランザクションを使用する必要があります。

    JDO-関係-1 対多の所有関係

    あるクラスの 1 つのオブジェクトから別のクラスの複数のオブジェクトへの 1 対多の関係を作成するには、関係クラスのコレクションを使用します。

    JDO-関係-1 対 1 の所有関係

    2 つの永続オブジェクト間に一方向の 1 対 1 の所有関係を設定するには、関連付けられるクラスのクラスをタイプとして持つフィールドを使用します。

    次に、ContactInfo データ クラスと Employee データ クラスで、Employee から ContactInfo への 1 対 1 の関係を定義する方法を示します。

    2010年5月11日火曜日

    Google App Engine トランザクション処理

    「トランザクション」とは、完全に成功または失敗した一連のデータストア操作のことです。トランザクションが成功すると、意図した効果がすべてデー タストアに適用されます。トランザクションが失敗すると、意図した効果は適用されません。
    データストアの書き込み操作はすべてアトミックです。エンティティの作成、更新、削除は「実行される」か「実行されない」かのどちらかです。操作が 失敗する原因として、同時にエンティティを変更しようとするユーザーが多すぎて競合頻度が高くなっていることが考えられます。また、アプリケーションが割 り当て制限に達したために操作が失敗する場合もあります。そのほか、データストアの内部エラーが原因の場合もあります。いずれの場合にも、操作の効果は適 用されず、Datastore API は例外を発行します。

    2010年Q1の米国スマートフォン市場、Android端末がiPhoneを抜いて2位に

     米NPD Groupが米国時間2010年5月10日にまとめた同年第1四半期(Q1)の米国スマートフォン市場調査によると、米Googleが開発を進める 「Android OS」を搭載した端末の販売シェアが28%となり、米Appleの「iPhone」を抜いて2位となった。首位はカナダResearch in Motion(RIM)の「BlackBerry OS」搭載端末でそのシェアは36%。iPhoneは21%で3位に後退した。
    同社によると、スマートフォンの販売台数シェアは、通信事業者の商品供給体制やプロモーション活動に大きく左右される。第1四半期は、米Verizon WirelessがiPhoneを意識し、「buy-one-get-one(1台購入するともう1台がもらえる)」というプロモーションをスマートフォ ンの全機種で展開した。これによりVerizonは、「Droid」「Droid Eris」「Blackberry Curve」といった端末の販売を伸ばした。その結果、スマートフォン市場におけるVerizonの販売台数シェアは30%となり、iPhoneを販売す る米AT&Tの32%に迫った。

    JDO Extent

    JDO Extent は、データストア内にある特定のクラスのすべてのオブジェクトを表します。

    PersistenceManager の getExtent() メソッドから Extent を開始し、データ クラスへと渡します。Extent クラスは、結果へのアクセスに Iterable インターフェースを実装しています。結果アクセスの完了後は、closeAll() メソッドをコールします。

    次に、データストア内のすべての Employee オブジェクトを繰り返し処理する例を示します。
    import java.util.Iterator;
    import javax.jdo.Extent;
    // ...
        Extent extent = pm.getExtent(Employee.class, false);
        for (Employee e : extent) {
            // ...
        }
        extent.closeAll();
    エクステントは結果をバッチで取得するため、クエリ結果に適用される 1,000 行という制限を超えて結果を取得できます。

    JDOクエリ(JDOQL)

    JDO には一連の条件を満たすオブジェクトを取得するためのクエリ言語が含まれます。JDOQL と呼ばれるこの言語は、JDO データ クラスとフィールドを直接参照することができます。また、クエリ パラメータと結果の種類のチェック機能も備えています。JDOQL は SQL に似ていますが、App Engine データストアのようなオブジェクト指向のデータベースには SQL よりも適しています(App Engine データストアは、JDO インターフェースでの SQL クエリはサポートしていません)。

    クエリ API は複数のコール スタイルをサポートしています。JDOQL 文字列の構文を使用すれば、文字列の中に完全なクエリを記述することができます。また、クエリ オブジェクトのメソッドをコールし、クエリの一部またはすべてを指定できます。

    メソッド スタイルのコールを使用したクエリの簡単な例を紹介します。この例では、フィルタで使用される値に対してパラメータの置き換えを行い、フィルタを 1 つ、並び替え順序を 1 つ指定します。クエリ オブジェクトの execute() メソッドは、クエリにおいて代用される値と共に宣言順にコールされます。

    JDO-detachable

    クラスを「デタッチ可能」と宣言すると、PersistenceManager を閉じてからオブジェクトを修正できます。そのためには、次のように @PersistenceCapable アノテーションに detachable 属性を追加できます:

    import javax.jdo.annotations.IdentityType;
    import javax.jdo.annotations.PersistenceCapable;

    @PersistenceCapable(identityType = IdentityType.APPLICATION, detachable="true")
    public class Employee {
        // ...
    }

    JDO-コレクションプロパティ

    1 つのデータストア プロパティに、複数の値を保持することもできます。JDO では、これをコレクション型の単一フィールド(主な値型またはシリアライズ可能なクラスのコレクション)で表します。以下のコレクション型がサポートされます:
        * java.util.ArrayList<...>
        * java.util.HashSet<...>
        * java.util.LinkedHashSet<...>
        * java.util.LinkedList<...>
        * java.util.List<...>
        * java.util.Set<...>
        * java.util.SortedSet<...>
        * java.util.Stack<...>
        * java.util.TreeSet<...>
        * java.util.Vector<...>

    JDO-シリアライズ可能なオブジェクト(Serializable)

    フィールド値には、シリアライズ可能なクラスのインスタンスを格納できます。その場合は、インスタンスをシリアライズした値を Blob 型の単一プロパティ値として格納します。JDO で値をシリアライズするには、そのフィールドで @Persistent(serialized=true) を使用します。Blob 値はインデックス化されないため、クエリ フィルタや並び替え順序に使用することはできません。

    ここでは、ファイルを表す単純なシリアライズ可能なクラスの例を示します。コンテンツ、ファイル名、および MIMI タイプが含まれています。これは JDO データ クラスではないため、永続性アノテーションは付加されていません。

    JDO-埋め込みクラス

    埋め込みクラスを使用すると、新しいデータストア エンティティを作成したり関係を形成したりしなくても、クラスを使ってフィールド値をモデル化できます。オブジェクト値のフィールドは、保持されているオブジェクトのデータストア エンティティに直接格納されます。

    すべての @PersistenceCapable データ クラスは、他のデータ クラスへの埋め込みオブジェクトとして使用できます。クラスの @Persistent フィールドはオブジェクトに埋め込まれます。埋め込み対象のクラスに @EmbeddedOnly アノテーションを付加すると、埋め込みクラスとしてのみ使用できるようになります。埋め込みクラスが独立したエンティティとして格納されることはないため、主キー フィールドは必要ありません。

    次に埋め込みクラスの例を示します。この例では、埋め込みクラスを、それを使用するクラスの内部クラスにしています。この方法はクラスを埋め込み可能にする上で便利ですが、必須というわけではありません。

    2010年5月10日月曜日

    html改行処理

    スタイルシートの「white-space」プロパティはタグ内のスペースがどのように扱うかを指定する属性です。

    normal
     デフォールト値。スペースはブラウザーに無視される
    pre
     <pre>タグのように扱う
    nowrap
     <br>タグで改行する
    pre-wrap
     スペースを保留し、改行も正常に扱う
    pre-line
     スペースを合併し、改行に正常に扱う
    inherit
     親タグの設定に従う

    2010年5月7日金曜日

    未来の計画

    従来のWindowsアプリケーションの開発をやめて、今まで自分の把握しているWeb知識を利用して、新しいウェブサービスを開発することにしました。

    アプリ形態:ウェブサービス
    開発予定:3ヶ月~6ヶ月
    採用技術:Java

    2010年4月28日水曜日

    SmartGWT XML解析と表示

    SmartGWTでXMLデータを取得して表示するサンプルを紹介します。

    このサンプルもDataSourceとListGridを利用して説明します。


    ソースコード:

    SmartGWT Criteriaクラスの使用方法

    SmartGWTにコントロールデータバンディング処理のため、SearchFormクラスはよく使われています。例えば:

    grid.fetchData(searchForm.getValuesAsCriteria());

    サーチフォームの設定内容をgridウィジェットに渡して、gridは実際のデータを検索して表示する仕組みです。getValuesAsCriteria()メソッドの戻り値はCriteria型ですので、中身のロープ処理はjava.util.Map型と同じです。

    ソースサンプル:

    2010年4月27日火曜日

    SmartGWT JSON使用例

    SmartGWTフレームワークでJSON形式データを取り込む機能を紹介します。

    実行画面:

    SmartGWT コンテキストメニューの使用

    SmartGWTのコンテキストメニュー機能を紹介します。まずイメージをご覧ください。



    ソース明細:

    SmartGWT Windowクラスの使用法

    SmartGWTにサブウィンドウ機能が提供しています、この記事でWindow機能の基本使用法を紹介します。

    SmartGWTのWindowクラスはGWTのWindowクラスとは結構違います。GWTのWindowはDOM Windowオブジェクトみたいで、HTMLドキュメントの操作を扱い、クライアントスクリプトの作成機能を提供します。SmartGWTのWindowはサブウィンドオブジェクトとなります、SmartGWTのコンテナーにサブウィンドを開き、さまざまなUI機能を実現できます。



    ソース:

    2010年4月26日月曜日

    SmartGWT Slider

    SmartGWT Sliderサンプルを紹介します。


    ソース:

    SmartGWT DynamicForm①

    SmartGWT DynamicFormの基本の使い方を纏めて紹介しようと思います。まず、基本の基本―テキストボックスを配置する方法を説明します。

    サンプル:


    ソース詳細:

    SmartGWT基本②ーHTMLPane

    SmartGWTのHTMLPaneウィジェットを紹介します。

    HTMLPaneとは、HTML内容を収めるカンバスオブジェクトです、SmartGWT以外のHTML内容を表示する時に利用します。

    サンプルコード:

    SmartGWT基本①-XY表示

    XYレイアウトの仕組みを紹介します。この知識をベースにして、画面ビジュアルデザインツールを開発することが可能です。

    このサンプルも簡単なサンプルなので、画面に一つのCanvasと四つのブタンを配置します。これらのウィジェットを追加する順により、表示レアーが決まります。例えばCanvasウィジェットを一番目に配置しますので、一番下に表示されます。各ボタンを押した際に、ボタンIDを表示します。


    2010年4月23日金曜日

    Sql整形(ウェブ版)

    僕最近の作品―Sql整形Webバージョンをリリースしました、現バージョンの機能はまだ少ないですが、今後さらに追加する予定です。

    http://sqllite.webdesktop.jp/


    2010年4月22日木曜日

    Google App Engine StringUtilで末尾にある空白の文字を削除する

    Google App Engineで提供しているStringUtilクラスをを見かけました、このクラスにいろんな実用性高いメソッドが入っています、この記事で【trimEnd】メソッドを紹介します。

    Javaで文字列処理関数はtrim()がありますが、末尾にある空白の文字を削除する関数は提供していません。けれど、Google App Engineライブラリになんと提供しています。

    インポート文:
    import com.google.appengine.repackaged.com.google.common.base.StringUtil;

    使い方:
    String strTempLast = StringUtil.trimEnd(content);

    2010年4月21日水曜日

    SmartGWT プログレスバーサンプル

    GWTコンポーネントSmartGWTのプログレスバーサンプルをメモします。

    コード詳細:

    SmartGWT利用

    RIA開発コンポーネントSmartGWTを採用してアプリを開発するつもりで、まずSmartGWTの利用方法を紹介します。

    ①HTMLファイルに下記のリソースを指定します。
    <script> var isomorphicDir = "heloworld/sc/"; </script>

    ②モジュールファイルにSmartGWTクラスを参照します。
    <inherits name="com.smartgwt.SmartGwt"/>
    <inherits name="com.smartgwt.tools.SmartGwtTools"/>

    2010年4月20日火曜日

    UiBinderツールをリニューアルしました

    新しいURLを作成しました、今後UiBinderアプリをこのURLに更新します。

    http://uibinder.webdesktop.jp/

    UiBinder機能だけではなく、GWTコーディングに全ての補助機能を追加する予定です。

    GWT ClientBundle使用例

    Google Web Toolkit 2.0からClientBundleリソース定義方法を導入しました、従来のImageBundelなどにより拡張性があがりました、この記事で紹介しようと思います。

    このサンプルは【uibinder.css】を定義して、各ui.xmlウィジェットは【{style.cssTextBox}】の形で参照します。なお、他のJavaウィジェットからどのように参照すればいいのかといえば、答えはリソースクラスを利用することです。

    Eclipse外部ソースフォルダを追加する方法

    Eclipseでウェブアプリケーションを開発する際は外部プロジェクトを参照して、部品化したコンポーネントを利用する場合、単純に参照プロジェクトを当プロジェクトの【Projects】タグに追加するだけではだめです。原因はこのように参照したプロジェクトはコンパイル時に参照元ソースのコンパイルしたクラスファイルは【war/WEB-INF/classes】にコピーできません。この問題を解決する方法は、下記のイメージのように【Link Source】を利用して、参照してるプロジェクトのソースを当プロジェクトにリンクして一緒にコンパイルするのです。

    2010年4月19日月曜日

    Google App Engineチューニング

    このトピックでGoogle App EngineとGoogle Web Toolkitのチューニングチップスを記載します。

    GWT Widgetコンポーネント化

    Google Web Toolkitのウィジェットコンポーネント化サンプルを紹介します。

    UiBinderを利用して、ウェブコンポーネント(WebUserControl)の再利用性と拡張性を説明します。

    まずはウェブウィジェットを定義します。

    2010年4月18日日曜日

    TabLayoutPanel CSS設定サンプル(メモ)

    Google Web ToolkitはTabLayoutPanelウィジェットのデフォルトCSS設定はイメージ角(丸角)がないので、後で自分で追加しないと反映できないです。(GWT2.0からの変更か?)

    自分のメモとして投稿します。

    Google Gearsもう終わり

    Google GearsはWebアプリケーションをオフライン状態でも使うことができる環境をブラウザに拡張機能として付与するという技術です。けど、HTML5の登場後はGoogle Gearsの未来は見えなくなるかもしれません、Google Gearsの機能はHTML5がほとんど提供しています、例えばDatabase APIなどの機能はHTML5に類似な機能もあります。FireFox、Chromeなどのブラウザは既にHTML5をサポートしているのはいうまでもなく、マイクロソフト社もIE9からHTML5規範をサポートしはじめるといわれます。

    2010年はHTML5を勉強しないと時代に遅れるといえるでしょう…

    結論:Google Gears APIを勉強するより、HTML5を勉強してください。

    2010年4月17日土曜日

    GWT DeferredCommandを試しました

    ユーザーに待たせないようにするため、一定間隔に処理を繰り返して実行する機能を試しました、よい経験を積めました。

    DeferredCommandクラスはIncrementalCommandインターフェースを実装したクラスを実行できます、IncrementalCommandインターフェースの実現したクラスのexecuteメソッドかfalseを戻すまで繰り返して実行します。

    IncrementalCommand実装例:

    2010年4月16日金曜日

    GWT Css Style設定(UiBinder)

    UiBinder XMLファイルにCSS設定方法を紹介します。

    何の理論説明より簡単なソースのほうは分かりやすいと思いますので、一緒に見てみましょう。

    2010年4月15日木曜日

    これは毎日要チェック(wpendia+webso)

    wpendiaとwebso.jpから新しいアプリを立ち上げたいと思います、皆さんは毎日よくお使いになっているサイトを纏めてwpendiaウェブ版の形でサービスアプリをご提供いたします。

    wpendiaウェブ版

    このバージョンは今後も続けて開発していきたいと思います。

    NBAプレイオフそろそろ始り

    僕のサポートチームはボストンCelticsです。

    UiBinder Event作成ツール

    Google Web ToolKit Eclipse PluginはUiBinderへのサポート機能がありますが、なかなかコントロールイベントなどのソースを作成してくれないです、そのためUiBinderイベントジェネレーターツールを作成しました。

    UiBinderイベントハンドラージェネレーター

    今後はさらにより多いイベント、コントロールタイプを追加する予定です。

    GWT CSS簡単設定

    Google Web Toolkitで画面要素のCSSプロパティを簡単に設定する方法を紹介します。

    サンプル

    ソース明細:

    GWT Widgetサンプル

    いろんなGoogle Web Toolkitウィジェットを触りました、サンプルデモを共有します。

    サンプル

    ソース明細:

    2010年4月14日水曜日

    JSNIでブラウザー情報を取得する

    Google Web ToolKitフレームワーク且つJSNIでユーザーブラウザーの情報を取得するサンプルを紹介します。

    サンプル

    JSNIコード:
    public final static native String getUserAgent() /*-{
        return navigator.userAgent.toLowerCase();
    }-*/;

    GWT With JSON(Array定義)

    JavaScriptの配列オブジェクトを定義して、JSON配列をアクセスするサンプルを紹介します。

    サンプル

    コード明細:

    GWT With JSON

    この記事ではGoogle Web ToolkitのJavaコートからJavascriptのJSONオブジェクトをアクセスするサンプルを紹介します。

    サンプル

    ソース明細:

    GWT JSNIサンプル

    初めてGoogle Web Toolkit開発ツールキットのJSNI機能を触りました、サーバー側でnative文言でJavaScript文法を記述する手法です。

    サンプル

    コード:

    2010年4月13日火曜日

    GWT Xml利用例

    Google Web ToolkitエンジンでXML解析機能も提供しています、この記事で紹介します。

    サンプル

    まずはモジュールファイルにXML処理クラスを追加します。
    <inherits name="com.google.gwt.xml.XML" />

    XML解析方法:

    GWT Tips

    ①ウィジェット削除
    RootPanel.get().remove(w); // wはウィジェット
    或は
    DOM.removeChild(RootPanel.getBodyElement(), w.getElement());

    使用例:
    ログインした後にメイン画面に遷移する
    RootPanel.get().clear(); //或は RootPanel.get().remove(loginView);
    RootPanel.get().add(mainView);

    GWT Timer紹介

    Google Web ToolkitのTimerクラスを紹介します。

    このクラスは一定の間隔で実行するスケジューラのような機能です。

    サンプル

    この記事ではTimerクラスの簡単なサンプルを紹介します。

    数字と日付の書式フォーマット

    Google Web Toolkitの数値と日付の書式フォーマット機能を紹介します。

    サンプル

    Webtestsample.java

    GoogleDeveloper

    YoutubeからGoogleDeveloperビデオをメモします。

    http://www.youtube.com/watch?v=SH92957DU2g&feature=channel
    http://www.youtube.com/watch?v=pc-IQkVmOdI

    グーグルジャパンブログ
    http://googlejapan.blogspot.com/

    マイクロソフトが独自スマートフォン「KIN」、製造はシャープが担当


    米マイクロソフトは2010年4月12日(米国時間)、独自ブランドのスマートフォン「KIN」を発表した。タッチスクリーンとスライド式のキーボードを備え、ハードウエアの製造はシャープが担当する。米アップルの「iPhone」、米グーグルの「Nexus One」に続いて、マイクロソフトのKINが加わることで、スマートフォン分野で大手3社の競争がいっそう激しさを増す。

    KINには小型の「KIN ONE」(写真1)と、画面や搭載メモリー容量が大きい「KIN TWO」(写真2)という2 種類のモデルがある。いずれもタッチ方式のスクリーンとスライド式のキーボード、そしてデジタルカメラを備える。デジタルカメラの画素数は、KIN ONEが500万画素、KN TWOが800万画素。

    「KINにはソーシャルネットワークサービス(SNS)が組み込まれている」。マイクロソフトはKINの特徴をこう説明する。KINには「LOOP」と「SPOT」という2種類のメニューがある。いずれもマイクロソフトや既存の大手SNSとの連携機能を備えるのが特徴だ。例えばLOOPは、 FacebookやTwitter、MySpaceといった大手SNSと連携して、利用者の友人の情報を取得できる。SPOTは写真や動画といったコンテンツを共有するための標準メニューだ。

    KINで利用できる携帯電話事業者は、米国向けがベライゾン・ワイヤレス、欧州向けがボーダフォン。米国ではベライゾンから5月に発売される。ボーダフォンは今秋、ドイツとイタリア、スペイン、英国でそれぞれ発売する。

    2010年4月11日日曜日

    GWT-FormPanelサンプル

    FormPanelの使い方を紹介します。

    Formpanelsample.java

    RequestBuilderサンプル

    Google Web ToolKitで非同期通信サンプルを紹介します。

    サンプル

    GWT1.4前のバージョンはHTTPRequestを利用するんですが、1.5からRequestBuilderを利用し始めました。このサンプルではRequestBuilderクラスを説明します。

    2010年4月10日土曜日

    Google Eclipse Plugin

    GoogleのEclipse開発プラグインURLです。

    Eclipse 3.3(Europa)
    http://dl.google.com/eclipse/plugin/3.3

    Eclipse 3.4(Ganymede)
    http://dl.google.com/eclipse/plugin/3.4

    Eclipse 3.5(Galileo)
    http://dl.google.com/eclipse/plugin/3.5

    Eclipse 3.6 (Helios)
    http://dl.google.com/eclipse/plugin/3.6

    2010年4月9日金曜日

    JSONって何②

    JSONサンプル②を共有します。(サンプルリンクを押して実際の実行結果を確認できます)

    このサンプルはインタネットから見つかったサンプルなので、本当にシンプルで且つ分かりやすいサンプルです。

    JSONって何①

    最近JavaScript記述法JSONを勉強しています、メモとして記事に書きます。

    JSONサンプル①

    JSON基本の使い方:

    2010年4月8日木曜日

    プログラムアンインストールソフト―Revo Uninstaller

    アプリケーションを徹底的にアンインストールする機能のほか、Windows の一時ファイルや主要な
    アプリケーションの使用履歴を削除する機能、不要なスタートアッププログラムを削除する機能、
    ファイルや削除済みファイルを完全に抹消する機能 などを備えてます。
    「Revo Uninstaller」は、高機能なアンインストール支援ソフトです。
    アプリケーションをアンインストールする際に、

    “ ソフトが、ハードディスクやレジストリにゴミファイルを残していないか ”

    ということを徹底的にチェックすることができ、普通にアンインストールしただけでは削除しきれない
    ファイルまでを検索 & 削除できるところが大きな特徴。
    また、アンインストールできなくなってしまったプログラムのインストール情報を削除する機能や、
    インストール済みのプログラムを検索する機能 なども備えています。
    さらに、スタートアッププログラムを管理する機能や、不要なファイルを検索&削除する機能 なども
    持ち合わせているので、総合的なお掃除ツールとしても使うことができると思います。

    Aptana Studio

    ウェブアプリケーション開発IDEーAptana Studioを紹介します。

    URL:
    http://www.aptana.org/

    EclipseRCPアプリなので、プラグインも提供されています。

    RCP:http://www.aptana.org/studio/download
    Plugin:http://download.aptana.org/tools/studio/plugin/install/studio

    2010年4月7日水曜日

    spketプラグイン

    Spket IDEはEclipse IDEをベースとして作られた高機能エディタで、XMLやJavaScriptのコーディングをサポートしてくれる優れものです。非商用であれば無償で利用可能です。

    オフィシャルサイト:http://www.spket.com/

    インストールUpdateURL:
    http://www.spket.com/update

    GWTサンプル

    GWTの面白さをはっきり分かりました、今後これをベースにしてアプリを開発するつもりです。

    初めてのサンプルを【こちら】です。

    GAE web.xml設置例

    Google App Engine Javaで開発するウェブアプリケーションのweb.xml設置例を紹介します。

    web.xmlとサーブレットの連携してサービスを提供します。

    GAE Imageサービス

    Google App Engineのイメージサービスを試しました、面白い機能なので、皆さんに紹介しようと思います。

    まず、イメージサンプルのURLを紹介します。
    GAEイメージサービス

    GAE UrlFetchサービス

    Google App EngineのUrlFetchサービスを紹介しようとします。このサービスを利用して、他のウェブサイトのサービスやWeb内容を取得することが可能です。

    なお、このサービスの使い方も簡単です。

    システムクリーナー【ATF Cleaner】の紹介

    パソコンシステム(OS)を長い間に使うと、一時フォルダに不要なファイルがたくさん残っている問題にずっと悩んでいます。最近すごく便利なシステムクリーナーソフトを発見しました、これは【ATF Cleaner】です、ソフト本体はただ一つファイルなので、インストールも不要です。

    ATF Cleanerの使い方もとても簡単です。プログラムを起動して、下記のイメージのように全てのチェックボックスをチャックして(【Select All】ボタンだけで押してもOK)、【Empty Selected】ボタンを押すんですみます。

    2010年4月6日火曜日

    GAE Mail送信サンプル

    Google App Engineでメールを送信するサンプルを紹介します。

    GAEは無料で一日2000通のメールを送信する可能ですので、本当に便利な機能です。

    SendmailServlet.java

    面白いゲームFieldRunnerを紹介します

    最近iPhone/iPod Touchゲーム―FieldRunner(TowerDefenseシリーズ)にはまっています、すごく面白いゲームなので、iPhone或はiPod Touchをお持ちの方にお勧めします。

    GAE JCacheサンプル

      Google App Engineはクラウドサービスであっても、プログラムの処理実行パフォーマンスは必ずしも早いとはいえません、特にデータストア(BigTable)へのアクセス処理はやや遅い感じです。この原因で、一部のよく使われてるデータをキャッシュしないといけないです、この記事でGAE JCacheサンプルを紹介します。

    2010年4月5日月曜日

    GAE Cronスケジューラ

    GAEは指定時刻や繰り返しの間隔でジョブを実行する機能を説明します。

    このサンプルではcron.xmlとcronServlet.java二つのファイルがあります。

    まずは、cron.xmlファイルです。このファイルでジョブ実行ルールを定義します。
    cron.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <cronentries>
      <cron>
          <url>/cron/cron1</url>
          <description>Test mail send every 1 minutes</description>
          <schedule>every 1 minutes</schedule>
      </cron> 
    </cronentries>

    GAE ユーザーサービスの利用

    GAEユーザーサービスを利用して、サンプルを紹介します。

    このサンプルでは、サインしてるユーザーのみニュースサイトを表示するのです。

    Oracle常用コマンド

    ●Oracleキャラクタ・セット:
    select * from nls_database_parameters

    select nls_charset_id('JA16SJIS') from dual;
    select nls_charset_name(832) from dual;

    ●Oracleデータベースバージョン:
    select * from v$version;

    ●ユーザ名の取得:
    select user from dual

    2010年4月2日金曜日

    GAE JDOサンプル

    この記事でGEAデータストーレージの利用サンプルを紹介します。

    GAEでデータストアの API 標準としてサポートされているのは、JDO(Java Data Objects)と JPA(Java Persistence API)の 2 つです。これらのインターフェースは、複数の Java 永続性標準のオープン ソース実装である DataNucleus Access Platform で、App Engine データストア用のアダプタを使って提供されます。

    このサンプルでは、JDO インターフェースを使用して、簡単なデータ処理を説明します。

    NBA漫画

    私はアメリカNBAが大好きなので、NBAに関する面白い漫画写真をインターネットから収集しようと思います。

    今日から共有します。

    2010年4月1日木曜日

    Eclipse開発環境の文字インコードを設定する方法

    日本語アプリケーションを開発する時は、UTF-8文字インコードをよく使われるので、Eclipseでどのように設定するかを説明したいと思います。

    実はEclipseの設定は簡単ですので、下記のイメージをご確認ください。



    エディターフォント設定


    タブスペース変換


    Eclipse Javascriptプラグイン-JSEclipse

    Adobe社出品したEclipse Javascriptプラグイン-JSEclipseを試しました。ハイライト表示やコードアシスト等の多い機能が揃っていますので、本当に便利です。

    紹介ページ:
    http://www.interaktonline.com/Products/Eclipse/JSEclipse/Overview/

    インストール/更新URL:
    http://download.macromedia.com/pub/labs/jseclipse/autoinstall/

    GAEログ出力方法

    この記事からGoogle App Engineを略称して、GAEと言います。

    このトピックでGAEログ出力方法を説明します。まずログ出力手順を纏めてリストしておきます。

    ①ログ出力レベルを設定します
    ②Loggerクラスを宣言します
    ③ログレベルによりログ出力をコーディングします

    2010年3月31日水曜日

    GoogleとAdobe、WebブラウザChromeのFlash統合で協力

      米Googleと米Adobe Systemsは米国時間2010年3月30日、AdobeのFlashアプリケーション実行ソフトウエア「Flash Player」と米GoogleのオープンソースWebブラウザ「Google Chrome」の統合に関して協力すると発表した。Googleは協業の第一歩として、開発者向けチャネル「Dev channel」を通じてFlash PlayerをバンドルしたChromeの提供を同日開始した。

      Chromeのダウンロードと同時にFlash Playerの最新版を受け取るので、個別にインストールする必要はない。Chromeの自動アップデート機能を通じて、Flash Playerも自動的に更新される。内蔵版Flashを利用可能にするには、コマンド・ラインに「--enable-internal-flash」を追加する。Googleは今後、できるかぎり早く全Chromeユーザーに対してFlash統合を提供する計画だとしている。

      またAdobeとGoogleは、米Mozillaなどと協力し、Webブラウザとプラグインのやりとりを向上するための新たなAPIを開発する。あらゆるOSとWebブラウザで安定した動作を提供しつつ、ブラウザとのより密な連携を可能にする柔軟性を備えたAPIを目指す。サンドボックスなどのセキュリティ機構やセキュリティ技術と容易に統合できるようにする。

    ホームページ