abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 17:55 | Komunita

Několik vývojářů aplikací pro GNOME napsalo otevřený dopis Please don’t theme our apps komunitě kolem GNOME se žádostí, aby jednotlivé linuxové distribuce neměnily vzhled jejich aplikací.

Ladislav Hagara | Komentářů: 11
včera 16:44 | Komunita

O víkendu proběhla v Norimberku openSUSE Conference 2019, tj. letošní konference vývojářů a uživatelů linuxové distribuce openSUSE. Na programu byla řada zajímavých přednášek a workshopů. Videozáznamy přednášek jsou k dispozici na media.ccc.de a na YouTube.

Ladislav Hagara | Komentářů: 0
včera 15:11 | IT novinky

Ubuntu doposud instalaci proprietárních ovladačů GPU pouze nabízelo na vyžádání, ovladače se musely stáhnout z Internetu. To se zřejmě pro GPU Nvidia změní s vydáním 19.10, jak je patrné ze záznamu v Launchpadu, tedy Ubuntu zahrne ovladače Nvidia 390 a 418 přímo do instalačního obrazu systému, jak to již činí správci derivátu Pop!_OS od firmy System76 dodávající počítače právě s tímto systémem. Velikost obrazu tak naroste o cca 115 MB. Open-source ovladač Nouveau zůstane výchozí.

Fluttershy, yay! | Komentářů: 0
25.5. 20:55 | Zajímavý projekt

Článek na LinuxGizmos.com představuje v NASA vyvinutého autonomního robota ve tvaru krychle pojmenovaného Astrobee neboli Hvězdná včela. Uvnitř včely běží Ubuntu/ROS a Android (GitHub). Na Mezinárodní vesmírné stanici bzučí tři tyto včely. Jejich jména jsou Honey, Queen a Bumble.

Ladislav Hagara | Komentářů: 0
24.5. 20:11 | Zajímavý projekt

Na Humble Bundle lze zdarma a bez DRM získat počítačovou hru Jalopy (YouTube). Hra je určena pro Windows, lze ji ale hrát také v Linuxu (ProtonDB, WineHQ). Speciální akce končí v sobotu v 19:00.

Ladislav Hagara | Komentářů: 0
24.5. 00:55 | Nová verze

ZFS on Linux, tj. implementace OpenZFS (Wikipedie) na Linuxu, byl vydán ve verzi 0.8.0. Přehled novinek v diskusním listu zfs-announce nebo na GitHubu. Nejnovější ZFS on Linux je kompatibilní s Linuxem 2.6.32 až 5.1.*.

Ladislav Hagara | Komentářů: 11
24.5. 00:33 | Nová verze

Byla vydána verze 1.35.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

Ladislav Hagara | Komentářů: 0
23.5. 14:22 | Zajímavý projekt

GitHub v příspěvku na svém blogu představil GitHub Sponsors. Jedná se o další z možností, jak finančně podpořit vývojáře open source softwaru. Podrobnosti v často kladených dotazech (FAQ).

Ladislav Hagara | Komentářů: 9
23.5. 13:44 | Zajímavý software

Společnost Feral Interactive zabývající se vydáváním počítačových her pro operační systémy macOS a Linux vydala počítačovou hru Total War: Three Kingdoms (Wikipedie) pro Linux. Koupit ji lze za 59,99 €. Tentokrát byla verze pro Linux vydána ve stejný den jako verze pro Microsoft Windows.

Ladislav Hagara | Komentářů: 0
23.5. 10:00 | Nová verze

Po téměř 11 měsících vývoje od vydání verze 5.28 byla vydána nová stabilní verze 5.30 programovacího jazyka Perl. Do vývoje se zapojilo 58 vývojářů. Změněno bylo přibližně 620 tisíc řádků v 1 300 souborech. Přehled novinek a změn v podrobném seznamu.

Ladislav Hagara | Komentářů: 2
GPU kterého výrobce aktuálně preferujete pro provoz Linuxu?
 (49%)
 (26%)
 (23%)
 (2%)
Celkem 376 hlasů
 Komentářů: 29, poslední 24.5. 14:49
Rozcestník

Schemik: legenda (ze starych povesti ceskych) pokracuje

15.5.2009 18:55 | Přečteno: 1139× | Programování | poslední úprava: 15.5.2009 19:00

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:

zyvacka

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)

to umi kazdy

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... ;-]

wow!

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. ;-]

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

15.5.2009 19:27 JS
Rozbalit Rozbalit vše Re: Schemik: legenda (ze starych povesti ceskych) pokracuje

Tak mu to posli, treba se mu to bude libit.

15.5.2009 20:38 mimi.vx | skóre: 37 | blog: Mimi.VX | Praha
Rozbalit Rozbalit vše Re: Schemik: legenda (ze starych povesti ceskych) pokracuje

 +1

 

USE="-gnome -kde";turris
16.5.2009 01:50 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Schemik: legenda (ze starych povesti ceskych) pokracuje
ale to je Guy Steele! ;-]
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
22.5.2009 11:01 Tom.š Ze.le.in | skóre: 21 | blog: tz
Rozbalit Rozbalit vše Re: Schemik: legenda (ze starych povesti ceskych) pokracuje

co to nazvat třeba Lambda: The Ultimate Load Balancer? :)

15.5.2009 19:48 M. Lox | skóre: 12
Rozbalit Rozbalit vše Re: Schemik: legenda (ze starych povesti ceskych) pokracuje
Výborná práce, nádhera! O Scheme se trochu zajímám a Schemik mě nadchnul hned jak jsem si přečetl první blogový zápisek, zejména protože podpora paralelismu mi jinde dost chyběla (i v programátorem ovládané podobě).
Ten způsob hlášení chyb taky vypadá zajímavě, budu to muset vyzkoušet.
make menuconfig, not war!
16.5.2009 01:57 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Schemik: legenda (ze starych povesti ceskych) pokracuje
diky!

...do budoucna chystame mnohem vymakanejsi podporu paralelismu (asi i explicitniho)... ale v soucasne dobe to trochu stagnuje, protoze se musim venovat dizertaci na trosku jine tema...

mimochodem, pokud objevite ve schemiku chybu nebo mate zajem o featuru, ktera ve schemu neni a vam by se libila... nebojte se ozvat... pokud to bude adekvatni problem/zajimave reseni, rad to do interpreteru doplnim.
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
16.5.2009 07:47 M. Lox | skóre: 12
Rozbalit Rozbalit vše Re: Schemik: legenda (ze starych povesti ceskych) pokracuje
Já bohužel téměř neprogramuji, vystačím si s již napsanou prací, takže jenom těžko na něco přijdu, ale kdyby něco, určitě dám vědět.
make menuconfig, not war!
15.5.2009 21:18 Stevko
Rozbalit Rozbalit vše Re: Schemik: legenda (ze starych povesti ceskych) pokracuje
Mozno iba nevidim, ale co to spravi s navratovou hodnotou, ktoru to dostane od programu (ta, co v shelli je v "$?")?
16.5.2009 02:00 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Schemik: legenda (ze starych povesti ceskych) pokracuje
vidite spravne. s navratovou hodnotou nikde napracuji stejne jako se stderr. pri implementaci te funkce jsem premyslel, jestli to tam nekam zaradit, nebo ne, ale nenasel jsem pro to zadne prakticke pouziti.

mate nejaky prakticky priklad, kdy by se to hodilo?
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
15.5.2009 22:46 dementni.lojzik | skóre: 19 | blog: ze zivota na vsi
Rozbalit Rozbalit vše Re: Schemik: legenda (ze starych povesti ceskych) pokracuje
ze bysme se meli zabyvat nejakym normalnim jazykem
no ja teda o informatice, programovani a podbnych vecech moc nevim... asi zalezi do jakyho casopisu/konference se to posila, ale stejne nechapu, jak to nekdo muze napsat, nebo lepe receno, jak muze delat recenzenta. Prijde mi, ze je to stejne absurdni jako kdyby odmitli clanek z teorie Banachovych prostoru nebo teorie strun s tim, ze to nema zadne prime aplikace. Asi bych zkusil nejake lepsi casopisy/konference:-)
16.5.2009 02:18 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Schemik: legenda (ze starych povesti ceskych) pokracuje
paradoxni na tom je, ze takove recenze dostaveme i/hlavne z top konferenci. nedavno jsme z hecu poslali reseni jednoho problemu na asi nejlepsi konferenci o funkcionalnim programovani... ani jeden z recenzentu poradne neresil hlavni kapitoly, ale vsichni nam s prehledem vynadali, ze tam mame malo benchmarku... ;-]
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
16.5.2009 12:27 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: Schemik: legenda (ze starych povesti ceskych) pokracuje
Tedy A Brief, Incomplete, and Mostly Wrong History of Programming Languages je naprosto geniální dílko, a look, it's all objects all the way down mne složilo na zem :-)
Ještě na tom nejsem tak špatně, abych četl Viewegha.
16.5.2009 23:08 Jaromír Hradílek | skóre: 29 | Brno
Rozbalit Rozbalit vše Re: Schemik: legenda (ze starych povesti ceskych) pokracuje

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.

17.5.2009 01:09 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Schemik: legenda (ze starych povesti ceskych) pokracuje
diky. to je zajimave. jakou mate distribuci, potazmo jakou mate verzi jadra a libc? ta funkce, ktera se stara o fork spousteneho programu a presmerovani rour je ,,trosku divocejsi'' a je mozne, ze jsem neco prehledl... ;-]
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
17.5.2009 01:37 Jaromír Hradílek | skóre: 29 | Brno
Rozbalit Rozbalit vše Re: Schemik: legenda (ze starych povesti ceskych) pokracuje

Zkoušeno na Debianu testing s jádrem 2.6.26-2-686 a libc6 ve verzi 2.9-4.

17.5.2009 02:00 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Schemik: legenda (ze starych povesti ceskych) pokracuje
diky, az budu mit chvilku, tak se zkusim mrknout na to, co dela tu neplechu... ja na testovacim stroji s debianem mam jeste etch a tam to jede jak ma... :-/
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
17.5.2009 12:32 Martin | skóre: 10 | blog: Nádraží Perdido
Rozbalit Rozbalit vše Re: Schemik: legenda (ze starych povesti ceskych) pokracuje
Guy Steele? No ty krávo. Jděte do toho. :-)
17.5.2009 12:34 Martin | skóre: 10 | blog: Nádraží Perdido
Rozbalit Rozbalit vše Re: Schemik: legenda (ze starych povesti ceskych) pokracuje
Začínám ti docela závidět. :-) 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.
17.5.2009 18:51 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Schemik: legenda (ze starych povesti ceskych) pokracuje
to byl jenom takovy humor... takovi drsnaci zase nejsme. ...zatim! ;-]

ale z hecu jsme ted zkusili poslat paper na ICFP, kde se hodne motaji individua z microsoft research jako je SPJ... sice nam to nevzali, ale nedopadlo to zase tak hrozne... ...za rok to zkusime zas! ;-]

Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
18.5.2009 20:37 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Gentoo: Schemik se stěhuje do overlaye Lisp

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?

18.5.2009 22:43 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Gentoo: Schemik se stěhuje do overlaye Lisp
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 ?
fe[nl]ix: this would be the first time I've seen such a thing
Je tomu opravdu tak?

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. ;-]
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.

Založit nové vláknoNahoru

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.