Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.5.
OpenSearch (Wikipedie) byl vydán ve verzi 3.0. Podrobnosti v poznámkách k vydání. Jedná se o fork projektů Elasticsearch a Kibana.
PyXL je koncept procesora, ktorý dokáže priamo spúštat Python kód bez nutnosti prekladu ci Micropythonu. Podľa testov autora je pri 100 MHz približne 30x rýchlejší pri riadeni GPIO nez Micropython na Pyboard taktovanej na 168 MHz.
Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 12.0. Přehled novinek v aktualizované dokumentaci.
Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-05-06. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Pravděpodobně se jedná o poslední verzi postavenou na Debianu 12 Bookworm. Následující verze by již měla být postavena na Debianu 13 Trixie.
Richard Stallman dnes v Liberci přednáší o svobodném softwaru a svobodě v digitální společnosti. Od 16:30 v aule budovy G na Technické univerzitě v Liberci. V anglickém jazyce s automaticky generovanými českými titulky. Vstup je zdarma i pro širokou veřejnost.
sudo-rs, tj. sudo a su přepsáné do programovacího jazyka Rust, nahradí v Ubuntu 25.10 klasické sudo. V plánu je také přechod od klasických coreutils k uutils coreutils napsaných v Rustu.
Fedora se stala oficiální distribucí WSL (Windows Subsystem for Linux).
Společnost IBM představila server IBM LinuxONE Emperor 5 poháněný procesorem IBM Telum II.
Byla vydána verze 4.0 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Přehled novinek v poznámkách k vydání. Využíván je Free Pascal Compiler (FPC) 3.2.2.
#!/bin/bash cert="server.crt" key="server.key" cat >/etc/openvpn/server.conf <<EOF proto udp dev tun port 1194 ca ca.crt cert $cert key $key EOF systemctl restart openvpnOtázkou je, zda to je opravdu dobrý nápad a nešlo by to nějak lépe a jednodušeji.
sed '23s/.*/#&/' /etc/openvpn/server.conf && service openvpn restart &
Je jasne, ze zmeny v tomto confe a restart sluzby moze robit len rootsudo
ale zatial neviem ako pridat do urciteho riadku "#" resp. ako editovat konkretny riadoksed -ire "s/^(řádek)$/#\1/"
+ nejaky sleepProč?
$ line=`cat -n /etc/openvpn/server.conf|grep "search text"|awk '{print $1}'` $ echo "je na riadku: $riadok"
$ chmod 700 comment_and_restart uncomment_and_restartSpustenie:
$ ./comment_and_restart
$ ./uncomment_and_restartSubor service.conf
id=persone name=Unknow last_name=LASTSubor config.php
<?php $path_conf="service.conf"; $search="name=Unknow"; ?>Subor comment_and_restart
#!/usr/bin/php <?php include "config.php"; function comment_in_file($path, $search) { /* * Read file */ /* read file as "C array" */ $file=@file($path); if($file === false) { fputs(STDERR, "Error open/read file '$path'\n"); exit(1); } // print_r($file); // vypis na overenie /* * Comming in memory */ $count=count($file); for($a=0;$a<$count; $a++) if(strpos($file[$a], $search) !== false) { if($file[$a][0] != "#") $file[$a]= "#".$file[$a]; else fputs(STDERR, "Warning: Uncomment line $a in '$path'\n"); // break; # uncomment this, if only first searched line } /* * Write from memory to file */ if(file_put_contents($path, $file) === false) { fputs(STDERR, "Error open/write file '$path'\n"); exit(1); } } comment_in_file($path_conf, $search); sleep(2); system("systemctl restart openvpn"); ?>Subor uncomment_and_restart
#!/usr/bin/php <?php include "config.php"; function uncomment_in_file($path, $search) { /* * Read file */ /* nacita pole ako "C array" */ $file=@file($path); if($file === false) { fputs(STDERR, "Error open/read file '$path'\n"); exit(1); } // print_r($file); // vypis na overenie /* * Uncomment in memory */ $count=count($file); for($a=0;$a<$count; $a++) if(strpos($file[$a], $search) !== false) { if($file[$a][0] == "#") $file[$a]= substr($file[$a], 1); else fputs(STDERR, "Warning: Uncomment line $a in '$path'\n"); // break; # uncomment this, if only first searched line } /* * Write from memory to file */ if(file_put_contents($path, $file) === false) { fputs(STDERR, "Error open/write file '$path'\n"); exit(1); } } uncomment_in_file($path_conf, $search) sleep(2); system("systemctl restart openvpn"); ?>
PHP není C, proto je generování chybových hlášek zbytečné a ty zavináče před file() takéNie je. Ale je s nim dost podobny. ... Da sa aj povedal "super C" (pokial viete C). ... A ano. Pouzil som tento pristup, lebo je najlahsi na pochopenie. Pre nezainteresovaneho.
oužíváš cyklus for tam, kde patří foreach - soubor není pole řádek, ale seznam řádekAj tak interne sa musi pouzit nejake for. Jednoduchost. A ulahcuje mi to zmenu riadku. Lebo napr. toto nefunguje:
<?php $array=array("1","2","3","4"); foreach($array as $line) if($line == "3") { echo "set 'X' for value '$line'\n"; $line="X"; } print_r($array); ?>vystup:
set 'X' for value '3' Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )Vdaka za konstr. kritiku.
Máš to rozstrkané ve třech souborech, přitom by stačil jeden parametrizovanýPre jednoduchost. ... Logicku funkcnost si moze sam dat do 1 suboru, alebo napisat. Lahsie napisat "./bla" ako "./rob bla".
Zapomínáš psát složené závorky. Je to sice jen kosmetická vada, ale časem se ti to vymstíAk je 1 podmienka, nepisem ju - moj programatorsky styl.
foreach ($array as &$line)
se už bude chovat správně. Jenže když to chceš mít rychlejší, tak je obvykle výhodnější generovat nový seznam.
<?php $array = array("1", "2", "3", "4"); $output = array(); foreach ($array as $line) { if ($line == "3") { $line="X"; } $output[] = $line; } print_r($output);Jenže PHP umí jít ještě dále:
<?php $array = array("1", "2", "3", "4"); $komentuj = function ($line) { return ($line == "3") ? "X" : $line; }; print_r(array_map($komentuj, $array));
sed -i -e ' /#NastaveniKtereChciMenit/ s/No/Yes/ /#NastaveniKtereChciMenit/ s/^#// /^NastaveniKtereChciTakyMenit/ s/^/#/ /^DalsiNastaveniKtereChciMenit/ s/bila/cerna/ ' /etc/MojeSluzba/konfigurak
Tiskni
Sdílej: