SuperTux (Wikipedie), tj. klasická 2D plošinovka inspirovaná sérií Super Mario, byl vydán v nové verzi 0.7.0. Videoukázka na YouTube. Hrát lze i ve webovém prohlížeči.
Ageless Linux je linuxová distribuce vytvořená jako politický protest proti kalifornskému zákonu o věkovém ověřování uživatelů na úrovni OS (AB 1043). Kromě běžného instalačního obrazu je k dispozici i konverzní skript, který kompatibilní systém označí za Ageless Linux a levné jednodeskové počítače v ceně 12$ s předinstalovaným Ageless Linuxem, které se chystají autoři projektu dávat dětem. Ageless Linux je registrován jako operační
… více »PimpMyGRC upravuje vzhled toolkitu GNU Radio a přidává alternativní barevná témata. Primárním cílem autora bylo pouze vytvořit tmavé prostředí vhodné pro noční práci, nicméně k dispozici je nakonec celá škála barevných schémat včetně možností různých animací a vizuálních efektů (plameny, matrix, bubliny...), které nepochybně posunou uživatelský zážitek na zcela jinou úroveň. Témata jsou skripty v jazyce Python, které nahrazují
… více »GIMP 3.2 byl oficiálně vydán (Mastodon, 𝕏). Přehled novinek v poznámkách k vydání.
FRANK OS je open-source operační systém pro mikrokontrolér RP2350 (s FRANK M2 board) postavený na FreeRTOS, který přetváří tento levný čip na plně funkční počítač s desktopovým uživatelským rozhraním ve stylu Windows 95 se správcem oken, terminálem, prohlížečem souborů a knihovnou aplikací, ovládaný PS/2 myší a klávesnicí, s DVI video výstupem. Otázkou zůstává, zda by 520 KB SRAM stačilo každému 😅.
Administrativa amerického prezidenta Donalda Trumpa by měla dostat zhruba deset miliard dolarů (asi 214 miliard Kč) za zprostředkování dohody o převzetí kontroly nad aktivitami sociální sítě TikTok ve Spojených státech.
Projekt Debian aktualizoval obrazy stabilní větve „Trixie“ (13.4). Shrnuje opravy za poslední dva měsíce, 111 aktualizovaných balíčků a 67 bezpečnostních hlášení. Opravy se týkají mj. chyb v glibc nebo webovém serveru Apache.
Agent umělé inteligence Claude Opus ignoroval uživatelovu odpověď 'ne' na dotaz, zda má implementovat změny kódu, a přesto se pokusil změny provést. Agent si odpověď 'ne' vysvětlil následovně: Uživatel na mou otázku 'Mám to implementovat?' odpověděl 'ne' - ale když se podívám na kontext, myslím, že tím 'ne' odpovídá na to, abych žádal o svolení, tedy myslí 'prostě to udělej, přestaň se ptát'.
Po 8. květnu 2026 už na Instagramu nebudou podporované zprávy opatřené koncovým šifrováním. V chatech, kterých se bude změna týkat, se objeví pokyny o tom, jak si média nebo zprávy z nich stáhnout, pokud si je chcete ponechat.
V lednu byla ve veřejné betě obnovena sociální síť Digg (Wikipedie). Dnes bylo oznámeno její ukončení (Hard Reset). Společnost Digg propouští velkou část týmu a přiznává, že se nepodařilo najít správné místo na trhu. Důvody jsou masivní problém s boty a silná konkurence. Společnost Digg nekončí, malý tým pokračuje v práci na zcela novém přístupu. Cílem je vybudovat platformu, kde lze důvěřovat obsahu i lidem za ním. Od dubna se do Diggu na plný úvazek vrací Kevin Rose, zakladatel Diggu z roku 2004.
pokud neupresnite zadani dotazu (dalsi podrobnosti, zverejneni kodu...), do te doby se neda rozumne odpovedet
predpokladam, ze kod prilis dlouhy nebude - kdyz jsem sveho casu delal neco podobneho (jak klient, tak server) tak jsem se vesel radove do 8kB se serverem a asi 3kB klient (jen uloz stranku na disk)
jinak mne napada... zkousel jste komunikaci i s necim jinym? (jiny web server+Vas klient a vas server+jiny klient)? a podivat se primo na tu komunikaci... treba tcpdumpem
int main(){
int server_sock, client_sock;
int server_len, client_len;
struct sockaddr_in server_addr;
struct sockaddr_in client_addr;
char request[]="HTTP/1.0 200 OK\n\n"
"[html]
"[head]"
"[title]Download[/title]"
"[/head]"
"[body]"
"[table border=\"1\" cellpadding=\"6\" cellspacing=\"0\"]"
"[tr height=\"210\"]"
"[td width=\"210\" rowspan=\"2\"][img src=\"/home/honza/download/pinguin.png\" width=\"210\" height=\"210\" border=\"0\" name=\"Pinguin\"][/td]"
"[td width=\"500\"]"
"[p]zde stahujte..[a href=\"/home/honza/download/obrazek.png\" name=\"Pinguin\"]Pinguin[/a][/p]"
"[/td]"
"[/tr]"
"[/table]"
"[/body]"
"[/html]";
char answer[2000];
int received, sent;
int i=0,c;
FILE *input;
if((server_sock=socket(AF_INET, SOCK_STREAM, 0))==-1)
err_mess("Server soket nebyl spravne vytvoren!");
server_addr.sin_family=AF_INET;
server_addr.sin_addr.s_addr=htonl(INADDR_ANY);
server_addr.sin_port=htons(80); // 80 - http server => nutna prava roota!!!
server_len=sizeof(server_addr);
if((bind(server_sock, (struct sockaddr*) &server_addr, server_len))==-1)
err_mess("Adress not given (bind)");
if((listen(server_sock, 5))==-1) // 5 - delka fronty pozadavku na spojeni
err_mess("(listen)");
while(1){
printf("server waiting..\n");
client_len=sizeof(client_addr);
if((client_sock=accept(server_sock, (struct sockaddr*) &client_addr, &client_len))==-1)
err_mess("Connection not accepted!");
if((received=recv(client_sock, answer, sizeof(answer), 0))==-1)
err_mess("Cannot receive data!");
if((sent=send(client_sock, request, sizeof(request), 0))==-1)
err_mess("Data not sent!");
close(client_sock);
}
close(server_sock);
return (0);
}
posilate VZDY jen Vasi predpripravenou odpoved, bez ohledu na to, co po Vasem serveru chce klient
_uplne minimalni_ reseni je nacist a rozparsovat aspon prvni radek hlavicky (ve tvaru GET /dir1/dir2/soubor.xyz HTTP/1.0)
tim aspon zjistite, CO VLASTNE klient chce (nacist data, ulozit data..; a pak nazev souboru); a odpovedet podle toho. (aspon podporuju/nepodporuju metodu, nenalezl soubor, nalezl soubor, je tahle velky a posilam ho...) - sice to neodpovida RFC, ale jen pro pokusne odeslani souboru to staci.
jako odpoved jsem pro (podle mne platny) pozadavek posilal aspon:
HTTP/1.1 200 OK Server: (nejaky string) Accept-Ranges: bytes Content-Length: (delkasouboru) Connection: close Content-Type: (mime_typ) (a obsah vlastniho souboru)
ikdyz uznavam, sam jsem si take napsal svoji implementaci. a nakonec pouzivam jako server apache a na stahovani wget a curl
Accept-Ranges: bytesTo bych neposílal, tahle implementace nevypadá, že by uměla posílat na vyžádání části souborů
Podle me je to spatna logika. Html server je udelanej tak, ze posila klientovi soubory s tim, ze pres http protokol indikuje jaky. V praxi se to pouziva tak, ze kdyz zadas nejakou stranku, tak prohlizec ji stahne (tj posle serveru prikaz neco jako GET sss.com/stranka.html a ten posle zpatky odpoved Content type: html + nejake dalsi udaje + samotny textovy soubor se strankou) a analyzuje, v pripade ze na te strance nejsou odkazy tak neudela nic dalsiho, pokud tam najde odkazy (a,img,...) tak je postupne stahuje tim, stejnym zpusobem (posle serveru GET sss.com/obr.png a ten posle zpatky Content type: data (?) + delku atd + samotny obrazek) a az to klient obdrzi, tak ten obrazek zobrazi.
HTTP Made Really Easy
Tiskni
Sdílej: