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í
×
    dnes 15:22 | Nová verze

    Správce sbírky fotografií digiKam byl vydán ve verzi 8.8.0. Jedná se o převážně opravné vydání provázené aktualizacemi knihoven. Novinky zahrnují implicitní použití systémového barevného profilu monitoru, import/export hierarchie štítků, editační nástroj rozostření aj.

    |🇵🇸 | Komentářů: 0
    17.10. 13:22 | IT novinky

    Steve Jobs a superpočítač Cray-1 budou vyobrazeny na pamětních jednodolarových mincích vyražených v příštím roce v rámci série Americká inovace. Série má 57 mincí, tj. 57 inovací. Poslední 4 mince budou vyraženy v roce 2032.

    Ladislav Hagara | Komentářů: 9
    17.10. 12:22 | Pozvánky

    Byl zveřejněn průběžně aktualizovaný program konference OpenAlt 2025 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Konference proběhne o víkendu 1. a 2. listopadu v prostorách FIT VUT v Brně. Vstup je zdarma.

    Ladislav Hagara | Komentářů: 0
    17.10. 12:00 | IT novinky

    Senát včera opětovně nepřijal návrh ústavního zákona, který měl do Listiny základních práv a svobod zakotvit právo občanů platit v hotovosti nebo být off-line. Návrh předložila skupina senátorů již v roce 2023. Senát dnes návrh neschválil, ale ani nezamítl. Pokud by ho přijal, dostala by ho k projednání Sněmovna a vyjádřila by se k němu vláda.

    Ladislav Hagara | Komentářů: 16
    16.10. 23:55 | Nová verze

    V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 13.0 (Mastodon). Forgejo je fork Gitei.

    Ladislav Hagara | Komentářů: 0
    16.10. 14:22 | Bezpečnostní upozornění

    Společnost Eclypsium se na svém blogu rozepsala o bezpečnostním problému počítačů Framework. Jedná se o zranitelnost v UEFI umožňující útočníkům obejít Secure Boot.

    Ladislav Hagara | Komentářů: 1
    16.10. 02:33 | Nová verze

    Editor kódů Zed (Wikipedie) po macOS a Linuxu s verzí 0.208.4běží také ve Windows.

    Ladislav Hagara | Komentářů: 8
    15.10. 17:44 | IT novinky

    Apple dnes představil 14palcový MacBook Pro, iPad Pro a Apple Vision Pro s novým čipem M5.

    Ladislav Hagara | Komentářů: 38
    15.10. 13:55 | Nová verze

    Debian pro mobilní zařízení Mobian (Wikipedie) byl vydán ve verzi 13 Trixie. Nová stabilní verze je k dispozici pro PINE64 PinePhone, PinePhone Pro a PineTab, Purism Librem 5, Google Pixel 3a a 3a XL, OnePlus 6 a 6T a Xiaomi Pocophone F1.

    Ladislav Hagara | Komentářů: 2
    15.10. 13:11 | IT novinky

    Operátor O2 představil tarif Datamanie 1200 GB . Nový tarif přináší 1200 GB dat s neomezenou 5G rychlostí, a také možnost neomezeného volání do všech sítí za 15 Kč na den. Při roční variantě předplatného zákazníci získají po provedení jednorázové platby celou porci dat najednou a mohou je bezstarostně čerpat kdykoli během roku. Do 13. listopadu jej O2 nabízí za zvýhodněných 2 988 Kč. Při průměrné spotřebě tak 100 GB dat vychází na 249 Kč měsíčně.

    Ladislav Hagara | Komentářů: 16
    Jaké řešení používáte k vývoji / práci?
     (37%)
     (46%)
     (21%)
     (21%)
     (24%)
     (18%)
     (21%)
     (18%)
     (18%)
    Celkem 241 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    Rozcestník

    Palivo pro Smalltalk

    19.4.2012 18:39 | Přečteno: 1295× | poslední úprava: 19.4.2012 19:37

    Jak si můžete přečíst ve zprávičce, dnes vyšlo Pharo 1.4. Tento zápisek se ale bude věnovat tomu, co se chystá do další verze - serializeru Fuel. A protože to není úplně obyčejný serializer objektů, posouvá možnosti Smalltalku zase o kousek dál.

    Způsobů, jak ukládat objekty do souborů, bylo a je ve Smalltalku celá řada. V první řadě je to samozřejmě samotná image jako obraz kompletní objektové paměti. EToys používají SmartRefStream přizpůsobený především přenášení projektů, existují serializery určené pro ukládání objektů do databází apod. Přesto se pár vývojářů rozhodlo vytvořit nový moderní rychlý serializer - a tak světlo světa spatřil Fuel.

    Hlavní předností Fuelu je, že na rozdíl od většiny ostatních serializerů, se nezalekne žádného typu objektu a dokáže se úspěšně vypořádat i s takovými situacemi, kdy se například struktura třídy nahrávaného objektu změnila. A protože ve Smalltalku je vše objekt, znamená to, že serializovat lze cokoliv.

    V praxi je, krom práce s běžnými datovými objekty, nejzajímavější možnost použít Fuel k přenášení tříd a metod a využít tak Fuel jako alternativní způsob nahrávání balíčků do image. Klasické soubory se zdrojovými kódy vyžadují samozřejmě kompilaci, která je sice ve Smalltalku značně přímočará a tedy i rychlá, ale přeci jen... Navíc v rukou balíčkovacího a verzovacího systému Monticello se se zdrojovými kódy provádí ještě celá řada analýz a porovnávání, takže výsledek nepatří k nejrychlejším. Pro jistotu doplním, že pokud ve Smalltalku chcete se zdrojovými kódy pracovat v rámci jeho integrovaného vývojového prostředí a nikoliv jen jako s holými zdrojovými soubory, musíte je mít zkompilovány (převedeny na objekty). Proto je možnost rychle přenášet zkompilované balíčky v binární formě mezi různými image přínosná.

    Otevírá se tak například možnost do ořezané malé konzolové image rychle dohrát třeba kompletní grafické prostředí s vývojovými nástroji. Minulý týden jsem provedl test prověřující právě toto a výsledné video umístil na youtube: http://www.youtube.com/watch?v=pOyvXamn3Y4. Operace, která zde zabere přibližně 15 sekund a většina z toho je ještě inicializace, na projektovém CI serveru Jenkins s pomocí Monticella zabere přibližně 11 minut. Výslednou image lze během několika sekund ořezat zpět.

    Když už máme možnost nahrát zdrojové kódy bez kompilace, znamená to, že ani nepotřebujeme kompilátor. Ten je u původního Smalltalku-80 součástí image, což znamená, že Smalltalk je program postupně kompilující sama sebe. To má celou řadu zajímavých důsledků a výhod, ale občas můžeme usoudit, že kompilátor jednoduše nechceme. Třeba pro nasazení výsledných programů nebo proto, že v rámci modularity chceme mít kompilátor jako volitelnou součást systému. Hodí se to také proto, že současný kompilátor v Pharo je už značně vousatá záležitost neoplývající zrovna moderním návrhem. Ostatně, kdy naposledy jste třeba viděli třídu Parser dědit ze třídy Scanner? Kompilátor ve Pharu proto čeká výměna za projekt Opal. Jestli to bude už v následující verzi 2.0 zatím není zcela jasné, kompilátor je jedna z nejstarších částí systému a image je jím pěkně prožraná. Nicméně i tak se mi podařilo ověřit možnost mít image s nahraným Fuelem, ze které byl odebrán kompilátor (ne zcela důsledně, ale nezůstala v ní žádná z jeho tříd). Této image bylo možné předat jako argument balíček, který nahrála a spustila. Samozřejmě tímto balíčkem může být i samotný kompilátor. Otevírá se tak cesta pro další modularizaci a čištění jádra systému.

    Nahrávání balíčků se zdrojáky přes Fuel je sice užitečná věc, ale poměrně nudná a mysl smalltalkera zvyklého na všeliké zvrácenosti příliš neuspokojí. Fuel však lze použít i k zajímavějším věcem vycházejícím z toho, že ve Smalltalku i kontext zásobníku tvoří objekty. To může mít celou řadu praktických uplatnění. Pro webové aplikace to je možnost serializovat kontinuace. A možnost přenášet otevřený debugger z jedné image do druhé sice na první pohled vypadá poněkud akademicky a zběsile, ale v okamžiku, kdy používáte malou produkční image, která ani debugger třeba nemá, může být možnost při chybě přesunout stav výpočtu do jiné image a tam jej začít ladit, k nezaplacení. Vlastně stačí výjimku zpracovat pomocí jediného příkazu

    FLSerializer serialize: thisContext toFileNamed: 'PharoDebug.fuel'.

    a pak tento soubor v jiné image otevřít pomocí kódu:

    | aContext |
    aContext := FLMaterializer materializeFromFileNamed: 'PharoDebug.fuel'.
    Debugger openContext: aContext label:  'This is the new debugger!' contents: nil

    Tím ale výčet věcí, ke kterým lze Fuel použít, zdaleka nekončí. Jeho autoři nad ním například vytvořili systém, který umožňuje mít libovolný podgraf objektů v externí paměti napojené na image pomocí speciálních proxy objektů. A protože ve Smalltalku je vše objekt... ale to už je zase jiná pohádka.

           

    Hodnocení: 100 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    alblaho avatar 19.4.2012 18:52 alblaho | skóre: 17 | blog: alblog
    Rozbalit Rozbalit vše Re: Palivo pro Smalltalk
    Smalltalk je zajímavý a mocný jazyk, ale vždycky mě spolehlivě odradí nutnost používat to vnitřní GUI.

    Nebo bych se zeptal, k čemu je to vlastně dobré? Naposledy jsem si hrál před lety se Squeakem, můžou mi jeho pohrobci být k něčemu?

    Jinak pěkný blokpost, díky.
    19.4.2012 22:01 Pavel Křivánek | skóre: 29 | blog: Kvičet nezávaznou konverzaci
    Rozbalit Rozbalit vše Re: Palivo pro Smalltalk

    Používat GUI není nezbytně nutné (Pharo má verze bez grafického rozhraní). Také existují rozšíření pro snazší scriptování (Coral). Smalltalk je povětšinou o něco rychlejší než Ruby nebo Python, je jednodušší a má odrazující explorativní IDE :-) Většinou se používá ve spojitosti s webovým frameworkem Seaside. Moc si nerozumí s nativním UI. Na všechno se samozřejmě nehodí, ale použitelný je :-)

    I'm sure it crashed in the most type-safe way possible.
    20.4.2012 00:51 luky
    Rozbalit Rozbalit vše Re: Palivo pro Smalltalk
    Jde to pouzit pro ulozeni uzaveru do databaze? V perlu obcas generujeme neco takovehleho pro rollback:
    use Data::Dump::Streamer;
    
    sub cl {
            my $a = 0;
            sub {$a++}, sub {$a--};
    }
    
    my @fun1  = (cl, cl);
    
    Dump(\@fun1); # Sup s tim do DB
    
    Kdyz jsem si se smalltalkem hral, tak se mi to nepodarilo, ac by clovek cekal, ze u objektoveho jazyka to bude trivialni.
    20.4.2012 07:18 Pavel Křivánek | skóre: 29 | blog: Kvičet nezávaznou konverzaci
    Rozbalit Rozbalit vše Re: Palivo pro Smalltalk
    Jde to, jen v image, kde se uzávěr materializuje, musí existovat třída a metoda, ve které byl uzávěr vytvořen, aby se na ni mohl správně navázat. Takže třeba uzávěr, který byl vytvořen při hraní si ve Workspace, materializovat nepůjde.
    I'm sure it crashed in the most type-safe way possible.

    Založit nové vláknoNahoru

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