Dlouholetý balíčkář KDE Jonathan Riddell končí. Jeho práci na KDE neon financovala firma Blue Systems, která ale končí (Clemens Tönnies, Jr., dědic jatek Tönnies Holding, ji už nebude sponzorovat), někteří vývojáři KDE se přesunuli k nově založené firmě Techpaladin. Pro Riddella se již nenašlo místo. Následovala debata o organizaci těchto firem, které zahraniční vývojáře nezaměstnávají, nýbrž najímají jako kontraktory (s příslušnými důsledky z pohledu pracovního práva).
V Amsterdamu probíhá Blender Conference 2025. Videozáznamy přednášek lze zhlédnout na YouTube. V úvodní keynote Ton Roosendaal oznámil, že k 1. lednu 2026 skončí jako chairman a CEO Blender Foundation. Tyto role převezme současný COO Blender Foundation Francesco Siddi.
The Document Foundation, organizace zastřešující projekt LibreOffice a další aktivity, zveřejnila výroční zprávu za rok 2024.
Byla vydána nová stabilní verze 7.6 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 140. Přehled novinek i s náhledy v příspěvku na blogu.
Byla vydána verze 1.90.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
GNUnet (Wikipedie) byl vydán v nové major verzi 0.25.0. Jedná se o framework pro decentralizované peer-to-peer síťování, na kterém je postavena řada aplikací.
Byla vydána nová major verze 7.0 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Nově je postavena je na Debianu 13 (Trixie) a GNOME 48 (Bengaluru). Další novinky v příslušném seznamu.
Společnost Meta na dvoudenní konferenci Meta Connect 2025 představuje své novinky. První den byly představeny nové AI brýle: Ray-Ban Meta (Gen 2), sportovní Oakley Meta Vanguard a především Meta Ray-Ban Display s integrovaným displejem a EMG náramkem pro ovládání.
Po půl roce vývoje od vydání verze 48 bylo vydáno GNOME 49 s kódovým názvem Brescia (Mastodon). S přehrávačem videí Showtime místo Totemu a prohlížečem dokumentů Papers místo Evince. Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.
Open source softwarový stack ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán ve verzi 7.0.0. Přidána byla podpora AMD Instinct MI355X a MI350X.
Už mě to deptá. Další úkol z C++ nejde tak jak by měl.
Úkolem je realizovat program, který provede analýzu obsahu 2D matice celých čísel. Předpokládáme, že matice vznikla jako kartézský součin dvou vektorů celých čísel. Program pro zadanou matici určí tyto vektory. Vstupem programu jsou celá čísla n a m, n představuje počet řádek zadávané matice a m počet sloupců. Obě čísla jsou celá, větší nebo rovná jedné. Po zadání velikosti matice následuje n x m celých kladných čísel, která udávají vlastní obsah matice (po řádcích zadaný). Výstupem programu jsou dva vektory a a b. Vektor a má n prvků (řádky), vektor b má m prvků (sloupce). Nalezené vektory splňují následující rovnosti: a = ( a1, a2, ..., an ) b = ( b1, b2, ..., bm ) mat[i][j] = a[i] * b[j] Pro zadanou matici takový rozklad nemusí existovat. V tom případě program tuto skutečnost oznámí (viz vzor v ukázce). Protože hledání rozkladu může být časové náročné, je úloha zjednodušena tím, že: * Čísla obsažená v matici i ve vektorech a a b jsou pouze celá, kladná. * Prvek matice mat[0][0] je číslo, které vzniklo součinem dvou prvočísel. Program detekuje chybu a oznámí ji na svém standardním výstupu, pokud: * Velikost matice je zadaná nesmyslná či nesprávná. * Prvky obsažené v matici nejsou zadané jako celá kladná čísla. * Prvek matice [0][0] není číslo, které by vzniklo jako součin dvou prvočísel. Pokud vstup neodpovídá těmto podmínkám, program zobrazí chybové hlášení (viz ukázka). Chybové hlášení je oznámeno okamžitě jak je detekováno. Program nesmí používat datové struktury z STL (vector, list, ...). Jejich použití povede k chybě při kompilaci. Program je v testovacím prostředí spouštěn s omezením času a paměti. Velikost paměti s rezervou postačuje na uložení analyzované matice a výsledných vektorů v binární podobě. Celková doba běhu programu je omezena 5 sekundami pro matice obsahující řádově milióny prvků. (Referenční řešení potřebuje na výpočet čas maximálně 0.5 sec). ------ Zadejte pocet radek a sloupcu: 3 2 Zadejte prvky matice: 33 24 77 56 165 120 Nalezene reseni: a = (3, 7, 15) b = (11, 8) Zadejte pocet radek a sloupcu: 3 4 Zadejte prvky matice: 49 56 63 70 7 8 9 10 42 48 54 60 Nalezene reseni: a = (7, 1, 6) b = (7, 8, 9, 10) Zadejte pocet radek a sloupcu: 2 3 Zadejte prvky matice: 15 30 40 21 42 56 Nalezene reseni: a = (5, 7) b = (3, 6, 8) Zadejte pocet radek a sloupcu: 2 3 Zadejte prvky matice: 15 30 40 21 41 56 Reseni neexistuje. Zadejte pocet radek a sloupcu: 2 3 Zadejte prvky matice: 15 30 40 21 41 asdf Nespravny vstup. Zadejte pocet radek a sloupcu: 3 2 Zadejte prvky matice: 56 63 64 72 72 81 Nespravny vstup.
Tak jsem něco spatlal, tady mi to funguje. Zkusil jsem si to na matici 1000x1500 a fungovalo to. Jenže školnímu progtestu se to nelíbí a nadává mi, že tam mám 3 neuvolněné bloky paměti. Přitom jsem na to hodil dmalloc a ten mi ukazuje, že to uvolňené je. 100x jsem si prošel zdroják a fakt netuším, kde tu paměť neuvolňuju. Asi jsem fakt krypl, kterej nic neumí. Nechce na to někdo kouknout? Zdroják hodím jako přílohu do prvního komentáře. Hezky jsem to okomentoval, aby se to dalo číst.
Jak jsem řekl, jsem dement. Už je to vyřešené a dík patří uživateli "mich".
Tiskni
Sdílej:
Já jsem dal také dobré. Za obdiv, že rozumí tomu zadání. Já vůbec netuším, o co jde.
A to zadání jsi pochopil?
Já teda objektivně musím říct, že má zadání jsou mnohem srozumitelnější.
valgrind --leak-check=full
nepomaha?
==20149== Memcheck, a memory error detector. ==20149== Copyright (C) 2002-2008, and GNU GPL'd, by Julian Seward et al. ==20149== Using LibVEX rev 1884, a library for dynamic binary translation. ==20149== Copyright (C) 2004-2008, and GNU GPL'd, by OpenWorks LLP. ==20149== Using valgrind-3.4.1-Debian, a dynamic binary instrumentation framework. ==20149== Copyright (C) 2000-2008, and GNU GPL'd, by Julian Seward et al. ==20149== For more details, rerun with: -v ==20149== ==20149== ==20149== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 8 from 1) ==20149== malloc/free: in use at exit: 0 bytes in 0 blocks. ==20149== malloc/free: 1,387 allocs, 1,387 frees, 76,062 bytes allocated. ==20149== For counts of detected errors, rerun with: -v ==20149== All heap blocks were freed -- no leaks are possible.Takže to je snad bez memory leaků ... maj to rozbitý.
==20385== ==20385== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 8 from 1) ==20385== malloc/free: in use at exit: 0 bytes in 0 blocks. ==20385== malloc/free: 4 allocs, 4 frees, 6,010,008 bytes allocated. ==20385== For counts of detected errors, rerun with: -v ==20385== All heap blocks were freed -- no leaks are possible.Nechápu to suppressed: 8 from 1
if (!najdiPrvniPrvky(matice, radku, sloupcu, a1, b1)) { // První prvek není násobkem 2 prvočísel cout << "Nespravny vstup." << endl; return 1; }tady podle mě neuvolňuješ
Toliko k otázce zda je lepší občas neoptimálně fungující gc a nebo občas chybující programátor . Smutné je že já to v tom kusu stále nevidím :(.
delete []matice
. S tím GC jste mě teď utřel jestli není lepší držet se zásady "každá metoda má jenom jeden 'return point' "
Počkej! Ty tomu tam nahoře vážně říkáš C++?
Třeba, namátkou:
malloc()
není operátor delete
, ale funcke free()
.struct
a class
je v C++ to samý, ale podle mě je to španě. Má to být class
.#undefine
, který nemá co oddefinovat.Toš tak. Podle mě je to odfláknutý.
Ale já vím o C++ hovno a jsem za to rád.
1) Opakem funcke malloc() není operátor delete, ale funcke free()Na jakém řádku říkám opak? Nějak to nemůžu najít.
BitArray je třída, nikoli struktura. Ano, struct a class je v C++ to samý, ale podle mě je to španě. Má to být classstruct a class v C++ není to samý. struct má totiž všechno public a třída private, pokud se neurčí jinak.
Názvy metod třídy jsou zavádějící. Ano, podle Javí notace.Jaké javí notace? Názvy metod si snad můžu vybrat dobrovolně a mně to takhle vyhovuje a psal jsem je takhle dřív, než do nás ve škole javu začli hrotit. Nejprve jsem tedy začínal velkými písmeny na začátku, ale shift moc zdržuje
Pak je tam nějaký #undefine, který nemá co oddefinovat.Je tam
#undef
a pokud kompilátoru předáte argument na definování GENERATOR (gcc -DGENERATOR), tak ho to oddefinuje.
Nemáte na mysli maticový součin?