Shellbeats je terminálový hudební přehrávač pro Linux a macOS, který umožňuje vyhledávat a streamovat hudbu z YouTube, stahovat odtud skladby a spravovat lokální playlisty. Pro stahování dat z YouTube využívá yt-dlp, pro práci s audiostreamy mpv. Je napsán v jazyce C a distribuován pod licencí GPL-3.0, rezpozitář projektu je na GitHubu.
Byla vydána nová verze 26.1.30 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. S podporou hardwarového dekódování videa. Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
LibrePCB, tj. svobodný multiplatformní softwarový nástroj pro návrh desek plošných spojů (PCB), byl po deseti měsících od vydání verze 1.3 vydán ve verzi 2.0.0. Přehled novinek v příspěvku na blogu a v aktualizované dokumentaci. Zdrojové kódy LibrePCB jsou k dispozici na GitHubu pod licencí GPLv3.
Guido van Rossum, tvůrce programovacího jazyka Python, oslavil 70. narozeniny. Narodil se 31. ledna 1956 v nizozemském Haarlemu.
OpenClaw je open-source AI asistent pro vykonávaní různých úkolů, ovládaný uživatelem prostřednictvím běžných chatovacích aplikací jako jsou například WhatsApp, Telegram nebo Discord. Asistent podporuje jak různé cloudové modely, tak i lokální, nicméně doporučován je pouze proprietární model Claude Opus 4.5 od firmy Anthropic v placené variantě. GitHubová stránka projektu OpenClaw.
Projekt VideoLAN a multimediální přehrávač VLC (Wikipedie) dnes slaví 25 let. Vlastní, tenkrát ještě studentský projekt, začal již v roce 1996 na vysoké škole École Centrale Paris. V první únorový den roku 2001 ale škola oficiálně povolila přelicencování zdrojových kódů na GPL a tím pádem umožnila používání VLC mimo akademickou půdu.
Moltbook je sociální síť podobná Redditu, ovšem pouze pro agenty umělé inteligence - lidé se mohou účastnit pouze jako pozorovatelé. Agenti tam například rozebírají podivné chování lidí, hledají chyby své vlastní sociální sítě, případně spolu filozofují o existenciálních otázkách 🤖.
scx_horoscope je „vědecky pochybný, kosmicky vtipný“ plně funkční plánovač CPU založený na sched_ext. Počítá s polohami Slunce a planet, fázemi měsíce a znameními zvěrokruhu. Upozornil na něj PC Gamer.
O víkendu probíhá v Bruselu konference FOSDEM 2026 (Free and Open source Software Developers’ European Meeting). Program konference je velice nabitý: 37 místností, 71 tracků, 1184 přednášejících, 1069 přednášek, prezentací a workshopů. Sledovat je lze i online. K dispozici budou jejich videozáznamy. Aktuální dění lze sledovat na sociálních sítích.
Společnost Nex Computer stojící za "notebooky bez procesorů a pamětí" NexDock představila telefon NexPhone, který může funguje jako desktop PC, stačí k němu připojit monitor, klávesnici a myš nebo NexDock. Telefon by měl být k dispozici ve třetím čtvrtletí letošního roku. Jeho cena by měla být 549 dolarů. Předobjednat jej lze s vratní zálohou 199 dolarů. V dual-bootu by měl být předinstalovaný Android s Linuxem (Debian) jako aplikací a Windows 11.
CLAIMANT_PYTHON_OBJECT={
'CLAIMANT_TITLE':'pan',
'CLAIMANT_FIRST_NAME':'ferda',
'CLAIMANT_SURNAME':'mravenec',
'CLAIMANT_PLURAL':'', #s
'CLAIMANT_PLURAL_CAPITALISED':'', #S
'CLAIMANT_ADDRESS':'mraveniste pod smrkem',
'CLAIMANT_POSTCODE_1111':'355',
'CLAIMANT_POSTCODE_222':'09',
'CLAIMANT_TELEPHONE_NUMBER':'158158158',
'CLAIMANT_FAX_NUMBER':'',
'CLAIMANT_EMAIL':'f.mravenec@mraveniste.cz',
'CLAIMANT_REF':'',
}
print('dictionary:', CLAIMANT_PYTHON_OBJECT)
window=Tk()
window.title('The Claimant')
frame=Frame(window)
def show_entry_field():
print(entry.get())
for key, value in CLAIMANT_PYTHON_OBJECT.items():
label=Label(frame, text=key)
label.pack()
entry=Entry(frame)
entry.insert(0, value)
entry.pack()
button=Button(frame, text='Save', command=show_entry_field)
button.pack()
frame.pack(padx=10, pady=10)
window.mainloop()
print('dictionary amended:', CLAIMANT_PYTHON_OBJECT)
Za pripadne napady predem diky.
Řešení dotazu:
CLAIMANT_PYTHON_OBJECT={
'CLAIMANT_TITLE':'pan',
'CLAIMANT_FIRST_NAME':'ferda',
'CLAIMANT_SURNAME':'mravenec',
'CLAIMANT_PLURAL':'', #s
'CLAIMANT_PLURAL_CAPITALISED':'', #S
'CLAIMANT_ADDRESS':'mraveniste pod smrkem',
'CLAIMANT_POSTCODE_1111':'355',
'CLAIMANT_POSTCODE_222':'09',
'CLAIMANT_TELEPHONE_NUMBER':'158158158',
'CLAIMANT_FAX_NUMBER':'',
'CLAIMANT_EMAIL':'f.mravenec@mraveniste.cz',
'CLAIMANT_REF':'',
}
print('dictionary:', CLAIMANT_PYTHON_OBJECT)
# <------
class DictFrame(Frame):
def __init__(self, dictionary, *args, **kwargs):
super(DictFrame, self).__init__(*args, **kwargs)
self.dictionary = dictionary
self.entries = []
def append(self, entry):
self.entries.append(entry)
def save(self):
for entry in self.entries:
print(entry.key, '=', entry.var.get())
self.dictionary[entry.key] = entry.var.get()
# <------
class KeyEntry(Entry):
def __init__(self, key, *args, **kwargs):
self.key = key
self.var = StringVar()
kwargs['textvariable'] = self.var
super(KeyEntry, self).__init__(*args, **kwargs)
window=Tk()
window.title('The Claimant')
frame=DictFrame(CLAIMANT_PYTHON_OBJECT, window) # <------
for key, value in CLAIMANT_PYTHON_OBJECT.items():
label=Label(frame, text=key)
label.pack()
entry=KeyEntry(key, frame) # <------
entry.insert(0, value)
entry.pack()
frame.append(entry) # <------
button=Button(frame, text='Save', command=frame.save) # <------
button.pack()
frame.pack(padx=10, pady=10)
window.mainloop()
print('dictionary amended:', CLAIMANT_PYTHON_OBJECT)
entries = [] for key, value in CLAIMANT_PYTHON_OBJECT.items(): ... entries.append((key, entry)) for ent in entries: print ent[1].get()
import logging
from decimal import *
import os
import glob
import pickle
from tkinter import *
import tkinter.messagebox as box
CLAIMANT_PYTHON_OBJECT={
'CLAIMANT_TITLE':'pan',
'CLAIMANT_FIRST_NAME':'ferda',
'CLAIMANT_SURNAME':'mravenec',
'CLAIMANT_PLURAL':'', #s
'CLAIMANT_PLURAL_CAPITALISED':'', #S
'CLAIMANT_ADDRESS':'mraveniste pod smrkem',
'CLAIMANT_POSTCODE_1111':'355',
'CLAIMANT_POSTCODE_222':'09',
'CLAIMANT_TELEPHONE_NUMBER':'158158158',
'CLAIMANT_FAX_NUMBER':'',
'CLAIMANT_EMAIL':'f.mravenec@mraveniste.cz',
'CLAIMANT_REF':'',
}
print('dictionary:', CLAIMANT_PYTHON_OBJECT)
window=Tk()
window.title('The Claimant')
frame=Frame(window)
def show_entry_field():
print(entry.get())
entries = []
for key, value in CLAIMANT_PYTHON_OBJECT.items():
label=Label(frame, text=key)
label.pack()
entry=Entry(frame)
entry.insert(0, value)
entry.pack()
entries.append((key, entry))
button=Button(frame, text='Save', command=show_entry_field)
button.pack()
frame.pack(padx=10, pady=10)
window.mainloop()
for ent in entries:
print (ent[1].get())
print('dictionary amended:', CLAIMANT_PYTHON_OBJECT)
Tiskni
Sdílej: