Do firmy Allstar Group s.r.o. jsem nastoupil na půl úvazku dne 28.8.2002. Tehdy firma sídlila v Chelčického ulici.
Od ledna 2004 jsem začal pracovat na plný úvazek. V únoru 2007 se firma přestěhovala do současného sídla blízko metra Palmovka:
Novákových 1954/20a, 180 00 Praha 8
Majitelem firmy je Ing. Tomáš Schel, jeho společníci jsou Ing. Roman Bršlica a Ing. Pavel Duras.
Metro Report Manager (MRM) je program pro ovládání hlášení ve stanicích pražského metra. První verzi jsem naprogramoval v TURBO PASCALU 7.0 pod operačním systémem MS DOS® v roce 1993. V roce 1999 jsem program přepsal v Borland Delphi pro operační systém Windows. Tato verze umožňovala navíc opakované přehrávání hlášení. Od roku 2004, kdy projekt přešel pod záštitu firmy Allstar, vznikla verze umožňující síťové propojení počítačů na stanici a jejich spojení s centrálním dispečinkem. Současná verze z roku 2005 umožňuje ovládání světelných panelů AIS a VIP. K programu běžícím ve stanicích přibyl MRM VIP Server, program s centrální databází a řízením všech textů pro světelné panely VIP, a MRM VIP Servis, program pro administrátory, pomocí kterého lze texty zadávat i textová hlášení hromadně spouštět. Současná podoba projektu by nikdy nemohla vzniknout nebýt skvělé spolupráce s mým kolegou Filipem Skalkou, který napsal celou serverovou a hardwarovou část projektu.
Stručný popis programu MRM naleznete zde nebo si jej můžete stáhnout zde (zazipovaný Word Doc). Popis projektu Správa panelů VIP si můžete stáhnout zde (zazipovaný Word Doc).
Projekt easyTV vznikl v roce 2004. V roce 2006 vznikla nová firma EasyTV s.r.o., která je dceřinnou firmou naší společnosti Allstar a firmy Intercom System a.s.. Od roku 2005 jsem se stal hlavním vývojářem middlewaru - tj. softwaru, který běží na Set-Top-Boxech (viz obrázek vpravo) koncových klientů a umožňuje jim přepínat TV kanály, zobrazovat program a další.
EasyTV Triple play představuje řešení pro poskytovatele služeb triple play (internet, telefon, televize), které umožňuje na vhodné infrastruktuře nabízet zmíněné služby jejich zákazníkům, tedy koncovým uživatelům. Produkt nabízí i doplňkové služby (například billing) včetně správy infrastruktury.
Produkt se skládá ze šesti modulů. Modul IPTV ověřuje, nastavuje a přiděluje práva pro uživatelské profily na set top boxech. Tvoří nabídku služeb pro uživatele, se kterým komunikuje přes TV obrazovku. Komunikuje s VoD či CA/DRM systémy. V případě modulu VoD jsou integrována dvě řešení – Kasenna a Anevia. Modul CA/DRM zahrnuje řešení pro zabezpečení obsahu Verimatrix a Conax. Modul VoIP nabízí seznam telefonních čísel a jejich využití, historii volání, ceníky či aktivní správu ústředny. Modul Network nastavuje, udržuje a kontroluje vztahy v přístupové síti, jedná se o zdroj dat pro modul Řízení sítě. Ten automaticky nastavuje aktivní prvky v síti dle požadavků od Network a VoIP modulu.
Naše firma od podzimu 1997 pořádá kurzy pro výuku tanců. Původně se vyučoval pouze orientální tanec. Výuku zajišťovalo speciální naše oddělení - Centrum Orientálního Tance (COT), jehož první webové stránky napsal kolega Pavel Puta. Já jsem na jeho dílo navázal v lednu 2003, kdy jsem se stal správcem stránek a databáze klientů COT. Vytvořil jsem nové stránky - admin i klient sekce. Díky neuvěřitelnému růstu počtu kurzů a rozšiřování nabídky služeb COT se tyto stránky staly již v létě roku 2004 nevyhovující a v lednu 2005 jsem spustil novou verzi, která funguje do dnes. Od roku 2006 se ke kurzům orientálních tanců postupně přidávaly ostatní druhy tanců, proto v létě 2007 vnikla nová verze stránek: Centrum Tance. V létě 2008 se pak tyto stránky staly hlavními stránkami pro kurzy tance naší společnosti.
Admin sekce stránek Centra Tance umožňuje pohodlně zadávat kurzy tanců, spravovat účty klientů, taneční sály, lektory a recepční a nastavovat vazby mezi jednotlivými částmi systému. Mezi jednu z nejvykoumanějších prvků celého systému patří grafické rozvrhy (obrázek vpravo), které se dynamicky vytváří podle aktuálního rozvrhu kurzů.
- HTML a XML
- <col> tag - definice
- validátor HTML, zadat zkopírováním zdrojového textu
- přednáška - XML v teorii a praxi, XSLT, XPath
- ASCII Character Codes Chart - např. ½ je ½
- Latin2 Letters and HTML codes - např. Ů = Ů = Ů
- Vertical Centering
- URL-ENCODE reference table - překlady, že %2F je / a další.
- URL-ENCODE - z češtiny vyrobí všechny možné URL encode překlady (Win1250, UTF-8, ad.) - interaktivní!
- URL-ENCODE - překladová tabulka českých znaků! SUPER!
- PostgreSQL
- extracting meta information - information_schema a pg_catalog
- přístup k DB přes a .NET - Using Microsoft .NET with the PostgreSQL Database Server via ODBC
- LOCK - zámykání tabulek
- SELECT - definice
- práce s poli - Array Functions and Operators (např. @> ... contains nebo array_to_string) ad.
- měnění polí - příklad: UPDATE sal_emp SET pay_by_quarter[1:2] = '{27000,27000}' WHERE name = 'Carol';
- řádky tabulek a pole - příklad: IN, NOT IN, ANY/SOME, ALL
- dočasné tabulky - př. DECLARE CONTINUE HANDLER FOR SQLSTATE '42P01' (nepoužil jsem)
- porovnání s MySQL 5.0
- výpis všech tabulek, SP, ...
- UNIX a PHP
- základní PHP-help web
- regurální výrazy - syntaxe definice výrazů pro grep
- GREP examples
- regurální výrazy v PHP - příklady
- PHP Odstranění diakritiky
- SED - tutorial - unix
- SED - podrobnější tutorial
- SED definice
grep ./oop-stb_swt.js ./oop-osd.js -h -e '\.png' | sed 's/^[^"]*//' | sed 's/[^"]*$//'
(hledá výskyt ".png" ve 2 souborech a vyhodí začátek do první uvozovky a pak vyhodí konec od poslední uvozovky; -h potlačí výpis názvu souborů; konstrukce sed 's/X/Y/' nahrazuje X za Y ) - SED další definice
cat access.log | grep 'db=1' | sed 's/\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\).*/\1/' | awk -F_ '{A[$1$2]++}END{for (i in A) print i,A[i]"x"}' | sort
výsledek:
10.100.0.1 1x
10.100.0.2 4x
10.100.0.5 2x
...
- ASP
- ABCpdf™ Reference Guide - jak vyrobit PDF v ASP
- přehled ADO datových typů - např. adInteger pro int nebo adVarbinary pro tinyint
- simulace ASP funkci v PHP :)
- Microsoft.XMLDOM model overview
- JavaScript a AJAX
- Memory leak patterns in JavaScript
- W3C - tutorial - definice
- cakePHP - jak udělat lehký word-editor v JS - analýza označeného textu v JS if (document.selection) sel = document.selection.createRange(); a if (myField.selectionStart || myField.selectionStart == '0') { var startPos = myField.selectionStart; var endPos = myField.selectionEnd; ... }
- Mootools AJAX timeout - jak udělat volání ajaxu takto: var myAjax = new Ajax('lengthy.php', {method: 'get', update: $('content'), timeout: 2000, onTimeout: function() {alert('timeout')}}).request();
- OOP - příklad s Mammal a Cat, tutorial
- OOP! - hlavní stránka, vysvětlení definic:
Object.prototype.Inherits = function(...) a
Function.prototype.Inherits = function(...) - OOP v javascriptu
var Animal = function(p_name) { var name = p_name; this.showName = function() { alert(name); } }; kitty = new Animal('Kitty'); kitty.showName(); // 'Kitty' alert(kitty instanceof Animal); // true
- seznam návodů - příklad: checkTimeZone =>
var date2 = new Date(rightNow.getFullYear(), 6, 1, 0, 0, 0, 0);
var temp = date1.toGMTString();
var date3 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
a mnoho dalších! - XML importing script
- AJAX RSS Display a zdorjový kód: rss.js
try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } }
- DOM Structure! - přehled metod:
firstChild, childNodes, childNodes, lastChild, nextSibling, offsetParent, previousSibling a
appendChild(nodeReference), cloneNode(bool: copyChildrenToo), insertBefore(nodeReferenceX,nodeReferenceY), removeChild(nodeReference), replaceChild(nodeReferenceX,nodeReferenceY), splitText(index) - Arrays - Mastering Javascript Arrays - dokonalý přehled JS polí!
- regulární výrazy - přehled článků na Interval.cz
- regulární výrazy - metody search() a replace() -
var re=/regexp/modifikátory nebo
var re=new RegExp("regexp","modifikátory") nebo
txt = txt.replace(/(\d{2})(\d{2})/,"$2"); - jak z 14.2.2008 14:45 udělat 14.2.08 14:45
- regulární výrazy - definice výrazů - např. \s (bílé znaky) a \S (kromě bílých znaků)
- DOJO Toolkit - super mechanismus, jak udělat věci typu outlooku jako HTML - downloads
- MooToolsX - volný a čitelný nástroj na efektní rozvíjení a sbalování nabídek - demos
- MochiKit - super nástroje, např. tester chytání kláves (key_events.js), zajímavé JS!
- IDEs and tools for Ext JS 2.0 - opět super Windows VISTA simulace pod JS. další
- Yahoo developer network - přehled dalších utilit.
- Yahoo Interface Library (YUI) - super knihovny ne jen pro Drag and Drop
- Prototype - JS Network - např. $('comments').addClassName('active').show() - přidám prvku styl "active" a ukážu
- jquery - $("p.neat").addClass("ohmy").show("slow"); - prvek se postupně rozbalí a ukáže
zakulacené rohy v HTML + spousta zajímavých dalších příkladů, Tutorials:PNG Opacity Fix for IE6 - Rolující se menu - po kliknutí se celé odroluje vlevo a je nahrazeno novým. Krásný vizuální efekt
- Dynamická změna CSS - How to Use JavaScript to Change a Cascading Style Sheet (CSS) Dynamically
- Cross Domain Iframe Resize - řešení pomocí parent.location + example
- JS compressor - online jako HTML form
- JS compressor 2 - online jako HTML form
- Dynamic style - manipulating CSS with JavaScript - př. stylesheet.insertRule(rule,index) + super příklad
- smart SCROLL
- CSS
- IE7:hover ghosts bug - IE7 zobrazuje duchy, pokud používám :hover a rozvíjím menu itemy horizontálně doprava.
- Margin Collapsing - když dva DIVy mají první margin za a druhý margin před, pak se marginy spojí...
- přehled tvarů kurzorů s obrázkama - např. cursor:hand ad.
- Dynamic CSS Changes - př. document.getElementById('ss').href = '/test/green.css';
- The CSS Rule object - př. cssText a selectorText
- C#
- Date Time format examples - velmi užitečné
- System.Drawing.Color chart
- Drag and Drop
- SyntaxRichTextBox
- Removing C# comments - /* ... */ a další
- regular expressions - přehledná tabulka, např. (?:pattern) - nebude mezi matches.
- regular expressions - jak vyseparovat čárkou oddělené hodnoty (parse comma-separated values)
- test regulárních výrazů - nefunguje?
- Match "anything except a specific string" - myšlenka: <Tag1>(.(?!<Tag1>))*<Tag2>; lepší provedení: <textarea>(?:(?:.|\n)(?!</textarea>))*(?:.|\n)</textarea>
- .NET remoting - client server návod
- Generics Types
public class Stack
{ private T[] _Items; public void Push(T data) { ... } public T Pop() { ... } } - Constraints on Genric Types
- MS SQL
- Recursive Queries Using Common Table Expressions - výpis zgrupovaných řádků (Tree-List výstup)
- TSQL-unit - mechanismus na testování SQL příkazů
- Function to remove accent in string - porovnávání česky a cesky
- XML in Microsoft SQL Server 2005
- VARCHAR(MAX)
- LIKE case sensitive: where (c.text collate Czech_cs_ai) like '% id[_]an %'
- Obecné
- Lorem ipsum CZ - pseudon8hodný generátor českého textu
- RGB výběr barvy! - super nasávátko barvy!
- EXCEL - DataSpectrum - skvělé tipy pro VBA i vzorce Excelu a ještě: další
- WORD 2007 -> 2003 convertor - máte problémy s MS Office 2007? Tady je řešení (funguje pouze v IE 7.0)
- EXCEL 2007 -> 2003 convertor - máte problémy s MS Office 2007? Tady je řešení (funguje pouze v IE 7.0)
- Photoshop - hotkeys
- Desktop icon saver - při změně rozlišení se ikonky nepřeuspořádají
- VBA
- MS Word 2007: makro, které se otevře těsně před tiskem dokumentu:
Dim WithEvents wordApp As Application
Private Sub Document_New()
'In case this is a template
Set wordApp = Application
End Sub
Private Sub Document_Open()
Set wordApp = Application
End Sub
Private Sub wordApp_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
MsgBox("JUST BEFORE PRINT!")
End Sub
Sub FilePrint()
ThisDocument.CommandButton1.Select 'vyberu button
Selection.Delete Unit := wdCharacter, Count:=1 'mažu button, aby se netisknul
Dialogs(wdDialogFilePrint).Show 'povel k tisku
ThisDocument.Undo 1 'button vrátím zpět
End Sub
- MS Word 2007: makro, které se otevře těsně před tiskem dokumentu:
- Ikonky
stránky vyrobil Tomáš Ullrich - žonglér a programátor - listopad 2008