2006年1月アーカイブ

Wikiとバージョン管理

BitChannel
バージョン管理をCVSに任せたWiki。

Wikiはそれぞれのページで履歴を記録してバージョン間の差分を見る事ができる。会社でも色々な場面でWikiを使っていて、バージョン管理に優れたWikiが欲しいという要望が出てきてたり。

幸か不幸か1ページが頻繁に書き換えられてその差分とか、変更があった理由を追いかけるような事態には出会っていない。なので、バージョン管理関係の機能が欲しくなったときに、どんな事ができれば嬉しいのかがいまいち分からない。

とりあえずGoogle先生に『wiki バージョン管理』で聞いてみたら上のBitChannelがひっかかった。なるほど、バージョン管理はそれが本業のSCMに任せれば言いわけだ。SCMはバージョンを追いかける事が得意だから、SCMを利用しているWikiを中心に探せばいいのかも。

で、Tracの組み込みWikiはどうなってるんだろうと思ってちょっと触ってみた。Tracはプロジェクトが利用しているSVNリポジトリの変動をすべてトラッキングしているらしい。Timelineってのを見ると、その名の通り時間軸でリポジトリへのコミットログが表示される。簡単な作業記録を一覧できて便利。日時とか種類(マイルストーン、チケット、リポジトリのチェックイン、Wiki)で絞り込む事もできる。Tracはリポジトリ単位で立つ訳だから、プロジェクトの動向がしっかりと記録されていく事になる。

Tracはほとんど使いこなせてないからこれがいいのかは分からない。でも、軽く触った感じだと見た目もいいし色々遊べる感じで楽しい。

・Wikiでドキュメント管理
・ChangeLog
・ロードマップ
・ソースブラウズ
・Issue Tracking
・Tracで管理するもの全て(大半?)のバージョン管理
・検索

ざっとあげただけでもこんな感じの機能を1つのURLから利用できる。WikiとかBTS、SCMのソースブラウザがそれぞれ単独で動いてると、それぞれ管理しないとだし操作に慣れるのも面倒かもしれない。くどいけど、Tracが最適解だとは言えないけど1つの環境でできる事の利点は大きい気がする。

んー、やっぱ実際使ってみたりユーザの使い心地を知らないとかなぁ。

今更ながらにXML-RPCを利用してMTに投稿するスクリプトを書いてみた。
d2mt-sample.zip

一応、上記リンクからサンプルをダウンロード可。やってる事は、前日のdel.icio.usポストをまとめてMTに投稿する処理。Feedburnerでフィードに挿入できる様になってたらしくて、なんとなく真似。MTにポストすれば自然とフィードに追加されるし、.comのフィードを消してプレーンなRSS(か.jpのフィード)を読んでもらってるので、こっちで対応。中の処理でxml.phpっていうよそ様のライブラリ(Keith Devens - PHP XML Library, version 1.2b)使ってるんだけど、英語がわからずライセンスがわからない。xml.php自体はいじらずにそのまま使わせてもらってるから問題ないと思うんだけど。

サンプルスクリプトは当然無保証で放任。著作権がどうこうというのはいっさいなし。もし使いたいという場合は、conf.incを適当に編集してください。xml.php以外にもPEARライブラリ(XML_RPCとHTTP_Request)を利用しているので、別途インストールする必要があるかも。必然性はないけど、テンプレートエンジンとしてSmartyも利用。レンタルサーバのCronで動かすつもりなので、そこで動いてるPHP4.3.10で動作を確認。

contentの構造体がどうこうってところで困ったけど、勘で対処。明確な根拠はよくわからず。
Movable Typeユーザー・マニュアル: プログラミングインターフェイス

###
2006/02/01 追記
個人的な利用方法の問題で、dateでのフィルタからtagでのフィルタに切り替えた。ブックマークは日付タグを付けてるのでこれが確実かなと。よくわからないけど、del.icio.usのdateフォーマットはUTCだかなんだかで、日本の日時で考えていいのか分からない。分からないままPHPのgmdate関数でそれっぽくごまかしてたりする。

del.icio.us post on 2006-01-29

ブログクチコミサーチ by kizasi
[2006-01-30] [webservice] キーワードのクチコミ伝播とかを解析・トラッキング?ウェブサイト(パーマリンク)の解析じゃなくてキーワードの流れを見る。
AppleCare
[2006-01-30] [ipod] [trouble] iPodがフリーズした場合の対処方法。
Num Sum: KoshigoeBushou's spreadsheets
[2006-01-30] [webservice] Webで使えるスプレッドシート。WritelyがWordでNumSumはExcel
Qooqle
[2006-01-30] [webservice] Google+Yahoo+Amazon+Hatenaな複合検索。サジェストとかAjaxとかFirefox拡張とか
bpBlog | shellスクリプトを書くときに。必要な最低限の知識。
[2006-01-30] [shell] [tips] 条件分岐で使う条件式。論理演算は/bin/shじゃ使えないらしい。
JavaScript Favicon Generator
[2006-01-30] [firefox] [javascript] [webservice] Firefoxで動作するfaviconエディタ。マスク使って透過がどうこう
JotSpot Tracker - Stop emailing spreadsheets
[2006-01-30] [webservice] Webで使えるスプレッドシート。
福島中央テレビ ちょっと便利帳〔目次〕
[2006-01-30] [webservice] 情報盛りだくさん
辞典-辞書検索 翻訳のためのインターネットリソース
[2006-01-30] [webservice] 辞書を検索
zsh
[2006-01-30] [shell] [tips] プロンプトの色づけとかcd履歴とか
:: PINK is BACK ::: iPodがフリーズ!!
[2006-01-30] [ipod] [trouble] iPodがフリーズしたときの対処方法
Movable Typeユーザー・マニュアル: プログラミングインターフェイス
[2006-01-31] [mt] [xml-rpc] MTのXML-RPCインターフェース
Chicklet Creator 2 : Feed Subscription Button Maker - RSS Buttons
[2006-01-30] [webservice] フィードリーダへの購読ボタンとSBSへの登録ボタンを一括処理で作成
YouTube - Broadcast Yourself.
[2006-01-30] [webservice] 動画検索?
XT Host - Free Webhosting 30MB Webspace, No Ads, Instant Signup
[2006-01-30] [webservice] 無料の30MBホスティングサービス?FTPとかなんとか

iPodがフリーズ!

帰宅途中にiPodがフリーズしやがった。

平気そうな顔をしながら帰ってみたものの、結構へこむ。Dockに差したら戻るだろうと期待するものの効果なし。これはGoogle先生に聞かねばと尋ねたところ、割と有名な様子。

操作不能になったときや反応しないときに iPod をリセットする
:: PINK is BACK ::: iPodがフリーズ!!

1)HOLD
2)HOLD解除
3)MENU+SELECT(真ん中)を10秒程度押し続ける
4)駄目なら1から

無事復活。指紋ついたままにしてたからすねたのか?

# 勘で1と2の後にSELECT+再生で長押しとか試したけど、MENU+SELECTか…。ねばれ俺。

FolderShareっての

FolderShare
Microsoft提供(買収?)のP2P(?)のフォルダ共有サービス。

1)http://www.foldershare.com/download/index.php?からOSに合わせたパッケージをダウンロード
2)ダウンロードしたパッケージをインストール
3)FolderShareを起動
4)設定
 4−1)アカウント未設定の場合は設定(ニックネーム、パスワード、E-mail)
 4−2)コンピュータの設定(デフォルトのまま)
 4−3)後はそのまま
5)http://www.foldershare.comにログイン
6)My AccountでPrivacy ModeをOnにする(招待ユーザ以外からの閲覧を拒否?)
7)Share With Friendsで誰かと共有するMy Libraryを作成
 7−1)左に表示されるAvaliable Deviceを選択
 7−2)Specify a folderから逐次ドリルダウンして共有するフォルダを選ぶ(フォルダ左に表示されるラジオボタン)
 7−3)招待するユーザのE-mailを追加して次へ
 7−4)ユーザに許可する権限を設定(読み込みだけとか追加許可とか削除許可とか)

Message Boardはブラウザの表示エンコーディングをUTF-8にして投稿後、ブラウザの表示エンコーディングを再びUTF-8にすると文字化けする事なく表示される。ただし、一部文字化けする事があるらしい。ブラウザのデフォルト表示エンコーディングをUTF-8にすればそのまま日本語表示できる。Subjectはどうあっても文字化けしそう。
Firefox(OSX)の場合、環境設定からコンテンツのフォントとカラーの詳細設定を開いて文字エンコーディングをUnicode(UTF-8)を選ぶ。

かなり怖い感じがするけど、ちょっと面白そう。会社と自宅みたいな使い方は相当リスキーな感じがするから駄目でしょう。友達に頼まれた作業のやりとりにはいいかも。Message Boardが文字化けするってのはいただけないけど。まあ、HTMLのヘッダにエンコーディング指定ないからブラウザ設定である程度は回避できるんだけど。結局、一部の文字が化けるんだけど(文字コードはさっぱり)。

初期設定でPrivacy ModeがOffってのはどうなんだろう?これはソーシャル性は極力排除していいサービスじゃないかなぁ?勝手に見られたり検索されたりってのは違う気がする。まあ、そういう事言うやつは使うなってことかな。

最初P2P的に同期してくれる中継点的なサービスなのかと勘違いしてたけど、(2GBの)ストレージはFolderShare.comが持ってて、その内容を指定したローカルのディレクトリと同期してくれるって事らしい。大きめのファイルを圧縮作業なしでやりとりできるってのは面白い。

Google(の最近の動向)もだけど、既存サービスに大打撃だなぁ。これまで手を出してこなかった分野に巨人がやってくると大変だ。まあ、利用者側からすれば安心できるネームバユーを持った大きいところが運用してるのは使いやすいのかも。これがよく知らない会社がやってても正直信用できなくてまず触れない。

# Vistaとどう連携するんだろう?Appleの.Macはどう対抗するんだろう?

自宅での作業もできる限りSCMを使って管理していこうと注意している。

Trac(Issue Tracker)はいまいち使いこなせてないんだけど、SVNはなんとか使っている。で、SVN(SCM)を使うと作業は作業コピーのディレクトリ内でする事が望ましい。作業コピーのファイルをEmacsからいじれば、直接コミットできるし多分ChangeLogとかの同期もとれる(のかな?)。

注意はしてるんだけど、まだまだ(ローカルサーバの)htdoc/~とかにファイルを作ってそれを直接いじったりしてしまう。そうすると修正結果をすぐに確認できていいんだけど、管理上よろしくない気がする。それに、会社ではcoLinuxを使っててsamba共有はしてないから、結局SCPでアップロードしてる。これを考えると、いい加減rsyncでも使って作業コピーからサーバにエクスポートする手段を覚えないといけない気がする。

とりあえず、.svnと同期処理スクリプト(*.sh)、.DS_Storeを排除して差分だけを同期できる事を確認。

rsync -arvu --exclude='.svn' --exclude='*.sh' --'.DS_Store' 作業コピー サーバディレクトリ

ローカルからローカルの同期だけど、リモートへの同期も"-e ssh"を追加してサーバディレクトリの指定もSCPと同じ記法(user@host:dir)で書けばいけると思う。

PHPでAtomAPI

PHPでAtomAPIを使ってみた。

基本的にHTTPが分かってない。なので、POSTで名前なしのXMLデータを流すにはどうすればいいかさっぱり。これまでは、PerlのXML::Atom::Clientあたりに任せてたから、じゃあPHPではどうするってのが分からなかった。

UnknownPlace. - PHP で WSSE 認証
眠る開発屋blog:HTTP_Requestを使ってはてなフォトライフへ画像を投稿
WSSEの使い方とPOSTでXML(Atom)を流す方法が書いてあった。HTTP_RequestのsetRawPostData関数使うと名前なしで流す事ができるらしい。最初上の方の記事だけ見てて、下の記事からのトラックバックだって気づかずに、XMLをエスケープしたものをPOSTしてた。なので500エラーで困惑。
ちなみに、記事の通りPHP5ではsha1関数がバイナリ出力に対応しているのでpack関数は使わないでいけた。sha1関数の第2引き数にtrueを渡すとバイナリ出力($bin = sha1(time(), true);)。デフォルトではfalseなので注意。

久しぶりにAtomAPIを触りだしたのは、SBSを管理するツールでも作ろうかなと思ったから。netvibesとかGoogleとかのモジュールで対応してるSBSはどうしてもdel.icio.usになる。なので、はてなとdel.icio.usを同期しないといけない。まあ、del.icio.usに乗り換えればいいんだけど慣れからいってちょっと面倒。

今のところできてるものは以下。
・はてなブックマークの全件データをローカルDBと同期する処理
・ローカルDB(はてなブックマーク)とdel.icio.usと同期する処理
・はてなブックマークとdel.icio.usへのクロスポスト

今後作るものは以下。
・はてなとローカルDBとの同期を最小限で済ませる
・ローカルDBにあるブックマークデータのエディタ
・ローカルDBにあるブックマークデータのブラウザ(related tagをサポート、カレンダー?)
・ローカルDBにあるブックマークデータのリンクチェック(301なら更新、なければ削除)
・ソーシャルデータのブラウズ(ユーザとかコメント、タグとか)
・ほか

基本的にローカルでの利用を考えていて、しかも相当な環境依存(PHP5.1.2+MySQL5)なので公開予定はなし。SBS系の派生サービスで遊ぶためにデータを管理したいっていう個人的な欲求が先にある上に、勉強の題材にしてるので。

環境を選ばない(最低限の依存)って事を考えると、PHP5+SQLiteとかがいいのかな?

OSXでGNU LS

| コメント(2)

OSXのTerminalをzshで利用している。

で、よそから設定ファイルを拾ってきてほぼそのまま使ってるんだけど、lsの結果が色付きにならない。設定とかでどうにかなるのかと思ってたら、どうもGNU LSとかcolorls(?)だとかを使わなきゃいけないらしい。

GNU LSを探してもどうも見つからなくて、どうやらcoreutilsっていうパッケージ(?)に含まれるものらしいという事がわかった。で、port searchしてみると見つかったのでインストール。

gnulsがインストールされるかと思ったら見つからない。glsとかいうのが/opt/local/binで見つかったのでこれを"gls --color"として実行してみた。…、駄目だ。これまでの設定変更が影響してるっぽかったのでTerminalのウィンドウ設定を確認。カラー項目で、「ANSIカラーを使用しない」がチェックされたのでこれを外しいてみる。無事、色がついて表示。

tcsh(デフォルト)だと設定だけでどうにかなるのかな?

いろんなところでライブドアの技術力(?)が説明されてた。

オン・ザ・エッヂ(?)だった頃とか、ライブドアの中の技術の人たちの技術力が凄いってのは分かった。実際、大規模サイトの運営を安定して自社で賄っているってのは相当なもんだと思う。

でも、会社がどうかっていえば、やっぱ金融屋って印象しかない。まあ、実際大きくなるためには株がどうこうってやんなきゃ駄目なんだろうけど。Webアプリとかの利用料だけで何億だとか何兆だとか稼げるわけがない。大きい故の動きの鈍さとか考えて、有望な(新しいサービスを開発してる)ベンチャーを買収して抱え込んでるユーザにサービス提供するっていう方針とかだと納得できるし。

今後のライブドアがどうやってくかわからないけど、ただ買収して株価あげてって方向ならやっぱ技術力だとか"IT"とかって印象はなくなる。ユーザに新しい経験を提供する形で動いていけば、そこに詰まった技術力が表に出てその辺の印象が高まるんじゃないかな。

開発業務に携わる人間が考える事じゃないかもしれないけど、ライブドアは株とかやってる会社で楽天は通販会社ってイメージ。はてなは何か面白い事やってるところで、GoogleとかAppleはオシャレ。Microsoftは宇宙人の集まり。

さて、ライブドアの信用回復はどんなもんかな。目新しくて面白いサービス打ち上げられたらいいんだろうけど、大きいと動きが鈍かったりするだろうしな(スリムになって軽快になる?)。かといって、ここでまた買収とかしたらあれこれいわれそうだし(正当だとしても?)。

しかしまあ、会社経営ってのは難しいんだなぁ。

E4Xを知る

Mozilla E4X
Ecma WEB SITE

スライドを流し読みしただけで内容はさっぱり。JSのコードに直接XML書いてそれを解釈してくれるという事なのかな?ノード親子関係がそのままオブジェクトに反映される?

まだよくわからないんだけど、DOMだとかXPathだとかから解放されるって事なのかな?Firefox1.5では対応しているらしいので、Greasemonkeyとか書くときにいいのかも。

m4i::diary - E4X と はてなブックマーク件数取得API
最速インターフェース研究会 :: del.icio.usにはてなブックマーク件数をくっつけるGreasemonkeyスクリプト

この辺で使われていたらしい。

feedbuner.jpにしちゃった

ここのフィードを何も考えず.comから.jpにしてしまった。

.comのリダイレクトは元フィードに対してらしく、.jpに飛ばす事はできないっぽい。.jpでよく探せばあったかもしれないけど、まあ仕方ない。

機能的にはだいたい同じ感じ。

・.comのgeo対応は.jpではないっぽい(位置情報サービスは単純ローカライズが難しい?)
・.jpではdel.icio.usとかflickrとかのソーシャルデータをフィードにのせる事ができる(はてな無視?)
・APIは使えるらしい
・.jpのPRO版はもう少し先らしい(クローズドベータとしてテスト中?)

詳しくはfeedburner.jpで。多分、どこかで詳しいレビュー書いてくれてる気はする。

kill-summary.elがどうにも見当たらなくて、Wayback Machineを利用してみた。

結論から言えば、それらしいソースは入手できた。ただ、設定が悪いのかどうもyank内容が表示されない。仕方がないのでbrowse-kill-ring.elを利用する事に。

これまでも結構リンク切れしてるelispはあったし、Wayback Machineにはお世話になりそう。Firefox拡張にもWaybackとして用意されてた。

Firefoxで欲しい機能

他のブラウザは触ってないから分からないけど、Firefoxは開発補助ツールが豊富。

直接の原因かは分からないけど、FireBugを入れたらどうも不調になったので削除した。有効/無効のスイッチが見当たらなかったけど、本当はあるのかな?

FirefoxでもFlashみたいに利用者(目的)にあわせたパネルレイアウトとかを管理できないものかな。起動時にすべてを有効にする必要はなくて、開発目的の場合にだけ関連の拡張が有効になるようにしたい。

ブラウザを分ければいいのかと思ってMozillaを入れてみたけど、拡張関連がいまいち分からなかった。Firefox1.5用とかが対応してるのかもよく分からなかったし。もう1回くらい挑戦すべきかな。

拡張のインストール手順を考えると、動的に拡張を有効にする事は多分無理なんだろうと思う。2.0あたりでどうにかならないかなぁ。

久々にwikiを更新

ここ最近続けてきた環境整備を簡単にwikiにまとめてみた。

koshigoewiki:開発環境 [KoshigoeWiki]

気づいたら1ヶ月も更新してなかった。wikiは割と成果物ベースで運用してるからしょうがないんだけど、なんだかさぼってる気がしていや。OOPとかのエントリをwikiにコピーしたらいいのかな。デザパタも結局GUI関係のやつはページを作ってないし。

やんないとなぁ。

scuttle注意点

Scuttleをいじくって勉強しようみたいな事を書いておきながら、最近は環境整備とかEmacsばっかで全く触ってなかった。で、DarwinPortsから入れた環境がPHP5.1.2+MySQL5.0.15なので、問題おきそうだなと思いつつ動かしてみた。

ScuttleはPHPをHTML埋め込む形でテンプレートを実現しているっぽい。ここで問題になるのが<p><?= $var ?></p>の様な"<?php"のphpを省略する形で記述されている点。ドキュメントをちゃんと読んでないからいけないんだけど、short_open_tagがデフォルトではOffのためファイルがそのまま出力されてしまっていた。php.iniを編集してshort_open_tagをOnに設定して解決。

データベースも注意が必要。scuttleのユーザ名がDBとプログラム処理とで扱いが違っている。大文字と小文字が混ざった場合にこれが問題になる。例えば、ユーザ名をKoshigoeBushouとして登録すると、scUsersテーブルにそのまま登録される。で、ログイン後のユーザ名を見るとすべて小文字になっている。これはMySQLのバージョンによっては問題にならないと思う。MySQL5ではエンコーディングが問題になるみたいで、DBを作る際に照会順をutf8_binにしてしまった。そのため、BINARYとして扱われて小文字のユーザ名がDBでの大小文字が混ざったユーザ名とマッチしなくなっている。utf8_binがまずいんだろうけど、UTF-8の設定がよくわからないし、とりあえずは小文字のユーザ名で登録し直した。

動作は確認できたので、また色々見ていこうかな、と。

naoyaのはてなダイアリー - Subversion とバッドノウハウ
そういえばvc-svn.elは設定しただけでEmacsからのaddとかcommitとかはしてなかった。全部svnXのGUIから操作。で、気になったので試してみたら見事に文字化けメッセージでコミットできなかった。

MacOSXのLaTeXに関するBBS 【2003/5/9〜】
どうやら、通常アプリに環境変数を渡す場合は~/.MacOSX/environment.plistを利用するらしい。標準では.MacOSXはなかったのでディレクトリを作って、Property List Editorでファイルを作成。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>LANG</key>
	<string>ja_JP.eucJP</string>
	<key>LC_TIME</key>
	<string>C</string>
</dict>
</plist>

言語を日本語のEUC-JPとしてタイムスタンプは英語のまま。で、この環境設定はFinderの再起動が必要らしいので、とりあえず再起動(ログアウトとかでもいいはず)。無事コミットできて、svnXでも特に文字化けせずに扱えていた。


==追記==
environment.plistはすべてのアプリケーションに適用されてしまうので、注意しないと予期しない影響があるかもしれない。LC_TIMEを外したらWritelyのSave時に表示されるタイムスタンプが化けた。

Apache2+mod_pythonで動かしたかったんだけど、"library routine called out of sequence"っていうエラーになってどうにも訳が分からない。DarwinPortsでのインストール順とかが関係あるのかな?

一応、tracdでスタンドアロンサーバとして起動できる。で、Tracの環境構築時に表示されるメッセージに書いてあるまま動かすとターミナルにログが表示され続ける。とりあえず、これをどうにかすれば使えるかなと思うので--helpでちょっと見てみた。

... Tracのプロジェクト用ディレクトリ作成
% mkdir /opt/local/var/trac
... Tracのプロジェクト(junk)を構築
% trac-admin /opt/local/var/trac/junk
... プロジェクト情報を適当に設定
... 認証情報を設定するために適当なディレクトリを作ってhtdigestでファイル作成
% cd /opt/local/var/trac/junk
% mkdir auth
% cd auth
% htdigest -c KoshigoeBushou.htdigest "pmg4.local" KoshigoeBushou
... デーモン起動
% tracd --port 8000 --daemonize¥
 --auth junk,/opt/local/var/trac/junk/auth/KoshigoeBushou.htdigest,pmg4.local¥
 /opt/local/var/trac/junk

とりあえず、特定のプロジェクトを適当な認証情報付きでデーモンとして起動。個人環境で運用するのでこれで問題ないと思う。Apacheの機能が使えないデメリットがあるらしいけど、Apache特有のいいところは知識不足で思い当たらない。HTTPSは必要ないし、とりあえずTracの標準機能が使えればそれでいい。拡張だかプラグインだか入れるときに困るかもしれないけど、そうなったらまた改めて挑戦してみよう。

手動で立ち上げるのは面倒なので、PC起動時に自動起動するように設定してみた。OSXの場合xinetdだと思ってたら、Tiger(10.4)からlaunchdとかいうのにかわっていたらしい。で、launchdのGUI設定ツールが紹介されてたので使ってみる。
MAC REVIEW: フリーソフト: launchdをGUIでコントロール
"Assistant"という機能を使うとウィザード形式で設定を作る事ができるので便利。自分で作ろうと挑戦してみたけど、どうにもならなかったのでAssistant任せ。
1)起動のタイミングとかジョブの種類を選ぶ
2)ジョブのラベルを入力
3)ジョブを入力(引数付きのデーモン起動コマンド(絶対パス)を入力すればOK)

そういえば、最近かは分からないけどtracがDarwinPortsからインストールできるようになっていた。日本語化は日本語パッケージからtemplatesとwiki-defaultを/opt/local/share/tracにコピーすればOK。これでtrac-adminで作るプロジェクトが日本語になる。
…、インストールに失敗しただけでtrac自体はあったかも。

Emacsが面白い

設定だとか拡張だとかを色々見て回ってる段階だけど、これは面白い。

・クリップボード管理が分かりやすくて使いやすい
・タブ機能っぽいのが実現できる
・ディレクトリ名やファイル名をまとめて編集できる
・自動保存ができる
・ChangeLogに対応していて、CVSの情報と連携できる
・バッファ(編集ページ)の切り替えが簡単(C-,とC-.:設定次第)
・wikiやBlogと連携できる
・*scratch*(メモ)を消さないように設定できる
・モードによっては関数や変数の情報を見る事ができる
・ソースの関数や変数の定義元をたどる事ができる(GNU GLOBALと連携)
・SVNとかCVS(?)と連携できる

まだまだ使い慣れないし、ここで書いた事もよくわかってなかったりする。ただ、作業効率を上げるためにEmacsがいいってのは何となく理解できる気がしてきた。Emacsに限った事じゃないかもしれないけど、作業効率をあげるためにいろいろなノウハウが長い期間でたまってるエディタだから、Emacsに慣れていろいろな機能を探し歩いていると自然と効率的な作業ができるようになる気がする。

ここからがキツイのかもしれないけど、頑張ってEmacsを覚えたい。

jigdoギブアップ

DebianのISOを落とそうとして、Jigdoがいいらしいので挑戦してたけどギブアップ。

OSX用のjigdoが用意されていて、それをインストールしたけどどうもlibint.2.dylibがないとかでjigdo-fileが実行できない。AquaJigdoも.appじゃないよく分からないファイルが含まれてるだけだし。Debianのapt-getでTracが簡単に入れられるらしいから、Debianがいいかなと思ったけどいいや。

OSX用のエミュレータThe EMUでcoLinuxっぽい事ができるか気になってるんだけど、とりあえずFedoraCore4のDVDイメージ落として試してみよう。

FirefoxのGUIでAmazon

M A B - Mozilla Amazon Browser

面白い。FlockもFirefox(Mozilla)の拡張で対応できる範囲なんだなぁと思った次第。結局、APIに対応したUIを作れれば問題ない訳だ。

reverse-i-searchの次候補

bashとかzshで便利な"reverse-i-search"。

プロンプトからC-rでコマンドヒストリをインクリメンタルサーチしてくれる。ただ、「C-rでできるよ」って部分しか聞いてなくて、候補を選んでいくにはどうすればいいかが分からなかった。で、今日google先生に聞いてみたら答えが見つかった。

C-rで起動させてキータイプでインクリメンタルサーチ。適当なところで次候補に移動したくなったら、もう1度C-r。後は順次C-rで次候補に移動できる。

やっぱ気になったときに探しておかないとだめだ。

Emacsで頑張ろうと悪戦苦闘のこのごろ。

拡張どころかキーバインドで結構手一杯。で、早くなれるためにもEmacsだけじゃなくて、よく使うアプリでも同じキーバインドにしていけばいい気がする。OS自体のキーバインドをいじるのもいいんだけど、そこまではまだ判断できない。とか言いつつ明日あたりにEmacs風キーバインドにしてる気がする。

で、まずFirefoxをUnix風に操作してみようという事で、mozdev.org - mozless: indexを入れてみた。最近はマウスジェスチャに慣れてきて、IEでもやろうとしたり。でもBloglinesではキーボードから手を離さなかったり。

とりあえず、Firefoxで練習。ただ、上下左右とスクロール程度だとあまり意味はないかも。やっぱOSレベルで設定しないとだめかなぁ。コマンドとかもまだよくわからないし。検索・置換が使いこなせてないってのは致命的だよなぁ。

IT企業は終わりらしい

テレビで個人投資家のおじいちゃんが「もう終わりでしょう」みたいな事をいっていた。

…、?
IT企業=買収で成長って認識?ベンチャーがどうとかっていうお金の流れはよく分からないけど、Googleとかみたいに技術ベースで買収もっていう所と、どこかみたいに金融とかをベースに買収からっていう所とは別物だと思うんだけど。

個人的に、Web技術はまだまだこれからだと思う。単純にインターネットをブラウザから見るとかのレベルだと結構ネタ切れなのかもしれないけど、地震予測+ネットワーク+IT家電みたいな安全な家っていうのもある訳だし。ソーシャル系の流行がどうなるか微妙だけど、口コミ(CGM?)情報が大事だってのは企業も認識してると思う。ある分野でのコミュニティとか著名なブロガーとかによる伝搬だとか。

今働いてるところでRSS関係のサービス開発に携わってる身としては、Web全般が否定されかかってる感が嫌。なんというか、未だにIT企業ってのが何なのかよくわからない。自分が身を置いているところはIT企業なのかな?IT企業ってのは買収できるだけの体力があるとこがそうなのかな?

まあ、株がどうこうってのは関係ないからいいんだけど。とにかく必要とされるサービスを開発する事に集中するってのはかわらないし。というか、株だ何だって事なんか構ってられない。

実際業界みたいなとこに影響とかってあるのかな?話題的に芸能人カップルの破局報道とかと同じレベル?投資家以外に対してどんな影響があるんだろう?

###
そういえば小嶋さんの証人喚問(?) があった日だ。31回くらい証言拒否したとか。まあ政治家がどうこうとか答えづらいか。っていうかそんな事聞いてどうすんのさ?趣旨がよくわからない…。ヒューザーの偽装関連の責任がどうなのかって事に必要あったのかなぁ?

C/S構成をとる必要がないバージョン管理システムということらしい。

ZenKai
今日の井原 - Darcs: peer-to-peerなソースコードマネジメントシステム

C/SでなくP2Pらしい。『作業コピー単位でリポジトリ管理ができる』ってのがよくわからなかったんだけど、要は1つの作業PC内に複数のコピーを作ってそのコピーそれぞれでバージョン管理ができると。2つの目的を同時に進める必要があったりしたらいい感じ。複数の作業PC(チームとか)にそれぞれ作業コピーがある場合は、それぞれでリポジトリ管理できるしそのリポジトリ同士をマージすることも簡単らしい、と。

バージョン管理システムとしての機能自体はCVSとかSVNと大差ないらしい。基本的にCVSとSVNの違いが、ディレクトリとかファイルの名前(位置)をバージョン情報とかを保持したまま変更できるってことくらいしか理解できてない。で、機能的に差がないDarcsは何がいいんだろうってことだけど、中央サーバがいらないって事位なのかな。中央サーバがある事の不都合って何だろう。管理が面倒ってこと?リソース自体?

自宅PCのOSXにSVNを入れている。SvnXっていうGUIクライアントも入れて、Tracも動かせる状態にしている。この状況で、Darcsっていうぱっと見素敵なツールを紹介されても扱いに困る。まあ、これ書いてる最中に、GHC入れて次はDarcsかっていう状況なんだけど。

Tracみたいな管理プラットフォーム(?)があればいいんだけど、その辺は個別のツールを使うしかないのかな。Emacsは流石で色々(vc-darcs.elだっけ?)出回ってるらしい。

まあ、とりあえずTrac使うためと会社の次期SCM対策にSVNかなぁ。

昔どこかで引っかかった記憶がある気がするけど、まったく覚えてないし本当に知ってたかも分からない。

MySQLのVARCHARとかCHARとかTEXTの文字列をWHERE句とかで"="演算した場合、アルファベットの大文字小文字は区別されない。つまり、AbC=aBcの関係が成立する。

で、これを区別したい場合はBINARYとかVARBINARYとかBLOBとかのバイナリ型を使わないといけないらしい。

心機一転Emacs生活

OSを入れ直したので、この機会に追加エディタはEmacsだけにしてみる。Eclipseとかはそのうち入れるかもだけど…。

今のところ入れてる拡張は以下。
・Elscreen
・auto-save-buffers
・yank-pop-summary
・gtags

gtagsはMeadowかCygwinかどっちが悪いのか分からないけど、なんだかうまく動かない。コマンドラインからのgtagsとかhtagsは動くんだけど、多分パスとかが問題なんだと思う。OSXでは問題なく動いてる。

auto-save-buffersはプログラムとかの正しさが検証できるファイルで、かつSCMで管理してたりする場合じゃないと結構問題があるかも。Emacsにまだ慣れてなくて結構キーを間違える。で、その結果ファイルを修正してたりする。まあ、この機会にSVNで全部のファイルを管理していけばいいのかも。

今のところ、自宅では割とうまいことEmacs生活が送れてる。

Tracを入れてみた

IssueTracker+Wiki+SVNなツールTracを入れてみた。

本家はEdgewall Software: Tracで、日本語ローカライズされたパッケージはインタアクト株式会社--業務内容--公開資料からダウンロード可能。どちらもインストール方法やプロジェクトの作成は同様。

TracはPythonで作られているので、Python周りの環境を整える必要がある。基本的にportから入れられたので、問題なし。必要なライブラリなどはパッケージに含まれるINSTALLを参照。

最初、projectenvのパスをどこにすべきかよくわからなくて、www用のデータディレクトリで全部作業していた。で、なんだかいろいろとエラーメッセージが出てきたので、setup.pyで--prefixオプションを利用して/opt/local以下にコマンド関係のツール群をインストールしてみた。違うエラーメッセージが出てきたけど、SVNリポジトリを作ってなかったので、それを作って解決。

環境構築の際に表示されるメッセージ中にある手順でスタンドアロンサーバとして起動して、アクセスして動作を確認。認証(ログイン)には--authオプションが必要みたいで白画面表示になった。とりあえず日本語版の動作(表示)に関しては確認だけできたので、これでOK。

OSの調子がおかしいので再インストールすることに。

どうもアプリケーションをインストールする際に出てくる認証ダイアログでインストーラがフリーズしてしまう。Panther専用アプリだからかもとか思ってスルーしてたんだけど、10.4.4のアップデータでも固まってしまうので、思い切ってOS自体をインストールし直してみた。10.4.4にアップデートできたので、色々いじったせいでどこかをいためてたっぽい。

さて、開発環境を構築し直すことになった訳だけど、MAMPはとりあえずやめる。Eclipseとの連動を考えるとXAMPがいいかもしれないけど、OSX版の正式リリースはまだだった気がするので、DarwinPortsを利用してみることに。

DarwinPortsはダウンロードしてインストーラを立ち上げれば自動的にインストールされるので問題なし。"/opt"にDarwinPorts経由でインストールしたパッケージは配置される。なので、シェルのパスを追加して対応。

とりあえず構築した環境はPHP5.1.2+Apache2.2.0+MySQL5.0.15+PostgreSQL8.1.2。PHP5+Apache2が動くことまで確認。DBとか日本語の扱い、メール周りとかはまだ未確認。とりあえず開発環境用のWebアプリとか入れていく中で確認していく予定。

# port php5 +apache2 +mysql5 +postgresql
... ファイルが存在する的なエラーメッセージが出てPHP5をactiveにできなかったので、対象のファイルをリネームしてパス

... Apache2を起動項目に追加?→インストール中に表示されるメッセージにあるコマンドが以下
# launchctl load -w /Library/LaunchDaemons/org.darwinports.apache2.plist

... Apache2の起動や停止などはlaunchctlコマンドから(job labelは"/opt/etc/LaunchDaemons"参照)
# launchctl stop org.darwinports.apache2
# launchctl start org.darwinports.apache2 

ろくにマニュアルも読まずに勘で進めてきたので、間違いの可能性は大きい。最初にパッケージをそれぞれ単体でインストールしたために、libphp5.soが見当たらなかった。で、"port info"からVariantsとかいう存在を知って、+/-でオプションを指定するっぽい感じだったので関連パッケージをとりあえずあるだけ引っ張ってみた。libphp5.soが見つかって、phpinfoからPHP5が動いていることも確認できたけど、daemon関係でMySQLとPostgreSQLが微妙かもしれなかったり。とりあえず、まずは様子見。

デジベリー、Macromedia Dreamweaverと連動するRSS自動生成ソフトを発売 - CNET Japan

Web制作のスタンダード"Dreamweaver"と連動する形でフィード生成が行える様になるらしい。19,800円っていう価格と、ライセンスがどうなのかってところで微妙な感じはする。ASPサービスを利用すれば、フィード生成から効果測定まで出来て、フィード管理ツールもついてくる。フィードを手元に置きたいとか、フィードの効果測定に対応したログ解析ソフトとかが登場した場合は分からないけどね。

何にしても、フィード周りで動きが活発になってくれるのは喜ばしい。

.jpのオープンを待ち続けている中で、以前のエントリ(feedburner.jpは年明けらしい)にローカライズ担当者の方からコメントを頂いた。

こんにちは。 FeedBurner.jpローカライズ担当です。特に「GMOに有益なユーザだけが使える期間」というのは設けず、初めから皆様に使って頂ける方向になります。広告配信機能につきましては、一部のコアブロガーの方々からスタートとなる予定ですが、それ以外の機能については、スタート時より全ての方が利用できるようになります。

失礼な事を書いていたので、結構ビビり気味。ご丁寧にコメントしていただいて申し訳ないです。とりあえず、広告配信以外は普通に使えるらしい。広告は今のところ入れるつもりも無いし、入れたところでどうもならないから問題無し。実際に見込みのあるユーザに使ってもらって色々見たいんでしょう。必要とする人にだけ機能を提供するってのは間違ってないと思う。まあ、少ないながらも使いたいとか、.comとの関わりとかでどうなるか分からないけど、とりあえずはひと安心かな。

んー、結局いつオープンなんだろう。本とかの発売日と違ってこの手のサービスって結構アバウト。まあ、.comからの移行が出来ないようなら乗り換えないけどね。304とかに対応するのかな?レポートデータの引き継ぎとかは要らないけど。.comと.jpでしばらく2重アカウントになったりするのかも。

netvibes順調に発展中

ブラウザのホームにしてるnetvibesが順調に発展してくれている。

GoogleもModuleが沢山集まって来てて機能的にはGoogleの方が豊富なんだけど、見た目とスペースを考えると、まだ乗り換えられない。

netvibesにはいつの間にかToDo Listも追加されていて、元々あったモジュールもちょこちょこ修正されたた気がする。フィードの未読管理とかも出来るようになったかなる感じで、いい感じ。

第三者ががつがつ追加してくれる形もいいけど、この規模ならアイデアさえ集まれば統一思想(設計)でいい感じに実装できる気がする。Googleはどうしてもデザイン的にバラバラだし、1つのモジュールで余計な空白が出来たりするからどうにもやりづらい。

このまま順調に発展していってもらいたい。

流れに乗っかってみてテクノラティタグをつけてみる。

どうやってタグをつけるか悩んだけど、とりあえずエントリのカテゴリをそのまま使ってみる。フィールドの追加とかMT拡張で対応(別途タグ付け)できそうだけど、2度手間するほどでも無い気がしたので、テンプレに埋め込み。

<span class="post-footers">テクノラティタグ:</span>
<MTEntryCategories glue=" | ">
<script language="javascript" type="text/javascript">
document.write('<a href="http://technorati.jp/tag/'+escape('<$MTCategoryLabel$>')+'" rel="tag"><$MTCategoryLabel$></a>');
</script>
</MTEntryCategories>

エスケープをどうするか迷って結局JSのescape使ったんだけど、カテゴリに日本語使ってなかった事忘れてた。まあ、出来てるっぽいからとりあえずこれで良し。

SPARQLってやつ

ちょっとしたメモ - SPARQL: セマンティック・ウェブとWeb 2.0が出会うところ

SPARQLってのを使うと、APIとかのインタフェースが統一というか標準化されて簡単にremixとかが出来るようになるとかならないとか。SQLがRDBMSごとに違ったり、XMLがサービスごとにバラバラだったりする現状を打開してくれるっぽい。

外に出てる部分をRDFで表現したらいいってこと?RESTだ何だでAtomとかのXMLを出している場合、CRUDに操作が限定されたりするけど、そこをRDFの表現力でなんとかできるってことなのかな。AtomPPでAPI作る場合、細かいAPIが実装しづらいみたいな話があったけど、RESTじゃなくてこっちで考えたら解決されるのかな。

API周りが標準化されるのは嬉しいけど、フィードのフォーマットにも影響あったりするのかな。「データ周りのRDFインタフェースをエクスポート」ってのはデータ自体はRDFでなくて良くて、操作系がRDFであればいいってこと?でもなんだかんだでRDF(RSS1.0)で出しておいた方が面倒が無かったりしそう。サマリデータを表現するフォーマットはRSS2.0で十分だと思ってたけど、微妙なのかな。個人的には簡素な「Simple is the best!」って言い切る感じが好きなんだけど、玄人好みな感じのあるRDFがキーなのかな。

SPARQLとかRDFはいまいち良く分からないから今後追いかけるとして、まあW3Cの勧告待ちでいいかな、と。むしろ、実例が出てくれないと理解出来無いっぽい。最新追いかけるのも大事だけど、とにかくスキル身につけて技術者っぽくならないといけない。

# 勉強項目にRDF追加。…、追いつかねぇ。

大失敗 - VirtualPC

自宅macでwin環境をいじりたくなったので、VirtualPCを購入。

VirtualPC ver.7は10.2.8か10.3.x"だけ"にインストール可能らしい。ちょこちょことインストーラが認証ダイアログでフリーズしてたけど、なるほどOSバージョンでの問題だったのか。

デスクトップマシンを10.3に再インストールする事なんか出来る訳が無い。widgetだとか10.4からの機能をありがたく利用している身としては、たかがWinのためにそんな面倒は御免被る。

ちょうどいい具合にほとんど使っていないPBG4があったので、仕方なくそれを潰して10.3をインストール。問題なくVirtualPCをインストールできて、WinXPも入れられた。

…、遅い。VMWareでLinuxのXを動かす程度は期待してたんだけど、これはハードの問題かな。まあ、会社の環境はPBG4の倍くらいはあるし、VirtualPC自体の問題じゃあないんだと思う。でも、そうすると結局デスクトップに入れないと駄目っぽい。

はぁ、Winマシン購入かなぁ。10.3.x"まで"って明記しておいてよ…MSさんよぉ。

# あ、HDD追加してマルチブート?…、macで出来るんだっけ?OS9とは出来たから出来るかな…?

scuttleを題材とした勉強を始める前に、いくつか環境整備。

まずはBTS。利用するのは、PHPで作られたMantis。インストール後に日本語マニュアルを見つけたけど、とりあえずそれっぽいファイルをいじってDB構築すれば問題無し。

日本語にもデフォルトで対応していて、config_inc.php内の"$g_default_language"を"japanese_*"にすれば日本語表示される。内部処理がどうなるかは確認してないけど、とりあえず今後確認予定。EUC-JP、Shift_JIS、UTF-8それぞれに対応している。

RSS出力も対応しているらしい。まだレポートがたまっていないので、どこまで出来るかは不明。

個人環境でのSBS利用はいまいちなにをポストしようか分からないけど、BTSとかの外に出せない内部情報をクリッピングしたい場合にいいかなと思っている。なので、開発環境だけどそのままトライアル環境にもなって一石二鳥かな、と。

scuttle拡張ネタは引き続き検討。

PHP2XMIで生成したPHPクラスのXMIからUMLクラス図を作成するメモ。会社のミーティング資料にクラス図を準備するのが目的。

MagicDraw UMLを利用。当初はUmbrelloを使おうと格闘してたけど、X入れてなかったりしてそこからの開始でわけ分からなくなったのでMagicDrawってのをGoogle経由で知って挑戦。

日本語インストールしたらメニューが文字化けしてどうしようもなかったので、とりあえず英語インストールで解決。[File]→[Open Project]からXMIファイルを開いて、[Analize]でClass Diagramなんたらを選んで次々と。とりあえずクラス図が手に入った。

XMIが悪かったのかクラス図がクラス名だけで、メンバ変数/関数が表示されなかった。XMIを確認してないんだけど、PHP2XMIのオプションが悪かったのかな?no-private(?)とか指定しなかったけど…。とりあえず、継承だけは拾えてたので目的は果たせたと思う。

MagicDrawは有料で、ユーザ登録してdemo版が使えるけど保存が20クラスまでとかなんとか。とりあえず、これっきりっぽいけど印刷目的なら利用期限までは使えるかな。

抱負『ナイスバディ』

2006年の抱負は『ナイスバディ』。

ボクサー体型目指して、出来るだけ健康的な生活送りたいな、と。社会人生活も1年超えたし、学生気分で不健康上等だった生活を反省。早めに寝て食生活に気を使う。

お題scuttle拡張

OOPだとかデザパタだとかの次のステップとして、Scuttleを題材にしてみる。

ソースはまだ見てないから適当か分からないけど、興味的にもちょうどいいかな、と。これまでつらつら書いて来た不満だとかを検討から実装までしてみたり、API設計してみたりと。タグ付けのルールとかインタフェースとかがきつそうだけど、まとまらなければそこはスルー。

そういえば、はてなブックマークがやたら責められてるけど、del.icio.usとか他のSBSは問題無しなのかな。ユーザ数故の不満って事かな?色々突っ込まれるってのはある意味喜ばしい事だよね。それだけネタがたまるってことだし。他のサービスでもはてなアイデアとか見てたりするのかな?

SBSだけってのも微妙かも。理想はグループウェア的な感じにフィードリーダーとかをまとめて実装出来れば楽しそう。オープンソースなグループウェア探して拡張してみるのもいいかも。ナレッジツールは結構興味がある分野だから要検討。

なんにせよ、まずは学習教材としてscuttle拡張に挑戦。

プロフィール

このアーカイブについて

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

前のアーカイブは2005年12月です。

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

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