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.
Kolik by jste nabidli absolventovi MFF UK na pozici programatora v C++? Taky zvazuji kombinovane magisterske studium. Co v takovem pripade? Diky za rady! :) A prosim, pouze reakce k tematu.
Update: Umim C, C++, mam rad narocnou low-level praci, mam zaklady z matiky, logiky a teoreticky informatiky - tedy umim to, co me skola naucila. Zajimaji me operacni systemy, spolehlivy systemy a efektivni reseni problemu. Jsem schopen venovat tolik casu jednomu problemu, dokud sam nejsem spokojen. Prispel jsem low-level user-space kodem do projektu HelenOS.
Update2: Zeptam se jinak: jake jsou nastupnicke platy pro programatory v C++? Nechtel jsem primo zhodnotit me, ale nejak uvest v obraz...
Update3: Tak tady mate ukazku meho kodu v C. Je to knihovna pro zpracovani GPT labelu. libgpt
Tiskni
Sdílej:
Tak ja bych takovemu cloveku nabydnul asi tak neco okolo 20 000 az 25 000 v hrube samozrejme.
*nabidnul
Umim C, C++, mam rad narocnou low-level praci, mam zaklady z matiky, logiky a teoreticky informatiky - tedy umim to, co me skola naucila. Zajimaji me operacni systemy, spolehlivy systemy a efektivni reseni problemu. Jsem schopen venovat tolik casu jednomu problemu, dokud sam nejsem spokojen. Prispel jsem low-level user-space kodem do projektu HelenOS.To je pěkný, ale kromě toho příspěvku do HelenOS - co jsi naprogramoval?
Zeptam se jinak: jake jsou nastupnicke platy pro programatory v C++? Nechtel jsem primo zhodnotit me, ale nejak uvest v obraz...Shání se trochu hůř než třeba Javisti, málo jich je opravdu dobrých. Opět to ale závisí na zkušenostech...
__attribute__((packed)) co s C nemaj nic společnýho, nebo kravin typu uint8_t, místo které bys měl použít třeba uint_least8_t (protože uint8_t na rozdíl od uint_least8_t nemusí existovat). Použití uint8_t bych bral, kdyby v daném hlavičkovém souboru bylo třeba něco jako
#ifndef UINT8_MAX #error platform not supported #endifJá vím, Jardík si vždycky musí rejpnout.
.
Jinak občas by se hodila nějaká technika.
Co se uint8_t tyce, je to definovane v Ccku v stdint.h, coz ale neni v nekterych tech starsich normach (nevim ted presne kdy se to objevilo).Problémem ale není "kde" je, ale že tam nemusí být. Je to typ, který existuje jen tehdy, existuje-li nějaký typ, který má 8 bitů. To sice většinou splňuje typ char, ale né vždy, vůbec nemusí mít 8 bitů. Navzdory tomu, typ uint_least8_t tam bude vždy. Buď bude na té "vyvolené" platformě stejný jako uint8_t, nebo na "nevyvolené" platformě jako něco většího. tj. všude tam, kde používám uint8_t, mohu bezbolestně použít uint_least8_t a jako bonus dostanu přenositelnost na platformy, kde uint8_t neexistuje. Není tedy důvod nepoužívat uint_least8_t, snad jenom lenost psát o 6 písmenek víc, k tomu pak poslouží nějakej typedef. Na "nevyvolených" platformách je taky použít nějaké bitové masky, protože bagr, ale na těch vyvolených budou neblbým kompilátorem optimalizovány, není tedy důvod je nepoužívat a udělat svůj kód portabilní.
__attribute__((packed)) a typy o vhodné bitovosti, nebo to celé číst hezky po bytech (popř. celou strukturu brát jen jako pole bytů a přistupovat ke všemu přes definované ofsety), což vede k mnohem nepřehlednějšímu (a, alespoň z mojeho pohledu, ošlivějšímu) kódu. A i pokud je rozdílná endianita, tak považuju stále jako lepší řešení strukturu bez paddingu a konverzi na nativní formát při prvním použití (skrz makra, která v případě nepotřebností zůstanou prázná) než ručně prohazovat jednotlivé byty podle ofsetu nastavených dle vzájemné endianity. Mimo toho, to, jestli je atribut opravdu podporovaný, jde zjistit už během překladu zkontrolováním velikosti testovací struktury.
char (který není zarovnávaný) a hned za něj ukazatel (který je zarovnávaný na adresu násobku čtyř nebo osmi bytů), tak pokud je padding vypnutý, bude velikost struktury (skrz sizeof()) stejná jako velikost jejích komponent (tj. 5B u 32bit, 9B u 64bit ukazatelů), pokud ne, tak bude větší (8B u 32, 16B u 64bit ukazatelů).
Jediná nevýhoda je, že to nejde použít přímo (protože preprocesor v C neumí vyčíslit sizeof()), takže pokud se nepopužije něco jako Autoconf (který si to umí zkontrolvat sám), tak se buď prvně musí otestovat velikosti struktur nějakým prográmkem (jehož přeložení a spuštění se dá jako první prerekvizitiva v Makefile), nebo si to program musí zkontrolovat při spuštění např. přes assert(). Viz příklad:
#include <stdio.h>
typedef struct
{
char c;
char *p;
} NORMAL_STRUCT;
typedef struct
{
char c;
char *p;
} __attribute__ ((packed)) PACKED_STRUCT;
int main(void)
{
char c;
char *p;
NORMAL_STRUCT normal;
PACKED_STRUCT packed;
printf("sizeof(): char %ldB, *char %ldB, normalni struktura %ldB, packovana struktura %ldB\n",
sizeof(c),sizeof(p),sizeof(normal),sizeof(packed));
if (sizeof(packed)==(sizeof(c)+sizeof(p)))
{
printf("__attribute__ ((packed)) podporovan, OK\n");
return(0);
}
else
{
printf("__attribute__ ((packed)) neni podporovan, pouzijte jiny prekladac\n");
return(1);
}
}
__attribute__ ((packed)) nebude třeba compile-time error, protože to neexistuje. Je pak sice jasné, že podporován není, problém je, že nelze třeba podmíněně na to zvolit jinou cestu, třeba přes "pomalejší" načítání prvku po prvku. Dá se to řešit nějakým autoconfem, nebo náhražkou v Makefile, jak říkáte, jenže to jsou spíše takové "hacky" z důvodu používání nestandardních "věcí". Otázkou je, jestli třeba stojí za to mít o pikosekundu rychlejší načítání ze souboru a pak o pikosekundu pomalejší přístupy k položkám struktury (třeba kvůli špatnému zarovnání), kterých může být třeba řádově více, ... no a nebo i pomalší, protože cache-miss, cokoliv. Já se prostě stavím za přístup použití co nejméně (nejlépe žádné) platformě/kompilátoru specifických věcích a držet se standardu (né však nějakých 20 let starých). Pokud to z nějakého důvodu (kromě lenosti či neznalosti) nelze, alespoň napsat komentář či něco někde do dokumentace, že tohle a támhleto protože tamto.
Ale ať si každý dělá, co chce, nakonec je to jejich volba. Já jen říkám své názory a nikomu je nevnucuju, i když to tak třeba vyzní.
printf("sizeof(): char %ldB, *char %ldB, normalni struktura %ldB, packovana struktura %ldB\n", sizeof(c),sizeof(p),sizeof(normal),sizeof(packed));Jinak pro tohle je tu formát
%zu, %ld je špatně
Použití uint8_t bych bral, kdyby v daném hlavičkovém souboru bylo třeba něco jako ...Tohle mi prijde vylozene jako pitomost. Protoze i kdyby uint8_t nebyl definovany, tak prekladac zahlasi chybu: "error: unknown type name `uint8_t'" a je zjevne, v cem je problem a clovek si to muze opravit. Zato chyba "unsupported platform" muze znamanat cokoliv a clovek musi nejdriv hledat.
Umim C, C++, mam rad narocnou low-level praci, mam zaklady z matiky, logiky a teoreticky informatiky - tedy umim to, co me skola naucila. Zajimaji me operacni systemy, spolehlivy systemy a efektivni reseni problemu. Jsem schopen venovat tolik casu jednomu problemu, dokud sam nejsem spokojen. Prispel jsem low-level user-space kodem do projektu HelenOS.Podle tohoto popisu by se pro tebe u nás našla hromada zajímavé práce. Platové podmínky bohužel sdělovat nemůžu. Zaprvé je u jiných pozic přesně neznám a zadruhé bych tak hrál proti vlastnímu zaměstnavateli. Nicméně za zkoušku nic nedáš. Taky bych ti ale doporučoval se vrhnout na magistra a dokončit ho. S prací není třeba nikam spěchat. Člověk si jí užije dalších 40 let.
zadruhé bych tak hrál proti vlastnímu zaměstnavateli.zajímavý eufemismus pro "podepsal jsem NDA, který mi to zakazuje" (popř. "podepsal jsem pracovní smlouvu s bianco šekem na NDA")