Byl vydán Mozilla Firefox 159.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 159 bude brzy k dispozici také na Flathubu a Snapcraftu.
Nasazení softwaru, který nyní používá ve svých autech pro čínský trh, zvažuje automobilový koncern Volkswagen také v Evropě, kde by se mohl používat v budoucích vozech značek Volkswagen, Škoda a Cupra. Základem pro budoucí evropské modely by se mohla stát takzvaná China Electronic Architecture, elektronická architektura vyvinutá pro čínské modely ve spolupráci s tamní automobilkou Xpeng.
Vedoucím brněnské pobočky Red Hatu se stal Radek Vokál [LinkedIn].
Open source download manager Fatrat povstal z popela. Autor k dvacetiletému výročí projektu přidal do vínku podporu nejnovější knihovny libtorrent, rozhraní portoval na QT6, došlo k nahrazení podpory java rozšíření pythonem. Webové rozhraní bylo přepsáno s podporou mobilních zařízení. Aplikaci je taktéž možno zkompilovat bez podpory GUI. Více informací v releases.
Zranitelnost Broccoli2Shell (CVE-2026-111497) v kompresní knihovně Brotli se netýká pouze Node.js. Ohroženy jsou také aplikace využívající HTTP. Knihovnu používají webové prohlížeče, servery i řada dalších aplikací a technologií, například také Python nebo Bun. Identifikace všech zranitelných komponent může být obtížná, protože knihovna bývá součástí dalších softwarových balíčků nebo je přímo začleněna do spustitelných souborů aplikací.
Quad9, švýcarský celosvětově působící neziskový poskytovatel DNS, od 24. listopadu 2026 ukončí své služby ve Francii kvůli soudnímu sporu s katarskou televizní stanicí beIN. Ta požadovala blokování domén, které podle ní nelegálně zpřístupňují sportovní přenosy. Francouzský soud Katarům vyhověl a nařídil (🇫🇷, PDF) Quad9 blokaci zavést, pod hrozbou pokuty 1000 eur denně. Provozovatel příkaz odmítá s tím, že blokace
… více »Článek na blogu APNIC vysvětluje, jak správně vytvářet a používat ASPA záznamy — podepsané objekty v RPKI, které uvádějí, kteří poskytovatelé směrování jsou pro dané autonomní číslo (ASN) oprávněni. Síťoví operátoři je mohou využít k ověřování tras BGP a k odhalování úniků tras či podvržených tras.
Byla vydána (𝕏) verze 8.0.0 open source programu pro prolamování hesel hashcat (GitHub, Wikipedie). Přehled novinek v příspěvku v diskusním fóru a pdf.
Byla vydána (𝕏, Bluesky) nová verze 2026.3 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem 6 nových nástrojů v oficiálním oznámení na blogu.
Zdravím, nejde mi rozchodit v Python 2.7.* a GTK+ (gi.repository) DnD mezi dvěma iconview, netuší někdo, kde by mohl být problém?
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from gi.repository import Gtk, Gdk
from gi.repository.GdkPixbuf import Pixbuf
(TARGET_ENTRY_TEXT, TARGET_ENTRY_PIXBUF) = range(2)
(COLUMN_TEXT, COLUMN_PIXBUF) = range(2)
DRAG_ACTION = Gdk.DragAction.COPY
icons = ["gtk-cut", "gtk-paste", "gtk-copy"]
win = Gtk.Window()
content = Gtk.VBox()
#source view
liststore = Gtk.ListStore(Pixbuf, str)
sourceview = Gtk.IconView.new()
sourceview.set_model(liststore)
sourceview.set_pixbuf_column(0)
sourceview.set_text_column(1)
sourceview.enable_model_drag_source(Gdk.ModifierType.BUTTON1_MASK, [],
DRAG_ACTION)
def on_drag_data_get( widget, drag_context, data, info, time):
selected_path = self.get_selected_items()[0]
selected_iter = self.get_model().get_iter(selected_path)
print widget.get_model().get_iter(selected_iter, 1)
sourceview.connect("drag-data-get", on_drag_data_get)
for icon in icons:
pixbuf = Gtk.IconTheme.get_default().load_icon(icon, 64, 0)
liststore.append([pixbuf, "Label"])
content.add(sourceview)
#target view
targetstore = Gtk.ListStore(Pixbuf, str)
targetstore.append([Gtk.IconTheme.get_default().load_icon("gtk-save", 64,0), "X"])
targetview = Gtk.IconView.new()
targetview.set_model(targetstore)
targetview.set_pixbuf_column(0)
targetview.set_text_column(1)
targetview.drag_dest_set(Gtk.DestDefaults.ALL, [], DRAG_ACTION)
def on_drag_data_received(self, widget, drag_context, x,y, data,info, time):
text = data.get_text()
print("Received text: %s" % text)
targetview.connect("drag-data-received", on_drag_data_received)
content.add(targetview)
win.add(content)
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from gi.repository import Gtk, Gdk
from gi.repository.GdkPixbuf import Pixbuf
(TARGET_ENTRY_TEXT, TARGET_ENTRY_PIXBUF) = range(2)
(COLUMN_TEXT, COLUMN_PIXBUF) = range(2)
DRAG_ACTION = Gdk.DragAction.COPY
icons = ["gtk-cut", "gtk-paste", "gtk-copy"]
win = Gtk.Window()
content = Gtk.VBox()
#source view
liststore = Gtk.ListStore(Pixbuf, str)
sourceview = Gtk.IconView.new()
sourceview.set_model(liststore)
sourceview.set_pixbuf_column(0)
sourceview.set_text_column(1)
sourceview.enable_model_drag_source(Gdk.ModifierType.BUTTON1_MASK, [],
DRAG_ACTION)
def on_drag_data_get( widget, drag_context, data, info, time):
selected_path = self.get_selected_items()[0]
selected_iter = self.get_model().get_iter(selected_path)
print widget.get_model().get_iter(selected_iter, 1)
sourceview.connect("drag-data-get", on_drag_data_get)
for icon in icons:
pixbuf = Gtk.IconTheme.get_default().load_icon(icon, 64, 0)
liststore.append([pixbuf, "Label"])
content.add(sourceview)
#target view
targetstore = Gtk.ListStore(Pixbuf, str)
targetstore.append([Gtk.IconTheme.get_default().load_icon("gtk-save", 64,0), "X"])
targetview = Gtk.IconView.new()
targetview.set_model(targetstore)
targetview.set_pixbuf_column(0)
targetview.set_text_column(1)
targetview.drag_dest_set(Gtk.DestDefaults.ALL, [], DRAG_ACTION)
def on_drag_data_received(self, widget, drag_context, x,y, data,info, time):
text = data.get_text()
print("Received text: %s" % text)
targetview.connect("drag-data-received", on_drag_data_received)
content.add(targetview)
win.add(content)
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
Tiskni
Sdílej: