FEL ČVUT vyvinula robotickou stavebnici pro mladé programátory. Stavebnice Brian byla navržená speciálně pro potřeby populární Robosoutěže. Jde ale také o samostatný produkt, který si může koupit každý fanoušek robotiky a programování od 10 let, ideální je i pro střední školy jako výuková pomůcka. Jádro stavebnice tvoří programovatelná řídicí jednotka, kterou vyvinul tým z FEL ČVUT ve spolupráci s průmyslovými partnery. Stavebnici
… více »Ubuntu bude pro testování nových verzí vydávat měsíční snapshoty. Dnes vyšel 1. snapshot Ubuntu 25.10 (Questing Quokka).
Společnost Netgate oznámila vydání nové verze 2.8.0 open source firewallové, routovací a VPN platformy pfSense (Wikipedie) postavené na FreeBSD. Přehled novinek v poznámkách k vydání.
Byla vydána nová verze 6.16 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Tor Browser byl povýšen na verzi 14.5.3. Linux na verzi 6.1.140. Další změny v příslušném seznamu.
Člověk odsouzený za obchod s drogami daroval letos ministerstvu spravedlnosti 468 kusů kryptoměny bitcoin, které pak resort v aukcích prodal za skoro miliardu korun. Darováním se zabývá policejní Národní centrála proti organizovanému zločinu (NCOZ). Deníku N to potvrdil přímo ministr spravedlnosti Pavel Blažek (ODS). Podle resortu bylo nicméně vše v souladu s právem.
Svobodný a otevřený multiplatformní editor EPUB souborů Sigil (Wikipedie, GitHub) byl vydán ve verzi 2.5.0. Stejně tak doprovodný vizuální EPUB XHTML editor PageEdit (GitHub).
Na základě národního atribučního procesu vláda České republiky označila Čínskou lidovou republiku za zodpovědnou za škodlivou kybernetickou kampaň proti jedné z neutajovaných komunikačních sítí Ministerstva zahraničních věcí ČR. Tato škodlivá aktivita, která trvala od roku 2022 a zasáhla instituci zařazenou na seznam české kritické infrastruktury, byla provedena kyberšpionážní skupinou APT31, veřejně spojovanou se zpravodajskou službou Ministerstvo státní bezpečnosti (MSS).
Google Chrome 137 byl prohlášen za stabilní. Nejnovější stabilní verze 137.0.7151.55 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 11 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Byl vydán AlmaLinux OS 10 s kódovým názvem Purple Lion. Podrobnosti v poznámkách k vydání. Na rozdíl od Red Hat Enterprise Linuxu 10 nadále podporuje x86-64-v2.
Byl vydán Mozilla Firefox 139.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 139 je již k dispozici také na Flathubu a Snapcraftu.
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: