NiceGUI umožňuje používat webový prohlížeč jako frontend pro kód v Pythonu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána ve verzi 2024.6. Z novinek lze vypíchnout lepší integraci LLM (OpenAI, Google AI, Ollama) nebo podporu Matter 1.3.
IKEA ve Spojeném království hledá zaměstnance do své nové pobočky. Do pobočky v počítačové hře Roblox. Nástupní mzda je 13,15 liber na hodinu.
Alyssa Rosenzweig se v příspěvku na svém blogu Vulkan 1.3 na M1 za 1 měsíc rozepsala o novém Vulkan 1.3 ovladači Honeykrisp pro Apple M1 splňujícím specifikaci Khronosu. Vychází z ovladače NVK pro GPU od Nvidie. V plánu je dále rozchodit DXVK a vkd3d-proton a tím pádem Direct3D, aby na Apple M1 s Asahi Linuxem běžely hry pro Microsoft Windows.
Byla vydána (𝕏) květnová aktualizace aneb nová verze 1.90 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.90 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Byla vydána (Mastodon, 𝕏) nová verze 2024.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení.
Počítačová hra Tetris slaví 40 let. Alexej Pažitnov dokončil první hratelnou verzi 6. června 1984. Mezitím vznikla celá řada variant. Například Peklo nebo Nebe. Loni měl premiéru film Tetris.
MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.23.0. V přehledu novinek je vypíchnuta podpora dynamických USB zařízení nebo nové moduly openamp, tls a vfs.
Canonical vydal Ubuntu Core 24. Představení na YouTube. Nová verze Ubuntu Core vychází z Ubuntu 24.04 LTS a podporována bude 12 let. Ubuntu Core je určeno pro IoT (internet věcí) a vestavěné systémy.
Databáze DuckDB (Wikipedie) dospěla po 6 letech do verze 1.0.0.
autoresponder unix - n n - - pipe
flags= user=nobody argv=/usr/local/sbin/autoreply/autoreply.pl $sender $mailbox
Skript se podívá do sql databáze, zda příjemce mailu má aktivní automatickou odpověď a zda již odesílateli tuto odpověď již v minulosti neposlal a pak pošle autoreply. Nicméně dále mám ještě přes /etc/postfix/mysql-virtual.cf nadefinované mimojiné forwardy. A to konkrétně:
email=jmeno@mojedomena.cz destination=jmeno@mojedomena.cz, kolega@mojedomena.czTím sice docílím toho, že mail je doručen do "mojí" schránky i do schránky kolegy, ale autoresponder v tomto případě nepředá skriptu v proměnné $mailbox jmeno@mojedomena.cz, ale kolega@mojedomena.cz. Poradí někdo, jak docílit toho, aby v tomto případě předal skriptu adresu jmeno@mojedomena.cz? Díky.
Řešení dotazu:
${mailbox} This macro expands to the complete local part of a recip- ient address. For example, with an address user+foo@domain the mailbox is user+foo. A command-line argument that contains ${mailbox} expands to as many command-line arguments as there are recipi- ents.Ukaz ten skript autoreply.pl. Hadam, ze skript spatne prebira nebo zpracovava vsechny parametry.
#!/usr/bin/perl use DBI; use Mail::Mailer; use MIME::Words qw(:all); open CONF, "/usr/local/sbin/autoreply/db.conf"; #open LOG, ">/tmp/mailreply.txt"; while ($radek= {CONF}) { chomp($radek); { $radek=~m/^(\w+)\s+(\S+).*$/; $conf{$1}=$2; } } close CONF; $email=$ARGV[0]; $emailto=$ARGV[1]; #print LOG $email."\n"; #print LOG $emailto."\n"; @cas = localtime(time); $year = 1900 + @cas[5]; $mon = "0".(1 + @cas[4]); $day = @cas[3]; $hour = @cas[2]; $min = @cas[1]; $sec = @cas[0]; $datum = sprintf("%04d%02d%02d%02d%02d%02d", $year, $mon, $day, $hour, $min, $sec); $dsn = "DBI:mysql:database=$conf{database};host=$conf{server};port=$conf{port}"; $reply = DBI -> connect($dsn , $conf{username} , $conf{password}); die "$DBI::errstr" if $DBI::err; $setlatin = $reply -> prepare("SET character_set_results=latin2"); $setlatin -> execute(); $setlatin = $reply -> prepare("SET character_set_connection=latin2"); $setlatin -> execute(); $setlatin = $reply -> prepare("SET character_set_client=latin2"); $setlatin -> execute(); $select = $reply -> prepare("select id,recipient,Subject,message from autoreply where recipient='$emailto' and valid_from<'$datum' and valid_to>'$datum'"); $select -> execute(); die "$DBI::errstr" if $DBI::err; while (($id,$recipient,$Subject,$message) = $select -> fetchrow()) { $poslano = $reply -> prepare("select id from autoreply_sent where replyid=$id and mail_from='$email'"); $poslano -> execute(); die "$DBI::errstr" if $DBI::err; $rownumber = $poslano -> rows(); if ($rownumber == 0) { printf "Bude poslana zprava na mail ".$email." ve zneni ".$message; my $mailer = Mail::Mailer->new("sendmail"); my $charset = 'ISO-8859-2'; my $mailmssg = $message; $mailer->open({From => $emailto, To => $email, Subject => encode_mimewords($Subject, Charset => $charset), 'MIME-Version' => '1.0', 'Content-Type' => "text/plain; charset=$charset", 'Content-Transfer-Encoding' => '8bit', }); print $mailer $mailmssg; $mailer -> close(); $poslano = $reply -> prepare("insert into autoreply_sent (replyid, mail_from) values('$id', '$email')"); $poslano -> execute(); die "$DBI::errstr" if $DBI::err; } }
$emailto=$ARGV[1];Takze se do skriptu ta druha adresa nedostane i kdyby tam nakrasne byla. Ted je otazka jestli se predavaji adresy vsechny na zaklade toho preposilani (@#ARGV), nebo si je bude muset dohledat na zaklade uzivatele v databazi sam a nasledne preposlat na vsechny.
open LOG, ">/tmp/mailreply.txt";a nekde si tam pridej:
foreach my $arg(@ARGV) { print LOG "$arg\n"; }Posli mail a podivej se jake parametry to predalo.
Tiskni Sdílej: