Apple na své vývojářské konferenci WWDC26 (Worldwide Developers Conference, keynote) představil řadu novinek. Vypíchnout lze novou generaci Apple Intelligence a zbrusu novou Siri, která dostala název Siri AI. Kvůli Aktu o digitálních trzích (DMA) však funkce Siri AI nebudou v systémech iOS 27 a iPadOS 27 k dispozici uživatelům v Evropské unii.
Byla vydána nová verze 1.18.0 distribučního frameworku Flatpak (Wikipedie), tj. technologie umožňující distribuovat aplikace v podobě jednoho instalačního souboru na různé linuxové distribuce a jejich různá vydání. Přehled novinek na GitHubu. Vypíchnout lze podporu rozhraní /dev/kfd pro výpočty na kartách AMD (AMDKFD).
aMule (Wikipedie), tj. multiplatformní klient pro peer-to-peer sdílení souborů pro sítě eD2k and Kademlia, byl po více než pěti letech od vydání poslední verze 2.3.3, vydán v nové major verzi 3.0.0 (GitHub). S novou webovou stránkou a dokumentací.
Byly vyhlášeni vítězové a zveřejněny vítězné zdrojové kódy (YouTube, GitHub) již 29. ročníku soutěže International Obfuscated C Code Contest (IOCCC), tj. soutěže o nejnepřehlednější (nejobfuskovanější) zdrojový kód v jazyce C.
Evropská komise předložila evropský balíček pro technologickou suverenitu, tedy soubor opatření, která mají posílit kapacity EU v oblasti polovodičů, umělé inteligence, cloudu a open source. To Evropě pomůže stát se lídrem v oblasti umělé inteligence, posílit její digitální autonomii a vytvářet podmínky pro udržitelnější digitální budoucnost.
OpenCV (Open Source Computer Vision, Wikipedie), tj. open source multiplatformní knihovna pro zpracování obrazu a počítačové vidění, byla vydána v nové major verzi 5.
Byla vydána nová verze 9.7 multiplatformní digitální pracovní stanice pro práci s audiem (DAW) Ardour. Přehled novinek, vylepšení a oprav v poznámkách k vydání.
Vývojáři webového prohlížeče Ladybird dnes oznámili, že mění způsob vývoje. S blížícím se vydáním alfa verze přestávají přijímat veřejné pull requesty. Všechny otevřené veřejné pull requesty budou uzavřeny. Tým nedokáže garantovat bezpečnost AI generovaných pull requestů.
OpenLogi (GitHub) je open source náhrada aplikace Logi Options+ pro přizpůsobení myší od společnosti Logitech. Zatím běží pouze na macOS.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za květen (YouTube).
#!/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: