Protože je už po aprílu, můžou strahováci opět zveřejnit program další Virtuální Bastlírny, aniž by připravená témata působila dojmem, že jde o žert. Vězte tedy, že již v úterý 7. dubna od 20:00 proběhne VB, kde se setkají bastlíři, technici, učitelé i nadšenci do techniky a kde i vy se můžete zapojit do družného hovoru, jako by všichni seděli u pomyslného piva. Co mají bastlíři tento měsíc na srdci? Pravděpodobně by nás musel zasáhnout meteorit
… více »Byla vydána verze 26.1 aneb čtvrtletní aktualizace open source počítačového planetária Stellarium (Wikipedie, GitHub). Vyzkoušet lze webovou verzi Stellaria na Stellarium Web.
VOID (Video Object and Interaction Deletion) je nový open-source VLM model pro editaci videa, který dokáže z videí odstraňovat objekty včetně všech jejich fyzikálních interakcí v rámci scény (pády, kolize, stíny...) pomocí quadmaskingu (čtyřhodnotová maska, která člení pixely scény do čtyř kategorií: objekt určený k odstranění, překrývající se oblasti, objektem ovlivněné oblasti a pozadí scény) a dvoufázového inpaintingu. Za projektem stojí výzkumníci ze společnosti Netflix.
Design (GitHub) je 2D CAD pro GNOME. Instalovat lze i z Flathubu. Běží také ve webovém prohlížeči.
Příspěvek na blogu herního enginu Godot představuje aplikaci Xogot přinášející Godot na iPad a iPhone. Instalovat lze z App Storu. Za Xogotem stojí Miguel de Icaza (GitHub) a společnost Xibbon.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za březen (YouTube).
ESP-IDF (Espressif IoT Development Framework), tj. oficiální vývojový framework pro vývoj aplikací na mikrokontrolérech řady ESP32, byl vydán v nové verzi 6.0. Detaily na portálu pro vývojáře.
DeepMind (Alphabet) představila novou verzi svého multimodálního modelu, Gemma 4. Modely jsou volně k dispozici (Ollama, Hugging Face a další) ve velikostech 5-31 miliard parametrů, s kontextovým oknem 128k až 256k a v dense i MoE variantách. Modely zvládají text, obrázky a u menších verzí i audio. Modely jsou optimalizované pro běh na desktopových GPU i mobilních zařízeních, váhy všech těchto modelů jsou uvolněny pod licencí Apache 2.0. Návod na spuštění je už i na Unsloth.
Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 3. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).
Průkopnická firma FingerWorks kolem roku 2000 vyvinula vícedotykové trackpady s gesty a klávesnice jako TouchStream LP. V roce 2005 ji koupil Apple, výrobu těchto produktů ukončil a dotykové technologie využil při vývoji iPhone. Multiplatformní projekt Apple Magic TouchstreamLP nyní implementuje funkcionalitu TouchStream LP na současném Apple Magic Trackpad, resp. jejich dvojici. Diskuze k vydání probíhá na Redditu.
wget x minut stahoval a y minut odpočíval a pak zase pokračoval x minut ve stahování až do stažení souboru.
Částečně jsem se inspiroval v
této diskuzi a sepsal následující skript. Pokusně tam mám krátkých 10s.
#!/bin/bash
while true
do
wget -c ftp://adresa.cz/nejakysoubor.pripona & sleep 10s
killall -INT wget
echo Preruseni
sleep 5s
done
Smyslem je, aby se společně se stahováním spustilo odpočítávání času a to zabilo wget, pak se počkalo 5s a začal další cyklus.
Přesto mně tento skript dělá psí kusy. Kdyby někdo věděl, jak na to, budu vděčný za radu. Děkuju. mrw
killall wget, protože si tak odstřelíš všechny wgety, ale po wget -c & si uložil hodnotu proměnné $! a zabíjel konkrétní proces. Dále se obecně nemůžeš spolehnout na to, že se ti proces po SIGINT ukončí, takže musíš testovat jeho existenci (potencionální race condition).
No a také postrádám podmínku pro ukončení cyklu, po dotažení souboru.
BTW: nebylo by lepší použít --limit-rate? Imho se snažíš obejít nějaký omezovač připojení.
#!/bin/bash
if [[ -z $1 ]]; then
echo "Parametr by mel byt adresa ke stazeni."
exit 1
fi
function exitX {
kill -9 $PID
exit 1
}
trap exitX SIGINT
while true; do
wget -c "$1" &
PID=$!
# 5 vterin stahuje
echo "Downloading... ($PID)"
sleep 5
# posle SIGSTOP
kill -19 $PID
if [ $? -ne 0 ]; then
kill -9 $PID
fi
# 5 vterin ceka
echo "Waiting..."
sleep 5
done
#!/usr/bin/env python
import urllib2, time, sys, os
delay = 2
burst_time = 12
url = sys.argv[1]
filename = os.path.basename(url)
response = urllib2.urlopen(url)
fw = open(filename, 'w')
stamp = time.time()
downloaded = 0
while True:
data = response.read(65536)
if not data: break
fw.write(data)
downloaded += len(data)
print '%d bytes downloaded' %downloaded
if time.time() - stamp > burst_time:
print 'Waiting ...'
time.sleep(delay)
stamp = time.time()
print 'Done.'
Skriptík zvládá ftp i http a stahuje po 64kb blocích (velikost lze upravit). Občas, asi tak po dvanácti sekundách, se mezi jednotlivými bloky na dvě sekundy trochu prospí. Ten poměr jsem převzal od toho člověka v minulé diskusi, co 30 minut stahoval a 5 minut čekal. V tom programu sice nemám časování naprosto přesné, ale je to schválně - přece nebudu čekat, když mi zrovna teče paket, když zapisuju do souboru nebo tak něco.
Tiskni
Sdílej: