Omarchy (Wikipedie) je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 4.5.0. Nově také pro Apple Silicon, konkrétně pro M1/M2/M3/Neo MacBooky.
Byla vydána nová stabilní verze 8.3 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 156 s bezpečnostními opravami z Chromia 157. Přehled novinek i s náhledy v příspěvku na blogu.
Multimediální přehrávač mpv byl vydán ve verzi 0.42.0. Jde o větší balík změn po bezmála roce. Mimo jiné se lépe integruje s Waylandem nebo rozšiřuje podporu DVD/Blu-ray, např. umožňuje přehrávat rovnou obrazy médií (soubory iso).
Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.5.0. Přehled novinek v poznámkách k vydání.
Byla vydána (𝕏) nová verze 8.0 LTS open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.
Byla vydána verze R14.1.7 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.
Bazzite (Wikipedie), tj. linuxová distribuce vycházející z Fedora Linuxu a optimalizována pro hraní počítačových her, byla vydána ve verzi 45. S Open Gaming Collective (OGC) jádrem a novým Easy Anti-Cheatem pro Linux (EAC Linux v2).
MikroTik zveřejnil vlastní bezpečnostní upozornění potvrzující, že zranitelnost linuxového jádra postihuje také RouterOS 7. Jde o use-after-free při zpracování IPv4 TCP spojení s IP options. Zranitelnost se týká provozu směřujícího na TCP službu samotného routeru, nikoli paketů, které router pouze přeposílá. Opraveno v long-term od 7.24.6, v stable od 7.25.1 a devel od 7.26beta5.
Ve správci balíčků APT, používaném v Debianu a odvozených distribucích, byla nalezena a opravena kritická zranitelnost CVE-2026-109518. Vzdálený útočník může obejít ověření stažených balíčků pomocí přesměrování a dočasných chyb HTTP serveru.
$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: