Nové verze webových prohlížečů Chrome a Firefox jsou vydávány každé 4 týdny. Aktuální verze Chrome je 150. Aktuální verze Firefoxu je 152. V březnu bylo oznámeno, že od září přejde Chrome na dvoutýdenní cyklus vydávání verzí. To by znamenalo, že Chrome v číslování verzí Firefox brzy přeskočí. Vývojáři Firefoxu proto také od září přecházejí na dvoutýdenní cyklus vydávání verzí. :-)
Microsoft Comic Chat (Wikipedie), tj. grafický IRC klient z devadesátek, který převáděl konverzace na IRC do podoby komiksových panelů, a který zpopularizoval font Comic Sans, je dnešním dnem open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Byla vydána (𝕏) nová verze 26.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 26.7 je Xenial Xenops. Přehled novinek v příspěvku na fóru.
Na Seznam nepovolených internetových her (Wikipedie) se k 13. 7. 2026 dostala predikční platforma Polymarket.
Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 167 (pdf) a Hello World 30 (pdf).
Byla vydána nová verze 3.22.0 grafického vývojového prostředí a platformy Gambas (Wikipedie) založené na interpretru programovacího jazyka Basic s rozšířením o objektově orientované programování. Přehled novinek v poznámkách k vydání. Zdrojové kódy jsou k dispozici na GitLabu.
FreeBSD odstranilo poslední GPL kód ze základního systému. Konkrétně dpv, libdpv, libfigpar a dialog. Instalátor před čtyřmi lety přešel z dialogu na bsddialog.
Sociální síti 𝕏 (dříve Twitter) má dnes 20 let. Pro veřejnost byla zpřístupněna 15. července 2006.
Insula Faktury je open source generátor faktur, který běží přímo ve webovém prohlížeči. Žádná registrace, žádné sledování, žádné omezení. Zdrojové kódy jsou k dispozici na Codebergu.
První Mobile Linux Hackday v Plzni, tj. komunitní setkání věnované Linuxu na mobilních zařízeních, proběhne 24. července od 10:00. Akce je otevřená všem zájemcům – od zvědavců po zkušené vývojáře. Dopoledne proběhnou přednášky Davida Heidelberga a Petra Hodiny o aktuálním stavu mobilního Linuxu: proč vůbec chtít tučňáka v kapse, jaké telefony jsou dnes dobře podporované a co taková podpora obnáší. Po obědě se zaměříme na konkrétní
… více »
function get_freemem() {
# "our" free memory = free RAM + buffers/cache - used swap
# minus "give way" (custom list of simple command names and
# amount of memory they might grow)
reserve=0
progs="`ps -eo comm | tail -n +2`"
for i in $@; do
cmd="`sed 's/=.*$//' <<< "$i"`"
res="`sed 's/^.*=//; s/[^0-9]//g' <<< "$i"`"
[ -z "$res" ] && continue
reserve=$(( $reserve + `grep "$cmd" <<< "$progs" | wc -l` * $res ))
done
f="`free`"
mem="`tail -n 2 <<< "$f" | head -n 1 | sed 's/^.* //'`"
swap="`tail -n 1 <<< "$f" | sed 's/ \+/ /g' | cut -d ' ' -f 3`"
echo $mem - $swap - $reserve | bc
}
function wait_freemem() {
counter=0
max_timeout=36000
timein_counter=0
timein_required=5
mem_needed=1048576
# we reserve additional 512M for each "java" we find in ps
reserves="java=524288"
while [ $counter -lt $max_timeout ]; do
mem="`get_freemem $reserves`"
[ $mem -gt $mem_needed ] && timein_counter=$(( $timein_counter + 1 )) || timein_counter=0
[ $timein_counter -ge $timein_required -a $(( $counter % $timein_required )) == 0 ] && return 0
sleep 1
timeout_counter=$(( $timeout_counter + 1 ))
done
return 1
}
Každopádně i přes tyto opatření pokud přijde hodně dotazů, je schopno se jich kvůli race condition dost pustit najednou (ono asi bych mohl zvednout timein_required na nějakou velkou hodnotu a pak prostě doufat, že to bude stačit, ale to taky prodlouží čekání jediného procesu pokud je stroj nečinný).
Tak bych se rád zeptal, jestli někdo neví o spolehlivé metodě, jak potenciálně velké množství procesů zesynchronizovat tak, aby se v případě dostatku paměti pustily paralelně, ale pokud je paměti míň, tak se většina z nich zablokovala a pouštěli se po jednom (dvou, třech, atd., podle volné paměti)? Ideálně v bashi, ale nebráním se jiným metodám.
Díky!
timeout_counter a counter jedna a ta samá proměnná, jde o mou nepozornost při úpravě
/tmp/muj_program_lock_0 až /tmp/muj_program_lock_X...
Tiskni
Sdílej: