誕生日にいただいた本をようやく読み終えました。
プロセッサを支える技術 ??果てしなくスピードを追求する世界 (WEB+DB PRESS plus)
- 作者: Hisa Ando
- 出版社/メーカー: 技術評論社
- 発売日: 2011/01/06
- メディア: 単行本(ソフトカバー)
- 購入: 22人 クリック: 250回
- この商品を含むブログ (46件) を見る
大学の時はヘネパタが教科書でしたが、今はこの本を代わりに教科書にしてもいいんじゃないかと思う豊富さと内容でした。
誕生日にいただいた本をようやく読み終えました。
プロセッサを支える技術 ??果てしなくスピードを追求する世界 (WEB+DB PRESS plus)
大学の時はヘネパタが教科書でしたが、今はこの本を代わりに教科書にしてもいいんじゃないかと思う豊富さと内容でした。
古くなったため、書き直しました。
転職祝いの積読本がようやく消化できました。
ノンフィクションながら展開が面白くもあり、全然知らなかった現在のサイバー犯罪の状況がいろいろとわかって勉強にもなった。
PHP でスレッドを使いたいとお嘆きのあなたは使ってみるといいんじゃないかな。
マニュアルは公式サイトの方が読みやすいと思われる。
残念なことに使用するには --enable-maintainer-zts を有効にして再ビルドする必要がある。
--enable-maintainer-zts Enable thread safety - for code maintainers only!!
phpbrew の場合は -- オプションで configure への引数を追加できる。
% phpbrew install php-5.4.7 -- --enable-maintainer-zts
zts を有効にしたら pecl でぶっこみます。github から archive を持ってくる必要なんてなかったんや...。
% pecl install pthreads-beta
あとは Thread クラスを継承したクラスを書くだけです。ね?簡単でしょ?
% php ./ThreadExample.php ID[4340998144] : start & sleep ID[4342120448] : start & sleep ID[4343242752] : start & sleep ID[4344365056] : start & sleep ID[4345487360] : start & sleep ID[4345487360] : done ID[4346609664] : start & sleep ID[4347731968] : start & sleep ID[4348268544] : start & sleep ID[4349128704] : start & sleep ID[4349988864] : start & sleep ID[4343242752] : done ID[4340998144] : done ID[4346609664] : done ID[4348268544] : done ID[4349128704] : done ID[4349988864] : done ID[4344365056] : done ID[4342120448] : done ID[4347731968] : done %
【追記】ブクマがそこそこあったので補足しておきますが、run() の中で date() を呼んだら Segmentation Fault が発生したり、property を定義しても何故か未定義になってしまうので、まだまだ実用はできない状態です。
引き続き転職祝いにもらった本を読んでた。
Mobageを支える技術 ~ソーシャルゲームの舞台裏~ (WEB+DB PRESS plus)
ひと通り読んでみて、思ってたよりも知ってたことが多かった。その分、web プログラマとしての経験が積めていたとポジティブに捉えることにする。
また、後半からは Perl のライブラリや Hadoop のマニュアルみたいな内容が増えてきて、個人的にはちょっと肩透かしなところもあったなあと感じた。
昔、とある業務で複数のファイルおよびアーカイブをアップロードしてもらって、それらをデータベースの内容と比較して、結果を表示するというフォームがあったのだが、それの利用者がアーカイブを一度展開して、それの中身を他のファイルと同じディレクトリに置いて、再度圧縮するという手間のかかることをやっていた。
それを見て、本当にこのフォームをつくったのは 自分の不勉強をクライアントの負担に勝手に転嫁するクソ まだまだ功夫が足りないエンジニアだなと思い、「全部を何も考えず一つのアーカイブに突っ込んだら、あとはよしなにしてくれるメソッドがあればいいんじゃね?」とカッとなって書いた。
それにしても File_Archive は strict にすると警告がいっぱいでるあたりが PHPUnit 泣かせである。他のライブラリをバックエンドにできないか探してみることにする。
とある事情でテスト用のテーブルフィクスチャを読み込むことが csv から直接できなかった (PHP array にする必要があった) ため、用意していた csv を json に変換するツールを探した。
rubygems にも 同名のパッケージ があったが、インストールしてもパス周りに設定が上手くできなかったため、諦めて C で書かれているこちらを使った。
ちなみにそのままコンパイルしたツールに吐かせた json を PHP の json_decode しても null を返すため、ツールに若干の修正が必要であった。(理由は以下のとおり。)
<?php // 以下の文字列は JavaScript としては有効ですが JSON としては無効です // 名前と値はダブルクォートで囲む必要があります // シングルクォートは使えません $bad_json = "{ 'bar': 'baz' }"; json_decode($bad_json); // null // 名前をダブルクォートで囲まなければなりません $bad_json = '{ bar: "baz" }'; json_decode($bad_json); // null // 最後にカンマをつけてはいけません $bad_json = '{ bar: "baz", }'; json_decode($bad_json); // null ?>
要するに名前の方もダブルクオートしないといけない。
さっそく転職祝いでもらったリーダブルコードを読破した。
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
自分の過去のコーディングを思い返してみると、項目の半分くらいは以前から気をつけて書いていたが、もう半分くらいは徹底できてなかったなあという感想。
今日から通勤電車でまとまった時間がとれるようになった&混雑もそれほどしていないので、本を読めるようになった。
おかげでじわじわたまってた積読本を消化できそうな気がする。
さっそく中断してた本を一冊倒すことができた。
明日からもじゃんじゃん読破していきたい。
音楽の方向性の違いによりバンドを会社を 8 月末で脱退しました辞めました。
長い間、ご愛読ありがとうございました。
いけむらさん先生の来世にご期待ください。
gh-pages に setup.bz2 とバイナリパッケージツリーを置いて setup.exe から見えるようにしたら package repository にできるんじゃないかと思ったので、ImpArt » github-pageつくってみた に書いてあるとおり gh-pages ブランチを push したら setup.exe からアクセスすることができることは確認した。
しかし、手元のパッケージツリーは 1.8G あり、これを一回で commit & push しようとすると当然ながらデカすぎて timeout するというわけであっさり断念した。ちなみに一個一個パッケージをアップロードすれば、たぶんできるが、何時間かかるかわからないし、短期間に 800 以上の log が follower のみなさんの TL に流れるのもアレだと思った上に「バイナリをリポジトリに置くような奴の今週の餌はスイカの種だけな」というお叱りを受けましたので、自粛することにしました。
@fd0 お前今週の餌、スイカの種だけな
— ハトさん (@rosylilly) 8月 21, 2012
funcall は任意の関数の前後に callback を追加することができる PECL である。
使い方は以下のとおりである。
実行結果は以下のとおりである。
% php ./funcall.php pre require_once (/Users/fd0/.phpbrew/php/php-5.3.15/lib/php/OS/Guess.php) post require_once (/Users/fd0/.phpbrew/php/php-5.3.15/lib/php/OS/Guess.php)
Eclipse を全画面で使っている時に Cygwin のコマンドを叩こうと思って、前面に持ってくると、今度は参照しようと思ってた領域に出てきてしまって、マウスで Cygwin のターミナルを移動させる手間が発生して、ストレスで(」・ω・)」うー!(/・ω・)/にゃー!ってなるのが嫌だったので、Eclipse に組み込めないかなと調べた。
まず cygwin の sshd を起動する。
次に Eclipse にターミナルを入れる。
ターミナルから localhost に ssh で接続したら簡単にできた。
ここ何年かはエディタやブラウザに VL Gothic Font Family や M+ OUTLINE FONTS を使っていたが、流行りの Ricty に変えてみようと思った結果、fontforge や github からスクリプトを持ってくるのがめんどいなあと思ってしまい、Miguフォント : M+とIPAの合成フォント に落ち着いた。