なぜGPSは週数で管理されているのか考えてみた
こんにちは。
最近のニュースで話題になっていた、GPSの週数ロールオーバーについて気になったことを調べたのでメモとして書きました。
※あくまで専門家ではなく個人として考え方ですので、情報に誤りなどがある可能性があります。
まだ、このニュースをご存知ではない方は先にニュースを読んでからの方が内容の理解がスムーズかと思います。
GPS時の週数の仕組みについて
GPSで利用している時間管理の方法は、GPS時と呼ばれるもので管理されています。もう少し詳しくお話すると、GPS時は週数と秒で時間を管理しています。週数は、UTC(協定世界時)と呼ばれているものです。その時間の1980年1月6日午前0時(日本時間の午前9時)を起点として、そこから0週として時間のカウントが行われています。例えば、その起点となっている時間から1時間経過したら0週3600秒となります。1ヶ月を30日とするすると1ヶ月経過した場合は、4週172,800秒となります。
ロールオーバーについて
週数は無限にカウントできる訳ではなく、GPS時の仕組みが作られた際に週数を格納できる枠を10ビットと定めており、10ビットの領域では0〜1023週までの情報しか格納することができません。
1〜10までの数字のカウントで例えて話すと、実際に目に見える桁数を1桁のみにした場合に、1、2、3・・・9とカウントしていき「9」までは問題なく表示することができます。しかし、9の次の10となった時に1桁しか表示することができないため、繰り上がった2桁目に表示されるはずの「1」が表示できる枠がないために捨てられてしまいます。残った1桁目の情報は「0」が表示されます。このこの時に、システムは10ではなく0と解釈することになり、「0」に戻るように見える現象をロールオーバーと言います。
今回話題になっているのは、10までのカウントからするとイメージしにくいかと思いますが、1023が「9」で1024が「10」とイメージして頂けると分かりやすいかと思います。
噛み砕いた方が分かりにくい方には、FURUNOという会社さんが作成されているPDFの資料が個人的には分かりやすかったです。
https://www.furuno.com/jp/gnss/datadownload/GNSS_Receiver_WeekNumberRollover_SE18-100-007-00_jp.pdf
なぜ週数で管理しているのか?
そもそも、なんでこんなロールオーバーなどが発生したりする面倒そうな時間管理方式になっているの?と疑問が湧きました。
あれこれ調べてみたところ、複数台のGPS衛星で同時にGPS情報を計測しており、その計測したデータを地上に送信して管理しているそうです。衛星から送信されて地上に届くまでに15秒ほどの時間差が生まれ、かつそれぞれの衛星でも到達時間がバラバラになるそうです。そのことを踏まえると普段私達が使っている様な時間管理の方法では、うるう年やうるう秒など時々時間の補正が入ってしまい、その補正の作業を複数台の衛星に対して同時に対応していくのは、宇宙空間ではかなりの難易度になりそうな気がしました。
そう考えると、衛星を宇宙に持っていく前に予めカウントする起点を決めて、それぞれの衛星で同期することなく経過した時間をカウントする方が正確に時間の経過を刻むことができると納得しました。
佐倉天然温泉 澄流(すみれ)に行ってみた
こんにちは。
週末に温泉に行ってきた話です。
九州地方出身ということもあり、温泉は50〜800円くらいが相場だと考えていた者としては、関東圏の温泉の値段に驚きました。
とは言いつつも最近少し疲れが溜まり気味だったので温泉を探してみました。
温泉探し
まずはエリアの選定から。
静岡方面は箱根温泉など超人気エリアで雰囲気も良さそうなのですが、どうしても値段も高額になってしまいます。
そこで千葉方面の内陸側で探してみたら、800円くらいのちょうどいい場所が見つかりました。
佐倉天然温泉 澄流(すみれ)を見つけました。
※行った当時の状況かつ、あくまで個人的感想です。最新の状況などは直接お問い合わせ下さい。
無料の送迎バス
無料のシャトルバスが出ているので、電車で現地に向かうことはできました。間隔も1時間に1本くらい走っているので、そこまで不便な感じもありません。ただ、ワンボックスカータイプだったので9人くらいが限度のようです。
岩盤浴
プラス500円で利用できました。うつ伏せ5分、仰向け15分がお作法。特に時間制限などはなく専用の服に着替えて好きなだけ利用できるみたい。
(水分補給は自己責任で)
フリーWi-Fi
一応、館内には無料のWi-Fiも飛んでいるみたいでした。パスワード設定はちょっときになるところでしたけど、暗号化はされているようです。速度も30Mbpsくらいは出ていたのでネット環境も悪くはなさそうでした。
御飯処
ご飯も800〜1500円くらいで都内で同じ値段で食べるよりは美味しく感じました。こちらもランチタイムでも混んでなくすぐにご飯を食べられました。座敷もあるので、子連れでも良さそう。
休憩スペース
6割くらいは埋まっていたものの、席は空いていたのでくつろぐ事が出来ました。同スペースには、マンガ本コーナーやテレビが付いている席もあるので時間調整には、ちょうど良さそうです。
駐車場
151台停められるみたいなので、車で来ても良さそうですね。到着した時には4割程の埋まり具合でした。
実際に行ってみた感想
土曜の11時前に現地に着きましたが、特に混雑した様子もなくゆっくりと温泉に入ることができました。館内では、靴箱ロッカーの鍵に付いているバーコードでほぼ全ての決済ができるので財布を持ち歩く必要はありませんでした。(後で、受け付けで支払う方式)個人的には、また来たいと思える場所でしたので、混み混みした場所が好きじゃない方などにはおススメです。
phpconf2017に参加してきました 〜セッション:PHPの今とこれから2017編〜
こんにちは。Webエンジニアの石本です。
先週末(10/8)に開催されたPHPconf2017の当日スタッフをやってきました。
スタッフあるあるですが、スタッフをやっているとセッションが全く聞けなかったりするんですよね。
そこで、アーカイブ動画がぼちぼち公開されているようなのでそれを見た時のまとめを簡単に書いていこうと思います。
PHPの今とこれから2017
廣川 類(日本PHPユーザ会)のセッションです。
- PHPとは?
- PHPバージョン分布
- PHPリリースサイクル
- PHPの歩み
- PHP7.2改善/変更のポイント
- PHPフレームワーク2017
- HHVM/Hackの進化
- PHPのこれから
- 日本PHPユーザ会
PHPとは?
サーバーサイド言語の中でPHPを始めとするスクリプト言語が約8割を占め、CMSのシェアでもPHP系のものが多く利用されていると話していました。
PHPバージョン分布
PHP5.3〜5.5は、5〜7%減少傾向にあるのに対して、5.6は12%、7.xは6%増とバージョンアップの流れがあり、主要なフレームワークのWordPressやLaravelなどの推奨環境でPHP7などを採用していることがバージョンアップへの動きを促している。しかし、まだまだ動きとしては小さいと話していました。
PHPリリースサイクル
PHPのリリースサイクルとして約1年おきに、新しいバージョンがリリースされます。
リリース後のライフサイクルとして3年間、バグ修正に2年、セキュリティ修正に1年を経過したのちに、サポートが終了する事になります。今回,PHP5.6のサポートが延長(バグ修正:+4ヶ月、セキュリティ修正:+1年)になりました。しかし、2018/12/31には完全にサポートが終了してしまうため、早めに7.xへの移行を進める必要があると話していました。
PHP7.2改善/変更のポイント
主な改善/変更ポイントは以下の通り。
- 新しい引数型宣言/戻り値object
- パスワードの保存と攻撃への対策
- password_hash関数へのArgon2導入
- Libsodium標準サポート化
- 認証付き暗号(AEAD)
- PHP7.2廃止予定
- 名前によるエクステンションロード
パスワードの保存と攻撃への対策
パスワードのハッシュ値をmd5、sha1で保存するのは不適切。GPUによる総当たり攻撃で高速に解かれてしまう時代になっている。
計算コストを適切に高めることで総当たり攻撃に対応する必要があり、パスワードハッシュ用API(PHP5.5から導入。password_hashやpassword_verifyなど)を利用すると常に最新の実装を簡単にできる。さらに、そのAPIにArgon2が導入された。
Libsodium標準サポート化
多くのプログラミング言語では、OpenSSLのみを提供しているがPHPでは簡単でかつ、標準設定で安全な高レベル暗号API「libsodium」を標準コア化しているようです。
PHP7.2廃止予定
廃止対象 | 代替 |
---|---|
__autoload | sql_autoload_register() |
$php_errormsg | error_get_last()1 または error_clear_last() |
create_function() | クロージャ(PHP>=5.3) |
mbstring_func_overload | - |
parse_str() ※第二引数なしのもの |
parse_str("a=foo&b[]=foo+bar", $output); |
each() | foreach |
名前によるエクステンションロード
Linuxのextension=mbstring.soやWindowsのextension=php_mbstring.dllは、extension=mbstringとなる。
PHPフレームワーク2017
2011年にSymfony2ベースで作成され、ユーザ認証をサポート、柔軟・スケーラブル・簡単な面が支持され、Laravelの人気が圧倒的に高いと話していました。
HHVM/Hackの進化
PHP5.xの欠点を補完する為に、作成されたものであったが、PHP7の登場で5.xの欠点を補完してきた。そこで、HHVMの将来のロードマップが公開され、PHP7完全互換は目指さない。HHVM版Composerの提供やHack用ツール/ライブラリの提供する。
Hack言語に関しては、デストラクタ及びリファレンスの廃止を行なっていくようです。
感想
PHP全体の話が中心のセッションですね。PHP7.0〜大幅に改善されてより使いやすい言語に成長しているように感じますね。また、5.xの欠点を補う為にFacebookが開発したHHVM/HackとPHP7.xがお互い歩み寄りつつも、それぞれの個性を発揮して磨きあってより素晴らしい言語へと成長して欲しいですね。
Mercari Tech Conf 2017に参加してきました
こんにちは。
SierからWeb業界に転身して4ヶ月目のWebエンジニア石本です。
日頃インプットは意識して行う事が出来ていますが、
アウトプットに関しては全く出来ていなかっったので、これからブログなどで
色々と書いていきたいと思います。
ゆくゆくは、技術検証などの技術内容をメインに書いていきたいですが、
直近は、テックカンファレンスや勉強会に参加する事も多いので、記録も兼ねて参加レポートとして不定期で書いていこうと思います。
今回は、Mercari Tech Conf 2017に参加してきました。
私が興味を持った、4つのテーマのセッションについて簡単に書いています。
- メルカリの過去と現在、そして未来(基調講演)
- Mercariサーバサイドデプロイ:現在と未来
- US版Mercari iOSアプリのアーキテクチャーとDependency Injection
- 画像認識技術は人を超えたのか?