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

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

ホームページ