SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
時を超えた JavaScript の道



            @teppeis
   Shibuya.js beyond HTML5 2010/07/30
自己紹介
経緯

席が向かえの amachang と机の下で足があたっ
たりして キャッキャウフフ ヾ(*´∀`*)ノ するリア充生活
を送っていたら、いつのまにか LT することになっ
ていました。
お手柔らかにおねがいします!
さて、国際化が叫ばれる昨今

社内公用語の英語化が話題です。
ちょっと待って!

国際化といえば、
タイムゾーンを忘れてませんか?

ということで、
JavaScript のタイムゾーンの話をします。
とりあえずデモ   

 画面上の時刻表示を変換する Chrome 拡張
 ATND の microformats を読み取って、
 PST(太平洋標準時)に変換します。
音響カプラと
   3Dと
顔文字アセンブラ
  のあとに
この地味なデモ。
Warning
    こっから
地味な話が続きます。
   眠たい人は
 今がチャンスです。
Date Object in JavaScript

 new Date() はローカルタイムを生成
 ローカルタイムとUTCのみを扱える
 ローカルタイムのタイムゾーンはOS設定
 夏時間の計算方法は環境依存
え。ということは?

 UTCやOS設定以外のタイムゾーンを扱うことが
 できない
 環境によって日時表示や日時計算がずれる場合
 がある
いろんなTZを扱いたいケース

 例)JST を PST に変換したい
 例)カレンダーに旅行の予定を登録するUI
  帰りの飛行機は現地時刻(PST)で14:00
  「時差何時間だっけ。。」
  「この時期ってサマータイム?」
  「OSの設定変えたくないよ><」

JavaScript Date では解決できない!
環境によって日時がずれるケース

// OSのタイムゾーンをPST(太平洋標準時)に設定して
// 2006年4月2日 午前1時 (PST) のタイムスタンプをチェック

var dt = new Date(2006,3,2,1,0,0,0);
if (1143968400000 === dt.getTime()) {
  alert( "OK" );
} else {
  alert( "NG" );
}
結果

               Firefox   Chrome   Safari   Opera   IE


     Windows    NG        NG       NG       NG     NG


      Mac       OK        OK       NG       NG     -


      Linux     OK        OK        -       NG     -


     iPhone       -        -       NG       NG     -


     Android      -       OK        -        -     -
なんでズレたの?

PDT(太平洋夏時間)の期間が
2006年から2007年にかけて変更されたから
 夏時間の期間が約1ヶ月後ろにずれた
 2006-04-02 01:00:00 は歴史的には夏時間
 ただし、新ルールで計算し直すと標準時
夏時間の対応レベル

Lv.1 ルールベース
  毎年同じ夏時間ルールを適用
  例)毎年3月第2日曜午前2時から夏時間
  Windows
Lv.2 ヒストリカルデータ
  過去の時差情報を利用して時差計算
  いわゆる zoneinfo, tz database.
  世界の秩序は Olson さんがローカルで管理してる!
  Linux, Java, Python, Ruby...
ブラジルにルールなんてない!

ブラジルは夏時間期間を毎年都度発表
ネパールは +5:45(1986年までは +5:40)
ECMAScript ではどうなってるの?

 15.9.1.8 Daylight Saving Time Adjustment
   ECMAScriptの実装としては、同じルールを毎
   年適用する。
   でもホスト環境が年ごとの夏時間情報を提供
   する場合は、それを利用してもいいよ。


つまり、環境と実装に依存
ということで、

 OSに依存せずタイムゾーンを選択
 OSに依存せず時差計算
 ヒストリカルデータ対応

こんなことをやりたいな。
アプリ開発言語としての JS

 Webサイトのクライアント側、じゃなくて
 HTML5 = オフラインアプリケーション
 サーバーアクセス無しで動きたい
 ECMAScript の Date では不十分
  ActionScript はどうしてるんだろう
あった。

 Google Closure Library
あれ?肝心のデータが。

URLが。。
データ生成する

    せっかくなので Rhino 使ってみた
    タイムゾーンデータは Joda Time(手抜き)
    JSONフォーマットに変換
tzdata['America/LosAngeles'] = {
   'transitions': [ // 遷移時刻タイムスタンプ(時間)と標準からの時差(分)の配列
     2770, 60, 7137, 0, 11506, 60, 16041, 0,
     ...
     580186, 60, 585897, 0, 588922, 60, 594633, 0
   ], // 標準時の短縮名、正式名、夏時間の短縮名、正式名
   'names': ['PST', 'Pacific Standard Time', 'PDT', 'Pacific Daylight Time'],
   'id': 'America/Los_Angeles', // ID
   'std_offset': -480 // 標準時差
};
生成したタイムゾーンデータ

1970年 - 2038年
全558地域
358 KB
Webアプリならアプリケーションキャッシュを使う
か、ファイルを分割して遅延ローディングが良さそ
う。
あれ?

goog.i18n.TimeZone には localToUTC なメソッ
ドがない
goog.date.DateTime にもない。
タイムゾーンの変換ができない。片手落ち。
ので、いくつかの API 追加実装。
goog.i18n.TimeZone.prototype.getUTCMillisFromLocal = function(
   opt_year, opt_month, opt_date, opt_hours,
   opt_minutes, opt_seconds, opt_milliseconds) {
 ...
 var localMillis = Date.UTC( opt_year, opt_month, opt_date, opt_hours,
                     opt_minutes, opt_seconds, opt_milliseconds);
 var localDate = new Date(localMillis);
 var localOffset = this.getOffset(localDate) * 60 * 1000;
 var adjustedDate = new Date(localMillis + localOffset);
 var adjustedOffset = this.getOffset(adjustedDate) * 60 * 1000;

  if ( localOffset > adjustedOffset ) {
    var localNext = this.nextTransitions(localMillis + localOffset);
    var adjustedNext = this.nextTransitions(localMillis + adjustedOffset);
    if ( localNext !== adjustedNext ) {
      return localMillis + localOffset;
    }
  }
  return localMillis + adjustedOffset;
};
ようやくデモ   

 デモ
  画面上の時刻表示を変換する Chrome 拡張
  ATND の microformats を読み取って、
  PST(太平洋標準時)に変換します。
まとめ

JS でマルチタイムゾーンを扱うには自前で実装する必要
があるよ。
標準でなんとかならないかなぁ。
Google Closure 使うんじゃなかった。。
HTML5 ってなんだっけ。
以上です。
ありがとうございました!

Contenu connexe

Tendances

暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学MITSUNARI Shigeo
 
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要Google Cloud Platform - Japan
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫Yuta Imai
 
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」y torazuka
 
MySQLからPostgreSQLへのマイグレーションのハマリ所
MySQLからPostgreSQLへのマイグレーションのハマリ所MySQLからPostgreSQLへのマイグレーションのハマリ所
MySQLからPostgreSQLへのマイグレーションのハマリ所Makoto Kaga
 
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall ) LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall ) Hironobu Isoda
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5Takahiro YAMADA
 
データプロダクトを支えるビッグデータ基盤
データプロダクトを支えるビッグデータ基盤データプロダクトを支えるビッグデータ基盤
データプロダクトを支えるビッグデータ基盤Google Cloud Platform - Japan
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)NTT DATA OSS Professional Services
 
超実践 Cloud Spanner 設計講座
超実践 Cloud Spanner 設計講座超実践 Cloud Spanner 設計講座
超実践 Cloud Spanner 設計講座Samir Hammoudi
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Yoshifumi Kawai
 
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計sairoutine
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計Yoshinori Matsunobu
 
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話Yuta Shimada
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説増田 亨
 
ブレソルでテラバイト級データのALTERを短時間で終わらせる
ブレソルでテラバイト級データのALTERを短時間で終わらせるブレソルでテラバイト級データのALTERを短時間で終わらせる
ブレソルでテラバイト級データのALTERを短時間で終わらせるKLab Inc. / Tech
 
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2tamtam180
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Masahito Zembutsu
 
元OracleMasterPlatinumがCloudSpanner触ってみた
元OracleMasterPlatinumがCloudSpanner触ってみた元OracleMasterPlatinumがCloudSpanner触ってみた
元OracleMasterPlatinumがCloudSpanner触ってみたKumano Ryo
 

Tendances (20)

【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。 【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
 
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
 
MySQLからPostgreSQLへのマイグレーションのハマリ所
MySQLからPostgreSQLへのマイグレーションのハマリ所MySQLからPostgreSQLへのマイグレーションのハマリ所
MySQLからPostgreSQLへのマイグレーションのハマリ所
 
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall ) LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
 
データプロダクトを支えるビッグデータ基盤
データプロダクトを支えるビッグデータ基盤データプロダクトを支えるビッグデータ基盤
データプロダクトを支えるビッグデータ基盤
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
 
超実践 Cloud Spanner 設計講座
超実践 Cloud Spanner 設計講座超実践 Cloud Spanner 設計講座
超実践 Cloud Spanner 設計講座
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
 
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
ブレソルでテラバイト級データのALTERを短時間で終わらせる
ブレソルでテラバイト級データのALTERを短時間で終わらせるブレソルでテラバイト級データのALTERを短時間で終わらせる
ブレソルでテラバイト級データのALTERを短時間で終わらせる
 
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
元OracleMasterPlatinumがCloudSpanner触ってみた
元OracleMasterPlatinumがCloudSpanner触ってみた元OracleMasterPlatinumがCloudSpanner触ってみた
元OracleMasterPlatinumがCloudSpanner触ってみた
 

En vedette

Effective JavaScript Ch.1
Effective JavaScript Ch.1Effective JavaScript Ch.1
Effective JavaScript Ch.1Teppei Sato
 
初学者にJavaScriptを教えてみた
初学者にJavaScriptを教えてみた初学者にJavaScriptを教えてみた
初学者にJavaScriptを教えてみた彰 村地
 
サイボウズのフロントエンド開発 現在とこれからの挑戦
サイボウズのフロントエンド開発 現在とこれからの挑戦サイボウズのフロントエンド開発 現在とこれからの挑戦
サイボウズのフロントエンド開発 現在とこれからの挑戦Teppei Sato
 
Swiftビギナーズ 2016/01/09
Swiftビギナーズ 2016/01/09Swiftビギナーズ 2016/01/09
Swiftビギナーズ 2016/01/09Yutaka Tajika
 
関数型プログラミング in javascript
関数型プログラミング in javascript関数型プログラミング in javascript
関数型プログラミング in javascriptRyuma Tsukano
 
goog.require()を手書きしていいのは小学生まで
goog.require()を手書きしていいのは小学生までgoog.require()を手書きしていいのは小学生まで
goog.require()を手書きしていいのは小学生までTeppei Sato
 
OnsenUI + AngularJS + CloudEndpointsで作るSPA 地雷処理の巻
OnsenUI + AngularJS + CloudEndpointsで作るSPA 地雷処理の巻OnsenUI + AngularJS + CloudEndpointsで作るSPA 地雷処理の巻
OnsenUI + AngularJS + CloudEndpointsで作るSPA 地雷処理の巻Hiroshi Furuyama
 
Javascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみるJavascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみるShunji Konishi
 
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会Koji Hasegawa
 
Browser oh browser browser
Browser oh browser browserBrowser oh browser browser
Browser oh browser browserTeppei Sato
 
templateとautoの型推論
templateとautoの型推論templateとautoの型推論
templateとautoの型推論MITSUNARI Shigeo
 
Effective Modern C++勉強会#4 Item 17, 18資料
Effective Modern C++勉強会#4 Item 17, 18資料Effective Modern C++勉強会#4 Item 17, 18資料
Effective Modern C++勉強会#4 Item 17, 18資料Ryo Igarashi
 
Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35Keisuke Fukuda
 
Effective modern c++ 5
Effective modern c++ 5Effective modern c++ 5
Effective modern c++ 5uchan_nos
 
JavaScript Language Update 2016 (LLoT)
JavaScript Language Update 2016 (LLoT)JavaScript Language Update 2016 (LLoT)
JavaScript Language Update 2016 (LLoT)Teppei Sato
 
サイボウズの現在と未来
サイボウズの現在と未来サイボウズの現在と未来
サイボウズの現在と未来Teppei Sato
 
離れた場所でも最高のチームワークを実現する方法 ーサイボウズ開発チームのリモートワーク事例ー
離れた場所でも最高のチームワークを実現する方法 ーサイボウズ開発チームのリモートワーク事例ー離れた場所でも最高のチームワークを実現する方法 ーサイボウズ開発チームのリモートワーク事例ー
離れた場所でも最高のチームワークを実現する方法 ーサイボウズ開発チームのリモートワーク事例ーTeppei Sato
 

En vedette (20)

Effective JavaScript Ch.1
Effective JavaScript Ch.1Effective JavaScript Ch.1
Effective JavaScript Ch.1
 
初学者にJavaScriptを教えてみた
初学者にJavaScriptを教えてみた初学者にJavaScriptを教えてみた
初学者にJavaScriptを教えてみた
 
サイボウズのフロントエンド開発 現在とこれからの挑戦
サイボウズのフロントエンド開発 現在とこれからの挑戦サイボウズのフロントエンド開発 現在とこれからの挑戦
サイボウズのフロントエンド開発 現在とこれからの挑戦
 
Swiftビギナーズ 2016/01/09
Swiftビギナーズ 2016/01/09Swiftビギナーズ 2016/01/09
Swiftビギナーズ 2016/01/09
 
関数型プログラミング in javascript
関数型プログラミング in javascript関数型プログラミング in javascript
関数型プログラミング in javascript
 
goog.require()を手書きしていいのは小学生まで
goog.require()を手書きしていいのは小学生までgoog.require()を手書きしていいのは小学生まで
goog.require()を手書きしていいのは小学生まで
 
OnsenUI + AngularJS + CloudEndpointsで作るSPA 地雷処理の巻
OnsenUI + AngularJS + CloudEndpointsで作るSPA 地雷処理の巻OnsenUI + AngularJS + CloudEndpointsで作るSPA 地雷処理の巻
OnsenUI + AngularJS + CloudEndpointsで作るSPA 地雷処理の巻
 
Javascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみるJavascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみる
 
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
 
Browser oh browser browser
Browser oh browser browserBrowser oh browser browser
Browser oh browser browser
 
templateとautoの型推論
templateとautoの型推論templateとautoの型推論
templateとautoの型推論
 
Emcpp item31
Emcpp item31Emcpp item31
Emcpp item31
 
Emcpp item41
Emcpp item41Emcpp item41
Emcpp item41
 
Emcpp0506
Emcpp0506Emcpp0506
Emcpp0506
 
Effective Modern C++勉強会#4 Item 17, 18資料
Effective Modern C++勉強会#4 Item 17, 18資料Effective Modern C++勉強会#4 Item 17, 18資料
Effective Modern C++勉強会#4 Item 17, 18資料
 
Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35
 
Effective modern c++ 5
Effective modern c++ 5Effective modern c++ 5
Effective modern c++ 5
 
JavaScript Language Update 2016 (LLoT)
JavaScript Language Update 2016 (LLoT)JavaScript Language Update 2016 (LLoT)
JavaScript Language Update 2016 (LLoT)
 
サイボウズの現在と未来
サイボウズの現在と未来サイボウズの現在と未来
サイボウズの現在と未来
 
離れた場所でも最高のチームワークを実現する方法 ーサイボウズ開発チームのリモートワーク事例ー
離れた場所でも最高のチームワークを実現する方法 ーサイボウズ開発チームのリモートワーク事例ー離れた場所でも最高のチームワークを実現する方法 ーサイボウズ開発チームのリモートワーク事例ー
離れた場所でも最高のチームワークを実現する方法 ーサイボウズ開発チームのリモートワーク事例ー
 

Similaire à 時を超えた JavaScript の道

グローバル化はなぜ日時処理問題を引き起こすのか
グローバル化はなぜ日時処理問題を引き起こすのかグローバル化はなぜ日時処理問題を引き起こすのか
グローバル化はなぜ日時処理問題を引き起こすのかAtsushi Kambara
 
サマータイム導入?【管理者編】 - その時 Notes/Domino は正確な時を刻むのか
サマータイム導入?【管理者編】 - その時 Notes/Domino は正確な時を刻むのかサマータイム導入?【管理者編】 - その時 Notes/Domino は正確な時を刻むのか
サマータイム導入?【管理者編】 - その時 Notes/Domino は正確な時を刻むのかHaruyuki Nakano
 
サマータイム導入?【開発者編】 - その時 Notes/Domino は正確な時を刻むのか
サマータイム導入?【開発者編】 - その時 Notes/Domino は正確な時を刻むのかサマータイム導入?【開発者編】 - その時 Notes/Domino は正確な時を刻むのか
サマータイム導入?【開発者編】 - その時 Notes/Domino は正確な時を刻むのかHaruyuki Nakano
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうRyuji Tsutsui
 
20181030 DBSCシンポジウム 情報システムと時間の表現
20181030 DBSCシンポジウム 情報システムと時間の表現20181030 DBSCシンポジウム 情報システムと時間の表現
20181030 DBSCシンポジウム 情報システムと時間の表現UEHARA, Tetsutaro
 
サマータイムとうるう秒と2038年問題
サマータイムとうるう秒と2038年問題サマータイムとうるう秒と2038年問題
サマータイムとうるう秒と2038年問題UEHARA, Tetsutaro
 

Similaire à 時を超えた JavaScript の道 (6)

グローバル化はなぜ日時処理問題を引き起こすのか
グローバル化はなぜ日時処理問題を引き起こすのかグローバル化はなぜ日時処理問題を引き起こすのか
グローバル化はなぜ日時処理問題を引き起こすのか
 
サマータイム導入?【管理者編】 - その時 Notes/Domino は正確な時を刻むのか
サマータイム導入?【管理者編】 - その時 Notes/Domino は正確な時を刻むのかサマータイム導入?【管理者編】 - その時 Notes/Domino は正確な時を刻むのか
サマータイム導入?【管理者編】 - その時 Notes/Domino は正確な時を刻むのか
 
サマータイム導入?【開発者編】 - その時 Notes/Domino は正確な時を刻むのか
サマータイム導入?【開発者編】 - その時 Notes/Domino は正確な時を刻むのかサマータイム導入?【開発者編】 - その時 Notes/Domino は正確な時を刻むのか
サマータイム導入?【開発者編】 - その時 Notes/Domino は正確な時を刻むのか
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
 
20181030 DBSCシンポジウム 情報システムと時間の表現
20181030 DBSCシンポジウム 情報システムと時間の表現20181030 DBSCシンポジウム 情報システムと時間の表現
20181030 DBSCシンポジウム 情報システムと時間の表現
 
サマータイムとうるう秒と2038年問題
サマータイムとうるう秒と2038年問題サマータイムとうるう秒と2038年問題
サマータイムとうるう秒と2038年問題
 

Plus de Teppei Sato

Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜Teppei Sato
 
サイボウズの給与交渉戦 - Boss Side -
サイボウズの給与交渉戦 - Boss Side -サイボウズの給与交渉戦 - Boss Side -
サイボウズの給与交渉戦 - Boss Side -Teppei Sato
 
Recent compat-table issues
Recent compat-table issuesRecent compat-table issues
Recent compat-table issuesTeppei Sato
 
kintoneがAWSで目指すDevOpsQAな開発
kintoneがAWSで目指すDevOpsQAな開発kintoneがAWSで目指すDevOpsQAな開発
kintoneがAWSで目指すDevOpsQAな開発Teppei Sato
 
Automated Dependency Updates with Renovate
Automated Dependency Updates with RenovateAutomated Dependency Updates with Renovate
Automated Dependency Updates with RenovateTeppei Sato
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?Teppei Sato
 
サイボウズの開発を支えるKAIZEN文化
サイボウズの開発を支えるKAIZEN文化サイボウズの開発を支えるKAIZEN文化
サイボウズの開発を支えるKAIZEN文化Teppei Sato
 
You Don't Know ES Modules
You Don't Know ES ModulesYou Don't Know ES Modules
You Don't Know ES ModulesTeppei Sato
 
Closure Compiler Updates for ES6
Closure Compiler Updates for ES6Closure Compiler Updates for ES6
Closure Compiler Updates for ES6Teppei Sato
 
Our wish to Flowtype
Our wish to FlowtypeOur wish to Flowtype
Our wish to FlowtypeTeppei Sato
 
Flowtype Introduction
Flowtype IntroductionFlowtype Introduction
Flowtype IntroductionTeppei Sato
 
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略Teppei Sato
 
本当のClosure Compilerをお見せしますよ。
本当のClosure Compilerをお見せしますよ。本当のClosure Compilerをお見せしますよ。
本当のClosure Compilerをお見せしますよ。Teppei Sato
 
JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?Teppei Sato
 

Plus de Teppei Sato (18)

Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
 
サイボウズの給与交渉戦 - Boss Side -
サイボウズの給与交渉戦 - Boss Side -サイボウズの給与交渉戦 - Boss Side -
サイボウズの給与交渉戦 - Boss Side -
 
Recent compat-table issues
Recent compat-table issuesRecent compat-table issues
Recent compat-table issues
 
kintoneがAWSで目指すDevOpsQAな開発
kintoneがAWSで目指すDevOpsQAな開発kintoneがAWSで目指すDevOpsQAな開発
kintoneがAWSで目指すDevOpsQAな開発
 
Automated Dependency Updates with Renovate
Automated Dependency Updates with RenovateAutomated Dependency Updates with Renovate
Automated Dependency Updates with Renovate
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
 
サイボウズの開発を支えるKAIZEN文化
サイボウズの開発を支えるKAIZEN文化サイボウズの開発を支えるKAIZEN文化
サイボウズの開発を支えるKAIZEN文化
 
SPAと覚悟
SPAと覚悟SPAと覚悟
SPAと覚悟
 
You Don't Know ES Modules
You Don't Know ES ModulesYou Don't Know ES Modules
You Don't Know ES Modules
 
Closure Compiler Updates for ES6
Closure Compiler Updates for ES6Closure Compiler Updates for ES6
Closure Compiler Updates for ES6
 
ES6 in Practice
ES6 in PracticeES6 in Practice
ES6 in Practice
 
Our wish to Flowtype
Our wish to FlowtypeOur wish to Flowtype
Our wish to Flowtype
 
Effective ES6
Effective ES6Effective ES6
Effective ES6
 
Flowtype Introduction
Flowtype IntroductionFlowtype Introduction
Flowtype Introduction
 
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
 
本当のClosure Compilerをお見せしますよ。
本当のClosure Compilerをお見せしますよ。本当のClosure Compilerをお見せしますよ。
本当のClosure Compilerをお見せしますよ。
 
DockerがYAVAY!
DockerがYAVAY!DockerがYAVAY!
DockerがYAVAY!
 
JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?
 

Dernier

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 

Dernier (9)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 

時を超えた JavaScript の道