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
     _________________________________________________________________

                             Pro Tábor a okolí

   hledají se zdatné osoby každého stavu ku prodeji všeobecně oblíbeného
   předmětu. Vysoký výdělek 100 až 400 K měsíčně, bez risika. Osvědčeným
   silám stálý pevný plat. Oboru neznalí budou poučeni.

                     Nabídky pod zn. ,,O. B. 3780`` do
                             insertní kanceláře
                            Jana Grégra v Praze,
                            Jindřišská ulice 19.
     _________________________________________________________________

                                         -- Týdeník Tábor
    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;
    }