Open source modální textový editor Helix, inspirovaný editory Vim, Neovim či Kakoune, byl vydán ve verzi 25.07. Přehled novinek se záznamy terminálových sezení v asciinema v oznámení na webu. Detailně v CHANGELOGu na GitHubu.
Americký výrobce čipů Nvidia získal od vlády prezidenta Donalda Trumpa souhlas s prodejem svých pokročilých počítačových čipů používaných k vývoji umělé inteligence (AI) H20 do Číny. Prodej těchto čipů speciálně upravených pro čínský trh by tak mohl být brzy obnoven, uvedla firma na svém blogu. Americká vláda zakázala prodej v dubnu, v době eskalace obchodního sporu mezi oběma zeměmi. Tehdy to zdůvodnila obavami, že by čipy mohla využívat čínská armáda.
3D software Blender byl vydán ve verzi 4.5 s prodlouženou podporou. Podrobnosti v poznámkách k vydání. Videopředstavení na YouTube.
Open source webový aplikační framework Django slaví 20. narozeniny.
V Brestu dnes začala konference vývojářů a uživatelů linuxové distribuce Debian DebConf25. Na programu je řada zajímavých přednášek. Sledovat je lze online.
Před 30 lety, tj. 14. července 1995, se začala používat přípona .mp3 pro soubory s hudbou komprimovanou pomocí MPEG-2 Audio Layer 3.
Výroba 8bitových domácích počítačů Commodore 64 byla ukončena v dubnu 1994. Po více než 30 letech byl představen nový oficiální Commodore 64 Ultimate (YouTube). S deskou postavenou na FPGA. Ve 3 edicích v ceně od 299 dolarů a plánovaným dodáním v říjnu a listopadu letošního roku.
Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila open source robota Reachy Mini (YouTube). Předobjednat lze lite verzi za 299 dolarů a wireless verzi s Raspberry Pi 5 za 449 dolarů.
Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.
McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.
#!/bin/bash mount -t cifs //pdc/Users -o iocharset=utf8,codepage=1250,username=xx,password=xxxx /mnt/pdc-users/ && sleep 2 && mount -t cifs //backupServer/users -o iocharset=utf8,codepage=1250,username=yy,password=yyyy /mnt/backupserver-users/ && sleep 2 && rsync -av --delete --exclude="*.tmp" /mnt/pdc-users/ /mnt/backupserver-users/ && sleep 20 && umount /mnt/backupserver-users/ && sleep 2 && umount /mnt/pdc-users/ && echo Povedlo se, zaloha je hotova ! | mail -s rsync xx@xxx.czTento skriptik pripoji cifs svazek naseho PDC, cifs svazek naseho backup serveru a pak je vzajemne rsyncne, nakonec oba svazky odpoji a posle mi maila ze je vsechno v poradku. Problem je ve spojeni prikazu - &&. Pokud se jakykoliv z prikazu nepovede, napr se nepodari pripojit cifs svazek, zbytek prikazu uz nedojede, nic se nedozvim a neco treba zustane primoutnute, coz se mi nelibi. Mate nekdo ideu jak to udelat tak abych do tohoto skriptu dostal podminky? Kdyz se neco neprimoutne tak aby to udelalalo toto, dyz to projde v poradkua by to udelalo toto atd. Poradte mi prosim, jsem v koncich :o). Dekuju moc
Řešení dotazu:
#!/bin/bash RET="NULL" mount -t cifs //pdc/Users -o iocharset=utf8,codepage=1250,username=xx,password=xxxx /mnt/pdc-users/ if [ $? -eq 0 ]; then RET="Nepovedl se mount1." fi sleep 2 mount -t cifs //backupServer/users -o iocharset=utf8,codepage=1250,username=yy,password=yyyy /mnt/backupserver-users/ if [ $? -eq 0 ]; then RET="$RET Nepovedl se mount2." fi sleep 2 rsync -av --delete --exclude="*.tmp" /mnt/pdc-users/ /mnt/backupserver-users/ if [ $? -eq 0 ]; then RET="$RET Nepovedl se rsync." fi sleep 20 umount /mnt/backupserver-users/ if [ $? -eq 0 ]; then RET="$RET Nepovedl se umount1." fi sleep 2 umount /mnt/pdc-users/ if [ $? -eq 0 ]; then RET="$RET Nepovedl se umount2." fi test "$RET" == "NULL" && RET="Povedlo se." echo $RET | mail -s rsync xx@xxx.cz
Jen poznámka: místo
cmd -args if [ $? -ne 0 ]; then ... fi
lze psát rovnou
if ! cmd -args; then ... fi
function chybaKonec { if [ "$?" -ge "1" ] then echo $1 exit ${2:-1}; fi }A za každý (důležitý) příkaz dej tento řádek:
chybaKonec "Selhal krok XXX";S nějakou smysluplnou hláškou samozřejmě. V proměnné
$?
je návratový kód posledního příkazu (0 = OK, všechno ostatní chyba). Ta funkce se hodí k tomu, že to máš na jednom místě a nebudeš mít těma IFama zahnojený celý skript if [ $? -eq 0 ]; then RET="…nějaká chybová hláška…" fiProto je lepší z těchto čtyř řádků udělat funkci a pak ji volat jedním řádkem:
chybaKonec "…nějaká chybová hláška…";Jednak ti to zkrátí a zpřehlední program a jednak ti to usnadní budoucí změny – třeba když budeš chtít přidat logování těchto hlášek do souboru, tak přidáš
echo $1 > /tmp/chyby.log;jen do té definice funkce a nemusíš to dělat na deseti různých místech. Navíc bych to udělal tak, že bych po první chybě skončil (
exit
), protože když se nepovede připojit souborový systém, tak nemá cenu se pokoušet z něj nebo na něj zálohovat.
Chyby patří na chybový výstup, ne na standardní. Jedničku není potřeba escapovat, naopak $1
ano. Takže bych tu funkci viděl nějak takto:
function chybaKonec { if [ $? -ge 1 ]; then echo "${0##*/}: $1" >&2 exit ${2:-1}; fi }
Tiskni
Sdílej: