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
Firma se postarala o svou prosperitu a nastává chvíle, kdy by měla ukázat,
jak je velkorysá navenek, a zajímat se i o věci veřejné. Zdůrazňuje, že
teď chce sloužit lidem, anebo přesněji řečeno sloužit lidstvu.
Liberálnější přístup se projevuje i v odbornosti řízení. Dnešní ředitel je
nejen vzdělán odborně, ale dobře už ví, že musí dodržovat i profesionální
etiku. Nejprve se možná zeptá: "Je to výhodné?", potom: "Jak to vypadá
z daňového hlediska?", ale potřetí se už bude zajímat: "Je to morální?"
Všechny vznešené řeči, jak je třeba "sloužit", dřív ovšem naznačovaly, že
jeden obchodník míní z druhého pořádné sedřít kůži. Dnes už je tomu trochu
jinak. (str. 26)
		-- 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;
    }