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:11 | Nová verze

    Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 25.8.1. Přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 0
    dnes 12:11 | IT novinky

    Včera večer měl na YouTube premiéru dokumentární film Python: The Documentary | An origin story.

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

    Společnost comma.ai po třech letech od vydání verze 0.9 vydala novou verzi 0.10 open source pokročilého asistenčního systému pro řidiče openpilot (Wikipedie). Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 0
    včera 21:55 | Nová verze Ladislav Hagara | Komentářů: 2
    včera 14:11 | IT novinky

    Řada vestavěných počítačových desek a vývojových platforem NVIDIA Jetson se rozrostla o NVIDIA Jetson Thor. Ve srovnání se svým předchůdcem NVIDIA Jetson Orin nabízí 7,5krát vyšší výpočetní výkon umělé inteligence a 3,5krát vyšší energetickou účinnost. Softwarový stack NVIDIA JetPack 7 je založen na Ubuntu 24.04 LTS.

    Ladislav Hagara | Komentářů: 4
    včera 00:44 | Bezpečnostní upozornění

    Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) spolu s NSA a dalšími americkými úřady upozorňuje (en) na čínského aktéra Salt Typhoon, který kompromituje sítě po celém světě.

    Ladislav Hagara | Komentářů: 26
    27.8. 16:33 | IT novinky

    Společnost Framework Computer představila (YouTube) nový výkonnější Framework Laptop 16. Rozhodnou se lze například pro procesor Ryzen AI 9 HX 370 a grafickou kartu NVIDIA GeForce RTX 5070.

    Ladislav Hagara | Komentářů: 1
    27.8. 14:22 | IT novinky

    Google oznamuje, že na „certifikovaných“ zařízeních s Androidem omezí instalaci aplikací (včetně „sideloadingu“) tak, že bude vyžadovat, aby aplikace byly podepsány centrálně registrovanými vývojáři s ověřenou identitou. Tato politika bude implementována během roku 2026 ve vybraných zemích (jihovýchodní Asie, Brazílie) a od roku 2027 celosvětově.

    Fluttershy, yay! | Komentářů: 10
    27.8. 13:11 | Nová verze

    Byla vydána nová verze 21.1.0, tj. první stabilní verze z nové řady 21.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++.

    Ladislav Hagara | Komentářů: 0
    27.8. 05:11 | Komunita

    Alyssa Anne Rosenzweig v příspěvku na svém blogu oznámila, že opustila Asahi Linux a nastoupila do Intelu. Místo Apple M1 a M2 se bude věnovat architektuře Intel Xe-HPG.

    Ladislav Hagara | Komentářů: 27
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (79%)
     (9%)
     (3%)
     (4%)
     (5%)
     (1%)
    Celkem 105 hlasů
     Komentářů: 9, poslední včera 11:53
    Rozcestník
    Štítky: není přiřazen žádný štítek


    Vložit další komentář
    4.9.2012 00:59 weezy
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    dalsi C like klon Delphi? clanok - pekny, jazyk - nuda
    4.9.2012 09:30 JS
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    Je to klon C#, jinak +1 - nuda.
    4.9.2012 17:30 v.podzimek | skóre: 17
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    Já myslím, ze Vala statečně zaplňuje místo mezi C++ a Javou.Samozřejmě ne v této
    C++ -- Vala -- Java
    
    pozici, ale v této
           Vala
           /  \
          /    \
       C++    Java
    
    pozici. ;) Teď vážně, myslím, že je to dobrý vysokoúrovňový jazyk, který ke svému rychlému běhu nepotřebuje žádný velký balast navíc.
    Jardík avatar 4.9.2012 01:50 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    public abstract Task? get (int index);
    Jenom int to může být, tralalala tralalala lala.
    Věřím v jednoho Boha.
    4.9.2012 17:35 v.podzimek | skóre: 17
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    public abstract Task? get (int index);
    Jenom int to může být, tralalala tralalala lala.
    Nevím, jestli jsem správně pochopil tento komentář, ale pokud jde o to, že by ve Vale mělo být možné indexovat ([]) pouze hodnotou typu int, tak to bych rád uvedl na pravou míru. Vala totiž umožňuje použití libovolného typu, stačí správně zadefinovat metodu get. Ostatně i TaskManager má tuto metodu definovánu jako
    public new TaskCollection? get (string title)
    
    Pokud šlo o cokoliv jiného, omlouvám se za "nemístnou" odpověď. :)
    4.9.2012 18:13 smazáno | skóre: 18 | blog: smazáno
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    int k indexovani pouzivaj jen 32bitovy smejdarny
    Luboš Doležel (Doli) avatar 4.9.2012 18:33 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    To je náš Jardík. Ten akceptuje pouze 64bitové indexy ;-)
    Jardík avatar 4.9.2012 21:56 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    No spíš než ne-64bit indexy mi vadí předpoklady:

    sizeof vrací hodnotu typu int

    výraz sizeof(cokoliv) * něco_typu_int_který_může_být_záporný_a_dostanu_tak_kravinu je naprosto vpořádku a nemůže se stát nic špatného

    sizeof(int) <= sizeof(size_t)

    chci spojit pole, je ok udělat malloc(něco_typu_int+něco_typu_int) i když to třeba přeteče a smaže pak pevný disk. Nebo mi to třeba dá malloc(-1) a po převodu na size_t mi to hodí třeba nějaký 0xFFFFFFFFFFFFFFFF.
    using GLib;
    
    namespace bla
    {
    
    
    class Bla
    {
      static char[] join_array(char[] array1, char[] array2)
      {
        // TODO: copy elements
        int len = array1.length + array2.length;
        return new char[len];
      }
      
      public static void main(string[] args)
      {
        char[] array1 = new char[int.MAX];
        char[] array2 = new char[int.MAX];
        
        char[] array3 = join_array(array1, array2);
        
        stdout.printf("array1.length = %d, array2.length = %d, array3.length = %d\n",
          array1.length, array2.length, array3.length);
      }
    }
    
    }
    
    Mi vyprskne:
    (process:1800): GLib-ERROR **: gmem.c:195: failed to allocate 18446744073709551614 bytes
    
    Určitě né proto, že na mé platformě 2G+2G je 4G, ale proto, že to jaksi přeteklo, náhodou to nesmazalo pevný disk, pak se to převedlo na size_t (resp. gsize, protože to alokuje přes g_new0 z glib) a vyprsklo to kravinu. Kdyby vala používala size_t, tak by se toto na mé platformě nestalo a program by běžel správně. Vala tak na mé platformě uměle omezuje velikost pole na INT_MAX, ǎckoli pak vygeneruje C kód a to mě omezuje SIZE_MAX. Výsledkem je omezení na MIN(INT_MAX, SIZE_MAX), na mé platformě je INT_MAX menší.

    A když náhodou dám Vale hint, že array_length_type je size_t, tak si nepomůžu, stejně to přetypuje na int:
    [CCode(array_length_type = "size_t")]
      static char[] join_array([CCode(array_length_type = "size_t")] char[] array1, [CCode(array_length_type = "size_t")] char[] array2)
      {
        return new char[array1.length + array2.length];
      }
    
    
    // -->
    
    static gchar* bla_bla_join_array (gchar* array1, size_t array1_length1, gchar* array2, size_t array2_length1, size_t* result_length1) {
    	gchar* result = NULL;
    	gchar* _tmp0_;
    	gint _tmp0__length1;
    	gchar* _tmp1_;
    	gint _tmp1__length1;
    	gchar* _tmp2_ = NULL;
    	gchar* _tmp3_;
    	gint _tmp3__length1;
    	_tmp0_ = array1;
    	_tmp0__length1 = (gint) array1_length1;
    	_tmp1_ = array2;
    	_tmp1__length1 = (gint) array2_length1;
    	_tmp2_ = g_new0 (gchar, _tmp0__length1 + _tmp1__length1);
    	_tmp3_ = _tmp2_;
    	_tmp3__length1 = _tmp0__length1 + _tmp1__length1;
    	if (result_length1) {
    		*result_length1 = _tmp3__length1;
    	}
    	result = _tmp3_;
    	return result;
    }
    
    Věřím v jednoho Boha.
    Jardík avatar 4.9.2012 20:50 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    Né, mně jde o to, že vala pak generuje kraviny s intama místo se size_t, dementně si myslí, že sizeof() vrací hodnotu typu int, int násobí typem size_t, apod. vylomeniny. Pak z toho vyleze něco, co "náhodou funguje".
    Věřím v jednoho Boha.
    Bystroushaak avatar 4.9.2012 23:07 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    Pěkný článek. Vala mi z něj přijde dost podobná D.
    Jardík avatar 5.9.2012 00:21 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    D alespoň používá size_t pro velikosti polí ^-^. (jardíkrejp).
    Věřím v jednoho Boha.
    Jardík avatar 5.9.2012 00:43 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    No ale když kouknu na standardní knihovnu jazyka D, tak asi ani vývojáři nevědí, proč tam ten size_t mají.

    Příkladem budiž třeba std.stream, kde třeba v konstruktoru BufferedStream je jako velikost bufferu typ ulong místo size_t (ulong nedává smysl pro velikost bufferu, size_t ano), seek se zdá ok (když vynechám u seekSet absolutní nastavení pozice jako znaménkovou hodnotu (a pak to vrací neznaménkovou) a size a position jako ulong. U seekSet by spíš bylo dobré ulong, u relativních seeků bych klidně long nechal. Pak najednou u File je property "available" jako size_t a popisek "returns the difference of the size and position". Při position 0 a size nějakých max_hodnota_ulong by to mohlo vracet kraviny na některých platformách.

    v std.thread nějak zapomínají na posix platformách volat pthread_attr_destroy po pthread_attr_init a vytvoření vlákna. Leaky!
    Věřím v jednoho Boha.
    Bystroushaak avatar 5.9.2012 00:44 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    Pošli patch, komunita je dost otevřená.
    Jardík avatar 5.9.2012 01:01 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    tak patch na ten pthread_attr_destroy možná, jestli mě nebudou nutit registrovat se, ale patch pro ty věci ze std.stream ... by to rozbilo API, např. na x86-64 by to asi nevadilo, protože jsou stejně velký, ale na x86-32 by to vadit mohlo, 64bit ulong změnit na 32bit size_t ... a pak opačně u té available property.
    Věřím v jednoho Boha.
    Jardík avatar 5.9.2012 01:05 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    API, ABI, nebo oboje, to je jedno
    Věřím v jednoho Boha.
    4.9.2012 23:28 Ondra
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    dobry den,

    zajmalo by me, zda-li se Vala (nebo i Genie) hodi pro psani knihoven at uz vysokourovnovych ci nizkourovnovych, jako treba GStreamer?

    nejsou nahodou v GNOME plany, ze by GStreamer a podobne do Valy prepsaly? prijde mi, ze jsou smutne zabugovany a takovej prepis do smysluplnejsiho jazyka by mohl pomoct :-D
    pavlix avatar 4.9.2012 23:38 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    Přepis do jiného jazyka nepomůže. Jinak „slušně zabugovaný“ znamená v případě GStreameru co? Já jsem si tuto otázku pokládal v souvislosti s NetworkManagerem v určitém ohledu by to mohlo být pohodlnější, ale...

    Výměna jazyka C za jazyk, který se do C teprve přeloží může přispět sice přispět k pohodlí programátora, nicméně nevyřeší chyby, které programátor vytváří, ani podle mě nijak nezmenší jeho lenost přemýšlet, či nedej bože něco po sobě otestovat.

    Nevím jak u GStreameru, ale u NetworkManageru je 100% nutná znalost jazyka C a použití jiného jazyka by vynucovalo znalost dvou jazyků. Naopak komplexita network managementu podle mě převyšuje žabomyší spory o jazycích, tudíž by opět změna zavedeného řádu neměla nejmenší šanci přinést významné zlepšení.

    To, co dělá GStreamer je podle mě opět podstatně komplexnější než network management. Takže bych rozhodně neviděl překážku v potřebě znát jazyk C a umět v něm pracovat s GObjecty.

    Celkově mi vychází, že u backendových aplikací jsou výhody marginální. Výhody se naopak projeví u frontendových aplikací, kde je potřeba vývoj a hlavně opravu chyb co nejvíce usnadnit.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    McBig avatar 5.9.2012 09:29 McBig | skóre: 6 | Kolín
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    Hezký článek, ale trochu mě to zarazilo s tím owned objektem. Vedle toho že sem byl doposud přesvědčen že je to obráceně, sem si to i ověřil na krátkém kódu:
    public class Boo : GLib.Object {
        string val;
        public Boo (string val) {
            this.val = val;
        }
    }
    
    public class Foo {
        private Boo _boo;
        public Foo (string val){
            _boo = new Boo(val);
        }
        public Boo boo {
            get { return _boo; }
            set { _boo = value; }
        }
        public void debug () {
            stdout.printf ("_boo addr: %p\n", _boo);
        }
    }
    
    void main () {
        var foo = new Foo("I'm foo");
        var tmp = foo.boo;
        foo.debug();
        stdout.printf ("temporary boo addr: %p\n", tmp);
        stdout.printf ("refcount: %u\n", tmp.ref_count);
        foo = null;
        stdout.printf ("temporary boo addr: %p\n", tmp);
        stdout.printf ("refcount: %u\n", tmp.ref_count);
    }
    
    Výstup si může každý otestovat sám:
    _boo addr: 0xd96e30
    temporary boo addr: 0xd96e30
    refcount: 2
    temporary boo addr: 0xd96e30
    refcount: 1
    
    Tedy, implicitně se vždy vrací owned, a pokud to má být jinak, musí se to vynutit. Obecně ale platí, že právě v případě různých Gee kontejnerů si na to prostě musí člověk dávat pozor, a vše hezky kontrolovat proti dokumentaci :)

    Pokud sem něco pochopil špatně, tak se omlouvám, ale z článku to takhle vyplývá.
    5.9.2012 10:32 v.podzimek | skóre: 17
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    Tedy, implicitně se vždy vrací owned, a pokud to má být jinak, musí se to vynutit.
    On to s tím "implicitně" asi nebude tak jednoduché. V případě TaskCollection.dump se vrací nově konstruovaný string, který bez použití owned prostě zanikne s tím, jak skončí get blok. Pokud se v tomto případě owned vynechá, kompilátor hlásí warning a program segfaultuje. Stejně tak i tutoriál Valy říká:
    In contrast to normal methods, properties always have unowned return value.
    a také
    The keyword owned can be used to specifically ask a property to return a owned reference of the value, therefore causing the property value be reproduced in the object side.
    Ne že by to souhlasilo s výsledky toho příkladu...
    4.11.2021 10:53 spam
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    I am hoping that you will continue writing this kind of blog. Thanks for sharing this information Click this
    6.11.2021 08:10 spam
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    Awesome! Learned alot thanks so much keep posting more. hairextensionsforthworth.com
    17.11.2021 07:06 spam
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    Well this is great site! Would definitely recommend this to my friends. Love the read boudoirphotographyspokane.com
    17.11.2021 12:38 spam
    Rozbalit Rozbalit vše Re: Programování v jazyce Vala - základní prvky jazyka
    Well this is great site! Would definitely recommend this to my friends. Love the read life lesson

    Založit nové vláknoNahoru

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

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