2011年3月2日水曜日

用語:粗結合と疎結合について

以前の人と人とのつながりに関する記事(Twitter と飲みニケーション人のつながりにおける密結合と粗結合)でつかっている「粗結合(そけつごう)」 について。

以前の記事で書いた、「そけつごう」は、loose coupling の日本語訳として?、プログラミングの世界でよく用いられ、「システムの要素どうしの連関が、互いに交換可能である程度に緩いこと。」などのような意味で用いられています。この際、漢字表記は、「疎結合」と書くことが多いようです(「粗結合」とも書くようですが)。
プログラミング上での意味の、相互に依存しない関係は、確かに質的に「結合が強くなく、疎である」と考えられるので「疎結合」でもあっていると思います。ただ、この表記だと「結合の数が少ない、あまりない」ともとれてしまう気もします
個人的に前の記事で述べている "人のつながりの「密結合」と「そけつごう」"では、とくに後者に取られてしまう可能性が高いので、どちらかというと「粗結合」と書いたほうがいいかなと思っています。

人のつながりにおいては、数が少ないというより、結合の密度というか束縛度が低いという感じ。

2011年3月1日火曜日

人のつながりにおける密結合と粗結合

以前の記事で書きましたが(Twitter と飲みニケーション)、粗結合のほうが好きな傾向がある人と密結合のほうがすきな傾向がある人がいるような気がするんですよね。もちろん、場面や関係によって、結合(つながりかた、コミュニケーション)の選び方が違うと思いますが、全体的な好みもあるような気がします。

でもこの、密結合とか粗結合というのが、なんとなく感覚的で良く分からないので、少し考えてみました。
まず具体的に、どういうつながりかた(結合)が密結合で、どういうつながりかたが粗結合か考えて、リストを作ってみました。上から順に密結合から粗結合へいく気がします。

↑密結合
・飲み会やイベントでの会話
・日常会話
・電話
・ニコニコ生放送
・facebook
・携帯電話でのメール
・mixi 等
・skype(チャット、会話などいろいろあるけれど…)
・PC 等でのメール
・twitter
・はてなブックマーク
・blog
・小規模掲示板
・(旧)ニコニコ広場
・大規模掲示板 (2ch)
↓粗結合

あくまで伝達方法なので、使い方によって順位は変わってくると思います。たとえば携帯電話のメールを即時性を重要視する使い方をしていれば、電話より相互の状態が強く繋がって依存している状態になりますし、twitter や blog でも実際の顔見知りの人同士で使っていれば、電話ぐらいには密な結合になる気がします。
ただ、一般的に、下に行くほど互いの情報をあまり持っていなくても成立し、使用する際に両者がリアルタイムに時間をあわせる必要性が低くなる、より粗な結合になると思います。

密とか粗とか、凄く抽象的で感覚的なので、具体的にどのような要素で構成されている感覚なのか、考えてみたところ、
  • リアルタイム性(使用する際にどの程度相手の都合にあわせなければならないか)
  • 背景情報の共有度(相手のことをどれだけ知っているか)
  • 通信時の情報量(テキストか音声か、画像や映像か)
の 3 つが思い浮かびました(プログラミングでの意味とは少し違うかもしれませんね)。
先ほどのリストの下に行くほど、それぞれの項目の度合いが低くなり、一方、上に行くほど、結合が密になり他の関係との代替が困難になります。


具体的に個人の傾向で考えてみると、メールより電話を好む人は、いろいろな情報を知れるので、実際に会ったり飲み会で話すのが好きだったりする一方、メールでやりとりするのが好きな人は、twitter などが非同期的(擬似同期的?)で拘束が少なく好きだったりする気がします

また、職業的にも営業担当の方は密結合がウリであるところもあり、上のほうのコミュニケーションを好むように思いますし、開発やさらに研究の人はなるべく非同期的な粗結合のもので連絡して欲しいと思う気がします(Togetter-電話するならまず先にメールでアポを取るべき)。(電話の密結合的なリアルタイム性は、やっぱり迷惑を感じますよね…。)

このように密結合と粗結合を意識して、日ごろの好みで相手がどういう連絡手段がすきそうか考えると、上記の営業の人と開発の人みたいな齟齬が減って便利じゃないかなと思います。

2011年2月25日金曜日

Vala プログラミングに valide を使ってみる。

Vala の開発環境にはいろいろあるみたいだけれど、valide を使ってみた。
Windows 版の exe もあるみたいですが、とありえず ubuntu 10.10 で。

Valide (https://launchpad.net/valide ) の valide-0.7.0.tar.gz をダウンロードして、README を読んでビルドしてみましたが、各種ライブラリを手動でいれていかなければいけなくて面倒なのに加えて、なぜか「No package 'vala-1.0' found」とでてしまい(vala 0.10.3 とか、0.11.5 とかならあるのだけれど)、うまく起動できませんでした。

仕方がないので、こちらの PPA をいれて、インストールしてみました(というか vala の最新版を入れるときに使っていて、ふと valide あるのを見つけました…)。
https://launchpad.net/~vala-team/+archive/ppa

無事以下のような感じで動きました。ファイルの管理がしやすい、使うライブラリ(?)をプロジェクトごとに管理できるので、--pkg gtk+-2.0 つけてコンパイルしなくていい等、多少楽できるのかな?と思います。


Valide のウインドウ。





Valide。新規プロジェクト作成時の画面。言語では Vala 以外に Genie も選べる。

2011年2月21日月曜日

Vala に関する資料のリンク集。

Vala の使いどころ
  • C#に近い文法のオブジェクト指向プログラムからC言語/GObjectのコードを生成するValaについて(概要) (http://d.hatena.ne.jp/kakurasan/20090427/ ) → linux 上での話に限定されるけれど(もとより主に linux 用ではあるけれど)、まとまっていると思います。 Mono との比較ですが、Java でも同じような話になりそう。


Vala についての情報
  • Valaについて語りませんか (http://www.pctec.2chmatome.info/?p=720 ) → スレッドを保存し、ノイズを除いたもの。体系的ではないけれど、断片的な知識や手がかり的な情報が手に入り有用かもしれません。



Vala のドキュメント、valadoc
  • Valadoc について (http://live.gnome.org/Valadoc ) → vala のソースコードのコメントからドキュメントを作成する。javadoc 的な。
  • Valadoc (http://valadoc.org/ ) → 使える既存のライブラリ (vapi ファイルが作成されているもの?) などを調べられる。valadoc で作成(?)。GTK などを使うときに便利。


Val(a) IDE
  • Valide http://www.valaide.org/ → まだ機能は少ない気がするけれど、vala の IDE、valide のホーム。windows 版もある?
  • https://launchpad.net/valide → valide の開発用 launchpad。

2011年2月20日日曜日

blogと「わた」の位置づけ。

すこし悩んだけれど、この「わた」っていうアイデンティティ(この blog や広場まとめなどなどぜんぶ含めて)を活かしていこうと思う。
他に新規にアカウントや blog つくってもいいのだけれど、このアイデンティティに愛着があります。そのまま置いておくのも残念なので。
技術系の内容を中心に、オープンな web で、困ったときに検索するとひっかかるようなコンテンツを展開することを目標にしたい。

2011年2月19日土曜日

日本のユーザーのみる facebook と twitter の違い

以前投稿した記事(Twitter と飲みニケーション)に少しだけ関係しているかもしれない。

リアルの関係を超えて、いろんな趣味や興味のあうことで緩やかに広くつながってる日本の多くの匿名ツイッタユーザーの用途には、現実の拡張でしかない facebook は合致しないし、ツイッタのいいところを兼ね備えた上位互換を想定してつかうとすごくがっかりすると思う。
Facebook ページのリニューアルは、趣味や嗜好などに関して、現実からの拡張につながりやすさを持ち込むために作られているように感じるけれど、数日スパンの事柄については不向きだと思うし、ページの乱立は facebook 側は想定していない気がする(日本のユーザーがその気になれば、日本語の wikipedia の各種趣味のページなどのように、ふくらんでいく)。そういう部分は facebook ページではとらえられないし、何より複雑でめんどうくさい(ツイッタなら、タグをつけて検索すればいい、すごくシンプル)。
一方、匿名でリアルの関係で、少なめのフォロワーでツイッターを楽しんでいる人たちには、facebook にはあうと思う。
ただ、日本の場合、各種サブカルチャーや他国に比べ異常に多いブログとの親和性、ニコニコ動画等の匿名でのコミュニティ形成などから考えると、緩やかに広くつながってる匿名ツイッタユーザーのほうが多い気がする。そういう意味で、日本のツイッタユーザーは facebook には移行しにくいし、上記のように勘違いして移行しても、また twitter に戻ってしまうような気もする。

  

2011年2月11日金曜日

Vala でプログラムを書く (Gtk を使ってみる)。

前回(Vala でプログラムを書く。) のつづき。
Vala の使い方が分かってきたので、他のライブラリを使ってみたり、GUI アプリケーションを作ってみるために、Gtk を使ったサンプルを動かしてみる。

たとえば、こちら (Vala GTK+ Examples) の一番上のサンプルコードをコピーして vala ファイル (gtk-hello.vala) を作成し、以下でコンパイル (コンパイル等については、前回:Vala でプログラムを書く。参照)。

$valac --pkg gtk+-2.0 xxx.vala


コンパイルする際には gtk 2.0 が必要になります(ない場合、「gtk/gtk.h: そのようなファイルやディレクトリはありません」等エラーが出ると思います)。
Ubuntu 10.10 環境では、Synaptic で「libgtk2.0-dev」を入れたら、コンパイルできました(libgtk2.0 自体は入っていたようです)。Synaptic 便利。


実行すると、以下のようなウインドウができます。GTK を使えば、ちいさめのアプリケーションならある程度作れそうですね。


Vala で gtk2.0 アプリケーション。hello world。ウインドウ内にはボタンがあります。



Vala で gtk2.0 アプリケーション。hello world。ボタンをクリックした場合。