• tomaj.sk
  • RSS
  • Archive

blog.Tomaj.sk

tomajov blog blogov

  • Note

    17th May 2013

    OFCA

    image

    alebo OFCA Free Command analyzer je najpokrokovejší jazyk vo svojej kategórií grammar insensitive jazykov :-) Konečne sa OFCA dostala na github - OFCA na githube. Odporúčam pozrieť popis priamo tam, keďže tento jazyk nie je len tak obyčajný.

    ofca ziman language
  • Note

    29th April 2013

    MONOGRAM Tech Monday o nových trendoch v HTML a CSS

    Dnes 29.4 sa uskutočnila ďalšia prezentácia v rámci cyklu MONOGRAM Tech Monday :-) Hovorili sme o tom ako sa za posledné roky posunul vývoj  webového frontendu primárne na poli HTML a CSS.

    Tu je moja prezentácia:

    Nove trendy v html a css from Tomas Majer
    monogram html scss less
  • Note

    24th March 2013

    Nový blog Tomaj číta

    Pred nedávnom som si kúpil Kindle Paperwhite a po presťahovaní MONOGRAM-u do mlynskej doliny som ho začal veľmi aktívne využívať, pretože som nútený stráviť v MHD viac ako 10min denne. Založil som si preto nový blog – Tomaj číta, kde je možné nájsť moje krátke poznámky k veciam čo ma zaujali.

    blog kindle books
  • Note

    22nd June 2012

    Spomienka na diplomovku

    Pred pár dňami mi viacero udalostí pripomenulo minuloročný čas, kedysom končil školu a dokončoval diplomovku. Okrem samotnej diplomovky som sa vtedy s mojom prácou zúčastnil aj študentskej konferencie IITSRC 2011, súťaže ACM SPY o najlepšiu diplomovku a rovnako som spolu s mojím vedúcim napísal článok, ktorý bol prijatý na konferenciu SOFSEM a uverejnený vydavateľstvomSpringer.

    Vo svojej diplomovke som sa venoval mikroblogu Twitter. Navrhol som metódu pre ohodnotenie stránok, na ktoré odkazujú tweety. Vyhodnotil som váhu používateľov, ktorú som následne prenášal na ich tweety a tiež som do výpočtu zakomponoval aj špecifické vlastnosti Twitteru ako napríklad re-tweetovanie.

    Spätne hodnotím túto diplomovku ako pre mňa veľmi zaujímavú a obohacujúcu. A to či už z pohľadu technologického, kde som sa naučil pracovať s rôznymi technológiami, ako napríklad Hadoop a rovnako aj z pohľadu analytického, kde som sa dlhodobo venoval jednej veci a pravidelne po iteráciách sa posúval ďalej, či už v študovaní problematiky, alebo pri návrhu a vývoji vlastného hodnotiaceho algoritmu. Všetko toto sa mi samozrejme podarilo vďaka skvelému vedúcemu.

    Celú diplomovku, ako som ju odovzdal je možné nájsť tu. Avšak ako najväčší úspech je asi uverejnenie článku z konferencie SOFSEM. Danej konferencie som sa nezúčastnil, avšak môj vedúci naše výsledky odprezentoval:

    Leveraging microblogs for resource ranking

    Leveraging microblogs for resource ranking from Tomas Majer

    Ďalšie info a odkazy:

    • Rozšírený absrakt pre akciu Ontožúr organizovaný skupinov PeWe
    • Článok prijatý na konferenciu SOFSEM
    • Diplomovka (PDF)
    • Plagát z konferencie IITSRC
    diplomovka fiit iitsrc school
  • Note

    13th June 2012

    MONOGRAM EPayment pre PHP 5.3

    Knižnica MONOGRAM EPayment poskytuje rozhranie pre prácu s platbami na internete cez Slovenské banky. Táto knižnica pri použití s PHP 5.3 generovanla rôzne deprecat ed warningy. Na Github som nahodil novú verziu knižnice, ktorá opravuje tieto warmingy. Do knižnice som pridal aj csska z Bootstrapu aby tie testovacie formuláre nevyzerali tak obyčajne (serverová C# čast je stále pôvodná).

    Knižnicu je možné nájsť na tejto linke.

    payment monogram
  • Note

    26th July 2011

    MONOGRAM Tech Mondays: Spracovanie veľkých dát

    Včera sa uskutočnilo ďalšie stretnutie MONOGRAM Tech Monoday, kde som mal možnosť podeliť sa o skúsenosti so spracovaním veľkých dát.

    Spracovanie veľkýh dát MONOGRAM Tech Monday 27.07.2011 

    monogram bigdata hadoop
  • Note

    20th June 2011

    MONOGRAM Tech Mondays: GIT

    Často v práci riešime rôzne veci a rôzne technológie a keďže nás pomerne rýchlo pribúda a ľudí začína byť viac, rozhodli sme sa barové debaty o nových technológiách trochu zatraktívniť pre všetkých v MONOGRAMe. A tak vznikol MONOGRAM Tech Monday, kde sa dnes predstavili 2 nové technológie. Jednou z nich bola NoSQL databáza Redis a druhou bol verzionovací systém GIT, ku ktorému prechovávam veľkú náklonnosť a ktorý som mal česť predstaviť. Celú prezentáciu je možné nájsť v príspevku tohto blogpostu. Prezentáciu o Redise je možné nájsť nablogu kolegu Ľuba.

    MONOGRAM Tech Mondays: GIT

    monogram git
  • Note

    27th May 2011

    64bitový Windows7 s PHP a memcache

    Upgrade Ubuntu z 10 na 11 ma mierne nahneval. Celé ubuntu sa spomalilo asi trojnásobne a naozaj sa s ním nedalo pracovať. Mal som v MONOGRAMe k dispozícii jeden desktop (ktorý som začal používať namiesto nefunkčného notebooku s ubuntu), tak som si

    tam nahodil potrebné veci, aby som mohol aj niečo robiť, pretože s tým ubuntu sa už naozaj nedalo. Unity som vypol asi po hodine, ale nepomohlo to, stále to šlo extrémne pomaly. Pod 64 bitovým Windowsom som natrafil na menší problém. Po inštalácii Apache servera a PHP som potreboval memcache. Operácia vo väčšine linuxových distribúcií vskutku triviálna sa stala pohromou. Všetky dllka php_memcache.dll slúžiace pre prácu s memcache serverom v php boli skompilované pre 32 bitový systém. Čo mne, samozrejme, nefungovalo, hoci server opticky nabehol korektne. Vyskúšal som viaceré verzie a furt nič. Vzhľadom na to, že daný problém riešilo už viacero ľudí u nás v MONOGRAMe, som sa rozhodol napísať krátky blogpost. Popis inštalácie memcache servera je možné nájsť napríkladtu. Na internete ich je ale hŕba :-) Netreba však použiť dllku, na ktorú sa daný návod odkazuje, ale je treba stiahnuť verziu z tejto stránky. S týmto mi to už funguje ako má :-)

    memcache php windows7
  • Note

    12th May 2011

    PHP Profiler od Facebooku

    image

    Pri vytváraní komplexných a zložitých aplikácií sa môže veľmi často hodiť nástroj, pomocou ktorého je možné identifikovať časti, ktoré využívajú veľa systémových prostriedkov, alebo sa vykonávajú príliš dlho. Tieto úlohy dokáže riešiť práve profiler.

    Pri programovaní väčšinou ľudia rozmýšľajú nad problémom, ktorý riešia. Preto často nastáva situácia, že vzniknutý modul alebo jeho časť nefunguje dostatočne rýchlo a je nutné ho optimalizovať. Samozrejme, dá sa na namietať, že programátor, ktorý modul naprogramoval neefektívne, nie je dobrý programátor. Nemyslím si však, že to musí byť vždy pravda. Často je možné naprogramovať veľmi pekné riešenie problému, ktoré rieši daný problém veľmi elegantne a pomerne priamočiaro, avšak vzhľadom na implementáciu PHP alebo ďalších pridruženým technológiám, to nie je v praxi použiteľné. Preto treba vždy hľadať vhodný kompromis medzi optimalizáciou a “priamočiarosťou” a “eleganciou” riešenia problému.

    Dnes už existuje viacero PHP Profilerov. Je možné použiť XDebug a následne jeho výstupy analyzovať pomocou niektorého z viacerých dostupných nástrojov (napríklad KCacheGrind). Doteraz sa mne osobne najviac pozdával profiler, ktorý bol súčasťou Zend Servera. Fungoval pomerne jednoducho, avšak nefungoval mi na veľkých projektov dobre. Flash aplikácia pri veľkých dátach a hlbokých vnoreniach funkcií prestávala fungovať a padala na použití pamäte a iných limitoch. Ďalšou nevýhodou je,  že tento profiler nie je zadarmo a je v platenej verzii Zend Servera. Takže som hľadal alternatívu a našiel som profiler, ktorý mi vyhovuje a poskytuje informácie, ktoré ma zaujímajú. Ide o profiler vytvorený vo Facebooku, ktorý sa voláXHProf.

    Profiler XHProf je v podstate jednoduchým modulom do PHP spolu s ďalšími PHP skriptami pre zobrazovanie výsledkov. Stačí ho stiahnuť a zapnúť. Následne sa všetko profilovanie deje v rámci aplikácie a plne pod jej kontrolou. Profiler je možné  v aplikácií kedykoľvek zapnúť a kedykoľvek vypnúť. Profiler ako taký generuje na konci výstup ktorý, je možné analyzovať a zobrazovať priamo skriptami, ktoré sú pridružené v balíčku s profilerom, alebo je možné si naprogramovať aj nejaké vlastné zobrazovacie skripty, ktoré sa môžu zameriavať na špecifické veci podľa potreby.

    Celým výstupom profileru je dá sa povedať tabuľka s funkciami. V tejto tabuľke je možné sledovať základne ukazovatele:

    • Počet volaní funkcie
    • Čas behu funkcie (samostatný aj s vnorenými funkciami)
    • Využitie pamäte (samostatne aj s vnorenými funkciami)
    • Využitie CPU (samostatne aj s vnorenými funkciami)

    Podľa týchto hodnôt je možné dané funkcie zoraďovať, čiže veľmi ľahko je možné identifikovať, ktoré funkcie sú tie, ktoré požierajú najviac času a systémových prostriedkov. Pri profilovaní je možné vypnúť profilovanie natívnych php funkcii, čo umožní sústrediť sa na funkcie v danej aplikácií.

    XHProf obsahuje 3 veľmi užitočné vlastnosti:

    • Možnosť nakresliť graf z výsledkov – graf zobrazuje celý beh aplikácie a zvláda vskutku aj pomerne zložité aplikácie (minimálne TYPO3 ide v pohode). Veľkosť jednotlivých uzlov v grafe je zobrazená podľa dĺžky ich trvania. Rovnako červenou farbou sú zvýraznené metódy, ktoré trvajú dlho.
    • Vybranie konkrétnej funkcie – vybraním funkcie je možné sledovať všetky čísla v jej kontexte, vidieť, ktoré funkcie ju vyvolajú a koľkokrát, aké funkcie sú volané z vybranej funkcie. Tiež je možné nakresliť graf pre túto podmnožinu funkcii.
    • Porovnávanie výsledkov – každý výstup z profilera je uložený ako samostatný súbor na disku. Jednotlivé výsledky je možné zobraziť naraz a pozorovať zmeny. Vďaka tomu, je možné hneď vidieť pomocou farebného zobrazenia, ktoré čísla sa zlepšili alebo zhoršili, čo je veľmi výhodné po zapracovaní optimalizačných úprav a vidieť tak reálnu zmenu, ktorú zmeny spôsobili.

    Využitie profilera sa mi osvedčilo hlavne na serveroch. Vzhľadom na to, že ho je možné integrovať priamo do aplikácie, je možné nastaviť proces profilovania tak, že po pridaní špeciálneho getového parametra alebo po nastavení špeciálnej cookie v prehliadači sa aktuálny beh stránky zbehne profilerom. Odkaz na tieto výsledky sa následne vloží na stránku a takto sa zabezpečí bezproblémové profilovanie aktuálne bežiacej aplikácie. Akonáhle sa vyskytne nejaký problém, alebo niečo beží dlhšie ako by malo, stačí pridať prepínač a v pohodlí prehliadača sa pozrieť na to, čo sa vo vnútri na serveri deje.

    Profiler XHProf má asi iba jednu nevýhodu a tou je, že beží len pod 64 bitovým linuxom, čo je dá sa povedať štandard pre všetky veci vyvíjané vo Facebooku (ako napr. aj HipHop, ktorý ide tiež len pod 64 bit linuxom). Inak je to naozaj veľmi dobrý pomocník a pri vhodnom nastavení na serveroch, kde sa testujú aplikácie alebo aj reálne bežia je užitočnou pomôckou, ktorá dokáže ušetriť veľa času.

    Dôležité odkazy:

    • Oficiálna dokumentácia
    • XHProf GitHub
    • Iné GUI pre zobrazenie výsledkov z profilera
    facebook. xhprof profiler debug php
  • Note

    24th February 2008

    MONOGRAM TYPO3 Google Analytics extension

    Modul pre vkladanie Google Analytics javascriptového kodu do stránok v cms TYPO3.

    Základné vlastnosti modulu:

    • Podpora oboch Google Analytics kódov
      • Legacy Tracking Code (urchin.js)
      • New Tracking Code (ga.js)
    • Ľahko použiteľný – stačí zapnúť,nastaviť kód a vložiť do stránky
    • Jednoducho modifikovateľný pre špeciálne prípady
    • Podporuje nastavenie pre hlavnú doménu – odprúča sa nastavovať v prípadoch, že stránka je rozdelená na viac subdomén
    • Jednoduché pridávanie a správa ďalších vyhľadávačov, ktoré google nevie ešte rozoznávať

    Použitie modulu je naozaj veľmi jednoduché. Samozrejme treba ho najprv stiahnuť, importnuť do projektu a zapnúť cez Extension Manager. Nastavenie celého modulu prebieha v typoscript šablóne danej stránky. Odporúčam nastaviť pre hlavnú šablónu na stránke, čo v prípade, že máme len jednu šablónu v projekte zaručí, že GA kód bude vo všetkých podstránkach. Jednoduchá konfigurácia môže vyzerať napríklad takto

    Vlastnosť ga_type špecifikuje typ GA kódu(1 => default, starý kódurchin.js; 2=> nový kód ga.js). Vlastnosť ga_code je povinná, bez špecifikovania tejto vlastnosti sa kód nevygeneruje. Je potrebné nastaviť špecifický kód, ktorý GA vygeneroval v danom formáte. Po nastavení je potrebné tento kód vložiť niekam do stránky. Odporúčam úplne na koniec stránky, napríklad takto do objektu page:

    page.1000 < plugin.tx_monoga_pi1 

    Samozrejme je potrebné predtým objekt page vytvoriť. Odporúčam tento riadok umiestniť úplne na koniec typoscript šablóny.

    Ďalšie veci, ktoré sa dajú nastaviť vysvetlím na zložitejšom príklade ako je napríklad tento:

    V tomto príklade je už nastavená hlavná doména webu a tiež sú pridané vyhľadávače, z ktorých chceme sledovať návštevnosť našej stránky.

    Detailnejší popis nastavení a oficiálna dokumentácia sa dá najsť tu (oficiálna dokumentácia). Stiahnúť tento modul je možné z oficiálneho TYPO3 repozitára priamo v Ext. Manazeri, alebo samozrejme aj cez web rozhranie na TYPO3 stránke (mono_ga.t3x)

    typo3 google-analytics
Next
The End

Premium Themes by Obox