page_adsence

2012年2月29日水曜日

SimpleXMLElementを配列に変換(簡易版)

SimpleXMLを配列に変換するのがどうにもこうにも面倒くさいなーと思っていたのでググってみた。

$array = json_decode(json_encode($SimpleXMLElement), true);

この1行のソースで対応可能らしい。
但し属性等がある場合には使えないので、そういう属性がつかないことが保障されている場合には使える。
1行でいけるのは結構便利だなー。

2012年1月26日木曜日

iPhoneでYoutube等の動画をバックグラウンド再生する方法

Youtubeやニコニコ動画等にあがっている作業用BGMを再生したい場合、
画像はずっと変わらないのに、ディスプレイをつけっぱなしにしないといけないので、
ちょっと触れただけで、いろいろと面倒くさいことになるし、
バッテリー消費がすざましいことになってしまいます。

しかし、ディスプレイを消そうとして電源ボタンを押してスリープ状態にしようものなら、
問答無用で再生が止まってしまいます。

じゃあどうするのか?

1.Youtube等で動画を選んで再生する。
2.ホームボタンを押してアプリを終了させる。
3.ホームボタンダブルクリックでタスクバーを表示させる。
4.フリックしてipodコントロールの画面を表示させる。
5.再生ボタンをタッチ

こうするとYoutubeの動画をバックグラウンド再生することができます。
これ、ものすごく便利です。
普通に再生するよりはバッテリーを喰いますが、
画面に触っても問題ないので、ポケットとかに入れて再生が可能になります。

2012年1月10日火曜日

mysql_real_escape_stringはMySQLの接続を確立していないと使えない

CSVを取り込む際にmysql_real_escape_stringを使ってエスケープする処理を入れていたのだが、
処理の順番を変更した際に、なぜかWarningが出てくるようになってしまった。
何かと思って原因を調べてみたら、MySQLと接続していなかったのが原因だった。

確かに、よく考えてみたらmysqlとの接続を確立できてないのに、
phpからmysqlの関数呼ぶことなんてできないよなーと納得の回答。

mysql_real_escape_stringを使う前にmysql_connectするように修正したんですが、
いまいち綺麗に書けてる気がしない・・・。
もうちょっと考えてソースを書こう。

2012年1月4日水曜日

久々にバスツアーでスノボに行ってきた。

学生の頃以来のスノボバスツアーに行ってきた。
行き先は野沢温泉だったんですが、夜23:00に出発して到着したのはなんと9時過ぎ。
そこからレンタルを借りにいったら、さらにそこでも待たされること30分。
結局滑り始められたのは11時過ぎ。
しかも帰りのバスの出発時刻は14:10。
1泊のツアーだったけど、結局1日分くらいしか滑れてないというなんとも悲しいツアーでした。

とはいえ、乗ったバスの品質はちょっと上がってた気がする。
たまたま一番後ろの席だったせいもあるのかもしれませんが、
長時間座っていたけど、ケツが痛くなることもほとんどなかったし、
窓際の席だったけど寒いと思うことはありませんでした。
つか、逆に熱すぎて寝れなかった・・・。

2011年12月27日火曜日

mysql_pconnectはmysql_closeで閉じても意味がない

マニュアルに書いてありました。
mysql_close() は、mysql_pconnect() により生成された持続的リンクを閉じません。

へー。

2011年12月24日土曜日

PS Vitaのソフトとメモリーカードが届いた。

今日ソフトとメモリーカードが届いたので、早速みんゴル6をやってみた。
カードを差すと問答無用でインストールされた。
ソフトにメモリーカード必須って書いてあったから、そのせいかも。
そうじゃないソフトはインストールなしでいけるんだろうか?
せっかくディスクじゃなくなったんだから、カードからロードしてもいいのに。
速度的にはインストールしたほうが断然早いんだろうけど。。。
メモリーカード大容量のは売ってなくて8GBしかないから、
あんまりインストールしたくないなー。
まぁいいや、その辺は別のソフトを買ってみたら試してみたいと思う。

インストールが終わってから、早速プレイ開始。
いつもと同じ感じのみんゴルでした。
特にこれと言って特筆すべき点もなく・・・。
キャラを使えるようにするのにラウンドしてポイント貯めないといけないのが面倒くさいってくらいかな。
あと、タッチに対応させる必要あったのか?って疑問が。
最初のメニューとかはタッチでいけるけど、ゴルフをやってる最中は基本全部ボタンだし。
タッチいらねー。

とはいえ、ゲームのクオリティ自体は相変わらずの安定感。
時間つぶしにはもってこいかな。

あと一個思ったのはゲームの難易度上がった気がする。
まだ全然始めたばっかですが、早くもコースの難易度が高くなってきた気がする。
こんなもんだったっけなー。

2011年12月18日日曜日

PS Vitaが届いた

12/17の昼に起きたらVitaが届いていた。
まさか発売日に本当に届くとは・・・。
正直ちょっと意外でした。

楽天ブックスで買ったのですが、あまりいい口コミ情報なかったので、
まぁ来ないだろうと高をくくっていたのですが、以外に当日届きました。

とはいえ、ソフトも買ってないしメモリーカードも買っていないので、結局何もできず。

とりあえず充電とソフトウェアアップデートだけしました。
あとなんかチュートリアルのゲームみたいなやつをちょろっとやって終了。

本体自体はPSP-1000を使っていた自分からすると大分軽く感じる。
画面はでかくて綺麗だけど保護フィルムも何も買っていないので、若干触るのが躊躇われたけどそのまま使っています。
明日あたりTSUTAYAで保護フィルムだけ買ってこようかな。

L、Rボタンは前のPSP-1000よりはいい感じに俺好み。
けど○とか×とかのボタンの押し具合はちょっと気に入らない。
アナログスティックは大分使いやすくなった。

とりあえずこんな感じでした。
ソフトとメモリーカードが明日届くから、
そしたらもうちょっと使ってみようと思います。

BootCampを使ってWindowsを使ってみて思った。

やっぱWindowsはWindowsマシンで使ったほうがいいね。
MacはMacとして使うのが一番。
MacでWindowsが動くようになってもう大分経つし、もうそろそろいんじゃねって思ったのですが、
やはり使いにくいことには変わりないですね。

キーボードとかマウスとか色々設定すれば使えないことはないから、
その辺は頑張って設定していこうかと。

2011年12月16日金曜日

MVACモデルに関して

MVACモデルって考え方を今更知りました・・・。
デブサミ2009で発表されてたのに・・・。

比較的長い間MCVモデルの考え方を元に作られているMojaviとかSymfonyとかを使ってきたけど、
MVACモデルって考え方はいいかも。

まずMVCって何なのって話。
MVCとは、「ソフトウェアの設計モデルの一つで、
処理の中核を担うModel、
表示・出力を司るView、
入力を受け取ってその内容に応じてViewとModelを制御するController
の3要素の組み合わせでシステムを実装する方式」のことです。
その考えを元に作られたフレームワークで、よく使われているがMojaviとSymfonyです。

もうちょっとそれぞれの役割を詳しく説明すると、以下のようになります。
Model
データのやり取りやロジック部分を担当する。オブジェクト層やサービス層に分類することも出来る。
View
Controllerから受け取ったデータから、実際の表示の生成を行う。
Controller
ユーザからのリクエストを受け取り、リクエストをハンドリングしたり、Modelをいくつか利用して処理を行う。またその時作成したデータをViewに受け渡す。

しかし、MVCモデルではControllerの役割の中に、リクエストを元にハンドリングするという役割と、Modelをいくつか利用して処理を行うという2つの異なる役割を持っていることがネックでした。
そのせいでソースが煩雑になってしまい勝ちだったのです。

そこで出てきたのがMVACモデルの考え方です。

Model
データのやり取りやロジック部分を担当する。オブジェクト層やサービス層に分類することも出来る。
View
Controllerから受け取ったデータから、実際の表示の生成を行う。
Application
Controllerから受け取ったデータから、複数のModelを利用し、実際の処理を行う。
Controller
ユーザからのリクエストを受け取り、リクエストをハンドリングして、Applicationにデータを渡す。

参考文献:http://d.hatena.ne.jp/shiba_yu36/20110303/1299123350


多分ターゲットのシステムがどういったものかでマッチする場合とマッチしない場合もありそうですが、今後もこういった考え方に関しては常にいい方法がないか考えていきたいと思います。

2011年12月13日火曜日

wgetで別名をつけて保存する方法

やり方は以下の通り。

wget -O 保存するファイル名 URL


クエリストリングをつける場合は、URLをダブルクォーテーションでくくる必要がある。