Red Hat řeší bezpečnostní incident, při kterém došlo k neoprávněnému přístupu do GitLab instance používané svým konzultačním týmem.
Immich byl vydán v první stabilní verzi 2.0.0 (YouTube). Jedná se o alternativu k výchozím aplikacím od Googlu a Applu pro správu fotografií a videí umožňující vlastní hosting serveru Immich. K vyzkoušení je demo. Immich je součástí balíčků open source aplikací FUTO. Zdrojové kódy jsou k dispozici na GitHubu pod licencí AGPL-3.0.
Český telekomunikační úřad vydal zprávy o vývoji cen a trhu elektronických komunikací se zaměřením na rok 2024. Jaká jsou hlavní zjištění? V roce 2024 bylo v ČR v rámci služeb přístupu k internetu v pevném místě přeneseno v průměru téměř 366 GB dat na jednu aktivní přípojku měsíčně – celkově jich tak uživateli bylo přeneseno přes 18 EB (Exabyte). Nejvyužívanějším způsobem přístupu k internetu v pevném místě zůstal v roce 2024 bezdrátový
… více »Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-10-01. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Jedná o první verzi postavenou na Debianu 13 Trixie.
Byla vydána nová verze 4.6 svobodného notačního programu MuseScore Studio (Wikipedie). Představení novinek v oznámení v diskusním fóru a také na YouTube.
Společnost DuckDuckGo stojící za stejnojmenným vyhledávačem věnovala 1,1 milionu dolarů (stejně jako loni) na podporu digitálních práv, online soukromí a lepšího internetového ekosystému. Rozdělila je mezi 29 organizací a projektů. Za 15 let rozdala 8 050 000 dolarů.
Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.17. Díky 278 přispěvatelům.
Bylo vydáno openSUSE Leap 16 (cs). Ve výchozím nastavení přichází s vypnutou 32bitovou (ia32) podporou. Uživatelům však poskytuje možnost ji ručně povolit a užívat si tak hraní her ve Steamu, který stále závisí na 32bitových knihovnách. Změnily se požadavky na hardware. Leap 16 nyní vyžaduje jako minimální úroveň architektury procesoru x86-64-v2, což obecně znamená procesory zakoupené v roce 2008 nebo později. Uživatelé se starším hardwarem mohou migrovat na Slowroll nebo Tumbleweed.
Ministerstvo průmyslu a obchodu (MPO) ve spolupráci s Národní rozvojovou investiční (NRI) připravuje nový investiční nástroj zaměřený na podporu špičkových technologií – DeepTech fond. Jeho cílem je posílit inovační ekosystém české ekonomiky, rozvíjet projekty s vysokou přidanou hodnotou, podpořit vznik nových technologických lídrů a postupně zařadit Českou republiku mezi země s nejvyspělejší technologickou základnou.
… více »Radicle byl vydán ve verzi 1.5.0 s kódovým jménem Hibiscus. Jedná se o distribuovanou alternativu k softwarům pro spolupráci jako např. GitLab.
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.
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")