サイトマップ系のエラーが段々増えてきまして、 サーバの移行を常々考えていましたが、ようやく完了。 Wordpressも思い切って3.0に。 久々のエクスポート&インポート作業でどうなることかと思いましたが、 とりあえず何の不具合もなく稼働中。
» MySQL : TIPS
2009.07.03 Category : MySQL, Reference, TIPSDatabase
| 表示 | mysql> SHOW DATABASES |
|---|---|
| 作成 | mysql> CREATE DATABASE db-name |
| 使用 | mysql> USE db-name |
Table
| 作成 | mysql> CREATE TABLE tb-name(no INT, name VARCHAR(50), birth DATE) |
|---|---|
| 表示 | mysql> SHOW TABLES |
| 構造修正 | mysql> ALTER TABLE tb-name ADD added-fieldname INT ※ADD部分はいろいろあります。 |
| フィールド表示 | mysql> SHOW FIELDS FROM db-name |
| データ追加 | mysql> INSERT INTO tb-name VALUES(data1, data2) ※値は全てフィールドに合わせる。 |
| 更新 | mysql> UPDATE tb-name SET field-name=value WHERE no=6 ※WHERE condition |
| 削除 | mysql> DELETE FROM tb-name WHERE no=6 mysql> DELETE FROM tb-name WHERE no BETWEEN 1 AND 5 ※WHERE condition |
| 検索 | mysql> SELECT * FROM tb-name WHERE no=6 ※WHERE condition |
» Smarty : TIPS
2009.07.01 Category : PHP, Reference, Smarty, TIPS| assignで渡す配列のアクセス | 単純配列の場合 : {$array[0]} 連想配列の場合 : {$array.key} ※{$array['key']}はアウト オブジェクトの場合 : {$object->property} , {$object->method()} |
|---|
» etc. : TIPS
2009.06.24 Category : TIPS| Flash Switcherのエラー回避 | 1. /Library/Internet Plug-Insのパーミッションを777にする。 2. Firefox終了後、Flash Player.pluginとflashplayer.xptを削除する。 |
|---|
» PHP : TIPS
2009.06.16 Category : PHP, Reference| '$var'と"$var" | '$var'は文字列。"$var"は変数として展開。 |
|---|---|
| コメント | //,# --- 単数行 /**/ --- 複数行 |
| . | 文字列連結 |
| -> | プロパティ、メソッドへのアクセス |
| => | キー(配列ならインデックス)に値を割り振る。 'XML' => 'Extensible Markup Language' 0 => 'Hypertext Preprocessor' |
| (int) | データ型のキャスト。print((int)$data) 指定できるのは、bool, boolean, double, float, real, int, integer, string, object |
| foreach | foreach(配列名 as 値用の変数){} foreach(配列名 as キー用の変数 => 値用の変数){} |
| & | 値渡しではなく参照渡し。変数の代入、関数の戻り値でも使われる。 戻り値のときは関数名の前 → function &getValue(){} |
| スクリプト名、ディレクトリ名いろいろ | お題:http://www.fujinando.com/dir1/dir2/index.php?var=data1 $_SERVER['PHP_SELF'] → /dir1/dir2/index.php $_SERVER['REQUEST_URI'] → /dir1/dir2/index.php?var=data1 $_SERVER['SCRIPT_NAME'] → /dir1/dir2/index.php $_SERVER['SCRIPT_FILENAME'] → /var/www/htdocs/dir1/dir2/index.php $_SERVER['QUERY_STRING'] → var=data1 __FILE__ → /var/www/htdocs/dir1/dir2/index.php dirname(__FILE__) → /var/www/htdocs/dir1/dir2 basename(__FILE__) → index.php basename(__FILE__, '.php') → index |
| !isset($var)とis_null($var) | $var = nullのとき、どちらもfalseが出る。 is_null($var)はnoticeエラーも出る。 シンボルテーブルに名前のない変数のときにnoticeが出るらしい。$var = nullだと変数名varはシンボルテーブルに登録されていて、Cでのポインタ値が0(意味のないメモリ番地)になっている。 |
» AS3 : SingletonクラスをStageやMovieClip内に予め配置。
2009.04.14 Category : AS3package
{
import flash.display.*;
public class ClassA extends Sprite
{
private static var instance:ClassA = null;
public function ClassA(en:SingletonEnforcer){}
public static function getInstance():ClassA
{
if( instance == null )
{
instance = new ClassA( new SingletonEnforcer() );
}
return instance;
}
}
}
class SingletonEnforcer extends Sprite{}
通常はライブラリで引数をとるClassAにリンケージされたMovieClip, Spriteは、stageやDisplayObjectContainerに予め配置しておくことができない。引数を指定できないから。ただし、上のようにクラスファイル内のprivate class(SingletonEnforcer, デコンパイルするとprivate classとして定義されてる)を引数にとる場合は問題ないが、private classもMovieClip, Spriteを継承する必要がある(かも。エラーが出る場合があり。原因未調査)。もっと単純化するなら(使い方に注意がいるけど)以下のとおり。
package
{
import flash.display.*;
public class ClassA extends Sprite
{
private static var instance:ClassA = null;
public function ClassA()
{
instance = this;
}
public static function getInstance():ClassA
{
if( instance == null )
{
instance = new ClassA();
}
return instance;
}
}
}
使い方は注意が必要。newができてしまうので、必ずgetInstance経由で呼び出す。
» AS3 : Tweener CurveModifiersクラス
2009.04.14 Category : AS3カーブに沿ってTweenさせたいとき。
package
{
import caurina.transitios.properties.CurveModifier;
public class Main extends Sprite
{
var sp:Sprite = new Sprite();
...
Tweener.addTween(sp, {x:20, y:20, _besier:{x:10, y:10} });
}
}
_besierはコントロールポイント。Tweenの始点・終点を結んだ曲線上を移動する。
_besierのx,yのどちらかを省略した場合は、始点・終点の中点が補われる(ハズ)。
» AS3 : Iteratorパターン
2009.03.16 Category : AS3, DesignPatternDesignPattern学習。
Iterator Pattern
note.
■ ConcIteratorのコンストラクタでは、引数にIAggregateを取る。どの集合体を数え上げるかが渡される。 ■ ConcAggregateで実装しとくべきメソッド ・function getLast(){} → 自身がもつ(数える対象となる)要素の最終位置(=length) ・function getItemAt(index:int){} → index位置の要素を返す ■ ConcIteratorでは、indexをプロパティにもつ。どの位置を捜査しているか、の値。nextが呼ばれたらインクリメント。» AS3 : Stateパターン
2009.03.15 Category : AS3, DesignPatternDesignPattern学習。
State Pattern
note.
■ Contextには、stateプロパティ用のsetter,getterメソッドを実装するパターンがほとんど。
function setState(state:IState){};
function getConcState1(){};
function getConcState2(){};
■ ConcState(ex : PlayState)にContextの参照をもたせて、特定の処理をさせてからContext.setState()を呼び出し、Context.stateプロパティを変更(ex : PlayState)する。
■ 新たなStateを追加する場合
1. IStateに追加State用のメソッドを追加
2. 既存の全ConcStateに1.のメソッドを実装
3. 新規ConcStateクラスを作成
4. Contextを変更。setter、getter、新規ConcState用のrequestを追加
■ Context内のrequestA,Bは、methodA,BのようにIStateが規定するメソッドと同じ名前にしたほうが解りやすいか。
» AS3 : Observerパターン
2009.03.15 Category : AS3, DesignPatternDesignPattern学習。
Observer Pattern
note.
■ 2つの抽象クラスはインターフェースにしても。observers:Arrayの設定が必須。
■ ConcSubjectとConcObserverが同じプロパティを持つと解りやすい。
Subjectがsetter メソッドで自プロパティを上書きして、そのプロパティ値を引数にして、notifyObserverを呼ぶ、など。
» AS3 : Adapterパターン
2009.03.14 Category : AS3, DesignPatternDesignPattern学習。
Adapter Pattern
note.
■ 2タイプあり
継承パターン → Adapteeクラスを拡張。
委譲パターン → Adapteeクラスの参照を保持。
» AS3 : Compositeパターン
2009.03.14 Category : AS3, DesignPatternDesignPattern学習。
Composite Pattern
note.
■ clientはLeafもCompositeも同一視(=同じメソッドを使える)
■ methodA,methodBはComposite内では再帰的に処理される。
→ Compositeの中にはLeafだけでなくCompositeも含まれる。
■ removeのときは要注意。
→ 参照を全てnullにして、ガベージコレクションの対象にする。
■ CompositeのmethodAは、chilren:Array全てに対してmethodAを呼び出す。children[i]が、
Leafのとき → 特定の処理
Compositeのとき → children:Arrayの各itemに対してmethodAを呼び出す。
= recursion.
» AS3 : Decoratorパターン
2009.03.14 Category : AS3, DesignPatternDesignPattern学習。
Decorator Pattern
note.
■ AbDecoratorはAbComponentの参照を持つ。
■ AbComponentでメソッド定義。実装はサブクラスで。
■ ConcDecoratorのメソッドであるmethodAは、参照をもつConcComponentのmethodAを呼び出し、さらに処理を追加する。= Decoration.
» AS3 : Commandパターン
2009.03.14 Category : AS3, DesignPatternDesignPattern学習。
Command Pattern
note.
■ Receiver = 実際の命令の受け取り手、というイメージ。
■ client(Documentクラス)がInvokerの役を果たすこともある。
■ 抽象クラスが使えないので、AbCommandはインターフェースにしてみても。
■ AbCommandを配列で保持するAbMacroCommandみたいなクラスもありうる。
add、removeを(インタフェースで)実装。
ConcMacroCommand.execute()で配列内の全Commandをexecute。ProgressionのSerialListみたいな感じか。Compositeにも近い。
» AS3 : XML演算子
2009.03.04 Category : AS3, ReferenceXML演算子リスト
| @ | XMLまたはXMLListの属性値にアクセス |
|---|---|
| {} | XMLまたはXMLListの式で変数を囲む |
| [] | XMLまたはXMLListのノードにアクセス |
| + | XMLまたはXMLListの値の連結 |
| += | XMLまたはXMLListの値を連結して代入 |
| .. | XMLまたはXMLListの子孫エレメントに移動。@と併用も可能。 ノード名がActionScriptの予約語と一致するときはXML.descendants()メソッドを使う。 |
| . | XMLまたはXMLListの子エレメントまたはアトリビュートにアクセス |
| () | XMLまたはXMLListの構造内の式を評価・実行 |
| <> | XMLタグを定義する |
| delete | XMLエレメントまたはアトリビュートの削除 |
サンプルXMLがこちら
<?xml version="1.0" encoding="UTF-8"?>A Kohei Tabuchi Catcher A Shingo Wakabayashi First base A Kizashi Sasaki Third base A Futoshi Nakagomi Pitcher A Hajime Uchiyama Short stop
var xml:XML = new XML(); xml = XML(xmlLoader.data); trace(xml..lastName[0].text()); //Result -> Tabuchi trace(xml..employee[4].@id); //Result -> 6 trace(xml..employee.(firstName=="Shingo").position); //Result -> First base trace(xml..employee.(Number(@id)>5).lastName); //Result -> Uchiyama
» AS3 : Progression TIPS
2009.02.11 Category : AS3, ProgressionaddCommandとinsertCommandの違い。
addCommand(
function(){
addCommand(new Command(step1));
},
new Command(step2),
new Command(step3)
}
実行順はstep2 → step3 → step1
addCommand(
function(){
insertCommand(new Command(step1));
},
new Command(step2),
new Command(step3)
}
実行順はstep1 → step2 → step3
実行リストの尻に加えるのか、横入りさせるのかの違い、みたいな感じ。
» AS3 : 予め配置されたMovieClipとクラス定義
2009.02.11 Category : AS3parentClass.as内
public var child_instanceName : childClass
・親クラスのプロパティ名 = 子のインスタンス名
・childClassはリンケージで書き出し設定済み
・childClass用のプロパティはpublicで宣言
» JS : TIPS
2009.02.09 Category : JS01.ブロックスコープが存在しない。
scriptA
function func(){
for(var i=0; i<10; i++){
var j = i;
}
alert(j);// access ok.
}
scriptAは以下と同じ。
function func(){
var i,j;
for(i=0; i<10; i++){
j = i;
}
alert(j);
}
「関数内ローカル変数は全て先頭で宣言したことになる」だと。出典:builder
02.クロージャでprivate的なプロパティ
var sample = (function(){
var n = 0;
return function(){
alert(n++);
}
})();
sample(); //0
sample(); //1
sample(); //2
» JS : jQueryプラグイン
2009.02.09 Category : JSjQueryプラグインは、jQueryオブジェクトを返す形で。
メソッドチェーンが切てしまうから。
$.fn.pluginName = function(){
return this.each(
function(obj){
var cgiPath = 'http://yourdomain.com/?';
var param = $(this).attr('href');
$(this).hover(
function(ev){
$('img#frame')
.show()
.attr('src',sgiPath + param)
.css({'border':'1px splid #DDD'});
},
function(ev){
$('img#frame').hide();
}
);
}
);
};
$(document).ready(
function(ev){
$('a').pluginName();
}
};
» JS : google JSAPI
2009.02.02 Category : JS<script type="text/javascript" src="http://www.google.com/jsapi">