TheaterFire

MÁV 🆚 ÓRAÁTÁLLÍTÁS: 0 - 1

Posted by Szunyog_a_sarokban@reddit | programmingHungary | View on Reddit | 64 comments

MÁV 🆚 ÓRAÁTÁLLÍTÁS: 0 - 1

Reply to Post

64 Comments

No_Reputation_1727@reddit

Mindenkinek, aki el szeretné törölni az óraátállítást. Tessék, egy ilyen sztoriról lemaradtál volna.
View on Reddit #81895983

No_Tip2498@reddit

Az a baj, hogy szerintem minden tapasztalt programozónak van egy hasonló sztorija a múltból.
View on Reddit #82119656

nulloid@reddit

En nagyon szivesen lemaradnek az ilyen sztorikrol.
View on Reddit #81900165

gaborauth@reddit

Igazából, ha UTC szerint tárolna és számolna mindenki mindent és csak a kiírása lenne local dátum és/vagy idő, akkor is. :)
View on Reddit #81898477

Boba0514@reddit

Ennek most vigasztalnia kéne?
View on Reddit #81898259

ytg895@reddit

nagyon szívesen röhögnék a MÁV-on, de az eddigi munkatapasztalatom az, hogy tök normális piaci cégeknél is élet-halál harcot kell vívni legtöbbször, hogy mindig UTC-ben tároljunk minden időt. az emberek nem értik az időt, még a legtöbb programozó sem.
View on Reddit #81894570

akosh_@reddit

Valóban állandó szopás van a dátumokkal, mert a fejlesztők nem bírják átgondolni. Esetünkben pont az a baj például, hogy valamit UTC-ben néznek, pedig itt pont, hogy nem kellene :) :) :)
View on Reddit #81902115

ytg895@reddit

mi?
View on Reddit #81909763

akosh_@reddit

A 10 óra 2 perces Juliska IC helyi idő szerint 10 óra 2 perckor indul, UTC viszont nem követi DST-t, azaz DST váltáskor helyi idő szerint tolódik az indulás időpontja. Vagy local timeban (azaz időzóna nélkül) tárolod, vagy kódolgatnod kell, hogy kezeld a DST-t. Esetünkben pont az a baj, hogy egy UTC szerinti dátumot egy local time-al hasonlítanak össze. Pl UTC-ben tárolták a vonat indulását, amit összehasonlítanak a helyi idővel. A helyi idő változatlanul 10 óra 2 perc, de mikor a helyi idő elcsúszott az UTC-hez képest, a vonat indulása eltolódott, ez okozza az issuet.
View on Reddit #81910659

ytg895@reddit

> Esetünkben pont az a baj, hogy egy UTC szerinti dátumot egy local time-al hasonlítanak össze. tehát a mindig pontos UTC-t összehasonlítjuk a pontatlan/változó/megbízhatatlan értékkel, és ez az UTC hibája, nem a pontatlan/változó/megbízhatatlan értéké. nincs több kérdésem. a nagyok úgy csinálják, hogy UTC-ben tárolnak mindent, mert az sosem változik és megbízható, és minden bejövő helyi idő fiszfasz időzóna szerinti fost az első adandó alkalommal konvertálnak UTC-be, mert az UTC az nem változik és megbízható. így aztán mindig és kivétel nélkül UTC-t fognak összehasonlítani UTC-vel, és csodák csodájára nem omlik össze a rendszer csak azért, mert holnaptól valami szabály alapján a zsidó naptár szerint számoljuk az éveket és kínai holdnaptár szerint a hónapokat.
View on Reddit #81911456

akosh_@reddit

"Az UTC nem változik, és megbízható" - ez igaz - de a Juliska IC indulásának időpontja viszont változik. Azaz az UTC nehezen használható Juliska IC indulásának a modellezésére.
View on Reddit #81911863

ytg895@reddit

Nem, nem azt mondtam, hogy az UTC mindenre jó. Azt mondtam, hogy az UTC tárolni jó, meg számolni jó. Mert hogy azokra jó. A Napfény IC (Juliskát nem találtam a menetrendben) ma 1774795800-kor indul a Nyugatiból. Tegnap 1774713000-kor indult. Sikerült modellezni. Majd ha felhasználónak mutatom meg, akkor szebben fogom formázni, de az én use case-em az, hogy ha én felolvasok egy timestampet, akkor mindig kivétel nélkül meg tudjam mondani, hogy pontosan melyik időpontra mutat, és hogyha összehasonlítok két ilyen timestampet, akkor mindig kivétel nélkül jók legyenek a számítások. Aki szerint a helyi időmegjelenítési forma a source of truth, mer' há' az van kinyomtatva a menetrendbe, az fordítva ül a lovon.
View on Reddit #81912896

akosh_@reddit

Látom, nem akarod érteni, amit írok. :) Nem a számítás pontosságával van a gond, hanem azzal, hogy honnét szerzed a két timestampot, amit összehasonlítassz. Amiről te beszélsz, annak semmi köze ahhoz, h UTC-t tárolsz-e.
View on Reddit #81918656

ytg895@reddit

> Nem a számítás pontosságával van a gond, ezt mondd a MÁV-nak, biztos nagyon meg fogja nyugtatni őket, hogy pontosak a számításaik (spoiler alert: nem azok) > hanem azzal, hogy honnét szerzed a két timestampot, amit összehasonlítassz. Pontosan. Lássuk mit is írtam erről? "és minden bejövő helyi idő fiszfasz időzóna szerinti fost az első adandó alkalommal konvertálnak UTC-be" mert. azzal. műkődnek. a. számolások. mert. nem. számít. honnan. származik. De nyilván én vagyok az aki *nem akarja* érteni amit a másik ír, miközben te söpröd le a magyarázataimat azzal, hogy "nincs olyan, hogy a nagyok így csinálják". De. Van. Nem véletlenül. Mindenesetre köszönöm, hogy ilyen hosszú kommentszálban demonstráltad, az eredeti állításomat, hogy élet-halál harcot kell vívni az UTC-ért, mert a programozók sem értik az időt.
View on Reddit #81923617

akosh_@reddit

Eredetileg azt írtad, hogy "UTC-ben kell TÁROLNI". Én ezt vitatom. Ettől valamiért elégge eltávolodtál az "érvelésedben" - amit azért "söprök le", mert semmi köze ahhoz, amit én mondok. De ha neked jól esik, tárold UTC-ben, és miután betöltötted a DB-böl, írd oda, hogy if (datetime.now.isInDst) dt += timespan(1, 0, 0). Csak ne felejtsd el, mint a MÁV programozója :) További szép estét!
View on Reddit #81927294

ytg895@reddit

Nem távolodtam el. Szomorú, hogy nem látod hogy miért nem. És szomorú, hogy nem látod, hogy UTC-nél miért nem kell külön nézni, hogy DST-e
View on Reddit #81941300

akosh_@reddit

Ne haragudj, de te nem látod át. Példa: 10-kor megy a vonat. Ma Magyarországon DST van, azaz UTC+2. Tegnap még UTC+1 voltunk. Mégis mit tárolsz UTC-ben? Ha UTC 9:00-t, akkor tegnap UTC+1=10-kor ment, ma már viszont UTC+2=11-kor megy. Ha UTC 8:00-t, az ma 10-kor megy, de tegnap 9-kor ment volna. Azaz szarakodnod kell a DST-vel, hogy helyes időt kapj. Az UTC abszolút idő, de a menetrendünk helyi, nem abszolút. A helyi időt helyi időben kell tárolni - mert az.
View on Reddit #81941966

ytg895@reddit

Én személy szerint minden indulásnak a pontos időpontját tárolnám. Az, hogy "minden nap kilenckor, kivéve a hónap utolsó csütörtökjét" amilyen förmedvények a menetrendben vannak néha, az nem tud egy stabil rendszer alapja lenni. Abban a pillanatban, amikor bekerül a rendszerbe, hogy tegnap kilenckor indult, meg az is bekerül a rendszerbe, hogy ma egy órával később, kilenckor indul, abban a pillanatban pontosan tudom, hogy ennek a helyi időnek mi az UTC megfelelője, azt tárolom le, és amikor előveszem számolgatni, akkor ezt a pontos időpontot fogom elővenni számolgatni. Amiből egyébként pontosan lehetne tudni, hogy adott időpontban DST van-e, csak szerencsére a számolgatáshoz nincs rá szükség. Helyi időt azért nem tárolunk helyi időnként, mert csak egészen addig helyi idő, amíg ki nem derül róla, hogy ja, ez mégsem az. És soha sem az, a helyi idő csak egy social construct.
View on Reddit #81951010

akosh_@reddit

Fú, hát eléggé megbonyolítja, ahogy csinálni akarod: rengeteg adatod lesz, hatalmas redundanciával, amit mind kezelni kell és karban kell tartani (pl menetrend változáskor). De játsszunk el a gondolattal. Valóban, így végre működik az áhított UTC. De ki fogja felvinni minden vonat minden indulásának és minden állomásának minden időpontját? Marika néni? Gondolom (remélem) nem ez az ötlet. Akkor generálod valahogy? Miből? Csaknem egy sémából, hogy helyi idő szerint 10:00kor indul szombatonként? :) Minden út ide vezet. Plusz rengeteg teljesen átlagos operationt megbonyolítassz (pl múlt hét másolása jövő hétre - közben volt egy dst váltás - lehet varázsolni megint...) A vonat helyi idő szerint közlekedik. Ez önmagában elég indok arra, hogy helyi időt tárolj. Való életben létező dolgokat a való életnek megfelelően kell modellezni, minden más bajhoz vezet. A kiskacsát is kiskacsaként tárolod, nem lúdként. Gyakorlatilag azt akarod nekem megmagyarázni, hogy tároljak egy intet stringként - alkalmas rá? Igen. Attól még érdemes? Nem. Mert mást jelent. Mikor behúzod a DB-ből a "szombatonként 10 órá"-t, az nyilván önmagában haszontalan; bármilyen operation előtt "példányosítod" a napot, mellé rakod az adott nap dátumát és időzónáját, és hopp meg is van mindened a pontos számításhoz - csak DB redundancia nélkül. Ez se feltétlen UTC (de persze lehet az is, ez már az általad használt datetime lib implementációkának részletkérdése), de nagyjából erre gondolsz. Igazából ez az a pont, ahol te perzisztálnál még egyet, hogy adatbázisban is láhasd az UTC-t, én nem. Az ide vezető út meg ugyan az...
View on Reddit #81974878

ytg895@reddit

> rengeteg adatod lesz ja. lesz. bár én olyan rendszerekhez vagyok szokva, ahol naponta több adat keletkezik, de oké. > amit mind kezelni kell és karban kell tartani (pl menetrend változáskor) egyébként akkor is, ha nem tárolod el az összes indulást egyenként (de egyébként úgyis eltárolod, mert ha bárki mással kell interfészelned, mint a Bivalybasznádon felszálló Kovács Joli néni akkor úgyis egyenként minden indulásról meg kell nekik mondani, hogy ez a vonat akkor most itt ekkor elindul, mert sem a Google Maps, sem az ÖBB nem fogja neked számontartani, hogy a tanszüneti napokon nem induló vonatnak most tanszünet van-e, vagy hogy a szombati munkanapáthelyezés az hétfőnek, pénteknek vagy szombatnak számít-e) szóval ha valami perverz mazochista oknál fogva nem tárolnád el az összes indulást egyenként, akkor minden nem-rendszerszintű változást (pl. ez a vonat most vágányzár miatt mindenhova öt perccel később ér oda) a feltételrendszeredben kell kezelned, ahelyett hogy egy SQL update az adott vonathoz tartozó timestampek módosításával pikk-pakk megoldaná. > De játsszunk el a gondolattal én mondjuk már fejlesztettem olyan rendszert, aminek több időzónát is támogatnia kellett eltérő időpontban váltott DST-vel nem játszásiból is, de persze hogyne, játszunk el. > Csaknem egy sémából, hogy helyi idő szerint 10:00kor indul szombatonként? :) de, abból. nem látom a humor forrását. (hazudok, látom. azt gondolod, hogy "naugyemegmondtam nekemvanigazam". valójában nem, mert továbbra is csak annyit állítok, hogy UTC-ben kellene tárolni az időpontokat.) > Plusz rengeteg teljesen átlagos operationt megbonyolítassz (pl múlt hét másolása jövő hétre - közben volt egy dst váltás - lehet varázsolni megint... ``` Instant newWeeksTime = storedTime.atZone(ZoneId.of(zoneOfLocation)) .plusWeeks(1) .toInstant(); ``` nem látom a varázslatot. illetve ez Java, de feltételezem, hogy ez más nyelvekben is hasonlóan történik. mert a helyzet az, hogy az egész UTC egy 1961-es szabvány, szóval mire a számítógépek világába érkezett és 1970-ben a Unix timestamp számolása elindult már rég az egyetemlegesen elfogadott optimális módja volt az időpontok kezelésének. feltételezve, hogy nem vagy nyugdíjas, mire megszülettél minden ezzel kapcsolatosan felmerült kérdés már megoldott probléma volt. > A vonat helyi idő szerint közlekedik. amúgy nem. a vonat sajnos aszerint közlekedik ahogy a vasutasnak sikerül elindulnia. ez egyébként leginkább attól függ, hogy mi van a (telefonja) órájára írva, ami manapság legtöbbször egy NTP-vel atomidőhöz szinkronizált, majd szegény csórikámnak külön lefordított UTC timestamp. > Ez önmagában elég indok arra, hogy helyi időt tárolj. amúgy nem. még akkor sem lenne, ha aszerint közlekedne. > Való életben létező dolgokat a való életnek megfelelően kell modellezni, minden más bajhoz vezet Na akkor itt álljunk meg egy pillanatra, mert szerintem el kell magyaráznom, hogy mi is az az idő. Mert a valóságban az idő az nem más, mint a téridő egyik dimenziójának, aminek valami megmagyarázhatatlan okból kifolyólag hatása van az entrópia mértékének a változására, a szemlélő sebességéből illetve a környező gravitációs hatásokból adódó Lorentz-transzformációs torzulása. Ez van a való életben. Na ezt nem modellezzük így, mert sok értelme nincs, és amúgy is mindenki felvágná az ereit ha a kibaszott árapály jelenséget is bele kellene számolni a vonat indulásába. Ezzel szemben az elmúlt 6000 évben az a szokás alakult ki, hogy a természet megfigyelésének megfelelően az entrópia változását abban mérjük, hogy periodikusan ismétlődő események "mikor" történnek. Azaz, hogy a nap délben delel. Történelmileg a nap mindig, mindenhol délben delelt, mert ez volt a definíciója. Ezért működött minden napóra. Ez még mindig elég közel van a valósághoz, lehetne is modellezni, tárolhatnánk az adatbázisban a napsugarak beesési szögét. Aztán beütött a modern kor, és pont a vasút megjelenésével először a történelem folyamán előfordult olyan, hogy olyan gyorsan tudtak emberek egyik helyről a másikra eljutni, illetve a már fejlettebb óráiknak köszönhetően "vinni magukkal" az időt, hogy láthatóvá és problémássá vált, hogy aki Londonból érkezett Manchesterbe, annak más az idő mint aki mindig is Manchesterben élt. Úgyhogy kialakultak az időzónák annak modellezésére, hogy bár a valóság az, hogy délben van dél, de nálunk nem délben van dél, mi a Londoni/Pekingi, bármilyen délhez igazodunk. Aztán ezt még megfejeltük az óraátállításokkal, hogy még nagyobb legyen a káosz, de semmiképp sem azért, hogy közelebb kerüljünk a valóság modellezéséhez. Nos ennek a káosznak a tetőpontján kezdtek el olyan rendszereket kidolgozni amik egységesen képesek kezelni az emberek időérzékelését. Ebből lett először a Greenwich Mean Time, majd újabban a Coordinated Universal Time. Szóval nem a valóságot modellezzük, még csak az baszna be. Azt modellezzük, ami bizonyítottan legkevésbé problémás. Nem, ez nem azt jelenti, hogy az UTC-vel nincsenek problémák. Ez azt jelenti, hogy *nagyságrendekkel kevesebb* probléma van vele. > A kiskacsát is kiskacsaként tárolod, nem lúdként [...] Gyakorlatilag azt akarod nekem megmagyarázni, hogy tároljak egy intet stringként Nem. Ha már duck typing, akkor azt akarom megmagyarázni, hogy egy fix időpont tulajdonságaival rendelkezik, és fix időponként kell vele számolni, és fix időpontként hápog, azt fix időpontként tároljuk. De ha már a te hasonlatod... én pont hogy (long) intként tárolnám, te akarsz behozni ilyen csak stringként leírható "minden hét keddjén, kivéve pünkösd után" csavarokat. > de nagyjából erre gondolsz. pontosan. örülök, hogy megérkeztünk. > Igazából ez az a pont, ahol te perzisztálnál még egyet, hogy adatbázisban is láhasd az UTC-t, én nem. nem, én az egész előtt perzisztálnék egyet, hogy minden elve UTC-ben legyen. és nem azért, mert én ilyen nagy számokat szeretek olvasgatni, mint a 1774890420 (sőt a legtöbb adatbázis-kezelő tool a timestampeket lefordítja olvasható dátum-idővé) hanem mert ez biztosítja, hogy amikor egy timestamphez hozzányúlunk, az minden szükséges információt tartalmaz ami az értelmezéséhez szükséges. ezért aztán amíg relativisztikus hatások nem érvényesülnek, az UTC-t csak expliciten szánt szándékkal lehet elbaszni. nekem meg már PTSD-m van az olyan fejlesztőktől akik hely és idő megjelenítése nélkül szórnak bele időpontokat az adatbázisba, mert hát az ő kódjuk ezt tudja kezelni egész addig amíg meg nem változtatják, én meg mikor használnám az adatokat, akkor egy hónapot töltök az adattisztítással, azt túrva, hogy hogyan változott emberünk kódja a kérdéses tárolt időszakban többször, úgy hogy a kód egyébként több időzónában futott és közben mindegyikben volt DST átállás is. > Az ide vezető út meg ugyan az... nem. az az út amit te leírsz gyanúsan hasonlít arra a másikra, amelyik jószándékkal van kikövezve. az én személyes tapasztalatom, hogy az ignoranciával kikövezett út is szenvedéshez vezet.
View on Reddit #82014013

akosh_@reddit

Elbeszélsz mellettem, szőnyeg alá söpröd a mondanivalóm lényegét, és közben kiforgatod a szavaimat. A munkahelyeden is ez az érveléstechnikád? > Csaknem egy sémából, hogy helyi idő szerint 10:00kor indul szombatonként? :) Azért szomorú, hogy ezt a szőnyeg alá söpörted, mert ez a lényeg. A te "megoldásodban" ez a "séma" az, ahol "minden vasárnap 10 óra" jellegű az adat, azaz nem naphoz köthető. Erről mondtam már a legelején is, hogy helyi időben kell tárolni; mert UTC-ben értelmezhetetlen. Az általad javasolt "megoldás" pedig nem megoldotta ezt, hanem szimplán elfelejtette. Elismerted, hogy kell a generáláshoz, de azóta se oldottad meg ennek az információnak a zökkenőmentes UTC beli tárolását, e helyett beszélsz minden másról. Mivel nem tudod ráhúzni az UTC-t, ezért próbálsz nem tudomást venni róla. Ehelyett elmondtad, hogy az ebből a sémából (menetrendből) származtatott konkrét időpontokat (dátum, idő, időzóna) UTC-ben tárolnád. Erről ódákat zengsz, pedig nem vitattam azt, hogy ezt UTC-ben kell modellezni, sőt, megerősítettem, és megerősítem újra: az UTC egy abszolút időpont, ez pedig ennek megfelel. Itt azt vitattam, hogy kell-e egyáltalán tárolni, hiszen származtatott adat. Redundáns, egyszerűen számítható, és csak bonyolítja a rendszert a tárolása; _de ez már egy másik téma, az előzőtől független_. A java snippetedre válaszul: igen, ez varázslás. Tök mindegy, hogy hány sor, mindenki tud kódolni, nem erről van szó - hanem arról, hogy az adott developernek eszébe jut-e egyáltalán megírni ezt a kódot. Azért igyekszünk egyszerűsíteni a rendszert, hogy kevesebb dolgot kelljen fejben tartani. Arról nem is beszélve, hogy a "hét másolása a következő hétre" egy olyan op, amire csak azért van szükség, mert redundáns adatot tárolsz - ha a menetrendből (semából) generálod az adatot, mindig tudod a legújabb változatát generálni, és a menetrend adatának szerkesztése, bővítése nagysagrendekkel egyszerűbb komplexitású feladat lesz. A téridőről szóló elmélkedésedre nem reagálok, mert teljesen irreleváns, és csak a szavaim fölösleges, politikai jellegű kiforgatása. Mivel látom, hogy nem tudsz a tények mentén vitatkozni, én ezzel befejezettnek tekintem. További szép estét.
View on Reddit #82024992

Ok-Scheme-913@reddit

Ez nem igaz így hogy az UTC tárolni jó. Nem.. Attól függ, hogy egy időpillanatod vagy idő pontod van (magyarul nem annyira jön elő, de gyakorlatilag ha az "új" java time api-t megérted akkor már egész jó vagy -- minden valamire való datetime lib ezt másolta le). Tehát van az Instant, ahol csak a világegyetem egy adott időpillanatát veszed ami az ufóknak is ugyanaz mint neked (jó, lehet a fénysebességgel utazóknak nem, ezt nem tudom). Arra hogy a vonat mikor indult el valóban ez egy jó adattipus. (De note: ez egy már megtörtént esemény rögzítése) Illetve ettől teljesen függetlenül vannak különböző _DateTime-ok , pl local vagy egy adott idozonaval. Ezek egy emberi szempontból releváns időt fejeznek ki. Ha ki kell írni hogy mikor jön a vonat, azt így kell kiírni. De ugyanúgy ha a MÁV egy új vonatot tervez indítani ami minden nap 15:00-kor fog indulni, ott már loszarra se mész az UTC-vel/Instant-tal
View on Reddit #81987842

ytg895@reddit

A [másik kommentemet](https://www.reddit.com/r/programmingHungary/comments/1s6os78/comment/odc1vtt/) szintén neked itt annyival egészíteném ki, hogy személy szerint nekem nem tetszik a Java time API-ban (leánykori nevén Joda-time, igen ennyire öreg vagyok) hogy létezik benne `LocalDate` meg `LocalDateTime`, amiknek semmi értelme. `LocalTime` van, mert különböző helyeken emberek különböző módon írják az időt, rendben. De a dátum az dátum. Az csak azért van, hogy ha konkrét `Instant` kell, akkor le tudjam szűkíteni, hogy melyik nap adott óra-percéről beszélek, mert hogy ott ugye nem mindegy. Erre a "furfangos" programozók gyakorlata az, hogy belebasznak mindent `LocalDateTime`-ba, időzónát, mindent telibeszarva, (már jó esetben, mert így legalább esélyük megvan jó eredményt kapni, egyébként csak a régi jó `new Date()` jóvanazúgy) aztán majd lesz vele valami valahogy. Hát lesz. És igen, láttam már programozót recurring eventet (a teljes sorozatot) konkrét `LocalDateTime`-ként tárolva meglepődött fejet vágni, hogy hát mi baszódhatott el mikor másik időzónából használták a rendszert.
View on Reddit #82008763

Equivalent-Role-6130@reddit

Nagyon szívesen röhögnék rajtad, de az eddigi tapasztalatom az, hogy tök normális emberek is beleesnek ebbe a csapdába, hogy majd a UTC mindent megold. Gépeknél működik, de a hús-vér felhasználót csak a helyi idő érdekli. Az óra átállítás, mindig is problémás lesz.
View on Reddit #81903913

ytg895@reddit

hadd idézzem a klasszikust: https://www.youtube.com/watch?v=-5wpm-gesOY különösen fontos rész amit a végén mond: "What you learn after dealing with time zones, is that what you do is you put away your code you don't try and write anything to deal with this. You look at the people who have been there before you. You look at the first people, the people who have dealt with this before, the people who have build the spaghetti code, and you go to them, and you thank them very much for making it open source, and you give them credit, and you take what they have made and put it in your program and you never ever look at it again. *Because that way lies madness.*" sz'al ja. az UTC a tárolást oldja meg. a megjelenítést a rendszerbe beépített tzdata oldja meg. és azok a kollégák akik olyan kurva okosnak képzelik magukat, hogy ők majd jobban tudják hogyan kell a kereket újra feltalálni, azoknak továbbra is a kurva anyját.
View on Reddit #81910413

deleted_by_reddit@reddit

[removed]
View on Reddit #82020266

programmingHungary-ModTeam@reddit

A személyeskedés ütközik a sub szabályaival és a Reddit első szabályával, ezért eltávolítottuk! Kérünk, hogy posztolás előtt nézd át az r/programmingHungary és a Reddit szabályait! Personal attacks and harrassment violates the sub rules and the 1st rule of Reddit, therefore it has been removed. Please go through the rules of r/programmingHungary and Reddit before posting again!
View on Reddit #82020267

gaborauth@reddit

Nem olyan komplex ez, egy rövid mondatban elfér: tárolj és számolj UTC-ben, és írasd ki, mutasd meg helyi időben. Sose lesz problémád.
View on Reddit #81903914

Tasty-Rent7138@reddit

Nekem rögtön lesz problémám, ha épp helyi idő szerint kell a következő napot meghatározni, és egy órás bontást létrehozni, ami óraátállításkor lehet 23 vagy 25 óra. Tárolni ekkor is utct tárolunk, de már a mögöttes számoláshoz is helyire kell alakítani, nem elég csak a mutogatásra átalakítani.
View on Reddit #81970881

gaborauth@reddit

Értem, de ezekre az edge-case esetekre is van már rég megoldás, nem kell feltalálni újra a meleg vizet, ha naptár szerint kell valamit definiálni, iterálni, akkor az local date/time számolást igényel, de ezt lekezeli a naptár library.
View on Reddit #81971594

Tasty-Rent7138@reddit

Nem mondtam, hogy meg kell írni kézzel, természetesen megírt libraryk jól kezelik. Attól még az az állítás, hogy minden problémát megold az, ha minden számítást utcben csinálsz, és csak a felhasználófelé-mutatáskor alakítod helyi idővé, nem igaz.
View on Reddit #81978369

ytg895@reddit

Az órát nem érdekli a helyi idő szerinti következő nap, a CPU-t sem, csak a felhasználót. Ilyen szempontból az admin is felhasználó. Az én szótáram szerint egy ilyen számítás a "felhasználó felé" megy vagy a "felhasználó felől" jön.
View on Reddit #81984643

Tasty-Rent7138@reddit

El kell jutnia a rendszer felé is, hogy ezeket az órákat generáld le, esetleg egy gépi tanuló modell felé, hogy a helyi reggel 8, most utc 6, nem az utc 7, tehat a gyár fogyasztása ekkor fog megugrani (mert az emberek a gyárban a helyi idő szerint dolgoznak).
View on Reddit #81999981

ytg895@reddit

ja. el. (mellesleg én nagyon adnám, hogy ha az emberek nem helyi idő szerint dolgoznának, semmi értelme. és ezt is évente kétszer óraátállításkor ki szoktam fejteni az interneten is, meg a személyesen panaszkodó nem informatikus ismerőseimnek is, ezt sem szokta soha felfogni senki.)
View on Reddit #82008978

Ok-Scheme-913@reddit

Oke, írsz egy calendar appot, amiben a felhasználó beállítja hogy minden hétfő reggel 8 van egy meetingje. Akkor mit csinálsz, UTC + hozzáadsz 7*24*60*60 mp-et? Mert ha előző héten állította be akkor már egy órával el vagy csúszva
View on Reddit #81987419

gaborauth@reddit

Én konkrétan 6 éve fejlesztek naptár appot... :D Szóval meg kell nézni az RFC 2245 és RFC 5545 specifikációt, abban ez szépen le van írva, hogy a recurring event hogy kezelendő. Ilyenkor sem konkrét local dátumot tárolsz le, hanem egy kezdő dátumot UTC-ben, egy recurring szabályt, így minden időzónában jól fog megjelenni és egy honos időzónát, amiben a naptáresemény megjelenítési időpontja látszódni fog, transitions rules-al, hogy mit kell csinálni, ha nem létező intervallumban kellene megjeleníteni. És az, hogy hova kell rajzolni a naptáreseményt az adott napon belül, az megjelenítési kérdés. De ha jobban szeretnéd, akkor átfogalmazom úgy, hogy 99,9 százalékban nem lesz problémád UTC tárolással és számolással, a maradék 0,1 százalék meg olyan edge case, aminek van több évtizedes szakirodalma és ha nem niche alkalmazást fejlesztesz, akkor nem is találkozol ilyen problémával.
View on Reddit #81989013

Equivalent-Role-6130@reddit

De a felhasználó nem akar UTC-ben számolni, sőt fogadni mernék hogy a 95%-uk azt sem tudja, hogy mi az.
View on Reddit #81971338

gaborauth@reddit

Miért kellene a felhasználónak UTC-ben számolnia? A fejlesztőnek kell.
View on Reddit #81971339

Ok-Scheme-913@reddit

Már bocsánat, de önmagában az UTC se oldja meg, sőt. Más ha egy időpillanatra vagy kíváncsi és más ha egy emberek által megbeszélt időpontról van szó. Pl a minden nap 8 órakorra *nem* megfelelő az UTC.
View on Reddit #81987120

ytg895@reddit

Egy pár szálban már leírtam, de leírom megint. Annyit állítottam, hogy UTC-ben kellene tárolni minden időt. Igen, ezalatt valóban az időpontokat értettem. Ezt valamelyik alszálban kiegészítettem azzal, hogy szerintem számolni is mindig UTC-ben kellene, ezt is tartom továbbra is. Igen, a "minden nap 8 órakor"-t nem tudja az UTC prezentálni, de a MÁV-nak se a "minden nap 8 órakor indul" alapján kellene számolnia a késést, hanem a "ma 01:00-kor terveztük hogy indul Bécsből, ehelyett 01:05-kor indult, 02:00-kor volt egy óraátállítás, és Záhonynál 14:32-kor átlépett egy másik időzónába" alapján.
View on Reddit #82007962

Necessary-Ad-3236@reddit

TV adáslebonyolítóban ülök. Az adásautomatizáló szoftver fejlesztői úgy gondolták jó ötlet a local time-hoz kötni a vezérlést. Minden adásba kerülő anyag egy-egy event ami akkor élesedik amikor a kezdési ideje és a rendszeridő találkozik. Mikor egy órát előreállítunk akkor átugrana az egy órával későbbi reklám/promó akármi blokkba, mikor vissza állítunk akkor az épp futó anyag végén megvárná míg odaér az idő....ki lett találva hogy játsszuk ki, de ez minden óraállításnál egy extra éjszakai műszak, amit alvással is tölthetnék, ha UTC-re menne a vezérlés, a UI-re megjelenített időkhöz meg hozzáadna annyit amennyit beállítunk.
View on Reddit #81939888

ytg895@reddit

Fun fact: be sem kell állítani, hogy mennyit adjon hozzá, mert UTC alapján kiszámolható a helyi idő állítgatással mindennel együtt 
View on Reddit #81941111

Necessary-Ad-3236@reddit

Csak azért írtam mert más cégnél ismerem a rendszert, ott éjjel váltáskor át kell írni a +01:00-t +02:00-ra, és már oda számol minden ahova kell. Nekem meg fél oldalas checklist-em van ehhez a spanyol remekhez :)
View on Reddit #81948047

ompoly@reddit

[Falsehoods programmers believe about time](https://gist.github.com/timvisee/fcda9bbdff88d45cc9061606b4b923ca)
View on Reddit #81930232

Dana2400@reddit

Kedvencem a "flaky" unit tesztek ami ír kollégáknál és hazai ci környezetben lefut, de nálam lokálban nem.
View on Reddit #81896479

intercisa@reddit

ahhh ptsd, az összes amcsi kolléga ezt csinálta és lehetetlen volt nekik elmagyarázni, hogy ne
View on Reddit #81898160

Dana2400@reddit

Meg kell kérni hogy csak állítsa be a TZ környezeti változót Europe/Berlin vagy hasonlóra és úgy futtassa le.
View on Reddit #81905328

intercisa@reddit

tudták hogy szar csak nem érdekelte őket
View on Reddit #81911038

ytg895@reddit

de Amerikán kívül más ország nem létezik /s
View on Reddit #81909441

gaborauth@reddit

Nézd, az egyik hobby-projektem egy naptár alkalmazás, na, ott vannak még nagyobb kibaszások, például abban, hogy melyik az év első hete. Van az ISO, ami szerint az év első hete az, amelyik tartalmazza január 4-ét és az év utolsó hete ilyenkor nem 52. vagy 53. hét, hanem az első hét. Van az amerikai rendszer, ami szerint az az első hét, amiben benne van január elseje, az év utolsó hete és a következő év első hete nem ugyanaz a sorszám. Van a közel-keleti rendszer, amiben ad-hoc a hét számozása. És van még pár kis ország, ahol van valami saját rendszerük. Ehhez képest az óraátállítás és a helyi idő sima liba.
View on Reddit #81898440

gaborauth@reddit

Megjegyzem amúgy, hogy az AI review meglepően jó ilyen edge-case hibák és mellékhatások kiderítésében.
View on Reddit #81898721

Profvarg@reddit

Idonel mar csak a datum rosszabb (bloeee). Van egy rendszerunk, amiben modultol fugg h europai v amerikai v ISO a datumforma. Szivlapattal csapkodnam aki ezt hagyta, de mar sajna elment.
View on Reddit #81897105

gaborauth@reddit

Szépen néz ki az oldalam... :D https://mav-stat.info Több mint 7 éve gyűjtöm az adatokat, így még nem baszták el sose... :D
View on Reddit #81893315

Necessary-Ad-3236@reddit

https://preview.redd.it/mnyp50rtp7sg1.png?width=862&format=png&auto=webp&s=ee82c5e5a9a2ac667be3f6452ef0403917539323
View on Reddit #82011728

kindlyneedful@reddit

Átlagos késés 60 perc lol! 
View on Reddit #81894637

charlie_hun@reddit

Nade, az a ket jarat ami igy zold lett :D
View on Reddit #81897746

zseliakiraly@reddit

Az a két járat osztrák Railjet.
View on Reddit #81902276

Tradizar@reddit

ők feltalálták az "1 órával korábban indítunk vonatot, hogy azok megatívot késsenek, és jobb legyen a statisztika" megoldást
View on Reddit #81899528

No_Reputation_1727@reddit

hű, szép munka!
View on Reddit #81899638

TinyCuteGorilla@reddit

\`time TIMESTAMPTZ NOT NULL\` Mi ebben a nehéz?
View on Reddit #81910267

mykeesg@reddit

`time JOZSI_MIKROJAROL_LEOLVASVA SOMETIMES NULL`
View on Reddit #81918077

hex64082@reddit

A máv 5 ellensége mellé most csatlakozott egy hatodik is.
View on Reddit #81912743

tbazsi95@reddit

A legszebb: "MÁV: Informatikai hiba miatt nem állt át az óra a rendszerben, senkinek nem kell visszafizetnie a tévesen utalt késési biztosítást" Teli vagyunk pénzzel, hogy így szórjuk.
View on Reddit #81902754

IguessUgetdrunk@reddit

Küldeném mindenkinek Tom Scott rantjét az időzónákról és hogy miért ne akarjuk őket magunk kezelni okosban. https://youtu.be/-5wpm-gesOY
View on Reddit #81902214