Byla vydána nová verze 5.1 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v poznámkách k vydání. Videopředstavení na YouTube.
Bylo oznámeno vydání nové verze 8.1 "Hoare" kolekce svobodného softwaru umožňujícího nahrávání, konverzi a streamovaní digitálního zvuku a obrazu FFmpeg (Wikipedie). Doprovodný příspěvek na blogu Khronosu rozebírá kódování a dekódování videa pomocí Vulkan Compute Shaders v FFmpeg.
Byl představen open-source a open-hardware prototyp nízkonákladového raketometu kategorie MANPADS, který byl sestaven z běžně dostupné elektroniky a komponent vytištěných na 3D tiskárně. Raketa využívá skládací stabilizační křidélka a canardovou stabilizaci aktivně řízenou palubním letovým počítačem ESP32, vybaveným inerciální měřicí jednotkou MPU6050 (gyroskop a akcelerometr). Přenosné odpalovací zařízení obsahuje GPS,
… více »Vědci z univerzity La Sapienza v Římě vyvinuli systém, který dokáže identifikovat jednotlivce pouze na základě toho, jak narušují signály Wi-Fi. Autoři tuto novou technologii nazvali WhoFi. Na rozdíl od tradičních biometrických systémů, jako jsou skenery otisků prstů a rozpoznávání obličeje, nevyžaduje tato metoda přímý fyzický kontakt ani vizuální vstupy. WhoFi může také sledovat jednotlivce na větší ploše než kamera s pevnou polohou; stačí, je-li k dispozici Wi-Fi síť.
SuperTux (Wikipedie), tj. klasická 2D plošinovka inspirovaná sérií Super Mario, byl vydán v nové verzi 0.7.0. Videoukázka na YouTube. Hrát lze i ve webovém prohlížeči.
Ageless Linux je linuxová distribuce vytvořená jako politický protest proti kalifornskému zákonu o věkovém ověřování uživatelů na úrovni OS (AB 1043). Kromě běžného instalačního obrazu je k dispozici i konverzní skript, který kompatibilní systém označí za Ageless Linux a levné jednodeskové počítače v ceně 12$ s předinstalovaným Ageless Linuxem, které se chystají autoři projektu dávat dětem. Ageless Linux je registrován jako operační
… více »PimpMyGRC upravuje vzhled toolkitu GNU Radio a přidává alternativní barevná témata. Primárním cílem autora bylo pouze vytvořit tmavé prostředí vhodné pro noční práci, nicméně k dispozici je nakonec celá škála barevných schémat včetně možností různých animací a vizuálních efektů (plameny, matrix, bubliny...), které nepochybně posunou uživatelský zážitek na zcela jinou úroveň. Témata jsou skripty v jazyce Python, které nahrazují
… více »GIMP 3.2 byl oficiálně vydán (Mastodon, 𝕏). Přehled novinek v poznámkách k vydání.
FRANK OS je open-source operační systém pro mikrokontrolér RP2350 (s FRANK M2 board) postavený na FreeRTOS, který přetváří tento levný čip na plně funkční počítač s desktopovým uživatelským rozhraním ve stylu Windows 95 se správcem oken, terminálem, prohlížečem souborů a knihovnou aplikací, ovládaný PS/2 myší a klávesnicí, s DVI video výstupem. Otázkou zůstává, zda by 520 KB SRAM stačilo každému 😅.
Administrativa amerického prezidenta Donalda Trumpa by měla dostat zhruba deset miliard dolarů (asi 214 miliard Kč) za zprostředkování dohody o převzetí kontroly nad aktivitami sociální sítě TikTok ve Spojených státech.
Zdravim, potrebuji na win platforme vnorit do GUI okno internet exploreru pomoci PyGTK. Nasel jsem existujici DLL knihovnu GtkIEEmbed (http://live.gnome.org/GtkIEEmbed), ktera by mela pomoci funkce gtk_ie_embed_new() vytvorit objekt typu gtk.Widget. Volam tuto funkci pres ctypes (nemam s ni zatim zadne zkusenosti), ale nefunguje mi to - funkce vraci jen hodnotu INT, nedari se mi ji zmenit ani pomoci restype... Budu velmi vdecny za nejake nakopnuti...
Prozatim experimentuju s timhle:
import gtk
from ctypes import *
class TinyIE:
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
gtkie = cdll.LoadLibrary("libgtkieembed-0.dll")
gtkie.gtk_ie_embed_new.restype = gtk.Widget
self.ie = gtkie.gtk_ie_embed_new()
self.window.add(self.ie)
self.window.show_all()
if __name__ == '__main__':
TinyIE()
gtk.main()
Člověk musí napřed položit dotaz, aby pak konečně o něco zakopl na webu :))
Funkční kód:
import ctypes
from ctypes import *
import gtk
import gobject
class _PyGObject_Functions(ctypes.Structure):
_fields_ = [
('register_class',
ctypes.PYFUNCTYPE(ctypes.c_void_p, ctypes.c_char_p,
ctypes.c_int, ctypes.py_object,
ctypes.py_object)),
('register_wrapper',
ctypes.PYFUNCTYPE(ctypes.c_void_p, ctypes.py_object)),
('register_sinkfunc',
ctypes.PYFUNCTYPE(ctypes.py_object, ctypes.c_void_p)),
('lookupclass',
ctypes.PYFUNCTYPE(ctypes.py_object, ctypes.c_int)),
('newgobj',
ctypes.PYFUNCTYPE(ctypes.py_object, ctypes.c_void_p)),
]
class PyGObjectCAPI(object):
def __init__(self):
addr = ctypes.pythonapi.PyCObject_AsVoidPtr(
ctypes.py_object(gobject._PyGObject_API))
self._api = _PyGObject_Functions.from_address(addr)
def pygobject_new(self, addr):
return self._api.newgobj(addr)
class TinyIE:
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
gtkie = CDLL("libgtkieembed-0.dll")
capi = PyGObjectCAPI()
self.ie = capi.pygobject_new(gtkie.gtk_ie_embed_new())
self.window.add(self.ie)
self.window.show_all()
contents = "<html><title>Hello world / html verze.</title><body><P><B>Hello</B> <i>world</i> <font color='red'>!</font></body></html>";
gtkie.gtk_ie_embed_load_html_from_string (hash(self.ie), contents);
if __name__ == '__main__':
TinyIE()
gtk.main()
Tiskni
Sdílej: