カテゴリー: Development

PostgreSQL覚書 列定義を変更

alter table [table名] alter column [column名] type numeric(1,0) using 0 ;
alter table [table名] alter column [column名] SET NOT NULL;
alter table [table名] alter column [column名] SET DEFAULT 0;

1つめは型変更(数値型に変える、すべて0に置きかえる)
 using to_number([column名],0)として、カラムの値を数値に置き換える場合もあり。
2つめは、NOT NULL定義にする場合。NOT NULLを外す場合はDROP NOT NULLとする。
3つめは、Default値の定義。こちらもDROP DEFAULT とすれば外れる。

PHP5技術者認定初級試験を受けてみる

PHPの試験を受けてみようと決めたのが月の初めだったか。
初級の後、続けて上級も受けようと、アールプロメトリックで予約を取ったが、あまりに時間がないので上級の予約をキャンセルして初級の試験だけにすることになった。

今月は会社で土日出勤しなければならず、とても上級試験に受かりそうもなかったから。
上級試験の合格率は10%強ということで、結構厳しいようだ。
そこへいくと、初級試験は7割弱は合格するレベルなので、まぁ頑張れば受かるかな・・・と。

まずはじめに、認定教材である「PHP5技術者認定初級試験対応 PHP公式資格教科書」を買って一読。
そして次に、ITトレメの模擬問題をやってみたのだが、教材レベルではとても解けそうにない問題が数多くあり、急いでオライリーの「プログラミングPHP 第2版」を買いに走る私。

「プログラミングPHP 第2版」を順に読んでいくものの、とても試験日までに最後のページまでたどり着けそうもないため、途中で断念。

試験の前々日、前日は、再度「PHP公式資格教科書」とITトレメの模擬問題をやって試験に臨んだ。

問題はよくわからないものもあったが、それでも大学受験とかと同じ要領で答えていけば大抵はあたるのではないかと思う。
たとえば、「必ず・・・」とかいうのは間違い、とか。

まぁ、そんなこんなで、100点には届かなかったものの、30分強で試験を終えて無事合格はできた。
試験問題について書くことはできないけれど、自分が間違えたのはマルチバイトのメール送信のところだった。
ちゃんと教科書にも書いてあることだったのに・・・
Mix-inって言葉が出てきて、なんじゃそれ?って思ったけど、多重継承のことだった。

認定教材だけでは合格できないと思うけど、ITトレメを一通りやれば受かるかなぁと思う。

Excel覚書 どのバージョンで起動させるか

例えば、2003と2007両方インストールしていた場合、後でインストールしたバージョンで起動するようになっているので、常に2003で起動させたいというときは、以下のコマンドをスタートボタン>ファイル名を指定して実行で実行させる。

“C:\Program Files\Microsoft Office\OFFICE11\excel.exe” /regserver

パスはインストール環境によって違うので注意。
OFFICE11ってのをOFFICE12とかに変えれば、常時2007で起動とかになるハズ。

便利ツール 文字検索・置換 Devas

対象フォルダの設定、複数拡張子指定、検索文字列指定で検索ボタンをクリックすると、該当行の一覧がツラ~~~と並んでくれる。

そして、チェックをつけた行だけ文字置換をすることができる。
(同じ行で置換するものとしないものっていう対応はできないと思うけど)

行の実際の内容が表示されるのが便利。
(チェックをつけたファイルだけ置換ってのはあるんだけど、行にチェックをつけるものってあまりない)

PostgreSQL覚書 coalesce(NVL)

OracleでいうところのNVLって、postgreにはないと思ってたけど、あった。

COALESCE関数:coalesce(paraA,paraB)

paraA is NULL なら、paraBに置きかえてくれる。

jQueryを使ってみる

最近色々やってる。
VBマクロに、actionscript、phpと、それぞれ微妙に違うので、鬱陶しい。

そして今回は、JavaScript、jQueryだ。

やってみると、まぁ、カンタンな動的ページがカンタンに作れてしまうので、なんだか嬉しくなっちゃって・・・

まぁ、ありがたいことだ。

ActionScriptの面白さ

とか楽しさとか、色々できるのねっ!とかというのは、wonderflを見てて知ってたけど。
やっぱり開発してて面白い言語というのはいいなぁと思う。

この1月、業務でAirアプリを作成することになり、サーバ側のJavaの処理に送るやり方やら、フォルダ内のファイルを取得する方法やら、まぁいろいろ勉強した。

きっちり動かすまで大変だったし、FlashでのAir開発と、Flexでのそれとでは、微妙な違いがあったりするので、

あっちでできてなんでこっちでできないの!

なこともあったけど、まぁよい勉強になった。
次からは、phpでの開発に戻るのだけれど、同じように、多少「キーーーー」とか「ウギャァ・・・」とか言ってたとしても、スムーズにいく開発にしたいものだ。

auでiPhone5、willcomでストラップフォン

いやぁ~、嬉しいニュース。

まずは、iPhone5がauでも使えるようになるらしいニュース。

うちの家族は、au by KDDI&家でもKDDIなので、これはGood News。
ポシャらないことを願います。
そして、これに触発されて、もっと面白いAndroid携帯が出てくることも楽しみにしておきます。

そして、willcomでストラップフォン登場。

ストラップフォン WX03A

待ってました!

Willcomなら出してくれるのではと思っていたケド、ようやく・・・kao21.gif

家族で唯一willcom PHSを使用している私。
(どうせ、電話架けないし、架かってもこないし・・・あぁサミシイ人生だ。)

W-VALUE契約が12月に終わるから、検討してみよう。

ActionScript3.0覚書 SimpleButton

ActionScriptでボタンを作るやり方は色々あるようで、MovieClipを利用しButtonMode=trueにするやり方や、fl.controlsを使ってしまうやり方。
そして、SimpleButtonを使うやり方。

var sb:SimpleButton = new SimpleButton();
var b1:Sprite = new Sprite();
b1.graphics.beginFill(0x009966,1);
b1.graphics.drawRect(0,0,100,25);
b1.graphics.endFill();
//--  中略 --
sb.upState = b1;
sb.downState = b2;
sb.overState = b2;
sb.hitTestState = b2;

リファレンスに、
SimpleButton(upState:DisplayObject = null, overState:DisplayObject = null, downState:DisplayObject = null, hitTestState:DisplayObject = null)
って、書かれていたものだから、upState以外は指定しなくっても大丈夫なのかと思ってたらそうではなかった。
表示はされるんだが、ボタンとして機能してない。

どういうことなんだ!kao21.gif

って、昨日から悩んでたけど、今日分かったことは、「後からでもなんでも、とりあえず指定してやらにゃぁならん」ということだった。

ということで、up,down,over,hitTest すべてのStateプロパティにSpriteをあてがってやると、ちゃんとボタンとして機能してくれた。

かる~いワナだよ、これは。

ActionScript3.0覚書 AirのWindowが閉じるときに処理を入れたい

Flash ProfessionalでAirを開発中。
Airのウィンドウの右上の×ボタンをクリックされたときに確認ダイアログとかを出す処理を入れたいのだが、

先日載せた、

NativeApplication.nativeApplication.addEventListener(Event.EXITING, ファンクション名);

だと、どちらかというと終わったときの処理になってしまう。
FlexでAirを開発している場合の書き方は、いろんなページで書いてあるのだけど、Flashで開発してるものだから、イマイチ参考にならん。
(私、応用力とかないし・・・)

で、上司にまで「探してるけど出来ないんですぅ~」と泣き言言うと、上司も探してくれた。
「できない、デキナイ・・・」と思いながら、何気なく下のコードを書いたら、想定どおりに動いちゃった。

stage.nativeWindow.addEventListener(Event.CLOSING, ファンクション名);

で、指定したファンクションのなかにダイアログ表示処理を書けばよいことが判明。107256.gif

自己解決・・・しちゃったヨ。

でも、上司さんありがとう。時間とらせてごめんなさい。kao29.gif

ActionScript3.0覚書 文字列とバイト数

通常のTextFieldだと、複数行指定してやれば勝手に改行してくれる。
だが、ラジオボタンコントロールのラベルは改行してくれない・・・

で、ラジオボタンのTextFieldのwordWrapプロパティとかをいじればよいということ。

FLASH-JP.COM RadioButton コンポーネントの文字を自動改行させたい

だけど、そもそも指定バイト数で折り返したいときってどうすんの?と思って検索したところ、ありがたい記事発見。

yoshiweb.NET-blog ActionScriptで文字判定

この記事を元にチャレンジ。

checkCodeは参照先そのまま。
checkHalfは、バイト数を返すように変更。
getStrBytesTotalは、checkHalfの変更に伴い変更。
setReturnCodeは、オリジナル。

// 指定バイト数(default=60)で折り返し
function setReturnCode(str:String, max:int=60):String {
	var cnt:int = 0;
	var len:int = str.length;
	var s:int = 0
	var e:int = 0
	var buf:String = '';
	for (e = 0 ; e < len ; e++ ) {
		cnt += checkHalf(str.substr(e, 1));
		if (cnt >= max) {
			if (buf.length > 0) {
				buf += '\r';
			}
			buf += str.substr(s, e-s+1);
			s = e+1;
			cnt = 0;
		}
	}
	if (buf.length > 0) {
		buf += '\r';
	}
	buf += str.substr(s, e-s+1);
	return buf;
}

// 文字列のバイト数を求める
function getStrBytesTotal(str:String):int {
	var cnt:int = 0;
	var len:int = str.length;
	while (len--) {
		cnt += checkHalf(str.substr(len, 1));
	}
	return cnt;
}

// 指定文字のバイト数を求める→全角なら2、半角なら1を返す
function checkHalf(str:String):int{
	return (checkCode(str, 0x00, 0x7f) || checkCode(str, 0xFF61,0xFF9F)) ? 1 : 2; 
}

// 全半角判定→全角ならfalse、半角ならtrueを返す
function checkCode(str:String, min:uint, max:uint) {
	var len:uint = str.length;
	while (len--) {
		var num:uint = str.substr(len, 1).charCodeAt(0);
		if (num < min || num > max) {
			return false;
			break;
		}
	}
	return true;
}

とりあえず、いい塩梅にはなりました。
あんばいって塩梅って書くんだねぇ・・・よい塩加減なのね)

コントラスト比

先日行ったWordcamp Kobe 2011では、参考になることが幾つかあって、そのひとつが、

デザインにおけるコントラスト比

重要なので繰り返し言わない代わりにでっかく書いとく。

で、調べるツールを探したところ、いいツールを見つけた。

カラー・コントラスト・アナライザー

CCA
CCAキャプチャ画像

これがいいなぁと思った理由は、視覚特性(色盲とか)による色の見え方を表示してくれるところ。

こういうのは、そういう特性を持った人にしかわからないから便利だ。

って、デザイナーとかだと、こういうのは当たり前の知識だろうし、こんな表示しなくても分かるんだろうけど、私はそうではないのでWordcampに行った甲斐があったなぁと思った。

配色については、下記ページが参考になった。

まりっぺぶろぐ 色彩センスのいらない配色講座

自分のブログでどうこうしようと思わないけど、仕事で活かせるといいナ。
(今Flash作ってるもんでね)

ActionScript覚書 TextFieldのTextFormatについて

TextFormatに「bold = true」を設定したにもかかわらず反映されない・・・kao12.gif
と思ったら、下記のリンクが非常に参考になった。

flabaka setTextFormatのメモ

要は、

  1. TextFieldに値が入っている場合のみ、setTextFormatを使用できる。
  2. 値が入っていないときは、defaultTextFormatを使用しないと反映されない。
  3. 値が入っているときには、defaultTextFormatが適用されない。

ということである。
ありがとうござるよ!kao22.gif
無事うまく表示できたでござる!!

WC Kobe2011

トイレじゃなくって、Wordcamp神戸に行ってきた。
神戸は神戸でも、僻地っていったら失礼だろうケド、遠かった。
電車代で800円超ってちょっとつらいな。

で、中身は・・・

正直イマイチ。
もっと、面白い話が聞けるかと期待したが、(スピーカーのブログとかでも煽ってたし)まぁ、さほどでもなかった。

ビデオに撮ってるから話せないってさ、何のためのセッションなの?
(わざわざビデオ停止させて話してくれた人もいたけどね)

あと、セッションのパワポを自身のサイトで公開する、とかいうのもおかしいでしょう。
WCの公式サイトで出すのが普通でしょ?

時間がないから、喋る内容も余裕がないってのは聞く側はもちろんのこと、スピーカーにとっても面白みがないんでないの?

と、前半くだらねぇ~、そんなの検索したら出てくるだろ~みたいな話ばかり聞かされて、正直もう座れなかったら帰ろうと思ったけど、後半はなかなか面白いセッションに巡りあえたのでよかった。

今後また大阪周辺でWordcampが行われることをセツに願いつつ、アンケートは辛口で返した。
(期待の表れなんだよ!)

ActionScript3.0覚書 重なり(深度)

忘れそうなので、いや、忘れてたので。

MovieClipやボタンなどを最前面に表示したいとき
this.setChildIndex(ターゲットインスタンス名, this.numChildren – 1);

逆に、最背面に表示したいとき
this.setChildIndex(ターゲットインスタンス名, 0);

絶対最前面にしたいからって、「9999」とか指定するのはムリそう・・・

ActionScript覚書 ラジオボタンやチェックボックスコンポーネントのTextFormat

日に焼けて顔が腫れて、仕事が手に付かない・・・
(って言い訳にならないよなぁ)

ラジオボタンやチェックボックスのコンポーネントを使っていて、これらのラベルのフォントを設定する場合に利用するのが、setStyleメソッド。

で、チェックボックスにチェックが入ったらラジオボタンを活性に、チェックを外したら非活性にというロジックを組んだところ、落とし穴が・・・

非活性のときのフォントが標準のままの状態になってしまっているではないか!!

というので調べたら、disabledTextFormatというのを発見。

var tf:TextFormat = new TextFormat(); 
tf.font = "MS Pゴシック"; 
tf.size = 22; 

//上が活性時、下が非活性時
A_RadioButton.setStyle('textFormat',tf);
A_RadioButton.setStyle('disabledTextFormat',tf);

なるほどねぇ・・・

ActionScript3.0覚書 イベントハンドラに引数を与える

すぐに忘れてしまうのでメモ。

同様の処理をさせたいのに、いちいち別のFunctionを作るのはメンドー!なときのやり方。
以下は、左ボタン・右ボタンで、同じMovieClipを左右に動かしたいときの方法。
moveHandlerの引数に、移動距離を与えて左右に動かすようにしている。

// 呼出元
LeftButton.addEventListener(MouseEvent.CLICK, moveHandler(-10));
RightButton.addEventListener(MouseEvent.CLICK, moveHandler(10));

//呼出先
function moveHandler(x_pos:Number = 0):Function {
	return function(e:MouseEvent):void {
		// MovieClipを左右に動かす
		mc.x += x_pos; 
	}
}