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í
×
    dnes 01:55 | Komunita

    24. září 2024 budou zveřejněny zdrojové kódy přehrávače Winamp.

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

    Google Chrome 125 byl prohlášen za stabilní. Nejnovější stabilní verze 125.0.6422.60 přináší řadu oprav a vylepšení (YouTube). Podrobný přehled v poznámkách k vydání. Opraveno bylo 9 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    včera 21:11 | Nová verze

    Textový editor Neovim byl vydán ve verzi 0.10 (𝕏). Přehled novinek v příspěvku na blogu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 20:55 | Nová verze

    Byla vydána nová verze 6.3 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.15.

    Ladislav Hagara | Komentářů: 0
    včera 13:33 | IT novinky

    Dnes ve 12:00 byla spuštěna první aukce domén .CZ. Zatím největší zájem je o dro.cz, kachnicka.cz, octavie.cz, uvycepu.cz a vnady.cz [𝕏].

    Ladislav Hagara | Komentářů: 4
    včera 13:22 | Nová verze

    JackTrip byl vydán ve verzi 2.3.0. Jedná se o multiplatformní open source software umožňující hudebníkům z různých částí světa společné hraní. JackTrip lze instalovat také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 12:22 | Pozvánky

    Patnáctý ročník ne-konference jOpenSpace se koná 4. – 6. října 2024 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytváří všichni účastníci, se skládá z desetiminutových

    … více »
    Zdenek H. | Komentářů: 0
    včera 03:11 | Nová verze

    Program pro generování 3D lidských postav MakeHuman (Wikipedie, GitHub) byl vydán ve verzi 1.3.0. Hlavní novinkou je výběr tvaru těla (body shapes).

    Ladislav Hagara | Komentářů: 6
    15.5. 23:11 | Bezpečnostní upozornění

    Intel vydal 41 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20240514 mikrokódů pro své procesory řešící INTEL-SA-01051, INTEL-SA-01052 a INTEL-SA-01036.

    Ladislav Hagara | Komentářů: 0
    15.5. 16:22 | IT novinky

    Společnost Raspberry Pi patřící nadaci Raspberry Pi chystá IPO a vstup na Londýnskou burzu.

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (74%)
     (5%)
     (10%)
     (10%)
    Celkem 294 hlasů
     Komentářů: 16, poslední 14.5. 11:05
    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.