2006年4月アーカイブ

つられて PC 環境整備

OSX に限らず会社の Win もいじってみた。

なんとなく QuickSilver 使わずに Namely 使ってたんだけど、使ってみたらいい感じ。Spotlight 使えばランチャ要らずではあるんだけど、インクリメンタル中に選択候補を選べない(選びずらい)のが嫌。QuickSilver ならとりあえず一番良く使うかなんだかの第1候補が固定で表示されるから楽。Spotlight はずっと止めてたけど、ドキュメント探したりするのにインデックス作っておいた方がいいかもしれないのでこのまま起こしておく。

Emacs を自動保存にしてるので、閲覧目的の際にファイルを書き換えちゃう危険を防ぐためにテキストビューアを探してみた。AquaLess は入れておいたんだけど使ってなかった。そもそも less なので日本語は通らないっぽい。SoraView をお試し中。

会社で使う Win マシンでもインデックス作るタイプのコマンドランチャが欲しいんだけど、あるのかな?使う候補はある程度限られてるから登録型でもいいっちゃいいんだけど、ね。Google Desktop はフォルダが対象にならないのかな?とりあえず、CraftLaunch から Giraffe+ ってのに乗り換えてみた。横幅 1280 にして呼び出しショートカットを変えておいた。薄っぺらいインターフェースがお気に入り。

画面がでかいのでちょっと試しただけで使うのやめてた VirtualDesktop も復活させてみた。Cube での切り替えが楽しい。煮詰まっていらついてきたら Cube に癒される。OSX で使い慣れてから Win 側での導入を再検討の予定。

Win で QTTabBar 使って Explorer にタブつけてたんだけど、どうも遅くなる気がしてやめた。HandyGestures だけでいいや。他のタブ型ファイラー使った時も思ったんだけど、Tortoise の反応がやたら鈍くなる。Tortoise でダイナミックなアイコン変化してるせいかも。

そういえば、今日は Cygwin 触らなかったな。『cofs 重要!』って騒いでた割に、箱庭 colinux だけでしか使ってなくて検証用 colinux には Cygwin から同期してた。というか、マウント用のディレクトリ作るの忘れてて、今日気づいた。焦ってディレクトリ作って、同期スクリプト編集したらあら便利。Poderosa のタブ切り替えなくていいし、余分なタブも無くなってすっきり。colinux への接続よりも Cygwin 開く方が遅いってのはどうなんだ?

ちなみに、仕事はちゃんとしてます!…、考える時間が多いタスクだったのでストレス解消に環境整備。ツールギークですから。

a<wbr>b<wbr>c<wbr>

ボックス幅いっぱいになったら単語でなく文字単位で折り返し。Smarty の spacify 修正子をマルチバイトに拡張して変数の文字間に<wbr>埋め込ませたり。ソースが驚くほどに汚くなる。DOM 見てもやたらと子だくさん。

word-break は Firefox で駄目っぽいし、実体参照のゼロ幅スペースとか改行コードでの改行(ソース上の改行)を文字感に挟むと、(クリップボードに)コピーした時にスペースが入る。Selenium テストの際に考慮しなきゃいけなそうだし、嫌。

スタイルシートで出来ないものかな。

すっかり忘れてたんだけど、SPARQL がまた気になりだした。

外部にある RDBMS と RDF をマップして、クエリベースでデータを取り出せるんだったかな?まだまだ草案みたい。

GData はアクセス手段で、SPARQL は操作手段?まあ、既に API 公開してるところがサポートしてくれなきゃ使えないってのは変わらないか。

実際に使う事になるプログラミング言語で(使えるように)実装したクライアント API モジュール次第なのかな。複数のサービスをまたがってごにょごにょした結果が欲しいってのも、そういうフレームワークみたいな物を上手く実装したらいい、とか。で、その実装をしやすく(不可能を可能にでもいいし)するために統一的なインターフェースが必要とかそういう話?

上手い事ラップしてくれる仕組みが出来てくれたら幸せです。

Google Data API を眺めてみた

Google Data APIs Overview

shell> gdata co hoge
shell> gdata diff foo
shell> gdata log
shell> gdata put bar
shell> gdata ci
shell> gdata open hoge
gdata> log
gdata> select * from foo where q=bar

ねた。

PlaggerConferenceに申し込もうと名前を書こうとしたら、IP Ban。

これまでのおもちゃ作りを考えると、なんだか迷惑行為で登録されてるっぽい。一応、いま動かしてるやつでは Ban されないんだけど、どうしよう。止めた方がいいのかな?UA に URL 埋め込んではいるけど、特に警告通知ももらってない。逆切れする気はないので事後報告でもしてくれると心の準備がしやすいです。

会社から申し込んでもいいんだけど、まあそういう立場にいる身としては行けないでしょう。はてなブックマークあたりをウォッチング!


とりあえず、cron 止めときました。フレッツ ADSL 使ってる場合、ルータ再起動とかでごまかせたりするのかな?

読書が一段落したので、久しぶりにフィードについて。

新しい事は全く無しで、これまでに目にしたサービスとかから今どんな感じかメモ。かなり適当なので注意。抽象的なのか具体的なのかいまいち分からないまとまり方になってる。まあ、アウトライン(?)ですわ。マーケティングっぽい事も聞きかじりで混ざってたりするけど、基本的に嘘です(実は『あの本』まだ読んでません)。

サービス:
- 生成
  - 既存媒体からの生成
    - html
    - mail
    - sound
    - video
  - ゼロからの生成
- 配信
  - ホスティングによる第3者配信
  - クライアント要求に従った配信情報の切り替え
- 収集
  - サーバ型リーダーアプリによる巡回
    - 配信サーバの負担減
    - ユーザへの共有/検索機能などの提供
  - 収集データ解放時の加工機会
- 加工
  - 既存フィードへの価値付け
  - 既存フィード群のマージ
  - 別媒体への加工
- 効果測定
  - 購読、クリック、コンバージョンなどの効果測定
  - フィードがマーケティングツールとしてのトラフィック効果をどれだけ生み出すのか
    - 新たな流入経路確立に伴い、誘導手段等の最適化指針
- 媒体利用
  - 広告媒体としての利用
  - 機械に処理しやすいメタ媒体
    - 第3者加工による露出機会
- 検索
  - 基本的な情報入手経路の確立
  - 無差別もしくは分類に従った情報取得(配信)

ユーザ:
- 収集
  - 購読リストの構築
- 購読
  - フィードクライアントアプリを利用した購読
- 分類
  - 管理上の分類
    - カテゴライズ
    - タギング
  - パブリッシングの条件付け
- 共有
  - 購読リストの共有
  - フィード実体の共有
    - 配信サーバの負担減
  - 切り抜きによるアイテムレベルでの共有
- 評価
  - サーバ行動に関連した重み付け
    - 巡回頻度のレーティング
  - ユーザ行動に関連した重み付け
    - フィードやアイテムの並び替え
- 切り抜き
  - アイテムの保存、マーキング
  - フィード再発行への材料作り
- 加工
  - フィードやアイテムへの価値付け
  - C.C.を利用したライセンス
  - 特定アイテムの挿入
  - 複数フィードのマージ

『それ Plagger じゃできなくね』って言ってみたい(それ見つけないとご飯食べられなくなるよ!)。『それ Plagger 流行れば当たるね』ってのは大歓迎。

My Hatena::Bookmark on 2006-04-25

CODE COMPLETE (上)を

読んだどー!

急行を見送り各駅で帰る日々(座るために、ね)。部屋で読んだ記憶はほとんどない。

という訳で、Haskell 本にいこうか、…と思ったけど(下)を読まなきゃ。

XUL アプリがまた来た

MS-Word の .doc も読めるらしい www.ajaxwrite.com

自分が把握する限りで、RSS リーダー、Amazonとあった訳だけど、ワープロアプリでもあったらしい。何かの話題で、オフラインで触れるウェブアプリを考えるといいよってあったと思うんだけど、XUL だとそれなりに解決できる?オンラインにしたら勝手に同期とってくれるとか出来るのかな。

うろ覚えだけど、XUL の中は JavaScript だよね?会社で Widget 関係のプレッシャーをかけられてたりするし、いい加減 JS をガリガリ書けるようにならないとだ。

My Hatena::Bookmark on 2006-04-24

All-In-One-Trac - All-In-One Project
[2006-04-24] [trac] [windows] Trac 関連を一括インストール。WSH利用。
EmacsCurrentInstallmemo.txt
[2006-04-24] [emacs] [tips] EmacsW32 で pces がないって言われるのを解決。APEL。CVS チェックアウトしてバッチファイルに環境設定書き込んで実行。
EmacsW32 Home Page
[2006-04-24] [emacs] [windows] [tools] Windows 用の Emacs。emacs22 以上を要求された。
FreeBSD Notes - はじめてのEmacs22
[2006-04-24] [emacs]

はてな認証 API の CPAN モジュールについて。
404 Blog Not Found:perl - 勝手に添削 - Hatena::API::Auth

こういうのが書けるだけですげーなぁと思うレベルなので、中身についてどうこう言う訳じゃない。まして、それを評価できるのもすげーなぁと思うしかないので、これもまた言う事なし。

覚えておこうと思ったのは、モジュールを公開して配布する場合には色々気をつけなきゃいけない事があるんだって所。それも設計段階(?)でね。1クラス(モジュール)1ファイルってのはこの辺と関係なく、PHPUnit の問題で気をつけてはいる。いや、そもそも複数のクラスがあると目が疲れて頭がぼんやりするので。

あとは、第3者が配布するモジュールへの依存について。基本的に PHP 使う場合、PEAR ありきで動いているので、これ注意されるとなんとも動きづらい。ちょっと前まではオレオレ振りを遺憾なく発揮してた訳だけど、このところ PEAR とかの公開モジュールを探してから動くようになった。まあ、自分とこだけで完結するケースな訳だから問題ないんだけど、ライセンスの問題とは別に第3者モジュール利用具合に注意がいるってのは覚えておこう。嘘ミラーリポジトリ立てられて、そこから嘘モジュールをとってこられる危険性がある訳だ。

PEAR の場合だと --alldeps 使えば依存解決してくれるんだけど、その依存具合を書いてるのは該当モジュールの中にあるパッケージ定義ファイル。細かく見てないしちょっと忘れたけど、割と簡単に出来そう。Plagger 入れる時に 「いつの間にやら GnuPG 必要になってたんだぁ」と apt-get で入れた記憶はあるんだけど、あんま気にする事無く Signature 見てくれてるんだなぁとスルーしてた。してたけど、これ大事だね。PEAR の方でも用意されてるのかな?

とまあ、恥をさらしつつのメモなんだけど、モジュールネタがある訳でもなし。まだまだ、「クラスって何ですか?」って所をうろついてるとこです。世の中関数型がどうだって言ってたりするらしいんだけど、未だに触り程度しか経験してないし。何より、関数型を使う事の意義がいまいち分かってない。まあ、PHP 使う限りはあんま気にしなくてもいいのかな。Perl とか触るようになると、lambda 式的な書き方とかあるみたいだし、色々分かるのかも。なんだか、『スタイル』以上の意味は分からない(調べても無いし、ね)。

Perl とか Ruby ってのは色々目にする分、中の人たちが楽しそうに見えるこのごろです。

このブログが KoshigoeBLOG で、wiki は KoshigoeWiki。で、自分は KoshigoeBushou。

なんでだろう。5つ表示されてるうちの3つに koshigoe が含まれてる。いいんだけど、なんだかね。よっぽど中身ないんだな、と。

あれだ、「ブックマークするほどじゃないけどなんか書いてあった気がする」って位の認識は持ってもらえてるって事だ。自分自身、Firefox の検索プラグインに PEAR 入れる前は Google 経由だった分けだし。よくある事だ。

地名を求めて来てたりすると申し訳なかったりするんだけど、まあどこかの koshigoe は生まれ故郷だし、ね。

あー、Google と Yahoo で1ページ目に来てる…。こりゃ分かりやすい。ここくる時は"koshigoe"で検索したらすぐ分かる訳だ。

Meadow から EmacsW32 へ

特別理由がある訳じゃないけど、EmacsW32 に乗り換え。
EmacsW32 Home Page

emacs22.0.50 との組み合わせを選択。最初、EmacsW32 だけのインストーラから入れようとしたんだけど、(emacs binary? を要求されて)よく分からなかったので。

基本的に Meadow の設定を引き継ぎ。IME とフォント、フレーム周りを削って、SKK を使うようにしてみた。SKK は慣れなくて改行しまくり。面倒になって IME を画面左上見ながら使ったり。フォントが等幅じゃなくなってコード整形が微妙にストレスだけど、まあ後回し。フレームの最大化で画面ぴったりになってくれるのがいい。起動も Meadow の頃より早くなった気がする。余計な事しなくなったのかな?

パス周りとか最初にファイル開く時にミニバッファに出るディレクトリがルートからになるのが気になるけど、ランチャでディレクトリ指定してるからだろうか。

情報がないのが欠点かと思ってたんだけど、生の(CVS HEAD)emacs って事は NTEmacs ってやつの情報を使えばいいっぽいので、その辺も解決。パス周りが Win っぽい気配だけど、よくわからない。Cygwin マウントが出来てない?cofs 使うようになって Cygwin 利用率が下がってきてるし、Cygwin に合わせる必要性も感じなかったりはする。けど、結局色々やろうとするとビルドだなんだってなるっぽいし、脱 Cygwin は無理かな?

そういえば、cofs でマウントしたディレクトリで、Win 側でチェックアウトした SVN ワーキングコピーがアップデートできないのはなんでだ?gmask とか umask 使ってみたけどマウント自体できなくなったし、よくわからない。

とりあえず、特にクリティカルな問題は無い感じだからこのまま EmacsW32 を使い続けてみよう。

リーダーにはてなブックマークのタグ別フィードが並んでいるのがいい加減嫌になったので、無理矢理まとめてみた(ちょっと強引な作り方をした気もするので、すぐにやめるかも; 止められるかも?)。

SBS のフィードで気になるのが、同じアイテムを何度も目にすること。"programming"と"perl"っていうタグが1つのアイテムについてると、それぞれのフィードを読む時に邪魔臭い。注目度で並べてるからしょうがないんだけど、これをどうにか出来たらいいな、と。

じゃあ、どうしようと考えた時に、RSS+SSE ってのがあったじゃないか、と。かなり前に目を通したっきりでいまいち理解できてないままなんだけど、共有とか同期ってのは置いておいて、『アイテムのバージョン管理』が出来そうなんじゃないかと思う。CVS とか SVN を使い続けてきて、ちょっとはバージョン管理って物がどういう物かは理解できてきた。なので、この視点から RSS+SSE を見てみるとなにか思いつく物があるのかもしれない。

別に、RSS+SSE を使う必要は無いのかもしれないけど、とりあえずアイテムのバージョン管理をしたい欲求が出てきたのでちょっと時間を取って考えてみたい。

最近のお気に入り role

特に意味はないんだけど、色々と本を読んだりツールを触ったりして用語を覚えたりする中で。

PEAR channel server とか Capistrano とかで分類用語(?)的に使われてる role 。なんだか『ロールケーキ』な感じがおいしそう。

というわけで、フィードマージの単位に無理矢理使います。

はてなブックマークのタグフィードをマージしてみようかと思ってる中で疑問。

ちょっと前にフィード取得に関するアナウンスが出て、ボット使ったおもちゃ作りにちょっとビビり気味だったりする。で、"/t/hoge?mode=rss"で取得する場合、"hoge"について1時間おきにしたらいいのか"/t/"について1時間にすべきか迷う。

受け取るコンテンツ的に考えると"hoge"だと思うし、実際 RSS としてアイコンが出る以上これでいいと思うんだけど、なんとなく気になった。"/t/hoge"でサーバ的な負荷分散みたいな事してるのかな?よくわからないけど、負荷分散って URL レベルでするものなんだっけ?

とりあえず、条件別フィードはあくまで別個のコンテンツとしてがつがつ取得させてもらいます(勿論1つずつの間隔はあけます)。


『お気に入り』の範囲をタグとかキーワードみたいに『フィードとして取り出せるレベル』まで広げてほしい…。

My Hatena::Bookmark on 2006-04-21

複数のタグについて OR な結果をフィードで取得したい。

機能的に提供されてたりする?
はてなアイデア - 「ブックマーク-マージ機能」。特定の記事をブックマークしている人のブックマークをマージ。一時的にお気に入り機能に入れるイメージ。
↑と同じ事かな?期待。

livedoor reader に乗り換えて、ベータって事差し引いたら特に不満無く過ごしてるんだけど、はてなブックマークのタグフィードがてんこもりで嫌。同じアイテムを何回も読まなきゃだし。やり方ある気がするんだけどなぁ。わからん。お気に入りとか使うのか?

とりあえず、やる気になったらこっそり自作してみよう。

自宅 Mac に入れてる Firefox がやたら落ちるようになってきたので、再インストール。

~/Library/Application Support/Firefox/Profiles/*/bookmarks.html と infoLister 経由で拡張リストをバックアップ。他はとりあえずいらない。スタイルシートとか Greasemonkey とかいるかもだけど、まあ Profile まるごとディレクトリ移動でほっとく(一応バックアップ)。

で、再インストール後に Mass Installer を入れて拡張を一気にインストール。1回目のインストールでは途中で止まったけど、2回目で完了。なんだか落ちたりしたけど、その辺はあきらめ。微妙にまだ挙動不審な気がしたり拡張が衝突してたりするかもだけど、いいでしょう。相変わらずフォームのボタンはもっさいけど、もうその辺は気にならないのでよし。

で、ここに拡張リスト置いてみた。Plagger 使って差分をブログの方に反映したりしようかな?これは TXT だけど、infoLister の出力フォーマット変えて XML とかにしてもいいし。目的があっての事じゃないけど、とりあえず。

会社の win 設定の方もサーバにあげようと思ったんだけど、infoLister の FTP path 設定で失敗。どうやら /home/hoge みたくルートから始めると駄目っぽい。とりあえずホーム以下から相対指定でやったらアップできた。ので、これからは Firefox 終了時に自動的にアップされる仕組み(のはず)。一応、ローカルにも自動保存の設定。

Mass Installer は使い方の確認で終わってたけど、凄い便利。これまでは拡張を1個ずつ入れてたり、どこにあるのか忘れたりでかなり大変だったけど、Mass Installer + infoLister 使ったら即完了。

Stylish とか Greasemonkey とか細かいところは再設定かバックアップから掘り出すかしなきゃだけど、とりあえずこれ位で一段落。

My Hatena::Bookmark on 2006-04-20

Plagger にやっと触れた

ほぼまっさらな Debian に Plagger がようやく入った。

しばらく Perl 自体に触れる機会がなかったので、CPAN モジュールとか C ライブラリとかが大変な事になってた。やたらとヘッダファイルが無いって怒られると思ったら、libc6-dev が入ってなかったり。libxml2-dev でも怒られた気がする。Bundle::CPAN も古かったみたいでずっとエラーだったりで大変。XML::RSS はテストが言語環境(UTF-8 のみ?)の問題で通らず、インストール失敗したり(LANG=C で回避できた; by どこか情報)。

何度 Plagger は普段 Perl 触ってる「『選ばれた(?)』人しか使えないんだ!」ってあきらめようとしたか…。なんとか粘って、さっき bloglines2gmail が動くところまで確認できた。3度目くらいの実行で成功したので、途中の 100 何件かのアイテムは行方不明。偶然にも livedoor reader に Bloglines の OPML をインポートしておいたのでこれはセーフ。

触りたかっただけなので、hack するつもりも出来るとも思ってないんだけど、環境だけはいっちょまえに整った気がする。これを機会に Ruby も環境作ろうかな。というか、本が土曜あたりに届くから間違いなく整えるんだけど。

とりあえず、これまで PHP でこしらえてきたやっつけスクリプトを Plagger に任せてみようかな?

My Hatena::Bookmark on 2006-04-19

■ライブドアが成分解析を見事にパクったようです。
[2006-04-19] [web] 上手い見せ方だと思う(&gt;livedoorキーワード)。

My Hatena::Bookmark on 2006-04-18

RSSジェネレータ - RSSを自動生成・自動配信するASPサービス
[2006-04-18] [feed] 『生成』に特化?Plagger が後ろにいるのかな?お金払っても取得範囲と手間が増えるだけ?タイトルとかをコメントタグで直指定ってのはやりすぎだと思う・・・。

My Hatena::Bookmark on 2006-04-17

mini stop 4連チャン

個人的に生活基盤のコンビニ mini stop。反省しつつも帰り道なもんで頼ってしまう。

最近、700 円ごとに抽選(?)出来るんだけど、4回(の会計)連続で物を手に入れてる。水とかジュースとかチョコとかね。なんとなく嬉しい。

でも、どうせあたるならサマーなジャンボとかがあたってほしい。こういう小物も嫌いじゃないけど、やっぱ大物こそロマンだ。

そろそろ外れてくれないとなんか悪い事おきそうとか思いつつ、くじ引く時はかるく緊張してたり…。まあ、そんな感じです。

なんだか面白い

とりあえず反応してみる。

「すごい!『すべての』サイトを『Web2.0』にしてくれるんだ!しかも特許申請中だ!」ってちょっと前なら反応してたかも。

ここ最近、ずっと足場固めに必死で『Web2.0』ってのをすっかり忘れてた。Web2.0 っていう冠をかぶる意味を説明できるようになったのかな?

タグ連動広告ってキーワードとどう違うんだろう。やるなら『誰かが勝手につけるタグ』と連動させるより『自分で考えたタグ』でいいと思う。そもそも、これ企業向けだと思うんだけど、企業が発行するフィードと広告を連動させるの?競合サービスの広告が差し込まれたり?ああ、比較材料を提供する訳だ。偉い。

『タグ』としてのメタ情報の付け方っていまいち固まってない気がするというか、ほっとかれてる気がするんだけど気のせいかな。SBS のタグは勝手につくのがいいとかどうとか。個人的には、タグは精度次第で任せてもいいけど、メモ的コメントをつけるのは結構好き(じゃないとなんでブックマークしたか忘れる)。

この段階で1年100社導入を目指してるってのは凄い。頑張ってほしい。Web2.0 って言葉があと1年生き残れるか知らないけど。

SBS 発行フィードとかじゃなくて、自社発行のフィードに勝手な言葉を貼付けられて喜べる企業の登場が待ち遠しいです。

My Hatena::Bookmark on 2006-04-15

My Hatena::Bookmark on 2006-04-14

My Hatena::Bookmark on 2006-04-12

(Apache で)HTTP ヘッダを受けてレスポンス(ファイル)を切り替える場合、コンテントネゴシエーション使えばいいの?

軽くドキュメント眺めた程度でなんだけど、『言語/文字コード/MIME タイプ』以外も使えるの?実験のために mime.types いじくって MIME タイプを追加してみてごにょごにょしたんだけど、これは正解じゃないと思う。勝手な MIME タイプ返されても困るだろうし。

独自な"X-Accept-hoge"をコンテントネゴシエーションで使う方法って Apache 本とか買えば分かるのかな。それとも、モジュール書いて勝手にやれって方向だったりする?

独特な目的のためだし、へんてこ MIME タイプ使っても問題なかったりするかな?でも、使い勝手が悪いと利用価値無いよね。

そろそろ本格的に追いつめられてきたかも。本腰入れてサーバ・ネットワーク周り勉強しないとまずいな。それとなくプログラミング(設計)はなんとかなりそうな気がしてきたし、サーバ・ネットワーク周りで知りたい事が色々出てきたし。

追いつめられないと動き出さない性格は駄目だ。

市民になったらしいです。30 日以上のエントリ書いて 30 日以内のエントリがあるとなれるのか。正直、メモ帳としてしか使ってないので、中の細かいところは知らなかったりする。そのくせ、ユーザ気取って先のエントリみたいな事書いてみたり…。

市民権使う日は来るのかな?

とりあえず乗っかり。
人力検索はてな - はてなスタッフより、はてなダイアリーをご利用の皆さまにお尋ねします。 現在、はてなアイデアにて以下のアイデアが提案されております。 はてなアイデア - 「RSSフィード..

はてな RSS に関するアイデアかと思ったら日記の方だったのか。これ、デフォルトがどうだろうと変えられるって事でしょ?新規ユーザ以外でこの質問を見た人の回答ってどれだけ効果があるんだろう。これを見た以上、変える方法は分かっただろうし。

まっさらな状態の時にどうするかって事だと、それははてなの都合次第だったりしないかな?1フィードの容量が増えて問題なら、概要だけをデフォルトにすればいいし。含めて問題ないなら、デフォルトで含めときゃいいし。全文がどうだとかって言えるくらい『RSS を知ってる』人に対する気遣いなら、日記の管理トップにでも変更方法を書いておけばいい。RSSセクション作るとか。

既存ユーザの立場から言ってみると、どうでもいい。どう転ぼうと、今してる設定が変わる訳じゃないだろうし。『変更可能』である事に変わりは無いんだよね?いや、でも少なくとも 892 以上の人が意見を寄せてるってのは意味があるのかな?新規ユーザに対する気遣い?

やっぱ、『はてなダイアリーご利用の皆様』はこれがどうなろうと関係なくない?『はてなダイアリーの RSS をご利用の皆様』ならともかくさ。『フィードは全文を含むべきかどうか』って事じゃないよね?

結論。意味わかんね。教えて!


あ!もしかして、有料オプションになるのか!?いや、ないでしょう…。

My Hatena::Bookmark on 2006-04-11

人力検索はてな - 「del.icio.us」と「はてなブックマーク」の使い分け ソーシャルブックマークとして「はてなブックマーク」を使ってきましたが、「del.icio.us」もずっと気になっていた
[2006-04-11] [hatena] どっちも絞り込める。del.icio.us のほうが(早く)マッシュアップされやすい?
404 Blog Not Found:Let Readers decide How RSS gets sent
[2006-04-11] [feed] HTTP ヘッダで取得する Feed のフォーマットを指定する。
Set up your own PEAR channel - Tobias Schlitt - a passion for php
[2006-04-11] [php] [pear] [pearpackage] チャンネルサーバの立て方
Docs For Class PEAR_PackageFileManager2
[2006-04-11] [pear] [php] [pearpackage] 自前 channel server 用のパッケージングは package.xml の 2.0 にある channel 要素を使わないとだめっぽい。
秋元@サイボウズ研究所プログラマーBlog: 子猫認証
[2006-04-11] [tips] 楽しい。"タグ"が『本当』なら無作為抽出はソーシャルサービスからタグで引っ張ると便利?
ITmedia エンタープライズ : Linux Tips「カーネルパニック時には自動的に再起動するようにしたい」
[2006-04-11] [server]

そういえば

はてなブックマークの『前の日』と『次の日』のリンクで右に『前の日』が来てるのは仕様?『次の10件』は右にあるんだけど…。Greasemonkey のせい?

意味分からん。

cofs 便利

なんでかこれまで cofs 使ってなかった。

会社の箱庭環境として Debian coLinux を使ってるんだけど、cofs は設定に含めつつも使ってこなかった。しかも、Cygwin からファイルをアップしてたり。coLinux 側で使う際は同じディレクトリにはしてないからファイルコピーは必要なんだけど、なぜか Debian 君はネットワークの初期応答がにぶい。

今、チーム共通の開発環境(OS)のやつと、箱庭とで2つの coLinux を動かしていて、どうも Debian 君は不思議君。で、いい加減鬱陶しくなってきたので、せめてファイルコピーの時くらいは coLinux 上で済ませようと cofs をマウント。

いい。設定ミスってマウント先(?/win側)が書き換えられなかったりしてたりもするけど、Debian 君のネットワーク七不思議を吹き飛ばしてくれた(通常の Download とかは遅いけど)。

しかし、なんで使ってなかったんだろう?不思議君を使うのはやっぱり不思議君ってことかなぁ。

404 Blog Not Found:Let Readers decide How RSS gets sent
なるほど。

全文かどうかってのはあまり興味が無いんだけど、そのアプローチは思いつけなかった。どうも "HTTP ごにょごにょ"っていうサーバ周りの事は苦手。いや、このへんはわかってなきゃいけなかったり、思いつくってよりはなから選択肢に入れとけって事だとは思うんだけど。

プログラム使って動的なフィードをはいてる場合は簡単に実装できそう。フィード生成プログラム自体がサーバアプリというか。じゃあ、静的ファイルは?ってのが問題なんだけど、これは『ヘッダに従って一定のルールで応答を変える』って事が出来るんでしょう。言語とか文字コードとかの分岐(?)処理は httpd.conf とか眺めてた時に目にした記憶がある。

名前空間とかは割と目にしてきたけど、HTTP ヘッダ(リクエスト)で中身を変えてくってのは目にしてない(と思う)。こういうのも WebAPI なのかな?こういうのも選択肢に入れられるようにならないとね。

PEAR channel server 一段落

とりあえず、パッケージをアーカイブにまとめてサーバにアップ、"pear install/download"でおりてくるところまで確認できた。
koshigoewiki:php:pear:packaging [KoshigoeWiki]

package.xml を作るためのスクリプトを書いて、package.xml が作った後に"pear package"でアーカイブを作る。で、Web 管理画面からアーカイブをアップロードするんだけど、『"pear.php.net"はローカルじゃない』と怒られる。どうも、package.xml にチャンネル定義が無いと駄目らしい。pear 側の設定なのか分からないけど、とりあえず v1 から v2 に切り替えてみる。

PEAR_PackageFileManager2 は 1.6.0a から使えるらしいので、これを落としてきて使う。使うんだけど、どうも設定方法が変わってるのか必須項目(setOptionsで設定する部分)が変わったのか上手い事いかない。設定項目を上手く入れ込めても、ファイルリストが上手くとれない。どうやら 2 の方と上手く連携できてないらしい。

直接 v2 を生成するのはあきらめて、"pear convert"を利用して v1 から v2 を生成する事に。で、とりあえず問題なく変換できるんだけど、channel 要素が"pear.php.net"として追加されるので、ここを編集しないといけない。

さて、無事アーカイブを作る事が出来た。また管理画面からアップするんだけど、メンテナが駄目とかなんとか。サーバが保持するパッケージのメンテナが登録されてなかった。パッケージ名横のメンテナ画面で自分を追加。ようやくアップロードできた。

実運用に入った場合、まだまだ設定項目周りを調査しないと何だけど、単純な構成ならこのままでよさそう。

My Hatena::Bookmark on 2006-04-10

CMS researcher - Subversion: svn diffした時にコミットのログも一緒に表示するスクリプト
[2006-04-10] [svn] diff(ソース) と log とで文字コード違う場合はエンコーディング処理入れたらいいのかな?表示系の場合 svn コマンド自体は使わずに基本的にエンコーディング処理する wrapper を使うべきなのかな?
Google Dark
[2006-04-10] [greasemonkey] [firefox] 黒い Google。.com限定モデル。
高木浩光@自宅の日記 - CSRF対策に「ワンタイムトークン」方式を推奨しない理由, hiddenパラメタは漏れやすいのか?
[2006-04-10] [security]

PEAR channel server おまけ3

メモならいいだろうという事で、メモ。

PEAR_PackageFileManager クラスを利用して package.xml を作る場合、setOptions メソッドを利用して設定情報を流し込む。この時、一部の設定項目は、それ専用のメソッドを経由して流し込まないとなんだか厄介な事になるっぽい。

"maintainers"項目は必須らしいんだけど、これを"array(array($handle, $role, $name, $email))"として普通に setOptions に渡してたんだけど、いざ実行してみると反応無し。例外も起きずに終了する。で、とりあえず専用メソッドを持ってるらしいので、"maintainers"項目だけ(YAML から読み込んだ)オプション配列から隔離して addMaintiner メソッドを利用して流し込んでみた。そしたら無事デバッグ表示とファイル生成に成功。package.xml が作られる位置と名前が微妙におかしいけど、設定を省略したからだと思うので今はよし。

そういえば、Web インターフェースと CUI とどっちがいいんだろう?チャンネルサーバに付属してるパッケージ管理ツールを使う事を考えると、これに組み込むのが良い気もする。まあ、今は CUI でいじくってればいいかな。運用方針とかはまだ未定だし。

ここ最近、家で PEAR channel server について調べてたんだけど、実はこれ今週のお仕事タスクでもあったりする。

趣味と仕事の言語は別にしとくのが吉ってのはいつだか聞いたんだけど、実践できてない。今回の場合、割とノウハウ色が強いからある程度ここで書いても問題は無いんだけど、一部スクリプトを書いて処理する部分があったりしてその部分で困ったちゃん。

昨日までは家でごにょごにょしてただけだから何の問題も無かったけど、これから調べる事はちょっとまずいのかな?とりあえずかけそうな事だけ書く事にしよう。

というわけで、今のところ何もなし。

PEAR channel server おまけ2

相変わらず具体的な進展は無いんだけどメモ。

PEAR_PackageFileMnager で、ファイルリストを生成するプラグインは今のところ file か cvs のどちらかを使う事が出来る。バージョン管理を CVS から SVN に乗り換えた後なので、ここでもできれば SVN を使いたい。

cvs プラグインのソースを軽く眺めた感じでは、CVS/Entries の中身を見てそこから『あるべきファイル』をぶっこ抜いている様子。特に cvs コマンドを経由して情報をとっている感じは無い。php 組み込み関数として CVS 操作が用意されている一方で SVN 操作は用意されていなかったと思うので、その辺の影響(cvs どまりな理由)があったりするのかなぁと思ったりもしたけどそんな事は無かった。まあ、『既存ディレクトリ』を指定しなきゃいけないって時点でそれは無いんだけど。

で、ここで『作った!』と言えればいいんだけど、そんな事は無い。一応、(仕事上の)タスクとして割り振られているので今週の勤務中には書く事になると思うけど、今は確認どまり。まあ、file プラグインを継承して cvs プラグインを真似したら割と簡単にできるかな、と。問題は CVS/Entries と .svn/entries の違いを確認してないって所かな。まあ、SVN のエントリーリストは単純な xml だから simplexml とか使えば特に問題は無いと思う。性質的に日本語なんか考慮する必要もないだろうし。…、ファイル(ディレクトリ)名に日本語使ってなかったよな?

さて、まずは厄介なタスクから片付けないと。これに取りかかるのは週末頃かなぁ(それまでにどっかでプラグインが公開されてたりすると楽だったりするんだけど…)。


パッケージングの流れを想像してみたり…

% svn update -r HEAD PACKAGE_DIR
% php make_package_xml.php package.yml
% pear package
% pear build package.xml
? パッケージのアップロード(Web 管理画面?rsync とか?)

多分、最終的にはシェルスクリプトとかで1つにまとめて実行するだろうけど、今のところこんな感じかな、と。パッケージング対象のディレクトリは "svn co"であらかじめリポジトリからチェックアウトしている。で、パッケージング前に最新の状態にしておく(リビジョン指定とかが必要ならそれはそれ)。で、package.xml を生成するスクリプトを、パラメータを記述した YAML を読み込んで実行させる。YAML にしたのは微妙だけど、いちいちスクリプト書き直すのは手間な気がするし、スクリプトは使い回したい。あと、引数指定するにしては変更可能性のあるパラメータが多い気がしたから。最初から手書きで XML いじれって気もしないでもないけど、見た目的に分かりやすいかなと(安全面からも)。で、パッケージングして、その後に一応 build テスト。この辺は自動化すべきかよく分からない。最後にアップロードだけど、ここは手順がまだよくわかってない。Web 管理画面使えばいいんだろうけど、自動化できるならそれにこした事は無い。管理画面のインターフェースを軽く見た感じではファイルアップロードだけだったと思うんだけど、よくわからないので要調査。

PEAR channel server おまけ

サーバーを立てるところで一休みしてるんだけど、どうも『パッケージを作る』部分がめんどくさそう。

PEAR_PackageFileManager を利用して package.xml を書けるよって事らしい。全部 Web 上で完結できると思ってたんだけど、パッケージングは自分でやるものらしい。

ついでに言えば、CVS は対応してるけど SVN は対応してないっぽい。試してないから何とも言えないんだけど、リポジトリからチェックアウトしたファイルからリストを作ってくれるらしい。この部分は _Svn を用意して上手くやりくりすればいいのかな?

パッケージのバージョン管理とソースコードのバージョン管理の整合性とかをどうやって上手くやるのかがまだよくわからない。タグ付けとかしたらいいのかな?

自宅サーバの時間合わせ

PBG4 に入れて使ってる Debian の時間がやたらずれる。

はてなブックマークの1日分(前日)のリストを MT(ここ)にポストしてるんだけど、1日に2回ポストされてた。で、なんでかなぁと思ったら、サーバの時間がずれてた。

% sudo /etc/init.d/ntpdate start

普通にコマンド(/usr/sbin/ntpdate)で使えると思うんだけど、Debian の apt-get で入れると inetd 用のスクリプトが用意される。他のディストリビューションでどうなのかは知らない(ntp 自体ほとんど使わない)ので何とも言えないんだけど、とりあえずこれで時間はあうし問題ないかな、と。

後は、これを定期的(daily かな?)に動かして微調整を続ける。

My Hatena::Bookmark on 2006-04-07

自宅サーバを利用して、PEAR channel server を立ててみた。これはローカルサーバなので公開はしてない。
カイハツニッキ(2006-03-08)

いくつかアプリケーションを作ってみるうちに、どうも似たような処理が出てくる。当然、ライブラリとして別に切り出す訳だけど、その配布というか置き場所に悩む。アプリケーションに添付して(それぞれのアプリケーションに持たせて)解決したりするけど、これを自宅サーバに置いた PEAR channel server からインストールすれば、それだけで解決する。--alldeps つければ依存解決もしてくれるし、アプリケーションをインストールできる様にした場合も勝手についてくる。

バージョン管理についてはある程度慣れてきたんだけど、ライブラリ管理とか再利用性がどうこうって部分を見逃してた。別個にライブラリサーバを用意できるってのは便利だ。ライブラリサーバに共有ライブラリを置いておいて、インストールはインストーラにまかせて、ライブラリのソース管理はバージョン管理とかで上手い事解決すればいい。サーバ設定で非公開にすれば社内プロジェクトのものでも置ける。

ライブラリの置き場が明確になって、使うための方法(インストール)も用意されるので、何も考えずライブラリつくってコミットできるようになる?

My Hatena::Bookmark on 2006-04-06

svk - 気の向くままに・・・ - livedoor Wiki(ウィキ)
[2006-04-06] [svk] TortoiiseSVN からのチェックアウトとか、WIn32 な svk とか。
PEAR :: Package :: Benchmark
[2006-04-06] [php] [pear] ベンチマーク
BlueShoes: PHP Benchmark
[2006-04-06] [php] ベンチマーク結果。反復処理とか条件分岐とか。
MySQL 4.1 リファレンスマニュアル :: 6.4.8 LOAD DATA INFILE 構文
[2006-04-06] [mysql] load data infile でレコードを高速読み込み。
MySQL 4.1 リファレンスマニュアル :: 5.2.10 INSERT クエリの速度
[2006-04-06] [mysql] insert 文のパフォーマンス。
アップル、「Boot Camp」を公開--Intel MacでWindows XPが利用可能に - CNET Japan
[2006-04-06] [news] [mac] intel Mac に WindowsXP SP2 をインストールする公式な方法。10.5 から標準で用意される。

手順だけ確認して終わってたので、実験(wiki には書いちゃってたんだけどね)。

koshigoewiki:開発環境:svk [KoshigoeWiki]
最初、"svnadmin create"にオプションつけず普通に移動先リポジトリを作ったんだけど、なんだか BDB で作られてた(Berkeley DB error... って怒られた!)。Debian の svn(svnadmin) 1.1.4 なんだけど、これ普通?1.1 あたりからデフォが FSFS になったとかならないとか?まあ、リポジトリ作り直したら "svn co" できたけど。

SVK と違うのは、リビジョン番号を保持するってところ。"db/revs"見ると 0 から最新のリビジョン番号まで記録されてる。チェックアウトしたところで "svn log" するとそのモジュールが使ったリビジョンだけが出力される。作業記録とか連絡のやり取りとかでリビジョン番号を使ってた場合、こっちの方が混乱がなさそう。

さて、明日は順番が1週繰り上がった社内勉強会の発表。どうしようもなくネタ切れなので、今回はこの辺をだらだら聞いてもらいましょう。

My Hatena::Bookmark on 2006-04-05

moroの日記 - 10分でできるSwitchtower
[2006-04-05] [deploy] [tools]
Mass Installer 0.2 [Mai 08] - MozillaZine Forums
[2006-04-05] [firefox] 拡張ファイルのURLリストに従ってインストールしてくれる拡張。
Hack Attack: Firefox extension packs - Lifehacker
[2006-04-05] [firefox] Firefox 拡張の URL リストの URL を指定して一括インストールする Firefox 拡張。

拡張ファイル(xpi)の URL リストが書かれたファイルへの URL を指定して一気にインストール。 Mass Installer 0.3.1 [Jan 14] - MozillaZine Forums

便利。グループ開発とかで『これだけは入れとけ』とか、作業 PC での『環境差異』を解決したりと。

さて、こうなるとインストール済み拡張の URL 一覧を書き出してくれる手段が知りたくなる。
InfoLister :: Mozilla Addons :: Add Features to Mozilla Software
"XPI List"フォーマットでコメントつきながら xpi ファイルの URL リストが取得できる。

これで、どうにも不安定な (OSX 版)Firefox1.5 もどんどん再インストールできる!(しないけどね)

Search Onsite 入れてみた

ありがたい事に、探してくれた人がいらしたようです。

あったら便利かもしれないと思った。
機能としては、Google Toolbar にあるっぽいけど、これ、入れてないんだよな。
で、Greasemonkey の方に興味あったので調べてみました。
グーグルサイト内検索のフォームを作ってくれる Greasemonkey スクリプト、を探してきた

Google Toolbar の方はキーボードショートカットが分からない(OSX では未対応だっけ?)ので使ってない。で、お勧め(?)のままに Search Onsite を入れてみた。いい。AND 検索だって事と、検索ウィンドウ(?)での表示タイミングがよく分からなかったりはするけど、問題無し。

ありがとうございます!

なんとなく、ほったらかしにしてるなぁ、と(色々触ってみようと思ってたんですけどね)。

使いこなせていなかった Google 検索。site スイッチ(?)を使って、検索機能が用意されていないドキュメントサイトを全文検索(?)。

つい最近、検索キーワードを変えて Google 検索したら、 SVN リポジトリの分割方法が SVN ドキュメントのサイトで見つかった。探す内容的に、『全てのサイト』を対象にするような事じゃないのに、普通に検索してるのはいかがなものか。

というわけで、どこかに advanced search できる Greasemonkey とかないかな?欲しいものは、今見てるサイト(ディレクトリ)について OR(AND)検索できる普段は隠れている検索フォーム。

…、Firefox の検索プラグインとか探せば(作れば)いいのかな?でも、『今見てるサイト』っていう指定が出来るのか?とりあえず、小さなボタンなら常に表示されててもいいし、なんだったら透明にして左上隅とかに置いておけばいい(かぶるかもだけど)。

PBG4 に入れた Debian がどうも変。

まったく音がしないのは、おとなしくいい子で待っててくれてるからだと思ってた。けど、なんか違うかも。

"svn ci"がやたら遅いんだけど、"top"とかしたとたんに動き出す。…、スリープしてたとか?でもログインできるし、普通にコマンド実行できるし。なんだろう、変なプロセスが動き出してたりするのか?

いい子だと思ってたのに、実は陰でこそこそやってやがるのか?

宇宙人襲来!?

Plagger 使ってみようと "test Plagger"で依存解決しながら CPAN インストールからしてみた。

これが原因か分からないんだけど、突然 Mac がしゃべりだしたり、アプリが立ち上がったりと大混乱。原因不明の奇病に冒されてしまった模様です。Mac もウィルスが出始めたらしいしなぁ。

インストールログに"Mac-App"って文字があるし、以前どこかの Blog でスピーチ機能がどうこうみたく書いてあったし、Plagger (周辺モジュール)が原因だったら、まあ安心できる。

特にメッセージ気にせずデフォルトでエンター繰り返してたのが悪いんだろうけど、心臓に悪い…。いや、Plagger が原因だと決まった訳じゃないんだけど。

subversion のドキュメントを熟読しないまま Google 経由で情報を集めていたので、SVK に落ち着いていたけど実は用意されてた。
リポジトリの保守

とりあえず、既に問題は解決しているので、手順だけ確認。まず、"svnadmin dump"でダンプファイルを用意する。で、ダンプファイルをパイプで"svndumpfilter"に渡して、その出力をファイルに書き出す。そこで出来上がった(特定プロジェクトの)ダンプファイルを"svnadmin load"でロードしてリポジトリを作る。

履歴番号とかの扱いがどうなるかは実際触らないと分からないけど、ずいぶん簡単だったみたい。ただ、この方法は当然、リポジトリがあるサーバにログインできないと駄目。まあ、その権限があった訳だけど、ローカルでの加工方法とリモートでの加工方法の両方が分かったという事で。

my hatena bookmark on 2006-04-02

『複数の言語を知る事はいい事だ』って事らしいので、ちょっと Haskell あたりを使ってみようか、と。

手続き型言語すらろくに使いこなせてないん(OOP が勉強途中)だけど、むしろ『見方』『考え方』を複数持つ事で色々気づく事があるかな、と。

関数型言語ってのはいまいち良く分かってないんだけど、なんとなく頭の中の処理の流れをそのままコードに起こせるような気がしてる。コード(関数)で表現した再帰ってのは流れを理解しづらい感じがあるけど、流れ的には自然。1つずつ式を展開していって順次処理して、最終的に1つの値を得る。あと、具体的な数字は別として『1+2+3+4+5+6+...』みたく長い式を計算する場合、『3+7+11+...』として演算子を1つずつ消していく事をよくやる。こういうケースを考えると、ちょっと見た感じではそのままコードに落とせるのかな、と。

実際は、全く関係なかったり、別のところですごい利点があるのかもしれない。ただ、はっきりしている事は、違う考え方が必要になるってこと。実は、注意力をつけるために DS でも買って頭のトレーニングしようかと思っているんだけど、関数型言語に手を出す事でもいいトレーニングになるかもなぁと期待。

とりあえず、DarwinPorts 使って hugs98 とか入れて環境整備中。

my hatena bookmark on 2006-03-31

プロフィール

このアーカイブについて

このページには、2006年4月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2006年3月です。

次のアーカイブは2006年5月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。