Firma Cal.com oznámila, že přesouvá svůj produkční kód z otevřeného do uzavřeného repozitáře z důvodu bezpečnostního rizika umělé inteligence, která prý dokáže vyhledávat a zneužívat zranitelnosti rychleji, než by je jejich vývojářský tým stíhal opravovat. Zároveň zveřejnila samostatnou, open-source verzi Cal.diy pod licencí MIT, ovšem bez řady původních funkcí. O tom, zda je toto opatření rozumné, existují pochyby. … více »
Vývojáři KDE na Mastodonu oznámili vydání balíku aplikací KDE Gear 26.04. Přehled novinek i s náhledy a videi v oficiálním oznámení.
Kryptografická knihovna OpenSSL byla vydána v nové verzi 4.0. Přehled změn v souboru CHANGES.md na GitHubu. Odstraněna byla podpora SSLv2 Client Hello a SSLv3. Ve výchozím nastavení byla zakázána podpora odmítnutých eliptických křivek v TLS dle RFC 8422. Přibyla například podpora Encrypted Client Hello (ECH, RFC 9849).
curl up 2026, tj. setkání vývojářů a uživatelů curlu, proběhne opět v Praze. O víkendu 23. a 24. května v Pracovně.
Aplikace pro ověřování věku uživatelů on-line platforem je technicky hotová a brzy bude k dispozici pro občany EU, oznámila dnes předsedkyně Evropské komise Ursula von der Leyenová. Půjde podle ní o bezplatné a snadno použitelné řešení, které pomůže chránit děti před škodlivým a nelegálním obsahem. Aplikace bude podle ní fungovat na jakémkoli zařízení a bude zcela anonymní.
V prosinci 2012 byla z linuxového jádra odstraněna podpora procesorů 386. Včera započalo odstraňování podpory procesorů 486.
IuRe (Iuridicum Remedium) vyhlásila Ceny Velkého bratra za rok 2025. Slídily roku jsou automobilka Volkswagen, Meta a česká Ministerstva vnitra a průmyslu a obchodu. Autorem Výroku Velkého bratra je dánský ministr spravedlnosti zpochybňující právo na šifrovanou komunikaci. Naopak Pozitivní cenu získali studenti Masarykovy univerzity za odpor proti nucení do používaní aplikace ISIC.
Po osmi měsících vývoje byla vydána nová verze 0.16.0 programovacího jazyka Zig (Codeberg, Wikipedie). Přispělo 244 vývojářů. Přehled novinek v poznámkách k vydání.
Nejnovější X.Org X server 21.1.22 a Xwayland 24.1.10 řeší 5 bezpečnostních chyb: CVE-2026-33999, CVE-2026-34000, CVE-2026-34001, CVE-2026-34002 a CVE-2026-34003.
Po roce vývoje od vydání verze 1.28.0 byla vydána nová stabilní verze 1.30.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.30.
#!/usr/bin/env python
services = {
'service1':{
'description':'This is service 1',
'start':'sleep 1',
'runs_forever':False,
'depends_on':[]
},
'service2':{
'description':'This is service 2',
'start':'sleep 2',
'runs_forever':True,
'depends_on':['service1']
},
'service3':{
'description':'This is service 3',
'start':'sleep 4',
'runs_forever':True,
'depends_on':['service2']
},
'service4':{
'description':'This is service 4',
'start':'sleep 8',
'runs_forever':True,
'depends_on':['service1', 'service2', 'service3']
}
}
U každé služby je jméno (service1 až service4), popisek, startovací příkaz, dále příznak 'runs_forever' a závislosti na jiných službách. Ten příznak 'runs_forever' říká, že nemá smysl čekat na ukončení dané služby. Je to například služba sshd, apache, mysql a tak. Jestliže je na takovou službu vázána nějaká závislost jiné služby, pak se nečeká na ukončení, nýbrž na start. Opakem je situace, kdy runs_forever je nepravda. To jsou zpravidla jednorázové akce, u kterých se musí čekat na ukončení (třeba fsck, natahování jaderných modulů, mountování filesystémů atd.).
#!/usr/bin/env python
import threading, subprocess
from services import services
events = {}
class Serv(threading.Thread):
def __init__(self, services, name):
events[name] = threading.Event()
threading.Thread.__init__(self)
self.service = services[name]
self.name = name
def run(self):
print self.name, 'is about to start'
for name_dep in services[self.name]['depends_on']:
print self.name, 'is waiting for', name_dep
events[name_dep].wait()
print 'starting', self.name
cmd = self.service['start'].split()
proc = subprocess.Popen(cmd)
if not self.service['runs_forever']:
proc.wait()
print self.name, 'is finished (DONE)'
else:
print self.name, 'runs as daemon (DONE)'
events[self.name].set()
all_serv = [Serv(services, name) for name in services]
for serv in all_serv:
serv.start()
Tak se začnou dít věci 
service3 is about to start service3 is waiting for service2 service2 is about to start service2 is waiting for service1 service1 is about to start starting service1 service4 is about to start service4 is waiting for service1 service1 is finished (DONE) starting service2 service2 runs as daemon (DONE) service4 is waiting for service2 service4 is waiting for service3 starting service3 service3 runs as daemon (DONE) starting service4 service4 runs as daemon (DONE)Je fakt psina si s tím trochu pohrát. Zvlášť s cyklickými závislostmi
V tomto konkrétním případě jsou po ukončení programu spuštěné tři procesy (ale během pár sekund vyhnijí). Takže základní idea byla hotová během pár hodin, takže zbývá ještě asi tak rok práce
Tiskni
Sdílej:

depend() {
use clock logger
need localmount
provide cron
}
start() {
ebegin "Starting vixie-cron"
start-stop-daemon --start --quiet --exec /usr/sbin/cron
eend $?
}
stop() {
ebegin "Stopping vixie-cron"
start-stop-daemon --stop --quiet --pidfile /var/run/cron.pid
eend $?
}
a myslím, že to o moc líp ani nejde. Paralelní spouštění? Není problém, RC_PARALLEL_STARTUP="yes". Nepřehledný? Neřekl bych. V Pythonu by to bylo rychlejší? Těžko, když:
amd64 ~ # time python -c exit # a to není první "start", ale druhý! real 0m0.052s user 0m0.013s sys 0m0.002s amd64 ~ # time bash -c exit real 0m0.003s user 0m0.000s sys 0m0.003sa spustit musí v podstatě totéž...
tiez si myslim, ze riesia <>vinu, bud na to prijdu sami, alebo vymyslia nieco uzitocne
)
No nevím, znám jen Gentoo a tam máme init skripty třeba takový (vixie-cron):Takhle to vypadá pěkně. Ale když se člověk trochu podívá pod pokličku, tak už to taková radost být nemusí.
a myslím, že to o moc líp ani nejde.Všechno jde zlepšit! Nebo taky pokazit ...

Paralelní spouštění? Není problémNo, ve Fedoře to zatím problém je. Proto jsem se do toho pustil.
V Pythonu by to bylo rychlejší? Těžko, když:Ech, takových benchmarků už jsem viděl ...amd64 ~ # time python -c exit # a to není první "start", ale druhý! real 0m0.052s amd64 ~ # time bash -c exit real 0m0.003s
No, ve Fedoře to zatím problém je. Proto jsem se do toho pustil.Aha
A Python s Bashem nehodlám dále srovnávat - myslím, že vše již bylo řečeno. Jestliže se někdo domnívá, že Bash je rychlejší, tak mu to už vyvracet nebudu. Ale ten dotyčný si ke své škodě lže do kapsy.Ne, to netvrdím... tvrdím, že Python i Bash spustí externí prográmky stejně rychle a o ty jde především. Teď mě napadlo, že by ty init-skripty mohly být v C, to by to nabootovalo ještě rychleji
Teď mě napadlo, že by ty init-skripty mohly být v C, to by to nabootovalo ještě rychlejiTím chceš říct, že ještě nemáš na Gentoo Init-NG?
V Pythonu by to bylo rychlejší? Těžko, když: amd64 ~ # time python -c exit # a to není první "start", ale druhý! real 0m0.052s user 0m0.013s sys 0m0.002s amd64 ~ # time bash -c exit real 0m0.003s user 0m0.000s sys 0m0.003s a spustit musí v podstatě totéž...Omyl, Python se spouští jednou, bash cca 200-500x. To už je rozdíl, že? Python skripty budou kompilované a nebudou se muset opakovaně znova a znova parsovat. Běh programu v Pythonu je mnohem rychlejší než v Bashi. Z bash scriptů se nepočítaněkrát spouští další procesy typu sed, u pythonu to jede v rámci binárky. Udělejte si skript, kde se stokrát vyhodnocuje regulární výraz, jednou v bashi+sedu jednou v pythonu a hoďte sem výsledek, pak se pobavíme, co je rychlejší.
ad zavislosti, mozno by neskodilo definovat, co ta ktora sluzba ovplyvnuje. Myslim, ze by stacilo definovat, ci ovplyvnuje nastavenie systemu (napr "network") a najprv spustit vsetky ovplyvnujuce a potom neovplyvnujuce. Napr (moj oblubeny) ntpd nastavenie ovplyvnuje, ale vyzaduje funkcnu siet, ale napr sshd ci apache nan nepotrebuju explicitnu zavislost. Takych moze byt viac, specifickych pre ten ktory stroj.
technicke poznamky:Já ve skutečnosti potřebuju, aby se thready ovlivňovaly. Ale musí to být kontrolovaně, jinak se z toho stane splašené stádo. K tomu účelu existuje řada synchronizačních mechanismů. V Pythonu je přímá podpora zámků, reentrantních zámků, podmínkových objektů, semaforů a událostí. Já jsem použil ty události.
- ako chcete zabranit, aby sa thready neovplyvnovali (fork je fork)?
- ako to bude fungovat napr nie pre "sleep 1", ale pre "apachectl start" (pricom samozrejme vyzadujem, aby sa sluzba restartla po pripadnom pad, okrem situacie, ked ju rucne zhodim?Apachectl hodlám přepsat, protože se mi nelíbí

ad zavislosti, mozno by neskodilo definovat, co ta ktora sluzba ovplyvnuje. Myslim, ze by stacilo definovat, ci ovplyvnuje nastavenie systemu (napr "network") a najprv spustit vsetky ovplyvnujuce a potom neovplyvnujuce. Napr (moj oblubeny) ntpd nastavenie ovplyvnuje, ale vyzaduje funkcnu siet, ale napr sshd ci apache nan nepotrebuju explicitnu zavislost. Takych moze byt viac, specifickych pre ten ktory stroj.Jojo, taky myslím, že je to rozumná věc, bez které by to byla hrůza. Jinak by se u všech služeb musela explicitně psát závislost např. na fsck, raidu apod. a jistě by se na něco zapomnělo.
odporucam vam rozmyslat o 0..n v odpovedi na nasledovne:
- kolko je distribucii ?
- kolko je sposobov nasadenia ?
- kolko produktov poskytuje dany typ sluzby ?
- kolko instancii sluzby je mozne spustit ?
- kolko produktov bude na cielovom stroji nainstalovanych ?
dobre by bolo zobrat vsetky existujuce daemony (freshmeat.net pomoze), popisat si ich zavislosti, nakreslit si ich postupnost a potom si uvedomit, ze lubovolna cast moze byt (dokoncia viac krat), ale i nemusi
otazka navyse nesmerovala priamo k apachectl, ale k sposobu, ako mienite "kontrolovat" proces, od ktoreho nedostanete SIGCHLD.
.
- Distribucí je spousta. Každá to dělá po svém.odporucam vam rozmyslat o 0..n v odpovedi na nasledovne:
- kolko je distribucii ?
- kolko je sposobov nasadenia ?
- kolko produktov poskytuje dany typ sluzby ?
- kolko instancii sluzby je mozne spustit ?
- kolko produktov bude na cielovom stroji nainstalovanych ?
dobre by bolo zobrat vsetky existujuce daemony (freshmeat.net pomoze), popisat si ich zavislosti, nakreslit si ich postupnost a potom si uvedomit, ze lubovolna cast moze byt (dokoncia viac krat), ale i nemusiAle no ták ...
otazka navyse nesmerovala priamo k apachectl, ale k sposobu, ako mienite "kontrolovat" proces, od ktoreho nedostanete SIGCHLD.Tak teď nevím, o čem mluvíte. apachectl nijak nereaguje na SIGCHLD - je mu to úplně jedno. Co myslíte tím "kontrolováním"? Jestliže nějakého démona pustím přímo, tak se přece snadno dozvím, že skončil. Jestliže ho pustím přes wrapper, tak mám prostě smůlu a musím zjišťovat existenci PIDu nebo se dívat na otevřené porty nebo tak něco. Nepřipadá vám, že děláte z komára velblouda (alias ťavu)