Nourish (GitHub) je nový správce oken pro Linux. Tradiční plochy nahrazuje nekonečným plátnem a posouváním a přibližováním. Využívá vlastní kompozitor pro Wayland s názvem y5. Videoukázka.
Po 20 letech a 17 otevřených (open source) krátkých filmech Blender Studio oznámilo plán na svůj první celovečerní film. Cílem samozřejmě není jenom nový otevřený film, ale především vývoj a vylepšení otevřených nástrojů pro spolupráci napříč celým procesem a vytvoření otevřené příručky (playbook) pro filmovou produkci ve velkém měřítku s informacemi, které jsou obvykle dostupné pouze uvnitř komerčních studií, a pomoci tak nezávislým tvůrcům překonat technické a organizační bariéry.
Byla vydána nová verze 26.6.25 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
Apple bez varování odstranil ze svého obchodu sociální síť VKontaktě i další aplikace skupiny VK, jako je VK Music nebo VK Video [Novinky.cz].
V dubnu loňského roku představený poštovní klient Notion Mail bude 22. září ukončen.
Konference OpenAlt 2026 hledá přednášející. Proběhne o víkendu 7. a 8. listopadu na půdě Fakulty informačních technologií VUT v Brně. Témata konference jsou: Otevřený a svobodný software, IoT a Hnutí tvůrců, Vzdělávání, Bezpečnost a soukromí, Otevřená společnost, komunity a data, OpenMobility a další.
Společnosti OpenAI a Broadcom oznámily čip optimalizovaný pro AI pojmenovaný Jalapeño.
Deno (Wikipedie), běhové prostředí (runtime) pro JavaScript, TypeScript a WebAssembly, bylo vydáno v nové verzi 2.9. Hlavní novinkou je deno desktop pro převod Deno projektu na desktopovou aplikaci. Jedná se o alternativu k frameworkům Electron nebo Tauri.
Od zítra jsou Datové schránky oficiálně na nové adrese datovka.gov.cz. Adresa mojedatovaschranka.cz zůstává funkční do 27. srpna 2026, následně budou uživatelé automaticky přesměrováni na datovka.gov.cz.
Dolphin (Wikipedie), tj. open source multiplatformní emulátor herních konzolí GameCube a Wii od Nintenda, byl vydán ve verzi 2606. S podporou Game Boy Playeru.
#!/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.
Neni v tom problem, je to robota vsude vseho na 1-2 minutky, ale chcel som si to este ulahcit (a potrebujem to spravit raz za 2-3 mesiace). Urcite by to bolo pohodlnejsie spustenim skriptu, ale ak to nebude cez skript, tak svet sa nezruti :) + chcel som zistit (naucit sa) ako editovat nejaky config cez skript s root pravami.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: