Byly publikovány informace (technické detaily) o bezpečnostním problému Snapu. Jedná se o CVE-2026-3888. Neprivilegovaný lokální uživatel může s využitím snap-confine a systemd-tmpfiles získat práva roota.
Nightingale je open-source karaoke aplikace, která z jakékoliv písničky lokálního alba (včetně videí) dokáže oddělit vokály, získat text a vše přehrát se synchronizací na úrovni jednotlivých slov a hodnocením intonace. Pro separaci vokálů využívá UVR Karaoke model s Demucs od Mety, texty písní stahuje z lrclib.net (LRCLIB), případně extrahuje pomocí whisperX, který rovněž využívá k načasování slov. V případě audiosouborů aplikace na
… více »Po půl roce vývoje od vydání verze 49 bylo vydáno GNOME 50 s kódovým názvem Tokyo (Mastodon). Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.
Článek na stránkách Fedora Magazinu informuje o vydání Fedora Asahi Remixu 43, tj. linuxové distribuce pro Apple Silicon vycházející z Fedora Linuxu 43.
Byl zveřejněn program konference Installfest 2026. Konference proběhne o víkendu 28. a 29. března v Praze na Karlově náměstí 13. Vstup zdarma.
Byla vydána Java 26 / JDK 26. Nových vlastností (JEP - JDK Enhancement Proposal) je 10. Odstraněno bylo Applet API.
Byla vydána nová verze 260 správce systému a služeb systemd (Wikipedie, GitHub). Odstraněna byla podpora skriptů System V. Aktualizovány byly závislosti. Minimální verze Linuxu z 5.4 na 5.10, OpenSSL z 1.1.0 na 3.0.0, Pythonu z 3.7.0 na 3.9.0…
Byla vydána nová verze 5.1 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v poznámkách k vydání. Videopředstavení na YouTube.
Bylo oznámeno vydání nové verze 8.1 "Hoare" kolekce svobodného softwaru umožňujícího nahrávání, konverzi a streamovaní digitálního zvuku a obrazu FFmpeg (Wikipedie). Doprovodný příspěvek na blogu Khronosu rozebírá kódování a dekódování videa pomocí Vulkan Compute Shaders v FFmpeg.
Byl představen open-source a open-hardware prototyp nízkonákladového raketometu kategorie MANPADS, který byl sestaven z běžně dostupné elektroniky a komponent vytištěných na 3D tiskárně. Raketa využívá skládací stabilizační křidélka a canardovou stabilizaci aktivně řízenou palubním letovým počítačem ESP32, vybaveným inerciální měřicí jednotkou MPU6050 (gyroskop a akcelerometr). Přenosné odpalovací zařízení obsahuje GPS,
… více »
#define BUFSIZE 100
#define PORT 5555
int main(int argc, char *argv[])
{
hostent *host; // Vzdálený počítač;
sockaddr_in serverSock; // Vzdálený "konec potrubí"
int mySocket; // Soket
char buf_in[BUFSIZE]; // Přijímací buffer
char buf_out[BUFSIZE]; // Odesilaci buffer
fd_set inputs, testfds;
struct timeval timeout;
// Zjistíme info o vzdáleném počítači
if ((host = gethostbyname(argv[1])) == NULL)
{
printf("Špatná adresa\n");
return -1;
}
// Vytvoříme soket
if ((mySocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1)
{
printf("Nelze vytvořit soket\n");
return -1;
}
// Zaplníme strukturu sockaddr_in
// 1) Rodina protokolů
serverSock.sin_family = AF_INET;
// 2) Číslo portu, ke kterému se připojíme
serverSock.sin_port = htons(PORT);
// 3) Nastavení IP adresy, ke které se připojíme
memcpy(&(serverSock.sin_addr), host->h_addr, host->h_length);
// Připojení soketu
if (connect(mySocket, (sockaddr *)&serverSock, sizeof(serverSock)) == -1)
{
printf("Nelze navázat spojení\n");
return -1;
}
// Odeslání dat
while(1){
fgets(buf_out, BUFSIZE, stdin);
buf_out[strlen(buf_out)-1] = '\0';//odstraneni kone radky
if(strcmp(buf_out,"LOGOUT")!=0){
if (send(mySocket, buf_out, strlen(buf_out), 0) == -1)
{
printf("Problém s odesláním dat\n");
return -1;
}
// Příjem dat
//if((size = recv(mySocket, buf_in, BUFSIZE, 0)) != -1)
//{
// printf("Přijato: [%s]\n");
//}
}
else{
// odhlasime spojeni
close(mySocket);
exit(0);
}
}
printf("Odeslano\n");
return 0;
}
#define BUFSIZE 100
#define PORT 5555
int main(int argc, char *argv[])
{
hostent *host; // Vzdálený počítač;
sockaddr_in serverSock; // Vzdálený "konec potrubí"
int mySocket; // Soket
char buf_in[BUFSIZE]; // Přijímací buffer
char buf_out[BUFSIZE]; // Odesilaci buffer
fd_set read, write;
FD_ZERO(&read);
FD_ZERO(&write);
// Zjistíme info o vzdáleném počítači
if ((host = gethostbyname(argv[1])) == NULL)
{
printf("Špatná adresa\n");
return -1;
}
// Vytvoříme soket
if ((mySocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1)
{
printf("Nelze vytvořit soket\n");
return -1;
}
else{
// Zaplnění množiny sokety
FD_SET(mySocket, &read);
FD_SET(STDIN_FILENO, &read);
}
// Zaplníme strukturu sockaddr_in
// 1) Rodina protokolů
serverSock.sin_family = AF_INET;
// 2) Číslo portu, ke kterému se připojíme
serverSock.sin_port = htons(PORT);
// 3) Nastavení IP adresy, ke které se připojíme
memcpy(&(serverSock.sin_addr), host->h_addr, host->h_length);
// Připojení soketu
if (connect(mySocket, (sockaddr *)&serverSock, sizeof(serverSock)) == -1)
{
printf("Nelze navázat spojení\n");
return -1;
}
// Zavolám select (V Linuxu musím mít nastavenou proměnnou max.)
int ret = select(2, &read, NULL, NULL, NULL);
while(1){
if (ret == -1){
perror("select()");
}
else if(ret){
// odeslam data
if(FD_ISSET(STDIN_FILENO, &read)){
fgets(buf_out, BUFSIZE, stdin);
buf_out[strlen(buf_out)-1] = '\0';//odstraneni kone radky
if(strcmp(buf_out,"LOGOUT")!=0){
if (send(mySocket, buf_out, strlen(buf_out), 0) == -1){
return -1;
}
}
else{
// odhlasime spojeni
close(mySocket);
exit(0);
}
}
//Příjem dat
else if(FD_ISSET(mySocket, &read)){
if(recv(mySocket, buf_in, BUFSIZE, 0) != -1) {
printf("Přijato: [%s]\n");
}
}
}
}
printf("Odeslano\n");
return 0;
}
// Zavolám select (V Linuxu musím mít nastavenou proměnnou max.)Tak si ji nastav... man select, číslo nejvyššího fd plus jedna.
select(STDIN_FILENO>mySocket ? STDIN_FILENO+1 : MySocket+1, ...jinak stdin je nula, takže to bude MySocket+1
... select(FD_SETSIZE, ...
int main(int argc, char *argv[])
{
hostent *host; // Vzdálený počítač;
sockaddr_in serverSock; // Vzdálený "konec potrubí"
int mySocket; // Soket
char buf_in[BUFSIZE]; // Přijímací buffer
char buf_out[BUFSIZE]; // Odesilaci buffer
fd_set read, write;
FD_ZERO(&read);
FD_ZERO(&write);
// Zjistíme info o vzdáleném počítači
if ((host = gethostbyname(argv[1])) == NULL)
{
printf("Špatná adresa\n");
return -1;
}
// Vytvoříme soket
if ((mySocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1)
{
printf("Nelze vytvořit soket\n");
return -1;
}
else{
// Zaplnění množiny sokety
FD_SET(mySocket, &read);
FD_SET(STDIN_FILENO, &read);
}
// Zaplníme strukturu sockaddr_in
// 1) Rodina protokolů
serverSock.sin_family = AF_INET;
// 2) Číslo portu, ke kterému se připojíme
serverSock.sin_port = htons(PORT);
// 3) Nastavení IP adresy, ke které se připojíme
memcpy(&(serverSock.sin_addr), host->h_addr, host->h_length);
// Připojení soketu
if (connect(mySocket, (sockaddr *)&serverSock, sizeof(serverSock)) == -1)
{
printf("Nelze navázat spojení\n");
return -1;
}
while(1){
// Zavolám select (V Linuxu musím mít nastavenou proměnnou max.)
int ret = select(STDIN_FILENO > mySocket ? STDIN_FILENO+1 : mySocket+1, &read, NULL, NULL, NULL);
if (ret == -1){
perror("select()");
}
else if(ret){
// odeslam data
if(FD_ISSET(STDIN_FILENO, &read)){
fgets(buf_out, BUFSIZE, stdin);
buf_out[strlen(buf_out)-1] = '\0';//odstraneni kone radky
if(strcmp(buf_out,"LOGOUT")!=0){
if (send(mySocket, buf_out, strlen(buf_out), 0) == -1){
return -1;
}
}
else{
// odhlasime spojeni
close(mySocket);
exit(0);
}
}
//Příjem dat
else if(FD_ISSET(mySocket, &read)){
if(recv(mySocket, buf_in, BUFSIZE, 0) != -1) {
printf("Přijato: [%s]\n", buf_in);
}
}
}
}
printf("Odeslano\n");
return 0;
}
int main(int argc, char *argv[])
{
hostent *host; // Vzdálený počítač;
sockaddr_in serverSock; // Vzdálený "konec potrubí"
int mySocket; // Soket
char buf_in[BUFSIZE]; // Přijímací buffer
char buf_out[BUFSIZE]; // Odesilaci buffer
fd_set read, write;
FD_ZERO(&read);
FD_ZERO(&write);
// Zjistíme info o vzdáleném počítači
if ((host = gethostbyname(argv[1])) == NULL)
{
printf("Špatná adresa\n");
return -1;
}
// Vytvoříme soket
if ((mySocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1)
{
printf("Nelze vytvořit soket\n");
return -1;
}
else{
// Zaplnění množiny sokety
FD_SET(mySocket, &read);
FD_SET(STDIN_FILENO, &read);
}
// Zaplníme strukturu sockaddr_in
// 1) Rodina protokolů
serverSock.sin_family = AF_INET;
// 2) Číslo portu, ke kterému se připojíme
serverSock.sin_port = htons(PORT);
// 3) Nastavení IP adresy, ke které se připojíme
memcpy(&(serverSock.sin_addr), host->h_addr, host->h_length);
// Připojení soketu
if (connect(mySocket, (sockaddr *)&serverSock, sizeof(serverSock)) == -1)
{
printf("Nelze navázat spojení\n");
return -1;
}
while(1){
// Zavolám select (V Linuxu musím mít nastavenou proměnnou max.)
int ret = select(STDIN_FILENO > mySocket ? STDIN_FILENO+1 : mySocket+1, &read, NULL, NULL, NULL);
if (ret == -1){
perror("select()");
}
else if(ret){
// odeslam data
if(FD_ISSET(STDIN_FILENO, &read)){
fgets(buf_out, BUFSIZE, stdin);
buf_out[strlen(buf_out)-1] = '\0';//odstraneni kone radky
if(strcmp(buf_out,"LOGOUT")!=0){
if (send(mySocket, buf_out, strlen(buf_out), 0) == -1){
return -1;
}
}
else{
// odhlasime spojeni
close(mySocket);
exit(0);
}
}
//Příjem dat
else if(FD_ISSET(mySocket, &read)){
if(recv(mySocket, buf_in, BUFSIZE, 0) != -1) {
printf("Přijato: [%s]\n", buf_in);
}
}
}
}
printf("Odeslano\n");
return 0;
}
Tiskni
Sdílej: