Společnost IBM představila novou generaci svých serverů: IBM Power11.
Multiplatformní digitální pracovní stanice pro práci s audiem Ardour byla postavena na GTK2. Vývojáři neplánovali její portaci na GTK3 nebo GTK4. Naopak, v lednu loňského roku si vytvořili vlastní fork GTK2 s názvem YTK. Ten v únoru letošního roku přestal být volitelným a nově byla zcela odstraněna podpora GTK2.
Byla vydána nová verze 6.4 linuxové distribuce Parrot OS (Wikipedie). Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Společnost initMAX pořádá sérii bezplatných webinářů věnovaných novému Zabbixu 7.4. Podrobnosti a registrace na webu initMAX.
… více »Byla vydána verze 7.0 open source platformy pro správu vlastního cloudu OpenNebula (Wikipedie). Kódový název nové verze je Phoenix. Přehled novinek v poznámkách k vydání v aktualizované dokumentaci.
E-mailový klient Thunderbird byl vydán ve verzi 140.0 ESR „Eclipse“. Jde o vydání s dlouhodobou podporou, shrnující novinky v upozorněních, vzhledu, správě složek a správě účtů. Pozor, nezaměňovat s průběžným vydáním 140.0, které bylo dostupné o týden dříve.
Organizace Video Games Europe reprezentující vydavatele počítačových her publikovala prohlášení k občanské iniciativě Stop Destroying Videogames.
Společnost Raspberry Pi nově nabzí Raspberry Pi Camera Module 3 Sensor Assembly, tj. samostatné senzorové moduly z Raspberry Pi Camera Module 3.
Cathode Ray Dude v novém videu ukazuje autorádio Empeg Car (později Rio Car) z let 1999–2001. Šlo o jeden z prvních přehrávačů MP3 do auta. Běží na něm Linux. Vyrobeno bylo jen asi pět tisíc kusů, ale zůstala kolem nich živá komunita, viz např. web riocar.org.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.7.
Už delší čas se rozmýšlím a pátrám, jaký jazyk nebo ještě lépe menší framework použít pro vývoj webového GUI. Jelikož se nejedná o žádný masově navštěvovaný web, není zde kladen důraz na výkon, ale o to více na bezpečnost.
Moje představy:
Asi bych měl poznamenat že se vyhýbám Javě, protože si myslím, že se vyplatí jí nasazovat jen u rozsáhlých projektů, nejvíc mi na ní vadí zbytečná paměťová náročnost. Nicméně pokud mne někdo chcete přesvědčit o opaku, nebráním se.
Už dlouho píši takovéto jednoduché aplikace v PHP, ale popravdě si nemyslím, že bych se v něm naučil řešit problémy čistě a rád bych přesedlal na jiného koně.
Zaujal mne Python, líbí se mi jeho syntaxe a multiplatformnost. Co mě trošku zaráží, je absence kompatibility mezi 2.x a 3.x verzemi, ale v zásadě se nejedná o stěžejní problém. Vyzkoušel jsem si tedy Django, ale narazil jsem na zcela zásadní problémy. Lze v něm sice spousty řešení napsat velmi rychle, nicméně pokud chcete udělat něco, s čím autoři nepočítali, můžete se snadno dostat do slepé uličky.
Pak jsem našel CherryPy, ve kterém jsem si zatím nic moc nevyzkoušel, ale asi se blíží mým představám nejvíce. Nesmířil jsem se ale s tím, že jeho webový server sežere přes 100MB paměti i s tím nejjednodušším skriptem a pravděpodobně neumí SSL.
Víte ještě o něčem jiném, co by stálo za vyzkoušení nebo mi nějak napomohlo?
Řešení dotazu:
Máš pravdu. Podle CherryPy wiki umí HTTPS od verze 3.0+. To mě docela mile potěšilo.
Ale stejně vidím problém v té paměti. Jelikož si chci dát dohromady GUI pro správu virtuálních strojů, rád bych co nejvíce paměti ušetřil právě pro ty virtuály. Ale možná by se vyplatilo použít Lighttpd a CherryPy na něj napojit skrz WSGI.
ps
? Opravdu po spuštění webovky klesne volná paměť o 100 MB?
Pokud záleží na každém kilobajtu, nejlepší to asi bude udělat v C++ Opravdu to podle mne tolik paměti sežere. Tedy abych upřesnil - RSS je size pouze 9MB, ale VSZ 220MB. Pokud si zjistím stav paměti před spuštěním (třeba pomocí free), jsem na 22MB obsazené paměti, po spuštění na 160MB. Spouštím si jednoduchý skript "Hello world!" z jejich wiki, který běží na integrovaném webovém serveru.
Takto vypadá výpis z ps:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 19774 0.3 1.7 220156 9352 pts/0 Sl+ 08:23 0:00 python hello.py
Tohle se dá vytáhnout z kernelu:
Name: python State: S (sleeping) SleepAVG: 98% Tgid: 19774 Pid: 19774 PPid: 19694 TracerPid: 0 FNid: 101 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 256 Groups: 0 1 2 3 4 6 10 envID: 101 VPid: 19774 PNState: 0 StopState: 0 VmPeak: 220156 kB VmSize: 220156 kB VmLck: 0 kB VmHWM: 9352 kB VmRSS: 9352 kB VmData: 139192 kB VmStk: 84 kB VmExe: 4 kB VmLib: 6380 kB VmPTE: 248 kB StaBrk: 0783a000 kB Brk: 07a6b000 kB StaStk: 7fff125a1600 kB Threads: 14 SigQ: 0/38912 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000000000 SigIgn: 0000000001001000 SigCgt: 0000000180004203 SigSvd: 0000000000000000 CapInh: 000000007dcceeff CapPrm: 000000007dcceeff CapEff: 000000007dcceeff Cpus_allowed: 7fffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff Mems_allowed: 00000000,00000001 TaskUB: 101 MMUB: 101
Teď mne napadlo hledat, jak snížit počet threadů, ve kterých ten server běží a zadařilo se, dostal jsem se těsně pod 50MB
Úplně o každý kilobajt ani megabajt mi nejde, hledám kompromis mezi časovou (z hlediska vývoje) a paměťovou náročností.
Přesně tak, webovým GUI mám na mysli webovou stránku prošpikovanou Ajaxem/Java scriptem, konkrétně mne v tomto ohledu velmi zaujalo použití jQuery a jQueryUI. Koukám že ExtJs je podobná záležitost. Server side poběží pouze v Pythonu a SQLite
Ruby vypadá zajímavě, ale nijak moc jsem jej nezkoumal. Možná proto, že nemám příliš důvěry v Ruby on Rails Ale to je jen můj osobní postoj.
Rozhodně díky za vyčerpávající odpověď. Vypadá to, že se asi začnu zabývat CherryPy, když už se zadařilo snížit paměťové nároky. V tuto chvíli je pro mne už asi nejdůležitější jen dokumentace.
htop
nebo prostřední řádek výpisu free
). Spustím jakýkoliv skript v adresáři /usr/share/doc/python-cherrypy3/tutorial (třeba 01 nebo 09) a zabraná paměť se vyšplhá na 40 MB:
$ ps aux | grep [p]ython messa 2716 1.0 2.1 173176 11224 pts/1 Sl+ 07:26 0:01 python tut01_helloworld.py $ cat /proc/2716/status Name: python State: S (sleeping) Tgid: 2716 Pid: 2716 PPid: 2499 TracerPid: 0 Uid: 1000 1000 1000 1000 Gid: 1000 1000 1000 1000 FDSize: 256 Groups: 20 24 25 29 44 46 1000 VmPeak: 173180 kB VmSize: 173176 kB VmLck: 0 kB VmHWM: 11224 kB VmRSS: 11224 kB VmData: 105992 kB VmStk: 148 kB VmExe: 1172 kB VmLib: 4672 kB VmPTE: 216 kB Threads: 13 SigQ: 0/4095 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000000000 SigIgn: 0000000001001000 SigCgt: 0000000180004003 CapInh: 0000000000000000 CapPrm: 0000000000000000 CapEff: 0000000000000000 CapBnd: ffffffffffffffff Cpus_allowed: 00000001 Cpus_allowed_list: 0 Mems_allowed: 00000000,00000001 Mems_allowed_list: 0 voluntary_ctxt_switches: 193 nonvoluntary_ctxt_switches: 77 $ free -m total used free shared buffers cached Mem: 499 182 317 0 16 124 -/+ buffers/cache: 40 459 Swap: 478 0 478
Příští týden budu mít více času, tak to schválně zkusím na různých verzích OpenVZ. Někde mi běží kromě stable verzí i různé vývojové. Snad je to jen nějaká maličkost. Možná je tam implementována alokace paměti nějakým jiným způsobem než v defaultním kernelu. Docela by bodlo přijít tomu na kobylku.
Moc díky za pomoc. Už jsem pomalu uvažoval o upuštění od CherryPy, ale tohle mě nakoplo a můžu postupovat dál
Tiskni
Sdílej: