November 2004

November 25, 2004

Pixelfest Group Artwork Project (via Google Blogoscoped)

Posted at 4:51 in . | 0 Trackbacks, 7 Comments

pixelwork.gif

1人1人が1ピクセルずつ、好きな場所に好きな色のピクセルを置いていって、一枚の画像を作ろうというプロジェクト。おもしろい。発想の良さに感心した。

これで何か意味のあるものが描かれていけば感動的なんだけど、現状、やっぱりランダムなイメージになっちゃってます。まあ、仕方ないよね。せめて「猫の絵を描こう!」みたいな意思統一があればまた違うのかもしれないけど。

Pixelfest Group Artwork Project
http://www.themaninblue.com/experiment/Pixelfest/

Post a comment to 'Pixelfest Group Artwork Project (via Google Blogoscoped)'



[もぶろげっと]広告画像が鬱陶しいです。なんとかしてください。

Posted at 4:39 in . | 0 Trackbacks, 1 Comments

たとえばこんなのとか。

497.html.dat_0.jpg
http://ad.a8.net/svt/bgt?aid=040823492297&wid=001&
eno=01&mid=s00000000335002015000&mc=1&.gif

この種の広告画像はノイズにしかならないのでもちろん排除したいのだが、どうやって排除するかは難しい問題だ。画像の中身を見て画像工学的にあれこれするというのは容易ではないので、必然、URLからフィルタリングをしようということになる。ここで、どれくらい厳しい基準を適用するかどうかで悩む。

基準として考えられるのはだいたいこれくらいか。

  • そのblogのディレクトリ内に置かれている画像のみを対象とする
  • 広告画像にはほとんどのケースでユーザID(?)が付加されている。なのでURLに'?'や'&'が含まれるものをはじく
  • ブラックリスト(業者のドメイン名のリスト)を持っておき、URLとブラックリストを照合してリストに該当するものをはじく

1つ目のは広告をほぼ完璧に排除できるのだが、ちょっと厳しすぎる。取るべき画像をかなり取り落とすことになるのでやりたくない。3つ目のはブラックリストのメンテナンスが面倒なのでやだ。というわけで今のところ2つ目のやり方で対応している。なにか良いアイディアがあったらお寄せ下さいませ。

Post a comment to '[もぶろげっと]広告画像が鬱陶しいです。なんとかしてください。'



November 23, 2004

京都大と神戸大の扱いの違いについて

Posted at 8:42 in . | 0 Trackbacks, 2 Comments

JOB SESSION 京都大
http://navi.mycom.co.jp/event/job/kyoto/kyoto_mes.html

JOB SESSION 神戸大
http://navi.mycom.co.jp/event/job/kobe/kobe_mes.html

 

笑った。あからさまだな。ぜんぜん違うじゃないか。

神戸大でこれということは、電通大ならどうなってしまうのか。そもそもこんなイベント自体が開催されないか。ぼくももうすぐ就職活動を始めることになるが、こういうのをみると先行きが不安になってしまう。

Post a comment to '京都大と神戸大の扱いの違いについて'



November 22, 2004

3DなRSSリーダ(ただし開発中)

Posted at 12:13 in . | 0 Trackbacks, 0 Comments

exported%20vropml.jpg

3DなRSSリーダを作っているひとが居る。氏のblogで開発中のスクリーンショットを見ることができる。上に貼ったのがそれなのだが、う〜ん、何なんですかねこれは。この画像をみただけではよく分からないというのが正直なところ。

氏はblogのなかで

かれこれ2年間、ぼくらは「RSSリーダは2ペインと3ペインのどっちがよいか」なんて議論をずっとしてきた。だけど、それはもう止めにしよう。答えは3Dだ! (意訳)

とか何とか言ってる。なんでもトピックの重要度を遠近法で表現することができるのが素晴らしいのだとか。たしかに直感的な可視化をするには3Dのほうが良いのだろうが、操作性や視認性が2Dに劣るようではなかなか使いづらいだろう。いったいどんなものを作ろうというのだろうか。何にせよ面白そうっちゃ面白そうなので、ぜひ動くものを使ってみたいところだ。

 

Announcing NewsWorld (@802.11me)
http://www.burningdoor.com/dick/archives/000875.html

Post a comment to '3DなRSSリーダ(ただし開発中)'



SQL Serverはメモリを喰いすぎだとおもいます。

Posted at 11:56 in MyBlogSearch -> もぶろげっと . | 0 Trackbacks, 0 Comments

sqlserver.PNG

 

ついでにASP.NETも喰いすぎです。2つ合わせて500MBというのは何というかもうちょっと何とかならないんでしょうか。ただでさえ現状のもぶろげっとはアホほどメモリを使うシステムになっちゃっているっていうのに。

チューニングによって多少は何とかなるとおもうので、そのあたりを調べて見ようとおもいます。改善するようならそのやり方をここで報告したいなと。

Post a comment to 'SQL Serverはメモリを喰いすぎだとおもいます。'



November 19, 2004

MSNメッセンジャでクマーとお喋りしよう!

Posted at 19:06 in . | 0 Trackbacks, 0 Comments


クマーとお喋り! (クリックでpopup)

 

ceekz氏からperlで書かれたMSNメッセンジャのクライアント作成ライブラリを教えてもらい、大いに興味を惹かれたのでさっそく触ってみた。付属のサンプルコードにちょこちょこと手を加えただけだけど。所要時間は2秒とかそれくらいだとおもう。

上に貼り付けた画像がそれで、なにかを打ち込むとクマーが「○○って食べれるの?」聞き返してくる。何の工夫もなくってごめんなさい。

クマーのアドレスはkumar@windy.ac。実際に試してみたいあなたは、これをあなたのMSNメッセンジャに登録してみましょう。もしクマーがオンラインだったら、セッションを開いてなにか打ち込んでみてください。オフラインだったらそのうちオンラインになるのを待ちましょう。たぶんオンラインになってるとは思うんですが、このライブラリ、いまいち不安定で、ちょっと目を離すと落ちていることがあります。

ライブラリの所在はこちら

Post a comment to 'MSNメッセンジャでクマーとお喋りしよう!'



November 17, 2004

[もぶろげっと]RSS2.0に対応

Posted at 5:52 in MyBlogSearch -> もぶろげっと . | 0 Trackbacks, 0 Comments


RSSを吐かせてみたところ(クリックでpopup)

対応というか、プリミティブなデータ型としてRSS2.0を使うことにした。

今までは、namazuのCGIを直接使って検索結果をブラウザに送っていた。

before.PNG

これからは、namazuのCGIはRSS2.0を出力するものとし、ASP.NETでこれをフックしてHTMLに整形し、ブラウザに送るようになる予定。namazuのCGIをにょろにょろと弄くって、RSS2.0を吐かせるところまではできた。

after.PNG

なぜこんな変更をするのかだが、利点はいくつもある。先ず第一に、やはりblogを対象とした検索エンジンであるので、RSSリーダとの親和性を考え、RSSを出す機能は必要だろうということがある。現在提供されているblog検索エンジンはRSSの出力に対応しているものが多い。実際にRSSで検索結果を受け取るというのがどれだけ使われているのかはよく分からないが、個人的には自分のblog名の検索結果をRSSリーダに登録するという使い方をしており、重宝している。自分のblogがどこかで取り上げられれば、トラックバックを送ってもらっていなくても補足できるというわけで、なかなか便利だ。RSSリーダというアプリケーションがこれから普及していくであろうことも考え、RSSに対応しておくことが望ましいだろう。

また、間に一段噛ますことによって、表現の自由度が格段に上がる。もしあなたがnamazuを使ったことがあるならご存じのとおり、namazuのCGIは表現の自由度が低く、検索結果のHTMLをいくつものファイルに分割して記述するため、メンテナンス性も悪い。これをそのまま使うのはあまり面白くない。ASP.NETを間に挟むことによって、ASP.NETの表現力や、優秀で使い慣れた.NET Frameworkを使うことができる。

SQL Serverとの連携が容易になるというのも大きい。もぶろげっとはバックエンドにMicrosoftのSQL Serverを使っている。namazuのCGIはpureなC言語で書かれており、これに手を加えてSQL Serverとやりとりをさせようとすると非常に面倒でやりたくない。.NET FrameworkにはDBを容易に扱うためのクラス群が用意されており、これを使うことでSQL Serverのデータを検索結果に反映させることが容易になる。

問題は検索結果の出力に時間が掛かるようになることで、どれくらいになるかは作ってみないとちょっと分からないが、これがコンスタントに1秒を超えるようなら考えなくてはならないかもしれない。プロセス間通信のやり方やサーバのチューニングなどをうまくやれば、そんなに処理速度が大きくなることはないとおもうのだけど、どうだろう。ASP.NETを使うとなると、環境が完全に Windows + IIS に固定されるというのも問題としてはある。これまでの構成なら、サーバ部分だけを切り離して、Linux環境に置くと言うことも(やや手間は掛かるにしろ)可能だったのだが。なんというか、WebサーバにIISを使うと言ったらM2の森本さんあたりに「おまえIIS使うなんてばかじゃないの」的な反応をされたのがアレだ。IISもちゃんと使ってやればそんなに駄目ではないですよ、たぶん。

ASP.NETではなくphpを使うという選択肢もあったが、ASP.NETのほうが楽しそうだったのでASP.NETを使う方向で逝こうと思う。VS.NETの開発環境に飼い慣らされているのでそれを使いたいし。いずれにせよ、Webアプリケーション周りの知識はかなり貧しいので、適当に本を仕入れてお勉強したいところ。

Post a comment to '[もぶろげっと]RSS2.0に対応'



November 16, 2004

『MSN Desktop Search』の画像が公開されている

Posted at 1:22 in . | 0 Trackbacks, 0 Comments

search.png


(クリックでpopup)

ただし画像だけ。

公開されている画像を一通り見た感じでは、ブラウザをhackするgoogleのアプローチとは違い、デスクトップを拡張するという形で実装されていると思われる。正式にリリースされるのが待ち遠しいな。

Exclusive: MSN Desktop Search Revealed
http://www.neowin.net/comments.php?category=main&id=25605

Post a comment to '『MSN Desktop Search』の画像が公開されている'



November 15, 2004

[論文紹介]オントロジ技術の応用に関する一考察(つづき)

Posted at 20:21 in . | 0 Trackbacks, 0 Comments

で、疑問になるのが世界を概念に切り分けるのを誰がどうやってやるのかだが、それについては以下のような記述がある。

 

OWLが概念形成に関連する用語を持っているとは言っても、それは人間が概念形成を行い、そのメモなどを作り定式化した後に、そのメモに基づきOWLで記述するというプロセスを取らざるを得ない。概念形成のメモをOWLで記述して実装し、それをテストするといった作業は、XMLやRDF、さらにOWLの環境に習熟した専門家を要求し、その作業量も膨大なものとなりそうである。そうなるとオントロジの作成コストも膨大になり、一般的な普及はかなり難しいことになる。

この問題を解決するには、かつてのエキスパートシステムのように、「シェル」と呼ばれたテンプレート埋め込み形式のユーザインタフェースツールを提供し、そのツールからOWLを出力し、オントロジを開発していく方法が考えられる。しかしそのためにはオントロジの事例などがそろい、その環境を評価できるようになっておかねばならないであろう。JAVAの開発で行われつつある、UMLとコードとの両方向変換などの手法が取り入れられるならば、一つの道が開かれる可能性はある。OMGのMDAがこのアプローチで、XMLを含む各種システムを開発する手法を検討しているので、MDAの枠組みにOWLを統合するアプローチがあっても良いのかも知れない。

OWLは最終ドラフトとして扱われている模様であるが、OWL Fullの扱いを見ても分かるとおり必ずしも完成されたものではない。先ずThingとNothingに基づきトップダウン的に一元的に世界を定義するのは無理がある。一世紀前にラッセルやヴィトゲンシュタインが試みた世界に近い発想だが、ゲーデルの不完全制定理の壁が存在する。むしろ個別分野におけるボトムアップ的なアプローチが現実的であろう。まあThingとNothingは、オントロジに執着する関係者の趣味と考えたい。

 

ぼくはアホの子なのでこれを読んでもいまいち良く分からないのだが、「先ずThingとNothingに基づきトップダウン的に一元的に世界を定義するのは無理がある」のあたりのくだりは興味深い。世界をどうやって切り分けるかというのはおそらく多分に主観の入り込みうる部分で、それをどうするのか、たとえば唯一絶対の世界の切り分け方をつくってそれを規格化してしまうのかとか、そのあたりの解決策については論文中に示されていない。もうちょい突っ込んで調べてみたい部分である。

 

オントロジ技術の応用に関する一考察
http://www.ipsj.or.jp/members/SIGNotes/Jpn/25/2003/041/article001.html

Post a comment to '[論文紹介]オントロジ技術の応用に関する一考察(つづき)'



[論文紹介]オントロジ技術の応用に関する一考察

Posted at 19:53 in アホの子だけど論文を紹介しちゃうぞ . | 0 Trackbacks, 0 Comments

オントロジひいてはセマンティックWebについてその概要を紹介するサーベイ論文。ラッセルやらヴィトゲンシュタインやら認知心理学やらエジプト文明のヒエログラフやらを紐解きながらオントロジ技術の最新の動向を敷衍するという内容で、読み物としてとてもおもしろい。著者の大野邦夫氏はドコモシステムズ所属で、そのためか文中には携帯電話への言及があったりする。

以下、興味を惹かれた部分を適当にまとめる。

 

・OWLで表現される概念について

OWLで表現される概念はおおきく3つに分類される。分類概念、特性概念、定量概念である。

(i)分類概念

Thing, Nothingという根っこから出発して、世界をオブジェクトに分類していこうというもの。たとえば世界から「動物(animal)」という概念を切り出すケースを考えよう。

まず、Animalというクラスを宣言する。Labelタグで新しい概念を導入する。

<owl:Class rdf:ID="Animal" >
  <rdfs:label>Animal</rdfs:label>
  <rdfs:comment>これは「動物」を表す概念だよ。</rdfs:comment>
<owl:Class>

これで「動物」という概念を新たに宣言したことになるらしい。この概念をさらに分割していく。たとえば、動物には雄と雌がいるので。

<owl:Class rdf:ID="Male>
  <rdfs:subClassOf rdf:resource="#Animal"/>
</owl:Class>


<owl:Class rdf:ID="Famale"> <rdfs:subClassOf rdf:resource="#Animal"/> <owl:disjoingWith rdf:resource="#Male"/> </owl:Class>

subClassOf要素で、概念の親子関係を表現する。また、disjoint要素でお互いに排他的な関係であるということを表す。上の例では、雄であると同時に雌であるというような動物は存在しないということになる。

こんな感じで、世界をどんどん概念に切り分けていく。

(ii)特性概念

すでに分類されてる概念を修飾する。オブジェクト間の関係を記述するものと、オブジェクトとデータ型の関係を記述するものに分けられる。

<owl:ObjectProperty rdf:ID="hasParent">
  <rdfs:domain rdf:resource="#Animal"/>
  <rdfs:range rdf:resource="#Animal"/>
</owl:ObjectProperty>


<owl:ObjectProperty rdf:ID="hasFather"> <rdfs:subPropertyOf rdf:resource="#hasParent"/> <rdfs:range rdfs:resource="#Male"/> </owl:ObjectProperty >

この場合、オブジェクト間にhasParent関係を定義する(2つの動物を関連づける)。また、hasParent特性の関係する適用領域(domain)と、結果として値が取りうる範囲(range)を宣言する。この場合は親子が共にAnimalなので、domainもrangeも同じになる。

特性を継承することにより範囲を狭めることができる。たとえば、値となる親のレンジを雄に限ることで父親を定義する。

(ii)定量概念

すでに定義されている特性概念に、数の情報を付加する。

<rdfs:subClassOf>
  <owl:Restriction owl:cardinality="1"/>
  <own:onProperty rdf:resource="#hasFather"/>
</rdfs:subClassOf>

 

長くなってきたのでエントリを分ける。

Post a comment to '[論文紹介]オントロジ技術の応用に関する一考察'



<a>タグが含まれているコメントを拒否するプラグイン

Posted at 17:03 in . | 0 Trackbacks, 0 Comments

MovableTypeをバージョンアップした途端、ふたたびコメントスパムの襲来に悩まされることになった。で、<A>タグを含むコメントをブロックするというシンプルながら効果の高そうなプラグインが『鵺的:想空間』というblogで公開されていたので、さっそく入れてみた。

インストールはとっても簡単。mt-spamstop_20041107からmt-spamstop_20041107.tgzを落としてきて、解凍してMovableTypeのpluginsフォルダに入れるだけ。

blogへのコメントスパムというのは、コメントそのものによる宣伝効果よりも、インリンクを増やすことによるSEO効果を狙って為されることが多い。経験上、コメントスパムにはかなり高い割合で<A>タグが含まれるので、このプラグインは有効なんじゃないかとおもふ。


mt-spamstop_20041107(@鵺的:想空間)
http://www.so-kukan.com/gnue/archives/2004/11/mtspamstop_2004.html

Post a comment to '<a>タグが含まれているコメントを拒否するプラグイン'



Google Toolbarの"このページに投票します"ボタン

Posted at 3:56 in . | 0 Trackbacks, 1 Comments


gt.PNG

Google Toolbarのオプションをいろいろ弄くっていたら、"このページに投票します"、"このページに反対投票します"の2つのボタンを表示できるということに気付いた。これはいったい? 「google "このページに投票します"」でぐぐっても1件もヒットしない。ためしにボタンを押してみても何の反応もない。googleには何かしらのデータが送られているのだろうか。

Google Toolbarのヘルプ(英語)を見ると、説明があった。引用すると、

Voting buttons: If you especially like or dislike a web page you're visiting and want to share your opinion with Google, you can vote thumbs up by clicking the happy face or thumbs down by clicking the unhappy face. These buttons can also be used to report especially useful or unsatisfactory results after searching with Google. Just click the appropriate button while you're still on the results page. This feature is currently in test mode, so you will not notice any immediate effects based on your action, other than experiencing a warm sense of satisfaction from having shared your feelings with people who really do care.

試訳:
とびっきり気に入ったりむかついたりしたページがあったとき、もし君がそうしたいなら、君の意見をgoogleに伝えることができるよ! 気に入ったページならにっこり顔、むかついたページならむっつり顔のボタンを押してね。もちろんgoogleの検索結果に対して使うこともできるよ。この機能はまだテストモードだから、他の誰かと感覚を共有したという経験を得られるだけで、君の投票がすぐ何かに反映されたりということは無いけど。

……とのこと。googleがこんな情報を集めてどうしようとしているのかは分からないけど、上手く使えればおもしろいかも。

Post a comment to 'Google Toolbarの"このページに投票します"ボタン'



November 11, 2004

ウェブポケットエクスプレス

Posted at 19:19 in . | 3 Trackbacks, 0 Comments

お手軽に大容量データ受け渡しソリューション。

  1. データを送る側が、送りたいデータをウェブポケットのサーバにアップロード。
  2. 送りたいデータと送りたい相手のメールアドレスを指定
  3. ダウンロードURLが記載されたメールが相手に届く
  4. 相手がデータをダウンロードする
  5. アクセス状況確認機能で、相手がちゃんとデータをダウンロードしたかを確認できる

複数の相手に同時送信可能。送信にはユーザ登録(有料)が必要。受信は誰でも可能。まあまあ便利そう。

株式会社ウェブポケットはソニー資本。

ウェブポケット
http://www.webpocket.net/ja/index.html

Post a comment to 'ウェブポケットエクスプレス'



November 9, 2004

ToyotaのIMTS(Intelligent Multimode Transit System)

Posted at 3:54 in . | 0 Trackbacks, 1 Comments

img_imts2.jpg

 

そのコンセプト自体も非常に格好良いのだが、それよりも、Webサイトに載ってるこの絵に激しく悶えてしまった。こんなのが街のなかを当たり前のように走ってる近未来を大いに希望したい。

 

IMTS(Intelligent Multimode Transit System)
http://www.toyota.co.jp/en/tech/its/program/system/imts.html

Post a comment to 'ToyotaのIMTS(Intelligent Multimode Transit System)'



Awstats6.2のインストール

Posted at 3:45 in Fedora Core 2を自宅サーバに入れてみた . | 0 Trackbacks, 0 Comments

このblogのアクセス解析を見たいので自宅サーバにawstatsを入れた。備忘録がわりに入れ方を書いておこう。

先ず、Awstatのオフィシャルサイトからawstats-6.2.tgzを拾ってくる。現時点で、最新の安定バージョンは6.2。これを解凍。

tar zxvf awstats-6.2.tgz

次に、解凍されたフォルダの中にある"wwwroot"というフォルダの中身を、httpでアクセスできる場所に移す。ぼくのサーバだったらこんな感じ。ところでawstatsを使うには、解析結果のHTMLを作らせてそれにアクセスする方法と、awstatsを直接CGIとして実行する方法がある。前者の方法でやるならこのコピーは不要。後者でやったほうがなにかと楽なので、ぼくのサーバでは後者の方法でインストールした。

cd ./awstats-6.2/wwwroot
cp ./* /home/httpd/html/ -r

awstatsの本体は"cgi-bin"フォルダの中に入っている。ここにある"awstats.model.conf"というファイルが設定の雛形。これをそのまま使ってもいいけど、複製したものに手を入れるのがお作法かな。"awstats.conf"ってのがawstatsがデフォルトで読みに行く設定ファイルの名前になっているので、その名前でコピーしてやる。

cp awstats.model.conf awstats.conf

 

そうしたら"awstats.conf"を弄る。かなり大きなファイルで設定項目も多いが、最低限、次の4つだけ弄れば動く状態になる。

 

  • LogFile……解析したいアクセスログの所在を。Fedora Core 2なら/var/log/httpd/access_logがデフォルトになっていたとおもう
  • SiteDomain……awstatsを動かすサイトのドメインを。
  • DirCgi……awstatsの存在するフォルダ名を。ドメインの直下からのパスで指定する。たとえばhttp://blog.windy.ac/awstats/で動かしたければ、ここには"/awstats"と入れる。
  • DirIcons……同様に、アイコンファイルの存在するフォルダ名を。"wwwroot"の下にある"icons"とかいうフォルダがそれ。

 

awstatsの本体は"awstats.pl"というperlで書かれたスクリプトだ。Webサーバの設定によるが、これをCGIとして扱ってくれないなら、.htaccessを使ってオプションを指定してやるのが手っ取り早い。拡張子を.cgiに変えるとかその辺でも対応できる。.htaccessを使うなら、下の2行を書けばOK。

Options +ExecCGI
AddHandler cgi-script pl

ここまで出来たら、awstatsを実行できる状態になっているはず。次のようにすると、awstatsはアクセスログを読みに行って、解析データを作成する。

/home/httpd/html/awstats/awstats.pl config=awstats.conf -update

次のように出力されたら成功。

/home/httpd/html/blog/awstats/awstats.pl config=awstats.conf -update
Update for config "/home/httpd/html/blog/awstats/awstats.conf"
With data in log file "/var/log/httpd/blog/access_log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Jumped lines in file: 0
Parsed lines in file: 10
 Found 0 dropped records,
 Found 0 corrupted records,
 Found 0 old records,
 Found 10 new qualified records.

"Found n new qualified records."のところにゼロでない数字が入っていればOK。ここがゼロになってて、"Found n corrupted records,"のところに数字が入ってるなら、アクセスログの形式がだめぽである可能性が高い。apacheなら"combined"をログの形式にしていないとうまく扱ってくれかったとおもう、たぶん。アクセスログが見付からないとか、何か問題があるなら、その旨を教えてくれるはず。

最後にcronに仕込んで、定期的にawstatsを実行するようにしてやれば完璧。

で、このサーバで動いているawstatsはこちら。

http://blog.windy.ac/awstats/awstats.pl

Post a comment to 'Awstats6.2のインストール'



November 8, 2004

異国からのメール

Posted at 0:00 in . | 0 Trackbacks, 0 Comments

昨日MySpace.comとかいうメリケン国のSNSに登録したのだが、今日ログインしたらなんか見知らぬ相手からメールが着ていた。

「はーい。今度Japanに行くんだけどcoolなhangoutを案内してよ」

とか何とか言っている。いきなりこういうフレンドリーきわまりないメールを送りつけるのはあっちの文化なんでしょうか。

で、先方のプロフィールを見ると、ボストン在住、23歳のUnited States Army School of Ordinanceを出ているミュージシャンらしい。なんだその経歴は。しかも"Who I'd like to meet:"の欄を見るといきなりHayao Miyazakiとある。きさまアニオタか。と思いきやAsano Tadanobuともある。わけわかんない。何なのこいつ。

というか、僕はどういう返事をしたら良いのでしょう? 誰か教えてください。

Post a comment to '異国からのメール'



November 7, 2004

「今ここらへんさ!」メールサービス

Posted at 14:31 in . | 0 Trackbacks, 0 Comments
このサービスはボーダフォン携帯電話を対象にし,位置情報を利用して自分のいる"およその位置"をメールで他の人に知らせるためのサービスです.

 

なるほど。面白い。

ただ、これはこれで面白いのだが、真に必要とされているのは「今どこらへんさ!」メールサービスなのではないかな。「いま田中はどこに居るんだ」というのが知りたい局面は多々あってそこで簡単にそいつの居場所が分かると便利至極だ。相手が待ち合わせに現れないときとか。

誰にでも自分の居場所を教えてしまうのは嫌だから、何らかの認証の仕組みが必要になる。HotPlaceはその点、SNSというシステムをうまく使っている。ただ、あれは位置情報の更新が(サービスの側から見て)プッシュ型で、つまりユーザがHotPlaceにアクセスして「位置情報の更新」ボタンを押すタイミングでしか位置情報が更新されない。相手の居場所のリアルタイムな補足ができず、実際に使ってみると「ちょっと使いづらいな」というのが感想だった。そこのところを何とかしてくれるサービスが登場したらみんな大喜びだと思うのだが。携帯電話周辺の技術的なあれこれはまったく分からないが、やはり難しいのだろうか。

 

「今ここらへんさ!」メールサービス
http://netaro.ddo.jp/%7ev/p/ima.html

Vodafone: 位置情報を使おう1 「今ここらへんさ」メールサービス(@Research Survey Blog)
http://netaro.ddo.jp/%7esec/survey/archives/000209.html

Post a comment to '「今ここらへんさ!」メールサービス '



「今日の井原」、お引っ越しのお知らせ

Posted at 8:04 in . | 0 Trackbacks, 1 Comments

いままで研究室のWebサーバに置いていた「今日の井原」ですが、このたび僕の自宅サーバへと場所を移しました。URLは次のようになります。

お手数ですが、ブックマークやRSSリーダにURLを登録されておられるなら、変更をお願いします。今後とも「今日の井原」をよろしくお願いします;-)

Post a comment to '「今日の井原」、お引っ越しのお知らせ'



MySpace.comを使ってみてそろそろ日本でもナイスな個人ポータルサイトが出てきても良いんじゃないかしらとおもった

Posted at 3:55 in . | 0 Trackbacks, 1 Comments


(MySpace.comのプロフィール画面。クリックでpopup)
 

ソーシャルネットワーキング.jpの『SNSの栄枯盛衰』という記事を読むとこうあった。

Friendsterが出来たのは、まるで昨日のようだ。

しかし、実際は、もう2年前になる。 今は、人々は、MySpace.comに 流れているという。

MySpace.comは、ユーザ400万人以上を抱え、 Friendsterでは、出来ないことがたくさん出来る。 例えば、個々のページを、wallpaperというHTMLで カスタマイズしたり 音楽をUPしたり、ここの興味対象を見せたり、 inviteが出来たりと。

それは面白そうだというのでさっそくMySpace.comにアクセスし、ユーザ登録をしてみる。で、そうして出来たぼくのプロフィールが上に貼った画像である。クリックするとポップアップ・ウィンドウで大きなサイズのものが開く。

これだけ見ると、mixiやGREEを使っているひとは「普通だなあ」とか「何の変哲もないSNSじゃん」とか思うだろう。しかし、MySpace.comの偉いところは、上に引用した文章にもあるように、過剰にもおもえるカスタマイズ性の高さにある。プロフィールの外見をかなりのところまで弄れるし、映像をアホみたいにいくつも貼り付けて、ストリーミングで再生させるようにしているページも多い。自分の好きなミュージシャンの曲なんかをプロフィールに貼り付けて、「おれはこういう音楽が好きなんだぜ!」というのを主張しているのだ。権利関係がどうなってるかはよーわからんけど。

こういうのを初めて見る人はわりとショックを受けるとおもうので、ぜひMySpace.comでアカウントを取って、中をぐるぐると見て回ってほしい。mixiやGREEみたいに紹介制ではないので、誰でもトップページからアカウントを取得できる。MySpace.comの持つコミュニティとしてのオープンさと、ユーザの自己主張の強烈さは、日本国内のオンライン・コミュニティのどれにも類似するものがちょっと見あたらないように思う。過半数のユーザが自分の写真を載せているし、自分にまつわる情報をかなりのところまでオープンにしている。

このMySpace.com、いちおう分類としてはSNSになるのだろうが、方向性としてはたぶん「個人ポータル」と呼ばれるものにより近い。mixiやGREEはそこに集うユーザ同士のコミュニケーションの場を提供することを主体としているが、MySpace.comは第一に自己表現の場を提供しており、その一つ上のレイヤにユーザごとのコミュニケーションが乗ってくるという印象を受ける。

なんか知らないけどIT先進国ということになっている韓国でも、最近ではSNS的なサイトは個人ポータルを強く指向していると言う。言語の壁があって自分自身で試していないし、伝えられる情報の量も少ないのでいまいち彼の国の状況は把握できないのだが、ミニホンピとか何とかいろいろあって相当なユーザを獲得しているらしい。なぜ個人ポータルなのかということだが、個人ポータルの意義そのものはとても分かりやすい(……とぼくは思っている)。URLを渡すだけで自分がどういう人間で何が好きでひょっとしたらどういうことを考えているのかまでを端的に相手に伝えられるツールというのは今までは無かったが、こういう便利なソリューションがあるんですよと提案されれば使いたいという人は多い、潜在的に需要があるサービスだとおもう。ここ最近「blogを読むことで相手に自分のことが分かってしまう」、逆に「相手のことが分かる」みたいな議論をたまに見るが、そういった使われ方の延長線上でもある。実際、MySpace.comにはblogサービスも統合されている。

日本国内を見ると、個人ポータルに分類できるようなサービスで、強いものはまだ登場していない。個人ポータル的なコンセプトでやっているサービスに「ぱどタウン」というのがあるが、あれは子供向け過ぎてちょっとアレだ。コミュニティとしてのメンタリティがちょっと低すぎる。あれはあれでいいんだけどメインストリームにはならないだろう。yahooのアバターのようなサービスもあるが、あれは現状コミュニケーションを円滑にするためのギミックとしての色が強い。

NTTが『KiriBariWeb』というのを作っていたり、国内でも個人ポータルはそれなりに手がけられてはいるのだが、大きなユーザを集めているサービスはまだない。というか一般ユーザ向けのサービスとしてローンチされたものがまだほとんどないとおもう。空白地帯である。しかし、潜在的な需要としてはあるとおもうので、これから日本でもMySpace.comのようなサービスが登場し、mixiやGREEのようなポジションに位置するようになる可能性は大きいように思える。

Post a comment to 'MySpace.comを使ってみてそろそろ日本でもナイスな個人ポータルサイトが出てきても良いんじゃないかしらとおもった'



November 6, 2004

MovableTypeをアップグレードしようとした件のつづき

Posted at 9:40 in Fedora Core 2を自宅サーバに入れてみた . | 1 Trackbacks, 0 Comments

前のエントリの続き。

MovableTypeのデータの格納にはPostgreSQLを使っている。pgAdmin(GUIなPostgreSQL管理ツール)でデータベースの中身を覗いてみると、確かにmt_fileinfoなんていうテーブルは作成されていない。とりあえずmt_fileinfoを作ってみるという方針にする。拡張子がpmだのcgiだのになってるファイルに片端からgrepを掛けると、アップグレード版のアーカイブに入っているmt-upgrade31.cgiの中に、mt_fileinfoを作成するコードが見つかった。

mt-upgrade31.cgiでは、設定されているデータベースの種類($mt->{cfg}->ObjectDriver)によって処理を切り分けて、データベースに対してテーブルの追加やインデックスの作成をし、スキーマを新しいバージョンのものに対応させる処理をしている。PostgreSQLに対する処理は110行目から153行目までにある。

elsif ($mt->{cfg}->ObjectDriver =~ /postgres/) {
        print "hoge";
        @stmts = add_once(\@stmts, $dbh, 'mt_blog', 'blog_ping_technorati', 'smallint')
            unless has_column($dbh, 'mt_blog', 'blog_ping_technorati');
        @stmts = add_once(\@stmts, $dbh, 'mt_blog', 'blog_children_modified_on', 'timestamp')
            unless has_column($dbh, 'mt_blog', 'blog_children_modified_on');
        push @stmts, ('alter table mt_blog add blog_custom_dynamic_templates varchar(25)',
                      "update mt_blog set blog_custom_dynamic_templates = 'none'")
            unless has_column($dbh, 'mt_blog', 'blog_custom_dynamic_template');
        @stmts = add_once(\@stmts, $dbh, 'mt_template', 'template_created_on', 'timestamp');
        @stmts = add_once(\@stmts, $dbh, 'mt_template', 'template_modified_on', 'timestamp');
        @stmts = add_once(\@stmts, $dbh, 'mt_template', 'template_created_by', 'integer');
        @stmts = add_once(\@stmts, $dbh, 'mt_template', 'template_modified_by', 'integer');
        push @stmts, ('alter table mt_template add template_build_dynamic smallint')
            unless has_column($dbh, 'mt_template', 'template_build_dynamic');
        push @stmts, ('update mt_template set template_build_dynamic = 0 where template_build_dynamic <> 1 or template_build_dynamic is null',
                      'alter table mt_template alter column template_build_dynamic set not null');
        push @stmts, ('alter table mt_category add category_parent integer',
                      'update mt_category set category_parent = 0',
                      'alter table mt_category alter column category_parent set not null')
            unless has_column($dbh, 'mt_category', 'category_parent');
        push @stmts, ("update mt_entry set entry_basename = '' where entry_basename is null",
                      'alter table mt_entry alter column entry_basename set not null');
        unless (has_column($dbh, 'mt_fileinfo', 'fileinfo_id')) {
            push @stmts, <<FILEINFO;
create table mt_fileinfo (
    fileinfo_id integer primary key,
    fileinfo_blog_id integer not null,
    fileinfo_entry_id integer,
    fileinfo_url varchar(255),
    fileinfo_file_path text,
    fileinfo_template_id integer,
    fileinfo_templatemap_id integer,
    fileinfo_archive_type varchar(255),
    fileinfo_category_id integer,
    fileinfo_startdate varchar(80),
    fileinfo_virtual smallint
)
FILEINFO
            push @stmts, ("create sequence mt_fileinfo_id",
                          "create index mt_fileinfo_blog_id on mt_fileinfo (fileinfo_blog_id)",
                          "create index mt_fileinfo_entry_id on mt_fileinfo (fileinfo_entry_id)",
                          "create index mt_fileinfo_url on mt_fileinfo (fileinfo_url)");
        }
    }

ここで、@stmtsにpushされている文字列が、PostgreSQLに対して実行されるSQL文となっている。これを手作業で打ち込んで、mt_fileinfoテーブルを作ったり何だりしてやると、とりあえず動くようになった。いい加減な処置なので、まだどこかにエラーの種が残っているかもしれないけど。

PostgreSQLにはコマンドベースの管理ツール"psql"が付属している。これを下のように起動してやる。-Uでユーザ名、-dでデータベース名を指定する。

#psql -U postgres -d mt

で、あとはひたすらSQL文をこぴぺこぴぺ。

Post a comment to 'MovableTypeをアップグレードしようとした件のつづき'



MovableTypeをアップグレードしてるんだけど

Posted at 5:12 in Fedora Core 2を自宅サーバに入れてみた . | 0 Trackbacks, 1 Comments

真夜中の4時くらいに突然、自宅サーバのMovableTypeをアップグレードしようと思い立った。何だか寝ようとしても寝付けない感じだったし。自宅サーバでは未だにVersion 2.65を使っていたのだが、これを日本語版の最新バージョンにしようとした。

MovableTypeの日本語版公式サイトからアップグレード版をダウンロード。解凍して出てきたファイルを古いバージョンのMTのディレクトリにまるごと上書きコピーして、mt-upgrade30.cgi → mt-upgrade31.cgiと実行してやれば良いらしい。楽勝ですね。さっそく言われたとおりにしてみると。

[shin@shalm MT]$ ./mt-upgrade30.cgi
Content-Type: text/html

<pre>

Upgrading your databases:
Running 'update mt_author set author_type = 1 where author_type <> 2 or author_type is NULL'
Running 'alter table mt_author add author_remote_auth_username varchar(50)'
Running 'alter table mt_author add author_remote_auth_token varchar(50)'
Running 'alter table mt_blog add blog_allow_unreg_comments smallint'
Running 'update mt_blog set blog_allow_unreg_comments = 1'
Running 'alter table mt_blog add blog_allow_reg_comments smallint'
Running 'update mt_blog set blog_allow_reg_comments = 1'
Running 'alter table mt_blog add blog_manual_approve_commenters smallint'
Running 'update mt_blog set blog_manual_approve_commenters = 0'
Running 'alter table mt_blog add blog_old_style_archive_links smallint'
Running 'update mt_blog set blog_old_style_archive_links = 1'
Running 'alter table mt_comment add comment_commenter_id integer'
Running 'alter table mt_comment add comment_visible smallint'
Running 'update mt_comment set comment_visible = 1'
Running 'alter table mt_blog add blog_require_comment_emails smallint'
Running 'alter table mt_blog add blog_moderate_unreg_comments smallint'
Running 'alter table mt_blog add blog_remote_auth_token varchar(50)'
Running 'alter table mt_entry add entry_basename varchar(50)'
Running 'create index mt_entry_basename on mt_entry (entry_basename)'
Running 'create table mt_session (
session_id varchar(80) not null primary key,
session_data text,
session_email varchar(255),
session_name varchar(255),
session_start integer not null,
session_kind varchar(2)
)
'
**** WARNING: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "mt_session_pkey" for table "mt_session"

Running 'create index mt_session_start on mt_session (session_start)'
Creating comment_pending template.

Done upgrading your schema! All went well.

</pre>

3.0へのアップグレードは何の問題もなく成功。なのだが、

[shin@shalm MT]$ ./mt-upgrade31.cgi
Content-Type: text/html

<pre>

Upgrading your databases:
Running 'alter table mt_blog add blog_ping_technorati smallint'
Running 'alter table mt_blog add blog_children_modified_on timestamp'
Running 'alter table mt_blog add blog_custom_dynamic_templates varchar(25)'
Running 'update mt_blog set blog_custom_dynamic_templates = 'none''
Running 'alter table mt_template add template_created_on timestamp'
Running 'alter table mt_template add template_modified_on timestamp'
Running 'alter table mt_template add template_created_by integer'
Running 'alter table mt_template add template_modified_by integer'
Running 'alter table mt_template add template_build_dynamic smallint'
Running 'update mt_template set template_build_dynamic = 0 where template_build_dynamic <> 1 or template_build_dynamic is null'
Running 'alter table mt_template alter column template_build_dynamic set not null'
Running 'alter table mt_category add category_parent integer'
Running 'update mt_category set category_parent = 0'
Running 'alter table mt_category alter column category_parent set not null'
Running 'update mt_entry set entry_basename = '' where entry_basename is null'

An error occurred while upgrading the schema:

ERROR: column "entry_basename" does not exist on update mt_entry set entry_basename = '' where entry_basename is null at ./mt-upgrade31.cgi line 286.


</pre>

3.1へのアップグレードで失敗する。もう一回スクリプトを実行させると、

[shin@shalm MT]$ ./mt-upgrade31.cgi
Content-Type: text/html

<pre>

Upgrading your databases:
Running 'alter table mt_blog add blog_custom_dynamic_templates varchar(25)'

An error occurred while upgrading the schema:

ERROR: column "blog_custom_dynamic_templates" of relation "mt_blog" already exists on alter table mt_blog add blog_custom_dynamic_templates varchar(25) at ./mt-upgrade31.cgi line 286.


</pre>

メッセージが変わるもののやはり失敗する。3回目以降は2回目と同じメッセージである。エラーメッセージを適当に切り出してgoogleに入れてみても解決に繋がる情報を取れない。3.0へのアップグレードには成功しているっぽいので、とりあえず3.0として使えればいいやと思う。3.0と3.1の違いもよく分かってないし。

……で、新しくなったMovableTypeにログインして、格好良くなってるインターフェースに感心したりしつつ弄くっていると、記事の追加でエラーが出ることに気付いた。

エラーが発生しました:

Couldn't create FileInfo because Insertion test failed on SQL error ERROR: relation "mt_fileinfo" does not exist

記事をDraftとして追加する分には問題なく、それをビルドしようとするときにエラーになるようだ。調べてみるとmt_fileinfoはHTMLを出力するときに使われるテーブルらしく、これがどうにかなってるらしい。あたま痛い。

さあ、どうしたものか。たぶん続く。

Post a comment to 'MovableTypeをアップグレードしてるんだけど'



November 5, 2004

Speegle

Posted at 2:20 in . | 0 Trackbacks, 0 Comments

speegle.jpg

Googleの検索結果を読み上げてくれます。残念ながら日本語は通りませんでした。

 

Speegle
http://speegle.co.uk/

Post a comment to 'Speegle'



November 4, 2004

今日のもぶろげっと

Posted at 5:10 in MyBlogSearch -> もぶろげっと . | 0 Trackbacks, 0 Comments


スクリーンショット(クリックでpopup)

 

作り始めたときには「こんなシステム3日もあればできるぜ。わはは」とか思ってたんだけど今日に至ってもあんましできていない。そろそろ弄くり始めて3週間くらいか。かなり洗練されてちゃんと動くようにはなってきているけど、まだまだ直さなくちゃならない点は多い。実際に実装しようとするといろんな壁にぶち当たるな。今までいつもそうだったような気もするけど。

このうんこシステムときたらもう、ちょっと油断すると止まるし落ちるしゾンビ化したプロセスが30くらいうようよしてるしで非常にアレだったのだが、そろそろほったらかしにしておいてもちゃんと動いてくれるようになっていて、一時間に2,000くらいのペースでせっせとモブログ記事を蒐集してくれるようになっている。えらい。一時間に2,000というのは数字としてはちょっと小さくおもえるが、蒐集してきた記事のなかで画像の含まれないものは捨てており一定数が使えないことになるのと、本文を抽出したり画像をダウンロードしてサムネイルを作ったり云々の処理が入るので、まあ妥当なところだろう。できれば複数台のPCで分散して処理ができれば良いのだが、そのギミックを組み込むのはかなりの手間だろうからやるとしても最後の最後になる。

 

得られた教訓。複数の外部プログラムを提携させたり、ネットワーク経由でデータを蒐集したりといった不確定な要素が多いシステムを作るときには、最初からシステムのすべての要素を完璧に動作させようとするのではなく、どこかで何かがちゃんと動かないことがあっても、それがちゃんと動いていないことを補足してそれを切り捨ててやったほうがはるかにうまくいく。個々の処理を小さなタスクに分割してお互いの結合を疎にしてやって、あとはそれを管理する側に状態監視の機能を入れておいて、たとえば異常に時間が掛かるようなタスクがあればそれを削除して次に進むように作るというわけ。あとはロギングと、状態を監視するためのインターフェースの重要性を改めて知った。システムとしての機能には関わってこないくせに実装は面倒だけど、丁寧に作っておいたほうが後々ハッピーになれる感じ。そういえばJSpiderがやってることと一緒だが、やっぱりJSpiderは良くできてる。

今月中には公開に漕ぎ着けたいなあ。

Post a comment to '今日のもぶろげっと'



「家庭用ロボットの現状と将来展望」

Posted at 3:32 in . | 0 Trackbacks, 0 Comments

電子情報通信学会が「家庭用ロボットの現状と将来展望」と題した講演会をやるらしい。

概要:

ロボット技術の進展に伴い, 家庭内で気軽に使えるロボットが 普及しはじめています. このようなロボットは, 低価格化に伴い,玩具 やペットとして身近な存在になりつつあるとともに, 介護や家事などて 具体的な生活に役立つ存在しても注目されはじめています. 今回は,このような背景のもと, 家庭用ロボットで実務に携わっていた だいている講師の方々に御願いして, 家庭用ロボットの概要を,わかり やすく説明していただくとともに, 現状および,将来動向について概説し ていただきます.

参加は無料で、電子情報処理学会の会員でなくてもぜんぜんOKとのこと。「当日は、NECならびにソニーのロボットのデモを予定しています」だそうで、ものほんのロボットを目の前で見ることもできるらしく、なかなか面白そう。来年の3月9日、場所は港区芝公園の機械振興会館。

 

電子情報通信学会の講演会情報
http://www.ieice.org/tokyo/kouen.html

Post a comment to '「家庭用ロボットの現状と将来展望」'



System.Diagnostics.Processで外部exeを叩いたときになんか知らないけどデッドロックしたりしなかったりする件について

Posted at 3:02 in . | 0 Trackbacks, 0 Comments

ええと。.NETプログラミングのお話。Processを使って外部のexeファイルを叩いて処理を実行させ、その結果を標準出力経由で受け取るコードを書いていたのだが、何だか知らないけどたまにデッドロックする。具体的にはProcess.HasExitedがfalseを返し、Process.Respondingがtrueを返すという状態になる。

Process.WaitForExitの引数にミリ秒単位でタイムアウトまでの時間を設定することができるのでとりあえずこれに適当な時間を指定しておき、あとは

if ( !process.HasExited )
{
	if ( process.Responding )
		process.CloseMainWindow();
	else
		process.Kill();
}

とかやってうさんくさい後始末をしていたのだがこれは余計な待ち時間が入るので能率が悪い。これでも標準出力の結果はどうもきちんと取れているっぽいのだが。

結局MicrosoftのMSDNで解決策が見つかった。

Process.StandardOutput プロパティ
http://www.microsoft.com/japan/msdn/library/default.asp?
url=/japan/msdn/library/ja/cpref/html/frlrfsystemdiagnosti
csprocessclassstandardoutputtopic.asp

Process コンポーネントは、パイプを使用して子プロセスと通信します。子プロセスからパイプに書き込まれるデータによってバッファが満杯になる場合は、親プロセスがパイプからデータを読み取るまで、子プロセスがブロックされます。アプリケーションが、標準エラー出力および標準出力へのすべての出力を読み取る場合、このブロック処理がデッドロックの原因になることがあります。

左様で御座いましたか。これを反映して、手元のコードでは、Processを使ってexeを叩くあたりのコードはこんな感じになった。

Process process = new Process();
process.StartInfo.FileName = commandname;
process.StartInfo.Arguments = arguments;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.WorkingDirectory = JSPIDER_PATH;
process.Start();
temp = process.StandardOutput.ReadToEnd();
process.WaitForExit(1200000); //wait 20 minites
temp += process.StandardOutput.ReadToEnd();

やり方が分かれば何てことないバグだが、半日くらい潰してしまった。

Post a comment to 'System.Diagnostics.Processで外部exeを叩いたときになんか知らないけどデッドロックしたりしなかったりする件について'



November 3, 2004

eMinds GIF-Generator (via Google Blogoscoped)

Posted at 0:54 in . | 0 Trackbacks, 0 Comments

 

text.png

 

text2.png

 

text3.png

 

指定したフォント/サイズ/色でテキストを描画してくれるサイト。ちょっとした時に使えそう。

eMinds GIF-Generator
 http://www.eminds.se/generator/

Post a comment to 'eMinds GIF-Generator (via Google Blogoscoped)'



November 2, 2004

Darcs: peer-to-peerなソースコードマネジメントシステム

Posted at 23:02 in . | 0 Trackbacks, 2 Comments

Darcsなるものの存在をNed Batchelderのblogで知る。ソースコード管理システムというと、CVSをはじめとして、ぼくの知る限りではすべてがC/S(クライアント・サーバ)なシステムとなっているが、Darcsはなんか知らないがpureなP2Pで実装されているらしい。

Darcs is a source code control system, but with a different feel from most. Where most systems (CVS, Subversion, Perforce, ClearCase, Arch, and so on) use client/server topologies, Darcs is purely peer-to-peer. With Darcs, every working tree is a repository, on an equal footing with every other repository.

There is no central authority.

 

関連する文書を探してみるが、日本語で読めるものはほとんどない。英語だと、とてもしっかりしたWikiがあるのと、HTML版のマニュアルが公開されている。

Darcs オフィシャルサイト
http://abridgegame.org/darcs/

DarcsWiki
http://www.scannedinavian.org/DarcsWiki/FrontPage

Darcs 1.0.0rc3 マニュアル
http://abridgegame.org/darcs/manual/bigpage.html

 

マニュアルのさわりの部分を読んでみたが、ソースコード管理システムとしての機能では、CVS等の既存のシステムに比べて、際だった特徴というのは無いように思われる。いちいちサーバをたてる手間がないことと、中央集権的に管理するというスタイルを採らなくて済むことにメリットがあるという感じか。個人用途で使うには、いちいちサーバとクライアントを用意しなくてはならないC/S型のシステムは面倒で、こういったシステムが訴求力を持つ場面というのはありそうだ。

Post a comment to 'Darcs: peer-to-peerなソースコードマネジメントシステム'



November 1, 2004

googleのハロウィンロゴ 2001~2004 (via Google Blogoscoped)

Posted at 22:53 in . | 0 Trackbacks, 2 Comments

halloween01.gif
2001 ver.

halloween02.gif
2002 ver.

halloween03.gif
2003 ver.

halloween04.gif
2004 ver.

 

2003年のがいちばん好きだな。

Post a comment to 'googleのハロウィンロゴ 2001~2004 (via Google Blogoscoped)'



アセンブリを参照するには'dll'拡張子を指定する必要があります。

Posted at 22:44 in . | 0 Trackbacks, 0 Comments

VS.netでプロジェクト間の参照をさせようとした。つまりあるシステムをプロジェクトAとプロジェクトBという2つのプロジェクトに分けて別々に開発していたのだが、途中で2つのプロジェクトをマージして、プロジェクトAからプロジェクトBを参照し相手の機能を呼び出す形で実装したほうがスマートだということに気付いたのでそうしようとしたのだ。

さっそく2つのプロジェクトを束ねるソリューションを作成し、その中にプロジェクトA&Bを入れた。そしてソリューションエクスプローラからプロジェクトAを選択し、右クリックで[参照設定]->[参照の追加]を選び、プロジェクトBを追加してOKボタンを押したら怒られた。


「(プロジェクト名)への参照を追加できませんでした。アセンブリを参照するには'dll'拡張子を指定する必要があります。」

 

わけわかめ。解決策を求めてにょろにょろとあちこちを調べてみると、どうもプロジェクトBのアウトプットをexeファイルにしていたのがいけなかったらしい。プロジェクト間の参照をするには、参照される側のプロジェクトがdllをアウトプットするように設定しておかなくてはならないようだ。ふうん。プロジェクトのアウトプットを変更するには、ソリューションエクスプローラからプロジェクト名を右クリックし、プロジェクトのプロパティを開く。そして[共通プロパティ]->[全般]->[アプリケーション]->[出力の種類]を「クラスライブラリ」に変更すればおっけー。exeではなくdllを吐くようになる。これでプロジェクト間の参照が通るようになった。めでたしめでたし。

dllじゃなくちゃダメ、というのは、確かに言われてみるとそんなものかと何となく納得してしまうのだが、C/C++に慣れ親しんできた身からするとちょっと違和感がある。C/C++だとソースコード間の参照に通常includeディレクティブを使うので、ソースコードのレベル(コンパイルされる前の段階)で参照が行われるというのが自然な感覚だ。なので、出力がexeかdllかなんてのにいちいち煩わされるのは変な感じがする。このあたり、もっと.NETのことを知れば納得できるのだろうが。マイクロソフトプレスの.NET framework本を読んでみようかなあ。買ったきり積ん読になってるあれを。

Post a comment to 'アセンブリを参照するには'dll'拡張子を指定する必要があります。'



9199.jp

Posted at 19:40 in . | 1 Trackbacks, 2 Comments

9199.jpという検索サービスが登場したらしい。CNETの

「広告費10億円、05年度売上高60億円」--検索市場に切り込むGMOの狙いとは
http://japan.cnet.com/interview/story/0,2000050154,20075228,00.htm

という記事を見て、どんなものかと思って試してみた。

 

仕組みとしては、ブラウザのアドレスバーに日本語で検索したい単語を打ち込むと、そこからGoogleやyahooといった各種検索エンジンの検索結果に飛べるというもの。JWordを知っているひとなら、アレの延長線上にあるもの、といえば分かりやすいとおもう。

9199のサイトでプラグインのインストーラが提供されている。これをダウンロードしてインストールすると、ブラウザ(Internet Explorer)のアドレスバーに日本語を打ち込んだときに、下のようなメッセージが出るようになる。

9119.PNG

ここでそのままリターンを押すと、こんな感じのページに飛ばされる。


(クリックでpopup)

 

ここから色んな検索エンジンの検索結果を見たり何だりできる。

 

で。このサービス、新規性みたいなものはまったく無いと言ってよいとおもう。検索サービスとは言うものの、やっていることといえば、他の検索エンジンへのリンクを提供するだけである。検索エンジンとしての機能には、9199オリジナルなものはなにもない。他の検索エンジンの検索結果に何らかの加工をするわけでもなく、いわゆる「メタ検索エンジン」の括りにも入らないのでは。ほんとうにこんなサービスで60億円もの売り上げを出そうとしているのだろうか、とおもってしまう。

CMを打つなどして知名度を上げて、あまりリテラシの高くないユーザ層を取り込もうとしているのだと思うけど、上手くいくのかな。失礼なことを言うと、こんなちょっと気の利いた高校生でも作れるようなサービスが成功を収めてしまうとしたら、それはあまり正しくないという気がする。

Post a comment to '9199.jp'



「この記事についてgoo ブログを書こう!」

Posted at 16:12 in . | 0 Trackbacks, 0 Comments

gb.PNG

「goo ニュース」の記事を読んでいたら、本文の下に「この記事についてgoo ブログを書こう!」とかいうリンクがあるのに気付いた。どんなふうになるのか試してみたかったので、gooのアカウントを取ってblogを開設し、件のリンクをあらためてクリックしてみる。新しいエントリの投稿画面に飛び、そのニュース記事のタイトルとリンクが予め本文の欄にfixされているようだ。ふうん。

誘導の仕方としてはまあまあ面白いとおもった。ユーザの囲い込みにもなるし、あのリンクを見て「ブログって何かしら」って気に掛けてくれるひとが一定数いるだろうし。

Post a comment to '「この記事についてgoo ブログを書こう!」'