Byla vydána nová verze 4.5 (𝕏, Bluesky, Mastodon) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.
Byla vydána verze 3.0 (Mastodon) nástroje pro záznam a sdílení terminálových sezení asciinema (GitHub). S novou verzí formátu záznamu asciicast v3, podporou live streamingu a především kompletním přepisem z Pythonu do Rustu.
Canonical oznámil, že bude podporovat a distribuovat toolkit NVIDIA CUDA (Wikipedie) v Ubuntu.
Tržní hodnota americké společnosti Alphabet, která je majitelem internetového vyhledávače Google, dnes poprvé překonala hranici tří bilionů dolarů (62,1 bilionu Kč). Alphabet se připojil k malé skupině společností, které tuto hranici pokořily. Jsou mezi nimi zatím americké firmy Nvidia, Microsoft a Apple.
Spojené státy a Čína dosáhly dohody ohledně pokračování populární čínské platformy pro sdílení krátkých videí TikTok v USA. V příspěvku na síti Truth Social to dnes naznačil americký prezident Donald Trump. Dosažení rámcové dohody o TikToku vzápětí oznámil americký ministr financí Scott Bessent, který v Madridu jedná s čínskými představiteli o vzájemných obchodních vztazích mezi USA a Čínou. Bessentova slova později potvrdila také čínská strana.
MKVToolNix, tj. sada nástrojů pro práci s formátem (medialnym kontajnerom) Matroska, byl vydán ve verzi 95.0. Podpora přehrávání formátu Matroska míří do Firefoxu [Bug 1422891, Technický popis]. Přehrávání lze již testovat ve Firefoxu Nightly.
Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 211. sraz, který proběhne v pátek 19. září od 18:00 ve Studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Na srazu proběhne přednáška Jiřího Eischmanna o nové verzi prostředí GNOME 49. Nemáte-li možnost se zúčastnit osobně, přednáškový blok bude opět streamován živě na server VHSky.cz a následně i zpřístupněn záznam.
Microsoft se vyhnul pokutě od Evropské komise za zneužívání svého dominantního postavení na trhu v souvislosti s aplikací Teams. S komisí se dohodl na závazcích, které slíbil splnit. Unijní exekutivě se nelíbilo, že firma svazuje svůj nástroj pro chatování a videohovory Teams se sadou kancelářských programů Office. Microsoft nyní slíbil jasné oddělení aplikace od kancelářských nástrojů, jako jsou Word, Excel a Outlook. Na Microsoft si
… více »Samba (Wikipedie), svobodná implementace SMB a Active Directory, byla vydána ve verzi 4.23.0. Počínaje verzí Samba 4.23 jsou unixová rozšíření SMB3 ve výchozím nastavení povolena. Přidána byla podpora SMB3 přes QUIC. Nová utilita smb_prometheus_endpoint exportuje metriky ve formátu Prometheus.
Správcovský tým repozitáře F-Droid pro Android sdílí doporučení, jak řešit žádosti o odstranění nelegálního obsahu. Základem je mít nastavené formální procesy, vyhrazenou e-mailovou adresu a být transparentní. Zdůrazňují také důležitost volby jurisdikce (F-Droid je v Nizozemsku).
#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: