O víkendu (15:00 až 23:00) probíha EmacsConf 2025, tj. online konference vývojářů a uživatelů editoru GNU Emacs. Sledovat ji lze na stránkách konference. Záznamy budou k dispozici přímo z programu.
Provozovatel internetové encyklopedie Wikipedia jedná s velkými technologickými firmami o uzavření dohod podobných té, kterou má s Googlem. Snaží se tak zpeněžit rostoucí závislost firem zabývajících se umělou inteligencí (AI) na svém obsahu. Firmy využívají volně dostupná data z Wikipedie k trénování jazykových modelů, což zvyšuje náklady, které musí nezisková organizace provozující Wikipedii sama nést. Automatické programy
… více »Evropská komise obvinila síť 𝕏 z porušení unijních pravidel, konkrétně nařízení Evropské unie o digitálních službách (DSA). Vyměřila jí za to pokutu 120 milionů eur (2,9 miliardy Kč). Pokuta je podle názoru amerického ministra zahraničí útokem zahraničních vlád na americký lid. K pokutě se vyjádřil i americký viceprezident: „EU by měla podporovat svobodu projevu, a ne útočit na americké společnosti kvůli nesmyslům“.
Společnost Jolla spustila kampaň na podporu svého nového telefonu Jolla Phone se Sailfish OS. Dodání je plánováno na první polovinu příštího roku. Pokud bude alespoň 2 000 zájemců. Záloha na telefon je 99 €. Cena telefonu v rámci kampaně je 499 €.
Netflix kupuje Warner Bros. včetně jejích filmových a televizních studií HBO Max a HBO. Za 72 miliard dolarů (asi 1,5 bilionu korun).
V Las Vegas dnes končí pětidenní konference AWS re:Invent 2025. Společnost Amazon Web Services (AWS) na ní představila celou řadu novinek. Vypíchnout lze 192jádrový CPU Graviton5 nebo AI chip Trainium3.
Firma Proxmox vydala novou serverovou distribuci Datacenter Manager ve verzi 1.0 (poznámky k vydání). Podobně jako Virtual Environment, Mail Gateway či Backup Server je založená na Debianu, k němuž přidává integraci ZFS, webové administrační rozhraní a další. Datacenter Manager je určený ke správě instalací právě ostatních distribucí Proxmox.
Byla vydána nová verze 2.4.66 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 5 bezpečnostních chyb.
Programovací jazyk JavaScript (Wikipedie) dnes slaví 30 let od svého oficiálního představení 4. prosince 1995.
Byly zveřejněny informace o kritické zranitelnosti CVE-2025-55182 s CVSS 10.0 v React Server Components. Zranitelnost je opravena v Reactu 19.0.1, 19.1.2 a 19.2.1.
wget ftp://ftp.ruby-lang.org//pub/ruby/1.9/ruby-1.9.2-p0.tar.gz tar -xvzf ruby-1.9.2-p0.tar.gz cd ruby-1.9.2-p0/ ./configure --prefix=/usr/local/ruby make && sudo make installA jako vhodným doplňkem pro práci s Ruby se jeví přidání /usr/local/ruby/bin do PATH. Například úpravou /etc/environment . Po těchto několika oddechových minutkách přijde na řadu instalace důležitých gemů. (Pozn. Svou konfiguraci jsem rozjížděl na VPS u Virtualmaster a všiml jsem si, že 64MB RAM je jen pro instalaci pomocí gem nevyhovující konfigurace)
gem install sinatra
gem install thin
Pro otestování serveru nám postačí opravdu jednoduchá Sinatra aplikace, která zabere 5 řádků i s nastavením interpreteru (což vlastně netřeba dělat) a kódování.
#!/usr/local/ruby/bin/ruby
# encoding: UTF-8
get '/' do
"Ono to funguje!"
end
K samotné konfiguraci webového serveru thin - budeme potřebovat rackup soubor (.ru) a yml konfigurační soubor.
Rackup soubor v podstatatě obsahuje jen:
# encoding: UTF-8 require 'sinatra' #.rb soubor s vaší aplikací, stejný adresář require 'app' run Sinatra::ApplicationYML soubor vypadá zhruba takto:
---
environment: production
chdir: /cesta/k/aplikaci
address: 127.0.0.1
user: root
group: root
port: 4567
pid: /cesta/k/aplikaci/thin.pid
rackup: /cesta/k/aplikaci/config.ru
log: /cesta/k/aplikaci/thin.log
max_conns: 1024
timeout: 30
max_persistent_conns: 512
daemonize: true
Na řadu přichází samotné 'nahození' thin serveru. Když jsem poprvé spouštěl thin server, docela jsem koukal, že si můžu vybrat počet serverů, které budou spuštěny. Pro malý webový projekt to asi nemá smysl, ale u velkých projektů to asi nějaký smysl mít bude kvůli otázce dostupnosti. O možném řešení ale až za chvilku.
thin -s 1 -C config.yml -R config.ru startNa základě údajů v config yml se nám na pozadí rozběhne server na adrese 127.0.0.1 a portu 4567. Návštěvníky svého velkolepého projektu ale asi těžko budeme zvát na domena.tld:port, a proto potřebujeme nějakým způsobem donutit tento server, aby naslouchal na portu 80. Mohli by jsme v config.yml upravit port na 80, ale tím pádem by nám jeden fyzický webový server sloužil pouze pro jednu prezentaci. Nehospodárné. Jako výhodnější varianta se jeví použití takzvané reverzní proxy, v našem případě webový server nginx (stejně tak poslouží i lighttpd či Apache2). Konfiguraci serveru nginx upravíme tak, aby veškeré požadavky směrované na adresaserveru:80 směroval na 127.0.0.1:4567. Konfiguraci lze samozřejmě spojit s nastavením virtualhostů a podobných záležitostí, ale my pouze upravíme default virtual host, který by měl být po
apt-get install nginx v adresáři /etc/nginx/sites-available/.
Přirozeně nás bude zajímat jen location /, takže můžeme s klidem v srdci celý konfigurační soubor pročistit a použít z něj nepatrnou část.
server {
listen 80;
server_name localhost;
location / {
error_page 502 504 = @fallback;
proxy_pass http://localhost:4567;
}
location @fallback {
proxy_pass http://localhost:4568;
}
}
Poměrně zajímavá část začíná u @fallback. Pokud při spouštění thin použijeme -s 2 - spustí se nám dva servery na portech 4567 a 4568. Pasáž error_page 502 504 = @fallback; říká serveru, že pokud výchozí server (http://localhost:4567) vrací chybovou hlašku 502 nebo 504 - dojde k přesměrovaní na location @fallback. A fallback směřuje http://localhost:4568.
A nakonec - service nginx restartpošle náš server do hry. Hodně štěstí!
Tiskni
Sdílej:
Navíc trojka integruje právě nginx v sobě, takže býval stačil pouze passenger -- není potřeba prakticky vůbec žádná konfigurace, jen pár malých nezbytností.
Místo obyčejné kompilace ruby bych doporučil RVM. Pro každý projekt je potom možné používat gemsety a jinou verzi Ruby nebo testovat na ostatních implementacích (JRuby, REE, ...).