Jul192008

複雑なクライアントソフトウェアが好きだ。 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加

曇り ひろまさ@ 7 月 19th, 2008 投稿時の月齢:15.8  月名:満月  潮汐:大潮

ぼくは、GMail とか Calendar とかを、なんとかクライアントアプリから使おうとするので、よく「なんで Web で使わないんですか?」と聞かれます。 まぁそれは、データが自分の"おなか"にないと好きな処理できない、というのが大きな理由です(メールボックスとかgrep したりしたいわけじゃないですか。)

・・・でも実はもう一つわけがあって、、好きなんですよ、複雑なソフトが。。。 :-)

25年以上前からコンピュータにさわっているので、あたりまえっちゃーあたりまえですが、ここまでくるとシンプル・単純なソフトとか面白くないですよね。 超複雑な操作を、その場の判断でどんどんすすめて、ばんばん生産していくことに結構な快感を覚えます。 なので機能てんこ盛りのクライアントソフトが結構好きです。

じゃー身近にある、機能が多いソフトといえば、・・・ソフトウェア開発の統合環境。

特に Eclipse なんかはプラグインで無制限に機能が増やせるので、遊ぶにはもってこいです。(笑) プラグインの検証のために、ソフトかくこともあるくらいです。。 もはや手段と目的の逆転。

eclipse33x

すごいメニューの数とか、ペインのかずとかみるとうれしくなっちゃったりします。 これは Web アプリでは味わえない醍醐味です。

Windows では Microsoft の Visual Stdio も有名です。 最近つかうようになったので、ちょっと紹介。

vs

Eclipse、Visual Stdio (Express版) ともに無償で使うことができます。 こんなあそべるものが、タダで使えるなんていい時代になったもんです。 :-)

ちなみに、我が家の Visual Stdio の プロフェッショナル版(有料)は、6.0 でとまっております。。

時は戻り 15年以上前にも統合環境というのは存在していました。 いくつかありましたが、ぼくは Turbo C 使っていました。

turboc

なつかしいっすね。。 当時は FD起動でがっこんがっこんすげー遅くて、はっきりいって VZ とか MIFESとかテキストエディタでソースかいて、マクロで make したほうがずっと速かったりしたんですが、なんだかこのころから統合環境っていうものが好きで無理に使っていた覚えがあります。(笑)

他にも廉価版の Quick C とか、高級版の Borland C とか、MS-DOS、Borland 全盛時代のコンパイラを覚えてらっしゃる方もいるかもしれません。

機能てんこ盛りという意味では、DTM 用のシーケンサーなんかもそれにあたるかもしれません。

cubase

これもかっこいいですね! 分かる人には便利であろう機能がたくさんついているというところは、統合環境と似ています。 ぼくは全然できませんが、たぶん画像処理系のソフトとかもこういったたぐいにはいることでしょう。

アプリが Web になって、1アプリケーションにおける実装機能数や操作系はがたおちになっていると思いますが、ネットワークとの親和性がかわれて機能や操作的な部分を不意にしてでも進化を続けています。 でもたぶん、これからは失われた部分を取り戻す時間がやってくると思います。

仕事でもちょっとずつ、RIA とかその手の技術をきくようになってきたので、おそらくはインターネットにもその技術が適応されていくことになるのでしょう。

twitter とかも専用クライアントを使うわけだし、2ちゃんねるビュアーなんか元祖 RIA といえる存在でもあります。 遊びでも、みんな肌では本気で何かしようとすると Web インターフェースではおいつかないことは分かっているのです。

だいたい、文書フォーマットである HTML を流用して"画面"をかこーって根性がすきじゃないんだな。 HTML 5.0 とかなんぞそれって感じがしますが・・・。 目的外使用は 個人的には hackish で面白いとは思うけど、好きでやってる人以外には、いやがられる技術となるのです。

と、「原理主義」ってそういうことなんだな、と思ったところでおしまい。 :-)

Jul132008

XBMC for Linux 日本語化 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加

曇時々晴 ひろまさ@ 7 月 13th, 2008 投稿時の月齢:10.2  月名:十日余の月  潮汐:若潮

XBOX ユーザにはおなじみの最強メディアプレイヤー XBMC ですが、最近は Linux や Mac、Windows への移植が活発のようです。 Windows、Mac はみたことがありませんが、Linux 版の初期インストールでは日本語がでませんので、日本語化の方法を書いてみたいと思います。 といっても、XBOX 版と同じ方法です。 :-)

xbmc01

とりあえず、XBOX 版はこんなかんじの画面です。 いいっしょ。 :-)

hiromasa.another :o) » Blog Archive » XBMC を使ってリビングでマルチメディア再生

正直、これをみてしまうと他の STB とか 360/PS3 のメディア再生機能なんか、ほんと使って作っているのか?ってかんぐるくらい貧弱だと思ってしまいます。。

をかもとさんもサイトで紹介されています。

XBMC for Ubuntu : 独断と偏見の何でもレビュー

ただし、日本語ファイル名は表示されない。暇なときに日本語パッチとか出てないか、探してみよう。

てなわけで、Linux 版の日本語化の方法です。 XBMC は FreeType ライブラリで自前でフォントをレンダリングするので、フォントを内蔵しています。 Ubuntu の .deb からいれると、フォントのありかは以下です。

hiromasa@hiromasa-cube:/usr/share/xbmc/media/Fonts$ ls -laF
合計 4836
drwxr-xr-x 2 root root    4096 2008-07-13 15:31 ./
drwxr-xr-x 3 root root    4096 2008-06-06 22:11 ../
-rw-r--r-- 1 root root 4611496 2008-07-13 15:30 Arial.ttf
-rw-r--r-- 1 root root  311636 2008-05-19 00:43 arial.ttf.org

で、上のはもーなっていますが、標準の arial.ttf は英語しかはいってないので、どっかから日本語フォントをもってきて、Arial.ttf として格納します。 頭大文字なので注意。 手持ちが .ttc しかなくても、強引に拡張子 .ttf にしてもいけるようです。

で、XBMC 起動して設定までいって、以下の2つを設定します。

まずは、Look and Feel から Skin のフォントを Arial TTF に。

Screenshot-XBMC

でもって、Region を Japanese、Shift_JIS に。

 Screenshot-XBMC-1

何を隠そう、Skin フォントが優先される実装があるのをしらずに、上の画面の設定にたどりつけなくてちょっとはまりました。。 ソースみてなっとく。 :-)

こうなれば成功です。 ランゲージファイルは最初から同梱されています。

Screenshot-XBMC-5

samba ごしに、Windows の共有もちゃんとみれます。(最近はだめ文字も少ないのかな) NAS の共有とかをそのままみれちゃうのが、XBMC のおそろしいところ。

Screenshot-XBMC-3

なんかににている、3D の"あれ" も動きます。

Screenshot-XBMC-4

静音PC に、Linux いれて XBMC をフル画面でうごかして、ハイデフなテレビにつないで表示させるといい感じかもですね。 H264 とかは XBOX だと負荷結構きついし、なにより初代 XBOX 自体がハイビジョン対応してないので(16:9 は OK だけど!)、XBMC をPC にいれるアドバンテージは結構あります。 再生できるファイルが限られる、なんとか TV よりずっといいかも。(笑)

Mac と Windows 版はみてないけど、ソースを見る限りきっと同じように日本語化できると思われます。 やってみたいかたは、おためしを。 :-)

Jul132008

WordPress 2.6 の修正履歴機能 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加

晴のち曇 ひろまさ@ 7 月 13th, 2008 投稿時の月齢:9.7  月名:十日月  潮汐:長潮

次期 WordPress に実装される、投稿の履歴機能がどうなっているのか気になってちらっとみてみました。 これは、投稿したあとの修正が履歴となって残り、その差分比較ができるという機能です。 とりあえず、UI からみていきましょう。

投稿の編集画面の最下部に post revisions 項目が追加になっています。

Revisions01 

これは投稿の修正ごとに増えていきます。 これをクリックすると新設された、Compare Revisions 画面に遷移して、下で比較するリビジョンを選択して、上でその diff をみれるようです。

Revisions02 

なかなか面白い機能ですね。

ぼくは CMS 系のアプリケーションの本当の意味でのコアというのは、こういったデータの持ち方だと思っていて、コンテンツをどういう観点で整理してタンキングしていくか、という部分がそれぞれの CMS の特色だと思います。

WordPress の場合は、もともとブログシステムなので時系列につよい特色があります。 それに付随して記事に対してのメタ情報、タグであるとか階層をもてるカテゴリであるとか、記事に対してシステムユーザ管轄ではない情報をあたえるコメントであるとかという機能が使えます。

wiki 系なんかはあまり時系列にはつよくないですが、履歴がもてたり、ユーザ管理につよかったり、ワークフローをもっていたりします。 今回 WordPress は履歴の機能をもつことになり、簡易的なワークフローである pending 機能とあわせて、ユーザ同士の文書のやりとりを行う意図もあるのかなーと思ったのが第一印象です。

CMS の設計ってこの辺が一番面白いんですよね。 :-)

さて、この履歴機能の実装ってどーなってるんだろーっとおもってぱらっとテーブルをみてみました。 予測するにトランザクション用のテーブルがひとつふえてる!

・・・ふえてない!

てなわけで、ぜんぶ wp_posts にもたせたようです。 いままで、wp_posts は直近の投稿内容をもつテーブルでしたが、今回からある意味トランザクションテーブルにかわります。 じゃー、主キーはどーなるの? って話ですが、 ID のままです。

そう、履歴がとられるごとに ID ふえるんですね。 でもって、post_name ってページスラッグ名をいれるところに、履歴レコードの場合の親記事ID とリビジョン文字列をいれるという、かなり強引な下位互換を考えた実装になっています。 :-P

でさー、ぼくは全然気にしないのですが、パーマリンクの ID の歯抜けを気にする方はちょっとあれかもですね。。過去記事の修正ごとにレコードできるので、その場合は新規投稿は番号抜けします。 あと、これは微々たるものですが wp_posts の容量の増加量も増えます。

テーブル増やして、機能の使う有無を選択できるようにしてくれればよかったのになーと思いましたがはたしてみんなの評判はどうか。 気になるところであります。

# 時間無くてぱっとみで、ソースまで追えなかったのですが、この機能、きれないよね?

Jul122008

Re: [TB] WP2.5に入れるプラグイン10選 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加

雨のち曇 ひろまさ@ 7 月 12th, 2008 投稿時の月齢:8.6  月名:九日月  潮汐:小潮

おお、ひさしぶりのトラックバック企画。 ぼくもありがたく参加いたします。 :-)

うちの場合、自分でつくったのが多いのであんまり面白くないかもしれませんが、 .another で使っているプラグインは 14個でした。

[TB] WP2.5に入れるプラグイン10選 - MMRT daily life

WordPress2.5でつくる!最強のブログサイト」出版記念企画
もし今、WordPressのプラグインフォルダに10個のプラグインしか追加できないとしたら、最低限何を入れますか? プラグイン名とその理由を簡単に述べてください。(標準装備のAkismetとwp-multibyte-patchは除外します)

ではいってみましょう。 10個ってことで、灰色は除外の方向でいきます。

Audio player サーバに置いたMP3のフラッシュ再生。これは絶対自分じゃつくれねっす。
bSuite bStat サイドバーの「本日人気の記事」。 日サマリのみで使用。 ほんとはログが1日でながれるのを自分でつくりたいところ。 ほっとくとたまっちゃう。
K2 Date Stamp 投稿タイトルの右にでているカレンダー。なんとなく寂しかったので導入。
MoonPhase おなじみchameleon さんの月例表示。好き。
tkzy get recent comments サイドバーの「最近のコメント」。 もうかれこれ数年つかわせてもらっている気が・・・!
wp-hatena ここから自分の。 手前味噌。 ソーシャルブックマークのリンク表示。 wp-content/plugins 依存。
wp-kougabu 画像ギャラリー。 勝手に生成されるのがほしくてつくったもの。
wp-kumonosu 過去にいただいたコメントを管理画面に集計表示します。
wp-lwSitemap Google Sitemap生成。
wp-mosquito アーカイブ表示。
wp-murasame えー、もはやこれは原型をとどめていない。 JSeries 未リリース。 ただのthe_content_rss フィルター。[続き読んじゃいなYO!] を担当。 「鼻からカフェモカ」「notアグネス」にも使われている模様(笑)。 あと、最近はコアからギャラリーのコードぱくって、画像をいれています。
wp-ohayo みなみアイコンが出る、コメント時間がぞう変換。 wp-content/plugins 依存。
wp-otenki 今日のお天気。 こちらも勝手に取得。 いちばん動きはお気に入りかも。wp-config.php 依存。
wp-tegaki おなじみ tegaki。 プログラムが若いので実は1からかきなおしたい。 wp-config.php 依存。

灰色は、なくても極端にサイト構成をかえる必要がないものを選択してみました。 自分でつくっていて、ここにはいってないのは .zone のほうで使われています。

ほげほげ依存ってかいているのは、2.6 で可変ディレクトリ名設定つかうと動作しなくなるものです。 ついでに集計。 デフォルト設定ではうごくはず。

ちなみに、wp-hatena は、inocco さん版のほうが全然よいです。 :-)

たぶん特徴的なのは、管理画面系がないことで、これは .another では全ての投稿を Windows Live Writer でしているからだと思います。 ちなみに、WLW のプラグインは、3ついれています。

あと、他の方がつくったプラグインが少ないのは、なんとなく全ての機能を把握せずに入れるのが失礼な気がしてです。 じっくりみてからいれることにしているので、少ないのです。 あ、ぼくのは適当にいれていいですからね!(笑)

最後に、われらが JSeries のダウンロード遷移を最後に。 :-) (たぶん sourceforge の不具合で値狂っていると思われるところは補正。リリース歴史も重ねてつくろうとおもったが断念。。

先月末より3年目。 デベロッパーのみなさま、お疲れ様でした! :-P

jseries

Jul92008

WordPress 2.5 でつくる! 最強のブログサイト、でます。 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加

曇のち晴 ひろまさ@ 7 月 9th, 2008 投稿時の月齢:5.6  月名:六日月  潮汐:中潮

WordPress 2.6 の足跡も聞こえてきましたが、「WordPress 2.5 でつくる! 最強のブログサイト」を書かせていただきました。 7/18,19 ころから順次配本予定ということで、良ければ楽しんでいただければと思います。 今回は、内容を"全面改定"し 60ページ以上ボリュームアップもしています。

644a 

WordPress 2.5 でつくる! 最強のブログサイト@Amazon.co.jp

田中 広将 (著), 志村 俊朗 (著)

著者コメント
WordPressは、2.xより、バージョンアップのサイクルが速くなっています。このため、基本的な操作方法と構成する機能の紹介だけではなく、テーマやプラグインの汎用的な設置方法や、PHPの知識でカスタマイズを行う方法など「考え方の習得」に主眼を置いた全面改訂となりました。本書で解説している事柄は、バージョンが上がろうとも変わることがない必要な知識として生き続けます。そしてそこから深層の動作をさらに知ることで、 WordPressの思想も感じてもらえれば、そんな気持ちで執筆を進めました。

2.6 がでる微妙な時期で、もちろんいくつか議論はあったのですが、2.5 は 2.x 系前半の集大成的リリースであることと、そしてなにより、今回は使い方の提案と使いこなし部分に比重を置いている内容となっているため、あまりこだわらず表題は 2.5 のままでいきました。 :-)

■Part1 WordPress の基本のキホン
Chapter01 WordPress とは
Chapter02 レンタルサーバで始めよう
Chapter03 WordPress のインストール
Chapter04 WordPress の基本画面
Chapter05 WordPress の基本設定

■Part2 WordPress でブログを書こう
Chapter06 テーマとプラグインでかっこよくしよう
Chapter07 記事を投稿しよう
Chapter08 記事に画像を挿入しよう
Chapter09 アドバンストツールバーの表示
Chapter10 投稿設定を使いこなそう

■Part3 WordPress サイトの運営・管理
Chapter11 コメントとトラックバックを制限する
Chapter12 リンク集を作成する
Chapter13 ページ機能を利用する
Chapter14 カテゴリーとタグを使い分ける

■Part4 WordPress サイト活用法
Chapter15 コミュニティサイトとして運用する
Chapter16 XMLRPC プロトコルを利用して投稿する
Chapter17 携帯電話から投稿・閲覧する

■Part5 テーマとプラグインによる拡張
Chapter18 オリジナリティを高めるカスタマイズ
Chapter19 WordPress テーマとHTML&CSS
Chapter20 WordPress テーマの構成
Chapter21 Firebug を使ったCSS の修正
Chapter22 プラグインインストレーション

■Part6 WordPress ブートキャンプ
Chapter23 WordPress を取り巻く環境
Chapter24 WordPress の動作原理
Chapter25 WordPress 設置の実際
Chapter26 ローカル環境の構築
Chapter27 WordPress とPHP
Chapter28 WordPress プラグイン開発
Chapter29 アクションとショートコードプラグインの開発

■Appendix
Appendix A テンプレートタグリファレンス
Appendix B テーマファイルリファレンス
Appendix C WordPress で使う便利なツール
Appendix D ブログのインポート・エクスポート
Appendix E トラブルシューティング

WordPress の一番基本的な使い方、インストールからはじまり、初めての方に便利な機能の紹介、そして使い方の提案。 後半はWordPress を使いこなす上の考え方を中心に、インターネットの仕組み、Apache、PHP 言語のいろはから、プラグインの作成方法まで。 きっと、だれもが一度はつまるであろうことが書かれています。

このブログにたまにかくような、PHP で遊ぼうとか、プラグインをつくろうとか、そういうエッセンスもつまっています。 きっと grep の使い方とか、コアファイルの解析方法なんかを書いている WordPress 本は"最強"だけでしょう! :-P

正直、徹夜でなんどかしにそうになりましたが、なんとか完成です。WordPress を深く使いこなすきっかけとなることを祈って書きました。 本屋さんでみつけたら、ぜひ手に取ってみてください。

DVC00025 

最後に、ぼくのつたない文書を編集していただいた古市さん、びしっと解説を決めてくれた共著の志村さん。 どうもありがとうございました!!

Jul72008

謎のシリーズ このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加

晴のち曇 ひろまさ@ 7 月 7th, 2008 投稿時の月齢:3.6  月名:黄昏月  潮汐:中潮

携帯電話をかえて、中にいれるメモリーが microSD にかわりまった。 いま、すごいやすいのね。 2G で 1000円きってたり笑っちゃう値段になっていたので、あわせて購入。 :-)

っていまみたら、749円って。 スーパーでもうれる値段に。。

上海問屋 - 本店 - ホーム

microSD 2GB 749円

実は、前の携帯 P902 だったんですが、miniSD のスロットのくちがどーもこわれたらしく、2回も SD が行方不明になって写真とかまともにとれなくなったのでした。

てなわけで、SH906i でとった写真をひっぱりだしてきました。 ・・・謎の写真がおおかったので、なぞしりーず。

謎のトマト。

なんと一本の幹から、これだけのトマトが! なんだかわからないけど、すごいっす。

DVC00011   

なぞの高級ピートモス。 WordPress 界きっての、社会派 ぼにょ氏に輸出してあげようとおもったが、残念ながらなぞの検問にひっかかり断念(嘘

DVC00014

謎のカニ。 こんにちは! こんにちは!

DVC00016 

うまいんだな、これが。 :-)

Jul42008

久しぶりの更新・・・! このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加

曇のち雨 ひろまさ@ 7 月 4th, 2008 投稿時の月齢:0.6  月名:新月  潮汐:大潮

ここ二ヶ月ほどずいぶん忙しく、なんと先月のブログの更新が2回!? なんてこった(笑) いけません、再開します。 :-)

結構いろいろねたはあったのですが、えー、なんだっけ。

とりあえず携帯電話を SH906i に機種変更しました。 P902i からだから、実に数年ぶり? いいねぇ、HIGH SPEED。 ついでにいままでいれてなかった、パケット定額もいれてみました。

yabisu

最近の携帯 Java フルブラウザもずいぶん使えるですね。 いろいろ役だってくれました。 そうそう、Java でソフトかこうとおもっていたのに、全然やってないや。そのうちに。

あと、本を購入。 Python と C# の。

どちらも通して読む時間がなくてあれなのですが、なかなか面白ろそうです。 C# 案件も最近ずいぶんよく聞くようになりました。 なかなか小技が利いている言語だと思いました。 ぼくはできません(笑)

Python は 当面 Linux でアプリ作るようと思っています。 GTK よべばすぐ画面描けるから便利ですね。

XBox 360 は、センコロを購入するも、まだ2回しかやってにゃ。

360 で初代 XBOX のギルティーギアXXの配信がきてるのが気になる。。

あと、たくさんメールを返信しないといけないのですが、これは少しずつ。。 ごめんなさい。

てなわけで近況報告でした。 また週末にでも・・・。 :-)

Jun32008

あなたのマニアック度 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加

曇時々晴 ひろまさ@ 6 月 3rd, 2008 投稿時の月齢:28.2  月名:二十九日月  潮汐:大潮

いわゆる、マニアック系分野というのは結構つながりがある気がします。

ゲームからコンピュータ、漫画、アニメ。 キャラクターグッツから、プラモデル、ガレージキット。 模型分野からラジコン、Nゲージ。 アイドル派生から、カメラ。 コンピュータ系から、電子ガジェット類、携帯電話、モバイル端末。 他にも鉄道、オーディオ、、うーん、ぼくの引き出しではこれくらいが限界ですが、ほかにもまだまだあるでしょう。(笑)

ぼくのあたまにある限りの、その分野の超有名な事柄をかきだしてみます。 みなさんは何個くらい知っているでしょうか? マニアック度が分かるかもしれません。 :-)

  • 「笑えばいいと思うよ」というフレーズが何か分かる。
  • モンスターケーブルといわれて、何のケーブルか分かってしまう。
  • 「ソフビといっしょにお風呂にはいる」が分かり何でいっしょにはいるか知っている。
  • 墨入れという言葉で何を用意すればいいかわかる。
  • らくだ電池から7.2V レーシングパックに移行した。
  • チバレイといえばヨガの人ではないと思う。
  • 飯田線のΩカーブといえばあれだ。
  • 筐体とハーネスって何か知っている。
  • 実は Graffiti が使える。
  • バルブ撮影をしたことがある。
  • 林原世代だ。
  • ポケットボードとかエクシーレとかを懐かしく思う。
  • himem.sys と格闘したことがある。
  • モリガンの衣装を着た人をみたことがある。
  • 006P をなめたことがある。
  • 「お茶を一杯」「ろくでなしの青二才」がなんのカラーコードを表しているかわかる。
  • Z80、6502、6809 とかって何か知っている。
  • Eスポと東スポは似ていないと思う。
  • 和塩、地球病とかよく知っている。
  • TG300B モードに切り替わったことがある。
  • ぬるぽの語源を知っている。
  • 軽井沢誘拐案内ときいて、あ、あの人と思う。
  • D&D とか T&T とかって分かる。

うーん、分野に偏りがあるなぁ。 まぁまぁ、たぶん同じような"系"の道を歩んできた人は全部しっていることばっかりだと思います。

200806030046000

最後だけなにか書くと、D&D とか T&T というのは、テーブルトーク RPG というやつで、コンピュータ RPG 登場以前から楽しまれていたファンタジーの世界を表現している、テーブルゲームです。

ゲームマスターと呼ばれる人が、場を進行して、上の写真のルールブックとよばれる世界のルールがかかれた本にしたがって、物語をテーブルに集ったプレイヤー(人)とわいわい「口頭」で進めていきます。 コンピュータ RPG と同じように敵とかとあうので、そのときはサイコロをふったりするんですね。

もちろん起源としては逆で、このテーブルトーク RPG を手軽に一人でたのしめるようにしたのが、コンピュータ RPG ともいえます。

いまのコンピュータ RPG は、もう動画がでたりいたれりつくせりですが、テーブルトークはみんなの想像力を最大限に発揮してするめていくゲーム。 まさに RPG (なりきり)なわけですね。  だから、いろいろなイメージができて楽しかったりします。

"マニアック度" をかいていたら、なんか昔の話がでてきたので、いっしょに紹介してみました。 この本は会社の "同じ道を歩んだ" であろう方からお借りしたものです。 ぼくも持っていました。 なつかしーですね。

さぁ、みんなもまだブログにだしていない引き出し、あけてみてください。 :-)

・・・読み返してみたら、ぼくは既にブログのふしぶしにだしていましたな。。(←秋葉系

Jun12008

Python を使って twitter クライアントをつくってみる。 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加

雨のち曇 ひろまさ@ 6 月 1st, 2008 投稿時の月齢:26.8  月名:二十七日月  潮汐:中潮

ことの発端は twitter クライアント tween の画面をみなみさんにみせてもらったことだった。 それはタスクトレイに常駐して、新着メッセージがあるとバルーンが表示されていた。 うらやましくおもったが、ぼくの PC は Linux だった。 Linux で tween は動かなかった・・・。

てなことで、ないものはつくる精神。 ひろまさはバルーン好きだった。

notify00

これね。 なんかにょーんってでてくるのが好きです。(XP ツアーはいらないが・・・)

で、Linux でもアップデートマネージャとかで同じようなバルーンがでてきていたので、ツールキットとして存在していることは分かっていました。

実は何を隠そう、バルーンできる Linux 向け twitter クライアントは既にいくつかありまして、

TwitterNotifier: バルーンで更新を通知するTwitterクライアント

アイコン付きバルーン(notification)としてユーザーに更新を通知するタイプのTwitterクライアントです.

こちらは、そのまんまOK。

SimpleTwitterScreenlet GNOME-Look.org

A Simple Twitter Screenlet for posting and checking for messages.

デスクトップガジェットの screenlets にもあって、こちらも notify 表示ができます。

TwitterNotifier さんをありがたく使わせていただけばよいのですが、ちょっと表示のイメージが違うのと、あとクライアントは IM (Jabber) 経由でとろうと思っていて、その修正するのがちょっと難しそうだったので(待ちうけスレッド立てなきゃいけない)、今回はソースの参考用にさせてもらっています。(ありがとうございます)

したの SimpleTwitterScreenlet は、(あとで気がついたのですが)日本ロケールで動かすとメッセージ notify が動作しません。 strptime という関数が ja_JP UTF-8 ロケールで動かすと、解釈を日本の月名とか曜日でしてしまいおちてしまうようです。

clear = (None , None)
locale.setlocale(locale.LC_ALL, clear)

とか先頭にいれておくと動くかもです。

さて、何を隠そうぼくは Python 言語も GTK ツールキットもまったくわかりません。。 Python というのはいわゆるスクリプト言語。 GTK というのは、主に Linux などでウインドウを描くためのライブラリです。

何はなくても公式ドキュメント。

Python 2.4 ドキュメント - June 27, 2006

チュートリアル (ここから読み始めてください

Python から GTK を呼ぶには PyGTK というのを使えばよいようです。

satolog: PyGTK と Glade を使った GUI の作り方

Tkinter を使って GUI の作成をしてきて、それはとても簡単にできたんだけど、Tkinter が僕のコードと GUI をリンクするやりかたに不満があって、他のツールキットを使って GUI を作ることを検討することにした。いろんなオプションを調べた後、僕は PyGTKGlade を使うことに決めた。

PyGTK 2.0 Reference Manual

This reference describes the classes of the Python PyGTK module.

・・・。 よし。(←なにがよしだ

Python はまったくわからないので、Python を Python らしくつかうことなぞ、到底できませんが、、動かすくらいはできるでしょう。 スクリプト言語ってことは JavaScript みたいなもんでしょ。(←相当誤った解釈

で、いろいろライブラリなどをあつめ、かくと同時に言語仕様につまるなどし、試行錯誤。。 実行。 ぴ。

notify01

ぎゃー。

ですぎ(笑)

もうちょっといじって。。 あぁ、ひさしぶりに GUI のツールキットさわるね、などと思いつつ、部品が visible になるまえにイベントが発生してうまくでないとか、「懐かしいなぁ」などとおもいつつ・・・。

ぴ。

notify02

うむ、満足。 :-)

ほんとは API でなく Jabber 経由でひろいたいので、あとは IM が復活して dsub の差し替えをすればいけるはずなのですが、はたして。。

さて、今では普通なんでしょうけど、スクリプト言語で GUI つくれるのは、なかなか不思議な感覚をうけます。 gtk.main() でイベントループするんだーみたいな。そりゃそーなんですが。

ちなみに、PHP も GTK とのバインディングがあるのでやればできるみたいですね。

PHP-GTK

PHP-GTK is an extension for the PHP programming language that implements language bindings for GTK+. It provides an object-oriented interface to GTK+ classes and functions and greatly simplifies writing client-side cross-platform GUI applications.

GTK は Glade というライブラリをつかうと、XML により GUI コンポーネント定義と、イベントシグナル定義ができて、プログラムから簡単に扱えるようです。

notify03

Glade 用のデザイナーもあります。

今回、自分でかいたのは 100ステップ未満。 もちろん多彩なライブラリのおかげもありますが、こんだけで twitter の GUI がつくれてしまうのは、お手軽感が非常に高いです。

プログラミングって結構楽しいですが、いま全盛の Web におけるプログラミングというのは、あるいみ敷居が高くて、言語自体の仕様のほかに、HTTP ネットワーク、HTML の構造とか、周辺環境の知識とか言語自体にも覚えなければいけないことがたくさんあります。

しかも、Webプログラミングは、方式の目的外使用して無理やりやっている事柄も多くみられることから、とっかかりの難易度としては高いような気もします。 クライアントアプリケーションから、クラサバになって、Web になってとか順をおってやっていると大して難しくないのですが、いきなり Web ってなるとなかなか。 いつもどこから説明していいか分からなくなります(笑)

てなわけで、5行くらいのコードで、画面に GUI をだせちゃったりする Python + GTK はプログラミングの勉強環境としてはよいかなと、ふと思ったりもしました。 最初はなんか派手に画面でたほうが面白いもんね。 :-)

ちなみに、この環境は Windows でもちゃんと動くようです。 サンプルうごかして、ソース見るだけでも楽しいかもですヨ!

May312008

驚きのあるプログラミングとデータ収集趣味 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加

晴のち曇 ひろまさ@ 5 月 31st, 2008 投稿時の月齢:25.2  月名:二十六夜  潮汐:若潮

芸風というのは歳とともに変わるもので、自分でかくプログラムで好きなのは、データをああだこうだと加工して出力する類のものです。

むかしは、ゲームなんかもつくっていたくらいなので、GUI 部品とかそういったプレゼンテーションレイアーのプログラミングがすきだったのですが、最近はバックエンドでこそこそ動いて、画面にはなにもださずに、でもすごいことをやってのけて終了する UNIX のコマンドのようなソフトが好みです。

というのは、GUIとかって自分でかいても、あたりまえというか(いや、ホントはすごいんですけど!)、動作の予測ができてしまうところに驚きがないのが、自分ではかかなくなった原因なのかと思います。(あくまでソースコードのアルゴリズムのお話です)

楽しいのは、自分でかいたコードが正しく動いているのに、結果が自分の想像と違うとき!

そーだったのか!

なんだかドキドキしちゃいますよね。(笑)

たぶん、WordPress のつくったプラグインで、この最たる例で言えば wp-kumonosu が代表です。

wp-kumonosu

基本はサイトにいただいた、コメント・トラックバックをさまって管理画面に表示するだけ。 WordPress の動作になにも影響しないというへんてこなプラグインですが、昔に一度だけコメントをいただいた方とかを思い出して、浸れるという素敵な部分をもちます。 :-)

wp-kougabu も、自分では忘れていたような画像をひっぱりだしてくるという意味では似ているのかもしれません。

wp-kougabu10

どちらも自分で動かしてみて、「おー!そうかー!」、みたいな感覚になれるのが面白かったです。

ソースコードというのは自分の頭の中の処理をそのままかいただけのもの。 でも、与えるデータによっては意外性がでてきたりする。 これがぼくがプログラミングをする楽しみのひとつなのかもしれません。

で、重要なのはデータ。 そんなこともあり、自分はわりとデータ収集趣味があるのではないかとおもいます。 なんといっても、スパムメールですら 3万通くらいとってあったりするのです。 これは、もちろんスパムフィルターの学習素材です。

あと、WordPress にくるスパムコメント。 なにげにあれのホスト情報はプロキシを探すのに便利かも。 関係ないか。(笑)

メールに関して言えば、メーリングリストも相当な情報源で、おそらくトラブルがあったときは Google を検索するより、メーラでその話題を扱っているメーリングリストを検索したほうが早いと思います。

あとは、RSS。

これは、家のローカルサーバで動かしているフィードリーダを使っていますが、理由は取得フィードの保存期限が事実上無限だからです。 インターネット上の RSSリーダは、保存期限が明確でなくてどうも不安です。 中身のエクスポートもできないみたいだし。

yutakasan

うちの Gregarius という feed aggregator の MySQL の内容です。 データは 2006/10/06 から保存されています。 (上は yutaka さんの記事です!) Gre ちゃんは、そんな使いやすいソフトではないのですが、データベース構造がそのまんまで、分かりやすいので愛用しています。

RSS によるコンテンツ配信については、納得いかないことのひとつが画像の扱いです。

・・・だって、画像はただの直リンクなんだもん。 :-) サイト消えたら画像見えなくなります。 RSS はコンテンツ配信という意味では、かなり不完全な仕組みだと思うんですがどうなんでしょう・・・。 配信されてねーじゃん、みたいな(笑) 今は img タグ見つけたら、そのままサーバに画像吸い取ってリンクをすげかえようかと、ちょっと画策していたりもします。

ほかに RSS に関しては、RSS を登録するとほぼフルオートで解析して、勝手に全文RSSをつくるプログラムをかいていて、これにニュースサイトRSSを登録しているので、どんどん Gregarius にスクラップされていっています。 あれ、そんなニュースあったなーとかって検索できて便利です。

以上はすべてローカル(手元)にデータがあるからできる芸当。 MySQL で like 検索するもよし、形態素して検索するもよし。

データ集計検索こそ、オープンアーキテクチャであり、自分の意思でデータを集め、自分のアルゴリズムで行うべき事柄。

Google に対する過度の信頼は、彼らに情報操作される危険性をはらむ。 都合の悪いこと、もしくは他者からの巨額の裏の金のやりとりで、順位操作がされている可能性を排除してはいけない。 彼らは自ら語ることなく、表示順位による第三者意見の提示というマジックで情報を容易に操作できる。 検索アルゴリズムがトップシークレットになっているのは何故かを考えるべきであり、上層社員に莫大な金を与えているのをなぜか考えるべきであり、そして、利用者に無料で提供されるアプリケーションはそれを考えていても「ぼくらの Google がそんなわけない」と思わせる、甘い罠である。

なーんて冗談ですが、こんな映画あったら面白そうですね。

と話がそれたところで、おしまい。

« Previous - Next »