BarraCUDA je neoficiální open-source CUDA kompilátor, ale pro grafické karty AMD (CUDA je proprietární technologie společnosti NVIDIA). BarraCUDA dokáže přeložit zdrojové *.cu soubory (prakticky C/C++) přímo do strojového kódu mikroarchitektury GFX11 a vytvořit tak ELF *.hsaco binární soubory, spustitelné na grafické kartě AMD. Zdrojový kód (převážně C99) je k dispozici na GitHubu, pod licencí Apache-2.0.
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.
Zdravim nespavcov :) Uz dlhsi cas sa mordujem so spracovanim vstupnych dat v tvare:
#attr2:attr3:attr6:attr5 value2r1:value3r1:value6r1:value5r1 #attr1:attr5:attr3:attr2:attr6 value1r2:value5r2:value3r2:value2r2:value6r2 value1r3:value5r3:value3r3:value2r3:value6r3 #attr8:attr2:attr3:attr4:attr5:attr7:attr1 #attr1:attr2:attr3:attr5 value1r4:value2r4:value3r4:value5r4
Pravidla pre tvar vstupneho suboru:
Mojim cielom je dostat ich do tvaru:
#attr1:attr2:attr3:attr4:attr5:attr6:attr7:attr8 :value2r1:value3r1::value5r1:value6r1 value1r2:value2r2:value3r2::value5r2:value6r2 value1r3:value2r3:value3r3::value5r3:value6r3 value1r4:value2r4:value3r4::value5r4
pripadne:
#attr1:attr2:attr3:attr4:attr5:attr6:attr7:attr8 :value2-1:value3-1::value5-1:value6-1:: value1-2:value2-2:value3-2::value5-2:value6-2:: value1-3:value2-3:value3-3::value5-3:value6-3:: value1-4:value2-4:value3-4::value5-4:::
cize, vertikalne ich zarovnat a zoradit podla attrX, ktore budu vypisane v prvom riadku vystupneho suboru ako hlavicka. Cielom je predpriprava suboru na dalsie spracovanie tabulkovym kalkulatorom. Viacero dvojbodiek na konci riadka ako je ukazane vyssie nicomu neprekaza, ale ani nie je potrebnych. (vychadzam z toho ze ich povolenim by sa dal zjednodusit kod, a tabulkovy kalkulator ich aj tak odignoruje
Zatial som dospel k nasledovnemu:
awk '
BEGIN { OFS=FS=":"; record=0 }
# spracovanie zaciatku bloku; nazvy premennych ukladam do attr[i]
{
if ($0 ~ /^#/) {
columns=split(substr($0,2),attr);
#print"\n"; for(i in attr) print "attr["i"] = "attr[i]; #debug1
next;
}
# spracovanie riadkov s hodnotami; hodnoty ukladam do r[record, attr[i]]
record++;
numvalues=split($0,value);
for(i=1;i<=numvalues;i++) {
r[record SUBSEP attr[i]]= value[i];
print "r ["record", "attr[i]"] = "r[record SUBSEP attr[i]]; #debug2
}
}
END{
print "-----" #debug3
for (combined in r) {
#print combined; #debug4
num=split(combined, separate, SUBSEP);
#print separate[1], separate[2], r[separate[1] SUBSEP separate[2]]; #debug5
# a co dal?
}
Vystupom z debug2 je
r [1, attr2] = value2r1 r [1, attr3] = value3r1 r [1, attr6] = value6r1 r [1, attr5] = value5r1 r [2, attr1] = value1r2 r [2, attr5] = value5r2 r [2, attr3] = value3r2 r [2, attr2] = value2r2 r [2, attr6] = value6r2 r [3, attr1] = value1r3 r [3, attr5] = value5r3 r [3, attr3] = value3r3 r [3, attr2] = value2r3 r [3, attr6] = value6r3 r [4, attr1] = value1r4 r [4, attr2] = value2r4 r [4, attr3] = value3r4 r [4, attr5] = value5r4, takze verim, ze data mam rozparsovane a ulozene v asociativnom poli v poriadku.
Problemom pre mna je, ako z tohoto vyskladat vysledny vypis. Potrebujem nejako rozumne toto pole vyiterovat, no napada ma len klasicka konstrukcia: dva zanorene fory, ktora mi tu ale fungovat nebude, kedze nemam dva pouzitelne indexy.
Nejake napady? :)
Řešení dotazu:
import sys
attrs = set()
data = []
for line in sys.stdin:
line = line.strip()
if not line:
continue
if line[0] == '#':
currentattrs = line[1:].split(':')
attrs.update(currentattrs)
else:
data.append(dict(zip(currentattrs, line.split(':'))))
keys = list(sorted(attrs))
print '#' + ':'.join(keys)
for row in data:
print ':'.join(row.get(k, '') for k in keys)
BEGIN {
OFS=FS=":"; record=0
}
# spracovanie zaciatku bloku; nazvy premennych ukladam do attr[i]
{
if ($0 ~ /^#/) {
columns = split(substr($0, 2), attr);
for(c in attr) {
# ulozim si vsechny attributy
all[attr[c]] = attr[c];
}
next;
}
# spracovanie riadkov s hodnotami; hodnoty ukladam do r[record, attr[i]]
record++;
numvalues = split($0, value);
for(i = 1; i <= numvalues; i++) {
r[record, attr[i]] = value[i];
}
}
END{
nc = asort(all, sort);
# vypis hlavicky
ORS = "";
print("#");
ORS = ":";
for (c = 1; c < nc; c++) {
print(sort[c]);
}
ORS = "\n";
print(sort[c]);
# vypis obsahu
for (l = 1; l <= record; l++) {
ORS = ":";
for (c = 1; c < nc; c++) {
print(r[l, sort[c]]);
}
ORS = "\n";
print(r[l, sort[c]]);
}
}
Vysledek:
$ awk -f s.awk < in.txt #attr1:attr2:attr3:attr4:attr5:attr6:attr7:attr8 :value2r1:value3r1::value5r1:value6r1:: value1r2:value2r2:value3r2::value5r2:value6r2:: value1r3:value2r3:value3r3::value5r3:value6r3:: value1r4:value2r4:value3r4::value5r4:::
Tiskni
Sdílej: