Představen byl notebook TUXEDO InfinityBook Pro 15 Gen10 s procesorem AMD Ryzen AI 300, integrovanou grafikou AMD Radeon 800M, 15,3 palcovým displejem s rozlišením 2560x1600 pixelů. V konfiguraci si lze vybrat až 128 GB RAM. Koupit jej lze s nainstalovaným TUXEDO OS nebo Ubuntu 24.04 LTS.
Po půl roce od vydání verze 2.41 byla vydána nová verze 2.42 knihovny glibc (GNU C Library). Přehled novinek v poznámkách k vydání a v souboru NEWS. Vypíchnout lze například podporu SFrame. Opraveny jsou zranitelnosti CVE-2025-0395, CVE-2025-5702, CVE-2025-5745 a CVE-2025-8058.
Byla vydána nová verze 9.15 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.
Společnost CORSAIR podporuje svůj systém iCUE LINK pouze ve Windows a macOS. Jak jej ovládat v Linuxu? OpenLinkHub (GitHub) je open source linuxové rozhraní k iCUE LINK. Z webového rozhraní na adrese http://localhost:27003 lze ovládat RGB osvětlení, rychlost ventilátorů, nastavovat klávesnice, myši, headsety…
Ve funkci koordinátora k bitcoinové kauze skončil bývalý ústavní soudce David Uhlíř. Informaci, kterou zveřejnil Deník N, potvrdila Radiožurnálu ministryně spravedlnosti Eva Decriox (ODS). Uvedla, že odchod byl po vzájemné dohodě. „Jeho mise je ukončená, auditní procesy se už povedlo nastavit,“ řekla. Teď má podle ministryně další kroky podniknout policie a státní zastupitelství. Koordinátorem jmenovala ministryně Uhlíře 19. června.
Byla vydána nová verze 25.07.26 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Nejnovější Shotcut je již vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
Po 9 týdnech vývoje od vydání Linuxu 6.15 oznámil Linus Torvalds vydání Linuxu 6.16. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna a Linux Kernel Newbies.
Americký výrobce čipů Intel propustí 15 procent zaměstnanců (en), do konce roku by jich v podniku mělo pracovat zhruba 75.000. Firma se potýká s výrobními problémy a opouští také miliardový plán na výstavbu továrny v Německu a Polsku.
MDN (Wikipedie), dnes MDN Web Docs, původně Mozilla Developer Network, slaví 20 let. V říjnu 2004 byl ukončen provoz serveru Netscape DevEdge, který byl hlavním zdrojem dokumentace k webovým prohlížečům Netscape a k webovým technologiím obecně. Mozille se po jednáních s AOL povedlo dokumenty z Netscape DevEdge zachránit a 23. července 2005 byl spuštěn MDC (Mozilla Developer Center). Ten byl v roce 2010 přejmenován na MDN.
Wayback byl vydán ve verzi 0.1. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.
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")