Byla vydána nová verze 5.13 svobodného multiplatformního softwaru pro konverzi a zpracování digitálních fotografií primárně ve formátů RAW RawTherapee (Wikipedie). Vedle zdrojových kódů je k dispozici také balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.
Jean-Baptiste Kempf na svém blogu představil novou verzi 9.0 "Lei" kolekce svobodného softwaru umožňujícího nahrávání, konverzi a streamovaní digitálního zvuku a obrazu FFmpeg (Wikipedie).
Richard Hughes oznámil, že službu Linux Vendor Firmware Service (LVFS) umožňující aktualizovat firmware zařízení na počítačích s Linuxem, nově sponzoruje také společnost NVIDIA.
Edvard Rejthar na blogu zaměstnanců CZ.NIC představil svou aplikaci SlideRshow (GitHub). Funguje jako prohlížeč fotek, ale i jako jejich organizér a prezentátor. Neinstaluje se, běží přímo v prohlížeči. Bez serveru. Offline.
Kermit, tj. protokol pro přenos souborů, vznikl před 45 lety. Při této příležitosti byla po 15 letech od vydání poslední stabilní verze 9.0.302 vydána nová stabilní verze 11 implementace C-Kermit. S podporou IPv6.
První verze konverzního nástroje Pandoc byla vydána před 20 lety. Jeho autor John MacFarlane při tomto výročí rekapituluje jednotlivé etapy vývoje a přidávání nových funkcí – rozšíření nejen Markdownu a podporu mnoha dalších formátů.
Srpen přinesl nejen další spalující vedro, ale také Virtuální Bastlírnu s neméně žhavými novinkami. Využijte tedy předpovědi na deštivý čtvrteční večer a od 20:00 se připojte online k tomuto neformálnímu setkání kutilů, techniků a vědců, kde se strahovskými bastlíři proberete nejzajímavější věci, na které jste narazili za poslední měsíc. Pokud jde o novinky, řeč zcela jistě přijde na systém INDX pro tiskárny Průša, který na konci
… více »Firma T-Mobile blokovala „dezinformační web“ AC24 bez toho, aniž by k tomu měla závazný pokyn orgánů veřejné moci. Píše to ve svém rozsudku Městský soud v Praze, který po čtyřech letech uzavřel kauzu blokace zmíněného webu. Operátor musí uhradit škodu ve výši 35 tisíc korun. Advokát společnosti T-Mobile se snažil i u odvolacího senátu argumentovat tím, že firma jednala v dobré víře, když na stránky omezila přístup poté, co ji k tomu vyzvalo
… více »Padla obžaloba v bitcoinové kauze. Státní zástupkyně chce pro Blažka 6,5 roku vězení, pro Titze 8 let.
Z aktuálních globálních statistik společnosti Statcounter: na desktopu má Linux celosvětově podíl 7,53 % (USA 11,92 %, Česko 4,31 %, Slovensko 4,36 %) a Firefox celosvětově podíl 6,51 % (USA 10,86 %, Česko 11,07 %, Slovensko 13,61 %).
const char XYFileID[7] = "NiecoXY"; // toto mi prekladac nedovoli
const char XYFileID[8] = "NiecoXY"; // musim definovat totoDalej chcem nadefinovat hlavicku binarneho suboru takto:
struct XYFileHeader {
const char Id[7] = XYFileID; // rovnaky problem ako v prvom pripade
float Width;
float Height;
float DpiX;
float DpiY;
char Codec[10];
};
Ale opat je tam problem s ukoncovacim znakom. Prekladac C++ mi ho tam chce za kazdu cenu vnutit. Takze musim to riesit takto:
const char XYFileID[8] = "NiecoXY";
struct XYFileHeader {
char Id[7];
float Width;
float Height;
float DpiX;
float DpiY;
char Codec[10];
XYFileHeader() {
strcpy(Id, XYFileID);
}
};
co prinasa 2 problemy: Id vramci struktury neni const takze sa da prepisat. Musim tie znaky kopirovat az v konstruktore cez strcpy co samozrejme neni tak samovysvetlujuce. Poznate nejaky lepsi sposob? Ale prosim prehladny. Toto za prehladne nepovazujem:
const char XYImageID[7] = { 'N', 'i', 'e', 'c', 'o','X', 'Y' };
Ta struktura je jako hlavička formátu prakticky nepoužitelná* - to Id tam bude mít stejně 1B padding. A rozhodně bych nedoporučoval se to snažit "opravit" pomocí pragma pack nebo podobných rozšíření. Většina formátů ten magic definuje jako nějaký integer, i když ta hodnota je "textová".
* pro usecase "připlácnout strukturu na paměť". Korektně číst po bajtech lze samozřejmě libovolnou hlavičku, ale veškeré příčetné hlavičky jsou navrhovány jako zarovnané.
lepší způsob?? nóóóó použít objekt a všecko v něm poschovávat protože c++ :O ;D
#define HEADER_FILE_ID ({'N', 'i', 'e', 'c', 'o','X', 'Y'})
a v kode budes mat:
const char Id[7] = HEADER_FILE_ID;Ak Ti ide o funkcnost, tak si daj vygenerov hpp subor s definicou tejto strukturou s normalnej nam ludmi definovanom variante (cez make, Makefile a pod.). Napr.:
#!/bin/bash
ID="NiecoXY"
ID_STRUCT=`for a in 0 1 2 3 4 5 6; do echo -n "'${ID:a:1}',"; done;`
ID_STRUCT=${ID_STRUCT:0:-1}
echo $ID_STRUCT
FILE *fp = fopen ("necoNeco", "wb");
if (fp != nullptr) {
fwrite (tvojeStruktura, sizeof (tvojeStruktura), 1, fp);
fclose( fp);
}
A nebo musis jednotlive polozky naformatovat jak uznas za vhodne:
fwrite (tvojeStruktura.polozka1, sizeof (tvojeStruktura.polozka1), 1, fp);
nebo:
fwrite (tvojeStruktura.polozka1, 7, 1, fp);
fwrite (tvojeStruktura.polozka2, sizeof (tvojeStruktura.polozka2), 1, fp);
fwrite (tvojeStruktura.polozka3, sizeof (tvojeStruktura.polozka3), 1, fp);
Tiskni
Sdílej: