2010年4月4日日曜日

jQueryでセレクトリストの選択を解除する。

jQueryでどのコードが書けるのかが度々わからなくなっちゃうので、備忘録。

フォームからトランザクションを投げた後に、フォームの内容をクリアーしたいんだけど・・・
どうやったらいいかよくわからなかっちゃったけど、試した結果はとっても簡単でした。
// html
<select id='item'>
  <option value='1'>1111</option>
  <option value='2' selected>2222</option>
</select>

// javascript
$('#item').children().removeAttr('selected');


もちろん、以下の様な方法も可能。

$('#item').children().each(
  function(i){
    $(this).removeAttr('selected')
  }
);


「行数が増える事」「内部処理的にあまりかわらない事」を考えると前者の方は1行で済むので優秀。

2010年4月1日木曜日

本日

本日

01:30 出勤
11:30 退勤

16:30 出勤予定

なんで僕だけエイプリルフールじゃないの

2010年3月6日土曜日

TSUTAYA DISCASの回転率

僕は以前(2年くらい前かな)からTSUTAYA DISCASサービスを利用して、
DVDのレンタルをしています。

DVDのレンタルは・・・札幌にいた頃は、1枚100円レンタルの日に5枚くらいを借りていたのですが、
こっちに来た当初は、レンタル価格が思ったよりも高く、レンタル屋に行くにも電車に乗っていくから、あまり安くならない事にも気づき、行く事はなかったのですが・・・

DISCASサービスに出会ってからは、よく利用するようになりました。


このサービス、月2000円なのですが、貧乏症の私は1枚100円の単価は上げたくない。


そうすると、月に20枚弱のDVDを借りるのが目安。

サービスとしては、1回に2枚借りる事になるので、月に10回転。

そうすると、3日で1回転させる事になるのですが、
これがなかなか難しい。

郵便事情と社会人的な事情を考えると、最速で4日が限度。
一番うまくいったときでも16回転が限度でした。

ですが、最近はどうにも3回転くらいがやっとです。

なんか損した気分。

2010年3月4日木曜日

jqueryのダイアログ上からdatepickerを実行する。

また、jqueryでプチはまりました。

jquery uiのdialogで表示されたダイアログ上にフォームを配置して、
そのフォーム上からデータのやり取りをしようと、パーツを配置していったのですが・・・datepickerを配置してもどうにも表示されない。

firebugでちょっと調べたところ、
モーダルダイアログの背景レイヤーにz-indexの1000、
ダイアログ自体にz-indexの1001が設定されておりました。

datepicker自体にはz-indexの指定が無いため、
必然的に発生元となるダイアログよりも下層のレイヤーとなる為に表示されなかった模様です。

ネット調べてみると、dateickerに指定されているスタイルシートクラス「.ui-datepicker」にz-indexをつけて、非常に大きな値を設定する方法が紹介されていましたが、

私の性分として、その時々で決めた「決めうち数値」のルールは、
後から忘れてしまう事が多いので、あまり使いたく有りません。

なので簡単なスクリプトを書くです。
$('#date-input').datepicker({
  beforeShow: function(input, inst){
    $('#ui-datepicker-div')
      .css(
        'z-index',
        parseInt($($(input).parents('.ui-dialog').get(0)).css('z-index')) + 1
      );
  }
});


日本語で略して書くと
「datepickerが配置されているinputアイテムの上位にあるdialogのz-indexの値を調べて、+1した状態で表示する。」です。

dialogの上からdialogを表示してその上にdatepickerを配置する場合も一応ok。
できない場合は、「parents('.ui-dialog').get(0)」のgetの引数を変えてみるといいかも。
「0」指定で、一つ上のdialogが引っ張って来れるはず。

あと、「css('z-index')」で引っ張ってきた値は文字列なので、数値化する必要がある。

2010年2月19日金曜日

phpのsettype関数にぷちはまり

久しぶりにphpにはまりました。

実は構文チェックエンジンを作成してまして、
文書中の"true""false"という文字列を、ブール型のTRUEFALSEとして評価しなきゃいけない機会が発生しました。

ここで私は、settype関数を利用しました。
settype関数は第1引数の変数を第2引数で渡した型文字列で変換するというモノです。
settype(検査したい変数, 変換させたい型)
php:settype

変換に利用できる第2引数には以下が指定できます。
(この時、文字列で指定しなければならないので、クォートします。)
"boolean" or "bool"
"integer" or "int"
"float" or "double"
"string"
"array"
"object"
"null"

今回はブール型に変換したいので"boolean"を指定します。
ですが結果は以下のようになってしまいました。
$item_true = 'true';
$item_false= 'false';

settype($item_true, 'boolean');
settype($item_false, 'boolean');

var_dump($item_true); // boolean true と表示される
var_dump($item_false); // boolean true と表示される


ここで、"boolean" を "bool" に変更しても結果は同じ・・・

そしておかしさに気づいたのですが、上記の $item_true に適当な文字列を突っ込んでみても、boolean true に変換されてしまうのです。


これはと思って以下のように変更!

$item_true = '1';
$item_false= '0';

settype($item_true, 'boolean');
settype($item_false, 'boolean');

var_dump($item_true); // boolean true と表示される
var_dump($item_false); // boolean false と表示される


やっぱり!

phpのtruefalseはdefine定義で1, 0を表しているようなもんだから、変換の時は、1,0を元に評価してしまうのですね。わかります。


元々の目的は構文チェックエンジンの作成なので、
そういうことだったら、以下の記述で十分
$item = 'true';
if($item == 'true' || $item == 'TRUE')
{
  $result = true;
}
else
{
  $result = false;
}

var_dump($result); // boolean true と表示される

2010年2月15日月曜日

厄払い



先日14日に、西新井大師まで厄払いに行ってきましたー。

本当は年始に行こうと思っていたんですが、乗り遅れちゃったので旧正月に合わせていってきました。

お札買って、おみくじも引きました。
おみくじは久しぶりの大吉です!




ただ、何となく体がだるいのはなぜでしょうか・・・風邪をもらってきたかも・・・

2010年1月21日木曜日

PEACE MAKER見た

http://新撰組peacemaker.jp/

なんか違和感。

最初はアニメ化されたときに見てたから、
実写との違和感を感じてたんだと思ってたんだけど、

それもなんか違うなぁと・・・


何が違うかっていうのがさっきわかったんだけど、
このドラマって、お腐さん向けの臭いがぷんぷんすんだよね。


ボクは歴史大好き父さんの影響で、
おっさん向けのテイストで洗脳されてるっぽい。


だから、史実は別にしても「新撰組の隊士はこんな感じ」っていう小説やドラマで
デファクトスタンダードにされている人物像がベースになっちゃって、

漫画という形で、今までの古い常識にメスをいれた上で、
さらにドラマ化っていうと、ボクの知っているものとは全く別になってる上に、
歴史物はなるべく史実に沿って欲しいなんて思ってるもんだから、
やっぱり違和感は感じるなぁ。

2010年1月8日金曜日

AirMacDiskをセットアップしてみる(裸族のインテリジェントビル)



センチュリー社の「裸族のインテリジェントビル」を購入したので早速セットアップです。


ちょっとパソコンの数が増えてきたので、数を減らして管理を楽にしようというのが目的です。


今我が家には、「ファイルサーバ」兼「テレビ録画」兼「アプリサーバ」のパソコンが一台あるのですが、

こいつの「ファイルサーバ」機能をインテリジェントビルに移し、AirPortExtremeにつなげてNASとします。
そして「テレビ録画」機能は、地デジ対応TVキャプチャを買って地デジ対応したいと思います。
※「アプリサーバ」としての機能は、以前このブログでも紹介したMacサーバに移行済みです。



まずは、現状のパソコンのデータを移します。

そもそも、今「ファイルサーバ」として活躍してくれてるパソコンの容量は、
1TBのHDDを4台使ってRAID01を構成しています。

この4台をインテリジェントビルに移してRAID10として利用します。


データ移行ですが、実質のHDD容量が2TB(計算によりますが、windowsで見ると1.8TBと出ます。そう読み取ってください)あるうち、
実際の利用領域は「旧アプリサーバで200GB」「テレビ録画で500GB」なので、1.1TBの移行になります。

その1TBのデータですが、手持ちのHDDの関係で以下のように分割退避。
・500GBHDD
・80GBHDD×2
・60GBHDD
・メインwindows機残り200GB
・Macサーバ残り250GB

という事で、社会人な僕は寝る前の時間、寝てる間、会社にいってる間の時間を使って2日間かけて移行しました。



ようやく移行が終わったら、今度は物理的なセットアップです。

今までのパソコンから取り出して、インテリジェントビルにオン!
RAIDスイッチをいれたらokです!

そしたら、今度はフォーマット。

転送速度が気になるので、eSATAでメインwindows機につなげてNTFSフォーマット。(これは、寝る前にフォーマット設定して、会社行く前が80%超えたくらいの進捗だったので、10時間くらいでおわったかな?)



次は、AirPortExtremeにつなげてデータ転送・・・



HDDが見つからない・・・



AirPortのマニュアルを見ると認識されるとAirMacディスクユーティリティーに認識されると書いてあるけど、全然認識されない。


ではMacでは?
認識される・・・が、書き込めない!


なんで!?


あ、MacはHFSだ!


そんな訳で、HFSで再びフォーマット。
(実はNTFSにフォーマット後に、退避したデータを半分近く戻したので、再退避に1日つかいました・・・(;ω;))



今度は、Macで認識・・・できる!


windowsで認識・・・できない!

AirMacディスクユーティリティーでログインしようとしても・・・




というエラー。


これは、とっさの思いつきで回避できたのだけれども、
AirPortルータのアドレスを指定するとアクセスが可能です。

ただ、設定の度に時間かかるのがいやなので試してないけど、
AirMacディスクユーティリティーが必要だったのかはわからない・・・