O víkendu probíhá konference OpenAlt 2025. Na programu je spousta zajímavých přednášek. Pokud jste v Brně, stavte se. Vstup zdarma.
Josef Průša představil novou velkoformátovou uzavřenou CoreXY 3D tiskárnu Prusa CORE One L a nový open source standard chytrých cívek OpenPrintTag i s novou přepracovanou špulkou.
Na GOG.com běží Autumn Sale. Při té příležitosti je zdarma hororová počítačová hra STASIS (ProtonDB: Platinum).
Ubuntu 25.10 má nově balíčky sestavené také pro úroveň mikroarchitektury x86-64-v3 (amd64v3).
Byla vydána verze 1.91.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Ministerstvo průmyslu a obchodu vyhlásilo druhou veřejnou soutěž v programu TWIST, který podporuje výzkum, vývoj a využití umělé inteligence v podnikání. Firmy mohou získat až 30 milionů korun na jeden projekt zaměřený na nové produkty či inovaci podnikových procesů. Návrhy projektů lze podávat od 31. října do 17. prosince 2025. Celková alokace výzvy činí 800 milionů korun.
Google v srpnu oznámil, že na „certifikovaných“ zařízeních s Androidem omezí instalaci aplikací (včetně „sideloadingu“) tak, že bude vyžadovat, aby aplikace byly podepsány centrálně registrovanými vývojáři s ověřenou identitou. Iniciativa Keep Android Open se to snaží zvrátit. Podepsat lze otevřený dopis adresovaný Googlu nebo petici na Change.org.
Byla vydána nová verze 18 integrovaného vývojového prostředí (IDE) Qt Creator. S podporou Development Containers. Podrobný přehled novinek v changelogu.
Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 2.0. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).
Google Chrome 142 byl prohlášen za stabilní. Nejnovější stabilní verze 142.0.7444.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 20 bezpečnostních chyb. Za nejvážnější z nich bylo vyplaceno 50 000 dolarů. Vylepšeny byly také nástroje pro vývojáře.
$fp = FOpen ($filename, "rb");
$text = FRead ($fp, FileSize ($filename));
FClose ($fp);
$patterns = array(
"/^(.*)\.(.*) /smUe"
);
$replacements = array(
"StrFTime('%d/%m/%Y %H:%M:%S', '\\1')"
);
$text = preg_replace($patterns,$replacements, $text);
cat access.log |
cut -d. -f1 |
while read sec; do
date -d "19700101 00:00:00 $sec sec" "+%d/%m/%Y %H:%M:%S"
done
#!/usr/bin/python
import time
for line in file('access.log'):
splitted = line.split()
firsttwo = ' '.join(splitted[:2])
text = ' '.join(splitted[2:])
time_tuple = time.strptime(firsttwo, '%d/%m/%Y %H:%M:%S')
print time.mktime(time_tuple), text
Zpracovává to asi 10000 řádků za sekundu a paměť by to taky nějak zvlášť žrát nemělo.
10000 řádků za sekundu je málo. Ten php skript zpracuje 50 MB soubor logu za 3 sekunkdy.Tak o takové rychlosti si mohu nechat jen zdát. Odhaduji, že ten tvůj padesátimegový log obsahuje půl miliónu řádků. Už pouhé volání funkce strptime() z pythonu si u mě vezme 70 mikrosekund, což samo o sobě by se natáhlo na více než půl minuty. Rád bych pohlédl kruté pravdě do očí - máme tak strašně odlišné počítače nebo lžou všichni, co údajně svůj web urychlili přepsáním z php do pythonu?
Tak tady je nová verze
#!/usr/bin/env python
import time
for line in file('access.log'):
sec, text = line.split(' ', 1)
ttuple = time.localtime(float(sec))
print time.strftime('%d/%m/%Y %H:%M:%S', ttuple), text,
která zpracovává 40000 řádků za sekundu (změřeno), vypisuje vždy celý řádek logu, jen čas a datum má polidštěný formát. Padesátimegový log se zpracovává 10 sekund a líp to nedokážu.
# time perl -p -e 's/^\d+\.\d+/localtime $&/e;'< access.log > access-lidsky.log real 0m39.863s user 0m30.460s sys 0m3.120s
# cat /var/log/dmesg|grep MIPS Calibrating delay loop... 799.53 BogoMIPS
# ls -l access.log -rw-r----- 1 proxy proxy 49436371 Feb 6 15:23 access.log
Zkusím tedy napodobit ten perlovský kód a předpokládat, že formát data a času vyhovuje tak, jak ho vrací funkce ctime().
#!/usr/bin/env python
import time
for line in file('access.log'):
sec, text = line.split(' ', 1)
print time.ctime(float(sec)), text,
A opravdu se to tím zrychlilo:
$ time ./readfile.py > access-lidsky.log real 0m6.020s user 0m5.415s sys 0m0.527s $ time perl -p -e 's/^\d+\.\d+/localtime $&/e;'< access.log > access-lidsky.log real 0m9.052s user 0m7.245s sys 0m1.725sTakže padesátimegový log se pythonem zpracuje za 6 sekund, v těsném závěsu je perl s devíti sekundami. Ale nad rychlostí toho PHP mi zůstává rozum stát.
Tiskni
Sdílej: