Tip liga – ročník 2014/2015

Znáte Tip ligu? Sportovní nadšenci a sázkaři určitě ano. Jedná se o Facebookovou aplikaci, která je v provozu většinou od září do července. Na každý den je vypsán 1 zápas a uživatelé tipují jeho výsledek (výhra domácích, remíza, výhra hostů). Za každý správný tip získá uživatel 1 bod. Podle počtu bodů se vypočítá pořadí. Za nesprávný tip se body nestrhávají.

tip-liga

Bylo to v roce 2012 kdy chtěl ZdendaKoran utrati jeho nechtěné dítě jménem Tip liga (s kým si ho udělal mi nikdy neřekl – asi je to tak lepší 🙂 ).  Již neměl chuť tuto hru dále rozvíjet a proto jsem se jí s radostí zhostil a začal dělat adoptivního otce. V tu dobu jsem začínal koketovat s Nette. Přepsal jsem Tip ligu do Nette + MySQL a začal se učit Facebook API. Uf, byla to fuška ale zvládl jsem to.

Od té doby uplynulo hodně času a Tip liga začínala fungovat bez chyb a se správně zadanými výsledky. Celý proces zadávání nových zápasů + zadávání výsledků jsem si maximálně ulehčil a zautomatizoval. Prakticky nemusím vůbec psát a pouze klikám. Zadávání výsledků mám rovněž v lite verzi a není problém odkliknout správný výsledek přes telefon odkudkoliv. Tím mám solidní přehled o sportovním dění 🙂

Jenomže 30.dubna 2015 ukončí Facebook podporu api v1.0 ve kterém Tip liga fungovala. Spuštění ročníku 2014/2015 jsem naplánoval na 1.9.2014 a nasadil rovnou api v 2.1 které má být funkční do 7.8.2016. Z nového api jsem trochu zmatený. U tipů proto zatím není možné sdílet tipovaný výsledek zápasu na zdi, ani není možné vidět pořadí mezi přáteli. Pokusím se tyto vlastnosti co nejrychleji zapracovat aby Tip liga neztratila žádnou funkčnost a přibývali spokojení hráči.

V ročníku 2014/2015 přeji hráčům hodně správně tipnutých výsledků a co nejlepší možné umístění.

Nette – jak vytvořit REST API – json

Co to je REST

REST neboli Representational state transfer je způsob jak jednoduše číst (GET), editovat (PUT), mazat (DELETE) a vytvářet (POST) obsah na serveru pomocí HTTP volání.

REST je vhodný pro jednotný a snadný přístup ke zdrojům. Na rozdíl od SOAP či XML-RPC je REST orientován datově, nikoli procedurálně. Všechny REST zdroje mají jednoznačný identifikátor (URL)

Jak na to v Nette?

Zapomeňte na nějaké složité generování v šabloně. Dokonce nebudete potřebovat ani funkci json-encode. V Nette uděláte JSON výstup velice jednoduše.

Ukázka vygenerování JSONu:

public function actionJson()
{
   $a = array( "date" => "20.8.2014 22:34", "temp_in" => "24.2°C", "temp_out" => "14.9°C" );

   $this->sendResponse( new Nette\Application\Responses\JsonResponse( $a ) );
}

Důležité je, že response je možné vygenerovat pouze metodou sendResponse které předhodíte response

TIP: pokud budete chtít posílat i kódování, provedete to následujícím způsobem:

$this->sendResponse( new Nette\Application\Responses\JsonResponse( $a, "application/json;charset=utf-8" ) );

 

Odeslání historie linuxových příkazů na email

Linuxovým administrátorům se často stává, že jejich kolega potřebuje pomoct s konfigurací v příkazové řádce. Pokud chcete mít rychlý přehled o tom co se dělo v příkazové řádce, odešlete si její historii do emailu.

#cd /tmp
#vim hist.sh

do kterého přidejte následující kód:
#!/bin/bash
NOW=$(date)
mail -s “Log $HOSTNAME @ $NOW” balusreekanth@gmail.com <$HOME/.bash_history

vim ukončíte zadáním příkazu: wq a nastavte oprávnění pro spuštění:
#chmod -x hist.sh

Nyní je script připraven a můžete jej spustit:
#./hist.sh

 

Jaký byl Brněnský Barcamp 2014?

Poslední květnovou sobotu se v Brně konal Barcamp. Brno mám trochu z ruky ale po povedeném Plzeňském Barcampu jsem tuto výzvu s radostí přijal.

Na akci bylo přihlášeno 1800 lidí! Kapacitu přednáškových místností jsem přibližně spočítal na 1000 míst. Vejdeme se?
@eshopkonzultant vytáhl auto. V Písku jsme nabrali Milana a hurá do Brna. Oblíbená D1 byla průjezdná bez kolon a my vpohodě stihli warmup párty.

Brněnský dobrodruh @zburival domluvil warmup v příjemné restauraci U Richarda kde točí vlastní pivo Richard. Šmakózní záležitost. V průběhu večera dorazili Pekaři z Plzně a zahřátí na sobotu bylo odstartováno.

Sobota začala nejlépe jak mohla – snídaní u švédských stolů 🙂 Taky proto jsme do areálu FIT dorazili až v 9:05. U vchodu nás čekala dlouhá fronta.
BCBRNO2014

Ve frontě jsme se naštěstí rychle posouvali. Ve finále fronty stačilo uvést své jméno, email a twitter. Kdyby u vstupu pořadatelé hledali a odšrtávali jednotlivé návštěvníky, byli bychom ve frontě ještě teď. Palec na horu.

Oběd
Oběd byla jediná piha na kráse celého víkendu.
Jelikož u 3 opic bylo plno a 1 servírka na celou hospodu, zkusili jsme štěstí jinde. Nevím zda to bylo tím že nás vedl @eshopkonzultant ale došli jsme do hospody jejíž jméno znělo hodně SEO magicky: H3
Do hospody jsme dorazili jako jedni z prvních, spokojeně si objednali a těšili se na nové chuťové požitky. Zanedlouho se hospoda celá zaplnila. Mnoho návštěvníků nevydrželo a oběd vzdalo když se dozvěděli, že jídlo dostanou nejdříve za 2 hodiny. My natěšeně očekávali jídlo. Po hodině čekání začali někteří hosté dostávat jídlo. Co to je?! Oni přišli až hodně dlouho po nás a až mají jídlo? Asi dostali polévku, uklidňoval jsem kolegu. Za chvíli musí přinést to naše jídlo. Pomyslná sklenka přetekla když všichni okolo jedli. To teda ne! Jdeme za paní provozní. Přišli jsme jako první a ještě jsme nebyli obslouženi! Paní vrchní nám sdělila že nejprve sepsala všechny objednávky, které pak předala do kuchyně a tam se začaly náhodně připravovat. WTF? To teda ne! Ještě že nejsme sprostý, jinak bychom ji poslali do prdele ☺

Díky obědu jsem nestihl polštářovou válku ani první přednášku po obědě.Škoda.

Všechny přednášky které jsem navštívil měly koule. Nejvíce se mi líbil Nodě.js a GA pro startup. Daly mi velkou inspiraci a několik nápadů.

After party
After party sponzorovala firma Kentico a stála za to! Odehrávala se v perfektních prostorech a cattering byl dokonalý. Dokonce byly i hamburgery, které jsme k obědu nedostali. Příště snad jen na exkurzi do Kentica ☺

2. WordPress konference – Hluboká nad Vltavou

Druhá WordPress konference je za námi. Povedla se!

Celý program probíhal v hotelu Záviš z Falkenštejna kde o celou akci(přibližně 80 lidí) bylo perfektně postaráno. Přednášky vycházely z konceptu Komunitní výzvy („Podpoř ostatní tím, co umíš“) a byly bez nároku na honorář. Celá akce byla štědře sponzorována firmou WEDOS s možností prohlídky datacentra.

Celá konference navíc měla i sociálně-lidský rozměr díky tweetu od @jakubloudat: „Kdo mi sežral kuře“.

Přednášky na sebe příjemně navazovaly a měly koule. U žádné jsem se nenudil.

Pro ty které se nemohli zúčastnit přidávám záznam.

Radek Kučera – Základní zabezpečení WordPressu – video
Jakub Klapka – Jak zrychlit WP pomocí cachovacích pluginů – video
David Biňovec – Principy cachování ve WordPressu – video
Tomáš Andrlík – WordPress a členské sekce – video
Daniel Dubravec (Wedos) – Nejčastější problémy s WordPress, které řeší zákaznická podpora – video
Vladislav Musílek – Tvorba pluginů – video
Petr Bechyně – Google analytics pro vývojáře a designéry – video
Zdeněk Dvořák –  Jak získávat a udržovat odkazy s WordPressem – video
Michal Kubíček – Jak proměnit WordPress ve stroj na peníze – video

Mne osobně nejvíce potěšil Vladislav Musílek s tvorbou pluginů. Petr Bechyně jako vždy nezklamal.

Největší překvapení pro mne byla diskuse u večeře ( řízek jsem dostal 😀 ). Několik spolusedících vůbec neznalo ceny WEDOSu a divilo se jak nízké ceny má.

Děkuji naswp.cz a WEDOS za uspořádání této skvělé akce a budu se těšit příště.

Nejlevnější webhosting

Jak nainstalovat WINDOWS 7 na základní desku s UEFI BIOSem?

Důležité: je notné instalovat WINDOWS 7 se SERVICPACK1!

UEFI BIOS obsahuje SECURE BOOT, který na který jsou připravené WINDOWS 8 a bez problémů si sním poradí. SECURE BOOT je funkce, která hlídá zda jsou při bootování načteny prověřené a digitálně podepsané soubory OS.
S instalací WINDOWS 7 je problém při bootování nainstalovaného OS.

Při instalaci W7 je potřeba využít následující fintu

  • Advanced – Boot Configurations – Fast Boot : [Disabled]
  • Advanced – Boot Configurations – CSM : [Enabled]
  • Security – Secure Boot Configuration – Secure Boot Option : [Disabled]

Po uložení a rebootu již nic nebrání úspěšné instalaci WINDOWS 7

Heartbleed – oprava v Debian

7.4.2014 vyplaval na povrch bezpečností chyba v  knihovně OpenSSL – Heartbleed. Tato chyba umožňuje útočníkovi získat obsah 64KB paměti procesoru, který využívá knihovna OpenSSL. Útočník tak může získat privátní klíč k certifikátu, kterým může dešifrovat komunikaci. Kód této zranitelnosti je CVE-2014-0160.

Tento útok není možné žádným způsobem odhalit, protože útočník za sebou nezanechá žádné stopy.

Závažný problém

Tento bezpečnostní problém je považován za katastrofální, jelikož si nemžeme být jisti zda ze serveru byl získán privátní klíč.
Odborník na bezpečnost Bruce Scheiner označil tento problém na stupnici od 1 do 10 číslem 11.

Problémové verze OpenSSL

Starší verze: 1.0.0 a 0.9.7 zranitelností netrpí. Ohroženy jsou všechny servery využívající OpenSSL 1.0.1 až verze 1.0.1f. Od verze 1.0.1g je problém opraven. Problémová verze OpenSSL se nachází v aktuální verzi Debianu.

Týká se mne Heartbleed

Můžete si jednoduchým způsobem otestovat zda de Vás Heartbleed týká na těchto odkazech:

Pokud jste zdatnější můžete zjistit přímo verzi OpenSSL:
dpkg -l | grep "openssl"

Seznam distribucí a verzí od kterých je problém opraven:

  • Debian 6 (Squeeze): Žádný problém (v této verzi se zranitelnost neobjevila)
  • Debian 7 (Wheezy): 1.0.1e-2+deb7u6
  • Debian testing (Jessie): 1.0.1g-1
  • Debian unstable (Sid): 1.0.1g-1

V bezpečí jste pokud používáte Debian 7 (Wheezy) jste v bezpečí pokud máte alespoň verzi 1.0.1e-2+deb7u6

Jak opravit Heartbleed

Nejjednodužší způsob jak opravit chybu Heartbleed je aktualizovat celý systém (apt-get update && apt-get upgrade) a restartovat apache: /etc/init.d/apache2 restart
Ne vždy je možné aktualizovat celý systém, pak stačí aktualizovat OpenSSL, libssl a restartovat apache:
apt-get update && apt-get install openssl libssl1.0.0 && /etc/init.d/apache2 restart

Pokud není nová verze pro vaši distribuci dostupná, budete ji muset přistoupit na kompilaci ze zdrojového kódu.

To je vše?

Není 🙂 Je důležité znovu vygenerovat certifikáty které jsou na serveru používány. Doporučuji změnit přístupová hesla.