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í
×

21.4. 15:00 | Komunita

V diskusním listu Thunderbird planning vývojáři poštovního klienta Thunderbird řeší, zda by nebylo možné budoucí Thunderbird postavit nad webovými technologiemi, tj. nad Electronem, stejně jako například Nylas Mail. Gecko, nad kterým je Thunderbird postaven, se má hodně změnit. V plánu je odstranění vlastností, které Firefox už nepotřebuje, ale Thunderbird je na nich závislý [Hacker News, reddit].

Ladislav Hagara | Komentářů: 74
21.4. 10:22 | Bezpečnostní upozornění

Společnost Oracle vydala čtvrtletní bezpečnostní aktualizaci svých softwarových produktů (CPU, Critical Patch Update). Opraveno bylo celkově 299 bezpečnostních chyb. V Oracle Java SE je například opraveno 8 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 7 z nich. V Oracle MySQL je opraveno 39 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 11 z nich.

Ladislav Hagara | Komentářů: 6
21.4. 10:00 | Pozvánky

V úterý 25. dubna proběhne další Prague Containers Meetup. Přijďte se nechat inspirovat jak zlepšit build/delivery pipeline vašich kontejnerových aplikací.

little-drunk-jesus | Komentářů: 2
20.4. 21:33 | Komunita

Na Launchpadu se objevilo kódové jméno následující verze Ubuntu. Ubuntu 17.10 bude Artful Aardvark (mazaný hrabáč) [OMG! Ubuntu!].

Ladislav Hagara | Komentářů: 9
20.4. 20:11 | Zajímavý software

MojeFedora.cz informuje, že společnost Nylas oznámila vydání verze 2.0 poštovního klienta Nylas Mail (původně Nylas N1), která již plně podporuje Linux. Obchodní model společnosti je tzv. open core. Samotný klient je open source, ale uživatel si musí připlatit za některé pokročilé funkce. V základu se lze připojit k GMailu nebo libovolnému účtu přes IMAP. Podpora Exchange je pouze v placené verzi. Klient je napsaný nad Electronem.

Ladislav Hagara | Komentářů: 12
20.4. 15:55 | Zajímavý článek

České centrum pro investigativní žurnalistiku (ČCIŽ) publikovalo na svých stránkách článek s názvem Je česká státní správa „rukojmím Microsoftu“?. Drtivá většina české veřejné správy je závislá na výrobcích softwarového gigantu Microsoft – a nijak zvlášť jí to nevadí.

Ladislav Hagara | Komentářů: 16
20.4. 02:48 | Nová verze

Google Chrome 58 byl prohlášen za stabilní. Nejnovější stabilní verze 58.0.3029.81 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo 29 bezpečnostních chyb. Mezi nimi i chyba umožňující phishing s unicode doménami.

Ladislav Hagara | Komentářů: 0
19.4. 22:44 | Nová verze

Po šesti týdnech od vydání verze 52.0 byla vydána verze 53.0 webového prohlížeče Mozilla Firefox. Z novinek lze upozornit například na nové kompaktní vzhledy – tmavý z Firefoxu Developer Edition a jeho světlá varianta. Na Linuxu byla ukončena podpora procesorů starších než Pentium 4 a AMD Opteron. Podrobné informace v poznámkách k vydání a na stránce věnované vývojářům. Řešeny jsou také bezpečnostní chyby.

Ladislav Hagara | Komentářů: 11
19.4. 17:44 | IT novinky

Realtimová strategická počítačová hra StarCraft a její rozšíření StarCraft: Brood War jsou ode dneška zdarma. Společnost Blizzard Entertainment chystá remasterovanou verzi (YouTube) a při té příležitosti se rozhodla neremasterovanou verzi aktualizovat a dát ji ode dneška k dispozici zdarma. Hru lze na Linuxu hrát pod Wine.

Ladislav Hagara | Komentářů: 3
18.4. 13:11 | Bezpečnostní upozornění

CSIRT.CZ upozorňuje na chybu v prohlížečích Chrome a Firefox umožňující vytvořit phishingovou stránku, kterou lze jen velmi těžko identifikovat jako závadnou. Chyba spočívá v implementaci ochrany proti dávno známému útoku homograph attack. Čínský bezpečnostní expert Xudong Zheng zjistil, že ochrana proti tomuto útoku selže v okamžiku, kdy doménové jméno obsahuje všechny znaky v jiném jazyce. Viz například аррӏе.com vs. apple.com nebo еріс.com vs. еріс.com.

Ladislav Hagara | Komentářů: 40
Chystáte se pořídit CPU AMD Ryzen?
 (4%)
 (35%)
 (0%)
 (7%)
 (45%)
 (9%)
Celkem 267 hlasů
 Komentářů: 31, poslední 20.4. 21:26
    Rozcestník
    Štítky: není přiřazen žádný štítek

    Vložit další komentář
    28.10.2013 21:31 Radek Miček | skóre: 23 | blog: radekm_blog
    Rozbalit Rozbalit vše Re: Stackless python
    Takhle se neustále načítají nové a nové tasklety s požadavky na webové stránky, takže program pořád něco dělá, místo aby vždy čekal 2 vteřiny na navázání spojení.
    A to by nestačil CPython s nějakou knihovnou pro asynchronní zpracování?
    Bystroushaak avatar 28.10.2013 21:41 Bystroushaak | skóre: 31 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Stackless python
    V zásadě ano. Jenže ono by se to tak moc nelišilo a ve výsledku bych programoval skoro to samé, jen s tím rozdílem, že druhý kód by byl nepřehlednější a musel bych použít jiné knihovny, ne ty svoje oblíbené. Stackless je docela příjemná abstrakce pro programátora.
    28.10.2013 22:00 sam
    Rozbalit Rozbalit vše Re: Stackless python
    Obavam se, ze ne GIL nelze obejit, musela by se prepsat vetsina kodu CPythonu.

    Btw. pro takove pripady a nejen pro ne ocenuju genialni navrh Haskellu a vlastne i implementaci GHC. Nejen ze je trivialni paralelizovat, ale bezi to o rady rychleji.

    28.10.2013 21:41 chrono
    Rozbalit Rozbalit vše Re: Stackless python
    Nebolo by dnes rozumnejšie používať greenlet (prípadne niečo, čo greenlet používa)?
    Bystroushaak avatar 28.10.2013 21:44 Bystroushaak | skóre: 31 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Stackless python
    Greenlet má jen kooperativní multitasking, pokud se nepletu.
    28.10.2013 22:44 luky
    Rozbalit Rozbalit vše Re: Stackless python
    V cem je problem s 800 thready, GIL? Samotny Linux skaluje dobre a muzete si vytvorit desitky tisic threadu aniz by se to neja vyrazne projevilo v behu systemu.
    Bystroushaak avatar 28.10.2013 22:47 Bystroushaak | skóre: 31 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Stackless python
    Já jsem to ani moc nezkoumal, stačilo mi, že jsem musel provést hardreset jednou, poté co to sežralo všechny systémové prostředky tak dokonale, že pomohl až sysrq (jenže tam byla zábavná smyčka, která zase otevírala nové thready, takže proto hardreset).
    oryctolagus avatar 28.10.2013 23:00 oryctolagus | skóre: 29 | blog: Untitled
    Rozbalit Rozbalit vše Re: Stackless python
    Pokud si dobře vzpomínám, tak problém je v tom, že CPython nevytváří nativní (pthreads) thready, ale nějaké svoje vlastní a kód stejně běží v jednom threadu.
    Shell v kostce: echo -e "\e[1;2r\e[?2l"  |  Java v kostce  |  Haskell v kostce  |  RESOLVED FIXED
    Bystroushaak avatar 28.10.2013 23:23 Bystroushaak | skóre: 31 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Stackless python
    kód stejně běží v jednom threadu
    Jo, tohle je jedna z bolestí pythonu.
    xkucf03 avatar 29.10.2013 11:49 xkucf03 | skóre: 46 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Stackless python

    Takže je pořád jediný způsob, jak využít vícejádrový procesor, spustit více interpretů Pythonu?

    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-Výuka.cz, Nekuřák.net
    Jakub Lucký avatar 29.10.2013 11:57 Jakub Lucký | skóre: 40 | Praha
    Rozbalit Rozbalit vše Re: Stackless python
    reálně ano... Python k tomu má rozhraní jménem multiprocessing se stejným API jako thready...

    Obecně se GIL považuje za největší problém CPythonu (referenční implementace Pythonu), se kterým se již roky marně bojuje. Třeba PyPy (alternativní interpreter) tímhle netrpí
    If you understand, things are just as they are; if you do not understand, things are just as they are. (Zen P.) Blogísek
    pavlix avatar 29.10.2013 18:56 pavlix | skóre: 53 | blog: pavlix
    Rozbalit Rozbalit vše Re: Stackless python
    Nikoliv, ani tomu tak nebylo.
    29.10.2013 00:34 Radek Podgorny | skóre: 16
    Rozbalit Rozbalit vše Re: Stackless python
    cpython samozrejme vytvari native thready. problem je, ze kvuli gil muze spoustet pythoni kod jen vzdy v jednom z nich (v dany okamzik). pro paralelizaci veci mimo python (rozumej knihovny napsane v cecku) to slouzi skvele... ...a kdyz ne, tak mame multiprocessing. ;-)
    oryctolagus avatar 29.10.2013 12:34 oryctolagus | skóre: 29 | blog: Untitled
    Rozbalit Rozbalit vše Re: Stackless python
    Ok, dík za objasnění...
    Shell v kostce: echo -e "\e[1;2r\e[?2l"  |  Java v kostce  |  Haskell v kostce  |  RESOLVED FIXED
    pavlix avatar 29.10.2013 01:43 pavlix | skóre: 53 | blog: pavlix
    Rozbalit Rozbalit vše Re: Stackless python
    To je o těch vlastních vláknech je velmi rozšířená fáma. Ve skutečnosti se jen používá globální zámek pro zpracování pythoního kódu.
    29.10.2013 01:12 xm | skóre: 36 | blog: Osvobozený blog | Praha
    Rozbalit Rozbalit vše Re: Stackless python
    K čemu stackless v době kdy je tu gevent?
    Svoboda je tím nejdůležitějším, co máme. Nenechte se o ní připravit, podporujte Pirátskou stranu!
    Bystroushaak avatar 29.10.2013 01:47 Bystroushaak | skóre: 31 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Stackless python
    Je to založené na greenletech, tzn je to zase kooperativní, ne?
    Bystroushaak avatar 29.10.2013 01:48 Bystroushaak | skóre: 31 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Stackless python
    The greenlets all run in the same OS thread and scheduled cooperatively. This means that until a particular greenlet gives up control, by calling a blocking function that will switch to the Hub, other greenlets won’t get a chance to run.
    Jo.
    pavlix avatar 29.10.2013 01:49 pavlix | skóre: 53 | blog: pavlix
    Rozbalit Rozbalit vše Re: Stackless python
    To vadí?
    Bystroushaak avatar 29.10.2013 01:54 Bystroushaak | skóre: 31 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Stackless python
    Tak zrovna u práce s webem tě to nutí používat asynchronní moduly, nebo prostě budeš muset čekat, než se daná věc stáhne. A když už musíš používat asynchronní moduly, tak se to celé stává jaksi zbytečné.

    Stackless ti dovoluje používat klasické moduly do té doby, dokud jsou napsané v pythonu a nejedná se o C API. Ty moduly ani neví, že běží paralelně. Já tak můžu používat moje oblíbené knihovny na stahování a parsování a nic dalšího neřešit, protože to za mě řeší Stackless.
    pavlix avatar 29.10.2013 02:21 pavlix | skóre: 53 | blog: pavlix
    Rozbalit Rozbalit vše Re: Stackless python
    A když už musíš používat asynchronní moduly, tak se to celé stává jaksi zbytečné.
    Právě naopak. Ve chvíli, kdy používáš asynchronní IO, to celé dávat smysl začíná.
    Bystroushaak avatar 29.10.2013 11:59 Bystroushaak | skóre: 31 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Stackless python
    Šlo mi spíš o to, že ve chvíli kdy používáš asynchronní knihovny, tak si vystačíš s čistým pythonem (můžeš používat generátory).
    pavlix avatar 29.10.2013 19:05 pavlix | skóre: 53 | blog: pavlix
    Rozbalit Rozbalit vše Re: Stackless python
    Nějak nechápu, kam míříš.

    Já si asynchronní službu představuju jako službu, jejíž základním kamenem je využívání neblokujících volání a hlavní smyčky za pomoci prostředků operačního systému pro čekání na vstup/výstup. Chápu, že asynchronní lze brát i v mnohem širším významu, ale v souvislosti s programováním různých síťových a systémových služeb a nástrojů, si s takto úzkou definicí vystačím a nepotřebuju k tomu preemptivní multitasking.
    tak si vystačíš s čistým pythonem
    K tomu si vystačíš i bez Pythonu, stačí ti C a pár systémových volání. Nicméně jak obecné C, tak obecný Python trpí tím, že na file descriptorech založené asynchronní knihovny mezi sebou nejdou vždy dobře kombinovat a už vůbec se dobře nekombinují s knihovnami, které používají vlákna, podprocesy a podobné prostředky.

    Vidím to tak, že možnosty Pythonu i toho, jak se dneska používá C jsou na tolik špatné, že kdyby se tohle v obou jazycích vyřešilo (včetně interoperability mezi řešením pro C a Python), sníží se vstupní bariéra pro programování komplikovanějších aplikací v obou jazycích natolik, že bych se nebál to nazývat takovou malou programátorskou revolucí. Všiml jsem si, že v Pythonu už se o to nějakým způsobem snaží a chystám se zjistit, co v tomhle ohledu nabízí open source knihovny pro C.
    30.10.2013 12:30 Mike
    Rozbalit Rozbalit vše Re: Stackless python
    Gevent umožňuje monkey patching všech standardních Python modulů (a v důsledku i externích modulů, protože patchuje takové základní věci jako socket, thread, select, os.fork, atp., aby běhaly ve skutečnosti přes gevent). Je extrémně rychlý (využívá event loop založenou na libevent, která na každé platformě využívá to nejlepší řešení jako backend - epoll na Linuxu, kqueue na FreeBSD, atp.).

    Navíc má gevent skvělé jednoduché pythonic API, není to žádné monstrum jako třeba Twisted (ale dokáže s Twisted v případě potřeby spolupracovat). A na rozdíl od Stackless člověk nemusí mít speciální interpreter, je to normální modul do standardního CPythonu.
    29.10.2013 13:40 JS1 | skóre: 2 | blog: intuition_pump
    Rozbalit Rozbalit vše Re: Stackless python
    A co goroutines? To funguje ve srovnani s Stackless Pythonem jak?
    Bystroushaak avatar 29.10.2013 16:12 Bystroushaak | skóre: 31 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Stackless python
    29.10.2013 13:57 alfonz mucha
    Rozbalit Rozbalit vše Re: Stackless python

    A já si naivně myslel, že kvůli tomuhle mám vždy právě instalovat pypy > abych to nemusel řešit ;)

    no nevadí... tak aspoň rychlé výsledky pro normální python kód.

    $ time python tests2.py
    ('starting', 'prvni', 1383050839.110662)
    ('starting', 'druhy', 1383050839.677418)
    ('starting', 'treti', 1383050840.239811)
    ('ending', 'prvni', 1383050847.908535, '-', 8.79787302017212)
    ('ending', 'treti', 1383050848.091353, '-', 7.851541996002197)
    ('ending', 'druhy', 1383050848.176817, '-', 8.499398946762085)

    real    0m10.093s
    user    0m8.557s
    sys    0m1.516s

    $ time pypy tests2.py
    ('starting', 'prvni', 1383050858.987054)
    ('starting', 'druhy', 1383050858.987302)
    ('starting', 'treti', 1383050858.987473)
    ('ending', 'prvni', 1383050860.588778, '-', 1.6017239093780518)
    ('ending', 'treti', 1383050860.58912, '-', 1.601646900177002)
    ('ending', 'druhy', 1383050860.58933, '-', 1.6020278930664062)

    real    0m1.982s
    user    0m1.680s
    sys    0m0.060s

    Já to například dělám tak, že pokud jsou v cestě masivní výpočty, tak nejdříve testuji, jestli je to spustitelné přes pypy. Pokud jo, tak to obvykle dále neřeším. Další možnost beru threading a multiprocessing. Stackless vypadá také pěkně, ale není většinou součástí, takže se může těžko používat. Pypy například již často bývá.

    29.10.2013 14:02 alfonz mucha
    Rozbalit Rozbalit vše Re: Stackless python
    ještě sem můžeme hodit rychlý výsledek pro python3
    $time python3 tests2.py
    starting prvni 1383051554.39305
    starting druhy 1383051554.393192
    starting treti 1383051554.393255
    ending prvni 1383051565.460286 - 11.067235946655273
    ending treti 1383051565.460516 - 11.067260980606079
    ending druhy 1383051565.460628 - 11.06743597984314
    
    real	0m11.192s
    user	0m11.141s
    sys	0m0.040s
    
    29.10.2013 14:13 JS1 | skóre: 2 | blog: intuition_pump
    Rozbalit Rozbalit vše Re: Stackless python
    Já to například dělám tak, že pokud jsou v cestě masivní výpočty, tak nejdříve testuji, jestli je to spustitelné přes pypy.
    Je rozdil mezi concurrency (jak se tomu rika cesky?) a paralelismem. Viz prednaska.

    Concurrency je o tom, jak strukturovat program, aby nemusel cekat na jine casti. Paralelismus je o behu na vice procesorech kvuli vykonu. Blogpost je o concurrency, vase reseni se tyka paralelismu.
    29.10.2013 15:00 alfonz mucha
    Rozbalit Rozbalit vše Re: Stackless python
    Ok, jasně... to jsem si hned neuvědomil. Stále mi však přijde, že paralelní řešení může řešit problémy concurrency. Jasně ne úplně a ne všechny, ale obvykle to může být řešení dostatečné, ne? Nebo je to jinak?
    29.10.2013 15:35 JS1 | skóre: 2 | blog: intuition_pump
    Rozbalit Rozbalit vše Re: Stackless python
    No, ne vzdycky. Stackless byl tusim treba pouzit v nekterych hrach, kdy kazdy akter bezel ve vlastni korutine. Tam opravdu neslo o paralelismus, ale spis o jednoduchost programovani.

    Me by zajimalo, jestli nekdo zkousel takto (na hru, nebo simulaci mnoha agentu) pouzit jazyk Go. Myslim, ze by se to mohlo hodit.
    Bystroushaak avatar 29.10.2013 16:11 Bystroushaak | skóre: 31 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Stackless python
    K pypy jsem se popravdě ještě nedostal, ale už včera jsem si ho na základě diskuze přidal do TODO :)
    Stackless vypadá také pěkně, ale není většinou součástí, takže se může těžko používat.
    Tohle je aplikace, která poběží jen u mě na serveru, nic co bych sdílel mezi více počítači, takže v tomhle konkrétním případě to není velká vada.
    Bystroushaak avatar 30.10.2013 01:01 Bystroushaak | skóre: 31 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Stackless python
    Support for Stackless and greenlets are now integrated in the normal PyPy. More detailed information is available here.
    Pěkné!
    30.10.2013 22:14 Filip Svoboda
    Rozbalit Rozbalit vše Re: Stackless python
    Tohle mi prijde mega uchylne.. proc nepouzit neblokujici sockety a hlidat je select()em? pripadne je vyhradit do jednoho vlakna...
    Bystroushaak avatar 31.10.2013 01:49 Bystroushaak | skóre: 31 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Stackless python
    Proč jo?
    7.11.2013 01:31 Filip Svoboda
    Rozbalit Rozbalit vše Re: Stackless python
    + vyhnes se ztrate vykonu pri prepinani

    + je to standardni vzor kterymu kazdej rozumi

    + nepotrebujes hackovat interpret, tj lepsi kompatibilita

    - potrebujes neblokujici knihovny pro zrani io streamu

    - jednu smycku v programu atd,..

    navic podle me muze to stackless, protoze to bude zahackovany dost v jadru interpretu zpusobit nepekny chyby, ktery bude tezky odladit.
    Bystroushaak avatar 7.11.2013 20:50 Bystroushaak | skóre: 31 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Stackless python
    + nepotrebujes hackovat interpret, tj lepsi kompatibilita
    Přidával jsem to na začátek blogpostu - v pypy je Stackless by default, takže se nic hackovat nemusí.
    + je to standardni vzor kterymu kazdej rozumi
    Jo, ale je to hnus (pro mě). A když máš náhodou pracovat s víc asynchronníma knihovnama najednou, tak se to začíná špagetovat. Nehledě na to, že některé knihovny asynchronní imho neseženeš (např. html parser).
    + vyhnes se ztrate vykonu pri prepinani
    Ok, tohle beru. Ta ztráta není moc velká, ale u některých aplikací by to vadit mohlo.
    navic podle me muze to stackless, protoze to bude zahackovany dost v jadru interpretu zpusobit nepekny chyby, ktery bude tezky odladit.
    Tohle je problém, který budu řešit pokud na něj narazím, nemá smysl se nervovat něčím, co dost možná ani neexistuje.
    8.11.2013 02:38 Filip Svoboda
    Rozbalit Rozbalit vše Re: Stackless python
    v pypy je Stackless by default
    OK, chapu, existuje interpret co to ma v sobe.. pro me je python to, co se spusti kdyz napisu do shellu "python", a uplne nejradej mam interprety/technologie ktery fungujou kazdymu naprosto stejne, tj jednou je to "python", tak ma konstantni syntax, zakladni lib set atd.. co kus interpretu to original mi na pythonu z hlediska profesionalniho nasazeni vadi uplne nejvic
    Jo, ale je to hnus (pro mě). A když máš náhodou pracovat s víc asynchronníma knihovnama najednou, tak se to začíná špagetovat. Nehledě na to, že některé knihovny asynchronní imho neseženeš (např. html parser).
    async http server/klient jsem si musel napsat sam, opravdu je o takovy knihovny nouze (nebo spatne hledam), to je dost velka nevyhoda. kod kterej si takhle stvoris je ale porad 100% ve tvoji moci a nebude ti ho nic nikde prerusovat kdyz nema (samozrejme krome prepinani procesu v OS), tohle ocenis predevsim jakmile zacnes ladit urcity casti kodu pro high-throughtput nebo predevsim low latency response, tam to proste vadi (urcite to ale neni pripad bezneho web crawleru, apod,..)
    Tohle je problém, který budu řešit pokud na něj narazím, nemá smysl se nervovat něčím, co dost možná ani neexistuje.
    Me moje situace dodavatele prumyslovych reseni mne nuti vytvaret kod kterej nepada a jsem schopnej za nej smluvne rucit (tj ze kod pobezi a nevyskytne se v nem zadna chyba), proto cim vice veci mam v moci a cim mene veci je dynamicky alokovanych/zavislych/rozbitelnych, .. tim lip

    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.