Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 140 (pdf) a HackSpace 77 (pdf).
ESPHome, tj. open source systém umožňující nastavovat zařízení s čipy ESP (i dalšími) pomocí konfiguračních souborů a připojit je do domácí automatizace, například do Home Assistantu, byl vydán ve verzi 2024.4.0.
LF AI & Data Foundation patřící pod Linux Foundation spustila Open Platform for Enterprise AI (OPEA).
Neziskové průmyslové konsorcium Khronos Group vydalo verzi 1.1 specifikace OpenXR (Wikipedie), tj. standardu specifikujícího přístup k platformám a zařízením pro XR, tj. platformám a zařízením pro AR (rozšířenou realitu) a VR (virtuální realitu). Do základu se z rozšíření dostalo XR_EXT_local_floor. Společnost Collabora implementuje novou verzi specifikace do platformy Monado, tj. open source implementace OpenXR.
Byla vydána nová verze 0.38.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 4.4 nebo novější a také libplacebo 6.338.2 nebo novější.
ClamAV (Wikipedie), tj. multiplatformní antivirový engine s otevřeným zdrojovým kódem pro detekci trojských koní, virů, malwaru a dalších škodlivých hrozeb, byl vydán ve verzích 1.3.1, 1.2.3 a 1.0.6. Ve verzi 1.3.1 je mimo jiné řešena bezpečnostní chyba CVE-2024-20380.
Digitální a informační agentura (DIA) oznámila (PDF, X a Facebook), že mobilní aplikace Portál občana je ode dneška oficiálně venku.
#HACKUJBRNO 2024, byly zveřejněny výsledky a výstupy hackathonu města Brna nad otevřenými městskými daty, který se konal 13. a 14. dubna 2024.
Společnost Volla Systeme stojící za telefony Volla spustila na Kickstarteru kampaň na podporu tabletu Volla Tablet s Volla OS nebo Ubuntu Touch.
Společnost Boston Dynamics oznámila, že humanoidní hydraulický robot HD Atlas šel do důchodu (YouTube). Nastupuje nová vylepšená elektrická varianta (YouTube).
$posts= preg_split('/From (.+) na (.+) (Mon|Tue|Wed|Thu|Fri|Sat|Sun) (.{3}) (.{2}) (\d{2}):(\d{2}):(\d{2}) (\d{4})/', implode(file('test.txt')), -1, PREG_SPLIT_NO_EMPTY); while(list($key,$value)= each($posts)){ $post_split= preg_split('/Message-ID: (.+)/',$value); $head= $post_split[0]; $message_text= $post_split[1]; preg_match('/From: (.+) na (.+) \((.+)\)/',$head,$from); preg_match('/Subject: (.+)/',$head,$message_subject); $post= $from[0]."\n".$message_subject[0]."\n\n".trim($message_text)."\n"; echo "$key\n<br>".nl2br(htmlspecialchars($post))."<br>\n<hr>\n"; }
Potrebuju nacist soubor a ten pak naparsovat na castiNic vic, nic min to nedela. Ja jsem jen potreboval ten kod vylepsit aby byl efektivnejsi
#!/usr/bin/env perl use strict; use warnings; my $msg={}; my $header=''; my $firstFrom = qr(^From (.+) na (.+) (Mon|Tue|Wed|Thu|Fri|Sat|Sun) (.{3}) (.{2}) (\d{2}):(\d{2}):(\d{2}) (\d{4})$); my $headerLine = qr(^\S+:); sub ParseHeader { my @headerLines = split m($/), $_[0]; my $ret = {}; @$ret{qw(usr site dayOfWeek month day hour min sec year)} = shift(@headerLines) =~ /$firstFrom/; foreach my $line (@headerLines) { # tady si udelej co chces se zbytkem hlavicky a nacpi do $ret } return $ret; } sub PrintMsg { my $msg = shift; return unless ref $msg eq 'HASH' and %$msg; use Data::Dumper; print Data::Dumper->Dump([$msg],['msg']); } while (<>) { chomp; ?$firstFrom?o and $header = $_ and next; if ($header) { /$headerLine/o and $header .= "$/$_" and next; if (/^\s*$/) { PrintMsg ($msg); # end of header - print msg $msg = ParseHeader($header); $header = ''; reset; next; } # falesna hlavicka $msg->{content} .= "$/" . $header; $header = ''; next; } %$msg and $msg->{content} .= "$_$/" and next; /\S/ and die 'Header not found'; }
#!/usr/bin/env perl use strict; use warnings; my $msg={}; my @header; my $firstFrom = qr(^From (.+) na (.+) (Mon|Tue|Wed|Thu|Fri|Sat|Sun) (.{3}) (.{2}) (\d{2}):(\d{2}):(\d{2}) (\d{4})$); my $headerLine = qr(^\S+:); sub ParseHeader { my $ret = {}; @$ret{qw(usr site dayOfWeek month day hour min sec year)} = shift() =~ /$firstFrom/; foreach my $line (@_) { # tady si udelej co chces se zbytkem hlavicky a nacpi do $ret } return $ret; } sub PrintMsg { my $msg = shift; return unless ref $msg eq 'HASH' and %$msg; use Data::Dumper; shift @{$msg->{content}} while $msg->{content}[0] =~ /^\s*$/; pop @{$msg->{content}} while $msg->{content}[$#{$msg->{content}}] =~ /^\s*$/; print Data::Dumper->Dump([$msg],['msg']); } while (<>) { chomp; ?$firstFrom?o and push @header, $_ and next; if (@header) { /$headerLine/o and push @header, $_ and next; if (/^\s*$/) { PrintMsg ($msg); # end of header - print msg $msg = ParseHeader(@header); @header = (); reset; next; } # falesna hlavicka push @{$msg->{content}}, @header; @header = (); next; } %$msg and push @{$msg->{content}}, $_ and next; /\S/ and die 'Header not found'; } PrintMsg($msg);
Tiskni Sdílej: