国際的な相互運用とオープン技術 - 日時と文字 -

Post on 07-Dec-2014

355 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

オープン技術特論、2013-10-24、@はこだて未来大学 2013-10-24 v1.1 2013-10-25 v1.2 口頭説明などを追記

TRANSCRIPT

国際的な相互運用とオープン技術 - 日時と文字 -

山口琢

v1.2 2013-10-24

2013-­‐10-­‐24  オープン技術特論 山口琢 1

山口琢 •  職歴

–  株式会社日立製作所

–  株式会社ジャストシステム

–  はこだて未来大学大学院博士課程(後期)

•  分野 –  文章、文書処理

文書交換のためのデータ形式変換、自動レイアウト、検索、文書管理、 テキストマイニング、編集

–  スケジュール管理、年表

•  職種 –  学生、企画、開発、エヴァンジェリスト、コンサルティング

2013-­‐10-­‐24  オープン技術特論 山口琢 2

アジェンダ

•  相互運用性とオープンスタンダード

•  日時

•  文字

•  ハンズオン(Hands-on)

•  技術資料は英語で

2013-­‐10-­‐24  オープン技術特論 山口琢 3

狙い

「そういうポイントがあるんだ!」 – これまでの研究・開発の見直し

– これからの見積・設計に反映

2013-­‐10-­‐24  オープン技術特論 山口琢 4

アンケート (^^)/

•  OSは? Windows、Mac、…

•  ブラウザは? Firefox、Chrome、Opera、Internet Explorer、… ← 意識して複数を使った方がよい

•  ワープロは? Microsoft Word、OpenOffice、… ← Pagesも

2013-­‐10-­‐24  オープン技術特論 山口琢 5

相互運用性とオープンスタンダード Interoperability & Open Standard

2013-­‐10-­‐24  オープン技術特論   山口琢 6

2013-­‐10-­‐24  オープン技術特論 山口琢

生活・仕事

モデル

システム

7

2013-­‐10-­‐24  オープン技術特論 山口琢

IT

生活・仕事

モデル

システム

8

2013-­‐10-­‐24  オープン技術特論 山口琢

生活・仕事

モデル

システム

9

シナリオ 要求定義 …などなど

複数のシステム

2013-­‐10-­‐24  オープン技術特論 山口琢

生活・仕事

モデル

システム

モデル

システム

10

異なる文化

2013-­‐10-­‐24  オープン技術特論 山口琢

モデル

システム

モデル

システム

11

生活・仕事 生活・仕事

相互運用性 - interoperability

2013-­‐10-­‐24  オープン技術特論 山口琢

データ交換 など

情報交換

生活・仕事

モデル

システム

モデル

システム

12

相互運用性 - interoperability

2013-­‐10-­‐24  オープン技術特論 山口琢

データ交換 など

情報交換 モデル

システム

モデル

システム

13

生活・仕事 生活・仕事 協力…

相互運用性 - interoperability

2013-­‐10-­‐24  オープン技術特論 山口琢

システムの相互運用性

生活・仕事

モデル

システム

モデル

システム

The capability to communicate, execute programs, or transfer data among various functional units in a manner that requires the user to have little or no knowledge of the unique characteristics of those units

ISO/IEC 2382-01, Information Technology Vocabulary, Fundamental Terms,

via Wikipedia

14

Interoperability

The capability to ← 能力・性能 –  communicate,

–  execute programs,

–  or transfer data

among various functional units

in a manner that ← こういうやり方で requires the user to have little or no knowledge of

the unique characteristics of those units

2013-­‐10-­‐24  オープン技術特論 山口琢 15

相互運用を実現するパターン

•  できてしまってるものを、つなげる

•  最初から、つながるように作る

2013-­‐10-­‐24  オープン技術特論 山口琢 16

できてしまってるものをつなげる

2013-­‐10-­‐24  オープン技術特論 山口琢

生活・仕事

システム システム

モデル モデル 標準(参照) モデル

変換 変換

17

生活・仕事 生活・仕事

•  職歴 – 株式会社日立製作所

← INE '89 OSI/ODAによる文書交換接続実験

個別に動作してたシステム同士をつなげる実証実験

– 株式会社ジャストシステム

– はこだて未来大学大学院博士課程(後期)

2013-­‐10-­‐24  オープン技術特論 山口琢 18

最初から、つながるように作る

2013-­‐10-­‐24  オープン技術特論 山口琢

生活・仕事

システム システム

Open Standard

19

Open  Standardに  準拠して作る  

Open  Standardに  準拠して作る  

最初から、つながるように作る

2013-­‐10-­‐24  オープン技術特論 山口琢

システム システム

Open Standard

20

生活・仕事 生活・仕事

Open  Standardに  準拠して作る  

Open  Standardに  準拠して作る  

•  職歴 – 株式会社日立製作所

– 株式会社ジャストシステム

– はこだて未来大学大学院博士課程(後期)

← LODチャレンジ 「最初から、つながるように作ろう」というハッカソン

2013-­‐10-­‐24  オープン技術特論 山口琢 21

Open Standard

•  最近のトレンド – 迅速な開発・普及 – 覇権

•  関係者に必要な素養 – スーパーエンジニア – 英語 – 文化的な教養

2013-­‐10-­‐24  オープン技術特論 山口琢 22

2013-­‐10-­‐24  オープン技術特論 山口琢

生活・仕事

モデル

システム

23

生活・仕事

現在 将来

システム

ビジョナリー  visionary

エヴァンジェリスト  evangelist

2013-­‐10-­‐24  オープン技術特論 山口琢

生活・仕事

モデル

システム

24

生活・仕事

現在 将来

システム

ビジョナリー  visionary

小林龍生(UNICODE、EPUB)  村田真(XML、EPUB)  樋浦秀樹(国際化、UNICODE)    米持幸寿(クラウド)  今城哲二(COBOL国際化)  大場みち子(SOA)    などなど…  

エヴァンジェリスト  evangelist

Linked Open Dataがもたらす将来…とは?

2013-­‐10-­‐24  オープン技術特論 山口琢

はこだて… ヨコハマ・アート・LOD

オープンライセンス W3C標準: URI、RDF、SPARQL

25

データ交換 など

生活・仕事 生活・仕事 ……?

では、日時と文字の話を…

2013-­‐10-­‐24  オープン技術特論 山口琢

システム システム

日時 文字

26

生活・仕事 生活・仕事

日時

2013-­‐10-­‐24  オープン技術特論 山口琢 27

•  日時を扱うシステムは、 他システムとの相互運用性を 無視するのは難しい

•  無視しない: – 互換な範囲で作る

– どう異なるのか把握している

2013-­‐10-­‐24  オープン技術特論   山口琢   28  

誕生日とタイムゾーン

2013-­‐10-­‐24  オープン技術特論   山口琢 29

Googleカレンダーで実験

1.  1時間の予定「会議」を作成。開始・終了時刻を覚える。

2.  「設定」で現在の「タイムゾーン」を確認。 日本ですか?

3.  タイムゾーンを「太平洋時間」に設定して保存。 これサンフランシスコ。

4.  さっきの「会議」の開始・終了時刻を確認。

2013-­‐10-­‐24  オープン技術特論   山口琢 30

タイムゾーン変更 東京(UTC+9) → 太平洋時間(UTC-8、サマータイム)

2013-­‐10-­‐24  オープン技術特論   山口琢 31

続き: 終日の場合

1.  タイムゾーンを「東京」に戻す

2.  さっきの予定と同じ日に、 終日の予定「誕生日」を作成

3.  再度、タイムゾーンを「太平洋時間」に設定

4.  2つの予定の前後関係は?

2013-­‐10-­‐24  オープン技術特論   山口琢 32

どうなる?

•  Googleカレンダーではどうなると思う?

•  …というか、どうなって欲しい?

•  そもそも、どうなるのが正しい?

2013-­‐10-­‐24  オープン技術特論   山口琢 33

2013-­‐10-­‐24  オープン技術特論   山口琢 34

東京

サンフランシスコ

「会議」と「誕生日」の 前後関係が変わった…

…ように見える

2013-­‐10-­‐24  オープン技術特論   山口琢 35

何が変わったのか?

•  「会議」の開始時刻は変わっていない 目盛りがずれてるだけで、同じ時刻を指している。

それぞれのスケジューラが示す時刻に席につけばよい。

•  むしろ「誕生日」が変わった…のか?

2013-­‐10-­‐24  オープン技術特論 山口琢 36

誕生日おめでとう! 東京

10/24 13:00

会議を始めよう!

サンフランシスコ

10/23 21:00

(サマータイム中)

会議を始めよう!

誕生日おめ…でとう?

2013-­‐10-­‐24  オープン技術特論 山口琢 37

10/24が誕生日

あるいは逆だったら… 東京

10/24 13:00

会議を始めよう!

誕生日おめ…でとう?

サンフランシスコ

10/23 21:00

(サマータイム中)

会議を始めよう!

2013-­‐10-­‐24  オープン技術特論 山口琢 38

10/24が誕生日

日付(date)と日時(datetime)

dateとdatetimeは別世界 別世界の予定同士を 比較するときは要注意

終日の予定≠0時~翌日0時 6/10 終日 ≠ 6/10 00:00~6/11 00:00

なんのために注意? 「予定」を国際的に共有するため

2013-­‐10-­‐24  オープン技術特論   山口琢 39

date世界

dateNme世界

カレンダーは2つの  世界が同居している

日課と"FLOATING" DATE-TIME

2013-­‐10-­‐24  オープン技術特論   山口琢 40

2013-­‐10-­‐24  オープン技術特論 山口琢

生活・仕事

モデル

システム

41

毎朝、5時に散歩するのが日課です。  海外旅行しても、旅先で、日課を守りたい。

iCalendar: 3.3.5. Date-Time 19980118T230000

DATE-TIME values of this type are said to be "floating" and are not bound to any time zone in particular. They are used to represent the same hour, minute, and second value regardless of which time zone is currently being observed. For example, an event can be defined that indicates that an individual will be busy from 11:00 AM to 1:00 PM every day, no matter which time zone the person is in. In these cases, a local time can be specified. The recipient of an iCalendar object with a property value consisting of a local time, without any relative time zone information, SHOULD interpret the value as being fixed to whatever time zone the "ATTENDEE" is in at any given moment. This means that two "Attendees", in different time zones, receiving the same event definition as a floating time, may be participating in the event at different actual times. Floating time SHOULD only be used where that is the reasonable behavior. 2013-­‐10-­‐24  オープン技術特論   山口琢 42

2013-­‐10-­‐24  オープン技術特論 山口琢

生活・仕事

モデル

システム

43

毎朝、5時に散歩するのが日課です。  海外旅行しても、旅先で、日課を守りたい。

DATE-­‐TIME  values  of  this  type  are  said  to  be  "floaNng"  and  are  not  bound  to  any  Nme  zone  in  parNcular.    They  are  used  to  represent  the  same  hour,  minute,  and  second  value  regardless  of  which  Nme  zone  is  currently  being  observed.      

iCalendar,  IETF  RFC  5545  

2013-­‐10-­‐24  オープン技術特論 山口琢

生活・仕事

モデル

システム

44

毎朝、5時に散歩するのが日課です。  海外旅行しても、旅先で、日課を守りたい。

DATE-­‐TIME  values  of  this  type  are  said  to  be  "floaNng"  and  are  not  bound  to  any  Nme  zone  in  parNcular.    They  are  used  to  represent  the  same  hour,  minute,  and  second  value  regardless  of  which  Nme  zone  is  currently  being  observed.      

iCalendar,  IETF  RFC  5545  

?

iCalのfloating time zone機能

2013-­‐10-­‐24  オープン技術特論 山口琢 45

「環境設定」から ✓「時間帯のサポートを有効にする」

2013-­‐10-­‐24  オープン技術特論 山口琢 46

2つの連続したイベント

2013-­‐10-­‐24  オープン技術特論 山口琢 47

2013-­‐10-­‐24  オープン技術特論 山口琢 48

2013-­‐10-­‐24  オープン技術特論 山口琢 49

2013-­‐10-­‐24  オープン技術特論 山口琢 50

2013-­‐10-­‐24  オープン技術特論 山口琢 51

floating time zone

2013-­‐10-­‐24  オープン技術特論 山口琢

毎朝、5時に散歩するのが日課です。 海外旅行しても、旅先で、日課を守りたい。

iCal Googleカレンダー

iCalendar, IETF RFC 5545 "floating" date-time

52

? サポートしていないようだ

問題はどこに?

2013-­‐10-­‐24  オープン技術特論 山口琢 53

生活・仕事

モデル

システム

誕生日とは ? 日課

"floating" date-time

?

文字

2013-­‐10-­‐24  オープン技術特論 山口琢 54

「ä」の話

2013-­‐10-­‐24  オープン技術特論 山口琢 55

「ä」と「ä」

•  yamahigeのツイートからコピーして取得 •  同じ文字列?

•  それぞれ何文字?

調べてみる

いろいろなツール /usr/bin/diff

Python、JavaScript

Word、PowerPoint

テキストエディット

などなど…

いろいろな方法 検索

文書比較

文字の長さ、文字数

などなど…

2013-­‐10-­‐24  オープン技術特論 山口琢 56

調べてみる

いろいろなツール /usr/bin/diff

Python、JavaScript

Word、PowerPoint

テキストエディット

などなど…

いろいろな方法 検索

文書比較

文字の長さ、文字数

などなど…

2013-­‐10-­‐24  オープン技術特論 山口琢 57

試す数が多いほどベター

CotEditor (テキストエディター)

違うと言ってる 2013-­‐10-­‐24  オープン技術特論 山口琢 58

mi (テキストエディター)

同じと言ってる 2013-­‐10-­‐24  オープン技術特論 山口琢 59

JavaScript (Chrome)

違うと言ってる 2013-­‐10-­‐24  オープン技術特論 山口琢 60

Python

違うと言ってる 2013-­‐10-­‐24  オープン技術特論 山口琢 61

PowerPoint for Mac 2011

同じと言ってる 2013-­‐10-­‐24  オープン技術特論 山口琢 62

結合文字

Pythonの続き

2013-­‐10-­‐24  オープン技術特論 山口琢 63

結合文字

•  Unicodeの特徴 •  2通りの「ä」

Pythonで見ると – u'\xe4' – u'a\u0308' ← 'a' + '̈'、"̈"は結合用の文字

•  この2つを「違う」と言うソフトと「同じ」と言うソフトがある。

2013-­‐10-­‐24  オープン技術特論 山口琢 64

あれ?ということは、むしろ、 「同じ」と言ってるソフトはどうやっての?

normalization(正規化)

文字に限らず、いろいろなデータ処理で使われる

2013-­‐10-­‐24  オープン技術特論   山口琢   65  

Pythonの続き

Javaでは?Rubyでは?JavaScriptでは?… 2013-­‐10-­‐24  オープン技術特論 山口琢 66

そう言えば…

「会議」の開始時刻は変わっていない

日時で、正規化に相当する処理は?

2013-­‐10-­‐24  オープン技術特論   山口琢   67  

「が」の話

2013-­‐10-­‐24  オープン技術特論 山口琢 68

「が」と「が」

•  yamahigeのツイートからコピーして取得 •  同じ文字列?

•  それぞれ何文字?

Microsoft Word for Mac 2011

違うと言ってる

2013-­‐10-­‐24  オープン技術特論 山口琢 69

でも、

ひらがなの結合文字って、

めったに遭遇しないんじゃ?

2013-­‐10-­‐24  オープン技術特論   山口琢   70  

「新しいフォルダ」

Mac OS X

Windows

2013-­‐10-­‐24  オープン技術特論 山口琢 71

…え?じゃぁDropboxって…?

「ファイル共有」の相互運用性

2013-­‐10-­‐24  オープン技術特論   山口琢   72  

「ä」や「が」の保存

2013-­‐10-­‐24  オープン技術特論 山口琢 73

コピー

POST  

ペースト

GET   コピー ペースト

比較  検索

「ä」や「が」の保存

2013-­‐10-­‐24  オープン技術特論 山口琢 74

コピー

POST  

ペースト

GET   コピー ペースト

比較  検索

ここまでは2種類の「ä」が保たれていた。  

「ä」や「が」の保存

2013-­‐10-­‐24  オープン技術特論 山口琢 75

コピー

POST  

ペースト

GET   コピー ペースト

比較  検索

Firefoxは、クリップボードに積むときに、正規化しているようだ。  Firefoxだと、別の課題提供方法が必要  (^^;  

コピー

日時と文字の相互運用性

2013-­‐10-­‐24  オープン技術特論 山口琢

日時: ISO、IETF、W3C 文字: UNICODE

76

生活・仕事 検索

比較

会議のアポ

抄録の文字数制限

Happy Birthday!

飛行機の乗り継ぎ

毎朝の散歩

まとめ

「同じ」とモデリング

•  会議の開始時刻

•  誕生日

•  結合文字

2013-­‐10-­‐24  オープン技術特論 山口琢 77

生活・仕事

モデル

システム

狙い(再) 「そういうポイントがあるんだ!」

– これまでの研究・開発の見直し

– これからの見積・設計に反映

•  「何かがおかしい」と感じたとき、 今日の話も思い出してください。

•  各論・詳細の勉強は、次の参考文献で。 2013-­‐10-­‐24  オープン技術特論 山口琢 78

参考文献: 日時

Internet Engineering Task Force (IETF)、"Internet Calendaring and Scheduling Core Object Specification (iCalendar) RFC 5545"

http://tools.ietf.org/html/rfc5545

168ページ

他に…あまりない –  プログラミング言語の解説書、解説記事

–  "floating time zone"が説明されていることが目安

2013-­‐10-­‐24  オープン技術特論 山口琢 79

参考文献: 文字 小林龍生、"ユニコード戦記 ─文字符号の国際標準化バトル"、東京電機大学出版局 (2011/6/10)

矢野啓介、"プログラマのための文字コード技術入門 "、技術評論社 (2010/2/18)

2013-­‐10-­‐24  オープン技術特論 山口琢 80

2013-­‐10-­‐24  オープン技術特論 山口琢

生活・仕事

モデル

システム

81

top related