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

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

    Ladislav Hagara | Komentářů: 0
    včera 13:33 | Nová verze

    Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.

    Pavel Křivánek | Komentářů: 5
    včera 04:55 | Zajímavý software

    Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.

    Ladislav Hagara | Komentářů: 33
    25.4. 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 13
    25.4. 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 2
    25.4. 13:22 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    25.4. 12:44 | Nová verze

    Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).

    Ladislav Hagara | Komentářů: 0
    25.4. 04:55 | Nová verze

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

    Ladislav Hagara | Komentářů: 0
    25.4. 04:22 | Nová verze

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    25.4. 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (74%)
     (9%)
     (2%)
     (16%)
    Celkem 806 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Schemik: legenda (ze starych povesti ceskych) pokracuje

    15.5.2009 18:55 | Přečteno: 1335× | 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.