Daniel Stenberg na svém blogu informuje, že po strncpy() byla ze zdrojových kódů curlu odstraněna také všechna volání funkce strcpy(). Funkci strcpy() nahradili vlastní funkcí curlx_strcopy().
Byla vydána nová verze 25.12.30 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
Společnost Valve publikovala přehled To nej roku 2025 ve službě Steam aneb ohlédnutí za nejprodávanějšími, nejhranějšími a dalšími nej hrami roku 2025.
Byly publikovány výsledky průzkumu mezi uživateli Blenderu uskutečněného v říjnu a listopadu 2025. Zúčastnilo se více než 5000 uživatelů.
V dokumentově orientované databázi MongoDB byla nalezena a v upstreamu již opravena kritická bezpečností chyba CVE-2025-14847 aneb MongoBleed.
Při úklidu na Utažské univerzitě se ve skladovacích prostorách náhodou podařilo nalézt magnetickou pásku s kopií Unixu V4. Páska byla zaslána do počítačového muzea, kde se z pásky úspěšně podařilo extrahovat data a Unix spustit. Je to patrně jediný známý dochovaný exemplář tohoto 52 let starého Unixu, prvního vůbec programovaného v jazyce C.
FFmpeg nechal kvůli porušení autorských práv odstranit z GitHubu jeden z repozitářů patřících čínské technologické firmě Rockchip. Důvodem bylo porušení LGPL ze strany Rockchipu. Rockchip byl FFmpegem na porušování LGPL upozorněn již téměř před dvěma roky.
K dispozici je nový CLI nástroj witr sloužící k analýze běžících procesů. Název je zkratkou slov why-is-this-running, 'proč tohle běží'. Klade si za cíl v 'jediném, lidsky čitelném, výstupu vysvětlit odkud daný spuštěný proces pochází, jak byl spuštěn a jaký řetězec systémů je zodpovědný za to, že tento proces právě teď běží'. Witr je napsán v jazyce Go.
Yazi je správce souborů běžící v terminálu. Napsán je v programovacím jazyce Rust. Podporuje asynchronní I/O operace. Vydán byl v nové verzi 25.12.29. Instalovat jej lze také ze Snapcraftu.
Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.
def only_multiple_occurences(d):
return dict((k, v) for k, v in d.iteritems() if len(v) > 1)
def add_to_dict_list(d, k, x):
if k in d:
d[k].append(x)
else:
d[k] = [x]
k=open('out', 'r')
text = k.read()
words = list(re.findall(r'\S+', text))
nwords = len(words)
n = 2
allngrams = [None, words, {}]
ngrams = allngrams[n]
for i in range(nwords+1-n):
add_to_dict_list(ngrams, tuple(words[i:i+2]), i)
allngrams[n] = only_multiple_occurences(ngrams)
while allngrams[n]:
prevngrams = allngrams[n]
n += 1
allngrams.append({})
ngrams = allngrams[n]
for prevngram, positions in prevngrams.iteritems():
for i in positions:
if i + n <= nwords:
add_to_dict_list(ngrams, prevngram + (words[i+n-1],), i)
allngrams[n] = only_multiple_occurences(ngrams)
n -= 1
excluded = {}
zoznam =[]
out={}
a = 1
while n >= 2:
nextexcluded = set()
for ngram, positions in allngrams[n].iteritems():
if ngram not in excluded:
zoznam.append([' %u ' % len(positions)] + [' '.join(ngram) ])
nextexcluded.add(tuple(ngram[1:]))
nextexcluded.add(tuple(ngram[:-1]))
excluded = nextexcluded
n -= 1
zoznam.sort()
zoznam.reverse()
index = 0
for t in zoznam:
index += 1
t = [index,] + t
zoznam[index-1] = t
Vtedy by som potreboval updatovať treeview, lenže dané pole z ktorého sa ťahajúu údaje sa však nezmenilo od začiatku programu.Této větě tak úplně nerozumím. TreeView zobrazuje nějaký TreeModel, nějaké náhodné datové struktury jsou irelevantní. Když dostanu nová data, přidám je do modelu, view je automaticky zobrazí. Takže problém je, že (a) vůbec nevíš, že dostaneš nová data -- v tom případě chybí nějaká komunikace mezi částmi programu (b) máš nová data, máš tree view model a nevíš, co dělat -- v tom případě se bez znalosti, jak vypadá ten model a jak je z těch dat konstruován, dá poradit jedině to samé co předtím: musíš nová data přidat do modelu (c) máš data, ale je příliš složité je rozdělit na nová a stará -- v tom případě prostě vytvoř nový model a použij set_model() to funguje a neukázal jsi žádný protipříklad
def create_model(self): store = Gtk.ListStore(int,str,str) for item in Load.zoznam: store.append([item[0],item[1],item[2]]) return storea protipríklad asi nieje potrebný, kedže set_model(), by fungoval kebyže sa mi po pridaní nových dát aktualizuje "zoznam"
Jak v pythonu detekuji, že se změnil soubor?? Viz https://github.com/seb-m/pyinotify/blob/master/python2/examples/loop.py, přičemž budeš asi chtít sledovat událost IN_CLOSE_WRITE.
Tiskni
Sdílej: