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.
Intel na veletrhu Computex 2024 představil (YouTube) mimo jiné procesory Lunar Lake a Xeon 6.
Na blogu Raspberry Pi byl představen Raspberry Pi AI Kit určený vlastníkům Raspberry Pi 5, kteří na něm chtějí experimentovat se světem neuronových sítí, umělé inteligence a strojového učení. Jedná se o spolupráci se společností Hailo. Cena AI Kitu je 70 dolarů.
Byla vydána nová verze 14.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
Společnost Kaspersky vydala svůj bezplatný Virus Removal Tool (KVRT) také pro Linux.
#!/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: