Podvodné reklamy na sociálních internetových platformách, jako je Facebook, Instagram nebo X, vytvořily loni v Česku jejich provozovatelům příjmy 139 milionů eur, tedy zhruba 3,4 miliardy korun. Proti roku 2022 je to nárůst o 51 procent. Vyplývá to z analýzy Juniper Research pro společnost Revolut. Podle výzkumu je v Česku zhruba jedna ze sedmi zobrazených reklam podvodná. Je to o 14,5 procenta více, než je evropský průměr, kde je podvodná každá desátá reklama.
Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.6 (Mastodon). Přehled novinek i s videi a se snímky obrazovek v oficiálním oznámení. Podrobný přehled v seznamu změn.
Czkawka a Krokiet, grafické aplikace pro hledání duplicitních a zbytečných souborů, byly vydány ve verzi 11.0. Podrobný přehled novinek v příspěvku na Medium. Od verze 7.0 je vedle frontendu Czkawka postaveného nad frameworkem GTK 4 vyvíjen nový frontend Krokiet postavený nad frameworkem Slint. Frontend Czkawka je už pouze v udržovacím módu. Novinky jsou implementovány ve frontendu Krokiet.
Jiří Eischmann na svém blogu publikoval článek Úvod do MeshCore: "Doteď mě radioamatérské vysílání úplně míjelo. Když jsem se ale dozvěděl, že existují komunity, které svépomocí budují bezdrátové sítě, které jsou nezávislé na Internetu a do značné míry taky elektrické síti a přes které můžete komunikovat s lidmi i na druhé straně republiky, zaujalo mě to. Když o tom přede mnou pořád básnili kolegové v práci, rozhodl jsem se, že to zkusím taky.
… více »Byla vydána verze 0.5.20 open source správce počítačových her na Linuxu Lutris (Wikipedie). Přehled novinek v oznámení na GitHubu. Instalovat lze také z Flathubu.
Peter Steinberger, autor open source AI asistenta OpenClaw, nastupuje do OpenAI. OpenClaw bude převeden pod nadaci a zůstane otevřený a nezávislý.
Společnost Backblaze zveřejnila statistiky spolehlivosti pevných disků používaných ve svých datových centrech za rok 2025. Ke konci roku 2025 vlastnila 349 462 pevných disků. Průměrná AFR (Annualized Failure Rate), tj. pravděpodobnost, že disk během roku selže, byla 1,36 %. V roce 2024 to bylo 1,57 %. V roce 2023 to bylo 1,70 %. V roce 2022 to bylo 1,37 %.
Nástroj sql-tap je proxy mezi aplikací a databází, které zachytává všechny SQL dotazy a zobrazuje je v terminálovém rozhraní. Zde lze téměř v reálném čase zkoumat dotazy, sledovat transakce a spouštět SQL příkaz EXPLAIN. Podporované databázové systémy jsou pouze PostgreSQL a MySQL. Zdrojový kód je dostupný na GitHubu, pod licencí MIT.
Byla vydána nová verze 9.2 textového editoru Vim (Vi IMproved). Přináší vylepšené doplňování, podporu schránky ve Waylandu, podporu XDG Base Directory (konfigurace v $HOME/.config/vim), vylepšené Vim9 skriptování nebo lepší zvýrazňování změn. Vim zůstává charityware. Nadále vybízí k podpoře dětí v Ugandě. Z důvodu úmrtí autora Vimu Brama Moolenaara a ukončení činnosti jím založené charitativní organizace ICCF Holland projekt Vim navázal spolupráci s charitativní organizaci Kuwasha.
Byl představen editor MonoSketch, webová aplikace pro tvorbu diagramů, technických nákresů, flowchartů a různých dalších vizualizací, to vše jenom z ASCII znaků. Všechny operace běží pouze v prohlížeči uživatele a neprobíhá tedy žádné nahrávání dat na server. Zdrojový kód aplikace (drtivá většina Kotlin, žádné C#) je dostupný na GitHubu pod licencí Apache 2.0.
sed, awk, grep,… používat tzv. Perl one-liners. U mě to došlo tak daleko, že místo toho abych zjišťoval jak escapuje echo, použiji raději něco jako perl6 -e 'say join "\n", "a\tb", "1\t2"'. Ale samozřejmě nic vám nebrání, když uznáte za vhodné, tyto one-liners kombinovat s nástroji jako find, column,….
-e, za kterým následuje kód Perlu 6, který se spustí.
perl6 -e 'say ((237/75+162/3)/(9+54)).nude.join: "/" ;' #1429/1575 perl6 -e 'say "larry wall".wordcase;' #Larry WallDalšími užitečné přepínače jsou
-n a -p, které automaticky přidají smyčku přes všechny řádky, -p je na konci ještě vytiskne.
history|perl6 -ne '.say if m:r:s/^^perl6 "-"ne>>/ && /:r <<if>> /' #vytiskni řádky které začínají na perl6 -ne a obsahují slovo if perl6 -ne '.say if /"<"pre>>/ ff /"<""/"pre">"/' naucte_me_Perl_6_III.html #vytiskni řádky ohraničené značkou pre xsel|perl6 -pe '.=trim' #odstraní mezery před a za řádkem perl6 -pe 's:g/wamba/wambash/' /etc/passwd #nahradí wamba za wambashDalší one-liners v Perlu 6 najdete i na githubu Davida Farrella.
line, slurp,…, implicitně čtou se standardního vstupu a pokud je zadán parametr, tak se souborů, které májí názvy jako parametry. Ale k parametrům na příkazové řádce můžeme přistupovat i pomocí @*ARGS, nebo pomocí definice podprogramu MAIN. Se standardním vstupem/výstupem můžeme manipulovat pomocí proměnných $*IN, $*OUT.
cat soubor1|perl6 -e 'say lines.elems' #počet řádků v soubor1
perl6 -e 'say lines.elems' soubor1 #totéž
cat soubor1|perl6 -e 'say lines.elems' soubor2 soubor3 #počet řádků v soubor2 + v soubor3
cat soubor1|perl6 -e 'say $*IN.lines.elems' soubor2 soubor3 #počet řádků v soubor1
cat soubor1|perl6 -e 'say @*ARGS[1].IO.lines.elems' soubor2 soubor3 #počet řádků v soubor3
cat soubor1|perl6 -e 'sub MAIN ($,$soubor) { say $soubor.IO.lines.elems }' soubor2 soubor3 #totéž
@a.join: "\n", tak další možností je užít tzv. feed operátor ==>, popř. <==, který se nejčastěji používá k práci s poli.
perl6 -e 'say() <== join "\n" <== ^10'
perl6 -e '^10 ==> join "\n" ==> say()'
perl6 -e '^10 ==> { @^a Z+ @^a[1.. *] }() ==> sum() ==> say()' #81
Kromě ntic jsou v Perlu 6 i páry a => 12, :a<12>, :12a, které se skládají s klíče a hodnoty. Jedna věc, kterou jsem si hned oblíbil, je push párů do asociativního pole.
perl6 -e 'say (%).push: (a => 3, b => 10, :a<12>, :21a);' #{a => [3 12 21], b => 10}
perl6 -e 'say (%).push: <a b b c a c> Z=> 1 .. *' #{a => [1 5], b => [2 3], c => [4 6]}
Povšimněte si jak jsme použili anonymní proměnnou asociativního pole %, kterou nemusíme definovat. Podobně by jsme mohli použít pro push do pole @, nebo pro práci s čísly, resp. řetězci $.
perl6 -e 'say (@).push: "a", "b", "c"' #[a b c] xsel|perl6 -pe '$_ [R~]= $++ ~ ","' #očísluje jednotlivé řádky
one-linerů, které budou sčítat čísla v pátém sloupci podle tabulátoru, před řádkem --.
První si vygenerujeme testovací data:
perl6 -e 'use Inline::Perl5; use Data::Random:from<Perl5> <:all>; ( loop { join "\t", rand_words(:2min :3max)>>.tc.join(" "), rand_datetime(), (^100).roll(4), rand_words() } ).head(1000).rotor((^20+1).roll(10)).&cross("--")>>.say ' >>Plocha/DATA.txt
V diskuzi pod prvním blogem o Perlu 6 jsem si stěžoval, že načítání Inline::Perl5 je neúměrně dlouhé. Tady byla sjednána náprava a již to trvá méně než vteřinu. Nicméně vygenerovaní cca 1000 položek předešlým one-linerem trvá více než 30 vteřin.
Testovací data vypadají přibližně takto:
Festive Journeyman 2016-11-05 22:04:01 34 68 17 84 piss Frightens Astray 2016-09-14 22:41:45 5 2 93 84 reprograms Cards Optima Fisher 2016-09-18 12:45:06 85 29 72 40 transitivity -- Presumably Gore 2016-05-30 09:29:56 7 49 68 69 archipelagoes Soccer Devotions 2016-10-03 22:13:15 64 79 23 88 delaying -- Footfall Bliss 2016-07-02 17:20:29 29 22 33 2 connect Merely Transcends Moline 2016-08-15 13:36:36 87 94 9 14 pounce Advocated Compliments Sputter 2016-05-11 00:04:53 15 38 22 69 inconsiderate -- Promotes Tread Complexes 2016-08-18 17:38:55 1 47 91 41 devised --První řešení napodobí to v Perlu 5 ze zmíněné diskuze. Použijeme přepínač
-n, zapamatujeme si předešlý řádek, a pokud současný řádek je roven --, tak přičteme jeho pátý sloupec do $sum. Nakonec $sum vypíšeme.
perl6 -ne 'state $pred; state $sum += $pred.split("\t").[4] if $_ eq "--"; $pred=$_; END {say $sum}' Plocha/DATA.txt
V druhém řešení místo každého řádku budeme brát dvojici řádek, následující_řádek. Vyfiltrujeme ty dvojici které mají první prvek roven -- a následně s nultého prvku vybereme 5. sloupec, sečteme a vytiskneme.
perl6 -e 'lines().rotor( 2 => -1 ) ==> grep *.[1] eq "--" ==> map *.[0].split("\t").[4] ==> sum() ==> say() ' Plocha/DATA.txt
Další řešení pracuje s páry ve tvaru následující_řádek => řádek a použijeme push do asociativního pole. Vybereme prvek (pole) odpovídající klíči --, vybereme 5. sloupce, sečteme a vytiskneme.
perl6 -e '(%).push( lines().&{ @^a[1 .. *] Z=> @^a } ).<-->.map( *.split("\t").[4] ).sum.say' Plocha/DATA.txt
Také se můžeme najít regulární výraz, který přímo vybere pátý sloupec před řádkem --.
perl6 -e 'slurp.comb(/:r^^[\T+\t] ** 4 <( \d+ )> \N*\n "--" \n/).sum.say' Plocha/DATA.txtPoslední řešení rozdělí data pomocí
--\n. Poté z jednotlivých částí vezme pátý sloupec posledního řádku, sečte, vytiskne.
perl6 -e 'slurp.split("--\n", :skip-empty).map( *.lines.[*-1].split("\t").[4] ).sum.say' Plocha/DATA.txt
perl6 -e 'unit sub MAIN; spurt $^file ~ ++$, .join: "\n" for $^file.IO.lines.permutations' pok.txtNalezení duplikátních řádků.
perl6 -e '(%).push( slurp.lines.pairs.invert ).grep( *.value.elems > 1).sort( *.value.elems )>>.say' soubor.txtNahrazení části textového souboru jiným.
perl6 -e 'unit sub MAIN; my @soubor1 = $^soubor1.IO.lines; say join "\n", @soubor1, $^soubor2.IO.lines.[@soubor1.elems .. *]' pok.txt soubor.txtBash - násobení po řádcích
perl6 -ne '$_ ==> split "x" ==> map (* * 1.328).round ==> join "x" ==> say()' soubor.txt
perl6 -ne '.split("x").map( * * 1.328 )>>.round.join("x").say' soubor.txt
Tiskni
Sdílej:
perl6 -e 'print "a"; sleep(5); say "b";'vytiskne
a a za pět vteřin b.
Oproti Perl 5 verzi
perl -E 'print "a"; sleep(5); say "b";'která vytiskne až po pěti vteřinách
ab.
Nicméně v Sinopsis je napsáno, že by autoflush, měl fungovat, až po zapnutí $*OUT.autoflush, popř. by měli jít všechny data najednou uvolnit pomocí flush.
autoflush je v odstraněných funkcích a je tam napsáno, že je to ponecháno na implementaci. Vypadá to, že Rakudo flushuje automaticky. Kdyby náhodou někde ne, tak ta metoda flush by měla funguvat.