pondělí 27. ledna 2014

Jak děláme open source

Dnes jsem se v rámci úklidu (především duševního :-)) zamyslel krom jiného i nad tím, co vše z naší práce publikujeme jako "open source" a co jsme nad tímto open source vystavěli.

Ella - Django powered CMS


Co je Ella? Oficiální popis říká: "Ella je open source CMS založené na Django frameworku. Původně vznikala jako CMS pro magazíny společnosti CentrumHoldings (především Žena.cz) s ambicemi stát se hlavním CMS pro všechny obsahové weby od lifestylových e-časopisů se střední návštěvností až po zpravodajské servery s návštěvností v řádech miliónů zobrazení denně."

V CentrumHoldings bohužel nečekala na Ellu příliš dlouhá budoucnost, zejména z důvodu celkového odklonu CentrumHoldings od Pythonu. My jsme naštěstí Elle nikdy nepřestali důvěřovat a zůstali jsme v kontaktu s jejími původními vývojáři. S těmi jsme na její záchranu založili občanské sdružení Pyvec, které však velmi brzy Ellu přerostlo. O tom ale až někdy jindy.

Časem se nám podařilo Ellu prosadit i do společnosti Sanoma, kde nad ní bylo spuštěno několik zajímavých webů - Květy, Vlasta, Dům a zahrada...

Náš největší projekt na Elle je Investičníweb.cz. Ella pohání například i Věrnostní program společnosti Mountfield.

Naši přátelé ze společnosti BermanBraun (bývalé Whiskey Media) pak na té stejné Elle provozují weby s výrazně větší návštěvností převyšující počet obyvatel ČR - Tested.com, Mom.me, Anime Vice...

Zdrojové kódy Elly naleznete na GitHubu a pokud vás zajímají čísla, tak zde je i několik grafů. Instalační balíček najdete na Pypi, kde má Ella každý měsíc tisíce stažení.



GAP a GAPI


V minulém blogu jsme již o knihovně GAP a GAPI psali, takže zde přidám již jen několik čísel z GitHubu a Pypi.


BorIS


BorIS je projekt našich zaměstnanců, kteří na něm pracují většinou ve volném čase. I o tomto projektu jsme již psali, takže uvedu jen odkaz na GitHub a informaci o tom, že BorISe používá již cca 10 zařízení z ČR. Tím však ambice projektu zdaleka nekončí a těšíme se na to, až hranice ČR překročíme.


A co ještě máme?


Dál už toho "moc" není, jen několik malých knihoven, pár komitů do knihoven někoho jiného a samozřejmě také řadu plánů do budoucna. Tím nejsmělejším je asi dostat naší HTML5/JS/CSS aplikaci jako výchozí "example" aplikaci v projektu Apache Cordova. Tak uvidíme jestli se nám to povede.

No a to je asi vše. Až budu příště zas "uklízet", zkusím o tom něco napsat.

čtvrtek 2. ledna 2014

Náš technologický stack - server

Server

Bez diskuse Google AppEngine v Python verzi. Ne, že by to byla zase taková pecka, ale většinou je to požadavek zákazníka.
Ovšem pecka je náš GAP a GAPI.


GAP

GAP je naše odpověď na to, že AppEngine neví, co to je virtualenv. AppEngine dokonce ani neví, co to je PIP.
To naše pythonáře trochu (víc) zaskočilo, ale naštěstí Robin dal rychle dohromady náhradu.
Jak funguje? Takhle:
workon <myvirtualenv>
pip install gap
gap start-project <applicationid>
cd <applicationid>
vi requirements.gip
bin/gip install -r requirements.gip
Každý, kdo někdy dělal s virtualenv v Pythonu se zorientuje relativně rychle - jen místo pip install napíše bin/gip install a GAP se postará o stažení knihoven a jejich nalinkování do adresáře se zdrojákama.
Závislosti se ukládají do requirements.gip (místo requirements.pip) a svět je zase veselejší místo k životu.
GAP nám umožnil mít pořádek v knihovnách jednotlivých projektů a nezas*rat si instalaci Pythonu.


GAPI

Další náš příspěvek světu je GAPI – mimochodem na originálních názvech GAP/GAPI je vidět, že jsme především programátoři. Copywritera aby člověk pohledal...
Takže GAPI. Rozhraní (API) Google služeb je navržené šikovně, ale knihovna pro Python, která ho implementuje, už je na tom hůř. O dost.
GAPI umí navíc:
  • cachovat autorizační tokeny
  • dávkové requesty
  • opakovat requesty v případě chyby
  • stránkovat odpovědi
  • a běží v pohodě na AppEngine
Ke GAPu patří i další rozšíření jako GAP-Resources, GAP-Angular (to jsem psal já!) a GAP-DatastoreAdmin, ale o těch až jindy.