2012年7月11日水曜日

[自分用]Javascriptでクラスを作るためのテンプレート



/*
 * Javascriptでクラスを作るためのテンプレート。
 * [特徴]
 * ・Private,Public,Private Static,Public Staticの四スコープの変数・関数を用意している。
 * ・クラス呼び出し(x = new MyClass)可。メソッド呼び出し(x = MyClass)不可。
 * ・コンストラクタ(_initialize)は、他の関数を呼び出せる。
 */


"use strict";


var MyClass = (function() {
  function MyClass() {
    this.initialize.apply(this,arguments);
  }
  
  MyClass.prototype.initialize = function(args) {
    var _private = {};
    var _public = this;
    
    /*
     * 初期化処理(インスタンス単位)
     */
    _private._initialize = function(){
      // ローカル変数
      _private.xxx = null;
      // グローバル変数
      _public.xxx = null;
    };
    
    /*
     * ローカル関数
     */
    _private.xxx = function() { 
      ;
    }
    
    /*
     * グローバル関数
     */
    _public.xxx = function() { 
      ;
    }
    
    // 初期化処理(インスタンス変数)を実行
    _private._initialize();
  }
  
  var _ = {};
  var _static = MyClass.prototype;
  
  /*
   * 初期化処理(クラス変数)
   */
  _._initialize = function(){
    // ローカル・クラス変数
    _.xxx = null;
    // クラス変数
    _static.xxx = null;
  };
  
  /*
   * ローカル・クラス関数
   */
  _.xxx = function() {
    ;
  }
  
  /*
   * クラス関数
   */
  _static.xxx = function() {
    ;
  }
  
  // 初期化処理(クラス変数)を実行
  _._initialize();
  // オブジェクトを返却
  return MyClass;
})();

2012年5月2日水曜日

Aptana3(日本語) + Zen-Codingをインストールする


Aptana3(Web制作・アプリ作成ソフト、Eclipseの派生)をインストールし、それを日本語化しました。
また、Zen-Coding(HTML/CSSのマークアップ効率化ツール)のプラグインのインストールも行いました。
それらの方法をご紹介します。

■Aptana3(英語)をインストールする。


■Aptana3(英語)を日本語化する。

  • Aptana3を起動する。
  • メニューのHelp >> Install New Software...を選択する。
  • Work withに「http://download.eclipse.org/technology/babel/update-site/R0.9.1/indigo」を入力する。
  • Babel Language Packs for eclipse >> Babel Language Packs for eclipse in Japaneseを選択する。
  • "Next"ボタンを各画面で押す。("I accept the terms in the license agreement"をクリックする)
  • "Finish"ボタンを 押す。

■zen-codingをインストールする。

  • メニューのHelp >> Install New Software...を選択する。
  • Work withに「http://zen-coding.ru/eclipse/updates/」を入力する。
  • Uncategorized >> Zen Coding for Eclipseを選択する。
  • "Next"ボタンを各画面で押す。("I accept the terms in the license agreement"をクリックする)
  • "Finish"ボタンを 押す。

※プラグインが機能しない場合は、Aptana3を閉じて下さい。
そして、コマンドプロンプトで「(Aptana3の実行ファイルのアドレス) -clean」のコマンドを発行して下さい。

2012年3月5日月曜日

MikuMikuDanceモデル・モーションの投稿サイトの実現性を考える

MikuMikuDanceのモデル・モーションをブラウザで閲覧・共有するWebサイトは、
技術的には作れると思います。
ただし、クライアント側の実装は、
「Google Native Client(※1)」+「Qt(※2)」が現実的ではないかと思います。

※1 Google Native Client
C/C++をブラウザ上で使えるようにする技術です。
ActiveXとは、C/C++がサンドボックス内で動作する点で異なります。
現在は、Chrome Web Storeに登録したアプリのみが、標準で利用できます。
[参考]
Native Client - Google Developers
<https://developers.google.com/native-client/pepper16/>

※2 Qt
C/C++のアプリケーション・UIフレームワークです。
商用版とオープンソース版があり、
オープンソース版のライセンスはLGPL/GPLです。
Qtで記述されたソースは、Windows・Mac・Linux等の様々な環境で利用できます。
[参考]
Qt – クロスプラットフォームのアプリケーション開発フレームワーク
<http://qt.nokia.com/title-jp/>
Qt for Google Native Client
<http://qt-project.org/wiki/Qt_for_Google_Native_Client>


なぜ、Javascriptではなく「Google Native Client」+「Qt」かと言うと、
下記の3つの理由があるからです。
1.C/C++は描写速度が早い。
2.C/C++のソースは、モーションキャプチャ利用のアプリに転用できる。
3.既存のソースを参考にできる。

1.C/C++は描写速度が早い。
コンパイル方式のC/C++は、インタプリタ方式のJavascriptより高速です。
実際に、下記の「Google Native Client」アプリを試してみて下さい。
そのレスポンス性の高さに驚かされるはずです。
[参考]
Bullet Physics NaCl Test
<https://chrome.google.com/webstore/detail/pgehkhceingafmkkmbeoempaablkkeal>
※「Google Native Client」上でBullet Physics(物理演算用ライブラリ)を使ったサンプルアプリです。

2.C/C++のソースは、モーションキャプチャ利用のアプリに転用できる。
MikuMikuDanceは、モーションキャプチャと強い関連性を持っています。
今後、モーションキャプチャを使った機能
(例えば、ユーザの動きを感知して、それに類似するモーションデータを検索する機能)
が求められた場合、
C/C++であれば、そのソースを再利用してネイティブアプリを作ることで対応できます。

3.既存のソースを参考にできる。
MikuMikuDanceのクローンアプリ「MMDAI2」が、「Qt」で実装されています。
また、そのソースが公開されており、個人の開発者でも使わせてもらえます。
[参考]
hkrn/MMDAI · GitHub
<https://github.com/hkrn/MMDAI>
MMDAI Project Portal
<https://sites.google.com/site/mmdaiproject/>


もちろん、「Google Native Client」にも欠点があります。
その中で最も大きなものは、InternetExplorerに対応していない点です。
現在、事実上、「Google Native Client」はGoogle Chromeの独自機能です。
ブラウザ全体の約5割のシェアを持つInternetExplorerでは、標準的には使えません。
これは商業アプリでは致命的なように思えますが、
実はJavascriptで実装しても同じ結果になります。
なぜかと言うと、InternetExplorerはWebGLへの対応を拒否しているからです。
そのため、InternetExplorerに対応していない事は「Google Native Client」の欠点ですが、
同時にJavascriptの欠点でもあります。


Chrome OSのノートブックPCが流通し始めた時には、
「Google Native Client」アプリを作る人が格段に増えていくことと思います。
その時に、
プラットフォームビジネスの新たな覇者・3Dアニメーションの文化を発展させる英雄が
誰になるのか、強く興味が持たれます。
個人的には、株式会社ドワンゴが最有力だと思いますが、
草の根運動で伸びてきたMMD文化は、個人や非商業者が伸ばしていくのが理想的だと思います。
MMD文化の更なる発展と成長をお祈りしております。


追伸

と、書きましたが、
実はJavascriptでもここまでの実装ができるそうです。
<http://edv.sakura.ne.jp/mmd/>
<http://edv.sakura.ne.jp/mmd/20111107/>
※このページは、OS・ブラウザによっては機能しません。

ソースはこちらになります。
<https://github.com/edvakf/MMD.js>


このような長い文章をお読み頂き、ありがとうございました。

2012年2月26日日曜日

LUbuntuのLiveUSBを作る


LUbuntu11.10のUSBインストーラを作りました。
その手順を紹介します。
※LUbuntuは、LXDE使用の軽量Ubuntuです。詳細な仕様は下記のサイトで確認して下さい。
    ・Wikipedia  <http://ja.wikipedia.org/wiki/Lubuntu>
    ・公式サイト <http://lubuntu.net/>


■UNetbootinをダウンロードする



■LUbuntu11.10のISOファイルをダウンロードする



■UNetbootinでUSBインストーラを作る

  • UNetbootinを起動する
  • "ディスクイメージ"にチェックを入れる
  • "..."ボタンを押し、LUbuntu11.10のISOファイルを選択する
  • "ドライブ"で対象のUSBを指定する
  • OKボタンを押す


※USBインストーラは、それをPCへ接続した後、PCをUSBからブートすることで、起動できます。


2012年2月20日月曜日

DELL製PCのBIOSをバッテリなしで更新する

Dell Inspiron 300mのBIOSをバッテリが0%の時にバージョンアップしました。
その手順を紹介します。
※下記の情報を利用する場合は、自己責任でお願いします。


■BIOS更新用の実行ファイルをダウンロードする



■BIOS更新用フロッピーディスクを作る

  • 空のフロッピーディスクをセットする。
  • 先の実行ファイルを開き、処理を実行する。


■BIOS更新用フロッピーディスク内の実行ファイルに"/forceit"の引数を付けて実行する

  • 対象のパソコンに、先のフロッピーディスクをセットする。
  • 対象のパソコンを、フロッピーディスクドライブから起動する。 ※Dellのロゴ画面では、F12かF2を押す。
  • 「<実行ファイル名> /forceit」(例:300m_A09.exe /forceit)と入力し、Enterを押す。 ※"_"(アンダーバー)は"-"(ハイフン)で入力する?