Byl vydán Mozilla Firefox 124.0. Přehled novinek v poznámkách k vydání, poznámkách k vydání pro firmy a na stránce věnované vývojářům. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 124 je již k dispozici také na Flathubu a Snapcraftu.
Man Yue Mo z GitHub Security Lab se podrobně rozepsal o již opravené zranitelnosti CVE-2023-6241 v Arm Mali GPU umožňující získání roota na telefonu Pixel 8 s povoleným MTE (Memory Tagging Extension).
V San José probíhá vývojářská konference NVIDIA GTC 2024. CEO společnosti NVIDIA Jensen Huang měl dvouhodinovou keynote, ve které představil celou řadu novinek: NVIDIA Blackwell platform, NVIDIA NIM microservices, NVIDIA Omniverse Cloud APIs, Project GR00T, …
Byly zpracovány a na YouTube zveřejněny videozáznamy jednotlivých přednášek z letošního Installfestu.
Od 21. do 23. března proběhnou Arduino Days 2024. Sledovat bude možné oficiální streamy. Zúčastnit se lze i lokálních akcí. V Česku jsou aktuálně registrovány dvě: v Praze na Matfyzu a v Poličce v městské knihovně.
Letošní ročník konference LinuxDays se uskuteční o víkendu 12. a 13. října, opět se potkáme v pražských Dejvicích na FIT ČVUT. Také během letošního ročníku nás budou čekat desítky přednášek, workshopy, stánky a spousta doprovodného programu. Aktuální dění můžete sledovat na Twitteru, Facebooku nebo na Mastodonu, přidat se můžete také do telegramové diskusní skupiny.
Byla vydána nová major verze 2.0.0 a krátce na to opravné verze 2.0.1 open source online editoru Etherpad (Wikipedie) umožňujícího společné úpravy v reálném čase.
Matematický software GNU Octave byl vydán ve verzi 9.1.0. Podrobnosti v poznámkách k vydání. Nově je preferovaný grafický backend Qt a preferovaná verze Qt 6. V tomto vydání byly přepracovány funkce pro převod čísel z desítkové soustavy. Jako obvykle jsou zahrnuta také výkonnostní vylepšení a zlepšení kompatibility s Matlabem.
Společnost PINE64 stojící za telefony PinePhone nebo notebooky Pinebook publikovala na svém blogu březnový souhrn novinek. Vypíchnout lze, že pracují na virtuálním asistentu PineVox a zatím bezejmenných sluchátkách na lícní kosti (bone conduction).
$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: