Byla vydána nová verze 9.19 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze například nový balíček BirdNET-Go, tj. AI řešení pro nepřetržité monitorování a identifikaci ptáků.
Byla vydána nová verze 3.38 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.10 souvisejícího programovacího jazyka Dart (Wikipedie).
Organizace Apache Software Foundation (ASF) vydala verzi 28 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Byl vydán Debian 13.2, tj. druhá opravná verze Debianu 13 s kódovým názvem Trixie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Google představil platformu Code Wiki pro rychlejší porozumění existujícímu kódu. Code Wiki pomocí AI Gemini udržuje průběžně aktualizovanou strukturovanou wiki pro softwarové repozitáře. Zatím jenom pro veřejné. V plánu je rozšíření Gemini CLI také pro soukromé a interní repozitáře.
V přihlašovací obrazovce LightDM KDE (lightdm-kde-greeter) byla nalezena a již opravena eskalace práv (CVE-2025-62876). Detaily v příspěvku na blogu SUSE Security.
Byla vydána nová verze 7.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Tor Browser byl povýšen na verzi 15.0.1. Další novinky v příslušném seznamu.
Česká národní banka (ČNB) nakoupila digitální aktiva založená na blockchainu za milion dolarů (20,9 milionu korun). Na vytvořeném testovacím portfoliu, jehož součástí jsou bitcoin, stablecoiny navázané na dolar a tokenizované depozitum, chce získat praktickou zkušenost s držením digitálních aktiv. Portfolio nebude součástí devizových rezerv, uvedla dnes ČNB v tiskové zprávě.
Apple představil iPhone Pocket pro stylové přenášení iPhonu. iPhone Pocket vzešel ze spolupráce značky ISSEY MIYAKE a Applu a jeho tělo tvoří jednolitý 3D úplet, který uschová všechny modely iPhonu. iPhone Pocket s krátkým popruhem se prodává za 149,95 dolarů (USA) a s dlouhým popruhem za 229,95 dolarů (USA).
Byla vydána nová stabilní verze 7.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 142. Přehled novinek i s náhledy v příspěvku na blogu.
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