Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.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 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.
Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.
Byla vydána nová verze R14.1.4 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání. Podrobný přehled v Changelogu.
Bylo vydáno OpenBSD 7.7. Opět bez písničky.
V Tiraně proběhl letošní Linux App Summit (LAS) (Mastodon). Zatím nesestříhané videozáznamy přednášek jsou k dispozici na YouTube.
#!/usr/bin/python import sys data = sys.argv[1] key = sys.argv[2] buckets = [] keyLen = len(key) seq = [ None ] * keyLen read = 0 chidx = 0 totalLen = 0 for chpos in range(0, 26): found = True while found: found = True ch = chr(ord('a')+chpos) if ch not in key: found = False break idx=key.index(ch) k=list(key) k[idx]='#' key="".join(k) seq[idx] = chidx+1 chidx +=1 totalLen += chidx print("totalLen: "+str(totalLen)) print("dataLen: "+str(len(data))) if totalLen < len(data): repeats = len(data) / totalLen seqLen = len(seq) for j in range(0, int(repeats)-1): for i in range(0, seqLen): seq.append(seq[i]) bucket = 0 bucket_pos = 0 for c in data: if bucket >= len(buckets): buckets.append([ c ]) else: buckets[bucket].append(c) bucket_pos += 1 if bucket_pos >= seq[bucket]: bucket += 1 bucket_pos = 0 if bucket >= len(seq): bucket = 0 bucket_pos = 0 i = 0 c=1 for j in range(0, 100): found = False for i in range(0, len(seq)): if j < len(buckets[i]): if c % 2 == 0: endch=" " else: endch="" print(buckets[i][j], end=endch) c+=1 else: continue print()A wrapper roche.sh:
#!/bin/bash data=`cat colonel_roche.encrypted` keys=("monday" "monday" "monday" "monday" "monday" "monday" "monday" "monday") offset=0 chunkSize=0 dataSize=`echo -n "$data"|wc -c` keyIdx=0 while [ $offset -lt $dataSize ]; do key=${keys[$keyIdx]} chunkSize=0 for i in $(seq 1 $(echo -n $key|wc -c)); do let chunkSize=$chunkSize+$i done #echo "chunkSize: $chunkSize" workChunk=$(echo "$data"|tail -c +$(expr $offset + 1)|head -c $chunkSize) echo "workChunk: $workChunk" echo "key: $key" if [ -z "$key" ]; then break fi ANS="$ANS $(./roche.py $workChunk $key|grep -v Len)" echo let offset=$offset+$chunkSize let keyIdx=$keyIdx+1 done echo $ANS|xxd -r -ps
#!/usr/bin/python import matplotlib.image as img import numpy as np import scipy.misc from PIL import Image mimg = Image.open("m.png") cimg = Image.open("c.png") m = np.array(mimg) c = np.array(cimg) mcsq = c * c * m scipy.misc.imsave("mcsq.png", mcsq)Tady byla trochu zrada, kdyz clovek pouzil matplotlib.image.imread, tak to normalizovalo data v obrazku na 0...1 (misto 0..255), takze to pak nevychazelo).
Tiskni
Sdílej: