Posterous theme by Cory Watilo

Neomezeně subdomén a domén na "lokále"

Pokud vyvíjíte lokálně, jistě vás přestalo bavit přidávat virtual-hosty a vyjmenovávat všechny domény a subdomény v hosts (c:\windows\system32\drivers\etc\hosts). Ve windowsích hosts totiž nelze použít wildchar *, tedy něco ve smyslu 127.0.0.1 *.local. Mj. se o tom už rozepsal David Grudl.

Celé to píšu, protože jsem našel jednoduší řešení, jak na win mít maličký DNS server. Jmenuje se Acrylic DNS Proxy. Po instalaci jednoduše nastavíte výchozí DNS na lokální. V menu Start mj. najdete zástupce na textový soubor, kde stejně jako v host nakonfigujete dané domény s wildchar.

Dále v Apachi už budete konfigurovat pouze jednotlivé domény. Subdomény Apache zvládne pohlídat sám (pomocí ServerAlias):

<VirtualHost *:80>
    DocumentRoot D:/storage/webs/signaly.cz/document_root
    ServerName signaly.l
    ServerAlias *.signaly.l
</VirtualHost>

Deploy s gitem, hook a dojmy

Již to nebylo udržitelné. Člověk si udělal nějakou feature do administrace (=upravil vzhled, poladil nějaký šablony) a už musel to nahravávat na dva servery, procházet všechny ty adresáře a podle "barevné tečky" (symbol tortoise gitu) přehrávat soubory na ostrej. Opruz. Při upravě frontendího kódu ani nemluvě, když daná úprava byla ve více třídách a metodách, tzn. pár lidem to muselo spadnout... :(

Tak jsem si nechal na servery nainstalovat git. Výborný tutoriál je zde: http://blog.urbasek.cz/instalace-git-serveru-na-ubuntu/. Pak ale začali problémy při vytváření githooku. Projekt běží v nette a historických důvodu má trošku divnou strukturu adresářů, takže něco jako git reset --hard do ostrých dat určitě dělat nešlo. Skvělou myšlenku mi vnukl hook, který používají signály.cz (pro které programuju) - udělat si bokem deploy adreáře, do něj provádět hookem git reset a posléze provést rsync potřebných souborů. To je již velmi použitelná strategie. V rsyncu si vyberu to, co chcu syncovat, co nechcu ... a jedem. Bylo ještě třeba nastavit parametr "-c", který aktivuje porovnání dle checksum, klasické porovnávání dle timestampu a velikosti není kvůli git resetu možné.

Nu, nicméně vyskytly se další problémy a to práva. Jako nejoptimálnější cestu (a díky za to, že vůbec je možná) jsme zvolili stav, kdy uživatel git (viz. tutorial) ma stejné UID jako uživatel, přes kterého jsem se normálně dříve přihlašoval do konzole (a přes SFTP nahrával soubory). Pouze zařazení do stejné skupiny nebylo dostatečné a zlobilo. Post-receive hook by mohl vypadat nějak takto:

#!/bin/sh

read oldrev newrew refname

if [ $refname = "refs/heads/production" ]; then
        echo "Welcome to git deploy!"
else
        echo "Deploy canceled!"
        exit 1
fi

branch="production"
source="/home/www/example.com-deploy"
target="/home/www/example.com"

unset GIT_DIR

cd $source
git fetch
git reset --hard origin/$branch

rsync \
  --include="/chci_include/.htaccess" \
  --exclude="/__*" \
  --exclude="/.git" \
  -r -p -c --size-only --delete-after  \
  $source/ $target/ 2>/dev/null

echo "Deploy finished!"

exec git-update-server-info

Na závěr přidám ještě příkraz pro deploy z konzole. Protože pushuji na dva servery, mám přidané 2x remote repository:

alias pushOnline='git c production; git merge master;git push origin_cz production;git push origin_sk production;git c master;'
alias gui='git gui&'

Příkaz gui je jen zpříjemněním spuštění dialogu pro commitování. :) Tyto řádky vytvořte (i na Windows ;) v souboru ~/.bashrc
Enjoy, snad to někomu pomůže!

Webexpo 2010

Zkusím to nějak stručně a věcně. Mnozí se mnou nebudou souhlasit, ale to je asi  tak všechno, co můžou :)
Nejdříve perly, aneb to, co se mi opravdu líbilo:

  • Fabian Potencier - Symfony 2: skvělý řečník i framework, s jeho názorem v panelové diskuzi se naprosto ztotožňuji; Ten člověk ví a umí;
  • Derick Rethans - Debugging with Xdebug: jo, Nette framework je lepší, respektive není třeba pak právě "tolik" xdebugu :) každopádně, zajímavé zkušenosti, "něco" jsem se dozvěděl
  • Richard Fridrich - Čo ma naučili epické zlyhania na Centrum.cz: vtipné, poučné, zajímavé
  • Ryan Singer - Designing from start to finish: bohužel sem kvůli cestě do Brna musel odejít dříve, ale co sem viděl, to se mi moc líbilo, těším se na záznam
  • Diskuze - Budoucnost webových frameworků: s mnohým jsme nesouhlasil, ale aspoň se hádal každý s každým :D
  • Jakub Krč - Typografie v elektronických médiích
  • super tričko, zápisník, tužka
  • občerstvení před sály


Co ušlo, ale kdyby byly přenášející menší uspávači hadů, více akce a míň řečí, určitě bych ocenil:

  • Petr Douša, Lukáš Marvan - Testování použitelnosti – LIVE!: mnoho řečí pro nic
  • Lukáš Zaplatílek - Kašlete na uživatele
  • David Grudl - Nette Framework 1.0: příští VELKÁ věc: programátor v Nette se nic nového nedozvěděl, v porovnání se Symfony 2 se "pěkné a věcné" představení frameworku nekonalo; na druhou stranu vystoupení bylo velmi vtipné :)

A zbytek? Na plno věcí musím kouknout ze záznamu a další spoustu raděj ani nebudu komentovat. Webexpo mě zklamalo. Jako nový návštěvník jsem čekal víc. Premiérový raut nevypadal vůbec jako raut, natož premiérový, jen to byla trapný žranice, jako když se stojí fronta na párky na nádru. Když už jsem se po 20 minutých čekání dostal dovnitř, bylo vše téměř vyžraný, a všichni se sápali po nově přinesených mísách.

Něco podobného Warm-up party. Přecpaná, vrcholem všeho bylo, že došlo i placené pivo, a podali mi lahváče. :D LOL. Jídlo v menze bylo první den velmi chutné, ale druhý den fakt průser (studený brambory a k tomu podezřelé "něco"). Ale aspoň se na to moc nečekalo. Zato lituju těch chudáků, co čekali první den na registraci.

Další FAIL organizace byla kontrola, zda mám zakoupený raut. Nevím, jestli si organizátoři všimli, že existuje dnes F3 i v Excelu a nemusí si ty tabulky tisknout. Ono je pak totiž trapné, když své jméno vidíte z větší dálky vzhůru nohama dřív, než slečna, která ho hledá.

Tedy závěrem, vzhledem k tomu, že nikoho s přítomných téměř neznám, nikdo z kamarádů mě moc nepředstavoval, a já neměl tu "drzost" se přicpat do cizích hloučků, byla pro mě osobní přítomnost téměř zbytečná. LIVE stream by mi asi stačil. Ale asi se uvidíme i příští rok. ;)

Hledá se nový seriál

Hledám nový seriál, nejlépe nějaké inteligentní scifi, pokud možno nové. (Ani raděj 10 let starý StarTrek...)
Co už sem viděl za seriály:

  • Battlestar Galactica
  • Caprica
  • Stargate SG-1, SG-A, SG-U
  • Dollhouse
  • Knight Rider
  • Big Bang Theory
  • IT Crowd
  • HIMYM
  • Black Books
  • Californication
  • Fringe
  • FlashForward
  • V
  • Red Dwarf

Co sem zahlédl, ale nelíbilo se mi:

  • Dexter
  • My name is Earl
  • Lost
  • Heros
  • Prison-Break

Tak co, máte nějaké tipy? :)

Software, který používám

Kdyby to někoho zajímalo, dávám seznam mnou používaného softwaru. Občas totiž u ostatních narazím na něco dobrého, co mi chybí. Třeba se i vy inspirujete. :)
  • programování:
    • PhpED - editor
    • Navicat 9 - správce databáze
    • XAMP - Apache, Mysql, PHP (výhoda: můžu mít více verzí PHP)
    • když je třeba, tak Putty
    • TortoiseSVN/Git/Hg
    • WinMerge - jde napojit na Tortoise, výborný porovnavač obsahu souborů
  • patlání:
    • Gimp
    • Notepad++
    • MS Office 2007
    • Speed Commander (výhoda: zabudovaná podpora SFTP, ...)
    • MediaPlayer
    • Ovi Suite
    • Google Picasa - pro organizaci fotek
  • internet:
    • Mozilla Firefox 3.6
    • Mozilla Thunderbird 3.1
    • MetroTwit
    • Miranda
    • FreeDownloadManager (jde přes efektivně napojit s Firefoxem - přes FlashGot)

SpeedCommander - zobrazení htaccess na ftp

Pokud používáte jako já SpeedCommander, nejlepší náhradu TotalCommanderu, možná se vám stalo, že občas nevidíte na ftp skryté soubory, respektive soubor .htaccess. Náprava je jednoduchá, otevřete nastavení daného ftp spojení, vyberte "Advanced" a do "List command" vepište "-la". Spojení znovu vytvořte a otestuje. Toto nastavení jsem byl nucen provést pro můj hosting savana.cz, ale určitě se vám to může přihodit i jinde.

Speedcommander_htaccess