Richard Stallman dnes v Liberci přednáší o svobodném softwaru a svobodě v digitální společnosti. Od 16:30 v aule budovy G na Technické univerzitě v Liberci. V anglickém jazyce s automaticky generovanými českými titulky. Vstup je zdarma i pro širokou veřejnost.
sudo-rs, tj. sudo a su přepsáné do programovacího jazyka Rust, nahradí v Ubuntu 25.10 klasické sudo. V plánu je také přechod od klasických coreutils k uutils coreutils napsaných v Rustu.
Fedora se stala oficiální distribucí WSL (Windows Subsystem for Linux).
Společnost IBM představila server IBM LinuxONE Emperor 5 poháněný procesorem IBM Telum II.
Byla vydána verze 4.0 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Přehled novinek v poznámkách k vydání. Využíván je Free Pascal Compiler (FPC) 3.2.2.
Podpora Windows 10 končí 14. října 2025. Připravovaná kampaň Konec desítek (End of 10) může uživatelům pomoci s přechodem na Linux.
Již tuto středu proběhne 50. Virtuální Bastlírna, tedy dle římského číslování L. Bude L značit velikost, tedy více diskutujících než obvykle, či délku, neboť díky svátku lze diskutovat dlouho do noci? Bude i příští Virtuální Bastlírna virtuální nebo reálná? Nejen to se dozvíte, když dorazíte na diskuzní večer o elektronice, softwaru, ale technice obecně, který si můžete představit jako virtuální posezení u piva spojené s učenou
… více »Český statistický úřad rozšiřuje Statistický geoportál o Datový portál GIS s otevřenými geografickými daty. Ten umožňuje stahování datových sad podle potřeb uživatelů i jejich prohlížení v mapě a přináší nové možnosti v oblasti analýzy a využití statistických dat.
Kevin Lin zkouší využívat chytré brýle Mentra při hraní na piano. Vytváří aplikaci AugmentedChords, pomocí které si do brýlí posílá notový zápis (YouTube). Uvnitř brýlí běží AugmentOS (GitHub), tj. open source operační systém pro chytré brýle.
Mezinárodní organizace pro sledování rotace Země a referenčních systémů (IERS) stanovila, že noc z 30. června na 1. července bude o tzv. přestupnou sekundu delší. V roce 2012 měla řada systémů s přestupní sekundou vážné problémy (zprávička).
Tiskni
Sdílej:
Takové chyby zanáší do kódu všichni a ti lepší pak nakonec provedou kontrolu / test / poslechnou varování překladače a opraví je.Tohle podle mě nemá řešení. Například nemůžeš nastavit expiraci účtu na 30.6.2016 23:59:59, protože takový čas možná vůbec nebude existovat.
Ne, ale třeba používám event-based systém (třeba něco jako unixový "at"), který si nastaví na daný čas alarm a spustí nějakou akci (smazání uživatelova home…). Když k času nedojde, alarm se nespustí.
WTF? Systém, který by byl implementovaný výše popsaným způsobem by na (běžném x86) hw vůbec nefungoval. Čas se porovnává pomocí větší rovno a daná událost se provede v nebližším možném termínu po nastaveném čase. Systém, který by porovnával čas pomocí = by musel splňovat znaky realime os, aby se proces, který kontroluje čas a onu událost spouští, vůbec v daném okamžiku (např. milisekundě, sekundě, v extrémním případě minutě) dostal k procesoru.
Systém, který by byl implementovaný výše popsaným způsobem by na (běžném x86) hw vůbec nefungoval.x86? Not my problem.
Čas se porovnává pomocí větší rovnoOK, má se již provést příkaz v podmínce
if(get_current_time() >= "32.13.2014 25:48:73")?
Systém, který by porovnával čas pomocí = by musel splňovat znaky realime os, aby se proces, který kontroluje čas a onu událost spouští, vůbec v daném okamžiku (např. milisekundě, sekundě, v extrémním případě minutě) dostal k procesoru.Není potřeba, aby se dostal k procesoru. Má to HW alarm a udělá to v daný čas interrupt.
OK, má se již provést příkaz v podmínce
Údaj v podmínce neodpovídá žádné definici času kterou já znám, takže je to chyba při validaci vstupních dat nebo chyba při kompilaci.
Jestli to mělo být nakopnutí k tomu, že "já přece taky nevím, jestli bude v 30.6.2036 přestupná sekunda, takže nevím, zda uznat čas 23:59:60, tak bych radil spíše defensivní přístup a danou situaci vůbec nepovoloval / volil větší tolerance. A pokud je nezbytně nutné brát do úvahy každou jednotlivou sekundu, tak program zcela evidentně nemůže používat čas UTC a proto by měl používat nějaký jiný.
Jestli to mělo být nakopnutí k tomuSkoro přesně tak :). Ale nešlo mi ani tak o to, jestli povolit 23:59:60, jako spíš jestli povolit 23:59:59. Přestupná sekunda nemusí znamenat jenom přidání ale i odebrání. No a pak je ještě problém vysvětlit to uživateli (bohatě stačí seznámit ho s timezonami a DST). Ještě štěstí, že ve většině případů sekundy neřeší a u toho nešťastného navigačního systému po seznámení s problematikou řekli, že to z optické podstaty zařízení provozují jenom za denního světla a sekunda je za tmy :)
Přestupná sekunda nemusí znamenat jenom přidání ale i odebrání.
Ano, to je jasné, ale přece to nic nemění. Pokud někdo zadá časový údaj 23:59:59 a ona zrovna nebude, tak se nic neděje, program to provede v čase 00:00:00 následujícího dne. To je ten defensivní přístup. Případně, vzhledem k tomu, že se to vyhlašuje dostatečně dlouho dopředu, můžu uživatele informovat o tom, že jeho časový údaj je neplatný a požádat ho o změnu, případně změnu provést automaticky a jen uživatele informovat apod.
Poznámky pro dopravce: Nedávat je blízko k sobě!
Přepravuješ plutonium?
Pokud někdo zadá časový údaj 23:59:59 a ona zrovna nebude, tak se nic neděje, program to provede v čase 00:00:00 následujícího dne.Nebo 23:59:58… Já vím jak to řešit (u aplikací, kde nejsou potřeba desítky milisekundových timestampů za sekundu). Proč ale pak děláme tuhle šaškárnu s tím, aby byl čas na sekundy přesně, když to pak stejně systém prskne o sekundu sem či o sekundu tam a když to někdo už fakt přesně potřebuje, doporučíme mu TAI?
Přepravuješ plutonium?Ne, (obohacený) uran. Plutonium je jedovaté.
Proč ale pak děláme tuhle šaškárnu s tím, aby byl čas na sekundy přesně
Na to je zcela stejná odpověď, jako na otázku proč se vkládá přestupný den. Prostě proto, aby lidský umělý kalendář seděl s fyzikální realitou. Realita je taková, že jeden oběh kolem Slunce netrvá přesně jeden rok, takže se občas vkládá den, stejně tak rotace Země kolem své osy není přesně jeden den, takže se občas vkládá jedna sekunda (to že by se někdy ubírala je krajně nepravděpodobné).
A vzhledem k tomu, že jak oběh kolem Slunce, tak i rotace není stabilní, tak není možné udělat takový kalendář, aby to přesně vyšlo. Proto je potřeba jej korigovat.
Lidstvo by se muselo rozhodnout a zcela opustit systém navázaný na fyzikální realitu a až potom by se mohla prosadit nějaká jiná časová soustava. Ale rozhodně to na to nevypadá.
A já bych byl všemi deseti pro, aby se opustila šedesátková soustava (i když má své výhody) a čas se počítal normálně pomocí násobků SI (taková megasekunda zní docela dobře).
Ne, (obohacený) uran. Plutonium je jedovaté.
Tak to jo, to schvaluju.
Ano, přestupná sekunda se vkládá tak, jak popisujete. Děje se tak už přes čtyřicet let, tak se s tím smiřte.Způsobuje to situace, které z principu nelze řešit, i kdybychom prohlásili, že tomu programátor má věnovat rok.
Ono je celé to lidské počítání času nesmyslné, dělení na šedesátiny a dvanáctiny, různě dlouhé měsíce, měsíce ani roky nejsou zarovnané na týdny...Je to pakárna, ale alespoň dokážete spočítat, jak se to bude chovat (v rámci platnosti systému) neomezeně do budoucnosti. A kód který to korektně počítá není zas tak dlouhý.
Přestupná sekunda sice řeší minutu za dvě století, ale ono je mnohem lepší řešit ty korekce průběžně způsobem, který všichni znají a pravidelně se opakuje, než se to pokoušet řešit jednorázově nějakým nesystémovým zásahem.Stále nejsem přesvědčen, že ten zásah vůbec bude potřeba.
Způsobuje to situace, které z principu nelze řešit, i kdybychom prohlásili, že tomu programátor má věnovat rok.
Pokud je to situace, kterou nelze řešit, tak je zbytečné ji řešit a je hloupé dávat tomu programátorovi rok.
Způsobuje to situace, které z principu nelze řešit, i kdybychom prohlásili, že tomu programátor má věnovat rok.Nikoli, pouze to zviditelňuje chyby, které se mohou projevit i jinak.
Je to pakárna, ale alespoň dokážete spočítat, jak se to bude chovat (v rámci platnosti systému) neomezeně do budoucnosti.Což je sice hezký akademický příklad, ale v praxi je to úplně k ničemu.
Stále nejsem přesvědčen, že ten zásah vůbec bude potřeba.Nebude, protože se ty korekce dělají průběžně. Holt lidé z nějakých důvodů chtějí mít počítání času svázané s jevy jako je vzájemná poloha Země a Slunce, tak se jen řeší, jak to organizačně zajistit. S tím, jak se naše měření postupně zpřesňuje, se zjistilo, že je potřeba to korigovat přestupnými roky, pak přestupnými roky s pravidlem 4 ano, 100 ne a 400 ano, a posléze že je potřeba to dál korigovat přestupnými sekundami. Ano, mohli bychom mít i čas na přírodních jevech zcela nezávislý. Ale nedávalo by smysl mít čas nepřesně svázaný s přírodními jevy.
Holt lidé z nějakých důvodů chtějí mít počítání času svázané s jevy jako je vzájemná poloha Země a Slunce, tak se jen řeší, jak to organizačně zajistit.Tak pak když už řešíme přestupnou sekundu by to chtělo vyřešit i hodinový úhel (odchylka 15 minut dvakrát ročně), nedostatečnou granularitu časových pásem (odchylka až 2 hodiny při současné implementaci a až 30 minut při hypotetické implementaci podle poledníků) a letní čas (odchylka 1 hodina). Všechny tyto jevy jsou horší než chyba kterou by naakumulovalo zanedbávání přestupné sekundy od zavedení Gregoriánského kalendáře a ještě asi tak tisíc let do budoucnosti.
Vadilo by, kdyby se trvale posouval jedním směrem, protože by to postupně vedlo k tomu, že zimní slunovrat budeme mít v létě.Vadilo by to i v případě, že by se posouval tak pomalu, že by do toho léta docestoval v roce 100000? (slovy sto tisíc) Myslíte, že v té době budou lidi řešit, že v roce 2014 byl zimní slunovrat 21. prosince?
Musím říct, že tato diskuse mi pomohla pochopit některé tvé komentáře v jiných a s tématem zcela nesouvisejících diskusí.Těší mě :)
Prostě, pokud občasnký čas definujeme nějak, nemůžeme ignorovat vlivy, které vedou k tomu, že se ten čas od té definice měřitelným způsobem posune.Tuto možnost jsem zmiňoval o dva komentáře výš. Kdyby někdo důsledně lpěl na řízení se Sluncem, chápal bych to. Pak by ale musel lpět například na místním čase místo časových pásem.
Stejně tak bychom mohli ignorovat to, že Země neoběhne Slunce přesně za rok, vždyť je to také jen o malý kousek.To je o několik řádů větší odchylka než přestupná sekunda. Ale nevadilo by mi to.
Kdyby někdo důsledně lpěl na řízení se Sluncem, chápal bych to. Pak by ale musel lpět například na místním čase místo časových pásem.Ale vůbec nejde o to, aby občanský čas odpovídal postavení Slunce v každém okamžiku. Jde o to, aby mu odpovídal dlouhodobě, aby systematicky neujížděl jedním nebo druhým směrem. Je to jako když jedete autem v jízdním pruhu - nepotřebujete být v každém okamžiku přesně ve středu toho pruhu, ale pokud se budete systematicky od středu neustále vzdalovat, skončíte ve škarpě nebo v protisměru. No a je lepší se kolem toho středu držet průběžně, ne čekat, až začnete pravým kolem lízat krajnici, pak myškou přejet levým kolem na středovou čáru a zase pomalu klouzat doprava.
Jde o to, aby mu odpovídal dlouhodobě, aby systematicky neujížděl jedním nebo druhým směrem.Pri korekci pomoci zmen casovych zon by take dlouhodobe neujizdel jednim nebo druhym smerem.
Jsou lidé, kteří chtějí dělat věci co možná nejlépe v rámci současných možností a ti se nesmíří s tím, že když už máme občanský čas definovaný v závislosti na pohybech nebeských těles, tak budeme zcela ignorovat nějaké nové přesnější měření a tvářit se, že posun o hodinu za 7200 let je vlastně málo a nebudeme to řešit.Otazna nezni zda ignorovat presnejsi mereni. Otazka zni, zda vubec mit obcansky cas definovany v zavislosti na pohybech nebeskych teles. IMHO to je hloupost uz od doby, co sekunda prestala byt odvozenou jednotkou od aktualni delky stredniho solarniho dne (tedy ~60 let zpatky) a stale se zakladni casovou jednotkou.
tvářit se, že posun o hodinu za 7200 let je vlastně málo a nebudeme to řešitS takovym postojem bys mel odmitnout soucasny gregoriansky kalendar (ktery je jen priblizny a casem oddriftuje) a navrhnout vkladani prestupneho roku podle astronomickych pozorovani (podobne, jako to ma treba tradicni iransky solarni kalendar).
Otazka zni, zda vubec mit obcansky cas definovany v zavislosti na pohybech nebeskych teles.Urcite je to takova hloupost? U mesicu asi ano, ale u dne a roku je IMHO prakticke mit udalosti odpovidajici rocnimu obdobi nebo denni dobe zhruba ve stejnou dobu (veci jako prazdniny, vanoce, nocni klid...).
Urcite je to takova hloupost?Rozebiram to tady. Pro zajisteni teto korespondence neni treba explictni zavislost (pripad 1), staci nezavisla aproximace (pripad 2).
Zruseni tech prestupnych vterin?Ano. A akumulovanou odchylku pripadne resit posunem casovych zon, pokud tech nekolik minut za staleti bude lidi trapit.
S tim bych nemel problem, ale neznam hlavni argument proPredvidatelna casova skala. Odstraneni zbytecne komplexity a s ni spojene problemy.
Vadilo.Nedokážu si představit proč. Myslíte, že lidem bude vadit oslava Vánoc (které nejspíš už nebudou existovat) nebo uzavření fiskálního roku v létě? Nebo že budou chtít používat 10000 let staré zemědělské tabulky?
Ne nám, ale proč to dnes neřešit jak nejlépe umíme?Protože navržený způsob řešení přináší problémy, které jsou dle mého názoru mnohem větší než ty, které by přineslo, že červnu 100000 bude sněžit a v prosinci bude horko (hint: Autrálie).
Nedokážu si představit proč.Protože by spousta věcí přestala dávat smysl. Myslím, že s gregoriánskou korekcí juliánského kalendáře se lidé netrápili jen tak, že zrovna neměli do čeho píchnout. Pokud by to nevadilo, nemá smysl vůbec používat časový systém navázaný na postavení Země a Slunce. Jenže poptávka po tom opustit tenhle systém není velká.
(a umělé osvětlení v tom udělalo zmatek, takže teď bychom půlnoc potřebovali spíš mezi druhou a třetí, takže by pak mimo jiné přechod mezi standardním a letním časem vycházel logicky na půlnoc)Vidíte, pár set let a už by byla potřeba změna oproti přesnému nebeskému kalendáři. Půlnoc mezi druhou a třetí se udělá, když zrušíte přestupnou sekundu a počkáte 20000 let
Jistě, nemusíme tyhle rituály vázat na kalendářNapříklad Velikonoce již nejsou definovány na základě kalendáře. Je to první úplněk po rovnodennosti (která v Gregoriánském systému plave). Tak už stačí předefinovat Vánoce na zimní slunovrat a jste za vodou. To teda stejně budete muset udělat (nebo zadat nepravidelně přestupný den, čímž zničíte o jedno posunete počítání dní v týdnu, hodně štěstí :), protože in the year 12,000 the calendar would fall behind by at least 8 but less than 12 days..
Ovšem prakticky je mnohem lepší dělat průběžně malé korekce než jednou za čas velké.Praktické zkušenosti ukazují, že se mýlíte. Při změně pravidel letního času v USA v roce 2005 a jeho úplném zrušení v Ruské Federaci v r. 2011 žádné závažné problémy nenastaly. S přestupnou sekundou jsou v poslední době nějaké potíže pokaždé.
Stačí si porovnat, jak bezproblémové je řídit se gregoriánským kalendářem, a jak problémová byla jednorázová korekce na jeho začátku.Ano, je bezproblémový, protože je předvídatelný, je snadný na pochopení a dá se snadno implementovat. Problémový byla korekca na začátku, protože to byla výjimečná situace. Přestupná sekunda přináší potíže, protože není snadno předvídatelná a je to de-facto výjimečná situace pokaždé.
Pokud je někde tisíce let systematická chyba, která postupně naroste až na jednu hodinu, jaký smysl má po deseti tisících let tu chybu korigovat?Žádný! To je to, o čem se tu celou dobu bavíme. Systematickou odchylku, která plíživě naroste na jednu hodinu za pět tisíc let nemá smysl korigovat.
Myslím, že s gregoriánskou korekcí juliánského kalendáře se lidé netrápili jen tak, že zrovna neměli do čeho píchnoutTo bylo tehdy hlavne z nabozenskych duvodu (vazba nabozenskych svatku). Proto tu reformu take zavedl papez Gregor.
Jenže poptávka po tom opustit tenhle systém není velká.Evidentne je, kdyz se o tom opakovane jedna na ITU konferencich.
takže těžko najdete přesvědčivý důvod, proč to měnit.Tak proč se to už tolikrát změnilo?
V moderní době minutu, hodinu a den definuje od r. 1960 Mezinárodní soustava jednotek SI jako ne-SI jednotky povolené pro použití s jednotkami SI a to výslovně jako 60, 3600 a 86400 sekund.
To ale vůbec nijak nesouvisí s problémem přestupné sekundy, to je prostě jen definice převodů mezi násobky, podobně jako definice k, M, G apod.
V čase dle UTC skončí 2015-07-01 00:02:29. Vybral jsem si UTC, protože jsi počátek jevu též definovat v UTC.Ano, protoze z formulace bylo jasne, ze ty tri minuty jsou ve smyslu 180 s. Ale napr formulace '2015-06-30 23:59:30 UTC + 3 min' uz muze byt interpretovana bud stejne nebo jako navyseni minutove slozky v UTC datu a tedy jako '2015-07-01 00:02:30 UTC'.
Ne, ty převody neplavou. Den má 86400, hodina 3600, minuta 60 sekund. Den s přestupnou sekundou nemá 86401s, ale den+1s. Nevím, co je pořád za problém.
a navíc ti nikdo nebyl schopen víc než půl roku dopředu říct, kolik to bude!
Což plyne přímo z fyzikální podstaty problému. Až budeme schopni měřit a počítat s dostatečnou přesností všechny vlivy na rotaci Země, budou se dělat tabulky s přestupnými sekundami na 100 let dopředu. Zatím to nejde.
A kdo potřebuje, tak má k disposici hromadu dalších časových soustav kde se přestupná sekunda nevyskytuje.
Den s přestupnou sekundou nemá 86401s, ale den+1s.OK.
Což plyne přímo z fyzikální podstaty problému.Já to chápu. A je mi jasné, že třeba astronomové, kteří si potřebují nastavit dalekohledy, nejspíš zvolí nějakou časovou soustavu, která odchylky v otáčení Země zohledňuje. O co mi celou dobu jde je to, že je takový systém krajně nevhodný pro neastronomické použití.
A kdo potřebuje, tak má k disposici hromadu dalších časových soustav kde se přestupná sekunda nevyskytuje.Samozřejmě. A přepočítávat pokaždé když se bude bavit s někým okolo.
Já to chápu. A je mi jasné, že třeba astronomové, kteří si potřebují nastavit dalekohledy,Me neni jasne, zda to vubec potrebuji ti astronomove. Co jsem cetl, tak ti pouzivaji TT (terrestrial time, ktery ma fixni offset od TAI a tedy prestupne sekundy nepouziva) a k nemu tabulku efemeridu.
Chápu to správně, že vy se dosud řídíte juliánským kalendářem? Protože vaše důvody platí úplně stejně i na gregoriánský kalendář.Nevím, jak jeho, ale moje důvody na něj určitě neplatí. U gregoriánského kalendáře lze snadno spočítat, za jak dlouho bude 1.1.2040, protože pravidla o modulení 4, 100 a 400 jsou deterministická a předem daná. U přestupné sekundy ale nevíte, za jak dlouho bude 30.7.2016.
Zvláštní je, že ty přestupné sekundy nikdy nikomu nevadily, až teď počítačům.Jirsák, 1840: Zvláštní je, že ten bordel v lokálních časech nikomu nevadil, až teď vlakům. Možná, že až do doby počítačů nedocházelo k masivní výměně informací obsahujících přesný čas mezi různými systémy, takže se prostě problém neprojevil.
Možná, že až do doby počítačů nedocházelo k masivní výměně informací obsahujících přesný čas mezi různými systémy, takže se prostě problém neprojevil.
Pokud bych chtěl být nepatrně jízlivý, tak ono je to spíše tím, kolik lidí se v roce 2014 diví (a to dokonce i z IT), že vůbec něco jako přestupná sekunda existuje (přitom je to jev starší než většina takto se divících). Vzhledem k tomu, že mám docela přehled o tom, kdo některé systémy vyměňujích si informace píše, tak se ani nedivím tomu, jaké problémy to v praxi způsobuje. A to za stavu, kdy existují kompletní knihovny schopné si poradit s převody mezi časovými soustavami a implementující celou časovou algebru. I přesto se donekonečna objevují implementace obsahující kód jako hour*3600+min*60+sec udělej něco
.
A to za stavu, kdy existují kompletní knihovny schopné si poradit s převody mezi časovými soustavami a implementující celou časovou algebru.Pokud taková knihovna pro cílovou architekturu existuje, nezaplácne 80 % paměti daného mikrokontroléru a do zařízení se pravidelně dostávají informace o nově vyhlašovaných přestupných sekundách.
Přestupná sekunda, narozdíl od přestupného roku, je zaváděná nepravidelně a nelze ji určit předem nezávisle na zbytku světa. Není možné postavit hodiny, které budou za 10 let ukazovat přesný čas v UTC bez synchronizace s názorem hochů z IERS.Vadí to někomu, kromě teoretiků v diskusích?
Ani po 40 letech od zavedení není ve spoustě systémů správně implementována a působí potíže.Přičemž se to týká téměř výhradně systémů, které jsou mladší než těch čtyřicet let. Takže je to jednoznačně chyba těch systémů. Spousta systémů také nebyla připravena na rok 2000 - měli jsme tedy mít podruhé rok 1900?
dvakrát ročně šoupat čas o celou hodinuNic takového se neděje. Pouze se mění časové pásmo, které se běžně používá v občanském životě. Nic vám nebrání měřit si čas v UTC, nebo třeba pořád v SELČ.
Vadí to někomu, kromě teoretiků v diskusích?Vadí to všem, kteří mají validovat vstup. Co váš program udělá, když mu pošlu jako vstup 30.6.2016 23:59:59?
Takže je to jednoznačně chyba těch systémů.Když to má něco špatně fakt hodně lidí, možná by se stálo za to zamyslet se, jestli není problém například v příliš komplikovaném nebo nejasném standardu (neříkám, že je to tento případ).
Nic takového se neděje. Pouze se mění časové pásmo, které se běžně používá v občanském životě. Nic vám nebrání měřit si čas v UTC, nebo třeba pořád v SELČ.Co kdybyste si tedy někdy kolem roku 10000 až se z přestupných sekund nastřádá hodina prostě posunul časové pásmo o jedno na východ? Další možnost je prohlásit, že za 8000 let (což je víc než doba po kterou lidstvo vůbec používá systém dělení dne na hodiny) si lidi zvyknou, že Slunce nad hlavou nemají mezi 11. a 15. hodinou, ale mezi 12. a 16. Nebo že se do té doby lidstvo konečně dostane k osídlení jiných planet a systém založený na otáčení Země bude k ničemu.
Když to má něco špatně fakt hodně lidí, možná by se stálo za to zamyslet se, jestli není problém například v příliš komplikovaném nebo nejasném standardu (neříkám, že je to tento případ).
Problém s pochopením věci (resp. nevědomím že něco takového existuje), se vyskytuje snad u každého standardu nebo u každé problematiky. A je úplně jedno, jestli se to týká času, systémů souborů nebo třeba silové elektřiny. Pokaždé se najdou lidé, pro které je nějaký aspekt překvapivý a snaží se argumentovat "zdravým rozumem", zvyklostmi apod. Každá diskuse vypadá jak přes kopírák ať už se to týká čehokoliv. Evidentně je problém jinde než v oněch standardech.
nestálo by za to upravit „strandard“ (dopravní značení v tom místě)
Dopravní značení na konkrétním místě bych nenazýval slovem standard ale implementací daného standardu. Implementace může být dobrá nebo špatná. V tomto konkrétním případě je implementace dopravního značení sice v pořádku z hlediska zákona, ale je naprostvo hrozná pro užívání. Zákon (nebo standard) nemůže pamatovat na všechna zvěrstva co si kdo v praxi vymyslí. (Prasit se dá v každém jazyce, to o jazyku nic nevypovídá.)
Dopravní značení na konkrétním místě bych nenazýval slovem standard ale implementací daného standardu.Ne, dopravní značení je standard a implementací je zachování se řidiče
V tomto konkrétním případě je implementace dopravního značení sice v pořádku z hlediska zákona, ale je naprostvo hrozná pro užívání.No a já tvrdím, že přestupná sekunda i kdyby byla v pořádku by byla naprosto hrozná pro užívání.
Ne, dopravní značení je standard a implementací je zachování se řidiče
Ufff. Takže když někdo napíše implementaci algoritmu quicksort v jazyce E (verze 2015) tak nepíše implementaci ale píše standard? A implementace je až to jak ta data protékají tím algoritmem? To jako vážně?
No a já tvrdím, že přestupná sekunda i kdyby byla v pořádku by byla naprosto hrozná pro užívání.
No tak si vyber časový standard který ji neobsahuje.
No tak si vyber časový standard který ji neobsahuje.Už jsem psal že to nejde když zbytek světa zůstane v defaultu, protože to neřeší (a pak crashují počítače, padají letadla a bouchají solární elektrárny).
U Národního divadla je křižovatka, kde je cedule přikázaný směr jízdy doprava a potom je semaforJsou chvíle, kdy bych znovu zavedl trest smrti. Nebo alespoň povinnou kastraci. Mimochodem u nás posrali značení taky dokonale. Při výjezdu od nás je omylem zákaz odbočení vlevo, přitom je to zjevná výjezdová cesta. A dost dlouho zapomněli vyznačit jednosměrku v místě, kde byla vždy, ale nebyla značená, protože tam nebyl příjezd, který po mnoha letech obnovili. Dopravní značení má být pro všechny lidi, kteří řídí auto a podle toho by mělo vypadat.
Problém s pochopením věci (resp. nevědomím že něco takového existuje), se vyskytuje snad u každého standardu nebo u každé problematiky.Tady nejde o neznalost ci nepochopeni veci, ale spis o to, ze to byl pitomy napad od zacatku a stavajici zkusenosti pro to jen dodavaji argumenty.
Vadí to všem, kteří mají validovat vstup. Co váš program udělá, když mu pošlu jako vstup 30.6.2016 23:59:59?Můžete ho odmítnout, ale předpokládám, že ho přijmete a data uložíte. Za rok je vezmete z disku a zjistíte, že takový čas nebude existovat. Řeknete, že tím uživatel ve skutečnosti myslel 1.7. 0:00:00, ne, počkat, radši ne, to už je z dalšího měsíčního zúčtovacího období a zákazník by byl jistě nerad, abychom mu strhli další měsíční platbu, když chtěl službu 30.6. ukončit. Tak to bude 30.6. 23:59:58, ta sekunda v intervalu blbě nikoho nezabije. Ale radši nevydávejte standard, že se to v těchto situacích vždycky posunuje o sekundu dozadu, protože někdo určitě vymyslí corner-case, kdy to nejde. Ale taky doufejte, že to tak všechny systémy, se kterými komunikujete, implementují, i když to nebude ve standardu, protože jinak vyrobíte race condition. Jo a mimochodem musíte nějak zajistit, aby se všichni na celém světě o přestupné sekundě dozvěděli atomicky.
Mě fascinuje, kolik událostí se plánuje zrovna zcela přesně na 23:59:59Vypadá to tak. Posledně nějaké sytémy crashly, a to dokonce ani nebyla ta sekunda vypuštěná. Jde spíš o to, že máš systém, do kterého ti nedůvěryhodní uživatelé a ostatní systémy můžou posílat nějaké záznamy, které obsahují timestamp se sekundovou přesností. To už je snad běžnější případ, ne?
Jde spíš o to, že máš systém, do kterého ti nedůvěryhodní uživatelé a ostatní systémy můžou posílat nějaké záznamy, které obsahují timestamp se sekundovou přesností. To už je snad běžnější případ, ne?
No je a co? Tak ty údaje zvaliduju tak jak nejlépe umím a pokud v průběhu času zjistím, že je nějaký údaj nevalidní (například tím, že bude vyjmuta jedna sekunda), tak se podle toho nějak zachovám. To chování při této situaci už bude definované v návrhu onoho systému.
V této chvíli už mi tato diskuse fakt přijde absurdní a už se točíme v kruhu. Přestupná sekunda se vyhlašuje dost dlouho dopředu na to, aby se stihlo dané systémy jednak otestovat (pokud nějakou chybou na to nebyly testovány) a také aktualizovat. Úplně stejně, jak se xkrát do roka aktualizují tabulky timezones. Zajímavé je, že když se několikrát za rok aktualizuje balít tzdata (+ tzdata-java) tak to nikomu nevadí, ale když se půl roku dopředu ohlásí úprava o sekundu, tak je to najednou neřešitelný problém. Způsoby, jak tento "problém" řešit jsou známé a už i v této diskusi byly několikrát zmiňovány.
To chování při této situaci už bude definované v návrhu onoho systému.Jenže svět není jen tvůj systém.
aby se stihlo dané systémy jednak otestovatAle na co je chceš testovat, když přestupnou sekundou vznikne standardem nedefinované chování?
Zajímavé je, že když se několikrát za rok aktualizuje balít tzdata (+ tzdata-java) tak to nikomu nevadíMožná proto, že přepočet na časové zóny je na rozdíl od přestupné sekundy jednoznačný.
Způsoby, jak tento "problém" řešit jsou známé a už i v této diskusi byly několikrát zmiňovány.Stále jsi mi neřekl, co mám udělat, když jsem vývojář databáze a najednou zjistím, že ve sloupečku s typem DATETIME mám neexistující čas.
Ale na co je chceš testovat, když přestupnou sekundou vznikne standardem nedefinované chování?
Standardem nedefinované? On nějaký standard popisuje celý tvůj program? Program někdo navrhl a ten měl tento případ ošetřit. Pokud neošetřil, postupuje se stejně jako při nálezu jakékoliv jiné chyby v programu.
Stále jsi mi neřekl, co mám udělat, když jsem vývojář databáze a najednou zjistím, že ve sloupečku s typem DATETIME mám neexistující čas.
Mám pocit že řekl a to hned několikrát. Například tady #57
Standardem nedefinované? On nějaký standard popisuje celý tvůj program?Ne, ale čekal bych, že když se ve standardu napíše, že se může zrušit únor, že se tam taky nějak vyřeší, co třeba dělat se smlouvami, na kterých je napsáno, že platí do února.
Program někdo navrhl a ten měl tento případ ošetřit.Problém není v tom, že by to neošetřil, ale v tom, že to každý ošetří jinak. Někdo to posune na první sekundu následujícího dne, někdo na poslední sekundu dne, ke kterému to patřilo.
Mám pocit že řekl a to hned několikrát. Například tady #57Mám pocit, že jsem v #76 napsal, proč je převod na následující den špatně. Namátkou u UPC nebo u T-Mobile se platí za načaté zúčtovací období jako za celé.
Mám pocit, že jsem v #76 napsal, proč je převod na následující den špatně.
V komentáři 57 uvádím i další řešení a jistě existují i další (zmíněná v jiných komentářích), než jen posun na následující časový bod.
V komentáři 57 uvádím i další řešeníZeptat se uživatele mi přijde jako jediné správné řešení. Bohužel to znamená další otravnou hlášku, řešit, jestli na něj vlastně mám kontakt, a co dělat, když neodpoví. A taky všechno tohle implementovat…
Zrovna v případě expirace účtu je velice nepravděpodobné, že by expiroval zrovna ve 23:59:59.To zní jako obhajoba tvorby občas se vyskytujících chyb.
to navíc ještě o půlnoci.Vzhledem k tomu, ze jde o pulnoc UTC, tak to muze byt v libovolne hodine podle prislusneho lokalniho casu.
Do jakého programu budete dnes zadávat vstup 30.6.2016 23:59:59?Třeba do vašeho webového prohlížeče.
Set-Cookie: foo=bar; Domain=abclinuxu.cz; Path=/; Expires=Thu, 30 Jun 2016 23:59:59 GMT
Navíc pokud by se někam zadával takovýto vstup, nejspíš se zadává špatně. Protože buď na tenhle čas vyjde konec nějakého intervalu určeného délkou, pak si ale máte zapamatovat ty vstupní údaje, tedy počáteční čas a délku intervalu. Nebo to ve skutečnosti má znamenat otevřený konec intervalu 1. 7. 2016 0:00:00, pak si zase máte uložit tenhle údaj. Protože co když si pak někdo vzpomene, že to musí být s přesností na setiny sekundy, a vy budete mít chybně uloženo 23:59:59,00 místo 23:59:59,99.HTTP a SMTP to dělají blbě, jenom já jsem letadlo. A co vaše databáze, ta by také neměla umožňovat uložení typu DATETIME?
pak si ale máte zapamatovat ty vstupní údaje, tedy počáteční čas a délku intervaluTo vypadá že problém nevyřešilo, jenom místo toho, co znamená
<expires>2016-06-30 23:59:59</expires>budete zkoumat, co znamená
<start>2016-06-30 23:59:59</start> <durationMonths>12</durationMonths>
No a když se to zvládalo desítky let bez počítačů, tak by to počítače také mohly zvládnout, ne?Jasně, a když se zvládala plaintextová komunikace a nešifrované telefonování desítky let bez počítačů, tak SSH, TLS a A5/3 taky nejsou potřeba.
Posouvat něco za 8000 let nemá vůbec žádný smysl, protože lidé by si buď dávno zvykli, a ten posun by byl nesmyslný, nebo by si ten posun udělali už mnohem dřív po svémJako že by si ČR za 100 let posunula čas o minutu dozadu. Jen tak pro nic za nic (pozn. rozdíl mezi Aší a Ostravou je pokud dobře počítám 24 minut).
Podle mne vůbec nejde o to, aby lidé měli v poledne Slunce nad hlavou, ale právě o to, aby ty korekce byly co nejmenší.Pokud vás nezajímá Slunce nad hlavou (asi ne, jinak byste mnohem dřív než přestupnou sekundu začal řešit časová pásma), proč tedy vůbec řešíte nějaké korekce?
Set-Cookie: foo=bar; Domain=abclinuxu.cz; Path=/; Expires=Thu, 30 Jun 2016 23:59:59 GMTNo a co? Vadí to něčemu? Co když tam bude
Expires=Thu, 30 Jun 2016 25:59:59 GMT
?
A co vaše databáze, ta by také neměla umožňovat uložení typu DATETIME?Já jsem nepsal, že by někde neměla být možnost uložení typu datetime. On ten typ totiž s přestupnou sekundou nemá vůbec žádný problém.
To vypadá že problém nevyřešilo, jenom místo toho, co znamenáVzhledem k tomu, že to budu řešit krátce před 30.6.2017, kdy už o případné přestupné sekundě vím, není to žádný problém.<expires>2016-06-30 23:59:59</expires>budete zkoumat, co znamená<start>2016-06-30 23:59:59</start> <durationMonths>12</durationMonths>
Pokud vás nezajímá Slunce nad hlavou (asi ne, jinak byste mnohem dřív než přestupnou sekundu začal řešit časová pásma), proč tedy vůbec řešíte nějaké korekce?Protože používáme čas vázaný na vzájemné postavení Země a Slunce, které ovlivňuje spoustu pro nás významných jevů na Zemi. Kdybychom tuhle vazbu nechtěli, můžeme zrušit přestupné roky, roky vůbec, měsíce a dny, a budeme počítat třeba počet sekund od 1. 1. 2000 0:00:00 UTC. Jenže většina lidí chce používat ten čas vázaný na přírodní jevy, a pak nedává smysl mít to navázané nepřesně - přijdete o výhody a zůstanou jen nevýhody.
No a co? Vadí to něčemu? Co když tam bude Expires=Thu, 30 Jun 2016 25:59:59 GMT?Tipuju, že by to váš prohlížeč měl odmítnout. Nebo si má vymyslet, že tím autor myslel 1.7. 0:59:59?
On ten typ totiž s přestupnou sekundou nemá vůbec žádný problém.Nemá řešit, když do něj dám neexistující čas?
Vzhledem k tomu, že to budu řešit krátce před 30.6.2017, kdy už o případné přestupné sekundě vím, není to žádný problém.Ale zjistíte, že ten čas uvedený ve
<start/>
neexistoval. Naúčtujete mu červen 2016 a červenec 2017?
Jenže většina lidí chce používat ten čas vázaný na přírodní jevy, a pak nedává smysl mít to navázané nepřesně - přijdete o výhody a zůstanou jen nevýhody.Takže ještě jednou: máte nějaký návrh, co udělat s kvantizovanými časovými pásmy, nekruhovou dráhou Země a letním časem, které vnáší o řád větší nepřesnosti než jev, který se snaží řešit přestupná sekunda? Budou různě dlouhé dny v roce a bude v Brně o 8 minut víc než v Praze?
Tipuju, že by to váš prohlížeč měl odmítnout. Nebo si má vymyslet, že tím autor myslel 1.7. 0:59:59?Jak to prohlížeč odmítne? Pošle serveru ten požadavek ještě jednou s nějakou sprostou hlavičkou? Nebo odmítne stránku zobrazit? Já myslím, že existuje několik dobrých řešení, co s tím prohlížeč může udělat, jedno řešení nastaví expiraci cookies do konce session, ostatní řešení nastaví expiraci na různé časy 30.6.2016 nebo 1.7.2016.
Nemá řešit, když do něj dám neexistující čas?Může a nemusí to řešit.
Ale zjistíte, že ten čas uvedený ve <start/> neexistoval. Naúčtujete mu červen 2016 a červenec 2017?Nezjistím. Pokud ten čas neexistoval, nešel takový údaj zadat. Pokud někdo 1.7.2016 nebo později zadá 30.6.2016 23:59:59, tak ten čas buď existoval, nebo ten čas odmítnu jako neplatný. Přestupné sekundy se nikdy nepřidávají ani neubírají zpětně.
Takže ještě jednou: máte nějaký návrh, co udělat s kvantizovanými časovými pásmy, nekruhovou dráhou Země a letním časem, které vnáší o řád větší nepřesnosti než jev, který se snaží řešit přestupná sekunda? Budou různě dlouhé dny v roce a bude v Brně o 8 minut víc než v Praze?Ano, mám. Používat gregoriánský kalendář, časová pásma, letní čas a korekce pomocí přestupných sekund. Tím zajistíme, že náš občanský čas zůstane dlouhodobě (podle našich současných znalostí trvale) spojený s odpovídajícími přírodními jevy. Nepřesnosti tedy budou oscilovat kolem nějakého středu, občanský čas nebude systematicky ujíždět jedním směrem.
Jak to prohlížeč odmítne?Předpokládám, že cookie nenastaví. Nebo zahodí celou odpověď a zobrazí chybovou hlášku (jako když mu pošlete nevalidní X(HT)ML). To jste tu mám pocit dokonce vy kdysi obhajoval (nebo to byl Michal Kubeček?).
Nezjistím. Pokud ten čas neexistoval, nešel takový údaj zadat.Ale on tam ten časový údaj zadal ještě před tím, než se vyhlásilo, že nebude existovat.
Ale on tam ten časový údaj zadal ještě před tím, než se vyhlásilo, že nebude existovat.Pak ho program nemá nutit zadávat nesmyslné údaje, a má mu povolit zadat skutečné údaje, kterými se to řídí. Například že první zúčtovací období začíná 1. 7. 2014 v 0:00:00 a zúčtovací období trvá jeden rok.
Vadí to někomu, kromě teoretiků v diskusích?Vzhledem k tomu, ze ITU se vazne uvazuje o zruseni prestupne sekundy a bude se o tom jednat na letosni World Radiocommunication Conference, tak zrejme ano.
Potíže se zaváděním byly minimálníPotize se zavedenim nebyly vubec minimalni. Lidi se bourili, protoze verili, ze se jim zkrati zivot o ty dny, ktere byly vystrtnuty z kalendare. Nevic se k tomu nepridali vsichni a nasledky te nekopatibility vidime jeste dnes.
Čas by měl být monotónní a deterministický
Tak co ti brání si vybrat takovou časovou soustavu, která tohle splňuje? Na světě není jen UTC, naopak, každý obor, který to potřebuje, má svůj vlastní čas. Občanský čas je z různých důvodů v UTC.
Tak co ti brání si vybrat takovou časovou soustavu, která tohle splňuje?Okolí, které zůstalo u defaultu.
Pak je ale chyba na straně přijímače nebo možná protokolu NMEA, že Vám nedává informací o přestupných sekundách.Samozřejmě. V GPS almanachu se tyto informace vysílají. Jen ten přijímač je neumí správně posílat. A nebo se na to taky můžete dívat tak, že je chyba ve standardu, protože je zbytečně komplikovaný a pak to vede k takovýmto chybám.
Tomu nějak nerozumím. Jak může nastat situace, že přijímač vypíše změřenou odchylku 1PPS, když nemá k dispozici UTC parametry, a tedy ani údaje o přestupných sekundách, ať už současných nebo plánovaných? Jak potom spočítá odchylku hodin družice od systémového času a následně odchylku 1PPS přijímače od UTC? Jak může vypisovat aktuální čas, když nemá data pro přepočet na UTC
Není mi jasné, jaký standard máte na mysli. NMEA? A neumí ten přijímač nějaký jiný protokol, třeba binární, kde se ty informace posílají?
Přestupná sekunda je v mnoha oblastech problém. Proto např. navigační systémy pracují s vlastním systémovým časem a přestupné sekundy nevkládají. Informace o nich ale mají k dispozici a družice je vysílají. Přestupná sekunda se avizuje cca půl roku dopředu, aby o tom přijímač nevěděl, to by musel být zapnutý těsně před vkládáním.
Tenhle Váš konkrétní příklad názorně ilustruje jednu velkou kategorii problémů, jenže ne s přestupnou sekundou jako takovou, ale se zařízeními (Váš konkrétní přijímač - mimochodem o jaký se jedná, není-li to tajné?), případně software nebo lidmi (nemyslím Vás), kteří s ní jednoduše neumí pracovat.
Tomu nějak nerozumím. Jak může nastat situace, že přijímač vypíše změřenou odchylku 1PPS, když nemá k dispozici UTC parametry, a tedy ani údaje o přestupných sekundách, ať už současných nebo plánovaných?Přijímač je má, ale neposílá je ven (minimálně po periodických NMEA, možná by z něj šlo vyrazit almanach a přečíst si to v něm). O přestupné sekundě to jestli jsem pochopil manuál vypadá takhle:
[PPS pulz] NMEA bla bla předchozí pulz oznamoval 23:59:59 [PPS pulz] NMEA bla bla předchozí pulz oznamoval 23:59:60 (ale vy jste si určitě mysleli, že to bylo 00:00:00, chá-chá) [PPS pulz] NMEA bla bla předchozí pulz oznamoval 00:00:00
Není mi jasné, jaký standard máte na mysli. NMEA?Ne, UTC.
Váš konkrétní přijímač - mimochodem o jaký se jedná, není-li to tajné?Hledal jsem to a už si to nepamatuju, taková plechová kostka od Trimblu s L1 i L2 a dali mi k tomu takovou nic moc dokumentaci (možná výrobce dodává lepší, možná jenom pod NDA, těžko říct). Já jsem dělal jenom zařízení, co tu NMEu četlo a ovládalo podle toho lidar a kameru.
ale se zařízeními, případně software nebo lidmi, kteří s ní jednoduše neumí pracovatA nebo to taky ukazuje na to, že standard obsahuje dle mého názoru málo užitečné věci, jejichž implementace je komplikovaná a snadno se v ní udělá chyba.
Ten výpis je ale v pořádku, žádnou chybu tam nevidím. Přijímač vypisuje čas UTC a údaj 23:59:60 je OK. To ten další SW měl rozpoznat, že se jedná o přestupnou sekundu.
S Trimblem jsem nikdy nepracoval.
Implementace může být složitá, ale je velmi dobře (ehm, složitě) popsaná v dokumentaci GPS, konkrétně např. v ICD-GPS-200C, Revision IRN-200C-004 April 12, 2000. Je tu ještě takový malý detail – jedná se o přepočet času GPS na UTC(USNO). Pak si ještě musíte z Mezinárodního úřadu pro míry a váhy (BIPM) každý měsíc stáhnout Cirkulář-T, kde se dozvíte odchylku UTC(USNO) od UTC. Tedy pokud Vás těch ±5 ns vytrhne.
Ten výpis je ale v pořádku, žádnou chybu tam nevidím.V okamžiku mezi
[PPS pulz]a
NMEA bla bla předchozí pulz oznamoval 23:59:60nevíš kolik je hodin (protože v normální dny je 00:00:00, v přestupný den je 23:59:60, ale ty nevíš, jestli je přestupný den). A vzhledem k tomu, že podstata zařízení byla když mu přijde další pulz přiřadit k němu přesný (milisekundový) timestamp, tak to je docela problém.
Samozřejmě, že mezi PPS a NMEA zprávou nemáte informaci o čase. To si na tu zprávu nejdřív musíte počkat a zpracovat jí. Ale ne na NMEA zprávu, ta čas na milisekundy nevypisuje...
podstata zařízení byla když mu přijde další pulz přiřadit k němu přesný (milisekundový) timestamp
Pak jste ale měl použít takový přijímač s PPS výstupem, který kromě času UTC poskytuje další informace, ze kterých se dá vypočítat odchylka 1PPS od UTC (na ms bez problémů). Některé přijímače toto opravdu umí, jen se nesmí používat NMEA, ale nějaký jiný protokol, nejspíš proprietární.