Byla vydána nová verze 15.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
Vývojáři Ubuntu představili projekt Myna, tj. iniciativu zaměřenou na přidání funkce převodu řeči na text do prostředí desktopu Ubuntu. Dle plánu již v Ubuntu 26.10.
Společnost Epic Games představila nový open source systém pro správu verzí Lore navržený pro "bezprecedentní škálovatelnost dat i týmů a optimalizovaný pro projekty, včetně her a zábavy, které kombinují kód s velkými binárními soubory, aby uspokojil potřeby vývojářů i umělců". Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Úřad pro ochranu hospodářské soutěže (ÚOHS) provedl v říjnu 2024 místní šetření u společnosti Seznam.cz. Úřad prověřoval důvodné podezření na možné protisoutěžní jednání, konkrétně zneužití dominantního postavení. Krajský soud v Brně v květnu 2025 konstatoval, že toto šetření bylo nezákonné. Nejvyšší správní soud (NSS) včera rozhodl, že šetření bylo provedeno v souladu se zákonem. Krajský soud bude muset případ posoudit znovu.
Byl představen skládací telefon Commodore Callback 8020. Ani hloupý, ani chytrý. Pro fanoušky Commodore a digitálního minimalismu. Bez webového prohlížeče a sociálních sítí. S předinstalovaným WhatsAppem. S operačním systémem Sailfish OS.
V OpenBSD byla objevena 27 let stará chyba v ppp pomocí níž lze vzdáleně obejít autentifikaci. Chyba byla nahlášena 12.6. a 14.6. byla opravena. Bližší info v článku A 27-Year-Old Authentication Bypass in OpenBSD's PPP Stack.
Odpověď Evropské komise (pdf) k evropské občanské iniciativě Stop Destroying Videogames, jež je součástí hnutí Stop Killing Games: "Komise se domnívá, že v této fázi nemůže navrhnout právní povinnost zachovat hratelnost videoher poté, co přestaly být poskytovány komerčně. Důvodem jsou i stávající práva duševního vlastnictví. Podle autorského práva EU mají nositelé práv výlučná práva ke svým výtvorům. Kromě autorských práv mohou být
… více »Byl vydán Mozilla Firefox 152.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 152 bude brzy k dispozici také na Flathubu a Snapcraftu.
Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.7 (Mastodon). Přehled novinek i s videi a se snímky obrazovek v oficiálním oznámení. Podrobný přehled v seznamu změn.
Hříčka xsnow, která na ploše spustí sněžení, je protestware. Pokud jste v Rusku (LANG=ru), zobrazuje ukrajinské vlajky.
#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: