Největší kryptoměnová burza světa Binance se stala terčem útoku, při kterém podvodníci odcizili během několika minut kryptoměny v hodnotě přibližně 6,3 miliardy dolarů. Jedná se o největší kryptoměnovou krádež v historii, přibližně čtyřikrát větší než loňský útok na burzu Bybit. Binance se podařilo ve spolupráci s partnery zmrazit aspoň aktiva v hodnotě zhruba 3 miliard dolarů a slíbila, že veškeré ztráty pokryje z vlastních prostředků.
Zranitelnost CVE-2026-98432 s CVSS 9.8 odhalila AI od společnosti Anthropic. Jedná se o kritickou chybu v implementaci MPTCP (multipath TCP). Debian vydal patche 16.10. a 22.10., ale např. Ubuntu je zatím bez opravy. Více informací na The Hacker News.
Na Slovensku vznikla úplne nová rally hra, ktorá je zadarmo a funguje vo Windowse, Linuxe či na Macu. Greenie Rally má viac ako 50 tratí a vozidiel, šampionáty či turnaje. Má retro feeling a imituje automobilové hry z prelomu tisícročí. Vyskúšate prejsť všetky mapy na Škode 130RS?
Do základního systému NetBSD -current byl přidán nový editor atto jako alternativa k editorům vi a xedit.
Společnost System76 představila kompaktní 11litrový Thelio Prime Desktop. S procesorem AMD Ryzen 9000. S Pop!_OS 24.04 LTS s desktopovým prostředím COSMIC nebo Ubuntu 24.04 LTS.
Čínská státní televize pozastavila vysílání španělské La Ligy a čínské internetové platformy omezily obsah s Kylianem Mbappém poté, co slavný fotbalista ve francouzském pořadu The Bridge mluvil o svém oblíbeném memu, v němž je jeho tvář vložena do portrétu zobrazujícího diktátora Mao Ce-tunga. 'Můj oblíbený mem je ten, na kterém dali můj obličej na čínského diktátora. To mě opravdu rozesmívá. S přáteli ho používám pořád' řekl,
… více »Při příležitosti oslav Dne vzniku samostatného československého státu (28. října) byly uděleny medaile Za zásluhy tvůrci aplikace Záchranka Filipu Maleňákovi, vědci v oblasti umělé inteligence Tomáši Mikolovovi a Olze Štěpánkové, vědkyni zabývající se kybernetikou, robotikou a strojovým učením, průkopnici v oblastech výuky a využití umělé inteligence v medicínském inženýrství.
Apple představil nový iPad mini, iMac s čipem M6, 14palcový MacBook Pro s čipem M6 a MacBook Pro s PROLED XDR displejem – první Mac s dotykovým ovládáním.
Nedávno představený projekt mapSTL.com řeší budoucnost. 𝕏: "Netušil jsem, kolik patentů na generování map existuje. Existují patenty na generování fantasy map 🫣. Cokoliv je na 3D tiskárnu a tvoří to produkt, bude to mít patenty. Tak bacha na to!" … více »
Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.4 (𝕏). Přehled novinek a vylepšení v poznámkách k vydání.
def epakty_j(g) x = ((g-1)*11)%30 return x endmít jen:
def epakty_j(g) ((g - 1) * 11) % 30 endDále se mrkni, jakým způsobem se v Ruby používá case. Tvá metoda epakta_jj je krásným adeptem:
def epakta_jj(h) case h when 1 then 11 when 2 then 22 ... end endA metody celkově by neměly být příliš dlouhé a obsahovat příliš mnoho přiřazení. Vyzkoušej například nástroj reek, který se snaží hledat code smells. U věcí, které ti nahlásí jako problematické, to chce zkusit se trochu zamyslet, jestli to nejde vyřešit lépe. Mnohokrát to totiž opravdu lépe jde.
Máš tam třeba metodu nedelni_pismeno_g, která má 127 řádků, to je hrozně moc. Když se na ni jen tak zběžně koukám, nebylo by lepší brát informace z nějaké interní datové struktury a tu metodu použít jen na její interpretaci?
NEDELNI_PISMENA = [ [1583..1699, { 'A' => 'D', 'B' => 'E', ... }],
[1700..1799, { 'A' => 'E', 'B' => 'F', ... },
... ]
def nedelni_pismeno_g(c, d)
range = NEDELNI_PISMENA.find { |x| x.first.include?(d) }
return 'Neni' if range.nil?
range.last[c]
end
Navíc je fajn dávat proměnným rozumná jména, lépe se to pak čte. Předpokládám, že u té poslední metody (nedelni_pismeno_g) je například proměnná d rok.
Neznám tu tvou doménovou oblast, takže je možné, že některé ty věci lze řešit elegantněji nějak algoritmicky, ale to já už takhle na první pohled těžko posoudím.
Ovšem tak nějak tuším, že vymyslet to, co už mám nebylo zdaleka tak hrozný jako to upravit...Každopádně děkuji, přijdu zas
nedelni_pismeno_j by šlo napsat například jako
NEDELNI_PISMENO=%w[A GF E D C BA G F E DC B A G FE D C B AG F E D CB A G F ED C B A] def nedelni_pismeno_j(b) return NEDELNI_PISMENO[b] enddále tam je příliš mnoho "magických proměnných" např.
19 znamená, co? a těch 19 ve velikonoce_j a ve zlate_cislo je totéž?
Proto je zvykem definovat konstantu s vysvětlujícím názvem a pak ji používat místo toho čísla.
a taky bych změnil úvodní komentář (pokud nejste Marcus Scalpere) :)
CYKLUS_OPAKOVANI_FAZE_MESICE=19 a pak používal tuhle konstantu (v dobrém editoru to nebude žádné zdržení při používání dlouhých jmen konstant)
a zvýší to srozumitelnost
tady je návrh úpravy subrutiny nedelni_pismeno_g
def nedelni_pismeno_g(c, d)
pismena_h={
'A' => 6,
'B' => 5,
'C' => 4,
'D' => 3,
'E' => 2,
'F' => 1,
'G' => 0,
}
#pismena_a=pismena_h.keys.sort! {|a,b| pismena_h[a] <=> pismena_h[b]}
pismena_a=%w[G F E D C B A]
if d <= 1582 or d >= 2100
return "Neni"
end
posun = d <= 1699 ? 3 :
d <= 1799 ? 4 :
d <= 1899 ? 5 :
d <= 2099 ? 6 : 0
if c.length == 1
return pismena_a[pismena_h[c] - posun % pismena_a.length]
else
return nedelni_pismeno_g(c[0],d)+nedelni_pismeno_g(c[1],d)
end
end
opět potřeba brát s rezervou píši, co mě právě napadlo a na co jsem narazil v manuálu Ruby :)
case-like" konstrukce je poměrně novinkou :))
Navíc se dopouštím toho, co předtím kritizuji, že používám "magická čísla".
Zkrátka nelze mnou navržené řešení brát jako hotovou věc, ale spíš směr, kudy by se ty úpravy mohli ubírat.
rozdil_e(j) je chyba v algoritmu. Rozdíl ve dnech mezi julianským a gregorianským kalendářem se mění ne při změně letopočtu, ale až při přestupném dni. Vše je již vypočteno na Jaký je dnes den dle juliánského kalendáře.
1..n, tak bych použil pole
např.
def epakta_jj(h) return [ 0, 11, 22, 3, 14, 25, 6, 17, 28, 9, 10, 1, 12, 23, 9, 15, 26, 7, 18, 29 ][h] endpak tam je často něco jako pokud je rok pod 1700 vrať tohle číslo, pokud je pod 1800 tak tohle atd. tak to by se dalo napsat do subrutiny, používal bych nějakou untilitu, která do kódu správně doplní mezery (tidy)
def zlate_cislo(rok) x = (rok + 1) % 19 x == 0 ? 19 : x endU metody velikonoce_g si hlídáš, aby fungovala až pro roky větší než 1582. U takto jednoduchých výrazů je v Ruby konvence dávat podmínku až za výraz:
return 'neni' if x <= 1582.
Jinak u metod velikonoce_j a velikonoce_g máš jeden vstupní argument, jednou se jmenuje x, podruhé l. Tohle je matoucí, musel jsem se podívat, jak ty metody voláš z insert_text, abych zjistil, v čem je tam rozdíl. A rozdíl tam není. Oba ty parametry pojmenuje rok anebo year, abys ulehčil čtení kódu ostatním a vlastně i sobě, až se k tomu skriptu v budoucnu vrátíš a už ho nebudeš mít celý v hlavě.
K těm metodám bych měl ještě jednu poznámku. Jako vstup pro ně máš rok a výstup například "22. dubna". Snaž se dělat metody tak, aby plnily vždy jen jednu úlohu. Tady už máš smíchané dvě věci dohromady: výpočet dne velikonoc a naformátování datumu na český řetězec. Navrhoval bych, aby metody velikonoce_j a velikonoce_g vracely instanci třídy Date a dodělej si metodu, která ti naformátuje Date na české datum. Jako výhodu to má například to, že všechny tři ty metody budou snadněji znovupoužitelné v budoucnu.
Tiskni
Sdílej: