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.
Byla vydána (𝕏) červnová aktualizace aneb nová verze 1.102 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.102 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Byla vydána nová verze 2.4.64 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 8 bezpečnostních chyb.
Společnost xAI na síti 𝕏 představila Grok 4, tj. novou verzi svého AI LLM modelu Grok.
Ministerstvo vnitra odhalilo závažný kyberincident v IT systému resortu. Systém, do kterého se dostal útočník bez oprávnění, byl odpojen a nedošlo k odcizení dat [𝕏].
Před rokem byla streamovací služba HBO Max přejmenována na Max. Dle managementu slovo HBO v názvu nebylo důležité. Včera byl Max přejmenován zpět na HBO Max. Kolik milionů dolarů to stálo? 😂
Byla vydána nová major verze 8.0.0 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata (Wikipedie). Přehled novinek v oficiálním oznámení a v aktualizované dokumentaci.
Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.4. Přehled novinek s náhledy a videi v oznámení na blogu.
Instituce státní správy nebudou smět využívat produkty, aplikace, řešení, webové stránky a webové služby poskytované čínskou společností DeepSeek. Na doporučení Národního úřadu pro kybernetickou a informační bezpečnost rozhodla o jejich zákazu vláda Petra Fialy na jednání ve středu 9. července 2025.
#!/usr/bin/ruby1.9.1 if ARGV[0] == nil puts "Jako argument zadejte adresar se serialem" puts "Nazev adresare bude pouzit pri prejmenovani souboru" exit else cesta = ARGV[0] end if !(test ?d, "#{cesta}") then #kontrola zda je argument skutecne dostupny adesar puts "#{cesta} - neni dostupny adresar" exit end list = `ls #{cesta}` #ziskani seznamu souboru v adresari if cesta =~ /\/$/ #odstraneni / pokud je pritomno cesta_clon = cesta.chop #pri pouziti cesta.chop! je string freeze cesta = cesta_clon #zjistit proc end if cesta =~ /\/(\S+)$/ #ziskani jmena adresare adresar = ($1) end list.each_line { |line| if line =~ /((S|s)\d+(E|e)\d+)/ #zjisteni serie a epizody pokud nazev neobsahuj SXXEYY nic se nedela epizoda = $1 epizoda.upcase! line =~ /([^.]+)$/ #pripona souboru typ = $1 puvodni = cesta+"/"+line #cesta k puvodnimu souboru puvodni.chomp! finalni = cesta+"/"+adresar+"_"+epizoda+"."+typ #cesta k novemu souboru finalni.chomp! `mv "#{puvodni}" "#{finalni}"` #konecne prejmenovani souboru end }
Řešení dotazu:
#!/usr/bin/ruby1.9.1 if ARGV[0] == nil puts "Jako argument zadejte adresar se serialem" puts "Nazev adresare bude pouzit pri prejmenovani souboru" exit else cesta = ARGV[0] end if !(test ?d, "#{cesta}") then #kontrola zda je argument skutecne dostupny adesar puts "#{cesta} - neni dostupny adresar" exit end list = `ls #{cesta}` #ziskani seznamu souboru v adresari if cesta =~ /\/$/ #odstraneni / pokud je pritomno cesta_clon = cesta.chop #pri pouziti cesta.chop! je string freeze cesta = cesta_clon #zjistit proc end if cesta =~ /([^\/]+)$/ # OPRAVA ziskani jmena adresare adresar = ($1) end list.each_line { |line| if line =~ /((S|s)\d+(E|e)\d+)/ #zjisteni serie a epizody pokud nazev neobsahuj SXXEYY nic se nedela epizoda = $1 epizoda.upcase! line =~ /([^.]+)$/ #pripona souboru typ = $1 puvodni = cesta+"/"+line #cesta k puvodnimu souboru puvodni.chomp! finalni = cesta+"/"+adresar+"_"+epizoda+"."+typ #cesta k novemu souboru finalni.chomp! `mv "#{puvodni}" "#{finalni}"` #konecne prejmenovani souboru end }
#!/usr/bin/ruby1.9.1 if ARGV[0] == nil puts "Jako argument zadejte adresar se serialem" puts "Nazev adresare bude pouzit pri prejmenovani souboru" exit elsif !(File.directory?("#{ARGV[0]}")) then #zjisteni zda je zadany puts "#{ARGV[0]} - neni dostupny adresar" #argument skutecne adresar exit end Dir.chdir("#{ARGV[0]}") #zmena pracovniho adresare jmeno_adresare = File.basename("#{ARGV[0]}") #jmeno pracovniho adresare, pouzije se jako cast jmena souboru Dir.foreach(".") { #prochazeni seznamu souboru v danem adresari |soubor| if soubor =~ /((S|s)\d+(E|e)\d+)/ then #zjisteni zda nazev souboru obsahuje SxxEyy epizoda = $1 #ziskani cisla serie a epizody epizoda.upcase! #prevod na velka pismena typ = File.extname("#{soubor}") #ziskani pripony (typu) souboru novy_soubor = jmeno_adresare+"_"+epizoda+typ #vytvoreni noveho jmena souboru File.rename("#{soubor}", "#{novy_soubor}") #prejmenovani souboru puts "#{soubor} >> #{novy_soubor}" end }
#!/usr/bin/env ruby1.9.1 #coding=utf-8 require "getoptlong" adresar = "." #nastavení implicitních hodnot proměných zaklad_jmena = nil test = 0 help = "-h, --help napoveda -d, --drawer jmeno adresare se serialem, bude pouzito jako soucast nazvu souboru -n, --name jmeno pro prejmenovani, nadrazeno jmenu adresare -r, --regexp regexp pro vyhledavani serie a epizody -v, --regexp_version \n\t1 - pro format sAAeBB \t2 - pro format AAxBB -t, --test pro zapnuti testovacího modu, soubory se neprejmenovavaji" regexp = /[S|s](\d+)[E|e](\d+)/ parser = GetoptLong.new #parsovani prikazoveho radku parser.set_options( ["-h", "--help", GetoptLong::NO_ARGUMENT], ["-d", "--drawer", GetoptLong::OPTIONAL_ARGUMENT], ["-v", "--regexp_version", GetoptLong::OPTIONAL_ARGUMENT], ["-n", "--name", GetoptLong::OPTIONAL_ARGUMENT], ["-r", "--regexp", GetoptLong::OPTIONAL_ARGUMENT], ["-t", "--test", GetoptLong::OPTIONAL_ARGUMENT]) parser.each_option { |opt, arg| case opt when "-h" #kdyz je argument -h puts help #vypsat help exit #a skoncit when "-d" adresar = arg #prirazeni argumentu adresare when "-r" regexp = Regexp.compile("#{arg}") #prirazeni regexpu when "-v" case arg when "1" #nastavení variant -v regexp = /[S|s](\d+)[E|e](\d+)/ when "2" regexp = /(\d+)[x|X](\d+)/ end when "-n" #nastavení základu jména zaklad_jmena = arg when "-t" test = 1 end } if !(File.directory?("#{adresar}")) then #zjisteni zda je zadany argument skutecne adresar puts "#{adresar} - neni dostupny adresar" #kdyz ne tak vypsat info exit #a konec end Dir.chdir("#{adresar}") #zmena pracovniho adresare puts "Pracovní adresář - "+Dir.pwd() #vypsani adresare if zaklad_jmena == nil then #když není zadán argument jména zaklad_jmena = File.basename(Dir.pwd()) #použije se název adresáře end puts "Základ jména - "+zaklad_jmena #a vypíše se na výstup Dir.foreach(".") { #prochazeni seznamu souboru v danem adresari |soubor| if soubor =~ regexp then #zjisteni zda nazev souboru obsahuje pozadovany regexp serie = $1 #ziskani cisla serie a epizody epizoda = $2 if serie.size < 2 then #když je velikost řetězce menší jak 2 serie = "0"+serie #přidá se před něj 0 end if epizoda.size < 2 then epizoda = "0"+epizoda end typ = File.extname("#{soubor}") #ziskani pripony (typu) souboru novy_soubor = zaklad_jmena+"_"+"s"+serie+"e"+epizoda+typ #vytvoreni noveho jmena souboru if soubor == novy_soubor then #když název původního souboru a nového je stejný next #přeskočíme na další soubor end i = 0 loop do if File.exist?("#{novy_soubor}") then #když nový název souboru koliduje s již existujícim souborem i = i + 1 novy_soubor = zaklad_jmena+"_"+"s"+serie+"e"+epizoda+"("+i.to_s+")"+typ #pozměníme ho přidáním (i) else #jinak break #pokračujeme dál end end puts "#{soubor} >> #{novy_soubor}" if test == 0 then #když se netestuje File.rename("#{soubor}", "#{novy_soubor}") #přejmenovat soubor else puts "Testovací provoz - nedochází k přejmenování" #jinak jen vypsat hlášku end end }
Tiskni
Sdílej: