心の底から心おきなく、memo(笑
1.
data_clumpに「検索系」を混ぜ込むイメージの草案
// XXX 1 $obj = new clump; $obj->set_from_cgi($req); $obj->set_order_by(項目); $ar = $obj->get_list( order by ? ); // 設定された項目でselect pkのListをげと // XXX 2 $obj = new clump; get_pk get_table_name $ar = $obj->get_where(); // where句の取得 page_controll_limit.inc // XXX 3 $obj = new clump; $obj->set_from_cgi($req); $obj->set_order_by(項目); $obj->set_page_num(n); $obj->set_page_all(); $ar = $obj->get_list(); // 設定された項目でselect pkのListをげと $ar = $obj->get_object_list(); // 設定された項目でselect pkのListをげと
に。
下記の2行はありがちなので、まとめて1メソッドにする構想。
…つくる? お便利系だが。clumpあればいらんのだよねぇ。
// 名を取得
$name = $req->find('name');
$conv->monoDic('name', $name);
さん。
携帯認証系 セッションIDをURIに埋め込まざるを得ない場合。 output_add_rewrite_var なんだけど…httpsで切れるからなぁ。作るか? IPチェック $n = sprintf(’%u’, ip2long($ip)); ではあるんだけど……… ハッシュテーブル独自に持ってやる? : 実装面倒 いっそhash配列?:メモリどれくらい食う?
よん。キャッシュさせない系の話
Cache-Control: private, no-store, no-cache, must-revalidat
調査せな。
ご。
検証して、サニタイズクラスに追加実装すっかなぁ
SELECT COUNT(*) FROM USERS WHERE ID='' or 1=1--' AND PASSWORD='' or 1=1--' 標準SQLでは「--」以下はコメント(MySQLは「#」がコメント記号)だから、where句は常に真となり、パスワードを知らなくてもログインができてしまうというものだ。
ろく。
メモリ測定
memory_get_usage()
いぢょ ノ
Flex memo
ちょいとお仕事で使うようのmemo。
buttonの見た目を画像にするには…
downSkin(ボタンを押した瞬間)、overSkin(マウス・カーソルを合わせたときの見た目)、upSkin(マウスがボタン外にあり,かつ,選択されていない(トグルボタンの場合)状態の見た目)
disabledSkin(「enabled」属性が"false"状態(=ボタンが無効状態)の見た目)ってのもある。
ちぃとそれるが。
「数枚の画面を行ったり来たり あなたの心を聞くのよ♪」にしたいときは
Panel、ViewStackなんて単語(コンポーネント)を基準に検索。
Applicationには「keyDownControll」なるイベントが捕捉可能。
Flex memo
「プログラマ」が把握しにくいんぢゃないかと思うあたりを、プログラマチックな用語でmemo。
まず。
基本、GUIの部品を、XMLフォーマットで.mxmlファイルに。
プログラムは基本、別ファイルにして.asファイルに。言語はActionScript。以下「プログラム」と呼称。
プログラムはmxmlファイルに書いても良いけど…分離した方がいいよねぇ?
分離しない場合、
<mx:Script><![CDATA[ ]]></mx:Script>
と記述する。
後でもう一度書くが。この書式の場合、先頭にある「mx:Application」インスタンス内のメソッドとして扱われる。
trace( Object );
でデバッグ表示ができる。
import mx.controls.Alert;
-中略-
Alert.show("test");もお好み。
んで。
XMLフォーマットの場合。えと…例えばラベルであれば
<mx:Label id="ttt" fontWeight="bold" fontSize="24"/>
とかって書くのですが。まず mx:Label が、いわゆるclass名。
んで…idのアトリビュート値がぢつは「インスタンスが格納される変数名」。XMLで書いたら、にゅるりとnewされるらしい。
つまり
mx:Label ttt = new mx:Label;
と一緒ってことらしい。
ここ試験に出るから覚えといて!!
で。いわゆるVBox、HBoxという「水平/垂直コンテナ」があるですが(この辺はどこのGUIでもあるよね)。
このコンテナにアイテムをプログラム的にぶち込む場合
VBoxインスタンス.addChild( ぶち込みたいインスタンス );
でいけるっぽ。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="onComplete()">
<!-- *********************************** -->
<mx:Script><![CDATA[
import mx.controls.Label;
private function onComplete():void{
var t:Label = new Label;
t.text = 'text 1';
vvv.addChild(t);
var t2:Label = new Label;
t2.text = 'text 2';
vvv.addChild(t2);
}
]]></mx:Script>
<!-- *********************************** -->
<mx:VBox id="vvv">
</mx:VBox>
</mx:Application>
つぎ。
外部ファイルに持ち出すのは…案外に簡単っぽ。
<mx:Script source="base.as" />
または
<mx:Script><![CDATA[ include "base.as"; ]]></mx:Script>
のどっちか。
ちなみにこれも、しっかりと mx:Application のインスタンス内のメソッドとして認識するっぽ。
ディレクトリ位置は「記述しているmxmlのファイルの場所を基準」にした相対パス。絶対でもイイらしいけどンなもん書く気なし。
多分。一端、main.asとかってのを作って。全部そっちの中でごにょごにょするのがよろしかんべと思われる。
おまけ。やるつもりはないけど「mxmlのタグの中にActionScriptをインラインで書く」やり方が、あるにはある。
やりたきゃ調べて(笑
ちゅぎ。
Flash、特にFlexは「イベントドリブンである」が前提。ここはよいね?
なので「イベントが発生した時にこの関数をcallしてほしい」的登録をする必要があるのだけど。
関数(っつかメソッド)はプログラムでいくんだけど、登録自体はmxmlで行う。
んと…こげなかんじ。
<mx:Button label="送信" left="0" click="buttonClickHandler(event)" />
典型的なボタンイベント。
この場合、clickというイベントが発生した場合に、buttonClickHandlerという定義された関数をcallする、って設定。
よく「コールバック」とかって言い方をするけど、Flashの世界観では「イベントリスナー」「イベントハンドラー」とか言うらしい。
いったんここまで。
無料って結局怖い…
近々には…例えばDoblogさん( http://www.doblog.com/ )のお話しとか。別のお話だと同窓会支援サイト「この指とまれ!」さん( http://www.yubitoma.or.jp/ )のいお話しとか。
一応念のため。
Doblogさんは「マシンがコケたあと復旧しきれずにそのまま雪崩式に終了。
ゆびとまさんは「甚大なトラブル」とかでサイトが停止、運営会社に至っては「住所が空室」「連絡つかず」など、登録された350万人分の個人状況の行方を含め不明。
んと…結構きつい内容になるのですが。
「無料のサービス」も「それに群がるユーザ」も…正直、ある程度まで「ビジネスとしては危ない」んじゃないかなぁ、とか、正直思ってるです。
まず、無料のサービスですが。どう冷静に考えても「成り立ち得ない」です。
という事は…運営者属性が「極めて希な"金のなる木を森で持ってる上に限りない慈善家"」である、という状況以外において。
多くの場合、なにがしか。運営者側には享受したい「隠れたメリット」が存在するです。
きれいなところでは「実験」や「実績」が欲しい、あたり。
今までに「やった事のない」技術とか「そもビジネスとしてなにも実績がない」とかの時に。
ぶっちゃけ「公開実験」的なニュアンスで行うサービスがあります。
当然ですが。どんなに運用しても「収益」という意味合いにおけるリアルなお金は(基本的に)まったく入らないわけで。
しかし一方で。最低限インフラにかかるお金とか、プログラム改修費とか運用フィーとか、色々な費用は当然ながらかかるわけで。
という事は。
「かかる費用 < 実験や実績作りのメリット」であるうちはよいのですが。
年月の経過(飽きた/実験データが十分に入った/経理の目が冷たくなってきた)、人数の増加、運用の面倒さが上がった、などの要因で
「かかる費用 > 実験や実績作りのメリット」
となった瞬間に「や〜めた」となるわけです(まぁ実際には「義務を払わずに福祉を要求する」方々によって"無責任だ"などといういわれのない中傷をされたりもするのでなかなか止めにくいとかって話も聞きますが)。
次に。
もうちょっと美しくないところですと…「個人情報が 欲しくて 売りたくて 切なくて シュビドゥバー♪」なパターン。
つまり。収益を「個人情報を売る」というところにおいているわけですね。
ある程度運営して、相応の数があつまったらあとはドロンするだけ。
なんていうか…当然ではあるのですが。
「本当の意味で無償」なんてまずあり得ないわけで。そこンところをしっかりと考えておかないといけません。
次に。
同じくらいに「無料ユーザ」ってのも、ぶっちゃけ「結構怖い」存在で。
下手をすると「お金を落としてくれるユーザ」を押しのけて、無料ユーザが多くのリソースを食っちゃうなんてこともあるんですね。
ただ…「○○万人ご利用!!」とかいうのは、印象値的に色々と美味しい部分もあって。その部分を目当てに企業さんが募集をかけるから余計に勘違いが増えてしまうってのもあるんですよね。
もちろん「無料」というビジネスモデルを全否定は出来ないのですが。
ただ「危ない部分もあるでよ」というのを…もう少し、提供側も利用側も意識しておかないと。色々と面倒なんじゃないかと思うんですが…どんなもんなんですかねぇ?
HTMLのデザインとテンプレートに関するメモ
んと…発端は、こんな発言から。
簡単に言うとロジックを書かないといけない理由があるわけではなく、
ロジックを書くやり方で慣れてしまったからです。
だとすると。「分離するやり方に慣れてしまえば」分離できるのかなぁ、と。
あとついでに
現代的なデザインとロジックの分離は
CSSでデザインがフルコントロール出来るのが、原理的、論理的に正しいと思います。
CSSでコントロールできない部分を作ってしまうのが罪だと思います。
という話もあって。
これは…おいちゃん的には
- DIVとかで画面を「ブロック単位に切り出し」て意味つけて
- その意味に対してCSSでレイアウトを決定する
のがきれいなのかなぁ、と。
んで。動的な要素はまた別途…というか…どうなのかなぁ。
例えばロールオーバー。そう「ポジションを翌日に持越し、決済期限を繰延べる」…ってそれは外国為替保証金取引w
「マウスを画像などに載せた時に、画像が入れ替わったりする動作」の、あれ。あと、マウスオーバでメニューを展開する、とか。
CSSでこれらを表現するのは…基本的にはどうかと思いつつ。「文書の体裁」というのがどこまでを指し示すのかが…もう一つ不明なあたりが色々ともやりもやり。
CSSには
・hover(マウスが要素上にいる時
・active(要素がマウスによって押されている時
・focus(要素にフォーカスがあたっている時
とかいう…怪しげな動的疑似クラス(って呼称らしい)があって。
これらを「体裁の一部」だと言ってしまえばよいのだけど…色々とお悩み。
そのうち一回、まじめに考察するかなぁ。
相当もやってるんだけど「CSSを動的に生成&出力」なんてことも、考えてない訳じゃないし。
authenticationとauthorizationの設定について
「設定ファイルに設定を書く」か「modelのどこか(initializeあたり)に設定を書くか」で悩んだ。
結果的に
・設定ファイルには「ユーザが触ってもある程度よいもの」を書きたいし、認証周辺はぶっちゃけ触らせたくない
・厳密には設定ファイルのほうがパースにcostがかかるのが、微妙にいや
の2つの観点から、一端「modelのinitializeあたり」に設定を書くように変更。
なにかもうちょっと積極的な理由があればいつでも話をひっくり返しますが B-p