The Open Source Software Security Mobilization Plan (pdf) je konsorciem The Linux Foundation zastřešen plán na zvýšení bezpečnosti open source softwaru.
Minulý týden proběhla hackerská soutěž Pwn2Own Vancouver 2022. Máte-li na starost bezpečnost IT, výsledky vás nepotěší. Microsoft Teams, Oracle Virtualbox, Mozilla Firefox, Microsoft Windows 11, Ubuntu Desktop, Apple Safari, Tesla Model 3 Infotainment System. Vše potopeno. Demonstrované bezpečnostní chyby ve Firefoxu jsou již opraveny ve verzi 100.0.2.
Lokální úložiště Stratis (Wikipedie), alternativa k úložištím s ZFS a Btrfs, bylo vydáno ve verzi 3.1.0. Přehled novinek v poznámkách k vydání.
Sdružení CZ.NIC dnes vrátilo do zóny dříve vyřazená jména domén dezinformačních webů.
Před půl rokem představený webový vyhledávač You.com (Wikipedie) se zaměřuje také na kodéry. Vyzkoušet lze YouCode.
RustDesk je open source alternativa k TeamVieweru. Zdrojové kódy jsou k dispozici na GitHubu pod licencí GPL-3.0.
Po 4 měsících vývoje od vydání verze 5.9 byla vydána nová verze 6.0 svobodného open source redakčního systému WordPress. Kódové jméno Arturo bylo vybráno na počest jazzového hudebníka Artura O'Farrilla.
Po více než roce vývoje od vydání verze 1.20.0 byla vydána nová stabilní verze 1.22.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.22.
Desktopová verze svobodného kancelářského balíku OnlyOffice (Wikipedie) byla vydána ve verzi 7.1 (7.1.0). Přehled novinek v příspěvku na blogu a na YouTube. Nejnovější OnlyOffice je již také na Flathubu a Snapcraftu.
Logitech dnes představil myš MX Master 3S a mechanické klávesnice MX Mechanical a MX Mechanical Mini.
sed 's/\([0-9][0-9][0-9]\)$/ \1/g'ale to mi udělá pouze do tisíců.. Nelze nějak nastavit, aby se příkaz (například
's/\([0-9][0-9][0-9] \)$/ \1/g'
) opakoval, dokud neudělá už žádnou další změnu? Se sedem pracuji asi celé dvě hodiny, takže se moc nevyznám... Za každé nakupnutí moc díky!
echo 1234567890 \ | rev \ | sed -re 's/([0-9]{3})/\1 /g' -e 's/ $//' \ | rev:-) Ale určitě to jde nějak inteligentněji…
a=1234567890 while true; do b=`echo "$a" | sed -re 's/([0-9])([0-9]{3})\>/\1 \2/'` if [ "$b" = "$a" ]; then break; fi a="$b" done echo "$a":-)
sed -re ':1; s/([0-9])([0-9]{3})\>/\1 \2/; t1'
perl -pe 's/(?<=\d)(?=(\d{3})+\D)/ /g;'Pro srovnání ekvivalent toho sedového řešení, tedy aplikace regexpu na jedn řádek dokud se něco matchne, ale s využitím look-ahead/behid (many)
perl -pe 'while(s/(?<=\d)(?=\d{3}\D)/ /){}'a nakonec úplný ekvivalent toho sedu (normal)
perl -pe 'while(s/(\d)(\d{3}\D)/$1 $2/){}'A srovnání rychlosti
Rate one many normal one 69367/s -- -10% -47% many 77244/s 11% -- -40% normal 129705/s 87% 68% --Což mě teda přinejmenším hodně překvapilo, že to úplně obyčejné řešení je zároveň nejrychlejší.
Benchmark
modul v perlu nad třemi řetězci načtenými z DATA
. Musel bych nějak vymyslet jak omezit vliv natahování sed a rev do paměti a nad tím se mi teď nechce přemýšlet. Jinak zdroják testu:#!/usr/bin/env perl use strict; use warnings; use Benchmark qw(cmpthese); my @strs = <DATA>; cmpthese(-2, { one => sub { foreach (@strs) { s/(?<=\d)(?=(\d{3})+\D)/ /go; } }, many => sub { foreach (@strs) { while (s/(?<=\d)(?=\d{3}\D)/ /o){} } }, normal => sub { foreach (@strs) { while (s/(\d)(\d{3}\D)/$1 $2/o){} } } }); __DATA__ 1234567890 hwiehwfuih 1246537245735 __END__
strfmon()
, něco jako je printf(1)
vůči printf(3)
.
Tiskni
Sdílej: