かれこれ2年以上bloggerを使っていますが、無題で投稿できるってはじめて知った。
無題で投稿した場合は、タイトルが表示されません。
twitter likeにつかえるかも。
2009/12/31
[blogger]無題でも投稿可能
I-O DATA USB 2.0/1.1対応 外付型ハードディスク 1TB HDCS-U1.0R2を購入!!
I-O DATA USB 2.0/1.1対応 外付型ハードディスク 1TB HDCS-U1.0R2を購入!!
ヤマダ電気で1万を切っていたし、友達のすすめで買いました。
1TBもはいるんですね。
どんなけー♪
ノートンアンチウィルスがインストールできなかった件について
ついさっき、Norton AntiVirus 2010を購入しました。
でさっそくインストールしようと試みたところ、なんか、「えいご漬け」というソフトがインストールされてしまい、全然、アンチウィルスがインストールされないではないですか!!
原因を調査するべく、ぐぐってみたところ、どうやら誤動作らしく、「えいご漬け」というタイトルで検索を行い、実行ファイルを削除すると、無事にインストーラーが立ち上がりました。
もし、windowsでインストールできない方がいらっしゃいましたら、是非、参考にしてみてください。
インストールしたら、今度は、IE6が立ち上がらなくなった!!
いったいなんなのよーーー。
だめソフトじゃん。
2009/12/30
[JavaScript][jQuery]$().attr()
タグの各属性値を取得したい場合があります。
そんな場合、どうするのかなーっとちょっとぐぐっていたら、ちょーどいい質問をしている人がいました。
jQueryのメソッドチェーン中で各要素の属性にアクセスする方法を教えて下さい。
方法としては、$("#idの名前").attr("属性の名前")
で取れちゃうみたいです。
実際にちょっとソースを作って動かしたところ確かに取得できました。
2009/12/29
[JavaScript][jQuery]$().html()
昨日に引き続き、今日は、document.getElementById().innerHTMLに相当する方法を調べました。
やり方はこちらを参照しました。
$("#idの名前").html("文字列") |
でいけちゃうみたいです。
実際にちょっとソースを作って動かしたところ確かに取得できました。
便利だなー。
2009/12/28
[JavaScript][jQuery]document.getElementById()
最近、JavaScriptの開発においてjQueryを使うようにしています。
そこで、JavaScriptのdocument.getElementById()ってどうやって表現したらいいのかなーっと思い、調べてみました。
こちらを参考にさせていただくと、
$("#idの名前") |
で取得できるみたいです。
prototype.jsと違うのは、Idの中に、#を含めるところでしょうか。
2009/12/27
[php]乱数を発生
乱数を取得する方法について調査
int mt_rand([int min, int max])
via:乱数を生成する(rand, mt_rand)
引数:
min 乱数の最小値
max 乱数の最大値
返り値:
生成された乱数
int型で返してくれるのが便利ですね。
確か、JavaScriptの場合、float型になった気がしたので。
後、rand関数よりも高速みたいです。
便利なのに越したことはないので、こっちを使おうかなと。
2009/12/26
[本]空気を読むな、本を読め。 小飼弾の頭が強くなる読書法
ものすごくおもしろかったので、ソッコウで読了!!
はじめに
via:目次
1章 本を読め。人生は変わる
●2割の成功者は本を読んでいる
●不況だからこそ本を読め
●時間をコストで考えよう
●新聞よりも本を読め
●あなたはホントに忙しいのか?
●恋愛よりも情報に飢えるべし
●情報で溜まったクソを排泄せよ!
●本はWebに負けていない!?
2章 本を読め。答えは見つかる
●ファミコンよりも本は魅力的
●本は水である
●読書は「天才」への最短コース
●空気を読むとバカになる
●現代をサバイブする本
●「古典」は入りやすいし、おもしろい
●人生を変える“難解本”の読み方
●読書を血肉化する方法
3章 「手」で読め。そして「脳」で読め
●まず本は「手」で消化せよ
●ノンフィクションは構造を読め!
●ノンフィクションは「速く」読め!
●フィクションの読書とは旅である
●読んだら「外」に出す
●「外」に出すテクニック
●本に付箋を貼るな!
●人間ならば「脳」で読め
●「停止ボタン」を押すな!
●1時間で10冊読む超読書法
4章 本を読んだら、「自分」を読め
●クソ本を踏むのも一興
●ひきこもって本を読め
●「読書しりとり」のススメ
●6冊読めば、世界がわかる
●クソ本は青汁だ
●クソ本が売れる理由
●ベストセラーの効果的な読み方
●ケチをつけながら読め
5章 コストパフォーマンスを考えよう
●安い本で肩ならしをしろ
●ハードカバーはいい迷惑だ
●本棚は下着よりもセクシー!?
●お金よりも本を浪費せよ
●大前提! 本は“商品”である
●フィクションは文庫がいい
●フィクションの「不都合な真実」
●フィクション作家の才能の測り方
●本の表紙は嘘をつく
6章 エロ本は創造力の宝庫だ!
●「全米が抜いた!?」
●キャッチコピーはエロ本にまかせろ
●エロには「溺死」の危険性が!
●官能小説で養う「創造力」
7章 マンガは日本の国宝である
●マンガの2つの「穴」
●出版社の手口にだまされるな
●ひとつの作品に囲い込まれるな
●ハマる作品は自分で選べ
●「資料価値」を見逃すな!
おわりに
小飼弾が選ぶ最強の100冊+1
本書に書かれている内容のことを、既にほとんどを意識|無意識的かつ実践していたので、新しい何かというのはなかったのですが、こうして本として読んでみると、客観的に考えを後押ししてくれたような気がして読んでいてめちゃくちゃおもしろかったです♪
というわけで既に実践していたことを、本書を読み終えた今だからこそ、まとめもかねて書こうかなと。
1章は「主にメディア(9割テレビでしたが)を見る時間を減らして本を読もう」と書かれていましたが、確かに、子供の時はテレビやゲームばかりしていましたが、高校を卒業してから今ではもう本を読んでいる時間帯の方が長く、逆にテレビはほとんど見ていません。
本を読んだら外に出すというのも、最近は、こうして本を読んだら感想をblogに書いているし(1章、2章、3章に言及あり)。
ただもっと正確にどこの部分でどう勉強になったのか?というところまで深く掘り下げて書いてもいいような気もしましたが。。。
「エロ本を読んで、創造力を養うという」(6章)ところも、本書で出会う前に既に、エロ本(正確にはエロサイトの掲示板ですが)を通して文章を書く練習をしました。
(エロサイトを読んで文章が書けるようになった経緯は下記の書籍を大学の時に読んだからです。)
「ノンフィクションではケチをつけながら読め」(4章)というのも、最近、仕事の影響もあってか、本を読みながら「なんでこう論理展開できるのかなー??著者の勝手な思い込みじゃねーの??」とか、「せっかく買ったのに、なんだーこりゃー」といちゃもんをつけるようになっていました。
(特にここ最近、増えてきたようなー。)
これは、ある一定のモデルが脳内に構築されており、それとは違った考えがでたりすると、反論しちゃう感じです。
まー毎回、毎回、反論することもなく、「へーそういう考えもあるんだー」っと勉強になる時もあり、受け入れる時もありますが。
「本は手で読め」(3章)というのも、最近、webでロハで読めるものもだいぶ、増えてきましたが、それでも書籍としてゲットできる場合は、買っています。
(なんか紙で読むと違うんですよねー。自己満かもしれませんが。)
それにいつでも参照できるというメリットもあります。
(トレイの中、電車の中、食事中など。)
そういえば、本書を読んでいて思ったのは、出版社の方向けの内容がチラホラあったこと。
これは、本を読む人自身が出版社側の立場になって、クソ本を踏まないように本を選ぼうと提案しているのと、出版社の人は、本を商売にしすぎているのを著者が懸念して書いているのかなと解釈したのですが、それにしても他の本と比べて出版社の方向けに書いているなーっと思いました。
(詳細については本書で確認してください。)
後、若干、意見が違ったところとして(それは本書が悪いとかいいとかそんな意味のことで言っているのではなくて)、「ノンフィクションの本に付箋を貼るな」と書いてありましたが、ノンフィクションのほとんどに付箋を貼っちゃっていました。
というのも、ノンフィクションをリファレンスとして読んでいるので、後からガンガン参照すると思い、すぐにひけるように貼っているのです。
(というか、ここ最近、読んでいるのが、プログラミングのリファレンス系ばっかりなので結果的にはそうなっているのかしれませんが。。。)
「1時間で10冊読む超読書法」が紹介されていましたが、元来貧乏性なのか、全部読まないと読んだ気がしなくて、たとえ他の本と内容が重複していても全部読むようにしています。
(「1時間で10冊読む超読書法」は本書で確認してください。)
なんか達成感みたいなものが得られないのかなと。
とつらつら書いているうちに長くなってしまったのでいったん閉じます。
本を読むのは楽しいことなんだなーっとつきづく実感した次第です。
追記
巻末に記載されている:小飼弾が選ぶ最強の100冊+1は
#空気本_ - 小飼弾が選ぶ最強の100冊+1
にて紹介されています。
また、著者のブログでも
#空気本_ - 紹介 - 「空気を読むな、本を読め。」
にて本書が紹介されています。
併せてどうぞ♪
2009/12/25
[php][Google Ajax Search API]JSONのパース
前回、phpを使ってサーバー上でgoogleのイメージ検索を行う処理を書きました。
今回は、その結果を解析する方法から書きたいと思います。
解析方法は、めちゃくちゃ簡単で、
$json = json_decode($body); |
とjson_decode関数を使えばオッケー♪
($bodyは、前回の内容を参照されたい)
関数の戻り値(この場合は、$json)はオブジェクトの可能性があるので、var_dump関数を使って解析を行えば、戻り値の型が表示されるのでそれに従って各値を取得すればオッケーだと思います。
ちなみに、Google Ajax Search APIの場合の戻り値の構成は、こちらとこちらを参照してください。
サンプルとして、画像のurlを取得し、それを表示するプログラムは、こんな感じになります。
//検索文字列の設定 |
基本的には、戻り値がstClassなのでフィールドアクセスが多いと思います。
他にもいろいろと戻り値があるので、いろいろと表示してみて遊んでみてください。
2009/12/24
[php]コラッツ問題
二週間前ほどにワインを飲みながらコラッツ問題を教えていただきました。
コラッツ問題
コラッツ問題とは、
ある数nが偶数の場合、2で割る
ある数nが奇数の場合、3を掛けて1を足す
これを繰り返し行うとどんな数でも1に収束するという未解決問題の一つです。
(余談ですが、数学には未解決問題というのがあり、それを解決するとお金がもらえるらしい。)
そこで、このコラッツ問題を今回、phpで実装すると下記のようになります。
function CollatzProblem($n){ |
実際に小さい数で実験してみたところ、きちんと動きました。
すっげー不思議な性質だー。
というかそもそもよくこんな法則考えついちゃうよなー。
と関心しながら、プログラムを組んでました。
2009/12/23
[本]新版 明解C言語 入門編
やっとこさ、読み終わりました。
(演習問題も完了)
まずは慣れよう
via:目次
演算と型
プログラムの流れの分岐
プログラムの流れの繰返し
配列
関数
基本型
いろいろなプログラムを作ってみよう
文字列の基本
ポインタ
文字列とポインタ
構造体
ファイル処理
C言語は、大学の時にちょろっとかじった程度だったし、レポートはトモダチにやってもらっていたので、ほぼ何も知らない状況からスタートしました。
ホント、アマゾンの評価通りにわかりやすい本でした。
わかりやすいだけでなく、後で、リファレンスとしても役に立つので便利だなーっと思ったり。
しかし、しかし、やはりポインタの部分が難しかった。
完璧に理解できたかと聞かれればう~ん??と頷かざるを得ない。
一読しただけでは理解できないのかもしれない。
プログラム初心者にも他の言語取得者でもC言語のエントリーとしていい本だと思いました。
objective-cに入る前に、先にこちらの本を読んでおけばよかったなーっといまさらながらに後悔。
ちょっと気になったのは、練習問題をといた解答でwebに公開していいものなのかな??
2009/12/22
iPhone tech talk終了後の感想
iPhone tech talk終了後、t-shirtsを頂きました。
(表面)
(裏面)
残念ながら会場は撮影禁止だったので、様子を掲載できなかったのですが、ものすごい盛り上がりました。
push notificationやら
purchase
など、知りたかった内容もりだくさんだったので非常に充実した会になりました。
講演終了後、懇親会があったのですが、ものすごいアプリを作っている方達とお会いできて、とても感動しました。
なんとKamehamehaの作者さんとお話をしました。超感動!!
アプリ作成に当たっていろいろな裏話を教えていただきました。
kamehameha
もっともっと勉強していいアプリを作るぞと頑なに誓いました。
2009/12/21
[php][Google Ajax Search API]画像(imgae)を検索する方法とcurl関数群について
今回は、若干、タイトルが長いのですが。
googleの画像(image)検索をajaxではなくサーバー上で検索を行いたい場合について調査を行いました。
Google AJAX Search APIのFlash and other Non-Javascript Environmentsというセクションを読むと、Code Snippetsとして以下のPHPプログラムが紹介されていました。
以下、ちょっと紹介(転載)します。
$url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=Paris%20Hilton";
via:Php Access
// sendRequest
// note how referer is set manually
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, /* Enter the URL of your site here */);
$body = curl_exec($ch);
curl_close($ch);
// now, process the JSON string
$json = json_decode($body);
// now have some fun with the results...
ここで初めてでてきたのが、curl関数群なのですが、どうして、前回紹介したgetメソッドを利用したhttpリクエストを使用していないのかというと(ここからは考察です。)、
1:リファレンスがcurlを推奨していた
2:http referer headerを必ずチェックしなければならない
3:サンプルソースが元々そうなっているから!!(かなり無理やり感がありますが。。。)
が原因なのではないかと。
後、リファレンスでは、PHPのバージョンを5.2以降を推奨していましたが、この理由として、jsonをサーバー上でパースすることができるためです。
jsonをPHPでパースすための方法については、また改めて書こうと思っております。
curl関数群について初めて知ったのでそれについてちょっと解説します。
まず、
1:curl_initで初期化
2:curl_setopt($ch, CURLOPT_URL, $url);で取得するurlを設定
3:curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);でcurl_exec関数の返り値を文字列で取得する。
4:curl_setopt($ch, CURLOPT_REFERER, /* Enter the URL of your site here */);でリファラーを設定
5:curl_exec($ch);で問い合わせの実行
という流れになっています。
これを書いていて思ったのですが、/* Enter the URL of your site here */の部分を適当な名前に変えればリファラー詐称できちゃんじゃないのか??
試してないので適当です。
後、通信プロトコルってどうなっているんだろう?
PHPのマニュアルのcurl_setoptを読むと、CURLOPT_HTTPGETの値がデフォルトでtrueになっているので、とりあえずhttp通信のgetメソッドをしているのだと納得します。
話を元に戻して、上は、パリスヒルトンで検索していますが、ジェシカアルバでしかも画像の検索を行いたかったので、下記のようにプログラムの修正を行い、実行してみました。
//検索文字列の設定 $url_string = "ジェシカ アルバ"; //urlエンコード $url_string = urlencode($url_string); $url = "http://ajax.googleapis.com/ajax/services/search/images"; $url = $url."?v=1.0"; $url = $url."&key=取得したapi-key"; $url = $url."&rsz=large"; $url = $url."&q=".$url_string; // sendRequest // note how referer is set manually $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_REFERER, "http://・・・.php"); $body = curl_exec($ch); curl_close($ch); // now, process the JSON string $json = json_decode($body); |
url変数については、こちらを参考にしてください。
結果としては、うまくいき、きちんと画像を表示することができました。
今回は、だいぶ長くなってしまったため、戻り値について書くことができませんでしたが、後日時間が取れれば書いていきたいと思います。
[blogger]Amazon Associatesをサポート
Blogger Buzz: Blogger integrates with Amazon Associatesで知ったのですが、BloggerにAmazon Associatesがサポートされたみたいです。
さっそく読みながら設定しようかなーっと思っていたら、項目がない。。。
どうやら日本では未対応みたいです。
早くサポートしてほしいなーっと。
2009/12/20
[php]stdClassについて
ある変数をvar_dump関数で出力した時に「stdClass」という単語がでてきました。
「なんだこりゃー??」
っとさっそくgoogleセンセーに聞いてみたところ、どうやら、PHPの元々あるクラスみたいです。
(PHP標準クラスのstdClassについてを読んでみると、全てのクラスの基本となるクラスみたいです。)
クラスなので各値をプロパティとみなせば、従来、自作したクラスの場合となんら変わりはありません。
というわけで、今度から、でてきたとしてもびびらずに前進したいと思います。
2009/12/19
[php]var_dumpに関して
変数の中身を参照することができるvar_dump関数がめちゃくちゃ便利かなと思ったりして。
(var_dump関数はこちらを最初、参考にしました。)
例えば、次のプログラムを実行してみます。
$hoge["name"] = maito; $hoge["age"] = 27; $hoge["height"] = 178; var_dump($hoge); exit(); |
で、実行してみると下記の結果を得ました。
array(3) { ["name"]=> string(5) "maito" ["age"]=> int(27) ["height"]=> int(178) } |
配列の大きさは3で、各配列の要素の値が型名付きで書いてあります。
さらに次にこんな風に書いてみました。
$hoge = maito; var_dump($hoge); exit(); |
実行結果は、
string(5) "maito" |
となりました。
最語にNumber型はどうなるのかなーっと。
$age = 27; var_dump($age); exit(); |
で実行すると
int(27) |
を得ました。
最後の最後にBoolean型は
$age = true; var_dump($age); exit(); |
と書いたら、
bool(true) |
を得ました。
print関数で変数を出力するよりも、こちらの関数の方がいろいろな変数を出力することができるのでデバッグするときに役に立ちそうです。
2009/12/18
[php]配列の大きさ(個数)を取得
タイトル通りなのですが、実は、配列の大きさ(個数)の取得方法がわからなかったので、ちょっと調べてみました。
こちらを参考にすると、count関数とsizeof関数で取得することができるみたいで、読んだだけだと納得できないので、実装してみました。
$hoge["name"] = maito; $hoge["age"] = 27; $hoge["height"] = 178; print(count($hoge)."<br>"); print(sizeof($hoge)."<br>"); exit(); |
で、実行してみた結果、共に3を得ることができました。
これで、配列のループにも困らないぞと。
2009/12/17
[gadget]My Photo in PhotoShareバージョン1.1リリース
先日、リリースしました、iGoogle gadgetのMy Photo in PhotoShareですが、バージョンアップしました。
更新内容といたしまして、homeビュー上ですべての画像が表示できるようにプログラムの修正を行いました。
今までは、写真の一部しか表示できなかったのですが。
今回のバージョンアップ、実は、なんと、PhotoShareの作者であるLife is beautifulのNakajimaさんからコメントを頂いて修正しました。
Nakajimaさんといえば、Windows95とWindows98を作ったものすごいお方であり、コメントをいただいた時、超、超、超、感動しました。
こうしてきちんと作ったガジェットを見ていただけるなんて感謝感激です。
もっともっといいアプリを作るためにガンバルぞと心に誓いました♪
[coldfusion-addon]google group終了のお知らせ
オープンソースコミュニティーであるcoldfusion-addonのgoogle groupですが、このたび、突然ですが、終了することにしました。
理由としては、ものすごいスパムが起きたことです。
コミュニティー自体は、まだ残しています。
2009/12/16
[gadget]ある特定の情報をガジェット内で保持|保存する方法(その1)
ガジェット上である特定の情報を保持|保存したい場合があります。
(例、郵便番号、血液型、誕生日などなど)
書いても伝わりにくいと思うので、実際にプログラムをちょっと書いてみました。
<?xml version="1.0" encoding="UTF-8" ?> |
これは何かというと、ガジェット追加時に、まず始めに下のようにガジェット表示時にテキストボックスが表示されます。
で、このようにテキストボックスを表示するにためには、
ModulePrefsタグの中で、<Require feature="setprefs" />を追加し、
<UserPref name="youage" display_name="年齢は?" datatype="String" required="true" />をModulePrefsタグの終了後に追加することによって実現できます。
上の画像にある左側に表示される文言の設定は、UserPrefタグのdisplay_name属性で設定します。
datatypeは今回はStringとします。
(ちなみに、hiddenの場合は、テキストボックスが表示されないのですが、その場合については、こちらを参照。)
必須入力としたい場合は、required属性をtrueに設定します。(必須入力と設定した場合、赤文字で「必須」と表示されます。)
逆に任意入力の場合は、falseとします。
name属性は、後でJavaScriptで参照する時に使う名前なので、英文字に設定してください。
また、今回は使いませんでしたが、デフォルト値を設定することもできて、その場合は、UserPrefタグの中でdefault_value属性に値を設定すればオッケーです。
話が長くなってしまいましたが、27と入力し、「保存」ボタンを押します。
すると、そこで始めてガジェットがロードされ下記のように数字を表示することができます。
入力された数字は、下記のJavaScriptのように実装することで取得することができます。
var prefs = new gadgets.Prefs(); alert(prefs.getInt("youage")); |
var prefs = new gadgets.Prefs();
でUserPrefタグの中身を使いますよーという宣言をします。
そして次のprefs.getInt("youage")の部分ですが、これは、UserPrefタグのname属性がyouageという値のvalue値をIntとしてゲットしますよーっと指示を出しています。
ちなみに、Intということは数字で取得するという意味なのですが、テキストボックスに数字以外を入力した場合はどうなるのでしょうか?
実は、0になります。
実際にhogeと入力してみます。
で、値はどうなるのか?というと、やはり0となります。
他にも、String型で取得したり、Float型で取得したりすることができます。
詳しいことはリファレンスに記載されています。
ちなみに、保存できるデータ量に上限があるっぽくリファレンスを覗くと2Kとなっているみたいです。
あまりでかいデータを保存しないように注意したいっす。
2009/12/15
[iGoogle gadget]My Photo in PhotoShareをリリース
新しいiGoogle gadgetを作成しました。
My Photo in PhotoShareガジェットというアプリなのですが、これは、iPhoneでリリースされているPhotoShareにアップロードされた自分の写真を表示することができるガジェットです。
まずガジェット追加時にPhotoShareのIDを聞いてきますので入力します。(必須入力です)
IDの確認方法ですが、PhotoShareのニックネームが書かれているとなりの数字で確認できます。
(上の画像の場合、IDは389546となります。)
入力後、写真が数秒おきに変わりながら表示されます。
(一部、PhotoShareの作者であるNakajimaさんの写真を拝借しております。)
画像にマウスをのっけると、左右両側に矢印がでてくると思います。(下図)
矢印をクリックすると、次の写真に写ります。
さらに、canvasビューで開くと、写真の下にサムネイルの一覧が表示されます。
今回のガジェットはJqueryを使ったデザインごり押しの作品なので、是非、使ってみてください。
ガジェットに追加はこちらから
BigCanvsがリリースしているPhotoShareはこちら
(iTunesに接続されます。)
2009/12/14
[php]utf-8にエンコードを行う
文字列をエンコードしたい場合は、urlencode()を使えばできちゃうみたいです。
なんと便利な世の中なんだ。
サンプル
$url_string = "桑原 舞斗"; $url_string = urlencode($url_string); print($url_string); //実行結果 %E6%A1%91%E5%8E%9F%E3%80%80%E8%88%9E%E6%96%97 |