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 20:33 | Komunita

    Mastodon CZ Sraz 2024, tj. druhý ročník srazu uživatelů Mastodonu a Fediverse proběhne 11. října 2024 v Praze.

    Ladislav Hagara | Komentářů: 0
    dnes 17:44 | Komunita

    Projekty Tor a Tails se spojují. Tails bude začleněn do struktury projektu Tor pro snazší spolupráci, lepší udržitelnost, snížení režie, rozšiřování povědomí o větším počtu digitálních hrozeb a lepší ochranu před sledováním a cenzurováním.

    Ladislav Hagara | Komentářů: 2
    dnes 17:11 | Nová verze

    Společnost System76 vydala druhou alfa verzi desktopového prostředí COSMIC Epoch 1 společně s alfa verzí Pop!_OS 24.04 LTS.

    Ladislav Hagara | Komentářů: 4
    dnes 16:11 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 22:11 | IT novinky

    Společnost Meta Platforms na své dvoudenní konferenci Meta Connect 2024 představuje novinky: brýle Orion (původně Project Nazare) pro rozšířenou realitu (AR, Augmented Reality), nový VR headset Meta Quest 3S, vylepšené chytré brýle Ray-Ban Meta nebo Llama 3.2, tj. nejnovější verzi svého velkého jazykového modelu.

    Ladislav Hagara | Komentářů: 0
    včera 17:11 | Humor

    Počítačová hra XBill (Wikipedie) oslavila v létě 30 let. V devadesátkách Linuxáci poctivě bránili Billovi v instalaci Windows. Bohužel hry XSteve a XSatya nevznikly. A nemáme ani hru XTim. Proto není Linux na desktopu tak rozšířený ☺. Mimochodem, po 25 letech byl aktualizován XBill pro PalmOS.

    Ladislav Hagara | Komentářů: 15
    včera 11:55 | Zajímavý software

    Počítačová hra Elite (Wikipedie), 3D vesmírní simulátor, byla vydána před 40 lety, 20. září 1984. Při té příležitosti byly zveřejněny další zdrojové kódy Elite pro platformy Apple, Atari, C64, NES a SNES a nedokončené Elite II pro BBC Micro.

    Ladislav Hagara | Komentářů: 5
    24.9. 22:00 | Zajímavý software

    V květnu bylo oznámeno, že dnes budou zveřejněny zdrojové kódy přehrávače Winamp. Stalo se tak (𝕏). Zdrojové kódy jsou k dispozici na GitHubu. Nejedná se ale o svobodný a otevřený software (licence).

    Ladislav Hagara | Komentářů: 6
    24.9. 13:55 | IT novinky

    Fiala navrhne odvolání Bartoše z postu vicepremiéra pro digitalizaci a ministra pro místní rozvoj ke 30. září. Důvodem je nezvládnutí digitalizace stavebního řízení, podle premiéra ji Bartoš není schopen dotáhnout do konce. „Po projednání analýzy digitálního stavebního řízení na vládě minulou středu a po dnešním ranním rozhovoru s panem vicepremiérem Ivanem Bartošem jsem bohužel nabyl jistoty, že není schopen tuto digitalizaci

    … více »
    Ladislav Hagara | Komentářů: 54
    24.9. 12:33 | IT novinky

    Komunikační platforma Telegram začne po tlaku úřadů poskytovat vládám více informací o svých uživatelích. V pondělí to oznámil její zakladatel a generální ředitel Pavel Durov. Ten už několik týdnů ve Francii čelí obvinění, že nedělá dost pro to, aby platformu nevyužívaly i kriminální živly. To chce Durov nyní také změnit, informují tiskové agentury.

    Ladislav Hagara | Komentářů: 33
    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.