Momo je fenka cavapoo, která svými náhodnými stisky kláves bezdrátové klávesnice vytváří jednoduché počítačové hry. Technicky to funguje tak, že Raspberry Pi s připojenou bluetooth klávesnicí posílá text do Claude Code, který pak v Godotu píše hry a sám je i testuje pomocí screenshotů a jednoduchých simulovaných vstupů. Za stisky kláves je Momo automaticky odměňována pamlsky. Klíčový je pro projekt prompt, který instruuje AI, aby i
… více »GNU awk (gawk), implementace specializovaného programovacího jazyka pro zpracování textu, byl vydán ve verzi 5.4.0. Jedná se o větší vydání po více než dvou letech. Mezi četnými změnami figuruje např. MinRX nově jako výchozí implementace pro regulární výrazy.
Internetový prohlížeč Ladybird ohlásil tranzici z programovacího jazyka C++ do Rustu. Přechod bude probíhat postupně a nové komponenty budou dočasně koexistovat se stávajícím C++ kódem. Pro urychlení práce bude použita umělá inteligence, při portování první komponenty prohlížeče, JavaScriptového enginu LibJS, bylo během dvou týdnů pomocí nástrojů Claude Code a Codex vygenerováno kolem 25 000 řádků kódu. Nejedná se o čistě autonomní vývoj pomocí agentů.
Byl vydán Mozilla Firefox 148.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Nově lze snadno povolit nebo zakázat jednotlivé AI funkce. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 148 bude brzy k dispozici také na Flathubu a Snapcraftu.
Byla vydána nová verze 22.1.0, tj. první stabilní verze z nové řady 22.1.x, překladačové infrastruktury LLVM (Wikipedie). Přehled novinek v poznámkách k vydání: LLVM, Clang, LLD, Extra Clang Tools a Libc++.
X86CSS je experimentální webový emulátor instrukční sady x86 napsaný výhradně v CSS, tedy bez JavaScriptu nebo dalších dynamických prvků. Stránka 'spouští' assemblerovový program mikroprocesoru 8086 a názorně tak demonstruje, že i prosté CSS může fungovat jako Turingovsky kompletní jazyk. Zdrojový kód projektu je na GitHubu.
Po šesti letech byla vydána nová verze 1.3 webového rozhraní ke gitovým repozitářům CGit.
Byla vydána nová verze 6.1 linuxové distribuce Lakka (Wikipedie), jež umožňuje transformovat podporované počítače v herní konzole. Nejnovější Lakka přichází s RetroArchem 1.22.2.
Matematický software GNU Octave byl vydán ve verzi 11.1.0. Podrobnosti v poznámkách k vydání. Vedle menších změn rozhraní jsou jako obvykle zahrnuta také výkonnostní vylepšení a zlepšení kompatibility s Matlabem.
Weston, referenční implementace kompozitoru pro Wayland, byl vydán ve verzi 15.0.0. Přehled novinek v příspěvku na blogu společnosti Collabora. Vypíchnout lze Lua shell umožňující psát správu oken v jazyce Lua.
.
Myšlenka je jednoduchá. Místo všech kombinací 1,44 MB disket budeme mít prográmek, co dokáže vykreslit 8x8 pixelů velký monochromatický piktogram (tedy aspoň na architekturách, kde je long long int 64bitů). Proč zrovna 8x8? Jednak proto, že se mi to dobře programovalo a taky proto, že na vstupu může být stále celkem zapamatovatelné a vymyslitelné číslo.
Ano číslo, další podstatná věc, která v odkazovaném blogu zazněla. Každá informace se dá převést na číslo a chtěl jsem, aby s ním prográmek umožnil pracovat.
Tak co to vlastně umí: Program může mít jeden volitelný parametr a to právě to číslo, ze kterého vykreslí piktogram. Jinak kdykoliv je možné v programu zmáčknout klávesu [mezerník] co spustí promítání náhodných piktogramů v intervalu jedna sekunda, znovu stisknutím [mezerníku] se to pauzne. Číslo vygenerovaných piktogramů se vypisuje do konsole, i do titulku okna.
Protože některé piktogramy mohou invertovaně působit odlišně, klávesa [I] spustí (a vypne) střídání inverze.
Cože to vlastně může dokázat vykreslit? No máme
.
Náhodné generování pomocí rand() použité v programu ve funkci [mezerník] má bohužel nevýhodu v tom, že je RAND_MAX podstatně menší než LONG LONG INT. Řeším to škálováním, ale tím jsem spoustu kombinací vyřadil
. Lepší by to bylo propojit s /dev/random, nebo /dev/urandom, ale to už se mi (zatím) nechtělo.
Po krátkém testování mi to pár hezkých obrázků vyrobilo, tak je přikládám. Zdroják hodím do prvního komentáře jako přílohu. Přeložit to jde snad všude kde je gcc a nainstalovaná i devel verze sdl (obvykle balíček sdllib-dev). Nemělo by to jakkoliv poškodit počítač ani data
. Překládat takhle:
gcc -o main main.c `pkg-config --cflags --libs sdl`Jinak proč? No potřeba po dlouhé době provětrat znalosti SDL a C. Jsem prasič, takže kód je šílený
.
A jinak, kdyby tam někdo zahlédl odpověď na otázku života, vesmíru a vůbec a podobně, poslat screen
(a nebo projít všechny možné kombinace a poslat ty nejhezčí pixelarty ;)).
Update: pod prvním komentářem najdete soubor vestirna.c, což je vylepšená verze, která čte z /dev/urandom (kdo chce /dev/random, ať změní ve zdrojáku - dík FAtbluNTovi) a navíc opravuje chybku se čtením vstupu (nečetlo správně nejvyšší řády, teď to po zadání maxima - 18446744073709551615 - vykreslí bílou obrazovku.
Tiskni
Sdílej:
. Tady vidím občas hezké obrázky. Prostě mozek v těch pixelech je s trochou fantazie schopný cosi vyčíst, k něčemu si to přiřadit. Což u hromady nesourodých ascii znaků moc nejde
. Kdyby se na to poštval třeba ještě slovník, bylo by to lepší. Ale to by zas nebyl ono (samozřejmě, v obou případech jde pouze o srandu, ale u toho mého programu myslím že člověk vydrží o pár sekund dýl a to se vyplatí ;P).
. Urcite tam vidim vic nez v hromade caje :).
.
if(!Init())
{
SDL_Quit();
return 1;
}
udelat
Init();
Proc netusim, predtim to slo. Je to nejaky rozbity
. Tady jsem to vylepsil na /dev/random (musi se hybat myskou, jinak dojdou nahodna cisla). Viz priloha.
.
Kdyby to nekdo zkousel a neslo mu to, zrusit testovaci podminku kolem Init() na zacatku mainu. Nevim proc, ale aspon mi neprojde
. Pak to jde.
to co tam mate, je IMHO cislo "posledni" kombinace s indexaci od nuly, ale jako pocet vsech kombinaci to nazvat nejde
. Jinak nejak mi to nebezelo, mam divny asi prekladac (na desktopu mam jeste ubuntu, gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4) ;)). Kupodivu se size nechovalo jako globalni, musel sem ho udelat staticke (proc fakt netusim). A doplnil jsem nejake hlavickove soubory.
+--------+ | | || || || || || || || +--------+ 10
Tak mě napadlo, že rand vrací 32bitové čísla, že? Vygeneruj si čísla dvě a vynásob?
Stejne tak kdyz hazes dvemi kostkami a delas soucet, gausova krivka se tomu tusim nadava.Přesně takto se gaussovské rozdělení dělá. Pokud si to ještě dobře pamatuju, tak na použitelnou verzi stačí posčítat dvanác normalizovaných hodnot (tj. z intervalo 0,1) a odečíst šestku, pro nenormalizované funkce (jako je
rand()) je třeba samozřejmě odečíst šestinásobek RAND_MAX a výsledek touto hodnotou ještě podělit (nebo s ním počítat jako s číslem s pevnou řádovou čárkou).
No, mohl bys udelat inverzni diskretni kosinovou transformaci, treba by z toho lezlo neco zajimaveho :)
dd if=/dev/urandom of=/dev/fb0) převést zpět z frekvenční domény do časové. Takže třeba pomocí ImageMagicku (nemám nainstalovanou HDR verzi, takže nemůžu ověřit správnost):convert -size 512x512 rgb:/dev/urandom -size 512x512 rgb:/dev/urandom -ift show:. Jen by se musela nějak normalizovat amplitudová složka aby se výsledek vešel do rozsahu. A klidně by na to šlo použít to pole 8x8. By z toho sice vylezl jen rozmazaný maglajz, ale i tak je větší šance, že v něm mozek uvidí něco víc než v takovém políčku pixelů 8x8.