アカウント名:
パスワード:
なんで5月が境目になるんだろうな。
時刻関連のバグと言えばUnix時間ですね
Unix時間はOS内部でよく使われている時間の表現方法で1970年1月1日(UTC)を0として,そこからの経過秒数をカウントします
このUnix時間が引き起こすバグとしては,以下のパターンが有名です
- 1970年問題1970年以前はUnix時間がマイナスになり,想定外の不具合が生じます.- 2001年9月9日問題Unix時間が十進数で10桁を超えるのがこの日で,実装によっては桁溢れが生じます- 2038年問題Unix時間が32bitを超えるため,符号あり32bit整数で実装していると時刻がマイナスになります
ここからは私の想像ですが,iOSの不具合も,1970年問題の一種だと思います.1970年5月はUnix時間で表現すると約10000000になりますので例えばプログラム内部で Unix時刻から10000000を引くような処理があるとアンダフローが起きて 1970年問題と同じ結果になります
おそらく、メールの文中などで「今日」「昨日」などの表現や日付の記載があるとカレンダーアプリへのリンクが出る仕様によって、前後半年の日付を参照する処理が入るんじゃないかなと…
でもそれなら6月は?とも思うんですけど。
「再起動できなくなる」だからそれはないんじゃないかな?個人的には、ファームウェアに過去の起動/停止のログを保存してあって起動時に120日より古いのを消す、みたいな処理とかがあってエラーになるのだと予想。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson
May 1970 or earlier (スコア:0)
なんで5月が境目になるんだろうな。
Re: (スコア:0, 荒らし)
時刻関連のバグと言えばUnix時間ですね
Unix時間はOS内部でよく使われている時間の表現方法で
1970年1月1日(UTC)を0として,そこからの経過秒数をカウントします
このUnix時間が引き起こすバグとしては,以下のパターンが有名です
- 1970年問題
1970年以前はUnix時間がマイナスになり,想定外の不具合が生じます.
- 2001年9月9日問題
Unix時間が十進数で10桁を超えるのがこの日で,実装によっては桁溢れが生じます
- 2038年問題
Unix時間が32bitを超えるため,符号あり32bit整数で実装していると時刻がマイナスになります
ここからは私の想像ですが,iOSの不具合も,1970年問題の一種だと思います.
1970年5月はUnix時間で表現すると約10000000になりますので
例えばプログラム内部で Unix時刻から10000000を引くような処理があると
アンダフローが起きて 1970年問題と同じ結果になります
Re:May 1970 or earlier (スコア:2)
おそらく、メールの文中などで「今日」「昨日」などの表現や日付の記載があるとカレンダーアプリへのリンクが出る仕様によって、前後半年の日付を参照する処理が入るんじゃないかなと…
でもそれなら6月は?とも思うんですけど。
Re:May 1970 or earlier (スコア:3)
「再起動できなくなる」だからそれはないんじゃないかな?
個人的には、ファームウェアに過去の起動/停止のログを保存してあって起動時に120日より古いのを消す、みたいな処理とかがあってエラーになるのだと予想。