ESP32-C3 adblock přemění lacinou vývojovou desku ESP32‑C3 na samostatný DNS blokovač nejenom reklamních domén, minimalistickou alternativu k populárnímu Pi-hole. ESP32-C3 adblock místo objemných názvů domén ukládá jejich 40-bitové FNV-1a hashe do flash paměti, které pak binárně prohledává, kontrola jedné domény trvá přibližně 10 milisekund. Blocklist pojme až 537 tisíc domén a lze jej spravovat přes webové rozhraní. Projekt zatím
… více »ArtCraft je sada open source aplikací pro práci s obrázky a videi "inspirovaných" aplikacemi od Adobe. Napsaných v Rustu. Pro MacOS, Windows i Linux. Běží také ve webovém prohlížeči. Aktuálně se jedná o 7 aplikací: PhotoCraft (Photoshop), VectorCraft (Illustrator), FilmCraft (Premiere Pro), LightCraft (Lightroom), PdfCraft (Acrobat), EffectCraft (After Effects) a DesignCraft (InDesign). Zdrojové kódy jsou k dispozici na GitHubu.
Strands Decider 2B je malý open-source model s 2 miliardami parametrů, určený k rychlé klasifikaci vstupů a rozhodování mezi možnostmi, generující odpovědi ve stylu modelu Jev. Strands dosáhl přibližně 72% shody s Jevem na veřejné testovací sadě JevBench (tento benchmark pochopitleně nepředstavuje přímé srovnání s modelem Jev). Zdrojové kódy jsou k dispozici na GitHubu pod licencí Apache-2.0, váhy modelu na Hugging Face.
Ve věku 90 let zemřela americká softwarová inženýrka Margaret Hamiltonová, která vedla tým, jenž vyvíjel letový software pro program Apollo amerického Národního úřadu pro letectví a vesmír (NASA).
Japonský Google rozšířil svou kolekci DYI fyzických klávesnic Gboard o klávesnici ve tvaru běžícího pásu. Proč se mají přesouvat ruce po klávesnici, když se mohou přesouvat klávesy k ruce? Pro zájemce je návod na sestavení včetně STL souborů pro 3D tisk a firmware k dispozici na GitHubu.
Nejnovější X.Org X server 21.1.25 a Xwayland 24.1.14 řeší 12 bezpečnostních chyb.
Google Chrome 155 byl prohlášen za stabilní. Přináší podporu JPEG XL (.jxl). Opraveno bylo 247 bezpečnostních chyb.
Konference OpenAlt 2026 hledá přednášející. Přihlásit přednášky lze do neděle 11. října. Konference 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ší.
Byla vydána nová verze 10.6 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu důležitých bezpečnostních oprav, vylepšení funkcí a oprav chyb. Povoluje hybridní postkvantový podpisový algoritmus ssh-mldsa44-ed25519.
Americká společnost Reflection AI světu představila Beam, open-weight model s 501 miliardami parametrů (z toho 23 miliard aktivních), určený především pro programování a práci autonomních agentů. Podle autorů jejich model nabízí výkon srovnatelný s většími modely při výrazně nižších nárocích na výpočetní výkon. Beam nyní ještě prochází závěrečným testováním, na stránkách Reflection AI se však lze zaregistrovat a získat předběžný přístup. Váhy modelu, dokumentace a nástroje pro vývojáře mají být zveřejněny v průběhu tohoto měsíce.
Dobrý den. Chtěl bych požádat o radu ohledně programování v Qt. Pracuji s PyQt, ale to není důležité, spíš mi jde o princip.
Jde mi o to, že neumím namapovat signál na widget, protože se neumím "dostat" k samotnému objektu widgetu.
Totiž, mám soubor app.py, kde je třída s programem, metody a další věci.
Dále mám appGui.py, kde je popsáno GUI programu a také je tam metoda errorWindow(), která vykreslí jednoduché okýnko s QTextEdit. Toto okýnko má Button, u kterého potřebuji, aby spouštěl metodu, která je součástí app.py.
Když si v app.py vytvořím proměnnou s instancí errorWindow(), tak přímo na widget buttonu se nedostanu, signál na něj nenalepím (dělám tady chybu ?), takže si mám widget nechat najít vypsáním potomků instance okýnka, nebo jak se toto řeší ?
Díky za pomoc, snad to je aspoň trochu srozumitelné ..
Tak už jsem se s tím nějak popral.
Dám se zdrojáky řešení kterého jsem potřeboval dosáhnout. Je to samozřejmě úplně jednoduché, stačilo si pořádně uvědomit teorii a pořádně na to kouknout ..
Soubor app.py
#-*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui
from app_gui import AppGui
import sys
class App:
def __init__(self):
self.ui = MyAppGui(None)
QtCore.QObject.connect(self.ui.cudlik, QtCore.SIGNAL("clicked()"), self.ui.cudlikZmacknut)
class MyAppGui(AppGui):
def __init__(self, parent):
AppGui.__init__(self, parent)
def cudlikZmacknut(self):
QtGui.QMessageBox.information(self,
"Stibi si hraje!",
"Zmacknul jsi cudlik kamo!",
QtGui.QMessageBox.Ok)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
mainWindow = App()
mainWindow.ui.show()
app.exec_()
Soubor app_gui.py
from PyQt4 import QtCore, QtGui
class AppGui(QtGui.QMainWindow):
def __init__(self, parent = None):
QtGui.QMainWindow.__init__(self, parent)
self.setWindowTitle("Test")
self.udelejCudlik()
def udelejCudlik(self):
self.cudlik = QtGui.QPushButton("Zmackni me!", self)
Tiskni
Sdílej: