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
Naším oblíbeným příkladem blízkého vztahu k zákazníkovi je prodejce
automobilů Joe Girard... Jeho tajemství (úspěchu) je i tajemstvím IBM a
mnoha dalších společností. Jsou to prostě služby, jedinečné služby,
zejména poprodejní. Joe podotýká: "V čem se liším od mnoha jiných
obchodníků, je to, že si myslím, že skutečný prodej začíná až po prodeji -
nikoli před ním... Zákazník ještě ani nevyšel ze dveří a můj syn mu již
píše děkovný lístek." O rok později se Joe angažuje osobně spolu
s vedoucím svého servisu a nabídne zákazníkovi své služby. Mezitím s ním
udržuje nepřetržitý styk: "Joeovi zákazníci, jakmile od něj jednou koupili
auto, na něj nezapomenou: prostě jim to nedovolí!" ... Říkává: "Z kuchyní
našich velkých restaurací vychází láska a péče ... a když já prodám vůz,
musí mít můj zákazník při odchodu stejný pocit, jako když vychází
z proslulé restaurace." ... Když (zákazník) přijde a potřebuje nějakou
opravu, udělám vše, aby dostal to nejlepší... Musíte být jako lékař. Jeho
automobilu něco je, a vy s ním musíte cítit. (str. 154)
		-- Peters, Waterman
    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;
    }