Byla vydána nová verze 25.12.30 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
Společnost Valve publikovala přehled To nej roku 2025 ve službě Steam aneb ohlédnutí za nejprodávanějšími, nejhranějšími a dalšími nej hrami roku 2025.
Byly publikovány výsledky průzkumu mezi uživateli Blenderu uskutečněného v říjnu a listopadu 2025. Zúčastnilo se více než 5000 uživatelů.
V dokumentově orientované databázi MongoDB byla nalezena a v upstreamu již opravena kritická bezpečností chyba CVE-2025-14847 aneb MongoBleed.
Při úklidu na Utažské univerzitě se ve skladovacích prostorách náhodou podařilo nalézt magnetickou pásku s kopií Unixu V4. Páska byla zaslána do počítačového muzea, kde se z pásky úspěšně podařilo extrahovat data a Unix spustit. Je to patrně jediný známý dochovaný exemplář tohoto 52 let starého Unixu, prvního vůbec programovaného v jazyce C.
FFmpeg nechal kvůli porušení autorských práv odstranit z GitHubu jeden z repozitářů patřících čínské technologické firmě Rockchip. Důvodem bylo porušení LGPL ze strany Rockchipu. Rockchip byl FFmpegem na porušování LGPL upozorněn již téměř před dvěma roky.
K dispozici je nový CLI nástroj witr sloužící k analýze běžících procesů. Název je zkratkou slov why-is-this-running, 'proč tohle běží'. Klade si za cíl v 'jediném, lidsky čitelném, výstupu vysvětlit odkud daný spuštěný proces pochází, jak byl spuštěn a jaký řetězec systémů je zodpovědný za to, že tento proces právě teď běží'. Witr je napsán v jazyce Go.
Yazi je správce souborů běžící v terminálu. Napsán je v programovacím jazyce Rust. Podporuje asynchronní I/O operace. Vydán byl v nové verzi 25.12.29. Instalovat jej lze také ze Snapcraftu.
Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.
Byl představen nový Xserver Phoenix, kompletně od nuly vyvíjený v programovacím jazyce Zig. Projekt Phoenix si klade za cíl být moderní alternativou k X.Org serveru.
#include <iostream>
#include <vector>
#include <algorithm>
#include "Rational"
using namespace std;
int main() {
vector<XMath::Rational<int> > cisla;
vector<XMath::Rational<int> >::const_iterator ci;
cisla.push_back(XMath::Rational<int>(2, 3));
cisla.push_back(XMath::Rational<int>(3, 4));
cisla.push_back(XMath::Rational<int>(1, 2));
cisla.push_back(XMath::Rational<int>(4, 5));
cout << "Čísla na začátku" << endl;
for (ci = cisla.begin(); ci != cisla.end(); ++ci) {
cout << *ci << endl;
}
sort(cisla.begin(), cisla.end());
cout << "Čísla na konci" << endl;
for (ci = cisla.begin(); ci != cisla.end(); ++ci) {
cout << *ci << endl;
}
return 0;
}
Sestupné třídění obstará funkce sort. Stačí zadat iterátory ukazující na začátek a konec seznamu, třídění se potom provede jakoby zázračně samo. Pokud nejsou použity vestavěné číselné typy, je potřeba napsat přetížené operátory porovnání.
Pro přeložení jsou potřeba dva hlavičkové soubory se šablonami, které jsou k dispozici tady.
Třídit lze i jinak – man qsort. Často je zbytečné se namáhat s psaním třídicího kódu a postačují funkce z knihovny C nebo STL.
/**
* 1. Dedit od konkretnich typu (std::vector<FileInfo*>) se moc nedoporucuje.
* Akorat tam podivne redeklarujete stadardni metody - docela bych chtel
* videt jejich definice.
*
* 2. Pokud chcete kontrolu pod g++/libstdc++ pouzijte
*
* g++ -D _GLIBCXX_CONCEPT_CHECKS -D _GLIBCXX_DEBUG -o file.o file.cc
*
* a nemusite sasit s at. Plus vam to ohlida spoustu dalsich veci.
*
* 3. Nasledujici kod jsem netestoval.
*
*/
#include <vector>
#include <algorithm>
#include "FileInfo.h"
bool lt_file_info(const FileInfo* f1, const FileInfo* f2)
{
if( f1->isDots() != f2->isDots() )
return f1->isDots() < f2->isDots();
if( f1->isDir() != f2->isDir() )
return f1->isDir() < f2->isDir();
// zjistete si, co tahle funkce vraci a podle toho se
// zaridte (a co prebira - podle deklarace, kterou jste
// uvedl, gchar, ale getName vraci std::string)
return g_utf8_collate(f1->getName(), f2->getName());
}
void test()
{
std::vector<FileInfo*> file_list;
std::sort(file_list.begin(), file_list.end(), lt_file_info);
}
qsort ze stdlib.h se taky použít nedá. Asi si budu muset napsat nejakej ten quicksort sám.
tím ukazatelem na fci by nebyl problém, deklaroval bych jí jako static, problém by byl, že bych pak neměl ukazatel this a pak bych stejně nezjistil, dle čeho řadit.Omlouvám se že vám do toho lezu jako člověk co se s C++ rozloučil dávno před STL... ale podle dokumentace ten třetí parametr metody sort není funkce, ale functor (tedy objekt)! Tedy stačí udělat objekt jako potomek
binary_function, kterů bude třídit podle toho co je potřeba.
Něco je o tom psáno zde, i s příklady.
Pro jine pripady (razeni podle data) samozrejme nadefinujete jinou porovnavaci funkci a budete volat sort s jinou porovnavaci funkci. Taky muzete udelat malou hirearchii trid s virtualnim 'operator<'. Jak je ctena libost. Ale nechapu, proc si chcete vyrabet svuj vlastni sort - tim si akorat pridelate praci a nadefinovani vsech porovnani se stejne nevyhnete.
Tiskni
Sdílej: