Produkty

V súčasnej dobe ešte neposkytujeme žiaden „krabicový“ produkt, vytvárame výhradne softvér na zakázku pre konkrétnych zákazníkov.

Ak máte záujem o vytvorenie nejakej aplikácie, stačí nás kontaktovať.

Kvalita a bezpečnosť

Naše produkty sú vždy od základu vytvárané robustne a s ošetrením všetkých (hoci len teoretických) prípadov. Preto potom nemusíme neskôr „dorábať bezpečnosť nakoniec“, ako to často býva. Snažíme sa dodržiavať všetky pravidlá dobrého softvéru, nepoužívame žiadne „tajné“ formáty dát, preto v prípade potreby nie je problém ich preniesť do iného systému či aplikácie. Taktiež sa neviažeme na žiaden konkrétny produkt alebo platformu (pokiaľ to nie je priamo želaním zákazníka).

Oblasti

Naša firma je schopná vytvoriť aplikáciu takmer ľubovoľného typu, ale prevažne sa venujeme a najviac skúseností máme v nasledovných oblastiach:

  • Spracovanie veľkého množstva dát, či už v textovej alebo databázovej forme
  • Návrh a implementácia optimálneho spôsobu uloženia dát, ktorý zabraňuje problémom s duplicitou a chybnými vstupmi a umožňuje efektívne a rýchle získanie potrebných výstupov
  • Konverzie dátových formátov a extrahovanie informácií z rôznych zdrojov, keď je potrebné presunúť údaje zo zdrojovej formy do cieľovej, napríklad z PDF/DOC súborov do databázy
  • Správa používateľov s rôznymi právami, ktoré určujú, aké funkcie môže daný používateľ spúšťať; zároveň autentifikácia je možná viacerými spôsobmi, od klasického mena a hesla až po overenie IP adresy a digitálneho podpisu, čo umožňuje napríklad aj automatické a zároveň bezpečné vzdialené spúšťanie funkcií aplikácie

uXML

Väčšina našich produktov pre internet a intranet je založená na našom vlastnom aplikačnom serveri s názvom uXML. Poskytuje základné služby, abstrakčnú úroveň pre prístup k databázam a súborom, spracováva šablóny projektu (vo formáte XML) a obsahuje obslužné funkcie pre správu modulov, ktoré poskytujú rôzne rozširujúce funkcie. Viac informácií o uXML nájdete tu.

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
	Najednou se ozvalo dlouhé, silné zapískání a všichni začali
s halasem nastupovat do vagónů, a za pánem s cedulí přiběhl pán v uniformě
a řekl mu, že má okamžitě nařídit tomu blbečkovi, co si tu hraje
s píšťalkou, aby přestal a nedělal maglajz. Polovina kluků začala zase
z vagónů vystupovat, ale nešlo to moc dobře, jelikož druhá polovina
nastupovala. Tatínkové a maminky něco vykřikovali, dožadovali se, aby jim
kluci psali, aby se v noci pořádně přikrývali a aby nedělali skopičiny.
Pár kluků brečelo a dalším zas pořád někdo nadával, jelikož hráli na
nástupišti kopanou, no vyložená senzace. Dokonce ani nebylo slyšet pána
v uniformě, který pískal, až byl v obličeji tmavě rudý, jako by se zrovna
vrátil od moře.
		-- Sempé-Goscinny: Mikulášovy prázdniny
    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;
    }