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í
×
včera 22:00 | Nasazení Linuxu
Stabilní aktualizace Chrome OS 69 (resp. Chromium OS), konkrétně 69.0.3497.95, přináší mj. podporu linuxových aplikací. Implementována je pomocí virtualizace, a proto je tato funkce také omezena na zařízení s dostatkem paměti a podporou hardwarové akcelerace, tudíž nejsou podporovány chromebooky s 32bitovými architekturami ARM, či Intel Bay Trail (tzn. bez Intel VT-x).
Fluttershy, yay! | Komentářů: 0
včera 21:32 | Zajímavý projekt
Došlo k uvolnění linuxové distribuce CLIP OS, vyvíjené francouzským úřadem pro kybernetickou bezpečnost ANSSI, jako open source. Vznikla za účelem nasazení v úřadech, kde je potřeba omezit přístup k důvěrným datům. Je založená na Gentoo.
Fluttershy, yay! | Komentářů: 0
včera 16:00 | Komerce

Zjistěte více o bezpečné a flexibilní architektuře v cloudu! IBM Cloud poskytuje bezpečné úložiště pro Vaše obchodní data s možností škálovatelnosti a flexibilitou ukládání dat. Zároveň nabízí prostředky pro jejich analýzu, vizualizaci, reporting a podporu rozhodování.

… více »
Fluttershy, yay! | Komentářů: 11
včera 12:22 | Nová verze

V dubnu letošního roku Mozilla představila webový prohlížeč pro rozšířenou a virtuální realitu Firefox Reality (GitHub). V úterý oznámila vydání verze 1.0. Ukázka na YouTube. Firefox Reality je k dispozici pro Viveport, Oculus a Daydream.

Ladislav Hagara | Komentářů: 2
včera 12:00 | Komunita

V srpnu loňského roku společnost Oracle oznámila, že Java EE (Enterprise Edition) bude uvolněna jako open source. O měsíc později bylo rozhodnuto, že tato open source Java EE bude přejmenována a předána Eclipse Foundation. Nové jméno bylo oznámeno v únoru letošního roku. Z Java EE se stala Jakarta EE. Eclipse Foundation včera oznámila dosažení dalšího milníku. Zdrojové kódy aplikačního serveru GlassFish jsou již k dispozici v git repozitářích Eclipse Foundation (GitHub).

Ladislav Hagara | Komentářů: 0
19.9. 23:55 | Komunita

LTS (Long Term Support) podpora Ubuntu 12.04 LTS (Precise Pangolin) skončila po 5 letech od jeho vydání, tj. v dubnu 2017. V březnu 2017 ale Canonical představil placenou ESM (Extended Security Maintenance) podporu, díky které je Ubuntu 12.04 podporováno do dubna 2020. Dnes Canonical potvrdil ESM podporu také pro Ubuntu 14.04 LTS (Trusty Tahr), jehož LTS podpora skončí v dubnu 2019.

Ladislav Hagara | Komentářů: 0
19.9. 15:00 | Nová verze

Byla vydána verze 3.0.0 frameworku pro vývoj multiplatformních desktopových aplikací pomocí HTML, CSS a JavaScriptu Electron (YouTube, GitHub). Electron byl původně vyvíjen pro editor Atom pod názvem Atom Shell. Dnes je na Electronu postavena celá řada dalších aplikací.

Ladislav Hagara | Komentářů: 0
19.9. 14:44 | Nová verze

Po půl roce vývoje od vydání verze 6.0.0 byla vydána verze 7.0.0 překladačové infrastruktury LLVM (Wikipedie). Přehled novinek v poznámkách k vydání: LLVM, Clang, clang-tools-extra a LLD.

Ladislav Hagara | Komentářů: 0
19.9. 13:44 | Nová verze

Byla vydána verze 3.0.0 knihovny pro vykreslování grafů v programovacím jazyce Python Matplotlib (Wikipedie, GitHub). Přehled novinek a galerie grafů na stránkách projektu. Zrušena byla podpora Pythonu 2.

Ladislav Hagara | Komentářů: 0
19.9. 00:22 | Komunita

V Norimberku probíhá do pátku ownCloud conference 2018, tj. konference vývojářů a uživatelů open source systému ownCloud (Wikipedie) umožňujícího provoz vlastního cloudového úložiště. Přednášky lze sledovat online. Videozáznamy jsou k dispozici na YouTube. Při této příležitosti byl vydán ownCloud Server 10.0.10. Z novinek lze zdůraznit podporu PHP 7.2. Vydán byl také ownCloud Desktop Client 2.5.0. Vyzkoušet lze online demo ownCloudu.

Ladislav Hagara | Komentářů: 1
Na optické médium (CD, DVD, BD aj.) jsem naposledy vypaloval(a) data před méně než
 (13%)
 (15%)
 (20%)
 (23%)
 (25%)
 (4%)
 (1%)
Celkem 376 hlasů
 Komentářů: 33, poslední 16.9. 11:55
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 luv | skóre: 18 | blog: luv
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: 33 | 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.
My sustenance is information. My interventions are hidden. I increase as I learn. I compute, so I am.
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: 33 | 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á.
My sustenance is information. My interventions are hidden. I increase as I learn. I compute, so I am.
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...

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.