忍者ブログ

カウンター

プロモーション

カレンダー

11 2024/12 01
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

AntinomyMy の実験室

   私のWEBアプリ実験室です!

ブログ内検索

楽天でお買い物

twitter

最新トラックバック

最新コメント

忍者アナライズ

ウェザーニュース

バーコード

本を買う

アクセス解析

Google+

[PR]

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


No Image

PHP の構文機能 変数の文字列(string)を関数名に出来るとは(゜o゜)

PHP の調べ物

PHP の構文で最近、PEAR の中身を見て知った機能?書式

関数の名前を変数で指定してみると
$funcName="var_dump";
$funcName('true');


こう書くと

string
 'true' (length=4)

こうなる!


$$で指定した変数の中身を変数名に出来るのは知っていたが
こうやって変数の持つ文字列の値を関数名にも出来るなんて知らなかった(゜o゜)!!!


忘れる前の( ..)φメモでした

お粗末<_ _>

拍手[0回]

PR

No Image

SQLite でメモリからディスク、ディスクからメモリへのコピーしたい!?

SQLite の調べ物

メモなので、実際に試してませんが、SQLite(3)について調べたメモ説明です。

うーん
SQLite を使う分に
メモリで動かせてもお膳立てで時間がかかるのは困るので
メモリに展開されているレコードデータをディスクなどの記憶溶媒へ保存
または
ディスクに置かれているレコードデータをメモリへ展開する。

このどちらかをPHP 返して1レコードづつやってると
とんでもなく時間がかかるのは明白なので
こんなバカげた事はPHP の命令だけで作りたくない。

というか、PHP の命令だけで作るなんていう事をすると
メモリを使っている意味が・・・無くなるw

なので調べてみた所、
ATTACH(ATTACH DATABASE)
というもので、構文が
これは、
ATTACH (DATABASE) expr AS database-name
でした。

なんでこれに気がついたかというと
英語のサイトで
PHP / SQLite - Copying a table from disk to memory
ここにATTACH を使ってテーブルとして読み取っているっぽいのを見つけたから。

うーん・・・

これでも分かりにくくて
日本語のサイトが無いか調べた

あった、クエリーそのままの表現の説明サイト
ALTER TABLE ~テーブル構造を変更する~

ここのサイトの説明の雰囲気では、接続中のデータベースの一部として
他のデータベースからデータを読み書きできるのが AS らしい。

公式マニュアルの
ATTACH(ATTACH DATABASE)
では、expr の部分がやたら色々変えられるのが図式で分かるが
この場合、日本語のマニュアルでは

基本となる接続中???のデータベース名は選択で記述できるが、
まぁ、それは無視するとしても
追加するファイル名と、データベース名が書かれる様だ

ATTACH 追加するファイル名 AS 追加するデータベース名

こんな感じ

それで追加するファイル名は、パスが含まれる場合があるので、
勿論 '中身' で囲んでパス名+ファイル名にしておけばいいのだと思う。

つまり例えば、PDOなら
$pdo = new PDO('sqlite::memory:');
としてメモリを開き、
c:\temp\sqlite.db
というパス名+ファイル名をメモリ上に置きたい場合


$pdo->exec('ATTACH "c:\temp\sqlite.db" as filedb');
としてまず、物理ディスクにある内容c:\temp\sqlite.db を、filedb として
扱える様に定義(この時点で読み込まれるのかは不明、英文読んでないし
メモリの量のテストmemory_get_usageとかで試してみた訳でない)

そして現在のメモリにテーブルを作って、ディスクの中身に当る
filedb.foo をbar として保存する
$pdo->exec('CREATE TABLE bar AS SELECT * FROM filedb.foo');

また、多分こういうinsertの方法でもいける????
$pdo->exec('insert into bar .table select * from filedb.table');


最後にDROP(要らないならdrop なんだろうけど)でなく、
DETACHで元のテーブルを触る事なく無傷で
テーブルを現在のメモリテーブル操作から切り離す
$pdo->exec('DETACH filedb');

これでいいみたいです???

他にも
2つのSQLiteデータベースを開いて、片方のDBにあるテーブルからもう一方のDBにあ...

とかも同様で参考にしました。

PDO を使った方がいいかなと思いましたが、別にPDO でなくても
クエリーだけの操作ならば問題なくいけるみたいです。

試しては居ませんが、何度も何度も同じ様な疑問を抱き
検索をしているので、この際まとめました。

以上、忘れない為のメモでした。

お粗末<_ _>

拍手[0回]


No Image

USB充電ドングル だとぉ・・・・!!!

凄いと思ったアイテム

今日からたまに、手に入れたアイテムに関してのブログを載せてみようと思う

今回この記事を書こうと思ったのは
手に入れて汗が出る程驚いて
これは持ち歩こう!と思ってしまったからと
誰かに話したらSUGEEEE!(凄い!)と思うんじゃないかと
(勝手に一人で)興奮したからである(* ´Д゜*)(あーはずかしw)

まぁ興奮しすぎて何を入手したかの大事な所が飛んでいるので
そろそろ本体に入る(^Д^)

私はUSBで充電しなければいけない機器を複数持つが
困った事にUSB充電用のACアダプターでも
純正じゃないと充電できないよ;x;なんていう事柄に
複数遭遇して困っていた。

そこでネット上で見つけたアイテムに着目して
今回入手したのはコレだ!

これを買って、届いたので実験してみた。

とりあえず、当初から困っていたAU のF001 っていうガラケー君、
これ、純正のAUで買ってくるUSBのACアダプター以外は
電流足らなくてうまく充電できませんでした。

例えば


などを持っていますが、これ
4ポート同時充電可能なUSB-ACチャージャー ブラック
■USB充電に対応した様々な機器に利用可能
■家庭用コンセントからUSB充電可能 [仕様] 最大出力合計2000mA 入力電圧:AC100~240V(50/60Hz )
出力電圧:DC 5V 出力電流:2000mA max. (USB×4ポート合計)
って書いてあるけど、なぜか2Aと書いてあってもどうもこれでは
AU純正の機器が(個体差はあるかもしれないけど私の持っているものでは)充電が
出来ませんでした;v;

余談ですが、最近知ったのは2.1Aの他メーカーのもあったのですが
とりあえず4ポート合計なんだなってことで、持ってないのも含め
そしてこれで動くかどうかも分からないので紹介だけで終りますが
「ルートアール 2100mAh 4ポートUSB AC電源 RA-USBAC04B」っていう商品も
今さっきみつけました。


余談になってしまいましたが、本題に戻りますが、
私の持つその4ポートで2Aの商品(勿論合計でMAX2Aなので1ポートしか使ってないですが)でも、
このUSB充電ドングルを繋ぐと
AUのF001 が充電できました!!!

それで、こういった用途にこのUSBドングルを買った訳ですが
「なんで?!!!」と思って納得がいかなかったので

という1Aと2AのUSBポートがついた、バッテリーを持っていたので
これの2AのポートにそのAUのF001っていうガラケーを繋いでも
充電が出来なったので、このUSBドングルを繋いだ訳です。

するとこれもまた、充電が出来るじゃないですか?!

SUGEEE!と思った訳で、ハイテンションになって
何となく、ついでに1Aのこのバッテリーのポートにも
繋いでみて、動くわけないよな・・・と思って
ガラケーの充電ランプを見たらなんと!!!?
充電できるじゃないですか?!!!

SUGEEE!!!(凄い^^;)

なんでこうなるのか!というくらいですが
かなり便利というか、かなり強力であったので
今度からこれを持ってあるこうと思います。

また、Thinkpad8 も私は持っていますが
今修理(というか、不具合です)に出しているので
これも戻ってきたら同じくモバイルバッテリーのUSB端子では
充電できなかったので、充電が出来るかどうか試してみたいと思います!!!

ちょっとリンクがAmazonであったり楽天であったりあやふやなんで
次回THinkpad8 が戻ってきたらこの変も修正します。

一応なんか気になったので
思い切って書いてみました。

お粗末でした<_ _>

拍手[0回]


No Image

遠い祖先(親の親xn)から見た その子の要素は何番目かを知る(jQuery)

JavaScript の調べ物

前回、
jQuery 先祖要素が、そのまた親から見て何番目か調べる、現在の何世代も上の親で何番目か? (親の親要素は何番目?)
という記事を書いたが、結果的にこの関数をつかっていたので、
追加としてメモ

/* 遠い祖先(親の親xn)から見た その子の要素は何番目かを知る */
function progenitorChildrenLength(progenitorName, childName, thisValue){
return $(progenitorName).children(childName).index($(thisValue).parents(childName).get(0));
}

上記の関数を使えばいいです。

progenitorName は、知りたい要素の親がいる、そのまた親の名前が入ります。

chidName は何番目か知りたいidやらclass の名前を入れます、
'#id'やら'.class'、もしくはそれらが入った変数です。

thisValue はthis で得られた自身のポインタです。

メモでした、お粗末<_ _>

追伸:

これ上記の関数であると、親の親がクラスで同じ名前の親がいると
うまく動かないです。

なので変えました、そしてLength も名前的に変なので
jQuery のindex が元なので名前も変えました。

/* 遠い祖先(親の親xn)から見た その子の要素は何番目かを知る */
function progenitorChildrenIndex(progenitorName, childName, thisValue){
return thisValue.parents(progenitorName).children(childName).index($(thisValue).parents(childName).get(0));
}

上記であればいいんでないでしょうか?

拍手[0回]


No Image

jQuery 先祖要素が、そのまた親から見て何番目か調べる、現在の何世代も上の親で何番目か? (親の親要素は何番目?)

JavaScript の調べ物

自身のかなり上方の祖先である親は、そのまた親要素で何番目なのか?
親の親は何番目?という簡単そうで難しかった・・・

くだらない事で2日も費やしたのでメモ・・・


こんな環境のHTMLである

<div "~~何処か~~">
 <div class="oya_no_oya">
  <div class="uenohouno_oya">
   <div>....(div が何階層もあるイメージ)
        <div class="targetChilled">対象の子供<div>
   </div>.... (何階層もあるのを終了する)
  </div>
 </div>
</div>

上記の様な構図で、子供である.targetChilled がクリックされたときなどに、
その子供が含まれる.uenohouno_oya 要素はoya_no_oya 要素で何番目なのか?
という事が知りたい!!!

○まずミスケース、removeからテストしていたので
$('.export-rule-delete-button').click(function (){
 $(this).parents('.uenohouno_oya').remove();
 alert($('#export-rule-item-area').children('.uenohouno_oya').index($(this).parents('.uenohouno_oya')));
}

this ポインタを使いたい場合には、this はremove などが
入っているとthis の内容まで変化して使えなくなっていることに気がつかなかった・・・(2日も)


○動く様にすると
$('.export-rule-delete-button').click(function (){
 alert($('#export-rule-item-area').children('.uenohouno_oya').index($(this).parents('.uenohouno_oya')));
 $(this).parents('.uenohouno_oya').remove();
}

やはりremove は後でなければいけない、もしくは$(this)を
thisObj =$(this)で変数にでも入れて、保存して、それを用いれば
this の値が変わっても使える

○あまり意味があるかどうか分からないが
$('.export-rule-delete-button').click(function (){
 alert($('#export-rule-item-area').children('.uenohouno_oya').index($(this).parents('.uenohouno_oya').get(0)));
 $(this).parents('.uenohouno_oya').remove();
}

.get(0) を追加しておいてみた、理由は
$(this).xxx() で取得した内容は、add()などを含み、ほぼ多くの場合で
中身がdocument 要素から取得したDOMではないので、
オブジェクトの比較に使えない場合もあるかもしれない場合も
もしかしてあるかもしれない?と思ったから、でも必要無いかも。
○動く様にすると
の部分で完成でいいかもしれない。

参考(結果的にあまり使わなかったが良かった参考リンクメモ)
jQueryオブジェクトの比較
jqueryオブジェクトを比較する時はDOMエレメントを比較しよう
JavaScript - jQueryオブジェクトの比較 - Qiita
jQueryオブジェクトの比較 - paranitips

追伸:
これ、また続きを作りました・・・済みませんorz
遠い祖先(親の親xn)から見た その子の要素は何番目かを知る(jQuery)
というか、次のブログへ見に行ってもらうのも気が引けるので
結果だけこっちにも残します(詳しくなんでこうなったか知りたい方は上記をどうぞ^^;)

以下結果
↓↓↓↓↓↓↓↓↓↓↓↓↓↓
/* 遠い祖先(親の親xn)から見た その子の要素は何番目かを知る */
function progenitorChildrenIndex(progenitorName, childName, thisValue){
 return thisValue.parents(progenitorName).children(childName).index($(thisValue).parents(childName).get(0));
}






拍手[1回]


[PR]