Google Chrome 147 byl prohlášen za stabilní. Nejnovější stabilní verze 147.0.7727.55 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Vylepšeny byly také nástroje pro vývojáře. Přehled novinek v Chrome DevTools 145 až 147 také na YouTube.
Vývojáři z Laboratoří CZ.NIC vydali nové verze aplikací Datovka (Datovka 4.29.0, Mobilní Datovka 2.6.2). V případě desktopové verze přibyly možnosti projít všechny uložené zprávy, zkontrolovat časy expirací časových razítek a přerazítkovat datové zprávy, které lze v ISDS přerazítkovat. Novinkou je také možnost vytahovat myší ze seznamu ZFO soubory datových zpráv, tento úkon jde udělat i pomocí tlačítek Ctrl+C. Nová verze Mobilní Datovky přináší jen drobné úpravy.
MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.28.0. Z novinek lze vypíchnout novou třídu machine.CAN.
Michael Meeks, CEO společnosti Collabora, na apríla oznámil, nebyl to ale apríl, že nadace The Document Foundation zastřešující vývoj kancelářského balíku LibreOffice vyloučila ze svých řad všechny zaměstnance a partnery společnosti Collabora, tj. více než třicet lidí, kteří po mnoho let přispívali do LibreOffice. Nadace The Document Foundation po několika dnech publikovala oficiální vyjádření. Přiznává pochybení při zakládání
… více »Protože je už po aprílu, můžou strahováci opět zveřejnit program další Virtuální Bastlírny, aniž by připravená témata působila dojmem, že jde o žert. Vězte tedy, že v úterý 14. dubna (změna!!!) od 20:00 proběhne VB, kde se setkají bastlíři, technici, učitelé i nadšenci do techniky a kde i vy se můžete zapojit do družného hovoru, jako by všichni seděli u pomyslného piva. Co mají bastlíři tento měsíc na srdci? Pravděpodobně by nás musel zasáhnout
… více »Byla vydána verze 26.1 aneb čtvrtletní aktualizace open source počítačového planetária Stellarium (Wikipedie, GitHub). Vyzkoušet lze webovou verzi Stellaria na Stellarium Web.
VOID (Video Object and Interaction Deletion) je nový open-source VLM model pro editaci videa, který dokáže z videí odstraňovat objekty včetně všech jejich fyzikálních interakcí v rámci scény (pády, kolize, stíny...) pomocí quadmaskingu (čtyřhodnotová maska, která člení pixely scény do čtyř kategorií: objekt určený k odstranění, překrývající se oblasti, objektem ovlivněné oblasti a pozadí scény) a dvoufázového inpaintingu. Za projektem stojí výzkumníci ze společnosti Netflix.
Design (GitHub) je 2D CAD pro GNOME. Instalovat lze i z Flathubu. Běží také ve webovém prohlížeči.
Příspěvek na blogu herního enginu Godot představuje aplikaci Xogot přinášející Godot na iPad a iPhone. Instalovat lze z App Storu. Za Xogotem stojí Miguel de Icaza (GitHub) a společnost Xibbon.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za březen (YouTube).
def berlekamp_massey_algorithm(seq):
n = len(seq)
b, c = [0]*n, [0]*n
b[0], c[0] = 1, 1
L, m, i = 0, -1, 0
for j in range(n):
d = seq[j]
for k in range(1, L+1):
d ^= c[k] & seq[j-k]
if d == 1:
t = c.copy()
p = [0]*n
for k in range(n-j+m):
p[k] = b[k+j-m] ^ t[k]
if L <= j//2:
L = j + 1 - L
m = j
b, c = t, p
else:
for k in range(n-j+m):
c[k] = b[k+j-m] ^ p[k]
return L, b[:L+1], c[:L+1]
def generate_lfsr_output(poly, seq_len):
n = len(poly)
state = [0]*(n-1) + [1]
output = []
for i in range(seq_len):
out = state[-1]
for j in range(n-1):
if poly[j+1]:
out ^= state[j]
state = [out] + state[:-1]
output.append(out)
return output
def main():
seq = [0, 1, 1, 0, 1, 0, 0, 1]
L, b, c = berlekamp_massey_algorithm(seq)
print(f"Shortest LFSR length: {L}")
print("LFSR polynomial coefficients (backward):")
print(b[::-1])
generated_seq = generate_lfsr_output(b[::-1], len(seq))
print("Generated sequence:")
print(generated_seq)
print("Verification result:")
print(seq == generated_seq)
if __name__ == '__main__':
main()
Výstup vypadá takto
Shortest LFSR length: 4 Polynomial: x^4 + x^3 + x^1 LFSR polynomial coefficients (backward): [1, 1, 0, 1, 0] original sequence: [0, 1, 1, 0, 1, 0, 0, 1] Generated sequence: [1, 1, 0, 0, 1, 0, 0, 0] Verification result: False
def berlekamp_massey(sequence):
n = len(sequence)
s = list(map(int, sequence))
k = 0
for k in range(n):
if s[k] == 1:
break
f = {k + 1, 0}
l = k + 1
g = {0}
a = k
b = 0
for n in range(k + 1, n):
d = 0
for item in f:
d ^= s[item + n - l]
if d == 0:
b += 1
else:
if 2 * l > n:
f ^= set([a - b + item for item in g])
b += 1
else:
temp = f.copy()
f = set([b - a + item for item in f]) ^ g
l = n + 1 - l
g = temp
a = b
b = n - l + 1
degree = max(f)
c = [0] * (degree + 1)
for exp in f:
c[degree - exp] = 1
return f, c, l
def get_polynomial_string(f):
result = ''
lis = sorted(f, reverse=True)
for i in lis:
if i == 0:
result += '1'
else:
result += 'x^%s' % str(i)
if i != lis[-1]:
result += ' + '
return result
def generate_lfsr_output(poly, seq_len, seq):
n = len(poly)
state = seq[:n-1][::-1]
output = []
for i in range(seq_len):
out = state[0]
for j in range(1, n):
if poly[j]:
out ^= state[j-1]
state = [out] + state[:-1]
output.append(out)
return output[::-1]
def main():
seq = [0, 1, 1, 0, 1, 0, 0, 1]
seq2 = [1, 1, 1, 1, 1, 1, 1, 1]
f, c, L = berlekamp_massey(seq)
print("Shortest LFSR length: {}".format(L))
print("Polynomial: {}".format(get_polynomial_string(f)))
print("LFSR polynomial coefficients (backward): {}".format(c))
generated_seq = generate_lfsr_output(c[::-1], len(seq), seq2)
print("original sequence:")
print(seq)
print("Generated sequence:")
print(generated_seq)
print("Verification result:")
print(seq == generated_seq)
if __name__ == '__main__':
main()
berlekamp_massey je pravděpodobně dobře, myslím, že je problém v generování LFSR, počátečním stavu, nebo tvaru polynomu.
Tiskni
Sdílej: