Kriminalisté z NCTEKK společně s českými i zahraničními kolegy objasnili mimořádně rozsáhlou trestnou činnost z oblasti kybernetické kriminality. V rámci operací OCTOPUS a CONNECT ukončili činnost čtyř call center na Ukrajině. V prvním případě se jednalo o podvodné investice, v případě druhém o podvodné telefonáty, při kterých se zločinci vydávali za policisty a pod legendou napadeného bankovního účtu okrádali své oběti o vysoké finanční částky.
Na lepší pokrytí mobilním signálem a dostupnější mobilní internet se mohou těšit cestující v Pendolinech, railjetech a InterPanterech Českých drah. Konsorcium firem ČD - Telematika a.s. a Kontron Transportation s.r.o. dokončilo instalaci 5G opakovačů mobilního signálu do jednotek Pendolino a InterPanter. Tento krok navazuje na zavedení této technologie v jednotkách Railjet z letošního jara.
Rozšíření webového prohlížeče Urban VPN Proxy a další rozšíření od stejného vydavatele (např. 1ClickVPN Proxy, Urban Browser Guard či Urban Ad Blocker) od července 2025 skrytě zachytávají a odesílají celé konverzace uživatelů s AI nástroji (včetně ChatGPT, Claude, Gemini, Copilot aj.), a to nezávisle na tom, zda je VPN aktivní. Sběr probíhá bez možnosti jej uživatelsky vypnout a zahrnuje plný obsah dotazů a odpovědí, metadata relací i
… více »QStudio, tj. nástroj pro práci s SQL podporující více než 30 databází (MySQL, PostgreSQL, DuckDB, QuestDB, kdb+, …), se stal s vydáním verze 5.0 open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí Apache 2.0.
Byla vydána nová verze 259 správce systému a služeb systemd (Wikipedie, GitHub).
Cloudflare Radar poskytuje aktuální informace o globálním internetovém provozu, útocích nebo trendech. Publikován byl celkový přehled za rok 2025. Globální internetový provoz vzrostl v roce 2025 o 19 %.
Správní rada americké mediální skupiny Warner Bros. Discovery (WBD) podle očekávání odmítla nepřátelskou nabídku na převzetí od firmy Paramount Skydance za 108,4 miliardy dolarů (2,25 bilionu Kč). Paramount podle ní neposkytl dostatečné finanční záruky. Akcionářům proto doporučuje nabídku od Netflixu.
Na WhatsAppu se šíří nový podvod, který ovšem vůbec nevypadá jako hackerský útok. Žádná krádež hesla. Žádné narušení zabezpečení. Žádné zjevné varovné signály. Místo toho jsou lidé trikem donuceni, aby útočníkům sami poskytli přístup, a to pouhým provedením toho, co vypadá jako běžný ověřovací krok. Bezpečnostní experti Avastu tento nový typ útoku nazývají ghostpairing, protože útočníci si při něm tiše vytvářejí „zařízení duchů“, které žije uvnitř vašeho účtu.
Český LibreOffice tým vydává aktualizaci překladu příručky LibreOffice Draw 25.8. Tato kniha se zabývá hlavními funkcemi programu Draw, vektorové grafické komponenty systému LibreOffice. Pomocí Draw lze vytvářet širokou škálu grafických obrázků. Příručka je ke stažení na stránce dokumentace a tým hledá dobrovolníky pro další překlady.
Anthony Enzor-DeMeo je novým CEO Mozilla Corporation. Mozillu převzal po dočasné CEO Lauře Chambers. Vybudovat chce nejdůvěryhodnější softwarovou společnost na světě. Firefox by se měl vyvinout v moderní AI prohlížeč.
return super().find_class(module, name) AttributeError: Can't get attribute 'array_constructor' on module 'numpy' from '/usr/lib64/python3.10/site-packages/numpy/__init__.py' Error loading data: 'NoneType' object is not callable Error loading puzzle from lib/games/Medium/tmprPirlZ: Unpickled data is None. AttributeError: Can't get attribute 'array_constructor' on module 'numpy' from '/usr/lib64/python3.10/site-packages/numpy/__init__.py' for module: numpy, name: array_constructorOriginální kód:
class MyUnpickler(pickle.Unpickler):
def find_class(self, module, name):
# help unpickle find the correct module (since sys.path is different
# from when we generated the puzzles)
if module == 'sudoku':
return getattr(sudoku, name)
return pickle.Unpickler.find_class(self, module, name)
def loadPuzzles(num, difficulty='Any'):
indexfile = os.path.join(DATA_DIR, difficulty + ".index")
index = file(indexfile).readlines()
puzzlepaths = random.sample(index, num)
puzzles = []
g = sudoku_maker.SudokuGenerator()
for path in puzzlepaths:
path = path.strip()
infile = os.path.join(DATA_DIR, path)
puz = MyUnpickler(file(infile)).load()
d = g.assess_difficulty(puz.grid)
puzzles.append((puz, d))
return puzzles
Převedený kód:
class MyUnpickler(pickle.Unpickler):
def find_class(self, module, name):
if module == 'Numeric':
# Redirect to numpy
module = 'numpy'
elif module == 'sudoku':
return getattr(sudoku, name)
elif module == 'numpy':
if name == 'array_constructor':
# Handle the specific case for array_constructor
# You can return np.array or a custom function if needed
return np.array # or whatever function you need to return
# Add a fallback for unknown classes
try:
return super().find_class(module, name)
except AttributeError as e:
print(f"AttributeError: {e} for module: {module}, name: {name}")
# Optionally log the entire traceback
import traceback
traceback.print_exc()
def load_my_data(file):
# Check if the input is a string (file path) or a file object
if isinstance(file, str):
with open(file, 'rb') as f:
return MyUnpickler(f).load()
#return pickle.Unpickler(f).load()
else:
try:
return MyUnpickler(file).load()
except Exception as e:
print(f"Error loading data: {e}")
return None
def loadPuzzles(num, difficulty='Any'):
indexfile = os.path.join(DATA_DIR, difficulty + ".index")
with open(indexfile, 'r') as file:
index = file.read().strip().splitlines() # Read lines into a list
puzzlepaths = random.sample(index, num)
puzzles = []
g = sudoku_maker.SudokuGenerator()
for path in puzzlepaths:
path = path.strip()
infile = os.path.join(DATA_DIR, path)
try:
with open(infile, 'rb') as f: # Open the file in binary mode
puz = load_my_data(f) # Use the file object here
if puz is None:
raise ValueError("Unpickled data is None.")
d = g.assess_difficulty(puz.grid)
puzzles.append((puz, d))
except Exception as e:
print(f"Error loading puzzle from {infile}: {e}")
# Continue to the next puzzle instead of returning None
return puzzles # Return the list of puzzles, which may be empty if none were loaded
import pickletools
with open("tmpzVugvu",'rb') as fh: pickletools.dis(fh)
je tam skutence Numeric array:
5036: s SETITEM 5037: S STRING 'grid' 5045: p PUT 362 5050: c GLOBAL 'Numeric array_constructor' 5077: p PUT 363 5082: ( MARK 5083: ( MARK 5084: I INT 9 5087: I INT 9 5090: t TUPLE (MARK at 5083) 5091: p PUT 364 5096: S STRING 'b' 5101: p PUT 365 5106: S STRING '\x02\x00\x00\x00\x00\x07\x01\x00\x00\x00\x08\x00\x00\x00\x06\x05\x03\t\x00\x00\x00\x00\t\x04\x02\x08\x00\x00\x00\x00\x00\x04\x00\x00\x02\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05\x00\x07\x00\x00\x08\x00\x00\x00\x00\x00\x01\t\x03\x05\x00\x00\x00\x00\x03\x05\x07\x04\x00\x00\x00\t\x00\x00\x00\x06\x07\x00\x00\x00\x00\x04' 5426: p PUT 366Podle retezce 'grid' zjistis, ze v sudoku.py je trida SudokuGrid, ktera vyrabi self.grid = Numeric.array(self.grid,typecode='b'). Zaroven je to jedine misto v puvodnim kodu, kde se modul Numeric pouziva. Zadruhe, ChatGPT je k h*vnu, protoze tvoje podminka:
if module == 'Numeric':
# Redirect to numpy
module = 'numpy'
elif module == 'sudoku':
return getattr(sudoku, name)
elif module == 'numpy':
if name == 'array_constructor':
# Handle the specific case for array_constructor
# You can return np.array or a custom function if needed
return np.array # or whatever function you need to return
# Add a fallback for unknown classes
nedava smysl.
['Hard/tmppJClrx']
Numeric array_constructor:
[[2 9 0 0 0 0 0 0 6]
[0 8 0 0 2 6 0 3 0]
[0 3 0 5 0 0 2 0 0]
[5 0 3 0 4 0 0 2 0]
[1 0 0 0 7 0 0 0 5]
[0 7 0 0 8 0 4 0 3]
[0 0 9 0 0 8 0 7 0]
[0 5 0 4 6 0 0 9 0]
[8 0 0 0 0 0 0 5 4]]
Impossible!
Puzzle was:
Solution:
Grid
4 9 8 6 7 2 3 1 5
2 6 3 4 5 1 9 8 7
7 1 5 3 8 9 2 4 6
3 5 7 8 2 6 1 9 4
8 4 1 9 3 7 6 5 2
6 2 9 1 4 5 7 3 8
5 8 6 2 9 3 4 7 1
9 7 2 5 1 4 8 6 3
1 3 4 7 6 8 5 2 9
Puzzle foobared in following state:
Error loading puzzle from lib/games/Hard/tmppJClrx: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Numeric.py
import numpy as np
def array_constructor(pole, typecode, hex_string, typ=True):
# Převod hexadecimálního řetězce na bajty
byte_array = bytes(hex_string, 'latin1')
# Vytvoření NumPy pole z bajtového pole
numpy_array = np.frombuffer(byte_array, dtype=np.uint8)
# Zkontrolujte, zda má pole dostatečný počet prvků pro 9x9
if numpy_array.size < 81:
raise ValueError("Hex string does not contain enough data for a 9x9 array.")
# Přetvoření pole na rozměry 9x9
numpy_array_reshaped = numpy_array[:81].reshape(9, 9)
print ("Numeric array_constructor:")
print (numpy_array_reshaped)
return numpy_array_reshaped
'''
if grid:
if type(grid)==str:
'''
if grid is not False: # Změna podmínky
if isinstance(grid, str):
class DifficultyRating:
def count_values(self, dct):
kk = list(dct.keys()) # Převod dict_keys na seznam, puvodne kk=dct.keys()
kk.sort() # Nyní můžete použít sort()
return [len(dct[k]) for k in kk]
Tiskni
Sdílej: