スタッフブログ

前回のブログではキーボードを買った話をしましたが、今日はマウスの話です。

写真を見て分かる通り、KensingtonのSlimBlade Trackballを購入しました。
元々MicrosoftのBlueTrackのマウスを使っていたのですが、コンセントが少ないので充電するのが面倒くさいのと、マシンのロック解除時にマウスの速度が最高速になって使い難かったので、とある事情で1万円程お金があったのでついカっとなって買ってしまいました。
トラックボールを使ったことがなかったので、慣れることが出来るのか不安だったのですが、使い始めてみると10分もしない内に手に馴染んできて、1週間程たった今ではこれ以外に考えられないくらい快適に使用しています。
openpear.orgは、四季の変化と関係なく、順調にパッケージ数を増やしているようで、
すでに100個前後のプロジェクトが公開されています。
今回は、その中から、Services_HTML2PDF ( http://openpear.org/package/Services_HTML2PDF ) を紹介します。
Services_HTML2PDFは、名前の通り、HTMLをPDFに変換するライブラリです。
アシアル株式会社が提供しているHTML2PDF.BIZ ( http://html2pdf.biz ) というサービスを利用して、指定したサイトのサムネイルをPDFで出力します。
実は、サービス名にHTML2PDFとついているので、PDF出力しかできないと思われがちですが、PDFの他にPNGとして出力する機能があるので、これを利用すると、ウェブサイトのスクリーンショットを集める事もできます。
Services_HTML2PDFをインストールして以下のコードを実行すると、RYUSウェブサイトのトップページのサムネイルをpngとして保存します。
require_once 'Services/HTML2PDF.php';
//PNG
function example_png()
{
$pdf = Services_HTML2PDF::convert("http://ryus.co.jp/", 'PNG');
if (PEAR::isError($pdf)) {
print($pdf->getMessage() . "\n");
exit();
}
file_put_contents(dirname(__FILE__) . '/hoge.png' , $pdf);
}
example_png();
このライブラリで利用しているのは、無料版のAPIなので、機能制限があります。
本格的に利用する場合は、HTML2PDF 機能比較 ( http://html2pdf.biz/comparison.php ) を参考に、有料版を検討してみるのもよいでしょう。

なおとです。
メールをPOP3で受信するプログラムを書いていて気づいたことをメモしておきます。 今回はPEARライブラリのNet_POP3を使いました。
loginメソッドはマニュアルの記述が古くて、 誤りがあるようでした。
boolean Net_POP3::login (string $user string $pass boolean $apop)
このようなシグネチャとともに、
string $user - 使用するユーザ名。 string $pass - 使用するパスワード。 boolean $apop - APOP を試みるかどうか。
という説明が見えます。
私はこれを見て、APOPを使わないという意図で3番目のパラメータにはfalseを指定しました。 しかしこのとき予想に反して、「サポートしていない認証方式」という意味のエラーとなってしまいました。
そこでソース(Net/POP3.php)を確認しました。
/**
* Performs the login procedure. If there is a timestamp
* stored, APOP will be tried first, then basic USER/PASS.
*
* @param string $user Username to use
* @param string $pass Password to use
* @param mixed $apop Whether to try APOP first, if used as string you can select the auth methd to use ( $pop3->login('validlogin', 'validpass', "CRAM-MD5");
* Valid methods are: 'DIGEST-MD5','CRAM-MD5','LOGIN','PLAIN','APOP','USER'
* @return mixed true on Success/ PEAR_ERROR on error
*/
function login($user, $pass, $apop = true)
どうやら3番目のパラメータは用法が違っているようです。 実際には、認証方式を文字列で与えるか、もしくtrueを受け取ります。 falseあるいはnullでは上記のエラーになります。 なお、3番目のパラメータを省略することはできて、その場合はtrueもしくは'USER'を指定したときと同じ動作になります。
私はここまでで問題解決できたのですが、他に気になる部分がありました。
//Disabling DIGEST-MD5 for now
検証していないのですが、どうもDIGEST-MD5は使用不可の状態になっている模様です。 APOP認証したいときは、チャレンジ・レスポンス方式のCRAM-MD5を選択することになりそうです。
またついでにエラーハンドリングのための豆知識をひとつ書いておきます。
Net_POP3のメソッドは、loginを除いて、失敗したときに返り値falseを返します。 そしてloginだけはPEAR_Errorオブジェクトを返します。
実際のコーディングでは、loginの返り値だけPEAR::isErrorでチェックして、他は
$ret = $pop3->getSize();
if ($ret === false) {
throw new Exception('POP3: cannot get mailbox size.');
}
といったように、返り値をチェックして例外をthrowしなおすという繰り返しにしました。
エラーハンドリングのやり方には種々あると思いますが、もうすこしうまい書き方ができないものかとおもいつつ、こんな形で妥協しています。
突然ですがiPhoneを購入しました。

早速セカイカメラで遊んでいます。

セカイカメラに関しては、既に各地で取り上げられているので、ここでの説明は省略します。
他にも、Googleの各サービスを簡単に見ることができたり、IRCやTwitterも快適に操作することができます。
特に外出先でGoogleカレンダーを見るのは、普通の携帯電話から見るのは何かと不便だったので、これだけでも買って良かったと思います。
とりあえず入れたものは、
・LimeChat(IRCクライアント)
・mixi Browser mini(mixiクライアント)
・BB2C(2chクライアント)
・AeroReader(Livedoor Readerクライアント)
・NatsuLion for iPhone(Twitterクライアント)
・セカイカメラ
・乗換案内
・食べログ
・Flickit(Flickrクライアント)
・ニコニコ動画
・Skype
・WifiTrak(WifiのAPを探してくれる)
・Amesh View(東京アメッシュブラウザ)
他にもいくつか入れてあります。
3Gなだけあって、回線速度も十分あり、ほとんどのサービスを快適に利用できます。
3GSから搭載されたコンパスでGoogleマップをグリグリ回すだけでも楽しいです。
実際に使い込んでいくと使いやすさがわかってくるので、Googleのサービスをよく使う方や、IRCをどこからでも見たいという方は是非購入を検討してみてください。

先週の土曜日は、第1回XOOPS CubeサタデーラボがRYUSオフィスで開催されました。
自分も、勉強とお手伝いを兼ねて参加したのですが、スペースいっぱいになるくらい参加者が集まり、かなり盛況でした。
XUGJのフォーラムに参加された方が感想を書かれていますが、今回の反省を活かしつつ、次回以降はもっと良くなっていくと思いますので、今回参加出来なかったけど興味があるという方は、是非第2回を楽しみにして頂ければと思います

今回のミニレクチャーは、XOOPS Cubeコアの開発をされてるminahitoさんを筆頭に、Marijuanaさん、tohokuaikiさんと、主に開発をされている方達中心になるので、開発よりの話が中心となるかもしれません。
他、うさでき♪でおなじみの当社mikにも、ユーザさんよりのミニレクチャーをやってくれとお願いしてます。
何しろ思いつきではじめたイベントの第1回目ですので、どんな展開になるのか、私もドキドキしています。
というわけで、何があっても笑って許せる心の広い方のみご参加ください(^^;

今回はかなり沢山読めましたので、その中でお奨めの本をご紹介します。秋と言えば読書、ご参考になさってください。
○動的平衡
知らずに買ったのですが以前読んだ「生物と無生物の間」、を書いたかたの著書でした。
「人間は素粒子でできていて、宇宙にある全てのものは一体である」、という様な理論を最近
読むしこの本でも書いてあるのですが、今ひとつしっくりは来ていません。
ただ、「記憶についてずっと前の記憶も1週間前の記憶も等しくあいまいだ」、ということが
書いてあり、ここは目から鱗でした。生きやすくなる気がします。
○新世界より
話題になった本ですが、新刊で読むには冒険だなと思ってました。なんとノベル化していたので
買いました。夜長にはぴったりの長編です。
○二重洗脳
これも「リセット禁煙」を書いた方のものと知らず、内容が面白そうで買いました。
何かやめたくてもやめられないモノ(^^;、がある方にお奨めします。
○死ぬときに後悔すること25
読んでいる途中で「え、この著者まだ30代なの!?」とびっくりしました。ちょっと
落ち着いてたのでてっきり60代ぐらいの方かと。
お医者さんが実際に立ち会って、聞いた後悔のお話なので興味深かったです。
悔いの無いように生きたいなぁと思わせる一冊。
○鷺と雪
今年の直木賞作品です。3部作なのでこのまえの2作を読んでから読むのを強くお奨め
します。昭和初期の銀座や東京の生活がリアルに描かれていてタイムスリップ気分になれ
る作品です。作品に頻出する教文館で3部目を偶然買ったのがちょっと嬉しかった。
こんばんは、argonです。
今回はWindows7の発売も間近にせまってきているので、自分の次期PCの構成などを妄想してみようと思います。
コンセプトはそれなりの性能とコストパフォーマンスを持ちつつ静音性も考えたPC パーツのの構成を考えてみます。
- CPU Intel Core i7-860 (2.80GHz)
- マザーボード GIGABYTE GA-P55-UD5
- メモリー DDR3-1600 2GB×4
- ビデオ-カード GIGABYTE GV-N96TSL-1GI
- ディスク Intel SDSA2MH80G2C1/R1/R5
ケースや電源は適当に選択します。あとDVDドライブかBDドライブも必要ですが、OSをインストールする だけなら、最近はUSB接続でも大丈夫な場合が多いので、手持ちのUSBの外付けドライブで行けそうです。 それとCPUファンも別売りの製品を買う可能性が高いです。
インストールするOSはWindows 7 Professionalの64bit版を考えています。 最近は64bit対応のアプリケーションも増えてきたし、satoさんも64biのVistaで使用していて特に問題ないそうなので、大丈夫かなと思っています。
という、感じの妄想をしてみました。 Windows Vistaはなんだかんだでパスしてしまったので、Windows7を使うのが今から楽しみです。

入社した当初は他にキーボードがなかったので、先日argonさんが
紹介していた通りHHK Proを使用していたのですが、普段日本語キーボードを使用していて英語配列のキーボードが使い辛いので、今現在誰も使用していなかった、Apple Keyboard (JIS)を借りて使っています。
数日使用してみて、
キーを叩いた時にちょっとカチャカチャ言うけど、殆どMacbookのキーボードと同じ感じなので良い感じだったので、20分程前にApple Wireless keyboard(JIS)を購入してきました。

以前US配列のを触った時はAキーの横がCapsLockで、長押ししないと反応しなかったので完全に眼中になかったのですが、JIS配列のはAキーの横がControlキーで普通に使えるので良いキーボードです。
今回も、私がopenpear上で公開しているライブラリについて紹介します。
Services_Prowl ( http://openpear.org/package/Services_Prowl ) は、iphoneアプリケーションのProwlに通知を送る為のAPIをラップしたものです。
これを利用すると、以下のように、PHPからiPhoneやiPod Touchに対してメッセージを送れます。

メールの新着通知や、IRCなどのキーワード反応、Twitterのdirect messageやmentionなど、
リアルタイムに把握していたい情報をProwlに送信する事で、パソコンを開いていない時でも
最新の情報を知る事ができるようになります。
Services_Prowlは、現在の所、エラーハンドリングの実装待ち状態で公開されていません。
利用するには、svnからダウンロードする必要があります。
$ svn export http://svn.openpear.org/Services_Prowl/trunk Services_Prowl
と実行する事で、エクスポートできます。使い方は以下のようになります。
require_once 'Services/Prowl.php';
$api_key = 'あなたのAPI KEY';
$prowl = new Services_Prowl($api_key);
$result = $prowl->push('Test message from Services_Prowl at ' . date('Y-m-d H:i:s'));
var_dump($result);
通知系のアプリケーションはパソコンにもありますが、作業中にずっとチカチカされると
集中力が削がれるので、こういったものを外のデバイスに逃がすという使い方もありだと思います。
アイデア次第でいくらでも便利になると思うので良い使い方があれば教えてください。



