犬ターネット
Archive : 2012年11月
もろもろ引っ越し
atpages においてたおもちゃをこっちに引っ越し。
これでやっと atpages と手が切れる...かな。しばらくしたらあっちは閉じよう。
ブログ見ましたよ
先日お客さんに「そういやブログ見ましたよ、ちゃんとまとまっててすごいなあ」って言われて「あ?え?あっ」ってなったんだけど、このブログ見ましたよじゃなくて会社ブログ見ましたよってことだった。
いやー焦った。はーちんぽちんぽ
つぶやき怪談移動した
atpages にあったのをこっちに移動してきた。atpages からもこっちにリダイレクトかけてる。
atpages では各怪談をファイル管理してたんだけど、appfog 移行に伴い mysql 管理に変更した。
soundcloud API + PHP で検索したり認証したり
前準備
http://developers.soundcloud.com/ から API の登録をして、Client ID、Client Secret をメモ、Redirect URI を設定。
https://github.com/mptre/php-soundcloud から php-soundcloud をダウンロード、適当な場所に展開。
API使って検索してみる
soundcloud 上にアップされた楽曲で「meshuggah」が含まれるものを検索してみる。
実行結果。
API使ってユーザの情報を取得してみる(認証必要)
ユーザの情報を取得するには認証処理が必要。
上記ソースをwebサーバのどっかにおいてブラウザでアクセスすると、soundcloud.com の認証画面が表示される。twitterやfacebookの認証のアレと同じ感じ。
「connect」を押すと API で設定した Redirect URI にリダイレクトされて、こんな感じの結果が表示される。
ハマったところ
Windows環境のPHPのCURLがヘボくて、上記ソースのように setCurlOptions で cacert.pem を設定しておかないとちゃんと接続できない。Linux系だったら大丈夫かも。
留守電
先日飲み会で帰りが遅くなったとき、ケータイに留守電が入ってたので再生してみたら、
「(エグッ... エグッ... )ぱぱ~、はやくかえってきてよお~、うわああああああん」
と娘から伝言が残っており、次の日娘に聞いてみたらちゃんと覚えてて、
「ぱぱ、よるのおさんぽ、はやくかえってこなくちゃだめよ」
と懇願されたため、今後は遅くとも21時頃には帰らせていただきます申し訳ございません。
どうせあと5,6年もしたらウザがられるんだから、せめて今だけはこの親子関係を大切にしたい。
友人たちに会った
結婚したり子どもができたり会社がつぶれたりハゲたり太ったりまあいろいろあるけど、いつものメンツで当時と同じ感じでバカ話ができるってのはすごく幸せだ。
サムネイルをでかく表示する
を
みたいにしてもあんまり意味ないけどなんかアイディアが浮かびそうなのでメモっておく。
デザイン変えたい
シンプルなデザインが好きで、究極はやっぱり .txt とか Content-Type: text/plain なんだけど、リンクできないし画像貼れないし利便性に欠けるから却下。
となるとやはり往年のエイチティーエムエルSTYLEになっちゃうんだけど、なかなかシンプルでいいデザインが思い浮かばない。
今のこの感じも悪くはないと思ってるんだけど、もっとシンプルに見やすくできそうな気がする...はてさて困った。
appfog 上に作った mysql を SSHトンネリングしてコマンドラインから直接操作する
appfog 上に作った mysql は SSHトンネリングすればコマンドラインから直接参照できるとのこと。
Tunneling - AppFog Documentation
ってことでさっそく試す。環境は以下。
- Windows 7
- Ruby、af インストール済(参考)
- MySQL インストール済(mysql.exe と mysqldump.exe にPATHが通ってること)
まず http://rubyinstaller.org/downloads から「Development Kit」をダウンロード、適当なディレクトリに展開。ここでは C:\Ruby193\devkit\ に展開した。
次にコマンドプロンプトから以下実行して caldecott をインストール(最初の2行はRubyとDevelopment Kit のパス通すコマンド)。
> C:\Ruby193\bin\setrbvars.bat > C:\Ruby193\devkit\devkitvars.bat > gem install caldecott
トンネリングは10000ポートを使うので事前に開けておく。で、さっそく実行。まずはログイン。
> af login Attempting login to [https://api.appfog.com] Email: ********** Password: ********** Successfully logged into [https://api.appfog.com]
次にトンネリング実行。どのサービスをトンネリングするか聞かれるので、ここでは1のmysqlを選択。
> af tunnel 1: mgng_mysql 2: mgng_chimpo Which service to tunnel to?: 1
すると接続情報が表示され、トンネリングが開始されて、どの操作を実行するか聞かれる。
Getting tunnel connection info: OK Service connection info: username : ****** password : ****** name : ****** infra : aws Starting tunnel to mgng_mysql on port 10000. 1: none 2: mysql 3: mysqldump Which client would you like to start?: 2
1はトンネリングのみ(MySQL WorkBench みたいなツール専用)、2はコマンドラインで接続、3はdump取得。
コマンドラインから直接操作したいので 2 を選択。すると以下のように勝手に接続しにいく。
Launching 'mysql --protocol=TCP --host=localhost --port=10000 --user=****** --password=****** ******' Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 20110661 Server version: 5.5.8-log Source distribution Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
接続できたので、試しにクエリキャッシュの状態を確認してみる。
mysql> show variables like 'have_query_cache'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | have_query_cache | YES | +------------------+-------+ 1 row in set (0.81 sec)
あとはよしなに。
先頭8文字しか使わないって聞くとこれ思い出す
ある条件下で、PHPのcrypt関数使ってパスワードハッシュ作ると、8文字以上は何入力しても意味ないってやつ。
まあいまどきこんな実装してるところなんてないと思うけど。
WEBを学ぶには
「フルスクラッチでブログ構築してインターネットに公開する」っつうのがWEB系理解する最短ルートだと思ってるんだけど、あまり同意を得られない。
cgi・データベース・Webサーバのバックエンド、HTML・javascript・css・Flashのフロントエンド、そして脆弱性対策の仕方もまとめて学べるからすごくオススメなのに。
系統だてて勉強するのはその後で十分。何もわからんまま本読み始めたてもちんぷんかんぷんだろ。
ひたすらGoogle検索しろ。そしてひたすらアウトプットしろ。脆弱性突かれろ。失敗から学べ。
バカか
てめえが今日の10時が都合いいっつうからこっちもスケジュール調整&資料作成して先週金曜午後イチにもろもろ全部送ったのに、今日になって「いやー、資料まだ解凍してなくって、へへ、ええと、解凍パスワードなんでしたっけ、はは」ってなんだこら笑うところじゃねえだろ、そもそも先日の動作試験だってテメエんとこの開発が遅れてたせいでうちも割を食ったんじゃねえか、キックオフんときの打ち合わせで「うちはノウハウあるんで、まあ大丈夫ですけど、オタクんとこの開発間に合います?(ドヤ顔)」って言ってたくせになんだそりゃ、挙句動作試験票は御社で作成いただきたいだと?おめえんとこの試験票をなんでおれが作んなきゃならねえんだハゲオヤジしねやカス糞老害カントン包茎
ってことが現在進行中で、やっぱり仕事って楽しいし勉強になるなあと思います。
sqlite エクスポート → mysql インポート
以前使ってた atpages では DB に sqlite 使ってたんだけど、appfog は sqlite が使えない(?)ので、以下の手順で sqlite エクスポート → mysql インポートした。
まず sqlite の中身を dump.sql にエクスポート、
# sqlite3 db.sqlite sqlite> .output dump.sql sqlite> .dump (Ctrl+C) # cat dump.sql PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; CREATE TABLE entry( id INTEGER PRIMARY KEY, title text NOT NULL, date text NOT NULL, tags text, contents text NOT NULL ); INSERT INTO ...
これを mysql用 に書き換える。
sqliteではテキスト型でなんでもぶっこめたけど、mysqlの場合BLOB型にしないと入らないデータがあったので、id以外はBLOBで定義した。あと「BEGIN TRANSACTION」を「START TRANSACTION」に変更。
-- DB作成 CREATE DATABASE mgng CHARACTER SET utf8; use mgng; set character_set_client = utf8; set character_set_connection = utf8; set character_set_results = utf8; -- text ではなく BLOB 型で定義 CREATE TABLE entry ( id MEDIUMINT NOT NULL AUTO_INCREMENT, title BLOB NOT NULL, date BLOB NOT NULL, tags BLOB, contents MEDIUMBLOB NOT NULL, primary key (id) ); -- BEGIN ではなく START START TRANSACTION; INSERT INTO ...
最後に dump.sql を実行して終了。
# mysql -u mgng -h hostname -p < /path/to/dump.sql
ちなみに START TRANSACTION ~ COMMIT しないと INSERT に死ぬほど時間かかる。大量に INSERT する場合はトランザクション内で行うっつうのは定石。これは sqlite でも同じ。
atpages から appfog に移行
atpages がなんかよくわかんない広告だらけになってきたから、日記だけこっち(appfog)に移行してきた。
httpsでのアクセスもOKだし、広告つかないし、FFFTPは使えないけどとても便利なので、しばらくここに住まうことにする。
無料プランだとディスク容量512Mしかないけど、容量全部使い切るまでに俺かappfogが死ぬから、問題ない。
iTunesで曲のプロパティ変えたらiPhoneでバグった
「デフトーンズ」って表記がダサかったから、iTunesで曲選択→右クリック→プロパティ表示、「デフトーンズ」を「Deftones」に変更、「同期」したんだけど、一部「デフトーンズ」のままでアルバム名が「不明」になった。
iPhone側でいったん曲削除してiTunesつないで同期したら治った。
なんかatpagesが
だんだん使いにくくなってきたから移行考えてる。
SNSじゃなくてメーリングリストっていう
こんだけSNSが流行ってるのに、極親しい友達数人とは未だにメーリングリストでのやりとりっつうね。時代錯誤も甚だしい。
ブブブーつってケータイ見ると、メーリングリストから広告だらけのメール届いてて、内容はというと「明日無理かも」だけ、みたいな。
でも楽しい。不便であるからこそ、味わい深さがあるんだと思う。tcupにgeocitiesに忍者ツールズ。あの頃のインターネットが大好きだ。
圧縮されたIPv6アドレスを展開するやつ
PHPなら関数一発で展開できるだろ、と思ったらできなかったので作った。第2引数にtrueを渡すと strtoupper して返す。
結果。
IPv6が未だにあんまりよくわかってない。
おおおおおおおおお
おおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお
ナスカカー中屋さん臨死体験
ご養生ください。
【三途の川から引き返して参りましたのでご報告】先日、医者に行った所白血球数が42000と常人の5倍近いので、これは急性の白血病の疑いも見られるから経過みながら悪化したら即入院レベルだったので、ちょっとPC触る気力なかったです(続く)
— NascaCarnakayaさん (@nascacar) 11月 8, 2012
で、それでも休めない仕事状況なので師父事して>医者で注射&点滴。熱測ると大概40度寝まくって朝には38度の繰り返しで、6日夜には呼吸停止状態になり、救急車で搬送されましたが、すっと舞い戻って来ました(続く)
— NascaCarnakayaさん (@nascacar) 11月 8, 2012
まあ、その間家族は大騒ぎでしたが、何か不思議な臨死体験らしきものをして(何故か勝新太郎と旅をして、川を船で渡ろうとしたら、乗るな!と諭されて見送ったとこで終わったんですが…)救急隊員が、ふっっと起き上がったのをみて気持ち悪いと思ったらしいです…(続く)
— NascaCarnakayaさん (@nascacar) 11月 8, 2012
何かそれ以来体調が戻りつつあり、数値も12000と常人より高いけど熱も徐々に下がっているので自分でもまだまだ大丈夫だろうと確信が持てたのでいけるだろうと。何分にも食欲あるのはいいことです。まあそういうわけで大丈夫ですのでご心配おかけしました。しかし」、原因は何かよくわからん…
— NascaCarnakayaさん (@nascacar) 11月 8, 2012
UTF-8以外の文字コードでもphpDocumentor2使いたい
phpDocumentor2、ソース文字コードが UTF-8 以外だとうまくパースできないけど、以下ファイルを修正して読込時に文字コード変換かければ大丈夫。
phpDocumentor2/src/phpDocumentor/Reflection/FileReflector.php public function __construct 内 の以下を修正 $this->contents = file_get_contents($file); ↓ // ソースコードが EUC-JP の場合 $this->contents = mb_convert_encoding( file_get_contents($file), 'UTF-8', 'EUC-JP' );
あとは普通にコマンド叩けばOK。
時間見つけてコマンドライン引数に文字コード渡せるように改造したい。
大阪
妻がいよいよスマホに
するらしく、スマホつったらTwitterにFacebookにLINEにSNSだし、おれのアカウントが妻にばれたら嫌だから、インターネット自殺を考えている。
夜のインターネット
を最近全然しなくなっちゃって、理由はいくつかあって
- 寒い
- 寒いから布団が気持ちいい
- 寒いから布団が気持ちよくて娘と一緒に寝てるんだけど娘がかわいいしいい匂い
つまりインターネットより娘がかわいい。
ボタン記念日
娘がパジャマのボタンを自分ではずして自分でとめられた記念日。あ、ちなみに昨日。