Cloudflare, tj. společnost poskytující "cloudové služby, které zajišťují bezpečnost, výkon a spolehlivost internetových aplikací", má výpadek.
Letos se uskuteční již 11. ročník soutěže v programování Kasiopea. Tato soutěž, (primárně) pro středoškoláky, nabízí skvělou příležitost procvičit logické myšlení a dozvědět se něco nového ze světa algoritmů – a to nejen pro zkušené programátory, ale i pro úplné začátečníky. Domácí kolo proběhne online od 22. 11. do 7. 12. 2025 a skládá se z 9 zajímavých úloh různé obtížnosti. Na výběru programovacího jazyka přitom nezáleží – úlohy jsou
… více »Byla vydána nová verze 2.52.0 distribuovaného systému správy verzí Git. Přispělo 94 vývojářů, z toho 33 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
VKD3D-Proton byl vydán ve verzi 3.0. Jedná se fork knihovny vkd3d z projektu Wine pro Proton. Knihovna slouží pro překlad volání Direct3D 12 na Vulkan. V přehledu novinek je vypíchnuta podpora AMD FSR 4 (AMD FidelityFX Super Resolution 4).
Poštovní klient Thunderbird byl vydán v nové verzi 145.0. Podporuje DNS přes HTTPS nebo Microsoft Exchange skrze Exchange Web Services. Ukončena byla podpora 32bitového Thunderbirdu pro Linux.
U příležitosti státního svátku 17. listopadu probíhá na Steamu i GOG.com již šestý ročník Czech & Slovak Games Week aneb týdenní oslava a také slevová akce českých a slovenských počítačových her.
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.
`cat *.txt >all`;(samozrejme existuje milion jinejch zpusobu)
;
@g = ();
@b = ();
$map{"g"} = \@g;
$map{"b"} = \@b;
open(F, "file.txt");
while (<F>)
{
if (m/(.*):(.*)/)
{
push @{ $map{$1} }, $2;
}
}
close(F);
print "G:\n";
for $i (@g) { print "\t$i\n"; }
print "B:\n";
for $i (@b) { print "\t$i\n"; }
ocekava se ze file.txt bude ve formatu:
g:nick1 g:nick2 b:nick3 b:nick4 g:nick5 ...
Nebo to rozdel do sekci a identifikator dej pouze pred prvni zaznam dane sekce (neco na zpusob *.ini souboru ve Windows). Zpusob zapisu oddelovace si zvol jaky ti vyhovuje - napriklad
[nazev sekce] data data
nebo
::nazev sekce data data
nebo
nazev sekce: data data
atd.
Spojeni do jednoho souboru muzes udelat napriklad takto
for X in *.txt; do
echo "[${X%.txt}]">>all.txt;
cat $X >>all.txt;
done
Puvodni jmena souboru (bez pripony) jsou pouzity jako oddelovace/nazvy sekci. Vysledny soubor s daty tedy muze vypadat takto
[kluci] mnick1 # komentar mnick2 mnick3 [holky] fnick1 fnick2 fnick3
Pokud vylozene nepotrebujes extra promenne tak bych to pak nacital do HASHe - treba nasledujicim zpusobem
my %data;
my $line;
my $sekce = 'neznama';
my $config = 'all.dat';
# nacteme data/konfiguraci
if (open(DATAIN, $config)) {
while ($line = <DATAIN>) {
chomp($line);
next if ($line =~ /^\s*$/);
next if ($line =~ /^\s*#/);
if ($line =~ /^\s*\[([^\]]+)]\s*$/) {
# nalezena nova sekce dat
$sekce = $1;
$sekce =~ s/^\s*//;
$sekce =~ s/\s*$//;
} else {
# cteme data
push @{$data{$sekce}}, $line;
}
}
# data nactena - zavreme soubor
close(DATAIN);
} else {
die("Nelze otevrit soubor '$config'");
}
# pokracuje vlastni kod programu
# ...
Jednotlive kategorie/seznamy jsou pristupne jako @{$data{'jmeno seznamu'}} (napr.: @{$data{holky}} a polozky pak $data{'jmeno seznamu'}[index] (napr.: $data{'holky'}[1]. Seznam vsech nactenych kategorii/seznamu ziskas pomoci keys %data.
Diky za doporuceni a odkaz na CPAN. Pro vasi informaci na CPANu mam nekolik modulu a vyvoj v PERLu mne i pred lety zivil. Pri pouzivani CPAN modulu jsem bohuzel casto narazil na velmi promenlivou kvalitu kodu a dokumentace. Velmi casto je k dispozici nekolik modulu pro stejny ukol a zadny z nich to nedela poradne… To je ale namet na uplne jinou a poradne dlouhou diskusi.
Po precteni tazatelova prispevku jsem mu chtel ukazat kousek PERLoveho kodu a silu PERlu. Tazatel zrejme prechazi z C ci neceho podobneho. Pri pouhem uvedeni odkazu na CPAN ci konkretni modul tak tazatel zrejme zustane u psani ceckoveho kodu v PERLu a nevyuzije silu a prednosti tohoto jazyka.
Napriklad pokud pouze plnim pole, nepotrebuji si udrzovat index posledniho prvku, tedy namisto
$holky[$a] = $radek; $a++;
lze jednoduse pouzit
push @holky, $radek;
Pokud potrebuji pocet prvku, ziskam jej z @holky ve skalarnim kontextu, jenz si lze vynutit pomoci scalar(@holky). Index posledniho prvku pak je $#holky. Tazatel take jeste prilis nezna kouzlo regularnich vyrazu umoznujici volnost v psani zaznamu ve vstupnim souboru (napriklad volitelne mezery jenz nekdy text udelaji pro cloveka prehlednejsim) namisto pouziti substr() kde musim mit zaznam presnou strukturu.
open(my $input, ...) místo open(INPUT, ...). Vypadá to jako nuance ale má to dalekosáhlé dopady (k lepšímu). A také není potřeba mít if...else otevření selhalo, ale stačí použít autodie.
Tiskni
Sdílej: