Dva užitečné nástroje pro automatické vylepšení PHP kódu – ECS a Rector

Prvním z nich je Easy Coding Standard. Nainstalujete si ho klasicky přes composer (ať už do vašeho projektu nebo bokem) a jednoduše spustíte v konzoli:

vendor/bin/ecs check src --level clean-code --fix

Příklad výše spustí ECS pro adresář src, pomocí volby –level si určíme, co se má opravovat (je tam přednastavených mnoho configů) a pomocí –fix určíme, že se to má rovnou opravit, ne jen vypsat.

Dalším zajímavým nástrojem je Rector. Prezentuje se jako nástroj pro upgradování, případně pro migraci mezi frameworky ale umí i jiné věci – například odstraňovat “dead code” čili pozůstatky kódu, který se nikdy neprovede. Instalace probíhá opět přes composer a spustit ho můžeme následovně:

vendor/bin/rector process src --level dead-code

Příklad výše spustí Rector nad adresářem src a rovnou ho nechá opravovat kód. Pokud přidáme volbu –dry-run, kód se neopraví, nejprve tedy budete mít možnost vidět výsledky operace.

Pro seznam configů můžete spustit:

vendor/bin/rector levels

UPDATE: místo levels použijte sets :)

Upgrade CodeIgniteru z verze 2 na 3 – na co si dát pozor?

Dokumentace CodeIgniteru celkem detailně popisuje postup upgradu na této stránce. Kromě inkrementálních upgradů je tam delší článek o upgradu verze 2.2.x na 3.0.x. Vypíchnu sem jen několik věcí, se kterými jsem měl konkrétní problémy:

  • Metody třídy Input, Session a Config v případě neodeslání hodnoty/nenalezení nevrací FALSE jako ve verzi 2, ale nově NULL – dává to větší smysl, ale může být problém, pokud porovnáváte typově a v celém projektu se to dost špatně hledá, je to velká změna.
  • Třídy musí začínat velkým písmenem – může být problém, pokud pracujete na Windows. Git totiž rozlišuje velikosti písmen.
  • Sessions už se neukládají do cookies. Můžete si vybrat, jaký session driver použijete. Nejjednodušší je souborový systém a databáze, my z výkonnostních důvodů použili memcached.
  • V databázovém configu se změnilo dost věcí, ale jedna věc je zásadní – musíte vypnout ‘pconnect’ – persistent connection.
  • Z pravidel třídy Form_validation mizí ‘xss_clean’. XSS by se mělo aplikovat na output, takže ho z validace odstranili.
  • Položka ‘base_url’ v configu nemůže být prázdná. Pokud ji nemůžete nastavit v configu, můžete ji změnit i později v kódu.

JavaScript Enlightenment – recenze

9781449342883Stal se ze mě knihomol a za poslední měsíc jsem přečetl více knih, než za poslední 3 roky. Sociologii nepočítaje, tak je to Moby Dick v dětské edici a JavaScript Enlightenment, alias osvícenství, od autora Cody Lindleyho, o kterém vám nyní něco povím :)

Je to anglická knížka o detailech Javascriptových objektů. Když jsem si ji objednával, myslel jsem, že to bude komplet o něčem jiném. Nicméně je to o tom, že vše v Javascriptu jsou objekty a jak s nimi pracovat. Dojalo mě jen to, že v půlce knihy pojednává autor o konstruktorech String(), Number() atd, aby mi pak ke konci poradil, abych raději používal primitivní notaci místo zbytečného vytváření objektů. Ok. Ale je to zajímavý náhled do útrob, cituji “From Library User to JavaScript Developer“.

Jak pokračuje vývoj Steam Kitty?

Slibně, zhruba po měsíci jsem se do toho zase opřel a pomaluji finišuji. Zbývá vytvořit několik dalších pozadí a najít vhodnou hudbu a zvuky. A samozřejmě poladit herní nastavení a odstranit některé bugy, které se objevují na Androidech.

Pokud má někdo zájem o alfatesting, budu neskonale vděčný za váš feedback. Stačí napsat do komentářů :)

Přikládám několik trapných screenshotů. Stále ještě hledám ten správný “feeling” nedbalé grafiky, uvidíme, co ještě stvořím. Zatím můžete dát like Facebook stránce.

screen4 screen5

Steam Kitty – vývoj pokračuje

dog2Vývoj mého herního projektu nabírá slušné obrátky. Vydání možná bude dřív, než jsem vůbec čekal. Ale nechci předbíhat.

V minulých dnech se mi podařilo opravit bug s kolizemi, dnes jsem zavedl takový nástřel konceptu peněz ve hře a vibrace na mobilech. Progres ve vývoji můžete sledovat na Facebookové fanpage a nebo přímo na stránkách steamkitty.com/blog, kde najdete také screenshot, jak to asi vypadá.

Aktuální cíle jsou vyřešit nějak rozumně zvuky, tam narážím hodně na omezení mobilních platforem, ujasnit si podobu grafiky, vylepšit rozhraní atd. Jde mi to celkem od ruky, protože jsem se snad konečně naučil programovat objektově a snažím se to dělat pořádně. A taky chci něco udělat s těma stránkama, tyhle jsou zatím takové, hmm, hodně spartánské.

Jistě jste zaslechli o úspěchu Flappy Bird, nějaký vietnamec na tom vydělával $50k denně a před pár hodinama tu hru stáhl z App Storu i Google Play, žeprý mu to zničilo jeho poklidný život. Taky bych si ho tak chtěl zničit, milionem denně. každopádně mě zaujala podobnost herního mechanismu, i když na něm není nic nového. No každopádně povzbuzení.

 

Nová verze Diabetického deníku!

promoVčera jsem se z impulzu jednoho uživatele rozhodl rozšířit funkcionalitu mojí jednoduché aplikace pro Android o export dat, přesněji řečeno tabulek s hodnotami glukózy. V aplikaci si vygenerujete tabulku, zadáte email a na ten se vám pošle tabulka v PDF, kterou poté můžete ukázat lékaři. Odpadá tedy přepisování hodnot z mobilu na papír.

Současně jsem vytvořil i jednoduché propagační stránky: diabetickydenik.eu. Snad se to někomu bude hodit :)

Je to napsané v HTML5 a JavaScriptu, ale je to dobrá prasárna, používám tam WebDatabase, což je vlastně SQLite ale podporuje to snad jen Chrome a Android.

SteamKitty – vývoj započal

Po neúspěšných pokusech thekulis.com v obou jeho verzích (textová hra, MMORPG) jsem se rozhodl udělat něco jednoduššího, něco, co skutečně dokončím.

Takže jsem se rozhodl pro plošinovku – SteamKitty, kde budete hrát za kočku a skákat s ní a zachraňovat svět a dělat jiné cool věci. Až to bude trošku vypadat, nahodím sem screenshot. Bude to steampunkové. A opět HTML5, JavaScript a taky PHP. A dělám to zase o úroveň hezčeji, tentokrát i v OOP.

Je to součástí mé bakalářky, tak doufám, že to dokončím hell yeah.

Dog Pee – jedna z prvních českých HTML5 her ve Windows 8 Store!

Je to tak, dnes mi schválili Windows 8 verzi Dog Pee. S Chrome Webstorem a Android Marketem je to tedy už třetí platforma. Samozřejmě to jde hrát i normálně v prohlížeči :)

Přemýšlím, kam dál expandovat. Napadá mě Windows Phone 8 a iOS, ale ani jedno zařízení nemám takže leda nějak emulovat. Má Ubuntu nějaký market? :)

Dog Pee comeback!

Před necelým rokem jsem vytvořil HTML5 hru pro soutěž MámPadla od Googlu, umístil jsem se na 3. místě. Publikoval jsem to v Chrome Webstore.

A teď když sem se díval na dlaždice ve Windows 8, napadlo mě, že bych tam mohl přidat jako aplikaci právě DogPee. Překvapilo mě, kolik lidí to ještě má v Chromu nainstalováno, kolik lidí to ještě hraje a také že každý den přibývají nové instalace. Takže jsem ten projekt trochu oživil, vylepšil, přidal pár levelu, udělal úvodní stránku a vytvořil (iframe z webu) a odeslal Metro aplikaci se schválení. Bude to trvat až 7 dnů než to prověří…

Zatím ale můžete vyzkoušet verzi pro prohlížeče: DOGPEE.net

 

Dog Pee – moje nová HTML5 hra!

Je to tak, už i já jsem podlehl HTML5 mánii a rozhodl se vytvořit HTML5 hru určenou do soutěže pořádané Googlem – Mám Padla. Takže prosím, tlačítko +1 mi pomůže :)

Hra se jmenuje Dog Pee a vaším úkolem je přečůrat soupeře. Zraňujete je svými čuránky, oni vás zase svými. Šibeniční je čas. Hra má zatím 10 levelů. Grafiku jsem kreslil ručně, ještě teď mám od té tuže černé prsty. V galerii najdete drobné making-of :)