Byl publikován přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie) za uplynulé dva měsíce. Servo zvládne už i Gmail. Zakázány jsou příspěvky generované pomocí AI.
Raspberry Pi Connect, tj. oficiální služba Raspberry Pi pro vzdálený přístup k jednodeskovým počítačům Raspberry Pi z webového prohlížeče, byla vydána v nové verzi 2.5. Nejedná se už o beta verzi.
Google zveřejnil seznam 1272 projektů (vývojářů) od 185 organizací přijatých do letošního, již jednadvacátého, Google Summer of Code. Plánovaným vylepšením v grafických a multimediálních aplikacích se věnuje článek na Libre Arts.
Byla vydána (𝕏) dubnová aktualizace aneb nová verze 1.100 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.100 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.5.
OpenSearch (Wikipedie) byl vydán ve verzi 3.0. Podrobnosti v poznámkách k vydání. Jedná se o fork projektů Elasticsearch a Kibana.
PyXL je koncept procesora, ktorý dokáže priamo spúštat Python kód bez nutnosti prekladu ci Micropythonu. Podľa testov autora je pri 100 MHz približne 30x rýchlejší pri riadeni GPIO nez Micropython na Pyboard taktovanej na 168 MHz.
Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 12.0. Přehled novinek v aktualizované dokumentaci.
Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-05-06. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Pravděpodobně se jedná o poslední verzi postavenou na Debianu 12 Bookworm. Následující verze by již měla být postavena na Debianu 13 Trixie.
Richard Stallman dnes v Liberci přednáší o svobodném softwaru a svobodě v digitální společnosti. Od 16:30 v aule budovy G na Technické univerzitě v Liberci. V anglickém jazyce s automaticky generovanými českými titulky. Vstup je zdarma i pro širokou veřejnost.
P41PR SP62TZ P24LS P25NR P112HX P26HU SP36BU SP1V4JDa potrebuju je upravit aby ctvrty znak od konce byla mezera.
P4 1PR SP6 2TZ P2 4LS P2 5NR P11 2HX P2 6HU SP3 6BU SP1V 4JDMuzete me nakopnout jak to udelat se sed-em? Predem diky.
sed
nebral:
while read line; do echo ${line:0:${#line}-3} ${line:${#line}-3} doneKontrolu pro příliš krátké řetězce si už doplníte sám.
sed 's/\(^.*\)\(...$\)/\1 \2/' soubor_s_tema_kodama
sed 's/\(...\)$/ \1/'
sed -e 's/\(.*\)\(...\)$/\1 \2/' soubor
file('soubor2', 'w').writelines(([a[:-4]+' '+a[-4:] for a in file('soubor')]))Fůůůůj
perl -ne 's/(?<=...)$/ /; print'
„perl -ne“
Ano, tak s tím nelze nesouhlasit. Perl opravdu ne. perl -pe 's/(?=...$)/ /'
"No a v tomto konkrétním případě jste určitě mohl vymyslet lepší důvody pro kritiku než počet znaků zdrojáku či "pravděpodobnost dostupnosti nástroje"."Kdybyste navrhoval embedded zařízení, dáte tam raději _jeden_ nástroj (python - viz například mobil nokia S60)
Já bych to nebral tak úplně na lehkou váhu.V době, kdy se rozmáhají "chytré krabičky", do kterých si lidé cpou speciální distribuce, je třeba mít se na pozoru, řekl bych.
A na IRIXu a Solarisu mi to taky bude k ničemu, pokud se nerozhodnu stáhnout si extra binárky z nekochan.net nebo něčeho podobného pro Solaris. Na dvou třetinách strojů doma Python nemám, protože na nich potřeba nebyl, a kdybych potřeboval jenom přidat mezeru do sloupce, těžko bych ho kvůli tomu instaloval.To, že jste se rozhodl nenainstalovat python je pouze vaše osobní věc. Nic to nevypovídá o obtížnosti instalace, dostupnosti nebo použitelnosti.
Kdybych tam rozhcházel třeba CherryPy, samozřejmě bych těžko mohl jinak, ale kvůli mezeře do souboru?Viz výše,![]()
Pokud jde o "počet znaků", prostě mi uchází, proč to dělat složitě, když to jde jednoduše, nástrojem přesně k tomuto účelu zamýšleným.Takže čím méně znaků, tím je to podle vás jednodušší? Pak nechápu, proč se tak distancujete od mocného Perlu
$ time sed -e 's/\(...\)$/ \1/' soubor > /dev/null real 0m38.281s user 0m37.978s sys 0m0.212s $ time ./pridej_mezeru.py > /dev/null real 0m27.808s user 0m27.582s sys 0m0.128sPerl by pravděpodobně ve všem zvítězil, ale bohužel je tam nějaká chyba a já to nedákážu ani přečíst, natož opravit.
perl -ne 's/(...)$/ $1/; print'ale nefandil by som mu, regexp bude pomalsi ako priame vypisovanie retazca, co by mohlo byt nasledovne
perl -ne 'substr $_, -4, 0, " " if length > 4; print'
$ time perl -ne 's/(...)$/ $1/; print' soubor > /dev/null real 1m4.121s user 1m0.340s sys 0m0.192sAle ten druhý případ dává perlu jasné vítězství:
$ time perl -ne 'substr $_, -4, 0, " " if length > 4; print' soubor > /dev/null real 0m14.447s user 0m13.433s sys 0m0.236sProti perlu nemám s Pythonem šanci. Především proto, že čitelnost kódu nelze měřit
perl -pe 'substr$_,-4,0," "if length>3'
sed 's/\(...\)$/ \1/'
a snažím se přijít na to, co dělá konkrétního (že sed zpracovává stream, je mi jasné, je to stream editor), mám 75 % textu věnovaného konkrétnímu problému. Kdežto tady
file('soubor2', 'w').writelines(([a[:-4]+' '+a[-4:] for a in file('soubor')]))
je ta nejpodstatnější část ([a[:-4]+' '+a[-4:]) ukrytá v cca. 16 % textu a nejprve se musím prolouskat tím, co ten obecný interpret má v tomhle konkrétním případě vlastně momentálně má za úkol. Jistě, je to ovlivněno psychologií, aktuálními znalostmi jednotlivých nástrojů a vůbec je to subjektivní, ale předpokládá, že v tomhle nebudu sám. Vida! Mohl bych, prosím pěkně, dostat zdrojový kód obou textů a ten soubor nebo jeho generátor, třeba zapakované? Mohl bych to vyzkoušet s jednou zajímavou knihovnou a přesvědčit se, jak je opravdu rychlá... Tedy jinak řečeno, přidat ještě jedno řešení.Jasně, s tím generátorem jsem moc na veřejnost jít nechtěl, ale tady je![]()
file('soubor', 'w').writelines('pepazdepa\n' * 10000000)A testoval jsem to myslím tímhle:
#!/usr/bin/env python import sys for line in file('soubor'): sys.stdout.write(line[:-4] + ' ' + line[-4:])Je to trochu pomalejší než ten one-liner, který jsem poslal předtím (ten prosím nepoužívat), ale zase to nesežere všechnu paměť
ruby -ne 'print $_[0..-5]+" "+$_[-4..-1]' soubora:
#!/usr/bin/ruby f = File.new("soubor") f.each { |line| line.sub!(/(...)$/,' \1'); puts line} f.closeale obě varianty rychlostně hodně zaostavají za sedem, perlem i pythonem.
$ time perl -pe 'substr$_,-4,0," "if length>3' test.txt > /dev/null real 0m0.070s user 0m0.050s sys 0m0.000s $ time python pridej_mezeru.py real 0m0.101s user 0m0.090s sys 0m0.010s $ time perl -pe 's/(?=...$)/ /' test.txt > /dev/null real 0m0.365s user 0m0.360s sys 0m0.000s $ time sed 's/\(...\)$/ \1/' test.txt > /dev/null real 0m0.522s user 0m0.500s sys 0m0.000s
$ time sh pridej_mezeru.sh <test.txt >/dev/null real 0m4.153s user 0m3.020s sys 0m0.100s
sed -e 's/\(...\)$/ \1/'mimochodom, ako sa to ma chovat, ak na riadku su menej ako tri znaky ?
Tiskni
Sdílej: