「性別」列のインデックス付与について
2012 年 5 月 14 日 by yasukuniデータベースのインデックスを張る際によく「性別」に付けても意味が無いと言われたりしますが、実際の所どうなのでしょうか?(SQL Serverで)試してみました。
で。結論から言うと遅くなります。(というか使用されません) ただし…
データベースのインデックスを張る際によく「性別」に付けても意味が無いと言われたりしますが、実際の所どうなのでしょうか?(SQL Serverで)試してみました。
で。結論から言うと遅くなります。(というか使用されません) ただし…
今回は『選択範囲のテキストを削除』をご紹介しようと思います。
ビジュアルモード中に”d”を押すことで選択範囲のテキストを削除する事ができます。
以下の様なテキストがあったとします。
下記の文章から3行ほど削除したい場合、vi使いの方なら、該当行にカーソルを移動し、「3dd」と入力します。

数回に渡ってenchant.jsとゲームについて、周辺の話を進めてきましたので、そろそろ本題に入ります。
enchant.jsにサンプルとして同梱されているアクションゲームのソースを眺めながら、少し手を入れてみます。
ちょっと乱暴な言い方ですが、業務アプリと違ってゲームが保持する情報の多くがあまり本質的ではないものだったりします。
例えばアニメーション制御やエフェクトのためのオブジェクトがそれにあたります。
要はズバババ~ンって感じにキャラクターなどを表示するために色んな情報を扱う必要があり、結構面倒くさかったりします。
今回はそういった細々とした情報を扱う際の数字遊びを紹介します。
enchant.jsでゲームを作ることを想定しているのでjavascriptで書きますが、基本的には言語を問いません。
ゲーム作りに欠かせないのが画像です。
自分で作るのは大変な労力がかかりますが、世の中には高品質な素材がたくさん提供されています。
ライセンスに注意して有効に活用したいものです。
ほとんどの素材はそれぞれの用途を想定した形で配布されていますが、必ずしも自分の思った通りに配布されているものでもありません。
今回はGIMPを使ってそんな素材のうちドット絵を自分の用途に合わせて加工する方法を紹介します。
※使用と加工の際には配布元のライセンスにご注意ください!
※サンプル画像としてenchant.jsに同梱されているものを利用しています。
今回はJavascript+HTML5で簡単にゲームが作れるenchant.jsを紹介します。
少し触ってみましたが、シンプルさとJavascriptの柔軟性、妥当なフレームワーク構成でちょっとしたゲームならすぐに作れます。
凝ったゲームを作る場合のクラス拡張がとても簡単で、設計にセンスを感じます。
コーディングを行なっている際に次のような経験はないでしょうか?
・ちょっと前にも同じようなことを記述した記憶がある。
・似たような機能(画面)が既に存在したので、コピー&ペーストでコードを複製した。
・コードの中にコメントを記載しないと意味が解らない変数やマジックナンバーが沢山ある。
・バグが入り込んだ際に、原因の特定に時間を要する(修正が困難)又は、途中でトレースするのが嫌になった。
・仕様変更による影響が多岐に及び、対応/評価に莫大な時間を要した。
この様な経験があれば、リファクタリングが必要なのかもしれません。
リファクタリングとは機能を変更することなく、コードの組み換え等を行い仕様変更への耐性、保守性の向上を行う技術です。
この技術の根本には、仕様というのは変動的であり、多くの場合に漏れ(抜け)があるという考えのもと行われます。
例えば、同様のコードが見つかった際に、共通化する小さな努力を怠ったり複製を行うと、修正が発生した場合に対象が多岐に及ぶことは避けられません。
普段はJavaをメインに使っていながら、最近はHTML5/JS/Android/iOSなどクライアントサイドの技術が賑わっていることもあって、サーバーサイドの技術、特にWebフレームワークには目を向けていなかったんですが、Java/Scalaエンジニア界隈では、 “Play Framework” が最近注目されているらしいです。
http://www.playframework.org/
JavaによるWebアプリケーション開発を容易にすることを目的とした、
Ruby on RailsライクのOSSフレームワークです。
概要や特徴などは公式サイトで分かりやすく説明されているので、そちらを参照してください。今回紹介する環境構築手順や開発フローが見られる10分程度のムービーもあります。
公式ではありませんが、翻訳サイトもあります。
http://playdocja.appspot.com/
早速、ローカル環境(WindowsXP)に開発環境を構築してみます。
なお、Java5以降がインストールされている前提です。
1.最新バージョン(v1.2.4)をダウンロードします。
http://www.playframework.org/download
ファイル:play-1.2.4.zip
2.ダウンロードしたファイルを任意のフォルダに展開します。
今回は以下のディレクトリに展開
D:\work\play-1.2.4
3.コマンドプロンプトを起動して、新規アプリケーション作成用のコマンドを実行します。
# cd D:\work\play-1.2.4
# play new myapp
途中でアプリケーション名を聞かれるので適当に入力します。
4.アプリケーションの起動コマンドを実行します。
# play run myapp
5.ブラウザを開いて、URLを入力します。
http://localhost:9000/
基本的な環境構築は以上です。
Tomcatなどのアプリケーションサーバ上で動作させることもできますが、スタンドアロンで動作するので、すぐにアプリケーションの開発に取り掛かれます。
テキストエディタをはじめ、Eclipseなどお好みのIDEで開発できるのもGoodです。
環境構築だけでなく、アプリケーションの開発においても、効率的に開発できる機能がたくさん含まれているので、順次試していきたいと思います。
前回、Rubydoctestのドキュメントを邦訳しました(rubydoctest - Example Usage の邦訳)。
本家のドキュメントも少ないのですが、他に情報らしい情報もほとんど見当たりません。
唯一見つけた情報も使い方というよりは紹介ですし、かなり古い記事です。
なので使ってみた結果をここに記録しておきます。
前回(レーベンシュタイン距離で文字列の類似度を測る)引用させていただいたサイトさま(Moderation is a fatal thing. Nothing succeeds like excess.)でとても気になる記述がありました。
で、、、この手のコードを書いたときに、ちょっとしたテストも書いときたいなあ、と思うんですよね。Python だと、doctest っていうコメントにテストを埋め込める便利なのがあるんですが、ruby にもないものかと思って探したらありました。rubydoctestってやつが。
気になりすぎて調査したかったので前回はあえて触れず、今回紹介されているrubydoctestの使用例のページ(Example Usage)を訳してみました。
ほとんどコードでかつコード中の文は訳していないのですが、雰囲気はつかめると思います。