Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.20. Díky 227 přispěvatelům.
Simon Long oznámil Raspberry Pi Desktop pro PC a Mac s Intelem postavený na aktualizovaném Debianu 13 Trixie. S klientem Raspberry Pi Connect pro vzdálenou správu. Ke stažení je vedle Raspberry Pi OS pro Raspberry Pi.
ESP32-C3 adblock přemění lacinou vývojovou desku ESP32‑C3 na samostatný DNS blokovač nejenom reklamních domén, minimalistickou alternativu k populárnímu Pi-hole. ESP32-C3 adblock místo objemných názvů domén ukládá jejich 40-bitové FNV-1a hashe do flash paměti, které pak binárně prohledává, kontrola jedné domény trvá přibližně 10 milisekund. Blocklist pojme až 537 tisíc domén a lze jej spravovat přes webové rozhraní. Projekt zatím
… více »ArtCraft je sada open source aplikací pro práci s obrázky a videi "inspirovaných" aplikacemi od Adobe. Napsaných v Rustu. Pro MacOS, Windows i Linux. Běží také ve webovém prohlížeči. Aktuálně se jedná o 7 aplikací: PhotoCraft (Photoshop), VectorCraft (Illustrator), FilmCraft (Premiere Pro), LightCraft (Lightroom), PdfCraft (Acrobat), EffectCraft (After Effects) a DesignCraft (InDesign). Zdrojové kódy jsou k dispozici na GitHubu.
Strands Decider 2B je malý open-source model s 2 miliardami parametrů, určený k rychlé klasifikaci vstupů a rozhodování mezi možnostmi, generující odpovědi ve stylu modelu Jev. Strands dosáhl přibližně 72% shody s Jevem na veřejné testovací sadě JevBench (tento benchmark pochopitleně nepředstavuje přímé srovnání s modelem Jev). Zdrojové kódy jsou k dispozici na GitHubu pod licencí Apache-2.0, váhy modelu na Hugging Face.
Ve věku 90 let zemřela americká softwarová inženýrka Margaret Hamiltonová, která vedla tým, jenž vyvíjel letový software pro program Apollo amerického Národního úřadu pro letectví a vesmír (NASA).
Japonský Google rozšířil svou kolekci DYI fyzických klávesnic Gboard o klávesnici ve tvaru běžícího pásu. Proč se mají přesouvat ruce po klávesnici, když se mohou přesouvat klávesy k ruce? Pro zájemce je návod na sestavení včetně STL souborů pro 3D tisk a firmware k dispozici na GitHubu.
Nejnovější X.Org X server 21.1.25 a Xwayland 24.1.14 řeší 12 bezpečnostních chyb.
Google Chrome 155 byl prohlášen za stabilní. Přináší podporu JPEG XL (.jxl). Opraveno bylo 247 bezpečnostních chyb.
Konference OpenAlt 2026 hledá přednášející. Přihlásit přednášky lze do neděle 11. října. Konference proběhne o víkendu 7. a 8. listopadu na půdě Fakulty informačních technologií VUT v Brně. Témata konference jsou: Otevřený a svobodný software, IoT a Hnutí tvůrců, Vzdělávání, Bezpečnost a soukromí, Otevřená společnost, komunity a data, OpenMobility a další.
Mám plain text:
[Date.UTC(2014, 11, 23, 5, 12, 0, 0), 3],
[Date.UTC(2014, 11, 23, 5, 14, 0, 0), 3],
[Date.UTC(2014, 11, 23, 5, 16, 0, 0), 2],
[Date.UTC(2014, 11, 23, 5, 18, 0, 0), 2],
[Date.UTC(2014, 11, 23, 5, 20, 0, 0), 2],
[Date.UTC(2014, 11, 23, 5, 22, 0, 0), 2],
[Date.UTC(2014, 11, 23, 5, 24, 0, 0), 2],
[Date.UTC(2014, 11, 23, 5, 26, 0, 0), 2],
[Date.UTC(2014, 11, 23, 5, 28, 0, 0), 1],
[Date.UTC(2014, 11, 23, 5, 30, 0, 0), 1],
[Date.UTC(2014, 11, 23, 5, 32, 0, 0), 1],
[Date.UTC(2014, 11, 23, 5, 34, 0, 0), 1],
[Date.UTC(2014, 11, 23, 5, 36, 0, 0), 1],
[Date.UTC(2014, 11, 23, 5, 38, 0, 0), 1],
[Date.UTC(2014, 11, 23, 5, 40, 0, 0), 0],
A potřeboval bych odstranit řádky výše zvýrazněné kurzívou, aby to vypadalo takto:
[Date.UTC(2014, 11, 23, 5, 12, 0, 0), 3],
[Date.UTC(2014, 11, 23, 5, 14, 0, 0), 3],
[Date.UTC(2014, 11, 23, 5, 16, 0, 0), 2],
[Date.UTC(2014, 11, 23, 5, 26, 0, 0), 2],
[Date.UTC(2014, 11, 23, 5, 28, 0, 0), 1],
[Date.UTC(2014, 11, 23, 5, 38, 0, 0), 1],
[Date.UTC(2014, 11, 23, 5, 40, 0, 0), 0],
Konkrétně potřebuji porovnávat poslední číselný údaj a v případě souvislého opakování ponechat pouze první a poslední záznam.
Dá se to relativně jednoduše zvládnout pomocí sed či awk? Pokud ne, asi bych to řešil mechanicky v bashi (načítání řádků, porovnávání hodnoty, vymazání nadbytečného řádku a pořád dokola, dokud bude co mazat).
Řešení dotazu:
cat soubor | sort -k8 -u -r >soubor1 tac soubor | sort -k8 -u -r >soubor2 #paste -d '\n' soubor1 soubor2 >vysledek paste -d '\n' soubor1 soubor2 | uniq >vysledek
On ten plain text má stovky kB a číselný údaj v posl. sloupci se pohybuje mezi 0 - 5, střídavě nahoru a dolu. "unique" to pročistí tak důkladně, že z těch stovek kB zbude pár řádků.
perl -00 -pe 's/(\N* (\d+)\],\n).*\n(\N* \2\],\n)/$1$3/msg'
perl -ne ' /(\d+)\],/; print $pred_radek if $1!=$pred or $pred2!=$pred; $pred2=$pred; $pred=$1; $pred_radek=$_'vytiskni řádek jestli se předešlý nebo následující řádek liší v čísle před
],
Ps. samozřejmě by bylo přehlednější napsat Perl script než tento "one-liner"
perl -ne ' /(\d+)\],/; print if 1..1; print $pred_radek if $1!=$pred or $pred2!=$pred; $pred2=$pred; $pred=$1; $pred_radek=$_'
0], jinak ho to tiskne, tak bych spíš doporučoval něco jako:
perl -ne 'BEGIN{$pred=-1}; /(\d+)\],/; print $pred_radek if $1!=$pred or $pred2!=$pred; $pred2=$pred; $pred=$1;$pred_radek=$_'
#
problém by ještě nastal kdyby "poslední" řádek nekončil \n, pak by se nevytiskl
sed -re 'H;x;/([0-9]+)\].*\1\]/d'
[Date.UTC(2014, 11, 25, 10, 36, 36, 0), 1],
[Date.UTC(2014, 11, 25, 10, 38, 38, 0), 1],
[Date.UTC(2014, 11, 25, 10, 40, 40, 0), 1],
[Date.UTC(2014, 11, 25, 10, 42, 42, 0), 1],
[Date.UTC(2014, 11, 25, 10, 44, 44, 0), 0],
[Date.UTC(2014, 11, 25, 10, 50, 50, 0), 0],
[Date.UTC(2014, 11, 25, 10, 52, 52, 0), 1],
[Date.UTC(2014, 11, 25, 10, 54, 54, 0), 0],
[Date.UTC(2014, 11, 25, 15, 42, 42, 0), 0],
[Date.UTC(2014, 11, 25, 15, 44, 44, 0), 1],
[Date.UTC(2014, 11, 25, 15, 46, 46, 0), 3],
[Date.UTC(2014, 11, 25, 10, 36, 36, 0), 1],
[Date.UTC(2014, 11, 25, 10, 42, 42, 0), 1],
[Date.UTC(2014, 11, 25, 10, 44, 44, 0), 0],
[Date.UTC(2014, 11, 25, 10, 50, 50, 0), 0],
[Date.UTC(2014, 11, 25, 10, 52, 52, 0), 1],
[Date.UTC(2014, 11, 25, 10, 52, 52, 0), 1],
[Date.UTC(2014, 11, 25, 10, 54, 54, 0), 0],
[Date.UTC(2014, 11, 25, 15, 42, 42, 0), 0],
[Date.UTC(2014, 11, 25, 15, 44, 44, 0), 1],
[Date.UTC(2014, 11, 25, 15, 44, 44, 0), 1],
[Date.UTC(2014, 11, 25, 15, 46, 46, 0), 3],
Tiskni
Sdílej: