Wayback byl vydán ve verzi 0.3. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.
Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.
Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
Byla vydána nová verze 5.4.0 programu na úpravu digitálních fotografií darktable (Wikipedie). Z novinek lze vypíchnout vylepšenou podporu Waylandu. Nejnovější darktable by měl na Waylandu fungovat stejně dobře jako na X11.
Byla vydána beta verze Linux Mintu 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.
GNU Project Debugger aneb GDB byl vydán ve verzi 17.1. Podrobný přehled novinek v souboru NEWS.
ctenari abclinuxu nejsou jedini, koho pravidelne otravuji vykladanim jiraskovsky dlouhych pribehu o schemikovi, implicitne paralelnim dialektu scheme a lispu. jelikoz ze schemika delame vedu, tak clanky o nem obstastnujem v pravidelnych cyklech i recenzenty na konferencich... s ruznymi vysledky...
vedle pozitivnich ohlasu mame i ty negativni. vetsinou se vyskytuji v konstalaci, ze ke kazdym dvema rozumnym recenzentum (s uzitecnyma komentarema) se najde nejaky magor... jehoz komentar vypada, jak z ,,A Brief, Incomplete, and Mostly Wrong History of Programming Languages''
takovi magori jsou schopni napriklad tvrdit, ze scheme je ,,idealizovany jazyk'', a ze bysme se meli zabyvat nejakym normalnim jazykem. najdou se i jedinci, kteri jsou schopni strhat cely clanek proto, ze vykon neodpovida ,,optimalizujicimu prekladaci''.
nejdriv mne to prislo normalni... na trouby a japonske turisty narazite vsude... ale kdyz jsem takove poznamky cetl snad po desate, docela luxusne jsem se nas...tval. kolik ,,normalnich'' jazyku podporuje takove veci jako jsou funkce vyssiho radu, makra, kontinuace, ...? kdyz z toho budu chtit udelat ,,normalni jazyk'' napisu novy parser a vyhodim polovinu vlastnosti! a koho dneska zajima vykon, kdyz se vesele programuje ve vecech jako je Python nebo PHP?
...nicmene, to byl vyborny motivacni bod.
stupen meho nastvani byl dostatecny, abych zacal premyslet, co bych potreboval, abych mohl schemik zacit prakticky pouzivat na normalni programy... treba na takove to domaci programovani... male jednoduche veci na ktere pouzivam python, bash nebo php. ...a vysledkem byl schemik verze 1.2.38.0. a tady je takovy mirne komentovany changelog:
zacnu od naprostych banalit. upravil jsem instalator tak, aby fungovala korektni instalace a odinstalace primo z scons a nemusel jsem se bat to instalovat na produkcni pocitace. takze, diky novemu instalatoru mam schemik nainstalovany, ale co dal... dalsim logickym krokem, bylo umoznit spoustet programy v schemiku jako shellove skripty... neni problem... obligatni hello world vypada nejak takhle:
#!/usr/bin/schemik -s (display "Hello World!") (newline)
dal to chtelo zapracovat na uzivatelskem rozhrani. ono se to nezda, ale programovaci jazyk bez rozumneho hlaseni chyb je pomalu nepouzitelny... jako odstrasujici priklad jsem si vzal SBCL a pokusil se navrhnout neco, co by bylo trochu vic user-friendly a slo z toho poznat, kde je chyba. napr. zadani spatneho argumentu se ohlasi nasledovne:
schemik> (+ 1 2 'a 4) plus: argument of type 'number' expected at the 3rd position at line 1 passed 4 argument(s): #1: 1 #2: 2 #3:>a #4: 4
pri prepisovani chybovych hlaseni jsem zjistil, ze potrebuju preciznejsi informace o zpracovavanem zdrojovem kodu... a to jsem se nas...tval podruhe... a skoncilo tim, ze jsem konecne vyhodil parser generovany pomoci kombinace bison+flex a napsal si vlastni... no, neni to zadna velka elegance, ale jako ukazka znasilneni preprocessoru je to asi dokonale... ;-]
nejvetsi problem, ktery jsem nejak musel poresit je standardni knihovna. bez rozsahle knihovny funkci se nedaji delat normalni programy. takze jedno z reseni je najit hromadu opic, ktere budou psat knihovny a bindingy... coz je neresitelne... nebo jde na to jit od lesa...
vsiml jsem si, ze posledni dobou na male programky cim dal casteji pouzivam bash. bash jako programovaci jazyk je vylozene hloupy, nevzhledny a vlastne toho ani moc neumi... laskavy ctenar si povsimne, zajimave skutecnosti a to faktu, ze bash v zakladu obsahuje minimum funkci a presto je to mocny programovaci jazyk... kouzelnou vlastnosti bashe, potazmo shellu, je to, ze vlastne kazda aplikace se muze stat ,,funkci'' jazyka. no, neni to bajecne? a nemuzeme toho vyuzit?
yes, we can! schemik dostal novou funkci s ponekud kryptickym nazvem ext:shell*, ktera nedela nic jineho nez, ze spusti zadany program s argumenty, nasype mu data na stdin a vybere si je zpracovane ze stdout. neuveritelne banalni! ale ucinne! je potreba dopsat podporu pro regularni vyrazy mame tu sed, je potreba podpora pro http, mame tu wget...
funkce ma nasledujici tvar (ext:shell* result-type program [ input arg-1 ... arg-n ]), kde result-type je symbol LIST nebo STRING, program je retezec, ktery chceme spustit, input je hodnota nebo seznam hodnot poslanych na standardni vstup programu a arg-1 az arg-n jsou argumenty programu.
myslim, ze vsechny argumenty s vyjimkou result-type nepotrebuji nejake specialni vysvetleni. result-type udava jakym zpusobem chceme nakladat se standardnim vystupem programu, i.e., v pripade, ze result-type ma hodnotu STRING, bere se vystup jako jeden velky textovy retezec, jinak se vystup povazuje za seznam retezcu, kde kazdy radek je jeden retezec.
v praxi to pak znamena, ze si muzeme definovat napr. funkci vracejici aktualni adresar jako:
(define (pwd) (ext:shell* 'STRING "pwd"))a pokud chceme funkci vracejici seznam souboru v aktualnim adresari, muzeme ji definovat nasledovne:
(define (ls) (ext:shell* 'LIST "ls"))
pro zacatek dobre... ne? ale muzeme jit jeste dal... je libo trideni:
(define (string-sort list)
(ext:shell* 'LIST "sort" list))
schemik> (string-sort '("a" "b" "ab" "c" "abc"))
(a ab abc b c)
nebo regularni vyrazy:
(define (regexp:grep pattern list) (ext:shell* 'LIST "grep" list "-e" pattern)) schemik> (regexp:grep "\.c$" (ls)) (dump_vm.c env.c errors.c functions.c initial_env.c int_funcs.c lexer.c parser.c readline_wrapper.c rt.c schemik.c stack.c stack_eval.c thread_pool.c tm_log.c types.c vm.c)pomoci
ext:shell* jde implementovat elegantne prace se soubory... napr. nacteni jednotlivych radku souboru jde realizovat nasledovne:
(define (file->list file) (ext:shell* 'LIST "cat" "" file))
dalsi moznosti ext:shell* jsou mimo rozsah tohoto textu... jenom naznacim, ze pomoci ni jdou implementovat (naprasit) takove ultimatni funkce jako jsou bindingy do databaze nebo plnohodnotne cgi-scripty.
to by snad mohlo pro dnesek stacit... pokud by nekdo docetl az sem a zajimaly jej nejake dalsi pikantni detaily... vyuzijte prosim diskuze.
na zaver si neodpustim veselou historku z konference: nedavno na konferenci ACM, za mnou prisel chlapik ze SUNu (na jmeno si uz nevzpominam, ale kdyz jsem se pak dival, kdo to byl, tak by mel byt odpovedny za ideovou cistotu Javy a JVM) a nechal si povykladat vsechno, co delame a asi se mu to libilo. a pak na me, jestli uz to videl Guy Steele. neco takoveho me vyvedlo natolik z miry, ze jsem si vlastne nebyl jisty jestli jsem se nepreslechl. tak rikam, ze o nas Guy Steele pravdepodobne nema ani tuseni... a on hned neco v tom smyslu: ,,fakt mu to musite poslat, urcite ho to bude zajimat''. ...chlapci u SUNu opravdu maji zajimavy smysl pro humor. ;-]
Tiskni
Sdílej:
Tak mu to posli, treba se mu to bude libit.
+1
co to nazvat třeba Lambda: The Ultimate Load Balancer? :)
Skvělá práce! Na Schemik jsem se chtěl sice podívat už delší dobu, ale až poslední změny mě přiměly si jej konečně stáhnout a přeložit. Při svém krátkém experimentování jsem nicméně narazil na drobný problém, a to ten, že mi uvedené příklady do jednoho vracejí prázdný řetězec/seznam, nepřidám-li prázdný řetězec na místo vstupu, srov.:
schemik> (ext:shell* 'STRING "pwd") schemik> (ext:shell* 'STRING "pwd" "") /home/blackened
Podobně se u mě chová i procedura pwd předdefinovaná v scm/base.scm.
Zkoušeno na Debianu testing s jádrem 2.6.26-2-686 a libc6 ve verzi 2.9-4.
Nedávno jsi psal něco o tom, že máš možnost poslat papery slovutnému Simonu Peyton Jonesovi, a teď tohle...
Seš fakt dobrej.
Minule mě obecenstvo dokopalo, abych dostal Schemik do overlaye Sunrise.
Vzhledem k tomu, že se otěží chopili lidi z gentooáckého projektu Lisp, bude od teď balíček pro Gentoo udržován v oborově bližším repozitáři Lisp (commit).
Ebuildy v Sunrise budou zamaskovány a po nějaké době smazány. Případní uživatelé tak dostanou šanci k čistému přechodu.
Mimochodem lidi se na IRC divili popisu balíku převzatého z domovské stránky:
fe[nl]ix: it interprets scheme *and* CL ? fe[nl]ix: this would be the first time I've seen such a thing
Je tomu opravdu tak?
Minule mě obecenstvo dokopalo, abych dostal Schemik do overlaye Sunrise. Vzhledem k tomu, že se otěží chopili lidi z gentooáckého projektu Lisp, bude od teď balíček pro Gentoo udržován v oborově bližším repozitáři Lisp (commit).diky. v soucasne dobe to vyvijim a testuju na omezenem mnozstvi systemu. ...jinymi slovy na slackwaru a stabilnim debianu. takze pokud to zkousi (nebo snad pouziva) nekdo na jinych platformach jsem jenom rad. pred casem jsem se snazil skamaradit s opensuse buildservice, abych mohl sestavovat balicky pro dalsi distra. ale zatim je to bez nejakeho pouzitelneho uspechu, jelikoz jsem narazil na problemy s casem a tim, ze mam v buildeni rpm-baliku docela mezery. snad o prazdninach bude vic casu...
fe[nl]ix: it interprets scheme *and* CL ?Je tomu opravdu tak?
fe[nl]ix: this would be the first time I've seen such a thing
neni. zatim...
,,Schemik is a ... dialect of Scheme and Common LISP'' znamena (by melo znamenat), ze jsme si vzali to nejlepsi ze schemu (jazyk) a commonlispu (makra) a upravili si to posvem. teda uz delsi dobu premyslim o tom, ze zkusim z commonlispu jeste vykrast i keyword arguments. ;-]