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
Manželství je společné konto, které může zůstat aktivní, jen když do něho
přispívají oba partneři. Aby přetrvalo, závisí na nesmírně těžkém úsilí,
bez něhož se žádné manželství neobejde, na snaze obou a na schopnosti
vzájemné domluvy. Nejobtížnější je ta strašná spousta času, co spolu dva
lidé tráví, a hlavně času, který spolu tráví odloučeni od ostatních.
Situace je nesporně snadnější, když mají oba širší zájmy a vztahy, dost
známých a přátel. Důležité je i to, jak se vyvíjejí. Rozhodně jde méně na
nervy člověk, který má čím dál tím více zájmů, různorodých. (str. 189)
		-- Parkinson
    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;
    }