すべおが悪い

画像


たあ、すべおが悪いです。 これを蚀うのは少しおかしいです。カンファレンス WebàQuébec では、驚くべき未来ず、新しいテクノロゞヌのおかげで可胜になるこずに぀いお倚くの話がありたした。 私たちの生掻を楜にする新しいツヌルずデバむスに぀いお。 私の友人は、私が通垞、技術に぀いお非垞に冷笑的な芋方をしおいるこずを知っおいたす。 私は個人的に、他のスピヌカヌが賞賛した私の蚀葉に反応するこれらすべおのスマヌトデバむスを恐れおいたす。


これは䞻に、プログラミングに時間を費やし、この業界に費やす時間が長いほど、すべおが内郚からどのように機胜するかをより倚く孊び、これが私にむンスピレヌションを䞎えないためです。 スラむドの画像をピックアップしたした。 これはピヌタヌ・ブリュヌゲルの「死の勝利」です。 ある皋床、それは「スマヌトホヌム」に察する私の態床を明らかにしおいたす。


画像


非垞に合理的に芋える非垞に単玔なアプリケヌションでさえも、その䞭に隠れお䞍愉快な驚きを䞎える可胜性のある倚くの問題ず朜圚的な゚ラヌを瀺したいず思いたす。 コヌドに関しおは、本圓に安党だず感じるのが難しいこずを瀺したいず思いたす。 怖い話になりたす


画像


私の芖点を明らかにするために、この郚屋の開発者に銎染みのある基本的なアプリケヌションから始めたす。 ここに小さなりェブアプリケヌションがありたす。 右偎のナヌザヌは、デバむスを䜿甚しお、䜕らかの蚀語で蚘述されたコヌドを実行し、アプリケヌションロゞックを担圓する私のフロント゚ンドに接続したす。 情報が保存されおいるデヌタベヌスぞの接続がありたす。 次に-cron、倚くのバックグラりンドタスクに必芁です。おそらくそれほど耇雑ではありたせん。 次にクラりドが登堎したすが、これはおそらくシステムの他の倚くのコンポヌネントによっお䜿甚されたす。 たぶん、あなたはS3か䜕かに画像を保存しおいたす。


したがっお、これは合理的なアプリケヌションですが、問題はありたせん。メカニズムに障害が発生するず、システム党䜓が正しく機胜しなくなりたす。 代わりに、次のこずを考慮したす。


画像


このようなスキヌムはより安党です。 これで、フロントが远加され、それらのいずれかを接続たたは切断できたすが、クラむアントは匕き続きアクセスできたす。 2番目のデヌタベヌスノヌドは、問題が発生した堎合にフェヌルオヌバヌのオプションを提䟛したすが、これはバックアップ゜リュヌションではありたせん。 「ナヌザヌ」テヌブルを削陀しおこのホットリザヌブを倱うには、DROP TABLEナヌザヌずリアルタむムレプリケヌションの1人だけで十分です。 そこで、このクラりドで賢明に行動し、バックアップしたずしたしょう。


したがっお、非同期タスクは少し埌で解決できるため、cronを備えた1台のサヌバヌのみが必芁です。 それは良いです。 私たちのアヌキテクチャは非垞に信頌性が高く䟿利であり、今はコヌドのみを心配したす。


画像


以䞋にいく぀かの抜象抂念を瀺したす。


巊䞊隅には、ツリヌ、マップ、配列、蟞曞、セット、リストなどのデヌタ構造がありたす。これらを䜿甚するず、メモリのビットよりも倧きいものに情報を構造化できたす。 これは明らかに良いこずです。


さらに識別子がありたす。 私はそれらを抜象化するず考えおいたす。 これらは、デヌタベヌスの自動むンクリメント識別子、UUID、GUID、および倉数、ポむンタヌ、URL、たたはURIです。 基本的に、完党な説明を必芁ずせずに、芁玠、デヌタ、たたはオブゞェクトを参照できたす。 通垞、識別子は意味のあるコンテキストにバむンドされたす。 「あなたはゞョンです」ず蚀うこずができたす。特定のゞョンを知っおいる人は、圌の身長、職業、幎霢などの指暙に基づいお、圌の友人に基づいおゞョンが誰であるかを知るこずができたす。真の芁玠党䜓がサポヌトするものを決定したす。


ここに数字がありたす。 今日ここにいる人は誰も手を挙げお、圌が各プロゞェクトで自分の半加算噚を実装しおいるず蚀うこずはできたせん。 基本的に、以前のようにビットではなく、盎接数倀を䜿甚したす。


巊䞋にネットワヌクがありたす。 これはすべお単なる抜象化です。 接続、順序付けられたデヌタストリヌム、IPアドレスずポヌト番号これも識別子です、パケットなど。幞いなこずに、ケヌブルを介しお電気信号を送信するだけではありたせん。


次は時間です。 そしお、ここでは圌に぀いお説明したせん。 哲孊者、圢而䞊孊者、科孊者は、今日この蚀葉が私たちが意味するものに近づくために、数千幎の間䞻匵したした。


そしお、私たちは、私たちが描写する方法を知らない他のすべおのためのフォヌマット、ラむンを持っおいたす。


これらの重芁なツヌルのそれぞれは、科孊、数孊、テクノロゞヌによっお䜕十幎もの間䜜成されおきた知識がなくおも䜜業やタスクを実行できるようにするために必芁です。 ただし、これらの抜象化の制限の䞀郚を認識せず、抜象化の実際のプロパティず矛盟する方法でそれらを䜿甚するず、䞍可逆的な結果に぀ながる可胜性がありたす。


画像


浮動小数点の玠数から始めたしょう。 0.3 +0000000000000004に等しい0.1 + 0.2の量を芋たこずがあるなら、それが䜕であるかを知っおいたす。 0.1から0.2たでの無限の数がありたすが、それらを衚すためのバむト数には限りがありたす。 䞀郚の数倀は完党に分割されおいないため、小数郚分を操䜜しないず、コンピュヌタヌが意味をなすように数倀を眮き換え始めたずきに粟床を倱わないこずが非垞に困難になりたす。


あなたはお金を扱うずきにこれに䌚ったかもしれたせん。 トリックは次のずおりです。お金に぀いおは、倱くしたくない限り、浮動小数点数を䜿甚しないでください。 垞に必芁な最小の分割できないナニットを䜿甚しおください。 セント、ミリドル、ピコドル、フェムトドルのいずれでも構いたせん。浮動小数点数ではありたせん。


銀行がnode.jsを䜿甚しお叀いコヌドベヌスをブロヌドキャストしようずしたプロゞェクトに぀いお聞いたこずがありたす。 チヌムにずっお残念なこずに、JavaScriptには浮動小数点数しかないず蚀われたので、チヌムはプロゞェクトを攟棄しなければなりたせんでした。


ちなみに、JavaScriptなどの浮動小数点を持぀蚀語では、敎数の粟床に䞊限がありたす。この堎合は2 53です。


画像


敎数を䜿うず少し楜になりたす。 ほずんどの堎合、人々は制限をよりよく理解し、それが助けになりたす。 しかし、これは十分ではありたせん。すべおの敎数が同じこずを意味するわけではないため、正しい構造ず䜿甚タむプが必芁です。 コヌドの䞀郚が垝囜単䜍で機胜し、他の郚分がメヌトル法で機胜したために倱敗した火星気候オヌビタヌを考えおください。 おっず


画像は、これらの耇雑なナニットの特別な倖芳を瀺しおいたす。 SiriたたはWolfram | Alphaに尋ねるず、1平方メヌトルあたりの䞭囜人の王の数は1,628×10 –4になりたす。 これが䜕を意味するのかはよくわかりたせんが、毎回確実に決定されたす。


画像


蚀語凊理が远加されるずさらに興味深い。 理由はわかりたせんが、「米囜の王は誰ですか」ずいう質問に察しおは、「15億7000䞇人の䞭囜の王」ず答えられたす。


原則ずしお、このような゚ラヌは簡単に防ぐこずができたす。 泚意しおください。奇劙な型システムを扱っおいる堎合は、最倧限に掻甚しおください。 すべおのタむプの「党䜓」を远いかけないでください。 敎数ずは䜕か、その単䜍は䜕かを瀺したす。


画像


私のアプリケヌションがその冗長性の優れた仕事をし、たた数字を操䜜する玠晎らしい仕事をしおいるずしたしょう。 おそらくナヌザヌさえもいたした。 ここで、シャヌディングなどの有甚なこずに泚意を払う必芁がありたす。そうでない堎合は、単に倖郚サヌビスを䜿甚したす。 いずれにせよ、UUIDたたはGUIDを䜿甚する可胜性が最も高いのは、それらが予枬䞍可胜であり、䞀意性を「保蚌」できるためです。


UUIDは、比范するビットのグルヌプです。 それらがすべお同意する堎合、識別子は怜蚌に合栌しおいたす。 そうでない堎合、圌は異なっおいたす。 さたざたなオプションがありたす。いく぀かはランダム、いく぀かは時間たたは䜏所に基づいおいたす。


ご芧のずおり、UUIDはスラむドの䞊郚にあり、16進数がハむフンで区切られおいたす。 これは少し危険です。


画像


䜿甚する蚀語たたはスタックによっおは、UUIDをバむナリBLOBずしおメモリに保存できるラむブラリがありたす。 たたは、それらの抜象的な衚珟が保存されおいる行。 堎合によっおは、たずえば、SQLク゚リやJSONなどの生のバむナリデヌタをサポヌトしないさたざたなシステムで情報を送信する堎合に、文字列を䞭間圢匏ずしお䜿甚する必芁がありたす。


これがリスクです。 デフォルトでは、ほずんどの蚀語のほずんどの文字列には、倧文字ず小文字を区別する比范挔算子がありたす。 したがっお、これらの3぀のUUIDは、それらの正芏のバむナリ衚珟では同䞀ですが、等しい文字列ずしお比范されたせん。 文字列衚珟はUUIDの真のプロパティの理想的な抜象化ではないため、倧文字ず小文字の区別はどのような堎合でも存圚し、システムで考慮する必芁がありたす。


画像


実際、たったく同じ衚珟を䜿甚しないさたざたなコンポヌネントは深刻な頭痛の皮になりたす。 ナヌザヌ、フロント゚ンド、バック゚ンド、デヌタベヌス、およびクラりドサヌビスは、倧文字ず小文字を区別しないか、䞀般的な考え方ず䞀臎させる必芁がありたす。


特定の蚀語には特別なラむブラリが必芁です。その䞀郚はすべお正垞に機胜したすが、䞀方は他方から同じこずを期埅できたせん。 デヌタベヌスは耇雑になる可胜性がありたす。



それにもかかわらず、たずえあなたがあなたのためにすべおを正しく行ったずしおも、システムが機胜するずいう保蚌はありたせん。 すべおを砎壊するには、たった1぀のサブシステムで十分です。 たずえば、䞀郚のAmazonサヌビスなどの倖郚サヌビスには、垞に䞀貫性のないさたざたなオファヌがありたすたずえば、DynamoDBずSimpleDBは倧文字ず小文字が区別されるため、これらに基づく3番目のAWSサヌビスはこれらのプロパティを継承する可胜性がありたす。 これが発生した堎合、たずえば、ロヌカルでPostgreSQLを䜿甚し、UUIDをUUIDずしお保存するず、䜕も良い結果が埗られたせん。 理論的には、ロヌカルサヌビスの小文字衚珟は倧文字のサヌビスには存圚しないため、オブゞェクトは互いに競合したり、単に消えたりする可胜性がありたす。


残りのように機胜しないシステムの郚分は、問題を匕き起こす可胜性がありたす。 正芏のUUID比范甚を小文字のコピヌ元のバヌゞョンず保存するか、各サヌビスが玠材を保存する方法を調べる必芁がありたす。 あたり楜しくありたせん。


画像


ただし、文字列の比范は倧きな問題に぀ながる可胜性がありたす。 比范された文字列文字列だけでなく、ほずんどの配列やデヌタ構造のもう1぀の興味深い特性は、できるだけ早く操䜜を進めたいずいう芁望です。


パスワヌドハッシュを比范し、䞀番䞊のものが正しいもので、2番目ず3番目が他の詊行である堎合、挔算子「==」が差に達するず、れロにリセットされ、falseを返したす。


蚈算の期間は情報であるため、これは興味深いです。 セキュリティず暗号化の分野では、できるだけ倚くの情報を隠すよう努めおいたす。 攻撃者はさたざたな前提で倚くの芁求を送信し、凊理にかかる時間を確認し、意図した答えが゜リュヌションにどれだけ近いかを理解できたす。 これにより、ハッシュの倀に関する情報が挏掩する可胜性があり、クラッカヌは時間に基づいお新しいオプションを提䟛できたす。


実際、これはタむムアタックです。 それらの皮類ははるかに倚くありたすが。


画像


この問題は、比范挔算子を厳密な遞蚀に眮き換えるこずで解決できたす。 falseに蚭定しおから、XORでビット単䜍たたはバむト比范を行いたす。 䞡方の倀が同じであるたびに0falseが返され、倀が異なるたびに1trueが返されたす。 ORは元の倀に぀ながり、最終的に0でない堎合、違いがあるこずがわかりたす。


ただ泚意する必芁がありたす。 デヌタ量に関する情報の挏掩がないこず、および特定の最適化があなたに害を䞎えないこずを確認する必芁がありたす。 ずにかく、優れた暗号化ラむブラリはこれを行いたす。 bcryptたたはscryptを䜿甚するず、パスワヌドに問題はありたせんが、知識があればあるほど良いです。


面癜いこずですが、暗号化では、蚭蚈の面ではすべおをできるだけ遅くする必芁がありたすが、ブルヌトフォヌス攻撃を防ぐため、実装ではできるだけ早く実行する必芁がありたす。


画像


もちろん、䞀郚のデバむスはこれをあたりにも心に留めおおり、実際にはその遅さはオプションです


画像


この玠晎らしいアプリケヌションがありたす。 珟圚、冗長性、敎数、浮動小数点、UUID、およびパスワヌドの玠晎らしい仕事をしおいたす。 より倚くのナヌザヌを獲埗し、応答時間に察するパフォヌマンスが䜎䞋し始めおいたす。 ブログの投皿から、費やした時間の10分の1ごずに応答を受け取らないナヌザヌの重芁な割合が倱われおいるこずがわかりたした。 これは行動ぞの合図です


䞀郚の操䜜は長持ちし、他の操䜜は抑制されたす。 原則ずしお、それが䜕であるかを予枬するこずは本圓に難しく、ピヌク時間は迷惑です。 チヌムの誰かが、すべおの問題の解決に圹立぀アむデアを思い぀きたす。 この考えは䜕ですか


画像


行に固執する 倖郚サヌバヌは単玔な短いク゚リをデヌタベヌスに盎接送信するだけで、耇雑で時間のかかるク゚リはすべおキュヌに送られたす。 デヌタは凊理されずにキュヌに入れられ、結果をすばやくナヌザヌに返すこずができたす。


画像


それで䜕 すべおのアクションが返されたす。 地獄、それは以前よりもさらに高速です


ただし、いく぀かの問題がありたす。


画像


キュヌを远加するず、興味深いこずが起こりたした。システムの䞀般的な状態の倖郚サヌバヌぞの転送が停止したした。 ゚ンドツヌ゚ンド操䜜から結果が早く返されたために、システムのナヌザヌがすべおの芁求が凊理されたかどうかを確認できた堎合、キュヌの導入によりこの抂念が砎壊されたした。


これで倖郚サヌバヌにより、盎接接続の存圚に぀いおのみ怜玢できるようになりたした。 キュヌコンシュヌマ、非同期サヌバヌ、デヌタベヌスずの察話機胜、たたは非同期キュヌ自䜓ずの関係に぀いおはわかりたせん。


画像


実際、䜜業が慎重に行われないず、むベントが繰り返される可胜性がありたす。 これは、ゲヌムを12.74ドルで賌入したRedditナヌザヌです。 圌は䞀床それを賌入したしたが、銀行口座に–93千ドルを超える金額が圢成されるたで、䜕床も支払い芁求を受け取りたした。


もちろん、この問題がキュヌによっお正確に匕き起こされるずいう保蚌はありたせんが、それは非垞に䌌おいたす。 䜕かがうたくいかず、゚ンドツヌ゚ンドのデヌタストリヌムが䞍可解な方法で䞭断した堎合、結果は通垞非垞に顕著です。


画像


しかし、それだけではありたせん。 アプリがゆっくり動䜜し始めた理由は、アプリが過負荷になったためです。 そのため、システムの実際の負荷から知芚パフォヌマンスを完党に分離したした。


バック゚ンドがどれほど悪くおも、フロント゚ンドのパフォヌマンスは倉わりたせん。 このスキヌムは、䞀郚の倧芏暡な操䜜で䞀時的な過負荷が発生した堎合に機胜したすが、長期的な安定性に関しおは正圓化されたせん。 フロント゚ンドのパフォヌマンスを制埡し、本質的にシステム党䜓を監芖したした。 2぀の郚分に分割するず、私の監芖は操䜜性だけでなく、システムの半分だけのパフォヌマンスも瀺したす。


画像


その結果、キュヌがオヌバヌフロヌしおクラッシュしたす。 もちろん、圌女が倱敗するだけではありたせん。


画像


゚ラヌはむンタヌフェむスノヌドに到達し、最終的に壊滅的な障害が発生したす。


私たちはどうですか 誰かが䌚議を開いお、これは受け入れられないず蚀っおいたす。 そしお、開発者は䜕をしたすか


画像


キュヌを増やしたす。 しかし、それだけではありたせん。 事故の間にキュヌ内のすべおのデヌタが倱われたため、䌚議のすべおの参加者もそれを氞続的にするこずに同意したす。 これは圌女を遅くし、冗長性が倧奜きなので、別のキュヌを远加しおみたせんか


画像


次回゚ラヌが発生したずきに、同じこずができたす。


画像


これらの行はすべお良い決定です。 しかし、私たちはクヌルな倧䌁業であるため、次䞖代のテクノロゞヌが必芁です。 私たちは皆、このアヌキテクチャスキヌムがひどいこずを知っおいたす。 だから、私たちは䜕か特別なものを玹介しおいたす...


画像


そしお、これらはマむクロサヌビスです


画像


もちろん、問題は同じです。 耇雑さは䟝然ずしおシステムの䞀郚のみの監芖に関連しおいたす。 このようなアヌキテクチャの倉曎はナヌザヌには芋えないはずですが、システムのメンテナンスず操䜜に非垞に重芁な圱響を及がしたす。


ナヌザヌずオペレヌタヌを組み合わせたり、そのうちの1぀を陀倖したりするこずは、プロゞェクトにずっお臎呜的な間違いです。 操䜜は非垞に耇雑になっおいたす。


もちろん、それだけではありたせん すべおのコンポヌネントは盞互にやり取りできる必芁がありたす。


画像


JSONのようなものを遞択できたす。 これは、seriot.chのグラフで、10以䞊の蚀語で玄50個のJSONラむブラリの実装を远跡しおいたす。


それらのほずんどは、独自の方法で情報を凊理したす。


画像


これはあたり良くありたせん。


画像


JSON暙準は非垞に小さいですが、これはおそらく解釈のためのスペヌスを提䟛するこずを意味し、したがっお、特別な非暙準の動䜜のために提䟛したす。


最も興味深いのは、耇数のマむクロサヌビスを実行し、それらすべおに等しく慎重に凊理されたデヌタセットを送信するず、䞀貫性のない動䜜が発生する可胜性があるこずです。 たずえば、意味の異なる倚数の同䞀キヌを持぀無効なJSONを考えおみたしょう。 「name」属性が2回衚瀺され、1回目は「Mark」、2回目は「John」である「person」オブゞェクトがあるずしたす。


ほずんどの堎合、アナラむザヌは次の3぀の方法のいずれかで動䜜したす。


  1. 必芁に応じお、レコヌドの解析を拒吊したす。
  2. 名マヌクを保存したす。
  3. ミドルネヌムJohnを保存したす。

最埌の2぀の方法の遞択は、分析の順序スタックを䜿甚しお、たたは順番にに䟝存したす。


3぀のサヌビスがあり、それぞれに独自の動䜜バヌゞョンがあるずしたす。 次に、1぀のサヌビスが停止しおレコヌドの凊理を拒吊し、他の2぀のサヌビスは同じオブゞェクトに察しお異なる倀を衚瀺したす。 それらには泚意が必芁です。


画像


別の問題は時間に関連しおいたす。 異なる時蚈は異なる速床で動䜜したす。 昚幎、カレンダヌに関するプレれンテヌションの実隓を行いたしたいいえ、笑わないでください、カレンダヌは実際には非垞に興味深いです。その間、コンピュヌタヌのクロック同期をオフにしたした。 次に、オヌブンず電子レンゞで同じこずを行い、最倧の逞脱がどこにあるかを確認したした。 箄3〜4週間埌、電子レンゞの時間はラップトップで玄3分、玄2分16秒移動したしたが、オヌブンでは倉化したせんでした。


時蚈は、ハヌドりェア、枩​​床、電圧、湿床などによっお異なりたす。長時間正確に保぀こずはできたせん。


画像


これは、同期を行わないず、同じむベントのタむムスタンプが分離され、結果が異なる可胜性があるこずを意味したす。 これを回避するには、NTPが必芁です。 時間を監芖し、その偏差がわずかであるこずを確認できたす。 それにもかかわらず、非垞に迅速に発生するむベントの堎合、NTPでも問題を匕き起こすのに十分な方法がありたす。


そしお、これは1぀のデバむスでも起こりたす。 最埌の䜜業で、Hadoopクラスタヌを䜕らかの圢で壊したした。 ミリ秒単䜍でクむックトレヌドを開始し、2぀のポむントで時間を蚘録しおいるこずが刀明したした。リク゚ストの受信時ずオヌクションの完了時です。 次に、このデヌタを䜿甚しおむベントを蚘録し、時間差を蚈算しお、凊理党䜓にかかる時間を調べるこずができたす。


運呜の日に、トランザクションが特に迅速に実行されたずき、コンピュヌタヌクロックのNTP同期により、数分の1秒の偏差が生じたした。最初の時刻の前に2番目のタむムマヌクを付けるだけで十分です。 完党な幞犏のために、これはその月の最埌の日の真倜䞭頃か他のサむクルで起こりたした。


むベントは開始する前日に終了したしたが、これはクラスタヌにずっお非垞に恥ずかしいこずでした。クラスタヌは明らかにゞャンクデヌタに萜ちおいたした。


ここでのコツは、単調な時間ず党身的な時間の間に倧きな違いを䜜り出すこずです。


画像


しかし、それだけではありたせん。 時間は垞に問題を匕き起こしたす。 同様のシステムを䜿甚するず、たったく異なる論理的な終了を取埗できたす。


この堎合、クラむアントは芁求を送信しお、それを最初のサヌビスに転送しおから、2番目ず3番目のサヌビスに転送できたす。 サヌビスが商品の賌入を確認し、それに関する通知をむンタヌフェヌスに送信するずしたす。 3番目のサヌビスの埌、すぐに4番目のサヌビスの泚文を送信したす。これにより、たずえば配達などが確認されたす。 たた、むンタヌフェむスに通知を送信したす。


この段階では、ネットワヌクの遅延により、むンタヌフェヌスは、賌入が確認される前に発送が行われるずいう情報を受け取る堎合がありたす。


あなたがフロント゚ンド開発者であれば、そのようなむベントを予枬し、適切に察凊するこずができたす。 代わりに、同じむベントが䜕らかの監査システムに分類される堎合、間違いを起こしたり、アラヌムを発生させたり、送信をキャンセルしたりする可胜性がありたす。


次に、因果関係を無条件ず芋なすのではなく、論理時間を䜿甚しお因果関係を远跡する必芁がありたすが、これはあたりにも広範囲にわたるトピックであるため、ここで説明するこずはできたせん。


画像


論理゚ラヌは実際にはかなりおかしいです。 時間内に旅行するこずができたす。


画像


しかし、それだけではありたせん。 ここにいる人は、おそらくタむムゟヌンに粟通しおいるでしょう。 しかし、ここで誰かがベルトに぀いお30分聞いたこずがありたすか


ほずんどの人が手を挙げたす。


はい、そのようなベルトはニュヌファンドランドにありたす。 これは囜内にありたす。ご存知の通りです。


しかし、15分でタむムゟヌンが存圚するこずを誰が知っおいたすか 同様のこずがニュヌゞヌランドにありたした。 たたは、リベリアに44分の蚘録がありたすか 1927幎に䞭囜のタむムゟヌンで5分ず数秒の偏差があったず聞いた人がいるかもしれたせん。


しかし、それだけではありたせん。 タむムゟヌンの倉曎は必ずしも軜埮ではありたせん。 たずえば、サモアはUTC -11ずUTC +13の間に存圚し、完党に曜日が切り替わりたす。 秘Theは、それらが日付倉曎線䞊にあるずいうこずです。 1892幎、島は垂堎の考慮事項に基づいお、カレンダヌを米囜ず調敎するこずを決定したした。 その幎、圌らは7月4日を2回持ちたした。 7月1日、7月2日、7月3日、7月4日、7月4日、7月5日...


そしお再び、2011幎に最近圌らは䞭囜ずカレンダヌに合意し、今回は12月31日ではありたせんでした。


たた、倏時間もありたす。 ブラゞルのシステム管理者に粟通しおいる堎合、ブラゞルのすべおの地域/州/州が毎幎DSTを遵守するかどうか投祚するずいう面癜い事実を聞いたこずがあるかもしれたせん。 タむムゟヌンファむルを曎新する必芁があるかどうかを事前に知るこずはできたせん。


画像


次に、うるう秒。 タむムゟヌンの問題は、単にUTCで解決されたす。 しかし、これは非垞に興味深い結果をもたらしたす。各タむプは䟝然ずしおUNIXタむムスタンプを䜿甚しおおり、UTCず1970幎1月1日に始たるUNIX時代ずの間で自由に倉換できるからです。


これは、UTCがうるう秒を考慮しおいるためです。これはしばしば修正されたす。これらは、時蚈を珟実䞖界ず同期させるために、地球の軌道の回転に基づいお远加たたは削陀されたす。 1970幎以来、私たちは27秒のオフセットのネットワヌクにいたす。 システムのUNIX時代では、これらの秒は考慮されおいたせん。


, , - iPhone, 1 1970 . - . , , .


, ( , ), . — — , 1 1970 , , UTC , -27, . . 32 2106 , , .


画像


. . , , . - , ? ( .)


そんなにない。 , , — :



はい、そうです。 . .


画像


いえいえ . : , . . ( .)


はい , , . Latin-1 ( ISO-8859-1) UTF-8.


画像


, UTF-8 ISO-8859-1 , ASCII.


. , HTTP ( ), , ( UTF-8), ( SQL , ), . , .


, , . , .


画像


— . . :



, , .


. 40+ .
, (code points). , , . 30 , - , .


, , . .


画像


. , , .


画像


, . Spotify, . , , .


画像


. Spotify, .


画像


- ! ! 2012 « : SSL- », .


, . , , ( -), , « » . 幞せな時間。


画像


OpenSSL. .


画像


GnuTLS .


画像


API cURL PHP . , , CURLOPT_SSL_VERIFYHOST true. , PHP ( , C C++) true — , 1. 1 CURLOPT_SSL_VERIFYHOST . — 2.


おっず


画像


, class breaks, .


, . , . , .


class breaks, . .


画像


« », , . . , , IoT .


. , (, , ?), , , -, . .


画像


. , , , , . . ? , ?


, , , . - , . , , - , , . .


䜜品の安党性を確保するために適切な手段を䜿甚しおいたすかただ十分な数の人を殺しおいないからずいっお、すべおをそのたたにしおおくのでしょうかおそらく私たちはすべお問題を知っおいるかもしれたせんが、䜕かを私たちがもっず達成するために党䜓ずしお行動するこずを匷制するたで、私たちは個人的な責任を単に吊定したすか


よくわかりたせんが、これはすべおずおも怖いです。私は、私が最終的に法埋の採択を芁求するのに十分な危害を匕き起こす者の䞀人ではないこずを望みたす。おそらく私たち党員がこれを少し恐れるべきでしょう。すべおが悪いです、そしお私たちは責任がありたす。



Source: https://habr.com/ru/post/J327264/


All Articles