Archív

Archív pro

PEAR a Zend Server CE 4.0.4

20.07.2009 View Comments

Pokud jste instalovali Zend Server CE ve verzi 4.0.4 a předtím jste neměli provedený upgrade PEARu z 1.8.0 na 1.8.1 možná se setkáte s chybovou hláškou pokud budete chtít něco z PEARu nainstalovat.

pear.php.net is using a unsupported protocal - This should never happen.
install failed

Řešení je následující, instalujte přímo z PEARu (řešení je pro Ubuntu, ale mělo by fungovat i jinde).

lynx -source http://pear.php.net/go-pear | php

Spustí se installer a tam nastavte cesty podle Zend Serveru a nainstalujete tam kam Zend Server instaluje také, neměl by potom být problém s upgradem.

 1. Installation prefix ($prefix) : /usr/local/zend/
 2. Temporary files directory     : /usr/local/zend/tmp
 3. Binaries directory            : /usr/local/zend/bin
 4. PHP code directory ($php_dir) : /usr/local/zend/share/pear/PEAR
 5. Documentation base directory  : /usr/local/zend/share/pear/doc
 6. Data base directory           : /usr/local/zend/share/pear/data
 7. Tests base directory          : /usr/local/zend/share/pear/test

Potom můžete PEAR normálně používat jak jste zvyklí, myslím, že brzo Zend vydají update balíčku, kde tento problém bude vyřešen, ale zatím tohle docela snadné a přitom elegantní řešení.

Categories: php Tags: ,

Tvorba mirroru SVN repository pomocí svnsync

15.07.2009 View Comments

Po několika dnech když jsem dával dohromady synchronizaci firemního mirroru s naším dodavatelem, vznikla nová kapitola do knihy Subversion pro každého.
Nastavit mirror a pustit synchronizaci to najdete i v manuálu, ale přidal jsem tam také řešení možných problémů se kterými se můžete, ale také nemusíte setkat.

Categories: subversion Tags: ,

PHP Bytekit

01.07.2009 View Comments

Bytekit

Bytekit je nová extenze pro PHP, která umožňuje analyzovat PHP kód na úrovni opcodes, které generuje compiler v PHP. Také nám umožňuje pomocí disassembleru sledovat jak probíhá program na úrovni compileru. Je to další z nástrojů, které umožní zlepšit kvalitu kódu a určitě přinese řadu další analytických nástrojů. Autorem je Stefan Esser, kterého jistě každý zná. Jeho blog a příspěvky k bezpečnosti PHP jsou známy.

Bytekit-cli

Samotná extenze, ale není všechno. Abychom mohli ji dobře využít tak Sebastian Bergmann vytvořil bytekit-cli, které nám umožní ho využít.
V článku od SB jsou pěkné příklady, které doporučuji vyzkoušet. Bytekit zatím není dostupné přes PECL tak ho musíte zkompilovat ze zdrojového kódu, známým postupem (phpize, configure, make, make install) a zkompilovanou extenzi přidat do konfigurace PHP. Potom si z githubu můžete stáhnout aktuální verzi bitekit-cli a můžete si hrát.

Například otestuji jak je na tom s přímým výstupem Zend Framework.

abtris@ubuntu# bytekit --rule=DirectOutput ZendFramework/

 - Direct output of variable $message
    in ZendFramework/demos/Zend/Gdata/YouTubeVideoApp/operations.php:1094

  - Direct output of variable $playlistEntries
    in ZendFramework/demos/Zend/Gdata/YouTubeVideoApp/operations.php:906

  - Direct output of variable $message
    in ZendFramework/demos/Zend/Gdata/YouTubeVideoApp/operations.php:270

  - Direct output of variable $message
    in ZendFramework/demos/Zend/Gdata/YouTubeVideoApp/operations.php:276

  - Direct output of variable $user
    in ZendFramework/demos/Zend/Gdata/Photos.php:796

  - Direct output of variable $albumId
    in ZendFramework/demos/Zend/Gdata/Photos.php:797

  - Direct output of variable $photoId
    in ZendFramework/demos/Zend/Gdata/Photos.php:798

  - Direct output of variable $user
    in ZendFramework/demos/Zend/Gdata/Photos.php:825

  - Direct output of variable $albumId
    in ZendFramework/demos/Zend/Gdata/Photos.php:826

  - Direct output of variable $photoId
    in ZendFramework/demos/Zend/Gdata/Photos.php:827

  - Direct output of variable $user
    in ZendFramework/demos/Zend/Gdata/Photos.php:741

  - Direct output of variable $albumId
    in ZendFramework/demos/Zend/Gdata/Photos.php:742

  - Direct output of variable $user
    in ZendFramework/demos/Zend/Gdata/Photos.php:688

  - Direct output of variable $type
    in ZendFramework/demos/Zend/WebServices/Amazon/amazon-search.php:153

  - Direct output of variable $type
    in ZendFramework/demos/Zend/WebServices/Amazon/amazon-search.php:157

  - Direct output of variable $keywords
    in ZendFramework/demos/Zend/WebServices/Flickr/flickr-composite.php:92

  - Direct output of variable $form
    in ZendFramework/demos/Zend/ProgressBar/ZendForm.php:209

  - Direct output of variable $ret
    in ZendFramework/demos/Zend/OpenId/test_server.php:264

  - Direct output of variable $id
    in ZendFramework/demos/Zend/OpenId/test_consumer.php:115

  - Direct output of variable $response
    in ZendFramework/library/Zend/Rest/Server.php:277

  - Direct output of variable $output
    in ZendFramework/library/Zend/Cache/Frontend/Class.php:226

  - Direct output of variable $data
    in ZendFramework/library/Zend/Cache/Frontend/Page.php:280

  - Direct output of variable $data
    in ZendFramework/library/Zend/Cache/Frontend/Output.php:101

  - Direct output of variable $data
    in ZendFramework/library/Zend/Cache/Frontend/Output.php:65

  - Direct output of variable $output
    in ZendFramework/library/Zend/Cache/Frontend/Function.php:107

  - Direct output of variable $response
    in ZendFramework/library/Zend/Json/Server.php:198

  - Direct output of variable $data
    in ZendFramework/library/Zend/ProgressBar/Adapter/JsPull.php:111

  - Direct output of variable $output
    in ZendFramework/library/Zend/Debug.php:102

  - Direct output of variable $exceptions
    in ZendFramework/library/Zend/Controller/Response/Abstract.php:734

  - Direct output of variable $content
    in ZendFramework/library/Zend/Controller/Response/Abstract.php:546

  - Direct output of variable $output
    in ZendFramework/library/Zend/Tool/Framework/Client/Console.php:194

Používá Zend Framework někde EVAL?

abtris@ubuntu#bytekit --rule=DisallowedOpcodes:EVAL ZendFramework/
 - Disallowed opcode "EVAL"
    in ZendFramework/demos/Zend/Gdata/Health.php:92

  - Disallowed opcode "EVAL"
    in ZendFramework/demos/Zend/Gdata/Health.php:99

  - Disallowed opcode "EVAL"
    in ZendFramework/demos/Zend/Gdata/Health.php:126

  - Disallowed opcode "EVAL"
    in ZendFramework/demos/Zend/Gdata/Health.php:129

  - Disallowed opcode "EVAL"
    in ZendFramework/demos/Zend/Gdata/Health.php:159

  - Disallowed opcode "EVAL"
    in ZendFramework/demos/Zend/Gdata/Health.php:164

  - Disallowed opcode "EVAL"
    in ZendFramework/demos/Zend/Gdata/Health.php:195

  - Disallowed opcode "EVAL"
    in ZendFramework/demos/Zend/Gdata/Health.php:200

  - Disallowed opcode "EVAL"
    in ZendFramework/demos/Zend/Gdata/Health.php:223

  - Disallowed opcode "EVAL"
    in ZendFramework/demos/Zend/Gdata/Health.php:230

  - Disallowed opcode "EVAL"
    in ZendFramework/demos/Zend/Gdata/Health.php:271

Závěr

Stefan Esser ve své přednášce o bezpečnosti Zend Frameworku se zmiňuje o možnosti například kontrolovat EVAL v pre-commitu tasku, obdobně jako například dnes kontroluji syntaxi php.

Koncem září se budu věnovat porovnání PHP Frameworků z hlediska nástrojů pro QA, které jsem dělal v článku pDepend a php frameworky, uvidíme jak jednotlivé frameworky za tu dobu pokročili a také si budu všímat frameworků pomocí dalších nástrojů mezi které bytekit jistě zahrnu.

Nesmím opomenout připomenout také, že je venku PHP 5.3, na které se čekalo poměrně dlouho a doufám jen, že nebude tolik plné chyb jako jeho přechůdci 5.2 a 5.1. Uvidíme zda na příchod PHP 5.3 jsou připraveny i jiné frameworky než Nette.

Categories: php, qa Tags:

GTD a Android

01.07.2009 View Comments

O GTD většina vás asi slyšela, pokud ne doporučuji si tuto knihu o timemanagmentu přečíst, dokáže všem zaměstnaným lidem pomoci zvládat svoji práci lépe a efektivně a vyšetřit čas i na další věci, které nestíháte. České vydání knihy David Allen: Mít vše Hotovo, vydal Jan Melvin Publishing a současně spustili webové stránky, které se této problematice věnují, o různých platformách byla řeč a já přidám malé info o Androidu. Na Marketu najdete tyto aplikace, které se dají pro GTD použít, ja jsem ještě přidal aspekt propojení s RTM, které používám.

Seznam testovaných programů pro Android

Screenshoty z aplikací najdete na v galerii.

ActionComplete 1.3.0

Tento program se mi docela líbí, má pěkné ovládání. Dobrá a jednoduchá navigace, nevychází tolik přímo z GTD v pojmenování, ale vše potřebné je tu dostupné. Zálohovat data lze na kartu, bohužel chybí jakákoliv synchronizace s online systémem. Zatím na stránkách je naznačeno, že budou další produkty, které to budou řešit. Ale já nechci mít něco dalšího a dalšího.

Shuffle 1.1.1

Shuffle mi přijde jako nejlepší GTD aplikace pro Android, má jednoduché příjemné ovládání. Dobře se s ní pracuje, ale zásadní nevýhoda je v absence zálohování a synchronizace dat.

NextAction 0.8.3

Jednoduchá a dobře nastavitelná aplikace pro GTD, bohužel také bez synchronizace, ale má zálohování aspoň lokální.

Astrid 2.8.6

Astrid je velmi propracovaná aplikace, která disponuje synchronizací s RTM. Umí úkoly zadávat také do kalendáře což se hodí. V synchronizaci není podpora pro Contexty, SmartFolders a Listy. Vše je maximálně realizováno přes tagy. Dobrý správce úkolů, ale méně se hodí pro GTD, ale stejně asi nejlepší aplikace pro Android.

RTM tasks (v 2009-02-28)

Tato aplikace je geniálně jednoduchá a sám ji mám jako zálohu, pokud se TooDo nedaří synchronizace nebo chci jen rychle přidat úkol do Inboxu. Jak název napoví je určená k práci s úkoly v RTM. Umí jen vybírat list a přidávat, upravovat jednotlivé úkoly a nejde nastavit kontexty ani SmartFolders. Synchronizace fungovala mi bez problémů, ale má méně funkcí což může být pro mobilní zařízení přínos. Nejvíc mi asi vadí, že nejdou přidat poznámky.

TooDo 2.4.3

TooDo mi přijde jako nejpropracovanější aplikace, která implementovala s funkčností dostupných na webových portálech RTM a Toodledo zatím pro Android maximum. Bohužel občas mi nefunguje plně dobře synchronizace mezi programem a webem. Občas se zasekne a nevíte zda to proběhlo jak mělo, případně neoznámí, že synchronizaci vůbec dokončil. Další problém vidím, že se description nesynchronizuje s poznámkami v RTM a vyžaduje být online.

gTasx 1.0.0

gTasx poskytuje jen rozhraní ke službě Google Tasks, kterou lze také použít na GTD. Je to jednoduchý správce úkolů, který nemá moc funkcí.

Zavěr

Náčrt původního článku jsem měl hotový asi před měsícem, proto mohou být někde zastaralejší verze programů. Zvláště Astrid se z 2.6 přehoupl do 2.8 a jeho vývoj dobře pokračuje a doufám, že se dočkáme české verze, pokud máte čas a chuť přiložte také ruku k dílu. V posledních verzích se vylepšila synchronizace s RTM a jediné co mi chybí je podpora List view a ta je planovaná do verze 3.0, které se doufám do konce roku třeba dočkáme pokud vývoj půjde podobným tempem jako doposud.

Pro mě je teď primární aplikaci pro GTD na mobilu Astrid, využívám hlavně toho, že můžu zadat úkoly i když jsem offline a potom je synchronizovat až když se dostanu někam kde je signál. Pokud máte s zkušenosti na Adroidu s dalšími aplikacemi určitě je uveďte do komentářů.

Categories: android Tags: , ,

Switch to our mobile site