数日前に日本語版が出た
http://books.google.co.jp/
これまで作った物の名前で検索してみたら、それぞれ知らない書籍で言及されてた
ついでに右側にAmazonや出版社直販のリンクも出てくるのが小憎い。Google翻訳と連動したらいいなあ
スペイン語圏?の学会誌みたい
Pileus
Prolifération Des écrans / Proliferation of Screens
Teleshadow
The Social Dynamics of Information and Communication Technology
8000円する本だからちょっと買えないな・・・
と思ったけどabst見ると面白そうだから買おうかな
今週の金曜日に去年もあったシンポジウムがまたあります。
今回はPhysical ComputingやMaking Things TalkのTom Igoe先生と、Gainerの小林茂先生の講演があります。
xtel: Ubiquitous Content Project: 「ユビキタスコンテンツシンポジウム 2009」開催
2009年2月27日・28日、「ユビキタスコンテンツ製作支援システムの研究」は、東京・代官山ヒルサイドバンケット・ヒルサイドプラザにて、「ユビキタスコンテンツシンポジウム2009 – And then there are three. -」を開催致します。
ユビキタスコンテンツとは、私たちの衣食住遊に新たな経験と感動をもたらすコンテンツです。それらは物や環境に溶け込み、人や状況によってダイミックに変化し、ネットワークを作成し、経験の蓄積や連動を可能とする必要があります。しかしながら、この近未来のコンテンツを製作するためには、従来のデザインツールやデザインセオリーでは不十分でした。そこで私たちは、この問題を解決するためのツールとしてユビキタスコンテンツプラットフォーム「xtel」を開発してきたのです。
今年度のシンポジウムは「And then there are three.」をテーマに据え、「Making Things Talk」著者のTom Igoe氏、「Gainer」開発者の小林茂氏をゲストスピーカとしてお招きし、「未知なるもの」をデザインする「ツールのデザイン」についてディスカッションを行います。また作品展では、われわれの新たなデザインセオリーを踏まえ、「xtel」によって構築したユビキタスコンテンツを皆様に体験していただきます。
皆様のご来場を心よりお待ち申し上げております。
日時&場所:
・シンポジウム(作品展 内覧会あり)
2009年2月27日(金) 13:00~19:00 (開場 12:30)
代官山ヒルサイドバンケット
・作品展
2009年2月28日(土) 10:00~19:00
代官山ヒルサイドテラス
http://www.hillsideterrace.com/access/index.html
参加費用:
無料
お席に限りがございますので、
シンポジウムにご来場される方は事前登録にご協力ください
事前登録方法:
シンポジウムへのご来場をお考えの方は、
・お名前
・所属
・電話番号
・メールアドレス
を添えて、xtra [at] imgl.sfc.keio.ac.jpまでメールをお送りください。
シンポジウム プログラム
第1部:デザイン思考とプロトタイピングツール
13:00 – 13:20 開会挨拶と進捗報告 (稲蔭正彦)
13:20 – 13:50 講演1 (Tom Igoe氏)
「フィジカルコンピューティングにおけるプロトタイピング」
13:50 – 14:30 講演2 (奥出直人)
「デザイン思考とプロトタイピング」
14:20 – 15:00 討論および質疑応答
・すべてのプレゼンテーション資料は英語になります.
・講演1および討論は英語にて行います.
休憩
第2部:コンテンツデザインのためのツール
15:20 – 15:40 展示作品紹介
15:40 – 16:00 講演3 (石澤太祥・植木淳朗)
「xtel」
16:00 – 16:30 講演4 (小林茂氏)
「Gainer/Funnel」
16:30 – 17:10 討論および質疑応答
・すべてのプレゼンテーション資料は英語になります.
・討論は英語にて行います.
休憩
第3部:内覧会
17:30 – 19:00 ヒルサイド プラザにて内覧会
Google SketchUpの無料版を使ってみている。
3DモデリングなんてStrata 3Dの時以来で、全然詳しくないんだけどSketch Upがわかりやすすぎてびっくりした。
有料版だとAutoCADやdxfなどの形式でデータを書き出せるようになるが、無料版ではsketchup独自形式でしか保存できない。
でも今回は手で工作するつもりなので無料版でいいや。部品の位置合わせに使う。
ここまでインストールして10時間?ぐらい
部品は実寸で作っておいて、配置をキメるためにコンポーネント登録して動かしている。基盤の配線があるので悩む。
寸法や注釈とか入れれるのが見た目的に良い
無駄にファンもモデリングしてみた。なんの意味もない。
まず、他のモデリングソフトと比べてもコントロールパネルの類が少なくて、何をしていいのかわからなかったのであきらめそうになり、ライノセラスに浮気したりもしたけど、ビデオチュートリアルを初級編の最初の数個と、椅子の作り方、move/follow me/circleツールあたりを見たら大体感覚がわかった。
とくにこの椅子の作り方 (Google SketchUp New Users 4: Create a Chair) が大変良い。とんでもない速度で椅子が作られてびっくりした
Rubyスクリプトをexeにできる。
試しにRuby本体もgemもアンインストールしてみたが動いたので、exe内にruby本体とrequireしたファイル全てが収まっているみたいだ。
少し古いけどRuby on Railsをexe化する記事もあったので、使い道があるんじゃないですかね。
RubyScript2Exe – A Ruby Compiler
から、rubyscript2exe.rb をダウンロードしてきてexe化したいrubyスクリプトと同じディレクトリに置く。
今回は試しにfeed-normalizer – 橋本詳解をexe化してみる。
引数で渡したURLのRSS/Atomフィードを表示する簡易Feedリーダー。引数なしではこのblogのfeedを読み込む。
rss.rb として保存(Windows用に出力文字コードだけshift_jisに変更した)
require 'rubygems'
require 'feed-normalizer'
require 'open-uri'
require 'cgi'
require 'kconv'
require 'pp'
uri = ARGV.shift || 'http://shokai.org/blog/feed/'
puts "parse #{uri}"
feed = FeedNormalizer::FeedNormalizer.parse open(uri)
puts "title: #{feed.title.tosjis}"
puts "(#{feed.entries.size}entries)"
#feed.clean!
feed.entries[0..3].each{ |e|
puts e.url
puts e.content.tosjis
puts e.last_updated
puts ''
}
#pp feed.entries[0]
■exe化
ruby rubyscript2exe.rb rss.rbで、rss.exeが生成される。
Rubyそのものが格納されるのでファイルサイズがでっかい。puts ‘test’しただけのコードをexe化したら900kb超えた。
このrss.rbだと5個requireしているので1.5MBになった。
まあファイルサイズは大した問題でもないか
ちょっとUDPを使ってアプリを作る用事があるので、まずは.NETのSystem.Net.Sockets.UdpClientクラスでシンプルなテキストチャットを作ってみた。相手のIPアドレスとポートを指定してメッセージ(文字列)を送り、受信側はポートを開けてさえいればメッセージが読める。
UDPによりデータの送受信を行う: .NET Tips: C#, VB.NET, Visual Studioを参考にした。
学部の頃にインターネット概論という授業で、
- コンジェスチョンコントロールがない
- フローコントロールがない
■ソースコード
shokai / C# UDP Sample / source — bitbucket.org
(VisualStudio2008pro C#で作成)
別ホスト(VMWare上のUbuntuでmonoで実行)とも通信できた

■UdpClientの使い方
まず必要な物読み込んで
using System.Net;
using System.Net.Sockets;
UdpClientオブジェクトを作ってportを開く。
UdpClient client = new UdpClient(6000); // 受信port
client.DontFragment = true;
client.EnableBroadcast = true;
これですでに受信できるようになっている。
相手のIPアドレスかホスト名とportを指定して、UTF8エンコードで送信
Encoding encoding = Encoding.UTF8;
byte[] sendBytes = encoding.GetBytes("送信する文字列");
client.Send(sendBytes, sendBytes.Length, "192.168.0.15", 6000);
受信バッファから読み出すと、文字列と受信元IPとportがわかる。
if (client.Available > 0)
{
byte[] recvByte = client.Receive(ref remoteEP);
Console.WriteLine("receive: " + encoding.GetString(recvByte) +
" (form" + remoteEP.Address + ":" + remoteEP.Port+")");
}
最後にUdpClientを閉じるのを忘れないように
client.Close();
チャットアプリの実際の処理はUDPClientSampleForm.csに全部書いてある。受信を別スレッドにしてある。