2009/02/07

[emacs].emacs.el

ひょっとしたら、上のファイルを上書きしてしまった可能性があります。。。

やっちまったな〜〜〜。



ただ、こちらのサイトを参考にすると、もともとなかったような気がしなくもないのだが。。。?

自分のホームディレクトリに .emacs.el という名前のファイルを作って下さい。なくても結構です。

via:設定ファイルの .emacs.el はどこにあるのでしょうか?


最初から付属していたのかなー。

あ”ー本当、どうしよー。

あんまり気にしない方がいいのかな。。。
結構、ショック

[mac]ファイル名の先頭に「.」がついてしまう場合

なんと、ファイル名の一番最初に、「.」がつく場合、どーやら、これは、macで予約されているファイルなので、作成しても、フォルダに表示されないみたいです。

う〜怖い。。。

こちらを参考にしてわかりました。

ただし、Mac OS Xでは、頭に「.」が付くファイルは初期設定で隠しファイルになっているので直接作成できない事と、ファインダーからは見えない事に注意してください。

via:設定ファイル.emacs.el

2009/02/06

[emacs]再インストール完了

無事、再インストール完了できたのですが、前回、作った設定ファイルなどが生きているみたいです。

まぁー気にしなくていいっか!!

[emacs]アンインストール

ちょっと設定で失敗してしまったので、アンインストールの方法を調べました。

Emacs アイコンをゴミ箱に捨てて下さい。気になるようでしたら、設定ファイル(~/Library/Preferences/org.gnu.Emacs.plist と ~/Library/Preferences/CarbonEmacsPackage.plist)を削除して下さい。

via:2.Emacs をアンインストールするには?

ということで、思いつく限りの、emacsのアイコンと、「org.gnu.Emacs.plist」を削除しました。

「CarbonEmacsPackage.plist」はフォルダになく、Spotlightで検索してもなかったので、とりあえすここまでいいのかなと!!

2009/02/05

[javascript]google gadgetのコメント欄にある評価を考えてみる

google gadgetで、コメントを記入するところがあるのですが、その時、評価をつけるのに動的に星マークがいったりきたりすることができます。

例)下図
Photobucket
画像だけみても、いまいち実感がわかないと思うので、実際に見せます。




星印にマウスを持っていくと、星が塗られてその横には、文字が表示されると思います。

そして、星マーク上でクリックするとそのポジションを覚えてくれて、星マークからマウスを放しても、その位置を保ってくれるという仕様です。

で、おそらくこれ、JavaScriptで実装されていると思い、試しに考えてみました。
<div style="cursor:default">
<span onmouseout="lf_setVote()" onmouseover="lf_setVote(1);"
onclick="lf_VoteVal(1)" id="vote_1">☆</span>
<span onmouseout="lf_setVote()" onmouseover="lf_setVote(2);"
onclick="lf_VoteVal(2)" id="vote_2">☆</span>
<span onmouseout="lf_setVote()" onmouseover="lf_setVote(3);"
onclick="lf_VoteVal(3)" id="vote_3">☆</span>
<span onmouseout="lf_setVote()" onmouseover="lf_setVote(4);"
onclick="lf_VoteVal(4)" id="vote_4">☆</span>
<span onmouseout="lf_setVote()" onmouseover="lf_setVote(5);"
onclick="lf_VoteVal(5)" id="vote_5">☆</span>
<span id="vote_msg"></span>
</div>
<input type="text" name="judge" value="0" id="judge">

<script type="text/javascript">
var vote_msg ={};
vote_msg = {
"0":""
, "1":"よくない"
, "2":"あまりよくない"
, "3":"普通"
, "4":"お勧め"
, "5":"超お勧め"
};
function lf_setVote(aVal){

/* 引数がない場合 */
if(isFinite(aVal) == false){
MaxVal = $("judge").value;
/* 引数が存在する場合 */
}else{
MaxVal = aVal;
}

/* 星マークに色を塗る */
for(var i=1; i<=MaxVal; i++){
$("vote_"+i).innerHTML = "★";
}

/* 星マークを白にする */
for(var k=parseInt(1)+parseInt(MaxVal); k<=5; k++){
$("vote_"+k).innerHTML = "☆";
}

/* メッセージの挿入を行う */
$("vote_msg").innerHTML = vote_msg[MaxVal];
}

function lf_VoteVal(aVal){
$("judge").value = aVal;
}


function $(aId){
return document.getElementById(aId);
}
</script>

動作確認は、firefoxとIE両方で動きました

2009/02/04

[JavaScript]グローバル変数とローカル変数

突然ですが、下のようなコードがあったとします。

function lf_tes1(){

hoge = "Hello JavaScript";
}

function lf_test2(){

lf_tes1();

alert(hoge);
}

lf_test2();

この場合、変数「hoge」にはなんと表示されるでしょうか?

実は、なんと、「undefined」ではなく、「Hello JavaScript」を返します。

つまりファンクション内で、varをつけずに変数宣言をしてしまった場合、他のファンクションからでも参照できるみたいです。

ちょっとびっくり。

2009/02/03

[javascript]checkboxの必須チェック(n個分)

やはりradioボタンの時と同様に同じやり方でいけるみたいです。

全然、ソースに変更はありません。

しいて言えば、ファンクション名が変わったぐらいかなと。

<input type="checkbox" name="hoge" value="1">test_01
<input type="checkbox" name="hoge" value="2">test_02
<input type="checkbox" name="hoge" value="3">test_03
<input type="button" value="run"
onclick="lf_check_checkbox('hoge');"
>
<script type="text/javascript">
function lf_check_checkbox(aObjName){
var ret = (function(){
var temp_obj = document.getElementsByName(aObjName);
var input_length = temp_obj.length;
/* checkboxボタンの数だけループ */
for(var i=0; i<input_length; i++){
/* 一回でもついている場合は、その場でtrueを返す */
if(temp_obj[i].checked){ return true; }
}
/* チェックがついていない場合 */
return false;}()
);

/* チェックがついていない場合 */
if(!ret){
alert("チェックが入っていません");
/* 以下、チェックがついていない場合の処理を追加 */
/* ・・・・ */
return false;
/* チェックがついている場合 */
}else{
alert("チェックが入っています。");
/* 以下、チェックがついている場合の処理を追加 */
/* ・・・・ */
return true;
}
}
</script>

上のソースは、複数個ですが、1個の場合でも動きます。

2009/02/01

[iPod touch]公衆無線Lanを使うのは危険??

GIZMODEのiPod touchで公衆無線LAN経由でアプリを使うのは危険?という記事で、使うサイトによっては、SSLを施してないものもあるので、使う時は、十分に注意することという、ことが書いてありました。

これによると、公衆無線LANを使う時には、暗号化に気を使ってないアプリを使うとパスワードなどが盗まれる可能性があるよ、とのこと。

via:iPod touchで公衆無線LAN経由でアプリを使うのは危険?

こういった記事を読んでしまうと、ちょっと公衆無線LANを使うのを躊躇しちゃいそうです。

だけどこれって一般的に、SSLを施していないサイトにアクセスするケータイも同じような気がするのですが。。。

ケータイも、パスワードも盗まれる可能性があるから、別にiPod touchでもへーきだろと開きなおってしまう今日このごろ。

2009/01/31

[ビール]ヒューガルデンで夢見心地

池袋の東急にあるビールコーナーでヒューガルデンを購入!!

いやー東急のビールコーナーは、すっごい、いっぱいのビールがあるんですよねー。
日本のビールのみならず、チェコ、ベルギー、ドイツと世界各国のビールが置いてあります。

ビール好きにはパラダイスだよーーー。

で、今日は、何を飲もうかなーとかなり悩んでしまった。

Photobucket

Photobucket

Photobucket

Photobucket

この泡立ちがなんともいえないっす♪

リンクにある通りヒューガルデンは、ベルギービールです。

ホワイトビールなので、かな〜り、軽い味です。
日本のビールよりも軽いです。

ギネスビールよりも苦みを押さえた感じで、すごく飲みやすいです。
おそらくお酒があまり得意ではない女性でもいけるのではないかと。

おいしすぎて一気に飲んでしまった。(750mlです。)
後、コップに入れる時、あまり勢いよく入れてしまうと、ものすごい勢いで泡が発生するので、ゆっくり入れた方がいいっす♪

まぁー土日は少し、ITから離れてこういうネタもいいかなーと思い。

[追記]
なんと、検索してたら、楽天に売っていた。
便利な世の中になったなー。

ヒューガルデン・ホワイト750ml

ヒューガルデン・ホワイト330mlもあった。

2009/01/30

[javascript]radioボタンの必須チェック(n個分)別解

昨日、t.sato君からコメントをもらいました。

複数の場合って分岐するのがダルかったら、引数にオブジェクトを受け取るんじゃなくて、引数はStringで受け取って、

確かに、実装している時に、引数にオブジェクトを受け取るのが気持ち悪くて、何とか、Stringで受け取れないかとちょっと考えたのですが、なかなか思い浮かばなく。。。

そこで、またしてもコメントを参考にしてちょっと変更してみる。
<input type="radio" name="hoge" value="1">test_01
<input type="radio" name="hoge" value="2">test_02
<input type="radio" name="hoge" value="3">test_03

<input type="button" value="run"
onclick="lf_checkRadio('hoge');"
>

<script type="text/javascript">
function lf_checkRadio(aObjName){
var ret = (function(){
var temp_obj = document.getElementsByName(aObjName);
var input_length = temp_obj.length;

/* radioボタンが一個の場合 */
if(input_length == 1){

/* チェックがついている場合 */
if(temp_obj.checked){

return true;

/* チェックがついていない場合 */
}else{
return false;
}

/* radioボタンが複数ある場合 */
}else{

/* radioボタンの数だけループ */
for(var i=0; i<input_length; i++){
/* 一回でもついている場合は、その場でtrueを返す */
if(temp_obj[i].checked){
return true;
}
}
/* チェックがついていない場合 */
return false;
}

}());

/* チェックがついていない場合 */
if(!ret){
alert("チェックが入っていません");
/* 以下、チェックがついていない場合の処理を追加 */
/* ・・・・ */
return false;/* チェックがついている場合 */
}else{
alert("チェックが入っています。");
/* 以下、チェックがついている場合の処理を追加 */
/* ・・・・ */
return true;
}
}
</script>

ここでの変更点は、引数がObjectからStringに変更されたこと。

あとは、引数を受け取った後、document.getElementsByNameで処理を行うので、formタグとwithを使う必要がなくなったこと。

で、実際に実行してみると、複数の場合は、うまくいったのですが、ラジオボタンが1個の場合、うまくいきませんでした。

なぜかなーと思って、試しに、「temp_obj.checked」を「temp_obj[0].checked」と変えるとうまくいきました。

ってか、Objectが1個しかない場合でも、[0]と配列表示しないといけないんだー。
これは以外でした。
formから1個のラジオボタンにアクセスするときは、[0]をつけなくてもできたので。

というわけで、変更後のソースはこちら。

<input type="radio" name="hoge" value="1">test_01
<input type="radio" name="hoge" value="2">test_02
<input type="radio" name="hoge" value="3">test_03

<input type="button" value="run"
onclick="lf_checkRadio('hoge');"
>

<script type="text/javascript">
function lf_checkRadio(aObjName){
var ret = (function(){
var temp_obj = document.getElementsByName(aObjName);
var input_length = temp_obj.length;

/* radioボタンが一個の場合 */
if(input_length == 1){

/* チェックがついている場合 */
if(temp_obj[0].checked){

return true;

/* チェックがついていない場合 */
}else{
return false;
}

/* radioボタンが複数ある場合 */
}else{

/* radioボタンの数だけループ */
for(var i=0; i<input_length; i++){
/* 一回でもついている場合は、その場でtrueを返す */
if(temp_obj[i].checked){
return true;
}
}
/* チェックがついていない場合 */
return false;
}

}());

/* チェックがついていない場合 */
if(!ret){
alert("チェックが入っていません");
/* 以下、チェックがついていない場合の処理を追加 */
/* ・・・・ */
return false;/* チェックがついている場合 */
}else{
alert("チェックが入っています。");
/* 以下、チェックがついている場合の処理を追加 */
/* ・・・・ */
return true;
}
}
</script>

でも、これもっと簡略することができて、最終的には、下のソースで落ち着きました。

<input type="radio" name="hoge" value="1">test_01
<input type="radio" name="hoge" value="2">test_02
<input type="radio" name="hoge" value="3">test_03

<input type="button" value="run"
onclick="lf_checkRadio('hoge');"
>

<script type="text/javascript">
function lf_checkRadio(aObjName){
var ret = (function(){
var temp_obj = document.getElementsByName(aObjName);
var input_length = temp_obj.length;

/* radioボタンの数だけループ */
for(var i=0; i<input_length; i++){
/* 一回でもついている場合は、その場でtrueを返す */
if(temp_obj[i].checked){
return true;
}
}
/* チェックがついていない場合 */
return false;

}());

/* チェックがついていない場合 */
if(!ret){
alert("チェックが入っていません");
/* 以下、チェックがついていない場合の処理を追加 */
/* ・・・・ */
return false;/* チェックがついている場合 */
}else{
alert("チェックが入っています。");
/* 以下、チェックがついている場合の処理を追加 */
/* ・・・・ */
return true;
}
}
</script>

ものすごくソースがきれいになりました。

やっぱ、これの方が引数もStringだし、中のソースもさっぱりしていいなー♪
t.sato君サンクス!!

2009/01/29

[javascript]radioボタンの必須チェック(n個分)

昨日、t.sato君からコメントを頂いたので、改めて考え直してみる。
radioボタンがn個あった場合の必須チェックで、今回は、3つの場合を考えてみたいと思います。

<form name="frm">
<input type="radio" name="hoge" value="1">test_01
<input type="radio" name="hoge" value="3">test_02
<input type="radio" name="hoge" value="2">test_03
<input type="button" value="run"
onclick="lf_checkRadio(frm.hoge);"
>
</form>
<script type="text/javascript">
function lf_checkRadio(aRadioObj){
var ret;

ret = (function(){

with(document){
var input_length = aRadioObj.length;

/* radioボタンが一個の場合 */
if(input_length == undefined){

/* チェックがついている場合 */
if(aRadioObj.checked){
return true;

/* チェックがついていない場合 */
}else{
return false;
}
/* radioボタンが複数ある場合 */
}else{

/* radioボタンの数だけループ */
for(var i=0; i<input_length; i++){

/* 一回でもついている場合は、その場でtrueを返す */
if(aRadioObj[i].checked){
return true;
}
}

/* チェックがついていない場合 */
return false;
}
}
}());

/* チェックがついていない場合 */
if(!ret){
alert("チェックが入っていません");
/* 以下、チェックがついていない場合の処理を追加 */
/* ・・・・ */
return false;
/* チェックがついている場合 */
}else{
alert("チェックが入っています。");
/* 以下、チェックがついている場合の処理を追加 */
/* ・・・・ */
return true;
}
}
</script>

で、いけるはず!!(IE6にて動作確認)

工夫した点は、、t.sato君がいってたように、lengthで個数を取得し、ループでチェックしたところ。

そして、そのお仕事を無名関数を使って実装した点。
あと最後に、引数に「formの名前.inputタグの名前」を入れればどんな状況でも必須チェックが可能になるようにしたこと。

無名関数の部分は、ちょっと前だったら、名前のついた別ファンクションを定義しなければ実装できなかったのですが、schemeでlambdaに出会ってから、ふっつーに思いつくようになりました。

ここでも、schemeも大切さを改めて実感。

2009/01/28

[javascript]radioボタンの必須チェック

radioボタンの必須チェック。

まずradioボタンが1個の場合に、下のようなhtmlがあったとする。
(以下、formタグのname属性をfrm_nameとする。)

<input type="radio" name="hoge" value="1">test

これにチェックがついているかどうかの確認は、

if(document.frm_name.hoge.checked == false){
//エラー処理を書く
alert("チェックが入っていません。");
}

というフォーマットで、チェックすることができます。

では、複数ある場合、ここでは、2つにしましょう。
例によって、下のようなhtmlがあったとします。

<input type="radio" name="hoge" value="1">test1
<input type="radio" name="hoge" value="2">test2

これに対する必須チェックは、

if(document.frm_name.hoge[0].checked == false
&& document.frm_name.hoge[1].checked == false){
//エラー処理を書く
alert("チェックが入っていません。");
}

と書くことができます。

ここで、問題となってくるのは、n個ある場合に、ifの中がすごく長くなってしまうこと。

どーにかならないかなと。

2009/01/27

[oracle]union union allの違い

ついつい忘れがちになってしまうので、ちょっとまとめてみることに。

SELECT結果をマージします。ALLが無い場合、マージ後に重複レコードは排除されます。

また、SELECT結果で取得する列は、それぞれ同じ列数でなければなりません

via:複数のSELECT文の結果をマージする(UNION、UNION ALL)

ということは、、、

table:test1
column_1 column_2
-------- --------
hoge_1 0001
hoge_2 0002

table:test2
column_1 column_2
-------- --------
hoge_2 0002
hoge_3 0003

というテーブルがあった場合、

select *
from test1
union
select *
from test2

の結果は、

column_1  column_2
-------- --------
hoge_1 0001
hoge_2 0002
hoge_3 0003


と返すのに対して

select *
from test1
union all
select *
from test2

の結果は、

column_1  column_2
-------- --------
hoge_1 0001
hoge_2 0002
hoge_2 0002
hoge_3 0003

となります。

重複するしないは、結構、大きな違いなので、気をつけて使いたいかなと。

2009/01/26

壊れてしまっているUSBメモリ

ってどうすればいいのだろか?

やはり物理的に破壊した方がいいのかなー。

物理的に破壊となった場合、何か破壊ツールみたいものって売っているのかなー??

使っているときは便利なんだけど、いらなくなったり壊れてしまったときの処理って大変なんだよなー。
同じことはパソコンにも言えるような気がする。。。

2009/01/25

いらなくなったUSBメモリ

の処理ってどうすればいいんだろうー。

パソコンの場合は、物理的に破壊を家電量販店にお願いすればいいと思うんだけど。

USBメモリーって。。。??

2009/01/24

セ(ス)ザンヌ主義に行ってきましたin 横浜美術館

セザンヌ主義に行ってきました。

セザンヌ主義

久しぶりの美術館に圧倒されてしまいました。
妻、曰く、セザンヌは、ピカソ、モディリアーニなどに影響を与えた人物とのこと。

ピカソやブラックよりも先にキュビズムというジャンルを確立したのではないかとい説もあるようです。

今回のセザンヌ主義は、彼自身の作品と彼に影響を受けたアーティストの両作品があって飽きさせることない構成になっていました。

お昼ご飯を食べた後で見に行ったので、途中、ベンチで寝てしまいましたが。。。

明日で終わりなので、人がいないだろうなーと予測していったのですが、思いっきり予想は外れてしまい、すっげー人がいました。

結構、みんな絵を見に行くんですね♪

絵を見るのも実は、webデザインをする上で大変勉強になるんですね。

色使いとかレイアウトとか!!

今回もすっげー勉強になりました。
特に作品の全体を紹介する字のレイアウトと背景が一番勉強になったかなと。

追記
同美術館の1Fでは、スザンヌが描いた作品が展示してあるスザンヌ主義も開催されていました。

2009/01/23

[iPod touch]どこでもwi-fiに入りたい

ZDnetにiPod touchユーザーには朗報:「どこでもWi-Fi」が2月中旬に発売という記事がありました。

以前紹介した「どこでもWi-Fi」の詳細が決定した。発売日は2月19日、価格はオープン。通信速度は最大204Kbps、全国のカバー率99.4%を誇るPHSネットワークを定額利用できることが特徴だ。

via:iPod touchユーザーには朗報:「どこでもWi-Fi」が2月中旬に発売

全国で、wi-fi接続ができるなんて、超魅力的です。

記事をもう少し詳しくみていくと、ウィルコムの「新つなぎ放題」に加入すれば、利用できるみたいなのですが、肝心の値段が3880円なんですよねー。

今の値段の10倍か〜。。。

家では、無線LANの環境がないので、iPod touchをネットに接続することができなくて、ワイアレスゲートに加入したのですが、それでもちょっと使える店舗が少ないような気がして、「どこでも、いつでも使えるようにしたい」という願望がふつふつとわいてきちゃうんですよねー。

きっと、iPhoneの場合だと、こういったことを気にせず、常時接続のインターネットライフを快適にすごしているんだなーと思うと、iPhoneいいなーと思ってしまう。

もうちょい、値段安くならないかなー♪

実は、このwi-fiの常時接続の話は去年の後半からありました。
iPod touchユーザに朗報、「どこでもWi-Fi」発表

2009/01/22

[Objective-c]ラベルという概念について

今、こちらのサイトで、Objective-C 2.0の仕様書を読んでいるのですが、その中で、メソッド定義に関して、どうも慣れない点が。

それは、ラベルという概念なんだけど、Javaの場合、クラスとメソッドの定義はすごくおおざっぱに書いてしまうと、

class hoge{
void foo(任意の型 arg1, 任意の型 arg2){

}
}

であるのに対して、Objective-cでは同じことを書こうとすると、

@interface  hoge{

}
(void) foo:(任意の型)arg1 lrabel:(任意の型):arg2;

となるみたいです。

この辺は、どーやらC++とも違うみたいで、メソッドにアクセスするときも
hoge *hoge_instance;
[hoge_instance foo:引数1 lrabel:引数2]

となり、しかも、メソッドの名前も「foo」ではなく、「foo:lrabel:」となってしまうみたいです。

これがどーしても納得できないんですよね。

例えば、ラベルを使わずに、
hoge *hoge_instance;
[hoge_instance foo:引数1 :引数2]

と表したり、
hoge *hoge_instance;
[hoge_instance foo:引数1,引数2]

と書いたりするなら納得できるのですが、実際、一個目の例はコンパイルしてもエラーや警告を発信しないみたいなのですが、同仕様書によると非推奨と記載されていました。

なので、やはりラベルを記載するみたいです。

したがって、引数が1つの場合は、単純にメソッド名は、fooとなり、複数の場合とでは、完全にメソッド名が違うみたい。

慣れるまで時間がかかりそうです。。。www

2009/01/21

[goo辞書]ユーザー数20万人突破!!

いつも使っていただき、ありがとうございます♪

Photobucket

2009/01/20

[javascript]ステータスアニメーション

amachangさんのエントリーで動的にタイトルを変更するタイトルアニメーションというエントリーがありました。

location.href を document.title に変えてみただけ

via:タイトルアニメーション

で、このエントリーを読んで思い起こしたのは、よく、よからぬサイトでステータスバーの文字が動的に変更されるサイトがありますが、あれってどやって実装するのかなーとちょっと調べてみることに。

var lv_text = "るねっさーーーんす";

for(var i=0; i<70;i++){
lv_text = " " + lv_text;
}

setInterval(
"(function(){if(lv_text.length > 9){
lv_text = lv_text.substr(1,lv_text.length-1);
status = lv_text;}}())"
,250);

for文のところまでは、たんなる出力文字の作成で、setIntervalファンクションから稼動。
徐々に、文字が左に流れていくのがわかります。

こういうのもおもしろいなー♪

2009/01/19

[oracle]where句でnullを扱う場合

一般的にoracleの場合、whereを使う時に注意しなければならないことが。

例えば、下のようなカラムがあったとします。

hoge_column
-----------
null
-----------
apple
-----------
orange
-----------

nullの場合のデータを取得したい場合、where hoge_column is nullとすればいいのですが、pl/sqlのカーソルでhoge_columnを取得し、他のカラム(例えば、foo_column、このカラムもnullを含む)と一致したデータを表示したい場合は、
where hoge_column = foo_column

と、書いてしまうと、何も取得できません。
というか、似たようなソースを書いたら取得できませんでした。

どーやら、hoge_columnにnullを含んでしまっているからで、この場合、
where nvl(hoge_column,'任意の値') = nvl(foo_column,'任意の値')

とすることで、上の問題を回避できるみたいです。

両方のカラムにnullを含んでしまう場合は、注意したいです。

久しぶりの、oracleネタでした。

2009/01/18

庭の湯に行ってきました

さっき(といっても、夜の9時ですが。。。)、豊島園の庭の湯に行ってきました。

大型のスパなのですが、これがまた、すごくやすらぐんだー。

久しぶりにいって、なんだかさっぱりしました♪

2009/01/17

[mac]便利なファンクションキーシリーズ

windowsでは、全角ひらがなから全角カタカナに変換したりする、便利なファンクションキーがあるのですが、macにもあるのかなーと思い、ちょい調べてみることに。

WindowsのF7キーのように、一発でカタカナ変換できるキーは、ないものかと探してみたら、Macにもありました。

fn + F7か

via:MacBookで入力した文字を全部カタカナに変換するときは、『fn + F7』

で、さっき、検証したら、確かにできました。

他には、
fn+F8→半角英字
fn+F9→全角英字

ここで、気になるのは、半角カタカナ変換はどうすればいいのだろうか?

2009/01/16

[iPod touch]wi-fi経由で、ネット接続

やっと念願の、iPod touchから、wi-fiを使って、インターネット接続ができました。

赤坂見附のマクドナルドで実験したのですが、繋がったとき、すっげー感動しちゃいました。

夢が叶った!!

ちなみに、契約したプロバイダは、ワイアレスゲートです。

だって、月額380円で、使いたい放題ですよー。
しかも、空港でも接続できるし!!

マクドナルド以外では、ドトールやルノアールでも接続ができるので、お茶しながら、ネットできるという。
うーん、本当に贅沢だな♪

[mac]windowsに当たるdelete

macを触りはじめてから、ちょっと気になっていることがあって、実は、macにある「delete」キーは、windowsの「BackSpace」と同じ、カーソルの前方にある文字を削除して、windowsの「delete」キーにあたる操作は、どうすれば実現できるのかなーと思って、調べていたら、同じ質問をしている人がいました(ラッキー)

・・・
Winのパソコンにはdeleteとbackspaceによって、
カーソルの前も後ろも削除出来ますが、
Macのdeleteは、Winのbackspace的な感じで、
カーソルの前しか削除出来ませんが、Macでカーソルの
後ろを消す方法は、無いのでしょうか?
・・・

via:WinにあるdeleteとbackspaceはMacには無いのでしょうか?

で、それに対する答えは、

ノートタイプの、テンキーのついていないキーボードでは、FnキーといっしょにDeleteキーを押すと、後方の文字を削除します。
・・・

via:WinにあるdeleteとbackspaceはMacには無いのでしょうか?

というわけで、windowsのdeleteをしたい場合は、「fn+delete」で

2009/01/15

[iPhone sdk]Hello iPhone

やっと、Simulatorに文字を出力することができました。
Photobucket
やっと、第一歩を踏み出すことができました。

さてここからが勝負だぞと

2009/01/14

[google gadget]映画newsのgadget終了

突然ですが、映画.comのブログパーツをgoogle gadgetに対応させた、映画.comのニュースgadgetを今回、終了することとなりました。

今まで、使っていただいた方、本当にありがとうございました。

2009/01/13

[iPhone sdk]サンプルコードを動かしてみる

サンプルコードを動かしてみました。
「MoveMe」というソフトで、iPhoneの画面上で、ボタンを操作することができるソフトなのですが、ちょっと動かすのに苦戦してしまったので、そのやり方をまとめてみようかなと。

1.アプリケーションをダウンロード
まずは、ソフトをダウンロード
2.解答後、所定のディレクトリにフォルダをおく。
置いた場所は、HOME(トップ)→Developer→Applicationsの直下に置きました。
3.MoveMeフォルダ内にある「MoveMe.xcodeproj」をダブルクリック
Xcodeが起動すると思います。
4.「ビルドして進行」ボタンを押す
上の方にある「ビルドして進行」ボタンを押すと、コンパイルがかかり、エミュレーターが起動し、MoveMeが実行されます。
ここで、注意したいのは、どのsdkかを選択するselect boxがあるのですが、「Simulator-2.2|Debug」を選択して実行しました。
おそらく、初めてXcodeを実行したときは、自動的に選択されていると思うので、何も考えずに、「ビルドして進行」を押せばオールオッケーのような気がします。

しかし、どうすれば、iPod touchで動かすことができるのか?
sdkを「Device-iPhone OS」にしてつないだのにな。。。

2009/01/12

[mac]carbon emacsインストール

そろそろ本格的にmac上でプログラムをしたいので、こちらのサイトから、carbon emacsをインストールしました。

これで、プログラムできるぞと。

2009/01/10

[mac]新規フォルダを作成とエイリアスについて

やっと必要なところが読み終わった感があるのですが、、、

ちょっと追記したいことがあるので。

まず、新規フォルダの作成方法が書いていなかったような気が。。。
(全部読んでないので、ひょっとしたら書いてあるのかもしれないが。。。)

どこでもいいので、フォルダを作りたいディレクトリ上で、右クリックを行い「新規フォルダ」を選択すると、フォルダを作ることができます。
まぁーこの辺は、windowsと同じなのですが。

後、windowsユーザーはちょっと戸惑うかもしれませんが、macでは一般に、ショートカットという名前はなく、同じ機能の名前として「エイリアス」という名前になっています。

ちょっと気をつけたいところです。

2009/01/09

[iPhone sdk]iPhone OSについて

インストールも完了したので、さっそく仕様書を読んでみることに。

完全に把握できたわけではないのですが、どーやら、OSは、4種類のレイヤーで構成されているみたいです。

Cococa Touch
Media
Core Services
Core OS

アプリを作成する上で、下のレイヤーを扱うほど難しくなっていくみたいです。
(しかも、sqliteを搭載しているみたいです。)

したがって、リファレンスとしては、まず、Cococa Touchを使ったアプリを作ることを推奨していました。

全体的に、開発を行う上で、IDEのXcodeを使って開発を行い、言語は、Objective-Cが採用されています。

Objective-Cはオブジェクト指向言語なのですが、ここで気になったのは、IDEとして他にEclipseがあるのですが、一般的に、Java開発する時に、macユーザーは、EclipseではなくXcodeで開発しているのかなーと??ちょっとした疑問が発生。

まーでも、Eclipseは、Eclipseとしてインストールを行って、Java開発しているのかなと、気にしないようにする。

2009/01/08

[iPhone sdk]インストールまでの道のり

ダウンロードが完了したので、さっそくインストールしてみることに。

こんな感じでインストールしていきました。

1.ダウンロードフォルダにあるiphone_sdk_for_iphone_os_2.2_9m2621_final.dmgファイルを解凍し、iPhone sdkをダブルクリック。
解凍後は下の画面になっているかと思います。
Photobucket

後あ、ひたすら「次へ」ボタンのオンパレード

2.下の画面で「続ける」をクリック
Photobucket

3.下の画面も「続ける」をクリック
Photobucket

4.さらに下の画面も「続ける」をクリック
Photobucket

5.「同意する」を選択
Photobucket

6.またまた「続ける」を選択
(なぜか、ここは英語でした。。。う〜〜〜ん、なぜだろ??)
Photobucket

7.「agree」を選択
(ここも英語でした。。。何かまずいことしたのかなー、あまり気にせず先に進んでみます。)
Photobucket

8.「続ける」を選択
(デフォルトの状態でそのまま選択しました。)
Photobucket

9.「インストール」を選択
Photobucket

10.インストール完了
Photobucket

ここまではできたものの、ここから先、どうすればいいんだろー??

2009/01/07

[iPhone sdk]ダウンロードまでの道のり

結構、ここまで来るのに手間取ったので、ちょっとまとめていこうかなと。

1.iPhone Developer Program使うIDを登録する

Photobucket
上の画面で、Apple IDを新規に登録します。(右側のNeed to create an Apple ID?を選択)

登録画面は下のような感じ。
Photobucket

登録後、メールが届くので、書かれているurlをクリックする。

2.iPhone sdkをダウンロード
Photobucket
ピンク色になっているところの下に書かれている「iPhone SDK for iPhone OS 2.2」をクリックするとダウンロードが開始されます。

結構、ダウンロードに時間がかかりました。
Photobucket

ダウンロードが完了すると、ダウンロードフォルダにファイルがあります。
Photobucket
ここまで来るのに時間かかったなー。。。

2009/01/06

[coldfusion]coldfusion 9

そろそろCFのバージョンアップがあるんじゃないかなーと思っていたら、案の定ありました。

ColdFusion 9 コードネームは Centaur(ケンタウロス)を参考にさせていただくと、今度のコードネームは、Centaur(ケンタウロス)とのこと。

というか、正直な話、まだ、開発行うんだーっと思ってしまいました。

2009/01/05

大富豪トランプのでっかく考えて、でっかく儲けろ

実は、妻から、よく、「あまえは、小さいなー、小さいなー」といわれて、どーすれば、でかくなれるかと考えながら本屋をうろついているときに見つけた本


目次
第1章 あなたは成功の条件を満たしているか?
第2章 情熱、情熱、情熱
第3章 直観に従って進め!
第4章 幸運をつくり出す
第5章 恐怖に屈するな
第6章 借りは一〇倍にして返せ
第7章 いけいけどんどん!
第8章 決してボールから目を離すな
第9章 愛してる、これにサインを
第10章 でっかく考えろ、そして、仕事でも人生でもがむしゃらにやれ

via:大富豪トランプのでっかく考えて、でっかく儲けろ


ドナルド トランプは、アメリカのビジネスマンで、80年代に10億ドル近くの借金をかかえて自己破産せず、見事にカムバックを果たしたビジネスマン。

日本では、テレビ番組ジアプレンティスとして有名かもしれません。

だいぶ前からトランプのことは不動産開発業者として知っていて、何冊か本を読んだことがあるのですが、今回の作品は、物事をマクロ的に捉えて仕事をこなすのが、いかに大事なのかが書かれています。

また、他の書籍と同様に「他人に仕打ちをされたら10倍にして仕返しをする。」ことや、「他人があなたを精神的に殺害する可能性があるので、油断することなく、ビジネスを行わなければならない。」といったあまりポジティブとは言えないことが、トランプの実体験ベースに書かれています。

ポジティブなことが書かれているビジネス書は、いっぱいありますが、ネガティブなことを、しかも、実体験ベースに書かれた書籍はないので、とても勉強になりました。

トランプの他の書籍も読みたいな~♪

2009/01/04

windows xp home にmacからリモート接続

windowsに音楽データなどがいっぱい入っていて、全部、macに以降したくなかったので、リモートからアクセスする方法を試みました。

windows xp homeとmac os x 10.5.6で検証します。

参考サイトは、side-BさんのWindowsのフォルダにMacからアクセスするです。

windowsの設定
1.共有にかけたいフォルダ上で右クリック
2.「プロパティ」を選択
3.「共有」タブの「ネットワーク上での共有とセキュリティ」のチェックボックスをオン
4.「適用」を押す
5.コマンドプロンプトを開き「ipconfig」を打ち込み、ipアドレスをメモ

mac
1.finderの「接続」を選択
2.「サーバーに接続」を選択
3.smb://と打った後、メモしたipアドレスを入力

とすることで、windowsに接続できました。

これで、iPodにデータを入れられるぞと。

2009/01/03

iPod touch専用ケース

をゲット!!

これで全部の端末は保護できたかなと。

上のぐっつは、保護シート以外にも、電源から直接充電できる充電器と、イヤホンを保護してくれるイヤーパッドもついているので、一度に二度うれしいっす♪

2009/01/02

macを保護する

ヨドバシカメラに行って、macを各種する各種パーツをゲットしました。

まずは、液晶が汚れないように、フィルム


トラックパッドを保護するシール


キーボードをホコリから守ります


最後は、持ち運びするときに、守ってくれるケース

2009/01/01

新年はこれを読みながら

勉強しています。



目次
1 Mac OS Xの基本操作
2 インターネットを利用する
3 メールを利用する
4 代表的な付属ソフトを使う
5 そのほかのアプリケーションを使う
6 システム環境設定でMacを使いやすく設定する
7 Mac OS Xを使いこなすテクニック
8 Mac OS Xをもっと楽しむために


via:はじめてのMac OS X Leopard v10.5対応

使い方が、右も左もわからないので、とりあえずふんだんに図や写真が入っているものがいいと思い、この本を選びました。

字も結構でかいので読みやすいです。

新年明けましておめでとうございます。

昨年は、たくさんの方に、見ていただきまして誠にありがとうございます。

今年後も、ぼちぼちがんばっていきたいと思いますので、ご支援どうか一つよろしくお願いいたします。

2008/12/31

セキュリティーソフトでPCを保護

昨日、出勤前に、ヨドバシカメラに行って、セキュリティーソフトを購入しました。



大学時代の時に、初めて買ったセキュリティーソフトが上のwindows版だったので、そのmac版にしました。

ただ、上のは、macのみ対応しているらしく、macでwindowsを機動させたい場合は、デァルバージョンを購入しないと、windowsからウィルスが入ってくる可能性もあるらしく、完全に安全とはいえないみたいです。

まずは、macを使いこなすことが重点課題なので、デュアルバージョンは購入しませんでした。
これで安全にネット生活できたらなと。

2008/12/30

[mac]初投稿

safariから初投稿。
うまくできるかなー??

2008/12/29

macとiPod touchゲット

先週やっと、ついに念願のmacをゲットしました。



そして、iPod touch(16GB)もゲットしました。


macをゲットした理由は、いくつかあるけど、やはり一番の理由は、iPod touchのアプリを開発できるというところ。

これで念願のiPod touchのアプリケーションを開発することができます。

2008/12/28

実は、悪ノリして

もう一個、香水を買っちゃった。

Photobucket
実は、昨日紹介した香水の近くに、この香水があって、広告をよく見ると、

小栗 旬

だーと思って、急いで、匂いをかいでみる。

「うん、確かにいいセクシーな匂いだ、これをつければ、俺も、小栗旬みたになれるぞー」と思い、急いで、購入。
(この間に、嫁に「なれないから安心しな」といわれてしまったのだが。。。)

パッケージは下のような感じです。
Photobucket

Photobucket

で、中身は
Photobucket

Photobucket

かなり気に入ってしまい、休みの時は、しゅっしゅ、しゅっしゅ、つけてます。

で、今日、ららぽーと豊洲の香水屋に行った時、たまたま、この香水を目にして、横にあった香水を目にしてみると、

今井 涼



誰??

ということは、小栗旬ではないということ。。。

だって、小田急の店員に確認して、「はい、小栗旬です。」と確認とったよ。

どーやら、間違えてしまったらしく、ぐーぐる先生に聞いてみたところ、men's eggのモデルさんだそうです。

まぁーでも、匂いがセクシーなのでいいかなと。

2008/12/27

久しぶりに香水をゲット

もうかれこれ9年ぶりに、香水をゲットしました。

ゲットした香水は、RISINGWAVEのRISK

Photobucket
この香水をゲットした理由は、超単純で、24とコラボしているから。
(匂いじゃーねー)

先週、新宿の小田急にキーファーサザーランドのカッコイイポスターを発見してそっこーで買いました。
Photobucket
上の画像とは違ったんですけどね。

匂いもまぁーまーよかったっす。
Photobucket

2008/12/26

[javascript]history.backについて

最近、知ったのですが、javascriptを経由してinputタグのvalueを変更してsubmitを行い、その後、history.backをかますと、javascriptによって変更された後の値を保持してしまうということ。

ちょっと何がなんだかイメージがつかめないと思うので、サンプルをこさえてみます。

<form name="frm" action="" method="post">
<input type="text" name="hoge" value="0">
<input type="button" value="進む" onclick="lf_go();">
<input type="button" value="戻る" onclick="history.back();">
</form>
<script type="text/javascript">
function lf_go(){
document.frm.hoge.value = 1;
document.frm.submit();
}

</script>

上のプログラムは、submit直前にinputタグのvalueを変更しています。

問題は、submit後にhistory.backをした場合、hogeの値はどうなるかということ。
正解は、0ではなく1なんですね。

これちょっと気をつけてないと思わぬところではまりそうな気がしたので、エントリーを書きました。

2008/12/25

[php]文字列がある位置を特定してくれるstrpos

なんか、phpって検索系の関数が多いような気がするのですが、他の言語でもそうなのでしょうか?

今、作っているアプリでstrposという関数を使う機会があったので、ここにまとめてみたいと思います。

まず、マニュアルを引用します。

strpos — 文字列が最初に現れる場所を見つける

int strpos ( string $haystack , mixed $needle [, int $offset ] )
文字列 haystack の中で、 needle が最初に現れた位置を数字で返します。

via:strpos

検索した結果、目当ての文字列がなかった場合は、falseを返すみたいです。

ちょっとためしに下のプログラムで考えてみます。

$test1 = "hoge.txt";
$test2 = strpos($test1,".");

print($test2);

上の場合、4を表示してくれます。

では、次の場合、

$test1 = "hoge.txt";
$test2 = strpos($test1,":");

if($test2 == false){
print("見つかりませんでした。");
}

結果として、文字列の「見つかりませんでした。」が表示されました。

print()でfalseを表示しようとしても、何も表示されないので、条件分岐などで利用するのがいいのかなーと。

いやーそれにしても、始めに戻りますが、文字列検索系の関数多いなー。

2008/12/24

[php]大文字に変換、小文字に変換

サーバーサイドで、何か検索をかけたい時、しかもそれが、英語の場合、大文字や小文字に変換する場合があります。

そんな時は、strtoupperまたは、strtolowerを使うと便利です。

strtolower -- 文字列を小文字にする
strtoupper -- 文字列を大文字にする

$str = "aAbBa";
$str = strtoupper($str); // $str は AABBA となる
$str = strtolower($str); // $str は aabba となる

via:大文字、小文字の変換

strtoupperは大文字に変換し、strtolowerは小文字に変換するということで実際に試してみます。

$test1 = "hoge";
$test2 = "FOO";

$test1 = strtoupper($test1);
$test2 = strtolower($test2);

print($test1);
print("<br>");
print($test2);

で、実行してみると、hogeはHOGEと変換され、FOOはfooと変換されました。
そんなにはしょっちゅうは使わないとは思うけど、知っておいても損はしない関数なんじゃーないかなと。

2008/12/23

[php]文字列を逆にするstrrev

この関数も割りと使うかな。

string strrev ( string $string )
string を逆順にして返します。

via:strrev

試しにさっそくサンプルを作ってみました。

$hoge = "Hello PHP";
$foo = strrev($hoge);

print($foo);

表示した結果は、PHP olleHとなりました。

文字列を逆にして色々操作したい時に便利かなと。

DSにやっぱりメモリーカードは

いらない


みたいです。

おとといの記事で、DSにメモリーカードがいるかどうか書いたのですが、やはりいらないみたいです。

ということは、スーパーファミコンやゲームボーイのようにソフトの中のHDに記憶してしまうということなんだろうなー。

それってひょっとしたら、スーパーファミコンみたいに、途中の記録とか消えてしまう可能性もあるってことなんじゃー。

実は、ドラゴンクエスト3をファミコンでやったときに、すっげーいいところで、データが消えてしまった記憶があって、それ以来幾度となく、記録が消えてしまうのはいやだなーと思ってしまいます。

PSはメモリーカードが別になっていて、それだと、なんか記録が消えないような気がして、かなり気に入っていたのですが、DSもそうならないのかなー。

例えば、デジカメに入れるメモリと同じぐらいの薄さで冒険の途中を記録できるとか。

なんか、カセットそのものに記憶するって、すっげー抵抗感感じちゃうんだよな。

スーパーファミコンやゲームボーイを知らない世代(おそらく中学生、小学生)は、本体そのものに、冒険の途中を記録するってことに抵抗感を感じないのだろうか?

2008/12/22

[php]chmodで権限変えられるんだ!!

ぐぐってびっくりしたのですが、unixやlinuxのように、phpでchmodを使ってディレクトリの権限変更できたんだ!!

おそらくCFではできなかったような気がするのですが。
最初、発見した時、びっくりしました。

phpのマニュアルを読んでみると以下のように記載されていました。

bool chmod ( string $filename , int $mode )
指定されたファイルのモードを mode で指定したものに変更しようと試みます。

<?php
chmod("/somedir/somefile", 755); // 10 進数; おそらく間違い
chmod("/somedir/somefile", "u+rwx,go+rx"); // 文字列; 正しくない
chmod("/somedir/somefile", 0755); // 8 進数; 正しいモードの値
?>

via:chmod

上のマニュアルを読んで、さらにびっくりしたのは、権限変更する時の数字って8進数で表記しないといけないということ。

なので、普段、ffftpで権限を変更する時は、頭に0をつけずに変更するしているので、chmodを使う時は、0が必要なので、注意しないといけないのかなと。

後、ぐぐってここのサイトのコンテンツを見ると、phpのマニュアルと同じことが書かれているので、こちらを参照してもいいかなーと思います。

追記
この関数の戻り値は、成功した場合trueを返し、失敗した場合は、falseを返すみたいなので、その値で、後々の処理を分けると便利かなと。

後、権限の件ですが、CFの場合、cfdirectoryで変更できるかも知れません(試してないので、確信を持っていえないところがあります。)

2008/12/21

英語コミュニティーサイトchocolate-chip mocha作成

実は、先週の水曜日の定時後外注さんとカフェで英会話をしました。

というのも、その前に、一緒に牡蠣を食べた時に、「毎週、ちょっとづつでもいいから英語を話そう」という風になりまして、毎週きちんと時間をとって英会話をすることになりました。

ずっと前から、英会話を勉強したいなーと思っていて、けど、英会話学校に行っても費用がばかにならないし、外人の友達を作って話すことができたならなーと夢見ていたら、いつの間にか実現しました。

で、今回、こうして、英会話の勉強をすることがかなったので、ただ単に会話するだけではなく、どんな会話をしたのかを公開したいなと思い、コミュニティサイトを作りました。

chocolate-chip mochaというサイトで、あまり堅苦しくなく、けど、ちょっとまじめに(やる時はやろうよ)という意味で、つけました。

今後の活動として、毎週の水曜日に英会話をするので、その時に話した内容を英語で書こうかなと。

後、せっかくこういう機会がもてたので、きっと中には英会話を勉強したい方もいるのではないかと思って、参加できるようなサイトにしました。

英会話学校にはいきたくない、けど、英語を勉強したい人っていっぱいいると思うんですよね。
このご時勢、やっぱ英語はマスターしておかないとなーと思っている方も多いんじゃーないかと思います。(または中国語)

それにしても本当に運がいいなーとつくづく思います。
本当に、外注のM氏には感謝しております。

ガタガタな英語に真剣に耳を傾けてくれ、しかも、間違っている場合は、訂正してくれる。
そんなやさしい方ががこのご時勢にいるとは。

決しては無駄にしたくはないし、ガチでいきたい。
そんなことを胸に秘めて、水曜日は生きています。

2008/12/20

DSにメモリーカードは

いるのでしょうか?

PS以降のゲーム機事情がわからないので、もしご存知の方がいたら教えていただけたらと。

2008/12/19

[javascript]radioボタンの個数を取得(別解)

昨日は、checkboxだったので、今日は、radioボタン

<form name="frm" action="" method="post">
<input type="checkbox" name="foo" value="1">
<input type="button" value="確認" onclick="lf_kakunin();">

</form>
<script type="text/javascript">
function lf_kakunin(){
alert(document.getElementsByName("foo").length);
}
</script>

やはり、昨日と同じように、document.getElementsByNameを使えば取得できます。
checkboxの時もそうだったのですが、1個の場合、「undefined」ではなく、「1」と表示してくれるところがいいですね。

2008/12/18

[javascript]checkboxの個数を取得(別解)

少し前に、[javascript]checkboxの個数を取得で、checkboxの個数が1個の場合を検証したのですが、個数に関係なく、取得できる方法を教えてもらいました。

<form name="frm" action="" method="post">
<input type="checkbox" name="hoge" value="1">
<input type="button" value="確認" onclick="lf_kakunin();">

</form>
<script type="text/javascript">
function lf_kakunin(){
alert(document.getElementsByName("hoge").length);
}
</script>

要となるのは、document.getElementsByNameを使うところ。

普段は、document.getElementByIdを使うので、でなかったなーこれ。

2008/12/17

[javascript]radioボタンのdisabledを動的に操作

昨日に引き続き、今日は、radioボタンで動的にdisabledを操作してみたいと思います。

まず、1個の場合、

<form name="frm" action="" method="post">
<input type="radio" name="foo" value="1">
<input type="button" value="確認" onclick="lf_kakunin();">
</form>
<script type="text/javascript">
function lf_kakunin(){
var curfrm = document.frm;
if(curfrm.foo.disabled == true){
curfrm.foo.disabled = false;
}else{
curfrm.foo.disabled = true;
}
}
</script>

でdisabledの状態をコントロールすることができます。

では、複数の場合は、これも前回と同じ感じで、
<form name="frm" action="" method="post">
<input type="radio" name="foo" value="1">
<input type="radio" name="foo" value="2">
<input type="button" value="確認" onclick="lf_kakunin();">

</form>
<script type="text/javascript">
function lf_kakunin(){
var curfrm = document.frm;
for(var i=0;i<curfrm.foo.length;i++){
if(curfrm.foo[i].disabled == true ){
curfrm.foo[i].disabled = false;
}else{
curfrm.foo[i].disabled = true;
}
}
}

</script>

となります。

それにしても、一個の場合でも、同じように処理できたらなー。

2008/12/16

[javascript]checkboxのdisabledを動的に操作

javascriptから動的に、disabledをはずしたり、つけたりする機会があったので。
まずは、チェックボックスが1個場合


<form name="frm" action="" method="post">
<input type="checkbox" name="hoge" value="1" disabled>
<input type="button" value="確認" onclick="lf_kakunin();">
</form>
<script type="text/javascript">
function lf_kakunin(){
var curfrm = document.frm;
if(curfrm.hoge.disabled == true ){
curfrm.hoge.disabled = false;
}else{
curfrm.hoge.disabled = true;
}
}
</script>

disableだった場合は、解除を行い、解除になっている場合は、入力禁止に変更するプログラムで、動作確認をしてみると、確かに動きました。

では、複数の場合は、どうなるでしょうか?

<form name="frm" action="" method="post">
<input type="checkbox" name="hoge" value="1" disabled>
<input type="checkbox" name="hoge" value="2">
<input type="checkbox" name="hoge" value="3" disabled>

<input type="button" value="確認" onclick="lf_kakunin();">
</form>
<script type="text/javascript">
function lf_kakunin(){
var curfrm = document.frm;
for(var i=0;i<curfrm.hoge.length;i++){
if(curfrm.hoge[i].disabled == true ){
curfrm.hoge[i].disabled = false;
}else{
curfrm.hoge[i].disabled = true;
}
}
}
</script>

今度も、disableだった場合は、解除を行い、解除になっている場合は、入力禁止に変更するプログラムなのですが、注意する点として、inputのname属性の次に、[]を追加しないといけないこと。

これを明記することによって、何番目のチェックボックスを操作しますというのを認識してくれます。
また、最初は、0番目なので、あわせて注意したいところです。

例によって、今度は、radioボタンでも検証してみようかなと。

2008/12/15

[oracle]session idを取得する

おらおらSQLさんのUSERENVという項目を参考にすると下記の方法で取得できます。

select userenv('SESSIONID')
from dual
;

確かにセッションIDが表示されました。

2008/12/14

ニンテンドーDS Liteとクロノトリガーをもらいました

先月、誕生日だったのですが、なんと、弟からニンテンドーDS Liteとクロノトリガーをもらいました。





最近、しきりに、クロノトリガーのCMが放送されていて、「久しぶりにやってみたいなー」とおもっていたところ、「ぴんぽーん、宅配便でぇーす」と。

受け取って、見てみると、手紙と共に、なんと、DS liteとクロノトリガーが。
ものすごくうれしかったです♪

ゲームなんて、何年ぶりだろうか?

覚えているのは、高校の3年のファイナル・ファンタジー9か、大学3年の友達のケータイで遊んだドラクエ1以来の実に、4年ぶりぐらいかな。

クロノトリガー自体、13年ぶりの復刻版みたいです。
パッケージを見ながら、すごく懐かしいなーと思ってしまいました。
昔、スーパーファミコンでやったなー。

なんか、アマゾンを見ていると、PS版もあったみたいですね。
初めて知りました。

後、当時、リリースされた時、スクエアとエニックスの初めての合作だったような気がします。
それだけで話題を呼んだような気がします。

その後、まさか合併するとは思わなかったなー。

話をゲームの内容にもっていくと、確か、このゲーム、魔王が仲間になった記憶があります。
あと、カエルも元の人間か何かに戻るような気が。
さらにどの時代でクリアーかによって最後のエンディングが変わってきたような。
と今、書いてみると結構、覚えているなー。

中途半端に覚えているのですが、攻略本買おうかなと。

実は、ロールプレイングは、攻略本がないと進めない男なのです。

というのも、いったん進んでしまうと手に入らなくなってしまうアイテムがあったり、技があったり、仲間がいたりと後で後悔してしまったりするのです。

それで、FF7は、敵の技をすべて覚えることができなかったり。
他のゲームでは(タイトルを忘れてしまいましたが)、貴重なアイテムをゲットできなかったりと。

まぁー、今の、時代ネットがあるので、検索しながら進んでいけばいいとは思うんですけどね。

とりあえず下の本をゲットしてみようかなと。

2008/12/13

先輩が、webサービスを開始

大学の先輩であるoirakumaさんが、kazeokeというサイトをオープンしました。
このサイトは、検索したキーワードを元に、ヒットしたサイトを解析し、さらに解析結果を元に検索を行う、まさに、「風が吹けば桶屋が儲かる」的な法則を見つけてくるサービスです。
詳しい使い方は、kazeoke公開しました!というエントリに書かれています。

連鎖数を狙っていろいろ検索していくと、おもしろいと思います♪( ̄▽+ ̄*)
これが狙えるようで、なかなか、連鎖数が多いキーワードを探せないものです。
今のところ、4連鎖ぐらいがマックスだったような気がします。
二桁連鎖だせないかなーと検索しているのですが、難しいです。

検索した日付も、記事の上にマウスをもっていくと見れるようになっているので、過去にどんな検索がされたのかがわかって便利です。

お時間のある方は、是非!!

2008/12/12

[javascript]radioボタンの個数を取得

昨日は、checkboxについて検証したので、今日は、radioボタンについて

やはり、ここでも問題となるのは、radioボタンが一個の場合で、

<form name="frm" action="" method="post">
<input type="radio" name="foo" value="1">
<input type="button" value="確認" onclick="lf_kakunin();">
</form>
<script type="text/javascript">
function lf_kakunin(){
var curfrm = document.frm;
if(curfrm.foo.length == undefined){
alert("ラジオボタンの個数は一個です。");
}
}
</script>

チェックボックスと同じでした。

2008/12/11

[javascript]checkboxの個数を取得

久しぶりにcheckboxの個数を調べる必要が発生したので、個数の取得方法を検証してみました。

基本的には、document.form_name.checkbox_name.lengthで取得できるのですが、問題は、チェックボックスが1個の場合

<form name="frm" >
<input type="checkbox" name="hoge" value="1">
<input type="button" value="確認" onclick="lf_kakunin();">
</form>
<script type="text/javascript">
function lf_kakunin(){
alert(document.frm.hoge.length);
}
</script>

この場合、「undefined」と返されてしまいました。

次は、下のように少し変えてみました。
<form name="frm" >
<input type="checkbox" name="hoge" value="1">
<input type="button" value="確認" onclick="lf_kakunin();">
</form>
<script type="text/javascript">
function lf_kakunin(){
//チェックボックスの個数が1個の時
if(document.frm.hoge.length == "undefined"){
alert("1個です");
}
}
</script>

この場合、何も起こりませんでした。
以上より、undefinedは文字列ではないことがわかったので、
<form name="frm" >
<input type="checkbox" name="hoge" value="1">
<input type="button" value="確認" onclick="lf_kakunin();">
</form>
<script type="text/javascript">
function lf_kakunin(){
//チェックボックスの個数が1個の時
if(document.frm.hoge.length == undefined){
alert("1個です");
}
}
</script>

と、「"」をはずすと、無事、alertの部分が表示されました。

今回は、checkboxだったんでけど、radioボタンの時は、どうなるのか次回、検証してみたいと思います。

あと、今日は、IEで動作確認したんだけど、firefoxの場合でも、同じなのだろうか??
うーーーん。。。

2008/12/10

[php]fileの参照方法

inputタグのfile属性でファイルを選択後、submitすると、情報が送信されるのですが、その時の参照方法を調べました。

Lesson11-1 ~画像のアップロード~(ぷろぐらむるーむさんより)を参考にさせていただくと、

//nameを表示
print($_FILES["inputタグのname"]["name"];)
print("<br>");
//サイズの表示
print($_FILES["inputタグのname"]["size"];)
print("<br>");
//ファイルタイプ
print($_FILES["inputタグのname"]["type"];)
print("<br>");
//一時的にサーバーに保存してあるパスの名前
print($_FILES["inputタグのname"]["tmp_name"];)
print("<br>");

こうしてみてみると、結構、あっさりしているんだな。
ただし、この時、注意することがあって、それは、送信する際に、formの中に、「ENCTYPE="MULTIPART/FORM-DATA"」を入れないといけないこと。

また、sizeでの表示は、バイトなので気をつけたいところです。

後、画像をサーバーにアップロードする方法は、同じくLesson11-2 ~画像のアップロードと表示~に詳しい方法が記載されています。

2008/12/09

[asp]exit Functionでファンクションを抜ける

ものすごくやってしまいました。
aspのファンクション内部で、exit Functionを書かない限り処理が続行するんですね。
関数名に値を書いた瞬間に処理が終了するかと思っていたのですが。。。
どーやら違うみたい。

jsやphp、cfはreturnやcfreturnを使って明示的に処理を終了させるという認識があるのですが、aspでも同じような認識を持たないとダメですね。
というか、一般的な言語は、明示的に終了させると認識しないと。。。トホホ。

2008/12/08

adidas decade lowを購入!!

昨日、妻にアディダスの靴を買ってもらいました。

久しぶりに靴を買ってもらったので、ちょーこうふん♪

箱は、いつものブルーとは違って、茶色です。

Photobucket

側面には、大きさやら、名前やらが書いてあります。
Photobucket

そして、あけてみると、、、

Photobucket

じゃーん。
イカス!!

まさに自我自賛ですが、グリーンとブラウンがベースとなっているシューズは初めてです。

後ろは、こんな感じです。

Photobucket

横は、、、
Photobucket

さらに前は、
Photobucket

になっています。

上からズームしてみると、

Photobucket

となっていて、qualityと書かれたキーホルダーが!!
もちろん買ったときについてきます。
なんか、今回、限定らしいです。

言い忘れてしまいましたが、実は、シューズが大好きです。
特にnikeとadidas

理由は、洋服のようにイチイチ脱がずに試着できる点(靴を脱ぐという作業が発生するが、服より手間ではない)と、安くてハショナブルだからです。

いつ履こうかなー♪

2008/12/07

マックキャンペーンでCoke Glassゲット

ちょっと前の話ですが、コカコーラとマックでグラスプレゼントのキャンペーンが行われていました。

Photobucket

10月31日から開始で、マックでLサイズのバリューセットを頼むともれなくコカコーラのロゴが入ったグラスをプレゼントしてくれるというものなのですが、限定500万個だそうです。

キャンペーン開始当日にそっこーに行って、ゲットしました。

まず、パッケージはこのような感じです。

Photobucket

上からのぞいてみると~~~

Photobucket
Mと書かれたロゴが。

いよいよ中をあけてみます。
Photobucket
キタo(>▽<)o
おもいっきり、コーラのロゴが入ってる。
コーラのビンみたいに、くびれてる。

しかも、下面には、
Photobucket
Mと書かれたロゴも。
細かい。

全部で3種類あるうち、赤色をゲットしました。

Photobucket

当初は、グリーンがほしかったのですが、今、思ってみると、コーラと同じ色なので、よかったと思います。

2008/12/06

24 リデンプション DVDセル&リリース

前回、24 Redemption というエントリを書きましたが、24の最新作がいよいよ日本にも来日です。

今回は、2時間で完結のドラマ映画で、アフリカが舞台となっています。

foxのサイトによると、2009年3月19日にDVDセル&リリース同時リリースとなるようです。

めっちゃ楽しみ~♪

2008/12/05

[php]開発はバージョン5で

普段、仕事でバージョンをあまり意識せずにソースを組んでいるのですが、開発者のPHP利用はPHP5に移行したという記事で、PHPで開発を行っている人の多くは、5.2を使っているとか!!

オープンソース言語なので、バージョンアップによる仕様変更や追加などを把握しておかないとやばいのかなと。

2008/12/04

[php]phpファイルでrssを実装する際の注意点

今、作っているアプリでRSSを実装したのですが、firefoxではrssのソースが表示され、IEだとなぜか表示されなかったので、原因を調べてみることに。

そもそも、本来、rssはxmlの一種なので、表示できないとおかしい。

おそらくIEがRSSをxmlファイルとして認識しなかったため、表示しなかったと判断し、サーバーサイドで、rssのソースをxmlのコンテンツとしてIEに認識させるように修正。

具体的に、ヘッダーのContent-Typeをtext/xmlにすればいいということ。
PHPを使おうをちょこっと参考にさせていただいて、結果、落ち着いたのは、下の一文を、ソースのトップに持ってくること。

header("Content-Type: text/xml; charset=UTF-8");

こうすることで、ブラウザに依存せず、「このページのコンテンツは、xmlですよ」と各ブラウザに告知できるので、IEでもrssのソースを表示することができました。

2008/12/03

[php]文字列(yyyymmddhhmiss)からRFC2822フォーマットに変換

今、作っているアプリに必要だったので、調べてみることに。

下のようにyyyymmddhh24missという書式の文字列がある場合。

$temporary_date = "20081202213546";//2008年12月02日21時35分46秒

これをRFC2822フォーマットを行うには、mktime()dateを使って次のようにしました。

//「年」を取得
$temporary_yyyy = substr($temporary_date,0,4);
//「月」を取得
$temporary_mm = substr($temporary_date,4,2);
//「日」を取得
$temporary_dd = substr($temporary_date,6,2);
//「時」を取得
$temporary_hh = substr($temporary_date,8,2);
//「分」を取得
$temporary_mi = substr($temporary_date,10,2);
//「秒」を取得
$temporary_ss = substr($temporary_date,12,2);
//日付を Unix のタイムスタンプとして取得する
$temporary_date = mktime($temporary_hh,$temporary_mi,$temporary_ss,
$temporary_mm,$temporary_dd,$temporary_yyyy);
//RFC2822フォーマットに変換
$temporary_date = date("r",$temporary_date);
//表示
print($temporary_date);

確か、data関数のリファレンスで、mktimeを使って変換していたものがあったので、それを使ってみたのですが、他にも方法があるかもしれません。

今、思ったんだけど、各項目の取得時に変数ではなくて、配列の方がよかったかも。
でも、それほど違いはないのですが。。。

2008/12/02

[coldfusion]xmlを生成しダウンロードする

久しぶりのxmlネタ。
仕事で、xmlを扱いそうなので、予習をかねてxmlを生成し、ダウンロードする方法を考えてみました。
とりあえず、cfのXML ドキュメントオブジェクトの作成と保存を見たのですが、めんどくさそうだったので、文字列を使って気合で作成。

<cfset output_xml = '<?xml version="1.0" ?>'>
<cfset output_xml = output_xml&"<sample>">
<cfset output_xml = output_xml&"<hoge>test1</hoge>">
<cfset output_xml = output_xml&"<foo>test2</foo>">
<cfset output_xml = output_xml&"</sample>">

<cffile ACTION="Write" FILE="#ExpandPath(".")#\hoge.xml" OUTPUT="#output_xml#">
<cfheader name="Content-Disposition" value="attachment; filename=hoge.xml">
<cfcontent TYPE="text/xml" DELETEFILE="yes" FILE="#ExpandPath(".")#\hoge.xml">


すごく原始的なソースになりました。
cffileからの下の3行は、リファレンスに似たようなものがあったのでそれを参照しました♪

cfcontentのtext/xmlは、マニュアルを見ながら、おそらくこうだろうーと判断。

ちなみに、cfcontentのDELETEFILE属性のyesをnoに変更すると、ファイルが残るのですが、残ったファイルを直接削除することってできなかったんですね。

気づくまでちょっと時間がかかりました。

2008/12/01

[oracle]最後に発行されたDDL文の日付を取得

本当は、あるテーブル対して発行されたDML文の発行日付がほしかったんだけど、ぐぐっていたら、DDLの方がみつかったので、メモします。
あるテーブルに対して、最後に発行されたDDLの日付は下のように取得できるみたいです。

SELECT OBJECT_NAME, OBJECT_TYPE,
TO_CHAR(CREATED, 'YYYY.MM.DD HH24:MI:SS'),
TO_CHAR(LAST_DDL_TIME, 'YYYY.MM.DD HH24:MI:SS')
FROM USER_OBJECTS
WHERE OBJECT_NAME = 'MY_PACKAGE';

via:オブジェクトの作成・更新日時の取得

上のテーブルのカラムが知りたくなったので、もうちょい調べてみると、

ALL_OBJECTSは、ログインしているユーザーがアクセスできるオブジェクト情報をすべて示します。

DBA_OBJECTSは、データベース内の全てのオブジェクト情報を示します。

USER_OBJECTSは、ログインしているユーザーが所有しているオブジェクト情報をすべて示します。

ALL_OBJECTS/DBA_OBJECTS/USER_OBJECTSの主要項目一覧


列名説明
OWNERオブジェクトの所有者
OBJECT_NAMEオブジェクト名。
SUBOBJECT_NAMEサブオブジェクトの名前 (パーティションなど)
OBJECT_TYPEオブジェクトのタイプ(TABLE、INDEXなど)
CREATEDオブジェクトの作成日時
LAST_DDL_TIMEDDL文でオブジェクトが変更された日時
STATUSオブジェクトの状態(VALID、INVALIDまたはN/A)

via:データベース内のオブジェクト情報(OBJECTS)

と書かれていました。

この手のテーブルはあまり詳しくないので、徐々に使い方を覚えていきたいですね。

2008/11/30

[php]ファイルの中身を取得

今、作っているアプリのRSSを実装するのに、phpファイルの中に、
<?xml version="1.0" encoding="UTF-8" ?>
を入れてしまうと、phpが<?の後にphpが書かれていないと解釈し、バグが発生してしまいす。

このバグを回避するために、文字列として認識させればいいのですが、phpファイルにはそのまま書けません。

なので、外部ファイルに書き込み、それを読み込むことを考えました。
include関数や、require関数では、呼び込み先のファイルがphpファイルでないといけないので、別の手を考える必要があります。

そこで、今回、file_get_contentsという関数を使ってみます。

ぐぐってみたら、ここのサイトに的中したので、参考にさせていただくと、

#text.txtの中身
test
hello php
#hoge.phpの中身
$ret = file_get_contents("./test.txt");
print($ret);

があるとすると、test.txtをインクルードした、ret変数は、「test hello php」を表示します。

メールテンプレートを読み込むときとか便利かもしれません。

2008/11/29

[mysql]offset句

select文を使って、しばしば、話題になるのは、どこからどこまで表示するか?という点。

mysqlの場合、offset句というのがあって、「どこからどこまで表示するか?」というのを指定できるみたいです。

SELECT * FROM table LIMIT 5;

via:6.4.1. SELECT 構文

上の場合、最初から5行を取得する構文。

SELECT * FROM table LIMIT 5,10;

via:6.4.1. SELECT 構文

次は、6行目から10行取得しますよぉーという意味。

で、肝心なのは、最初の行を0としているところかな。
いざ、取得する時に気をつけたい点です。