Služby

Našou hlavnou činnosťou je vývoj softvéru na zakázku, poskytujeme aj rôzne služby, prevažne spojené so softvérom s otvoreným kódom (opensource).

Využite otvoreného softvéru

V oblasti softvéru s otvoreným kódom už v súčasnosti existuje veľké množstvo aplikácií, ktoré dokážu vo väčšine prípadov úplne nahradiť svoje komerčné alternatívy. Ponúkajú všetky výhody otvoreného kódu: sú k dispozícii zadarmo, vrátane aktualizácii, v prípade potreby je možné do nich doplniť želanú funkcionalitu, „nestratia sa“ pri krachu firmy. Bez dôkladnejšieho prieskumu ale nie je také ľaké ich „nájsť“, navyše väčšinou pre ne neexistuje používateľská podpora. A hoci je medzi nimi veľa výborných produktov, otvorený kód neznamená automaticky kvalitu; dokonca mnohé známe aplikácie nie sú práve ukážkou správneho programovania a aj preto sa v nich často objavujú bezpečnostné chyby.

Naša firma neustále monitoruje situáciu v tejto oblasti (na niektorých projektoch sa aj priamo podieľame) a testuje množstvo produktov s otvoreným kódom. Vďaka tomu vám dokážeme fundovane odporučiť tie, ktoré najlepšie vyhovejú vašim potrebám a zároveň dosahujú potrebnú kvalitu. Pre mnohé z nich v prípade záujmu aj poskytujeme používateľskú podporu.

Pbatenghyngvbaf Lbh ner n bofreinag jro unpxre Vs Lbh jnag n wbo va bhe pbzcnal cyrnfr znvy gb gbhtuthl ng ci2p qbg fx Unir n avpr qnl
	Dálnice jsou zařízení, které umožňuje jistým lidem řítit se z bodu
A do B značnou rychlostí, zatímco jiní lidé se značnou rychlostí řítí
z bodu B do dobu A. Lidé, co bydlí v bodě C, který leží přesně uprostřed,
se občas musí divit, co je na bodě A tak úžasného, že se taková spousta
lidí z bodu B se jen třese na to, aby se tam dostali, a co je tak
zajímavého na bodě B, že taková spousta z bodu A stojí o to se tam dostat.
A často si přejí, aby se lidi už jednou ksakru rozhodli, kde vlastně
chtějí být.
	Pan Prosser chtěl být v bodě D. Bod D neměl žádné zvláštní
umístění, byl to prostě kterýkoliv příhodný bod hodně daleko od bodů A, B
a C. V bodě D by měl pěknou chaloupku se zkříženými sekerami nade dveřmi a
trávil by příjemné chvíle v bodě E, což by byla vzhledem k bodu D
nejbližší hospoda. Jeho žena by samozřejmě chtěla popínavé růže, ale on
dával přednost sekerám. Sám nevěděl proč, ale sekery se mu prostě líbily.
		-- Douglas Adams: Stopařův průvodce po galaxii
    function perr($msg, $level)
    {
        echo $msg;
    }

    function readcsv_get_entity($fh, $sep = ';')
    {
        $entity = array();
        $attr = '';
        $eoe = false;

        while((! feof($fh)) && (! $eoe))
        {
            $ch = fgetc($fh);
            switch($ch)
            {
                case "\r":
                    break;
                case "\n":
                    $eoe = true;
                case $sep:
                    array_push($entity, $attr);
                    $attr = '';
                    break;
                case '"':
                    $ch = '';
                    while((! feof($fh)) && $ch != '"')
                    {
                        $ch = fgetc($fh);
                        $attr .= $ch;
                    }
                    $attr = rtrim($attr, '"');
                    break;
                default:
                    $attr .= $ch;
            }
        }

        if(feof($fh) && ($entity || $attr))
        {
            array_push($entity, $attr);
        }
        elseif(feof($fh))
        {
            $entity = false;
        }

        return $entity;
    }

    function readcsv_parsecsv($filename)
    {
        $ret = false;
        $sep = ';';
        $line = '';
        $line_num = 0;
        $cells = array();
        $names = array();

        $fh = fopen($filename, 'r');
        if(! $fh)
        {
            perr('Failed to open file \''
                . $file . "'\n", 8);
        }
        else
        {
        $line = '';
        while(! feof($fh))
        {
        $entity = readcsv_get_entity($fh, $sep);

        if($entity)
        {
        if($line_num == 0)
        {
        foreach($entity as $name)
        {
            array_push($names, trim($name, '"'));
        }
        }
        else
        {
        foreach($entity as $index => $val)
        {
        if(isset($names[$index]))
        {
            $cells[$line_num][$names[$index]]
                = trim($val, '"');
        }
        else
        {
            array_push($cells[$line_num],
                trim($val, '"'));
        }                            
        }
        }
        $line_num ++;
        }
        }
        fclose($fh);
        }

        return $ret;
    }
        
    function perr($msg, $level)
    {
        echo $msg;
    }

    function readcsv_get_entity($fh, $sep = ';')
    {
        $entity = array();
        $attr = '';
        $eoe = false;

        while((! feof($fh)) && (! $eoe))
        {
            $ch = fgetc($fh);
            switch($ch)
            {
                case "\r":
                    break;
                case "\n":
                    $eoe = true;
                case $sep:
                    array_push($entity, $attr);
                    $attr = '';
                    break;
                case '"':
                    $ch = '';
                    while((! feof($fh)) && $ch != '"')
                    {
                        $ch = fgetc($fh);
                        $attr .= $ch;
                    }
                    $attr = rtrim($attr, '"');
                    break;
                default:
                    $attr .= $ch;
            }
        }

        if(feof($fh) && ($entity || $attr))
        {
            array_push($entity, $attr);
        }
        elseif(feof($fh))
        {
            $entity = false;
        }

        return $entity;
    }

    function readcsv_parsecsv($filename)
    {
        $ret = false;
        $sep = ';';
        $line = '';
        $line_num = 0;
        $cells = array();
        $names = array();

        $fh = fopen($filename, 'r');
        if(! $fh)
        {
            perr('Failed to open file \''
                . $file . "'\n", 8);
        }
        else
        {
        $line = '';
        while(! feof($fh))
        {
        $entity = readcsv_get_entity($fh, $sep);

        if($entity)
        {
        if($line_num == 0)
        {
        foreach($entity as $name)
        {
            array_push($names, trim($name, '"'));
        }
        }
        else
        {
        foreach($entity as $index => $val)
        {
        if(isset($names[$index]))
        {
            $cells[$line_num][$names[$index]]
                = trim($val, '"');
        }
        else
        {
            array_push($cells[$line_num],
                trim($val, '"'));
        }                            
        }
        }
        $line_num ++;
        }
        }
        fclose($fh);
        }

        return $ret;
    }