Jiří Eischmann se v příspěvku Fiasko jménem W Social na svém blogu věnuje evropské sociální síti W: "W Social je příkladem toho, že se problémy sociální sítí nedají řešit od exekutivního stolu. Když na začátku tohoto roku v Davosu oznámili vznik nové sociální sítě W Social, politici se mohli přetrhnout ve chvalozpěvech. Konečně evropská sociální síť a ještě s ověřením identity. … Jak se ukázalo, když v Davosu W Social oznamovali, neměli kromě
… více »Výrobce hardwarových kryptoměnových peněženek Trezor upozorňuje na bezpečnostní incident u společnosti Brevo, kterou využívá k odesílání newsletterů. Útočník na e-mailové adresy odeslal phishingový e-mail.
Clement "Clem" Lefebvre publikoval souhrn dění v Linux Mintu za srpen 2026. Aplikace XApp mají vlastní webovou stránku xapp-project.org. Představena byl čtečka EPUB s názvem Xepub a kalendář Clockenstein.
Byla vydána nová verze 3.2.6 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.
Bylo vydáno Ubuntu 24.04.5 LTS, tj. páté opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na poznámkách k vydání.
Švýcarsko testuje přechod z Microsoft 365 na FOSS, konkrétně balík openDesk (Wikipedie) od německé státní společnosti ZenDiS (Wikipedie), s cílem posílit digitální suverenitu.
V italském městě Pordenone probíhá LibreOffice Conference 2026. Zúčastnit se lze i online.
Svobodný (GPLv3) šachový engine Stockfish (Wikipedie) byl vydán ve verzi 19 (𝕏). Přehled novinek v příspěvku na blogu. Stockfish 19 je o 44 Elo silnější než Stockfish 18.
Byla vydána nová verze 1.13.0 dynamického programovacího jazyka Julia (Wikipedie) určeného zejména pro vědecké výpočty. Přehled novinek v příspěvku na blogu a v poznámkách k vydání. Aktualizována byla také dokumentace.
Organizátoři konference LinuxDays zveřejnili program letošního ročníku a spustili registraci návštěvníků. LinuxDays 2026 se uskuteční 3. a 4. října v areálu ČVUT v pražských Dejvicích, na Fakultě informačních technologií. Těšit se můžete na 70 přednášek a workshopů od 66 přednášejících. Konference bude rozdělena do pěti sálů s různou kapacitou. Vstup na LinuxDays je jako obvykle zdarma, stačí včas vyplnit registrační formulář. Opět je možné si na akci zakoupit oběd, ale je třeba to udělat předem, na místě už to nebude možné.
. Protoze co se tyka interface python<->c++ tak (muj) cffi kod + pypy byl pomalejsi nez CPython a jeho nativni API. A samotne testy, ktere jsou napsane v pythonu jsou velice light-weight, takze PyPy vlastne moc nepomuze, ale v jinych situacich (pokud chcete embedovat narocnejsi python kod) verim ze pomuze dost - na LuaJIT to vykonem samozrejme mit nebude.
Na druhou stranu, kolegovy jeho kod bezi nekolikanasobne rychleji jen diky tomu ze ho pusti pomoci pypy misto cpythonu (a navic nepotreboval embedovat, takze zadne komplikace) ... takze fakt zalezi jak kdy.
char* change_basename(char* full_path,char* new_basename) {
char* full_path_copy = strdup(full_path);
char* dirpath = dirname(full_path_copy);
size_t new_path_len = strlen(dirpath)+1+strlen(new_basename); // +1 because of "/"
char* new_path = (char*)malloc( new_path_len+1 ); // +1 because of terminating NULL
memset(new_path, 0, new_path_len+1);
strcat(new_path, dirpath);
strcat(new_path, "/");
strcat(new_path, new_basename);
free(full_path_copy);
return new_path;
}
Proč full_patch a new_basename není char const*? Žádný z nich nemodifikujete a pro full_patch stejně děláte kopii. Ten memset je totálně zbytečnej, použití strcat, když už znáte délky řetězců z předchozích volání, je pitomost. No ono i ta zbytečná kopie full_path je pitomost daná použití stupidní fce, která se nehodí.
Proč full_patch a new_basename není char const*?Protoze jsem maslo, tohle si fixnu.
Ten memset je totálně zbytečnejAno je, ale nicemu nevadi protoze se zavola behem behu programu asi dvakrat. Btw. kdybych ho jen vyhodil, tak ten c string nekonci \0. Ale chapu jak to myslis.
použití strcat, když už znáte délky řetězců z předchozích volání, je pitomost.hmmm?
No ono i ta zbytečná kopie full_path je pitomost daná použití stupidní fceCo jsem mel pouzit misto dirname? :-/
Btw. kdybych ho jen vyhodil, tak ten c string nekonci \0Stačí ti nastavit první byte na 0 pro první strcat(), ten ti nakonec dá další nulu pro další strcat(), ... ale jestli to voláš 2x, ok.
hmmm?
char* full_path_copy = strdup(full_path); char* dirpath = dirname(full_path_copy); size_t dirpath_len = strlen(dirpath); size_t new_basename_len = strlen(new_basename); size_t new_path_len = dirpath_len + new_basename_len + 1; char* new_path = (char*)malloc( new_path_len+1 ); memcpy(new_path, dirpath, dirpath_len); new_path[dirpath_len] = '/'; memcpy(new_path+dirpath_len+1, new_basename, new_basename_len); new_path[new_path_len] = 0; free(full_path_copy); return new_path;Nebo třeba použít stpcpy (POSIX only), ale memcpy je lepší, když už délku znám.
Co jsem mel pouzit misto dirname?Nějakej strchr() by mohl stačit. Problém s dirname je ten, že modifikuje řetězec a musíš tedy alokovat kopii, následně alokuješ další pro výsledný řetězec. To když je pak třeba v cyklu, tak to může být ee.
Tiskni
Sdílej: