Home > IT Archive

IT Archive

色々な言語でGoogle Protocol Buffers

Google謹製のバイナリシリアライズライブラリ「Google Protocol Buffers」を色々と調査中。

データ構造をC言語の構造体っぽい書式で書くと、それを元に色々な言語のシリアライズ/デシリアライズのプログラムコードを自動生成してくれるという素敵なライブラリです。

しかし、「色々な言語」と書きましたが、現状ではC++、Java、Pythonの3言語しか対応していません。

というわけで、それ以外の言語に対応させているプロジェクトをざっくり検索してみたのでメモっときます。

オリジナル(C++,Java,Python)
protobuf - Google Code

C言語(not C++)
protobuf-c - Google Code

Perl
protobuf-perl - Google Code

protobuf-perlxs - Google Code

Ruby
ruby-protobuf - Google Code

PHP
pb4php - Google Code

JavaScript
protobuf-js - Google Code

ActionScript
protocol-buffers-actionscript - Google Code

Common Lisp
common-lisp-protobuf - Google Code

cl-protobuf - Google Code

.NET Framework
protobuf-net - Google Code

protosharp - Google Code

Mercury
protobuf-mercury - Google Code

PHPが使いたいのでソースはPHPしか読んでませんが、parser/pb_parser.phpでシリアライズ用のコードを生成して、それを使うのに必要なライブラリがmessage以下に詰まってる感じですかね。

Webにおける「サービス」って、結局なんなの?

  • 2008-10-08 (水)
  • IT
  • hatena button
  • hatena count

はてなブックマーク - タグ これはえがい

最近なにかと話題の「えがちゃん」ですが、私も楽しくウォッチングさせていただいております。

ところで、その界隈で「サービス」という単語がよく使われているのですが、改めて考えると「Web2.0」並に曖昧な言葉な気がして、色々思考しているうちにその単語がゲシュタルト崩壊してきてさっぱり分からなくなりました。

エガぺインター || エガい顔に落書きできるサービス

例えばこれ、「サービス」と謳っていますが、おそらく10年前に公開されていたら「投稿型Webサイト」と称されていたのではないでしょうか。

今まであまり疑問も抱かずにフィーリングで「サービス」という言葉を使ってきましたが、一体どういうものをサービスと呼べば良いんでしょう。ググってもよく分かりません。
なんか「Webサイト」より何となく高尚でしっかりしてそうでオープンな印象があるこの言葉に色々とごまかされている気がする今日この頃です。

SONY MDR-D333LW買いました

MDR-D333LW | オーバーヘッドバンド式ヘッドホン | ヘッドホン | AV関連商品・アクセサリー | カタログ情報 | ソニー

仕事中に使っていたSonyのヘッドホンがほぼお亡くなりになったので、新しいのを買ってきました。
耳栓代わりでたいした音質は求めないので、取り扱いが楽なMDR-D333LWにしました。

このヘッドホン、オーバーヘッド型なのにコードは片耳からのみで、しかもコードが巻き取り式なので超便利。
写真の通り、長さは掃除機の電源コードのように自在です。

また、「サウンド・イン・ダイアフラム」という機能によりヘッドホンをしたままでも周りの音がある程度聞こえます。
電車のアナウンスなんかも駅名が聞き取れるくらいです。

外で使うには使い勝手の非常によいヘッドホンだと思います。

お値段も実売5000円程度とお手頃です。

惜しむらくは、カラーバリエーションに黒が無いことですかね。
アキバヨドバシを見たら、グレー>白>赤の順で売れてた(棚に数が少なかった)っぽかったです。

「Trac入門」読みました

昨日、「Trac入門」を買って読みました。

この本の特徴ですが、Tracの使い方というよりは運用についての説明に重点が置かれている気がします。

なので、インストールや使い方そのものの説明はかゆいところに全く手が届きません。
「これは何でだろう」と思って読み進めても、結局その説明がなかったりしてションボリします。
そのような疑問を持つ時点で「入門」は卒業してしまったという事なんでしょうか‥‥

で、この本で最も良かったのは第7章「Tracを使う上での心得」です。
これは実際にチームで運用してみた経験がないと分からない内容で、非常に参考になります。

と、そんな感じなので、秀和システムのTrac本も買ってこようかと思います。

tracの便利さを3行で表せるエンジニアはおらんのか?

BTS(ITS?)のtracを評価中。

これまでの印象は、Wikiとsvnリポジトリブラウザ付きのBTSだと思ってました。
なので、リポジトリブラウザはオマケっぽいし、PukiWikiと影舞があればtracなんてイラネーって感じでした。

けど、それは完全に誤解でした。

要するにバグ報告やTODO(tracではチケットと呼ぶらしい)に対してソースコードの変更箇所を貼り付けて、チケットとソースを一体化させる所にうま味があるわけですね。
しかもWebベースなのでメンバー全員で手軽に共有できるという。

その辺もうちょっと分かりやすく説明してくれる書籍やサイトがあればもっと前から使っていたと思うんですけどね。
SVN+Wiki+BTSとか言われても分かりませんて。

ただ、trac付属のWikiはどの辺が便利なのか未だに図りかねている状況。
どうやって使うのが便利なんだろう。

身近にtracユーザーおらんかなぁ‥‥

ローマ字で「とぅ」を3キーで出す方法

トゥルーとかトゥモローとか、「とぅ」のローマ字変換はいつも「tolu」とか「toxu」とか4キーを入力していました。

さっき嫁から「きょ=kyo」のように3キーで入力できないかと聞かれて、ATOKのヘルプを見てみたら、なんとありました!

「とぅ=twu」でした。
MS-IMEでも同様に変換出来るようです。

調べてみるもんですねぇ。これは凄く良い発見をしました。

ローマ字を小中学校で習ったきりの方は、一度ATOKやMS-IMEのローマ字変換表を確認してみると、新しい発見があるかも知れませんよ。

Vimperator pluginをwgetで一括アップデート

ふとCodeReposを見てみると、Vimpereatorのプラグイン類が結構アップデートされているようだったので、wgetで一括アップデート出来るよう設定してみました。

wgetの導入

私の環境はWindowsなので、まずwgetを導入します。
以下のサイトを参考にしました。
Windows で wget を使う方法

ダウンロードするパッケージは以下が楽で良いです。
ftp://sunsite.dk/projects/wget/windows/wget-complete-stable.zip

LinuxやMacOSXをお使いの方は適当にググってください。

インストール先はどこでも良いんですが、私はvimperatorフォルダに直接置いてしまいました。

Vimperator pluginのURLをテキストに書き出す

おおかたのプラグインはCodeReposにありますので、そちらのURLを書き出します。

CodeRepos::Share – Trac

ここでちょっとコツがあるんですが、ブラウザで開いた以下のようなURLがあったとします。

http://coderepos.org/share/browser/lang/javascript/vimperator-plugins/trunk/copy.js

これをそのままダウンロードしてもHTMLが落ちてくるだけなので、ちょこっと書き換えます。

この部分を

http://coderepos.org/share/browser/

こんな感じにします。

http://coderepos.org/share/export/latest/

そうするとこんな感じになって、最新版ソースをオリジナルフォーマットでダウンロード出来ます。
http://coderepos.org/share/export/latest/lang/javascript/vimperator-plugins/trunk/copy.js

そんなわけで、私のURLリストはこんな感じになりました。
これをplugins_list.txtとしてvimperatorフォルダに保存します。

CODE:
  1. http://coderepos.org/share/export/latest/lang/javascript/vimperator-plugins/trunk/copy.js
  2. http://coderepos.org/share/export/latest/lang/javascript/vimperator-plugins/trunk/direct_hb.js
  3. http://coderepos.org/share/export/latest/lang/javascript/vimperator-plugins/trunk/feedSomeKeys.js
  4. http://coderepos.org/share/export/latest/lang/javascript/vimperator-plugins/trunk/googlesuggest.js
  5. http://coderepos.org/share/export/latest/lang/javascript/vimperator-plugins/trunk/hatenabookmark_show.js
  6. http://coderepos.org/share/export/latest/lang/javascript/vimperator-plugins/trunk/ime_controller.js
  7. http://coderepos.org/share/export/latest/lang/javascript/vimperator-plugins/trunk/migemo_hint.js
  8. http://coderepos.org/share/export/latest/lang/javascript/vimperator-plugins/trunk/tombloo.js
  9. http://coderepos.org/share/export/latest/lang/javascript/vimperator-plugins/trunk/ubiquity.js

wget起動の為のバッチ作成

フォルダ構成によって適当に読み替えて欲しいですが、ウチの環境だとこんな感じになります。

CODE:
  1. cd plugin
  2. ..\wget\wget.exe -i ..\plugins_list.txt -N
  3. cd ..

iオプションでURLリストを指定するのと、Nオプションでローカルよりサーバー(CodeRepos)の方のファイルが新しかったら上書きするところがポイントです。

私はこれをvimperator_plugin_update.batというファイル名でvimperatorフォルダに置きました。

これまで説明してきたファイル構成をまとめるとこんな感じになります。

プラグインURLリストとバッチファイルも一応アップしときます。
vimperatorプラグインアップデートバッチ

いざアップデート!

vimperator_plugin_update.batをダブルクリックするだけで最新版にアップデートされます。
特にログを出力するようなオプションは指定していませんので、確認はファイルの更新時間を見て下さい。

あと、当然ながらアップデート後はFirefoxを再起動してくださいね。

インターネット閲覧ソフト?

昨日ニュースを見ていたら、Google Chromeの事を紹介していました。(たしかテレ東)

そこで、「Webブラウザ」ではなく「インターネット閲覧ソフト」と連呼していて、へー、ニュースではこういう呼称するんだ、と適当に流していました。

けれど、今日になってよくよく考えてみると結構バカっぽい気がしてきました。

何というか、量販店で「インターネットください」と言ってしまうような、全てのWebサイトをひっくるめて「ホームページ」と呼んでしまうような、そんな感じです。

せめて「ウェブサイト閲覧ソフト」だったら良かったと思うのですが、こういうのって誰が決めてるんでしょうね。

Home > IT Archive

その他諸々

あわせて読みたい

  • 個人的リンク集
  • mixi
  • twitter
  • track feed
  • ページランク

Return to page top