Byla vydána nová verze 9.7 multiplatformní digitální pracovní stanice pro práci s audiem (DAW) Ardour. Přehled novinek, vylepšení a oprav v poznámkách k vydání.
Vývojáři webového prohlížeče Ladybird dnes oznámili, že mění způsob vývoje. S blížícím se vydáním alfa verze přestávají přijímat veřejné pull requesty. Všechny otevřené veřejné pull requesty budou uzavřeny. Tým nedokáže garantovat bezpečnost AI generovaných pull requestů.
OpenLogi (GitHub) je open source náhrada aplikace Logi Options+ pro přizpůsobení myší od společnosti Logitech. Zatím běží pouze na macOS.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za květen (YouTube).
Úřad pro ochranu osobních údajů řeší desítky stížností na jednotné měsíční hlášení zaměstnavatele, které stát spustil počátkem dubna. Systém, jenž má firmám odlehčit od desítek formulářů, nejenže výrazně zatížil jejich účetní oddělení, ale docházelo v něm i k únikům osobních dat zaměstnanců k firmám, kde nepracovali. Podle ministerstva práce a sociálních věcí stála za problémem technická chyba. „Incident se týkal několika stovek
… více »Byla vydána (𝕏, Bluesky) nová verze 22.0.0 open source webového aplikačního frameworku Angular (Wikipedie). Přehled novinek v příspěvku na blogu.
Vim Classic byl vydán ve verzi 8.3. Drew DeVault oznámil tento fork editoru Vim (verze 8.2.0148, tj. těsně před zavedením Vim9 skriptování) v březnu letošního roku. Důvodem forku bylo, že vývojáři editorů Vim a Neovim začali při vývoji využívat LLM.
Open source konference DevConf.CZ 2026 proběhne 18. a 19. června v Brně na FIT VUT. Publikován byl program a spuštěna byla registrace.
Společnost JetBrains uvolnila verzi 2 svého open-source velkého jazykového modelu (LLM) pro vývojáře Mellum.
Probíhá konference Microsoft Build 2026. Microsoft představuje své novinky: kvantový čip Majorana 2, Surface Laptop Ultra a Surface RTX Spark Dev Box s NVIDIA RTX Spark, Intelligent Terminal, Coreutils for Windows (fork Rust Coreutils), AI modely MAI, AI agenta Scout, platformu pro agent-first zařízení Project Solara, …
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: