逆引きrhaco(?)1: ファイルのinclude

例えば/path/To/rhaco/io/FileUtil.phpを読み込む場合

Rhaco::import("io.FileUtil");

例えば/path/To/somewhereがinclude pathに入っていて、
/path/To/somewhere/dir1/dir2/file1.phpを読み込む場合

Rhaco::import("dir1.dir2.file1");

※file1.class.phpとかは無理

[追記]
file1.class.phpとかを読み込みたい場合は

Rhaco::import("/path/To/somewhere/dir1/dir2/file1.class.php");

とか

Rhaco::import("C:\path\To\somewhere\dir1\dir2\file1.class.php");

のようにフルパス指定すれば読み込めます。

Conveyorで使うworkerの説明(2)

Conveyorで使うworkerの説明(1)の続きです。今回はFilter系を説明します。

FilterStripRssAd

RSSフィードに付いている広告を削除するためのworkerです。現在はpheedoとrssadに対応しています。

設定:無し。
yamlファイルでの設定:

condition: 広告部の正規表現(正規表現のみとプロパティ名=正規表現の2通りの指定方法があります。)
strip: 該当フィードを削除するか(1[削除] or 0[削除しない])

FilterTruePermalink

リダイレクトリンクをパーマリンクに置き換えるworkerです。pheedoとfeedburnerに対応しています。
設定:無し
yamlファイルでの設定:

FilterRegex

正規表現による検索、置換を行うworkerです。バージョンアップ予定です。
設定:
動作モードを置換、検索から選択します。(これが無いバージョンでは置換文字列が空欄なら検索が行われます)
検索するプロパティ(title,link,description,pubDate,category,guid,comments)、
検索条件(正規表現で)
指定した検索ワードでマッチした種類の数・・・は間違いで、置換文字列
をテキストボックス内に入力します。

FilterSort

並び替えを行うworkerです。表示を新着順にしたい場合などに良く使います。
設定:
ソートするプロパティ名(タイトル、著者、カテゴリ、詳細、コメント、日時)
並び順(昇順か降順)
を選択します。

FilterUnique

重複したフィードアイテムを削除するworkerです。
設定:
重複チェックをするプロパティ名(タイトル、内容、リンク、全て)を選択します。複数のフィードを読み込んだ時などに使えると思います。

HyperEstraier1.3.6でsegfault

Ubuntu6.10に入ってるHyperEstraierが1.3.6だったので、そのままインストールして色々と試してみたのですが、どうもphraseを指定しないでattributeだけで検索しようとするといきなりsegmentation faultになって落ちてしまいました。

だめだこりゃ。バージョンアップしたら直るかなぁ?

Conveyorで使うworkerの説明(1)

Conveyorで使うworkerはConveyorの管理画面(index.php)で簡単な説明を見ることが出来るんですが、Subversionのtrunkにはいっているworkerの中で個人的に良く使うworkerについてもう少し詳しく書いてみます(詳しくなかったりして)。書く予定は以下のとおり。※適宜修正が入る予定です。

  • Subscription系
    • FeedIn
    • OPMLIn
    • SubscriptionOPMLFeed
    • PlanetSubscriptionFeed
  • Filter系
    • FilterStripRssAd
    • FilterTruePermalink
    • FilterRegex
    • FilterSort
    • FilterUnique
  • Publish系
    • HtmlOut
    • PlanetBundle

FeedIn

以前の日記でも使ったRSSFeedやAtomFeedを読み込むworkerです。Rss0.9,1.0,2.0 Atom1.0, OPMLのデータを読み込みます。ConveyorはRSS2.0準拠のデータを内部で使用するので、読み込まれないデータも多々あります。また302などでリダイレクトしているフィードは読み込まれません。

設定:feedのURLをテキストエリア内に書き込みます。
1feed1行で記述します。

OPMLIn

sageなどをエクスポートすると出力されるOPMLファイルを読み込むworkerです。OPMLの形式によっては読み込まれないこともあります。現在のバージョンはsageからエクスポートした形式をそのまま扱えますが、次のバージョンではタグを削除する必要があります。

設定:OPMLファイルのパス(Conveyorのルートからのパスになります)。現在複数のOPMLファイルを読み込むことは出来ません。

SubscriptionOPMLFeed

OPMLファイル内のxmlUrlで指定されたRSSフィードを読み込むworkerです。OPMLInと同じくOPMLの形式によっては読み込まれないこともあります。現在のバージョンはsageからエクスポートした形式をそのまま扱えます。

設定:OPMLファイルのパス(Conveyorのルートからのパスになります)。現在複数のOPMLファイルを読み込むことは出来ません。

PlanetSubscriptionFeed

基本的にFeedInと同じ動作をしますが、若干の違いがあります。FeedInでは指定したfeedのURL情報,feedのタイトルの情報が無くなりますが、PlanetSubscriptionFeedでは読み込んだItem内のSourceに保存しています。PlanetPublishHtmlで購読しているフィードのリストを表示できるようにするためです。

設定:feedのURLをテキストエリア内に書き込みます。
1feed1行で記述します。

てかFeedInを修正すれば済んだ話のような・・・いやいやいや。

Ext-2.0 Preview

Ext-2.0のプレビューが公開されました。アコーデオンがデフォルトになってるし、カラムのグルーピングとかツリー表示にカラムを付けたりとか、フォームの要素の幅を自動で変えたりどんどんデスクトップでの表示形式に近づきつつあります。
 ただ、個人的にはHTMLで記述した内容(例えばフォーム)をExtで使えるようにする部分をもっと充実させて欲しいんだけどなーと思っています。例えば今はsubmit要素をそのままExtのボタンに変換することが出来ないんですよねー(方法があれば教えて下さい)。ともかく期待です。

PDTが今更ながら便利な件

ずっと開発にはPHPEclipseを使ってた訳ですが、id:rhacoさんにPDTを勧められて試してみると、これが便利!
とにかくRhaco::import("hoge")をアシストしてくれるだけで移動する気になりました。PHPEclipseは止まっちゃってるからますます移動する価値あると思います。とりあえずEclipse3.2ベースのをダウンロードしたけど、3.3ベースのPDTが出るんだ。もうそっちを入れておこうかな?

ちょっと追加
入れてみると移行でちょっとはまるところがありました。以下箇条書きで。

  • 今までのworkbenchを(うちはEclipse3.1でした)そのまま使用するとメニューも変になり(インストールしてないはずのSubclipseボタンとかが出てきました(3.1ではインストールしてました)。しかも当然使えません。
  • しかもプロジェクトの一番したに出るInclude Pathが表示されず、Include Pathの設定が出来ません。これだとコードアシストによるクラスのメソッド表示などが機能しないのでとても困ります。
  • 結局各プロジェクトにある.setting, .projectを削除し、.metadataも削除しました。
  • そうするとPDTを開いた時にプロジェクトが全く表示されないので、再度プロジェクトを作成しました。
  • それからSubclipseなど前のバージョンで入れていたプラグインおよびその設定が当然ありませんので、インストールし、設定する必要があります。
  • APTANAは3.2用のアップデートURLしかありませんでしたが、それで一応インストールできました(動作未確認)

VMWare、日本語キーボードを使ってアンダーバーを入力したい!

結構アンダーバーを使うことが多くて、ずっと悩んでたんですが、ちゃんと紹介されてました。結構前に書かれてたんだorz。

http://tdiary.flowernet.gr.jp/jado/?date=20051020#p03

ダメ元で /etc/vmware/config にこう書いてみたら、アッサリ認識。俺の3年間は何だったんだー!! ヽ(`Д´)ノ

xkeymap.useKeycodeMapIfXFree86 = true
xkeymap.keycode.211 = 0x073
xkeymap.keycode.208 = 0x070

3年じゃないですが、同じことを感じましたとさ。