Google Crisis Response(Google)
災害に関する情報源や、行方不明者情報の収集と検索を行う『パーソンファインダー』を初めとするツールの提供が行われています。

2011年2月27日 日曜日

依存されていない ports の探し方

Filed under: FreeBSD
タグ:, ,
時間:15時30分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

FreeBSD には、ports というパッケージ管理システムがあります。ソースコードのダウンロードし、パッチをあて、コンパイルし、インストールするという手順を簡略化してくれます。package というものもありますが、こちらはコンパイル済みになっています。

昔はコンパイルに時間がかかるために package を利用することが多かったのですが、スペックアップにより余裕ができたため ports に移行しました。必ずしも package で公開されているとは限らないのと、ports のほうが早く公開されるためというのが理由です。

さらに言えば、ports 管理が楽になる portupgrade があるおかげでもあります。このツールによって、毎晩更新のあった ports をメールで通知させることが出来ていますし、更新作業も非常に簡単になりました。

さて、前置きはここまで。

ports で困るのは、依存関係の把握が大変であるということ。数が少ないうちはいいのですが、依存する ports のインストールを繰り返しているうちにどんどん増えてしまいます。昨日の段階では300を超える ports がインストールされていました。

このほとんどは Xorg というGUI環境のための関係。FreeBSD のインストールのときに使うつもりでインストールしてあったのですが、結局使わないまま肥やしとなっていました。依存する ports の把握が出来ないために手をつけられなかったのです。

実は一昨日のメールで Xorg のアップグレードがあり、一気に膨大な ports の更新通知がありました。まとめて更新してしまうことも出来なくはないのですが、ちょうど週末ということもあってよい方法がないか情報収集をしてみることになったのです。

そして、非常にありがたい情報を発見しました。それがこのページ。

pkg_root は、uyota さんが作ったシェルスクリプトの名前。pkg_tree と AWK を使って、どこからも依存されていない ports をリストアップするというもの。スクリプトといっても短いものなので、ワンライナー的な使い方が出来ます。私は次のようにしました。

  1. pkg_tree | awk 'NF == 1{ prog[$1]++ } NF == 2{ prog[$2]-- } END{for(i in prog) if(prog[i] > 0) print i }'

AWK に詳しくないのですが、pkg_tree の実行結果を AWK で受け取り、依存する側の場合はカウントアップし、依存される側の場合はカウントダウン。最終的にカウント数が正のもの(依存されていないもの)だけを表示するという仕組みのようです。

実行結果から必要な ports を取り除くと、1回目は120個以上となりました。これを元に、地道に portupgrade 付属の pkg_deinstall でアンインストールをします。1度終わったら、再び依存されていない ports をリストアップ。依存していた ports が前回の作業でアンインストールされていれば、新たに依存されていない ports が増えます。

これを何度も繰り返し、最終的に必要な ports だけになれば終了です。最終的には100を切るまで減らすことが出来ました。如何に無駄が多かったかということですね。

最後にお決まりの一言。

この記事の内容は無保証です。自己責任で行ってください。

Comments (0)

2011年2月19日 土曜日

WordPress の HTTP API

Filed under: WordPress,プログラミング
タグ:, , , , ,
時間:12時49分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

WordPress には、Snoopy という HTTP 通信用のライブラリが以前から使われています。自前で用意するには結構大変なので、拙作の AmazonLink でも利用しています。

WordPress 2.7.0 では、これに変わるものとして HTTP API が導入されました。ライブラリの変更ではなく、WordPress の持つ機能の1つという扱いです。

導入された段階では実験的な扱いでしたが、次第に多くの部分で使われるようになり、WordPress 3.0 でついに Snoopy が非推奨扱いとなっています。HTTP API が十分熟したと判断したのでしょう。

これを機会に、AmazonLink でも導入してみることにしました。現時点では Snoopy と併用するか完全に切り替えてしまうかは検討中ですが、最終的には完全な切り替えを行うことになると思います。

Snoopy の場合は別のライブラリということで、ファイルのインクルードを行い、Class のオブジェクトを取得し、実際に使用するという3段階の作業が必要です。

  1. include_once(ABSPATH.'wp-includes/class-snoopy.php');
  2. $Snoopy = new Snoopy();
  3.  
  4. $url = 'http://www.example.com';
  5. $Snoopy->fetch($url);
  6. $content = $Snoopy->results;

これに対して、HTTP API の場合は自動的にオブジェクトを取得してくれるので、いきなり実行することができます。WordPress に組み込まれているおかげです。

  1. $url = 'http://www.example.com';
  2. $result = wp_remote_get($url);
  3. $content = $result['body'];

ほかにもいろいろな機能が含まれています。残念ながら本家 Codex でもドキュメントが充実しているとは言えない状況ですので、興味のある方は実際のコードを参照してみてください。ファイルは wp-includes/http.php です。Codex 以上の説明があり、かなり参考になると思います。

ちなみに、自動的にオブジェクトを取得してくれる仕組みですが、内部でそのための関数を呼び出しています。

  1. /**
  2.  * Retrieve the raw response from the HTTP request using the GET method.
  3.  *
  4.  * @see wp_remote_request() For more information on the response array format.
  5.  *
  6.  * @since 2.7.0
  7.  *
  8.  * @param string $url Site URL to retrieve.
  9.  * @param array $args Optional. Override the defaults.
  10.  * @return WP_Error|array The response or WP_Error on failure.
  11.  */
  12. function wp_remote_get($url, $args = array()) {
  13.     $objFetchSite = _wp_http_get_object();
  14.     return $objFetchSite->get($url, $args);
  15. }

その関数の定義はこちら。プライベート関数なので直接利用するのは厳禁です。

  1. /**
  2.  * Returns the initialized WP_Http Object
  3.  *
  4.  * @since 2.7.0
  5.  * @access private
  6.  *
  7.  * @return WP_Http HTTP Transport object.
  8.  */
  9. function &_wp_http_get_object() {
  10.     static $http;
  11.  
  12.     if ( is_null($http) )
  13.         $http = new WP_Http();
  14.  
  15.     return $http;
  16. }

注目するべきは、10行目の static $http; という部分。関数から出てもこの変数は維持され、再利用が可能になります。このような手法をメモ化と言うようです。10年以上プログラムを扱ってきましたが、単語自体知りませんでした。まだまだです。

PHP のメモ化については、次のサイトを参考にしました。

ベンチマーク結果を見るとかなりの高速化が期待できそうです。HTTP 通信を行うプラグインが複数動く場合には効果的かもしれません。最近はコアでも通信を行っているようですし。

Comments (0)

2011年2月6日 日曜日

zenbackを試しに導入

Filed under: WordPress
タグ:,
時間:15時51分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

最近多くのブログで、同じような表示を見かけるようになりました。記事の下に、関連した記事やキーワードやはてなブックマークの情報を表示しているあれです。

気になったので調べてみると、zenbackというサービスによるものでした。同じような機能はそれぞれでは存在しましたが、1つのサービスでできるというのは便利そうです。無料で導入も簡単そうでしたので、試しということでこのサイトでも導入してみることにしました。

ちなみに、このサービスを運営しているのは、かつて世界中で人気だったブログソフトの Movable Type を開発・販売し、それを利用したブログサービスの TypePad を運用しているシックス・アパートです。

基本的な導入方法は、規約をよく読み、メールアドレスとパスワードと設置するサイトを申請し、提供されたコードをサイトに張るだけ。必要に応じて、表示したい項目の選択などもできます。最近のウェブ系サービスでは一般的な流れですね。

WordPress ではテーマファイルにコードを追記するだけですが、ASP型のブログサービスを利用している場合は個別に案内がありますのでそれを参考にするといいでしょう。

Comments (0)

2011年1月24日 月曜日

中点付き0

Filed under: コンピューター
タグ:, , , ,
時間:19時34分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

3年ほど前に、こんな記事を書きました。

数字の0のフォントについての記事で、アルファベットのOと区別をつけるために斜線をつけているというところから始まり、最後に斜線ではなく中点を使ったものを見た記憶があるというところで終わっています。

中点付きの0についてはその後も謎のままだったのですが、昨日ついに解決しました。

きっかけとなったのは、ウィキペディアの0に関する項目。この項目に、0とOの区別についての項があります。

この項によると、IBM 3270 というコンピューターターミナル表示装置サブシステムで、中点つきの0が使用されていたとのことです。IE4 と共にインストールされ、マイクロソフトが以前配布していた Andale Mono というフォントにもこのデザインは引き継がれていたそうです。

残念ながら配布は終了してしまったためにそのものを見ることは出来ませんが、ウィキペディアで表示サンプルを見ることが出来ました。

一番下の中央やや右あたりに0があります。まさしくこれです。

やっとすっきりしました。

Comments (0)

2010年12月14日 火曜日

『BambooFun CTH-461/S0』開封レポート(2)

Filed under: ハードウェア
タグ:, , ,
時間:19時12分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

気がついたら1ヶ月以上経ってしまいました。ワコムのタブレット『BambooFun CTH-461/S0』の開封レポート2回目です。

内箱の取り出し

化粧箱は外箱と内箱の2重になっています。

化粧箱の内箱1

化粧箱の内箱1

外箱の一部は空いていて、そこから引っ張り出すようにして内箱を出します。ロゴが逆さまですが、この向きでないと内箱の蓋部分が邪魔になるのでこれで正解。

化粧箱の内箱2

化粧箱の内箱2

これが正しい向き。下から開けます。

メッセージ1

メッセージ1

蓋を開けると、12ヶ国語でメッセージの書かれたカバーが現れます。

メッセージ2

メッセージ2

メッセージのアップ。黒地に白い文字ということで、文字がにじんでしまいました。何とか修正しようとしましたが、残念ながら力不足。

内箱 - タブレット

内箱 - タブレット

カバーをはずすと商品が見えます。中央にタブレット本体、その上にペンと芯交換用の器具。

内箱 - 保証書

内箱 - 保証書

内箱の手前には、セロテープで貼られた保証書が。左側だけ固定されていて、ここだけ妙に適当です。

内箱 - タブレットの下

内箱 - タブレットの下

本体をどかすと、小さな黒い箱が。中身は後ほど。

内箱 - 底

内箱 - 底

箱をどかすと、もう何もありません。

長いのでもう1回。次で最後の予定です。

Comments (0)

2010年11月6日 土曜日

AmazonLink 2.0.0 beta4 リリース

Filed under: AmazonLink
タグ:, , ,
時間:14時19分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

AmazonLink 2.0.0 beta4 をリリースしました。

今回の最重要更新項目は、Product Advertising API でレビュー情報が取得できなくなると言う仕様変更への対応です。本文だけ取得できなくなるのだと思っていたため、対応作業の開始が遅れていました。

現在は移行期間としてレビューの取得が出来ていますが、今月9日からはレビューページのアドレスのみが取得できます。このサイトでも行っているように、インラインフレームで埋め込むと言う形になります。

仕様上では24時間はそのアドレスが使えるはずですが、24時間たたずに無効になってしまうことが多いようです。解消してからにしたかったのですが、残り日数がわずかなので暫定でリリースすることにしました。

また、表示される内容がかなり大きなページになるため、埋め込む方はデザインに悩むことになるかもしれません。小さな表示については Amazon.co.jp 側で検討ということのようなので、種類が増えたら対応していきたいと思います。

そのほかには、簡単なドキュメントを同梱するようにしました。プログラム中に書いていた更新履歴もそちらに移動しています。

Comments (1)

2010年10月31日 日曜日

『BambooFun CTH-461/S0』開封レポート(1)

Filed under: ハードウェア
タグ:, , ,
時間:15時56分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

ブログにアップする画像は簡単な修正などをやっていましたが、そのときに使っていたペンタブレットがパソコンの買い替えによって使えなくなっていました。

とりあえずマウスでしばらくやっていましたが、やっぱりペンタブレットのほうがいいということでものすごく久しぶりに新しく買い換えることに。ワコムの初代AtPadからなので、多分15年ぶりくらいです。

購入したのは、同じくワコムのBambooFun CTH-461/S0。

Amazon.co.jp の評価は両極端ですが、個人的には毎日のように使うわけでもないので満足しています。そのあたりについてはまた別の記事にするとして、今回は開封レポートの1回目です。

Amazon.co.jp の箱

注文は Amazon.co.jp で。平たいですが、結構大きな箱で来ました。

Amazon.co.jp の箱。結構大きいです。

Amazon.co.jp の箱。結構大きいです。

写真をとる前にあけてしまいましたので、すでにテープには切り込みが。左上にあるのは、大きさ比較用の12センチCD-R。

リチウム電池?

リチウム電池?

箱にはこんなシールが張られてありましたが、リチウム電池は使われてないと思います。パソコンからの給電が前提の製品ですし、ペンも電池レスであることが売りの1つです。

箱を開けた状態

箱を開けた状態

箱を開けるとこんな感じ。ダンボール板と一緒にビニールでシュリンクして、箱に粘着剤で固定。左上は再び12センチCD-R。

ちなみに、この写真で見えているのは化粧箱の裏側です。

化粧箱

化粧箱は、きちんとデザインされています。最近パソコン関連の商品の化粧箱は地味なものを見慣れているので、段ボール箱を開けた瞬間に目に飛び込んできた化粧箱は鮮やかに見えました。イラストレーターやデザイナーが主な購買層なので、見た目にも結構気を使っているのでしょうか。

化粧箱の表

化粧箱の表

表側はさらに鮮やかです。

化粧箱の底側

化粧箱の底側

化粧箱は二重になっていて、底側から内箱を引き出すようになっています。鮮やかな外箱に対して、内箱は艶のない落ち着いた黒。

化粧箱の封

化粧箱の封

小さな透明のシールで封印がされています。これをカットしていよいよ開封。

と、今回はここまで。写真が多いので、複数回に分けようと思います。

Comments (0)

2010年9月11日 土曜日

OAuth と、名前の変わったTwitBird

Filed under: iPhone,ソフトウェア
タグ:, , , ,
時間:16時42分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

iPhone 用 Twitter クライアントとして TwitBird をかなり前から愛用していますが、私のように長く使っている人は今年の9月1日(米国時間の2010年8月31日)を境に TL が取得できなかったりつぶやけなくなってるかもしれません。

9月1日は Twitter で大きな変化があった日です。その変化とは、API におけるユーザーの認証方式から BASIC認証が外されたことです。

BASIC認証とは、IDとパスワードの組み合わせが一致するかで判断する古典的な方法です。仕組みが単純であるため実装も容易なのですが、ネットワークをパスワードが暗号化されずに流れてしまうなどセキュリティ面では不安のある方法です。そのため、Twitter では2010年6月30日にBASIC認証への対応を終了し、それ以降はOAuth(オース)という方式に統一すると2010年4月30日に発表しています。

実際には、ワールドカップによるシステムへの負荷上昇を理由に2010年8月16日まで延長されています。8月16日から8月31日までの間でAPIの呼び出し回数を毎日段階的に減らして行き、最終的にはすべての呼び出しに対してHTTP 403エラー(アクセス禁止を意味します)を返すようになりました。

そして、実際に現在はBASIC認証でのAPI呼び出しはできなくなっています。BASIC認証を使うように設定してあったり、使えないクライアントではAPIを利用することができません。

さて、ここまでは前置き。本題はTwitBird について。

私が使用していた TwitBird は、「TwitBird」という名称です。この名前でアップルストアで公開されていたものは古いもので、BASIC認証にしか対応していません。新しいバージョンは Twitter free for Twitter という名前になっていて、アップデート可能なアプリケーションの一覧には出てきません。不満がなかったゆえに、別名で新しいバージョンがあることに気がつきませんでした。

新しいバージョンではOAuthのみに対応しています。約1週間試しで新しいバージョンを使用してみましたが、基本的な使い勝手はほとんど同じで問題なく使用できています。

ちなみに、以前のバージョンは公開 TL の参照とそこからの検索は問題なく出来ていました。APIの仕様書によると、公開 TL の取得には認証は必要ないようなのでそのためでしょう。

と言うわけで、TwitBird を愛用していて困っている場合は Twitter free for Twitter もしくはその有料版への移行をどうぞ。

Comments (0)

2010年8月22日 日曜日

FreeBSDの定期メールが来なくなったら

Filed under: FreeBSD
タグ:, , , , , ,
時間:0時51分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

テスト環境およびファイルサーバーとして、FreeBSD を使ったローカルサーバーがあります。cron での実行結果などを日々メールで送ってくれるようになっているのですが、7.3R にアップグレードをしてから来なくなってしまいました。

前回のアップグレードでも同じ現象があったのですが、どうやって直したのか忘れてしまっていて手間取ったので、メモとして残しておきます。

結論から言いますと、原因は/etc/mail/mailer.conf の構文エラーでした。

アップグレードは freebsd-update を使用したのですが、その際に変更内容を示すデータがそのまま反映されてしまい、次のようになっていました。

  1. <<<<<<< current version
  2. =======
  3. # $FreeBSD: src/etc/mail/mailer.conf,v 1.3.38.1 2010/02/10 00:26:20 kensmith Exp $
  4. >>>>>>> 7.3-RELEASE
  5. #
  6. # Execute the Postfix sendmail program, named /usr/local/sbin/sendmail
  7. #
  8. sendmail    /usr/local/sbin/sendmail
  9. send-mail   /usr/local/sbin/sendmail
  10. mailq       /usr/local/sbin/sendmail
  11. newaliases  /usr/local/sbin/sendmail

1・2・4行目が追加された行で、それぞれをコメントアウトすることで修正できます。

なお、解決に至ったのは、ログファイル/var/log/dmesg.today に次のようなエラーが記録されていたためです。

  1. pid 44294 (mailwrapper), uid 0: exited on signal 11 (core dumped)

先ほどの /etc/mail/mailer.confmailwrapper の設定ファイルです。cron で実行する簡単なプログラムをコンソールから実行してみたところ、その時刻に上記ログが記録されていたため解決することができました。

Comments (0)

2010年7月25日 日曜日

RADEON HD 5670 を省電力版 GeForce 9600 GT と比較

Filed under: 自作パソコン
タグ:, , , , , , , ,
時間:16時30分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

1週間ほど前に SAPPHIRE HD5670 512M GDDR5 PCI-E HDMI/DVI-I/VGA の開封レポート記事を書きましたが、今度は省電力版の GeForce 9600 GT との比較記事です。といっても、ベンチマークはすでにがやっているのでもっと地味なところだけです。

今回の比較対象は、それまで使用していた ASUS の EN9600GT/DI/512MD3。そのほかのパーツ構成については、組み立てたときの記事を見てください。OS が Windows 7 Home Premium(32bit)になった以外はそのままです。モニタは解像度1680×1050でフルカラー。

性能比較

ビデオカードとドライバのみの変更で、同じことをしたときのステータスを比較しました。作業時の周辺気温は約25度。

以下、SAPPHIRE HD5670 512M GDDR5 PCI-E HDMI/DVI-I/VGA をRADEON、EN9600GT/DI/512MD3 を GeForce と表記します。グラフ中の凡例についても同様です。

作業内容

GPU-Z 0.4.4 でログをとりながら、次の作業を行いました。

  1. シールオンラインという DirectX 9.0c 相当のライト3Dゲームを起動してログイン。1440×900のウィンドウモードで、グラフィックの画質はデフォルトの最高画質。
  2. おそらくもっとも混雑していると思われる場所を1往復。
  3. ログアウト。
結果

以下、ログから作成したグラフです。開始のタイミング等は合わせていませんので、時間(X軸)については参考になりません。

GPU クロック
CPU コアクロック

CPU コアクロック

GeForce は300MHz と 600MHz の2段階で上がったら上がりっぱなしですが、RADEON は少なくとも3段階で、途中何度も変化しています。また、変化の範囲も
157MHz から 775MHz と広くなっています。

RADEON はアイドル状態での発熱の低さが話題になっていますが、こういった微調整があるからなのかもしれません。

GPU メモリクロック
GPU メモリクロック

GPU メモリクロック

GPU クロックと同様、GeForce が 100MHz と 900MHz の2段階で、RADEON が 300・600・1000MHz の3段階。
なお、GeForce が GDDR3 であるのに対して、RADEON は GDDR5 を使用しています。データの点速度は5倍になったとのこと。

GPU 温度
GPU 温度

GPU 温度

個人的に一番注目している温度です。メーカーもクーラーも違うので単純な比較をすることはできませんが、少し低くなりました。

GeForce が 44~51℃、RADEON が40~48℃です。アイドル状態では4℃下がっていますので、軽いゲームをたまにやるだけの人にはいいかもしれません。

ファン速度
ファンスピード

ファンスピード

ファンの回転速度を、フルスピードに対するパーセンテージで表したものです。フルスピードが違うと思いますので、これもあまり参考にはならないでしょう。

GeForce が 35%の固定、RADEON が 28~44%の可変です。どちらも Windows 起動前を含めてうるさく感じることはありませんでした。

GPU ロード
GPU ロード

GPU ロード

GPU にかかる負荷の割合です。クロック自体はどちらも上限まで上がりますが、負荷自体はそんなになかったようです。RADEON が一時的に上限近く(96%)まで上がっていますが、1秒以内に戻っていますので結構余裕があります。

Windows エクスペリエンス インデックス

参考値として、Windows エクスペリエンス インデックスの値を記載します。

プロセッサ
7.1
メモリ(RAM)
7.1
グラフィックス
7.0
ゲーム用グラフィックス
7.0
プライマリ ハードディスク
5.9

ビデオカード変更直前のデータを記録し忘れてしまったので比較できませんが、Windows 7 Ultimate RC ではグラフィックスおよびゲーム用グラフィックスの値は5.9でした。もともと不満があったわけではないので、体感による違いはほとんどありません。ゲームの反応と彩度が若干向上したかなというくらいです。

まとめ

久しぶりの RADEON であり、初めての AMD ビデオカード(間に ATI は AMD になりました)ということで不安もありましたが、性能は微アップ、発熱ダウン、DirectX11 対応でいい感じになりました。

また、AMD マザーボードのドライバはビデオカードのドライバを含むため、違うメーカーのドライバを混在させるという状況の回避もできました。動いてはいましたが、なんとなく気になっていたのです。

結果的には、非常に満足できました。

Comments (0)
Page 2 of 3112345...102030...Last »

HTML convert time: 4.541 sec. Powered by

Images is enhanced with WordPress Lightbox JS by Zeo