Portál AbcLinuxu, 27. dubna 2024 06:00


Nástroje: Začni sledovat (4) ?Zašle upozornění na váš email při vložení nového komentáře.

Diskuse byla administrátory uzamčena.

6.8.2013 01:26 Limoto | skóre: 32 | blog: Limotův blog
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
značně populárního intalátoru GNU/Linuxové distribuce Fedora

Pobavilo :-D :-D (a je tam překlep)

6.8.2013 08:38 vain | skóre: 16
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Co máte všichni proti instalátoru Fedory? :-) Vidím ho jednou za uherský rok a vždycky se na něj těším, co všechno se změnilo a jak vypadá. Jste všichni burani, co to neumí ocenit ;-)
If the only choice you've got is to do the wrong thing, then it's not really the wrong thing, it's more like fate.
6.8.2013 10:31 Pavel Ruzicka
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Minuly tyden jsem instaloval Fedoru19 na novy pocitac s UEFI (byl vypnuty secureboot) a byl to tedy porod. Ten nastroj na vybrani partitionu je opravdu strasny. Chtel jsem system nainstalovat na jiz rozdeleny disk (swap, /, /home) a /home zachovat. Po asi deseti pokusech se mi ho podarilo prinutit k takovemu rozdeleni. Po instalaci a rebootu ovsem skoncil GRUB s ERROR15. Po nekolika pokusech o rescue a rucnimu nahrani bootloaderu jsem to vzdal a bez problemu nainstaloval Mageiu3. Za par dni jsem tomu dal dalsi sanci. Anaconda selhala z divnou chybou jeste pred vyberem jazyka. Byla to divna chyba s DHCPv6. Po odpojeni sitoveho kabelu Anaconda nabehla a dokonce po instalaci system nabootoval. Beh Fedory je v pohode, ale ten instalator je teda opravdu katastrofa.
7.8.2013 17:26 M4rtinK
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Ten nastroj na vybrani partitionu je opravdu strasny.
Je doplním že je vypsaná diplomka/bakalářka na téma lepší vizualizace rozdelění disků v Anacondě. Nechce se toho někdo chopit ? :)
7.8.2013 22:22 erino72 | skóre: 2
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Neskoro, bakalarky sa vyberali v aprili...
7.8.2013 23:53 asdf
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Co takhle místo toho použít Windows? Ten má dobrej instalátor...
8.8.2013 09:23 Václav "Darm" Novák | skóre: 26 | blog: Darmovy_kecy | Bechyně / Praha
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Díky, pobavilo :)
Cross my heart and hope to fly, stick a cupcake in my eye!
6.8.2013 02:10 Jardík
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
if (!FileUtils.test (real_path, FileTest.EXISTS)) {
	if (FileUtils.test (real_path + ".gz", FileTest.EXISTS))
		real_path += ".gz";
	else
		real_path = "";
}
Opravdu?? Takovéhle konstrukce by v programu neměli co dělat. To je race-condition jak sviňa.
6.8.2013 07:02 karelI
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
By byla race-condition pokud by se ty soubory pri behu programu vytvarely (v jinym threadu). Pokud tam jsou jen vykopirovany z nejakyho baliku a pak se pousti tento skript, pak je to uplne jedno.
6.8.2013 10:46 Jardík
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
A jak máte v programu ošetřeno, že jiné programy nebudou měnit soubory, nebo se někdo nerozhodne tam připojit filesystém? Bylo by dobré rizika alespoň minimalizovat, třeba použitím správné kombinace flagů při volání open(). Na co zbytečně testovat existenci před voláním open a zvyšovat riziko? open() vám chybu při neexistenci souboru (popř. při existenci, pokud potřebujete opak) vrátí.
6.8.2013 11:12 karelI
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Slovy klasika - jak mate osetreno ze vam nekdo nevynda procesor. Kdyz pracujete s okolnim svetem, tak k chybam proste dochazi a vetsinou nema moc smysl se toho vyvarovat. V tomto pripade urcite staci smysluplne zarvat a skocit, coz zde chybi.

Me pripada vhodne oddelit zjistovani jak se vlastne soubor jmenuje od vlastniho otevreni a zpracovani souboru.
6.8.2013 12:36 logik
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
To samozřejmě neošetříte. Ale případ "mizejícího" souboru ošetříte snadno a tak je chyba ho neošetřit...

A to, že se před samotnou operací ošetří "X milionů" možnejch chyb je právě překonané paradigma. Právě proto vznikli výjimky, aby člověk psal kód co nejvíce přímočaře a ošetření chyb bylo "vedle".
6.8.2013 15:13 nikdo
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Já za překonané paradigma zase považuji to, že některé paradigma je "vyšší, lepčí a hezčí", než paradigma jiné-překonané.

Nicméně - v tomto konkrétním případě bych asi taky zavolal open a "počkal, co to udělá" :-)
7.8.2013 22:10 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
+1 a výsmech pseudo vývojárom.
KERNEL ULTRAS video channel >>>
7.8.2013 22:12 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
tak k chybam proste dochazi a vetsinou nema moc smysl se toho vyvarovat. V tomto pripade urcite staci smysluplne zarvat a skocit, coz zde chybi.
Radostný svet užívateľov.
KERNEL ULTRAS video channel >>>
24.8.2013 17:29 karelI
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Jen jsem tim chtel rict, ze nema smysl osetrovat 10 neocekavanych stavu kdyz vas dalsich 50 ani nenapadne ze by mohly nastat a ve vysledku stejne vsechny vedou k tomu ze vylitne vyjimka a nelze precist soubor a tedy program nemuze pokracovat. Lepsi jednoduchy a prehledny program ktery rekne co je blbe nez hromada balastu ktera se snazi o nemozne. Mate snad jiny navrh?
6.8.2013 17:15 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Neviděl jste Anacondu. Jeden z jejích vývojářů říká, že ji ani není možné restartovat, protože se všude předpokládá výchozí stav. Tedy představa, že by někdo paralelně něco dělal se soubory, je zcela podružná.
6.8.2013 07:05 karelI
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Dotaz na autora z praxe - jak se tvari vasi kolegove na to, ze az v te firme jednoho dne prestanete pracovat, tak jim tam zbyde par set radku kodu v jazyce o kterym nikdo v te dobe ani nemusi vedet natoz aby ho dokazal opravit/vylepsit/prelozit/pustit?
6.8.2013 08:57 racik
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Verim, ze dobre, ved to moze prelozit do C a nechat im zdrojak. Dufam ze jazyk C uz budu poznat.
6.8.2013 09:12 Já
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
A viděli jste někdy ten výstup? :D Dobře, jo? :D
6.8.2013 10:49 Jardík
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
C zdroják z Valy je opravdu příšerný a je velmi obtížné poznat, co to dělá se všemi těmi náhodnými přiřazovaními do dočasných proměnných stupidních jmen, tam a zpět, ... vždycky se modlím, aby to kompilátor zvládl zoptimalizovat. Z dvou řádku kódu je Vala schopná udělat 20 řádkový bastl.
6.8.2013 15:07 Já
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
No mně nejvíc dostalo, když jsem viděl nějakou knihovnu ve Vala s výraznou poznámkou, že kvůli Vala nelze garantovat céčkové API, tak ať ho nikdo nepoužívá. Takže asi tak.
11.8.2013 12:14 v.podzimek | skóre: 17
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
V prvé řadě, langtable a ani žádná z jejích verzí nezůstane nikde ve firmě. Je to normální upstream projekt, který může dál rozvíjet, upravovat, forkovat apod. kdokoliv a věřím, že někdo kdo rozumí něčemu, co vypadá jako Java/C# a má slušné komentáře (ty do kódu teprve přijdou), se určitě najde.
6.8.2013 09:02 Petr Ježek | skóre: 10
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Ehm, ona je vala něčím programátorský neznámým bez dokumentace a vývojářských nástrojů?
Archlinux for your comps, faster running guaranted!
6.8.2013 09:23 karelI
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Predpokladam ze to je reakce na me...

Ja nerikam ze to nejde, ja se ptal jak se na to tvari ostatni. Zkuste beznemu programatorovi predhodit nejaky kod v mene znamem jazyce a muzete treba zmerit za jak dlouho vypatra jak presne se chova operator == na stringach. I kdyz jak to tak znam, tak to nejak zbastli a bude doufat ze to slape. Kazdopadne produktivita nebo spolehlivost rapidne klesa.

Je proste velky rozdil mezi situaci, kdy se ve firme pouziva nejake rozumne male mnozstvi nastroju se kteryma se vsichni smirili a naucili se je pouzivat a naopak kdy si kazdej svuj kod bastli v cem se mu zamane (hmm, xml, tak co treba vala).
6.8.2013 09:27 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Že je Vala jazyk evidentně oficiálně podporovaný v GNOME a že Red Hat hraje nemalou roli v GNOME, tak bych to neviděl až tak zle.
6.8.2013 21:39 M4rtinK
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Navíc když je knihovna napsaná ve Vale a postavená na GObjectu, je možné ji snadno použít ze všech jazyků podporovaných GObjectem: z C, C++, Pythonu, Javascriptu, Ruby, Lispu, ...

To pro knihovnu napsanou v Python tak jednoduše nejde.
6.8.2013 09:09 mikro
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Chlapci, a ze by ste problem vyriesili nahradou XML za nieco menej narocne na spracovanie, to vam nenapadlo? Niezeby vyriesenie problemu novym programovacim jazykom nemalo nieco do seba ;-), ale pripajam sa ku komentaru vyssie, byt zamestnancom, ktory po tebe tento projekt ma prevziat, tak to by padalo naozaj vela sprostych slov. "Ved to ma strojovy export do C" mi prave ako dobry protiargument nepride.
6.8.2013 20:15 Kvakor
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Já bych podobný problém řešil rozdělením na dva nástroje - jedním programem, který by onen obří XML "přežvýkal" do něčeho, co by bylo možné snadněji zpracovat, a druhého programu, který by s ním manipuloval. Protože první program by se pouštěl jen v případě změny zdrojového XML nebo převodu na jinou platformu (pokud by "přežvýkaná" data byla platformově závislá), může být klidně psaný v "pomalém" skritpvacím jazyce. A u druhého programu je pak možné držet v paměti jen data, přes která se vyhledává (něco na způsob indexů v databázi) a zbytek načítat ze souboru dle potřeby.
6.8.2013 22:15 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
rozdělením na dva nástroje - jedním programem, který by onen obří XML "přežvýkal" do něčeho, co by bylo možné snadněji zpracovat

Nebo rovnou může vygenerovat kód v daném jazyce, který vytvoří patřičné objekty – a hezky propojené mezi sebou (místo aby sis někde přečetl textový řetězec a pak ho jinde hledal v nějaké mapě, tak to může být rovnou ukazatel/reference na ten objekt).

Nebo, pokud nechceme všechna data držet v paměti, může být výsledkem indexovaný binární soubor, ve kterém se bude snadno vyhledávat.

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
7.8.2013 20:04 kořen
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Proto bych to napsal v lispu a byla by to zároveň konfigurace i program.
7.8.2013 20:14 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Tohle neni prilis originalni napad... #37. :-]]
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
7.8.2013 20:32 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi

A jak tam zapíšeš ty reference? (abys toho při tvorbě dat musel napsat minimum, ale zároveň to bylo propojené, aby při běhu nebylo potřeba prohledávat nějaké mapy podle textových klíčů, ale měl jsi hned odkaz na další objekt)

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
6.8.2013 09:45 Lulu
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Taky bych chtel neco rici.

Sila Pythonu je predevsim v rychlosti vyvoje, ale podle toho jak koukam na zdrojak langtable.py, tak to psal clovek, kteremu DRY princip moc nerika..:

elif name == u"name": self._names[str(self._item_id)] = self._item_name self._clear_item() elif name == u"locale": self._locales[str(self._item_id)] = int(self._item_rank) self._clear_item() elif name == u"territory": self._territories[str(self._item_id)] = int(self._item_rank) self._clear_item() elif name == u"keyboard": self._keyboards[str(self._item_id)] = int(self._item_rank) self._clear_item() elif name == u"consolefont": self._consolefonts[str(self._item_id)] = int(self._item_rank) self._clear_item() elif name == u"timezone": self._timezones[str(self._item_id)] = int(self._item_rank) self._clear_item()

Toto je jasne opakovani se porad dokola, a to neni jediny pripad ...

Z toho co jsem videl, si myslim ze toto psal nekdo kdo je primarne C++/Vala programator, kde se programuje timto stylem, proto si dovolim rici, ze pokud chcete urychlit svuj program, tak by to chtelo vic abstrakci, a rozhodne mene radku kodu, Python script s 1300+ radky je spatne. Toto ma byt rozdelene do nekolika (mozna desitek) mensich scriptu v ramci jednoho modulu, nebo pouzivat vice standartnich knihoven ...

Prectete si ZEN Pythonu ....

Stejne tak se mi nelibi neco jako

if neco == None: return

Znovu, ZEN Pythonu, explicit is better than implicit, zde ma byt return None, nebo False ... zkratka neco .. Snazite si setrit si pismena na spatnych mistech ...

Nerikam ze jste spatni programatori, tak na me prosim nekricte, ale jelikoz ja delam v Pythonu kazdy den a vidivam casto Python kod od Cckaru, poznam jak to vypada ...

Z nejakeho duvodu maji Cckari tendenci psat strasne kodu .. :D

Mozna kdyby to napsal nekdo kdo dela Python uz par let, bylo by to rychlejsi, stejne tak jak kluci psali, zmenit XML na neco jineho je taky dobrej napad ..

A jeste poznamka k tvemu GIL v Pythonu, proc bys na cteni vicero souboru nemohl pouzit multiprocessing?? (vice ram, ja vim, ale jde to optimalizovat)

Cau
6.8.2013 10:43 zde
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Až bude Python opět použitelný (tj startup nebude trvat 50ms ale 5ms), tak mě vzbuďte.
6.8.2013 11:54 Lulu
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
No, zalezi co delas .. fajn

udelej si prazdny soubor none.py

spust time python none.py

dle meho mereni se cas pohybuje mezi 10-17ms

coz je cas inicializace python interpreteru ...

Takze nevim o cem pises ...
6.8.2013 13:10 Conscript89 | Brno
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Todle je krasny srovnani :D
Na Sandy Bridge i5 stroji (Fedora 19):
$ time python /dev/null

real    0m0.014s
user    0m0.010s
sys     0m0.003s
Na Atom D510 (CentOS 6.4):
$ time python /dev/null

real    0m0.062s
user    0m0.034s
sys     0m0.020s
Takze tu muzeme vsichni hazet cislama, jak chceme :)
I can only show you the door. You're the one that has to walk through it.
6.8.2013 13:25 Lulu
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Tak tak,

uzivatel `zde` to urcite poustel na i486 s 66MHz a 16MB RAM .. to se pak muzem divit ze mu to trva 50ms ze ... :D
7.8.2013 00:20 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
$ time python /dev/null
real    0m0.027s
user    0m0.008s
sys     0m0.012s

$ time python3 /dev/null
real    0m0.047s
user    0m0.040s
sys     0m0.004s
core duo 2 (6 GB ram)

python3 mi 50 mS trvá taky, samozřejmě po opětovném spouštění, ať se python dostane z disku do cache.
Baník pyčo!
6.8.2013 13:44 bubla
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Teď jsem to zkusil u sebe a zjistil jsem, že pythonu 3 to zabere cca 2x tolik (64-bit Archlinux) Nevíte, čím to?
6.8.2013 14:35 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
$time python3 /dev/null

real    0m0.121s
user    0m0.107s
sys     0m0.013s

$time python2 /dev/null

real    0m0.183s
user    0m0.163s
sys     0m0.013s
Na Athlon X2 5200+ 2.6GHz, podtaktovaný na 1GHz
Věřím v jednoho Boha.
6.8.2013 21:38 bubla | skóre: 10 | Rosice
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
$time python3 /dev/null

real	0m0.072s
user	0m0.030s
sys	0m0.003s

$time python2 /dev/null

real	0m0.028s
user	0m0.017s
sys	0m0.007s
7.8.2013 14:30 zde
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Nojo, každopádně je to příšerně pomalý.. aplikace se v tom nějak lepit dají, ale na skriptování (to volat to z něčeho jiného) to použitelné není. Přitom i ten blbej perl je výrazně rychlejší (o lua nemluvě).
[~]$ time python -c ''

real	0m0.027s
user	0m0.024s
sys	0m0.003s

[~]$ time perl -e ''

real	0m0.004s
user	0m0.001s
sys	0m0.003s

[~]$ time lua -e ''

real	0m0.002s
user	0m0.000s
sys	0m0.001s
7.8.2013 16:32 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
na skriptování (to volat to z něčeho jiného) to použitelné není
27 milisekund není tak špatné, pokud to člověk nebude volat někde ve smyčce, tak mi to přijde docela použitelné.
10.8.2013 15:07 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Čo tak python -S -c ''? Prípadne by sa dal ešte zneužiť fork.
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
6.8.2013 13:58 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
"Proto vznikla iniciativa, jejíž výsledkem byly diskuze na Developer Conference 2013 v Brně a následný vznik projektu Mika Fabiana" - takze se to podarilo? Perfektni!
6.8.2013 16:03 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
tak to opakování kódu mě taky udivilo především ve switch.

Python není zrovna ideální na zpracování velkého množství XML dat

no můj názor je opačný, že na tohle je vhodný skriptovací jazyk s příslušnou knihovnou (např. napsanou v C) "téměř" ideální

ten regex by šel napsat (no zabralo mi nějaký čas, než jsem přišel na to, čemu vlastně má odpovídat)
my $local_regex = qr{
    ^                         #zacatek stringu raději bych použil \A
    (?P<language>
        [a-z]{2,3}            #locale
        (?:
            _
            (?P<script>
                [A-Z][a-z]{3} #script (optional)
            )
        )?
        (?:
            _
            (?P<territory>
                [A-Z]{2}     #territory (optional)
            )
        )?
        (?:                 #místo nasl 4 řádků bych mohl použít i to vaše (?: @ | $ )
            @.*             #options (optional)
        )?
        $                   #konec stringu raději \z
    )
}xms;
nebo ještě lépe
my $under_line = q{_};
my $at_sign    = q{@};
my $locale_rs  = '[a-z]{2,3}';
my $script_rs  = '(?P<script>
    [A-Z][a-z]{3}
)';
my $territory_rs = '(?P<territory>
    [A-Z]{2}
)';
my $options_rs = q{.*};

my $local_re = qr{
    \A
    (?P<language>
        $locale_rs
        (?: $under_line $script_rs    )?
        (?: $under_line $territory_rs )?
        (?: $at_sign    $options_rs   )?
    )
    \z
}xms;
PS. psáno pro Perl pro Valu si to prosím upravte
This would have been so hard to fix when you don't know that there is in fact an easy fix.
6.8.2013 18:12 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Java, deklarativní mapování, relační databáze

V první řadě díky za pokračování seriálu. Valu jsem zatím k ničemu nepoužil, ale už po ní zálibně koukám celkem dlouho :-)

řádkem using Gee;, abychom se vyhnuli zbytečnému psaní prefixu Gee. na mnoha místech. Tento jmenný prostor s ničím, co je základní součástí Valy, nekoliduje

Lepší je importovat jen ty třídy, které používám, ne celý jmenný prostor. Alespoň tak to dělám v Javě.

Ta získané hodnoty ukládá na správná místa – informace o jazyce do aktuální instance třídy LanguagesDBitem a tuto instanci samotnou pak do "databáze" languages_db. Zároveň tato funkce nastavuje pole pro ukládání dočasných dat na výchozí hodnoty (prázdné řetězce, null, false), aby nebyla míchána data jednotlivých elementů, a indikaci, kam se mají ukládat příští data (driver.store_to) nastavuje na LanguageFields.NONE, tedy hodnotu značící, že nejsou očekávána žádná data.

SAX je určitě zlepšení, ale přijde mi to pořád hodně nízkoúrovňové. Mnohem elegantnější by bylo použít nějaké mapování z XML na objekty. Jak by to vypadalo v Javě: LangTable. Ale zase to (mapování) nemusí být optimální z hlediska výkonu – pak je otázka, jestli mít hezký stručný kód (pár řádků, holé struktury s pár anotacemi, žádné cykly ani switche) nebo výkonově optimalizovaný kód se spoustou ručně psaného balastu. Parsování keyboards.xml na mém počítači zabralo 114 ms.

BTW: nechcete někdo tenhle kousek programu napsat v jiném jazyce, který by umožnil jednoduché mapování (deklarativní, bez zbytečného ručně psaného kódu) a zároveň by byl rychlejší než ta Java? :-)

Jak tak koukám do těch datových souborů, jsou to struktury, kde všechno souvisí se vším. To se v XML sice namodelovat dá a pokud napíšeš slušně schéma, dá se v tom i udržet referenční integrita, ale není to úplně ono.1 Relační databáze by asi byla přirozenější a vhodnější než XML2. Navíc bys ani nemusel řešit to mapování na objekty – pomocí jednoduchého SQL dotazu by sis vytáhl přesně to, co potřebuješ. Jedinou nevýhodu vidím v horším verzování – chce to verzovat SQL skript místo binárních databázových souborů, takže je to krok navíc při kompilaci (ale to zas taková tragédie není).

[1] navíc současný stav (tři soubory) není dokonalý, přijde mi, že tam bude spousta duplicit a příležitostí pro vznik nekonzistence
[2] nebo jakýkoli podobný souborový formát – ne, INI, JSON, YAML atd. skutečně není řešením

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
6.8.2013 20:35 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Java, deklarativní mapování, relační databáze
Relační databáze by asi byla přirozenější a vhodnější než XML2. Navíc bys ani nemusel řešit to mapování na objekty – pomocí jednoduchého SQL dotazu by sis vytáhl přesně to, co potřebuješ. Jedinou nevýhodu vidím v horším verzování – chce to verzovat SQL skript místo binárních databázových souborů, takže je to krok navíc při kompilaci (ale to zas taková tragédie není)
To je tak neunixove reseni az to boli.
Relační databáze by asi byla přirozenější a vhodnější než XML nebo jakýkoli podobný souborový formát – ne, INI, JSON, YAML atd. skutečně není řešením.
A co tak pouzit vlastni jednoduchy DSL a parser si nechat vygenerovat treba Antlr?

Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
6.8.2013 22:51 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Java, deklarativní mapování, relační databáze
To je tak neunixove reseni az to boli.

SQL skript je přece krásný textový konfigurák s jasnou syntaxí :-)

Pak se akorát parsuje pomocí již hotového nástroje, uloží se efektivním způsobem a dá se k němu přistupovat pomocí určitého existujícího API.

A co tak pouzit vlastni jednoduchy DSL a parser si nechat vygenerovat treba Antlr?

To je taky možnost, ale nebude to pak další z mnoha různých syntaxí, které se uživatel musí učit? DSL mi přijde vhodné pro úlohy, které jsou sice specifické (obecný jazyk pro ně není ideální), ale přesto opakovatelné (používají se na víc místech, ve víc programech).

Šel bych na to asi buď cestou relační databáze (pokud se hodí silný dotazovací jazyk) nebo cestou předžvýkání – buď do binárního souboru (pokud to chceme mít na disku) nebo do kódu daného jazyka (pokud můžeme mít všechno v paměti).

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
7.8.2013 02:21 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Java, deklarativní mapování, relační databáze
SQL skript je přece krásný textový konfigurák s jasnou syntaxí :-)
Nejsem si prilis jisty, jestli to myslis vazne nebo jako sverazny humor. Uz jsem videl ledacos...
To je taky možnost, ale nebude to pak další z mnoha různých syntaxí, které se uživatel musí učit?
Naucit se novy format je intelektualne minimalne stejne tak narocne jako naucit se schema XML souboru.
Šel bych na to asi buď cestou relační databáze (pokud se hodí silný dotazovací jazyk) nebo cestou předžvýkání – buď do binárního souboru (pokud to chceme mít na disku) nebo do kódu daného jazyka (pokud můžeme mít všechno v paměti).
V takovem pripade budes muset spravovat krome programu samotneho jeste dalsi nastroje na spravu jeho konfigurace.

Koncepcne by to bylo nejlepsi udelat v LISPu nebo Schemu, diskuze, jestli je to lepsi realizovat jako data, program, DSL by uplne odpadla.

Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
7.8.2013 09:16 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Java, deklarativní mapování, relační databáze
Naucit se novy format je intelektualne minimalne stejne tak narocne jako naucit se schema XML souboru.

Souhlasím, jenže při existenci XML schématu ti hodně pomůže editor – např. takový Emacs ti bude napovídat a kontrolovat syntaxi, aniž bys musel něco řešit – stačí když vedle editovaného souboru bude Relax NG schéma se stejným názvem. V případě nového formátu ti ani neobarví syntaxi, natož aby ti kontroloval správnost a hlásil chyby.

Koncepcne by to bylo nejlepsi udelat v LISPu nebo Schemu

Něříkám, že to nezní zajímavě :-) Můžeš napsat příklad, jak by ta data (ty tři XML soubory) vypadala? Jak by se tam např. zapisovala vazba mezi jazykem a teritoriem a klávesnicí a teritoriem, kde teritorium je definované na jednom místě a má zase vazby na jazyky, klávesnice a další věci?

diskuze, jestli je to lepsi realizovat jako data, program, DSL by uplne odpadla.

A není pak riziko, že taková konfigurace bude příliš mocná a případná chyba nebo záměrná změna v ní může rozhodit celý program a změnit jeho chování? Trochu mi to připomíná situaci, kdy vezmeš data, o kterých někdo tvrdí, že jsou JSON, a zavoláš na nich eval(). Něco podobného je ten SQL skript, ve kterém by mohly být kromě očekávaných INSERTů i příkazy DELETE, DROP TABLE atd. (i když tohle jde aspoň řešit přes vhodně nastavená práva v DB).

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
7.8.2013 13:16 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Java, deklarativní mapování, relační databáze
Souhlasím, jenže při existenci XML schématu ti hodně pomůže editor
Zase DSL muze byt tak jednoduchy, ze si vystacis i s notepadem. Kdyz si budes konfiguraci zapisovat v SQL, editor ti moc nepomuze.
Můžeš napsat příklad, jak by ta data (ty tři XML soubory) vypadala?
Nechce se mi nad tim moc premyslet. Ale proc ne treba jako XML prepsane do S-vyrazu?
(languages
   (language
      :id aa
      :iso639-1 aa
      :iso639-2-t aar
      :iso639-2-b aar
      :names ((aa Qafar) (az afarca) ...))
   (language ...))
A není pak riziko, že taková konfigurace bude příliš mocná a případná chyba nebo záměrná změna v ní může rozhodit celý program a změnit jeho chování?
Tohle je hodne hloupy argument. Zakladem unixove filozofie je, ze uzivatel vi, co dela.
Trochu mi to připomíná situaci, kdy vezmeš data, o kterých někdo tvrdí, že jsou JSON, a zavoláš na nich eval().
To je presne to proc tu pisu o LISPu. Protoze tak se na tu konfiguraci muzes divat jako na data, ale soucasne i na DSL, ktery ti muze overovat validitu dat, vytvaret objekty, atd. a soucasne by to odpovidalo predzvykani do konkretniho jazyka, jak navrhujes.
Něco podobného je ten SQL skript, ve kterém by mohly být kromě očekávaných INSERTů i příkazy DELETE, DROP TABLE atd.
Ne, neni, viz ma predchozi poznamka.
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
7.8.2013 23:46 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: Java, deklarativní mapování, relační databáze
Relax NG schéma
Wow, díky, to jsem neznal a přitom hledal :)
7.8.2013 09:03 ed | skóre: 18
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
ako som zacal citat tento clanok, tak som nadobudol dva dojmy, ktore su pre mna poslednu dobu pre linuxovy svet celkom charakteristicke:

1. "the problem is... linux sometimes acts like a 3rd world country, no quality control, no standards" (grep z irc ##slackware na freenode, zial uz nepamatam nick) na mnoho veci existuje kod, ale tento kod je bud pochybnej kvality a este pochybnejsej funkcie, alebo by teoreticky aj bol pouzitelny ale a) bud nema dostacujucu, alebo absolutne ziadnu dokumentaciu b) je to tak nechutny bloatware, ze si ho clovek radsej reimplementuje sam. ziarivym prikladom druheho pripadu budiz kniznica glib2, ktora sice obsahuje haldu uzitocnych algoritmov, ale je to taky bloatware, ze pre drvivu vacsinu programov, ktore by ju aj pouzili je nepouzitelne velka.

2. nulova podpora zero investigation ci uz na strane pouzivatela, alebo na strane programatorov. okolo open source vznikol kopec dobre mienenych a feature-rich technologii, ale opat. bud je treba studovat neumerne vela howto / tutorialov / manualov (ak existuju) na to, aby sa rozchodili trivialne featury, alebo je naopak cela vec tak brutalne zautomatizovana, ze do toho rucne nie je mozne vobec zasiahnut. prikladom prvej budiz jabber. teoreticky ten protokol vie kopec veci, ale preco, PRECO sakra do toho protokolu nebol vstavany zeroconf? to si fakt musim pre kazdy jeden ucet RUCNE nastavovat take prkotiny ako je server na prenos suborov, pripadne server na videohovory? nech mi nikto nehovori, ze sa to neda dorpavit do klienta automaticky. ze si to potom pouzivatel zmeni, je jeho vec. ale nemusi sa hladat po standardnych hodnotach, ani riesit, preco mu skapala funkcia, ak sa nahodou adresy zmenia...

a potom tretia vec. Vala. fakt; naozaj? da sa to exportovat do mnoho inych zhruba rovnako pouzitelnych jazykov, ako je vala samotna? a ako argument pouzit, ze povodny kod ide pouzit +- len z pythonu? osobne mi pride rozumnejsie napisat vec v C/C++ a potom na to robit bindingy na ine jazyky, co obvykle prinasa moznost pokryt PODSTATNE sirsie spektrum jazykov, ako robit to "ritou dopredu".
7.8.2013 09:30 Conscript89 | Brno
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
to si fakt musim pre kazdy jeden ucet RUCNE nastavovat take prkotiny ako je server na prenos suborov
Ne, u verejne IP to neni potreba.
I can only show you the door. You're the one that has to walk through it.
9.8.2013 11:18 ed | skóre: 18
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
uspesne sa vam podarilo neodhalit pointu
7.8.2013 09:32 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
bud je treba studovat neumerne vela howto / tutorialov / manualov (ak existuju) na to, aby sa rozchodili trivialne featury, alebo je naopak cela vec tak brutalne zautomatizovana, ze do toho rucne nie je mozne vobec zasiahnut.

S čím to srovnáváš? Ono vždycky najdeš něco, co tě bude štvát, ale otázka je, jestli jinde je to lepší. U proprietárního softwaru jsem se nezřídka setkal s tím, že musíš strávit několik dní, jen aby sis rozchodil verzovací systém a vývojové prostředí. Naopak u svobodného softwaru se většinou klade důraz na snižování té vstupní bariéry (autoři chtějí, aby jim ostatní mohli přispět), zdrojáky si stáhneš nějakým obvyklým systémem (mercurial, git, svn, bzr, cvs) a dáš ./configure && make && make install nebo něco podobného, případně přečteš README a doinstaluješ pár knihoven ze své distribuce.

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
9.8.2013 11:17 ed | skóre: 18
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
porovnavat to staci kludne s nejakymi starsimi (tak 6+ rokov starsimi) open source vecami. kym boli veci na tom tak, ze bol problem nieco rozchodit, existovali k vsetkemu tony manualovych stranok, ak si dnes zoberem nejaky projekt, ktory je hostovany na webe freedesktopu, tak je celkom slusna sanca, ze k nemu neexistuje vobec ziadna, alebo len totalne nepouzitelna (t.j. manazerska) dokumentacia. a je jedno, v akom stadiu ten ktory projekt je. posledna taka vec, na ktorej som si nadrel hubu je dokumentacia EXA. schvalne si skus najst nejake ucelenejsie info. najlepsie co mas, su doxygenove komentare k funkciam v zdrojakoch. co je sice fajn mat dokumentaciu API, ale stale to moc nehovori o koncepte ako celku.
9.8.2013 11:46 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi

Svobodný/otevřený software je čím dál úspěšnější a věnuje se mu čím dál víc lidí – s tím přirozeně souvisí i to, že se rozšiřuje rozpětí kvality: od perfektních kousků až po úplný brak.

A trochu tomu nahrávají i weby jako GitHub – pamatuji si jak dřív bylo potřeba žádat o schválení projektu na SourceForge nebo si vytvořit vlastní web a rozjet vlastní verzovací systém. Dneska stačí prsknout zdrojáky na hosting a je to – hodně lidí se pak ani neobtěžuje s tím, aby napsali aspoň abstrakt, k čemu že ten jejich program vlastně slouží.

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
11.8.2013 23:35 mankind_boost
Rozbalit Rozbalit vše Re: Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Taková koncentrace buzzwordů se jen tak nevidí :-D

feature-rich technologii, zero investigation, ...

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

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.