Firma X zaslala předžalobní výzvu vývojáři projektu Nitter (Wikipedia), open-source alternativního frontendu k sociální síti X (ex-Twitter), a provozovatelům instancí jako XCancel, které umožňovaly číst příspěvky bez přihlášení, reklam a javascriptu. Údajně se dopouštějí „sběru dat“. Zdrojový kód Nitteru vývojář archivoval. Vývoj již dříve přerušil v roce 2024 po tehdejším omezení API X. X je dceřiná společnost SpaceXAI Elona Muska, provozující mj. kontroverzního chatbota Grok.
Bylo vydáno Ubuntu 26.04.1 LTS, tj. první opravné vydání Ubuntu 26.04 LTS s kódovým názvem Resolute Raccoon. Přehled novinek a oprav na Discourse.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) vydal Zprávu o stavu kybernetické bezpečnosti ČR za rok 2025 (pdf). Incidentů ubylo, sofistikovanost útočníků roste.
Open source softwarový stack AMD ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán v nové major verzi 10.0. S ROCm.AI. Přehled novinek v aktualizované dokumentaci.
Finanční skupina Partners se stala minulou neděli obětí kybernetického útoku, při kterém se útočníci dostali k některým osobním údajům klientů. Společnost o tom informovala ve čtvrtek. Ujišťuje, že peníze klientů nejsou v ohrožení. „Kybernetický útok zasáhl část IT infrastruktury naší společnosti. Ihned po zjištění útoku jsme s pomocí externích bezpečnostních odborníků začali intenzivně pracovat na minimalizaci škod. Útočníci se
… více »Americká technologická společnost Meta Platforms se dohodla, že zaplatí až zhruba 18 miliard dolarů (asi 373 miliard Kč) za mimosoudní urovnání sporu o závislosti dětí na sociálních sítích a provede významné změny pro jejich používání mladistvými. Téměř tři desítky států USA firmu v roce 2023 obvinily z toho, že sítě Facebook a Instagram vědomě navrhla tak, aby u dětí vyvolávaly závislost, a zatajovala tyto dopady před veřejností. Firma se
… více »Byl publikován aktuální přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Blíží se vydání podporující čipy M3. Vývojáře lze podpořit na GitHub Sponsors a Open Collective.
Kancelářský balík LibreOffice byl vydán ve verzi 26.8. Mimo jiné vylepšuje typografii a kompatibilitu s formáty MS Office, více v poznámkách k vydání.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 26.8. Přehled novinek v poznámkách k vydání.
Byla vydána nová verze 23.1.0, tj. první stabilní verze z nové řady 23.1.x, překladačové infrastruktury LLVM (Wikipedie). Přehled novinek v poznámkách k vydání: LLVM, Clang, LLD, Extra Clang Tools, Libc++, Polly a Flang.
Tiskni
Sdílej:
S programováním teprve začínámNo, muj kod taky neni dokonaly, ale je to trochu videt.
Zkusim par konstruktivnich poznamek, snad te to neodradi:
- Davat do ruznych souboru ma smysl veci, co spolu nesouvisi, nebo se naopak pouzivaji z vice modulu. Pri velikosti tveho programku by asi davalo lepsi smysl dat to vsechno do jednoho.
- Melo by smysl napsat si funkce pro samotny vypocet, a oddelit je od vstupu a vystupu.
- Asi by bylo logictejsi mit funkce pro vstup a zaroven jeho validaci nez jen jeho validaci. Ditto pro vystup - bylo by logictejsi mit funkci pro vystup zaokrouhlene hodnoty nez samotne zaokrouhleni.
require '/home/nagyova/mzda/konstanty.rb'Vážně?
MALE = 0 FEMALE = 1 puts "Pohlavie: %s" % if gender == MALE then "mužské" else "ženské" end
Dik funguje...
Len mi to vyhodilo: "Pohlavie: mu??sk??"
Ruby nepodporuje unicode?
require File.join(File.dirname(__FILE__), 'konstanty.rb'), od Ruby 1.9 je navíc k dispozici require_relative. Ruby 2.0 přidává i __dir__ (podobně jako již zavedené __FILE__ a __LINE__) vhodné pro takové ty File.open a YAML.load.
--
43.times {print '*'}
puts
Určitě než volat print v cyklu bych raději použil puts '*'*43
--
... puts STR2 odpoved = gets test_vstupu_an(odpoved) if odpoved =~ /a/i sleva_na_dani += DRZITEL_ZTP end ...Není mi úplně jasné, proč používáš ty konstanty STR1 až STR4. Stejně tam máš v kódu napevno zadrátované to, čeho se která týká (sleva_na_dani). Nevím jestli nečekáš, že ty otázky se budou nějak výrazně často měnit a proto je chceš mít někde bokem, ale IMHO to nestojí za to snížení čitelnosti hlavni.rb. -- Jak už bylo řečeno výše, tak to rozdělení do souborů není úplně ideální. Hlavně je ale Ruby objektivně orientovaný jazyk a tak je škoda to úplně ignorovat.
Začal bych nějak takto:
class PlatovaKalkulacka
SAZBA_ZDRAVOTNI_ZAMESTNAVATEL = 9.0
SAZBA_SOCIALNI_ZAMESTNAVATEL = 25.0
SAZBA_ZDRAVOTNI_ZAMESTNANEC = 4.5
SAZBA_SOCIALNI_ZAMESTNANEC = 6.5
SAZBA_DANE_Z_PRIJMU = 15.0
POPLATNIK = 2070
DRZITEL_ZTP = 1345
STUDENT = 335
DITE = 1117
attr_reader :hruba_mzda, :podepsane_prohlaseni, :ztp, :student, :pocet_deti
def initialize(opts={})
@hruba_mzda = opts[:hruba_mzda]
@podepsane_prohlaseni = opts[:podepsane_prohlaseni] || false
@ztp = opts[:ztp] || false
@student = opts[:student] || false
@pocet_deti = opts[:pocet_deti] || 0
end
def sleva_na_dani
return 0 unless podepsane_prohlaseni
val = POPLATNIK
val += DRZITEL_ZTP if ztp
val += STUDENT if student
val
end
def super_hruba_mzda
hruba_mzda + zdravotni_zamestnavatel + socialni_zamestnavatel
end
...
end
Nemáš potom ty konstanty a metody v globálním namespace, ale hezky u třídy, které se to týká. Navíc máš pak metody jako PlatebniKalkulacka#super_hruba_mzda, ve kterých je jen samotný výpočet dané hodnoty, nemáš to smíchané s kódem pro vstup/výstup.
Se soubory jako metody.rb bych byl opatrný. Mám zkušenost, že takový soubor rychle bobtná (vyvojáři projektu si tam přihodí nějakou funkci, kterou zrovna rychle potřebují), dochází k duplikaci kódu a víceméně všechny ostatní součásti aplikace na tom závisí. Odstraňovat je to potom peklo, to se už raději v začátku snaž mít objektový návrh a ty metody si dávat rovnou tam, kam patří.
# encoding: utf-8 a = "vstup\n123" abort "chybný vstup" if a !~ /^[0-9]+$/ puts a.to_i()^ a $ označují začátek a konec řádku, ale ne začátek a konec řetězce. Pokud chceš kontrolu toho, že řetězec opravdu obsahuje jenom čísla, je potřeba
/\A[0-9]+\Z/.
tady jsou důkazy http://www.mzdy-vypocet.cz