Je to už rok a 3 měsíce, co jsem opustil zdi škol a vrhnul se do pracovního procesu. Chtěl bych zde vyhodnotit, co se mi od té doby událo a čeho jsem dosáhl. Trochu seberefkexe nikdy neuškodí :)
Práce v Seznamu mi po profesní stránce dala hodně. Naučil jsem se na profesionální úrovni používat Linux, Vim, Python, MySQL a nakoukl pod kůži dalším technologiím, jako Nginx. Kromě toho jsem se naučil pracovat v týmu (skutečném týmu, ne jen nějakém hypotetickém školním týmu, kde to vždycky jeden odedře za všechny).
Pod touto trochu krkolomnou zkratkou se skrývá CAPTCHA test, založený na otáčení obrázků do správné polohy (rotační CAPTCHA). Použití najde všude, kde je třeba odlišit legitimního lidského uživatele od počítače (registrace, komentáře, přihlašování).
Základ RoCAPTCHA test vznikl v rámci mé diplomové práce. Nápad použít pro CAPTCHA test otáčení obrázků do správné polohy bohužel není můj - vznikl v roce 2009 v rámci výzkumu Googlu What's Up CAPTCHA. V tomto výzkumu se ovšem počítalo s použitím jakýchkoli obrázků (s filtrací snadno počítačem otočitelných, například obsahující lidi, horizont, oblohu apod.). Není zde ale téměř žádná přidaná hodnota, takže jsem ji ještě zkřížil s CAPTCHA testem Asirra od Microsoftu, kde jde o rozpoznání koček od psů. Přidaná hodnota spočívá v možnosti adoptovat skrze Asirru zvířata z útulků, neboť právě z fotografií zvířat z útulků je tvořena báze dat. To mi navíc řeší další problém, neboť zvířata jsou zpravidla focena z pohledu člověka, tedy v úhlu cca 45°. Tím pádem zde nenajdete horizont, vodní hladinu, oblohu a většinou ani obličeje lidí. A jako bonus má stejnou přidanou hodnotu, jako Asirra (o té podrobněji napíšu až v dalších článcích).
Docela dlouho mi trvalo, než jsem vyladil strukturu mých projektů na Djangu. Postupně podle přibývajících požadavků jsem své projekty refraktoroval, až jsem našel určitý pro mě (zatím) ideální stav. Snad by se to někomu mohlo hodit :)
vojtechoram.cz # hlavní adresář webu ├── bin ├── include ├── lib ├── local ├── static # statické soubory Djanga └── root # GIT repozitář ├── apps │ ├── __init__.py │ ├── blog │ │ ├── __init__.py │ │ ├── templates │ │ ├── locale │ │ ├── static │ │ ├── admin.py │ │ ├── models.py │ │ ├── urls.py │ │ └── views.py │ └── news │ ├── __init__.py │ ├── templates │ ├── locale │ ├── static │ ├── admin.py │ ├── models.py │ ├── urls.py │ └── views.py ├── libs │ ├── importer │ │ ├── __init__.py │ │ ├── models.py │ │ ├── views.py │ │ └── tests.py │ └── __init__.py ├── confs │ ├── production │ │ ├── project_nginx.conf │ │ └── project_uwsgi.ini │ └── test │ ├── project_nginx.conf │ └── project_uwsgi.ini ├── settings │ ├── __init__.py │ ├── common.py │ ├── dev.py │ ├── test.py │ └── production.py ├── requirements │ ├── common.txt │ ├── dev.txt │ ├── test.txt │ └── production.txt ├── environment.py # není v GITu ├── environment.template # šablona pro environment.py ├── manage.py ├── media # není v GITu └── wsgi.py
V kořenový adresáři webu vojtechoram.cz jsou převážně složky, vygenerované nástrojem virtualenv. Složka static obsahuje statické soubory Djanga (generované přes ./manage.py collectstatic). Samotný GIT repozitář s webem obsahuje složka root. jediný soubor environment.py je vyjmutý z GIT repozitáře, neboť obsahuje nastavení aktuálního prostředí (dev, test, production).
Konečně jsem se dokopal k tomu, abych si založil vlastní blog. Už delší dobu jsem tu na to měl připravený téměř dokončený modul (upravený gnocchi-blog), nicméně nebyl jsem is jistý, jestli budu mít o čem psát. No a teď jsem si řekl, že to prostě zkusím :) Přinejhorším to nebude nikdo číst a alespoň budu moct využít tyto zápisky pro retrospekci mého osobního a profesního vývoje.
O čem všem zde chci psát?