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.

Jak jsem si vypnul notifikace

Před několika měsíci jsem udělal skvělou věc – vypnul si notifikace pracovního emailu na mobilu + odstranil si ikonku z plochy. Když chci na email, tak se tam dostanu, ale nemusím se stresovat příchozími emaily, prostě je vyřeším až v práci.

Dalším skvělým zlepšovákem je kontrolovat email jen několikrát denně, nenechat jej otevřen. Má to jednu nevýhodu – když řešíte email, který vyžaduje nějakou práci, tak máte tendenci email nechat otevřený a poté vás stresuje ikonka o příchozích emailech, které postupně chodí. V práci používáme BitBucket, pro živnost používám Trello, takže zadání úkolů se snažím řešit tam a email minimalizovat. Dojít, vyřešit inbox a odejít.

Percona Toolkit a analýza MySQL slow logu na Windows

Analýza MySQL slow logu je jedním ze základních a zároveň nejmocnějších způsobů, jak zrychlit web a předejít přetěžování databázového serveru. Jde o to, podívat se na SQL dotazy, které trvaly příliš dlouho a zároveň se často spouštěly a ty pak optimalizovat (indexy nebo jejich přepsáním, sdružením, rozdělením atd).

Používám k tomu nástroj Percona Toolkit, který je ale dostupný pouze pro Linux. Jak se s tím poprat ve Windows 10? Připravil jsem podrobný návod.

Ve zkratce:

  1. Nainstalujeme si Ubuntu subsystém.
  2. Do něj MySQL server.
  3. Ten nakonfigurujeme – změníte mu port, abychom jej mohli používat vedle současného serveru i z WAMPu z Windows!
  4. Nainstalujeme Percona Toolkit.
  5. Do něj nahrajeme slow query log z produkčního serveru.
  6. Stáhneme si nástroj Anemometer.
  7. A budeme analyzovat!

Pokračování textu Percona Toolkit a analýza MySQL slow logu na Windows

5 užitečných vývojářských rozšíření pro Chrome

Ha, nabízím přehled rozšíření, které používám při vývoji webu. Jsou to prakticky jediná rozšíření co používám, kromě AdBlocku. Snažím se jich mít co nejméně.

1. Facebook Pixel Helper

Rozšíření sloužící ke kontrole Facebook pixelů na webu. Můžete pomocí něj okamžitě zkontrolovat, zda vám fungují sledovací pixely a odesílání událostí a v případě že ne, poradí vám, co opravit.

2. Google Tag Assistant

O něco méně povedená obdoba Facebookového rozšíření, tentokrát pro skripty od Googlu (Analytics, Tag Manager, …). Ovládaní by mohlo být trochu lepší, občas je dost velký problém přepnout se mezi. Před použitím je nutno jej povolit na konkrétní stránce a pak provést reload.

3. Page Ruler

Pravítko. Používám ho občas k měření vzdálenosti, ale hlavně ke kontrole, že jsou elementy zarovnané na pixel přesně tak, jak chci.

4. Page load time

Skvělé rozšíření, které jednoduše zobrazí na svém tlačítko dobu načítání stránky. I když mám při vývoji zapnutou Tracy, ta měří pouze dobu exekuce skriptu, toto rozšíření měří celkovou dobu načítání stránky.

5. ColorZilla

Kapátko pro rychlé zjištění použité barvy na webu. Rychlejší než zkoumat element přes development tools a hledat jeho barvu / barvu pozadí.

 

cmder: upgradovaná konzole pro Windows

cmd.exe je bohužel již několik (desítek) let stejný a oproti unixovým terminálům mu chybí mnoho příjemných funkcí. A pokud nechybí, je s unixem nekompatibilní, což může být při vývoji překážka – mnoho návodů je psáno pro unix a stejně tak se s ním setkáte na serverech. Špatně se z něj a do něj kopíruje, špatně se scrolluje, nefungují standardní unixové příkazy atd.

Pokud si na Windows nainstalujete Git, dostanete i Git bash, který přejímá některé unixové příkazy a může být řešením. Osobně sem jej s radostí používal přes dva roky.

Ještě lepší (a hezčí) alternativou je ale Cmder, který si můžete stáhnout zdarma a to buď v “mini” verzi a nebo “full” verzi, která v sobě obsahuje navíc i Git. Cmder nemusíte ani instalovat, existuje i portable verze. Podporuje krásné barevné zvýrazňování (git, python, …), přepínání více terminálů taby. Můžete si skrz něj napojit i Putty, připojit přímo přes SSH nebo si nastavit, které terminály se mají defaultně při zapnutí otevřít a další vychytávky.

Cmder

 

Obfuskátory Javascriptu zdarma

“je to zbytečné, stejně to jde rozlousknout, kód by měl být otevřený, použij svou energii jinde”

Jasně, ale když chcete něco důležitého udělat na klientovi, proč to těm zlým lidem trochu nestížit? Pak přijdou na řadu “obfuscators”, kterým dáte svůj JS kód a ni vám vyplivnou jeho nečitelnou podobu, která navíc často bývá velikostně menší.

Nejvíc se mi zatím líbí tento online nástroj: http://www.javascriptobfuscator.com/default.aspx, jeho nevýhodou je ale samotný fakt, že jde o online službu a nepodporuje dávkové přidání souborů. Kód ale generuje pěkně hnusný, což je podstatou.

Dalším známým nástrojem je Closure – http://closure-compiler.appspot.com/home, nástroj od Google, který je navíc dostupný v konzolové verzi ke stažení. Kód je ale dost čitelný zdá se mi.

A pak tu je cool věcička, UglifyJs – https://github.com/mishoo/UglifyJS, konzolová věc pro NodeJS, která ale také produkuju celkem čitelný kód.

Moc se v této oblasti neorientuji, máte nějaký lepší nápad? Ideálně konzolový/GUI nástroj pro dávkové zprasení více souborů, kde bych si mohl nastavit, jaké proměnné nechat na pokoji a další parametry.

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.

Indie Games: The Movie má pokračování

Zhruba před rokem jsem si koupil film Indie Games: The Movie (csfd, 82%). Ten ve mě vyvolal touhu po vytvoření nějaké cool indie hry. To se zatím nepodařilo, dva koncepty zůstaly nedodělány (thekulis.com).

Zaplatil jsem kartou, došel mi email, já se na něj mohl podívat online nebo stáhnout. Pak tam byl kód pro Steam, kam jsem ho vložil a šup, film jsem měl v knihovně her na mém účtu. Paráda.

A teďka někdy vyšlo pokračování, kamarád Radek mi ho koupil k Vánocům. Došel mi email, klik, na stránce ještě jeden klik, zpět do mailu, klik, zase na stránku a získal jsem tedy přístup k filmu online. Jenže, ten problém: stáhnout si jej můžu jen po částech (25 videí), nebo se na něj podívat online, což se v 1080p v browseru někdy seká a je to strašně nepohodlné. Navíc tam nejsou ani slibované titulky. Pak jsem se mrknul na Steam, kde je dané pokračování o polovinu levnější, stáhne se vám celé v HD a máte ho přístupný na svém účtu, včetně titulků. To teda naštve.

A teď k filmu, ono to není pokačování, ale jen sbírka jakýchsi random videí, ve stylu “2 roky poté”, ale je to stále supr. Moderně a zábavně natočené, příběhy lidí, kteří ty nezávislé hry vytvářejí, jak je to ovlivní atd. No prostě super, doporučuji.

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