Měl jsem takovou rozpravu z vydavatelstvím Computer Press, zda-by
nechtěli vydat Djangobook. Zájem vydat ho neměli, nicméně jsem se
dozvěděl, že najednou chtějí vydat již rozebranou a 5 let starou knihu
http://knihy.cpress.cz/knihy/pocitacova-literatura/programovani/zaciname-programovat-v-jazyce-python/
popisující verzi pythonu 1.5 a některé již překonané balíky programů.
(Domníváme se, že tak začali šílet poté, co Google oznámil App
Engine). Vydávat ale takhle starou knihu v dnešní době mi přijde jako
nepochopení současného stavu vývoje ze strany nakladatele a nedůstojné
pro nás programátory v pythonu. Asi jako by teď někdo vydával knihu o
PHP4 pro phpkáře.
Mám organizační zkušenosti z pořádání konferencí o PHP frameworcích.
Tak mě napadlo, že bych se ujal organizace vydání knihy psané
komunitou. Uvedu vám zde svůj plán a uvidíme, jestli bude v python
komunitě dostatečný zájem a těch několik lidí, co by do knihy
přispěli, se najde.
Navrhovaná témata pro knihu (stránky počítány pro velikost C5):
- úvod do knihy a pythonu 2.6 (10 stran)
- syntaxe pythonu, typy a řízení toku programu (70 stran)
- funkce, třídy, objektové programování, výjimky (50 stran)
- moduly, skripty, balíčky (20 stran)
- práce se souborovým systémem (10 stran)
- regulární výrazy a další standardní moduly (datetime, urllib atd.)
(50 stran)
- úvod do Djanga (s částí o Google App Engine) (50 stran)
- JPython (20 stran)
- IronPython (20 stran)
- python+gtk (50 stran)
- přehled dalších užitečných balíčků a aplikací (simplejson,
beautifulsoup, soap, xmlrpc atd.) (20 stran)
- stručná referenční příručka (100 stran)
- rejstřík
Další možnosti ?
- SQLAlchemy
- něco o integraci do IDE (vim, eclipse, textmate, visual studio...)
Rozsah knihy 400 až 500 stran. Myslím, že by se to mohlo psát v RESTu,
ze kterého by měl jít výstup do pdf. Pokud by se nesehnala jiná
(levnější) tiskárna, tak by se to mohlo vytisknout pomocí služby
http://www.librix.eu/cz/calculator/. Zde tisk vychází s barevnou
obálkou pro 450 stránek velikosti C5 na recyklovaný papír cca 235 Kč /
kus při 100ks. Prodejní cena by mohla být 400 Kč. Prodej přes web, do
škol a nabídka knihkupcům.
Kolik by se udělalo prvotních výtisků, záleží zřejmě kolik by bylo k
dispozici peněz. Peníze na tisk, grafickou úpravu obálky a případného
sazeče by se mohli získat z reklamy. Pokud pracujete v nějaké firmě,
kde se používá python, pozeptejte se, jestli by měli zájem tento
projekt podpořit penězi za reklamu v knize. Python se používá v
Seznamu, Centru a zřejmě i v dalších větších firmách a určitě shánějí
python programátory, tak by reklamu možná uvítali. Stejně tak šíření
povědomí o pythonu mezi programátory, jak mezi mladými, kteří se
rozhodují, s jakým jazykem začít, tak mezi už zkušenějšími, kteří
třeba přemýšlejí o změně. Také české hostingové společnosti, které
nabízejí hostování pythonu by mohli mít zájem o reklamu.
Termín uzávěrky příspěvků bych si představoval do konce července. Ale
je to samozřejmě na domluvě, jak by se to stíhalo. Pro autory bych
zřídil svn repositář, kam by mohli své texty verzovat.
Nyní se tedy prostřednictvím této diskuze budu snažit zjistit, jestli
by byl o knihu zájem hlavně tedy mezi programátory, kteří by mohli
přispět autorsky. Těžko asi seženeme člověka, který by napsal celou
knihu sám a navíc málo lidí má komplexní znalosti ze všech oblastí.
Vůbec se nebráním tomu, aby každé téma napsal někdo jiný. Byla by to
pak opravdu komunitní spolupráce. Protože nejsem nakladatel, ale
jednotlivec, je tu samozřejmě nevýhoda s honoráři pro autory. Těžko je
zaplatím dopředu. Nicméně bude záležet, kolik by se sehnalo dopředu
peněz od sponzorů. Když už bude kniha na pultech, je už samozřejmé, že
by autoři byli honorování ze zisku. Možná více, než kdyby psali pro
nějaké velké nakladatelství, které si bere spoustu peněz na režii.
To je tak zatím vše na úvodní příspěvěk. Pokud si myslíte, že to je
dobrý nápad, a máte nějaké dotazy nebo nápady, tak pište. Samozřejmě i
nabídky na spolupráci. Pokud vás nezaujal, tak můžete napsat taky :-)
Lukáš Kokoška
Předběžné bych měl autory na python + gtk a django. Ještě toho ale
stále zbývá dost.
VS
v dobe planovaneho vydani uz bude celkem dost aktualni ....
Zároveň bych chtěl zahájit nějakou diskuzi na téma v jakém prostředí
knihu připravovat. Asi se shodneme na tom, že to bude vyžadovat
nějakou wiki, kde budou autoři mít možnost editovat napsaný text a
rovnou nad ním diskutovat.
Zároveň asi nemá smysl pro to psát něco vlastního, takže otázka je
jaký wiki systém a kde jej hostovat. Mám nějaké zkušenosti s DokuWiki
a docela by se mi na to líbíl.
A co sazba. Já s Texem a podobnými systémy zas takové zkušenosti
nemám. Kdo by byl ochotný hotový text vysázet?
Lukoko aka Lukáš Kokoška
Potom pokud by se v dané veci nakonec nějak angažoval i seznam, pak by
do kapitoly s XML-RPC patřil určitě ještě FastRPC.
Protože moje primární zaměření v jsou mobilní technologie, nezapomněl
bych na Python pro Windows Mobile, Python pro Symbian, Python na
Maemo, Python v iPhonu/iPodu, mobilní Linux (kde je většina věci v
pythonu), atp.
Když už tam má být zmínka o IronPythonu a Jythonu, tak by tam určitě
patřil i PyPy, nebo Stackless Python.
O Pythonu 3 jsem uvažoval. Bule ale ještě chvíli trvat než se pro něj
začnou přepisovat stávající programy, protože je zpětně
nekompatibilní. A za další než se dostane do distribucí. Takže bych
byl pro python 2.6, který je na půl cesty a některé nové věci jsou z
Py3k backporotovány a ostatní se dají naimportovat pomocí future
import.
Souhlas s tím, že by se uvádělo, které věci jsou deprecated a
nastínilo jak se to bude řešit v Py3k.
DokuWiki by nemusel být špatný nápad. Komentáře k textu by byl super
nástroj.
Viděl bych tu asi tedy na rozhodnutí mezi následujícími variantami:
Buď REST, na který teď přechází python dokumentace pomocí nástroje
http://sphinx.pocoo.org/, který z toho umí generovat LaTex, ze kterého
by se dělalo PDF pro tisk. Verzovalo by se v SVN. Nebyly by tam
komentáře.
Nebo ta DokuWiki, kde je prý také konvertor do LaTexu
http://wiki.erazor-zone.de/doku.php?id=wiki:projects:php:dokuwiki:plugins:latex.
Verze jsou ve wiki samozřejmostí a komentáře tam jsou.
Ale úplně nejlepší nápad mi teď přijde psát to v TracWiki. Trac mám na
serveru nainstalován. Docutils s RESTem tam mám. Teď jsem tam zkusil
nainstalovat komentářové makro a fungují komentáře u wiki stránek.
Přes RESTMacro http://trac-hacks.org/wiki/ReSTMacro by se to dalo
krásně spojit i se svn, kde by texty ve skutečnosti ležely.
> A co sazba. Já s Texem a podobnými systémy zas takové zkušenosti
> nemám. Kdo by byl ochotný hotový text vysázet?
>
Budu rád, když se přihlásí někdo se zkušenostmi s LaTexem.
Díky za spoustu užitečných tipů.
Bylo by skvělé tam mít všechno, co píšeš. Obávám se, že pak by ale
kniha měla přes 1000 stran a bylo by velmi těžké sehnat tolik autorů.
A stejně by se o daných tématech nedalo napsat příliš mnoho stránek.
Radši bych viděl knihu, kde se vyberou ty nejpoužívanější nebo
nejperspektivnější balíky a u nich se půjde alespoň trochu do hloubky
nebo se ukážou best practices, než vytvářet jen povrchní přehled.
O nějaké verzi pythonu pro mobily by tam řeč určitě měla být.
U kapitoly o webu to chce hlavne popsat WSGI a dalsi obecne veci, pak
muzem zminit dva hlavni frameworky + treba ten zope, rozhodne bych se
nepoustel do zadnych konkretnich aplikaci (Plone a spol.), ty bych
maximalne zminil odkazem.
Ale vsechny tyhle veci vychazeji z urceni produktu - pro koho ma byt?
Pro zacatecniky jako seznameni s pythonem (v tom pripade nema asi
smysl popisovat veci do hloubky a spis se soustredit na seznameni se
zakladnimi principy a odkazani lidi na konkretni publikace), pro
stredne pokrocile je to zase neco jineho apod. pro pokrocileho pak jde
o seznameni s exotickymi aspekty jazyka (metaclass, descriptory, ...)
a ruznymi implementacemi (jython VS IronPython VS cPython), ktere zase
imho nepatri do knih pro zacatecniky (jinak nez jako zminka na jeden
radek).
Takze, pro koho j eta kniha a jak chceme aby ji pouzival?
Mame ambici napsat ucebnici (i treba vcetne vyuky zakladnich principu
programovani), nebo "jen" referencni prirucku?
Chceme se zamerit na konkretni aspekt (treba web programovani, nebo
skriptovani pro sysadminy), nebo pokryt co nejsirsi skupiny temat?
Nebo popsat python jako multiplatformni jazyk pro kazdou prilezitost
(IronPython, Jython, PyPy, ...)?
Zkratka co si od toho slibujem, teprve potom muzeme rict co tam chceme
a zacit se hadat co tam smysl ma a co nema (posledni slovo je
samozrejme na Vaskovi).
Máš pravdu. Nejdřív by jsme se měli dohodnout pro koho tak kniha
vlastně je. Z obsahu vyplývá, že by to mělo být pro začátečníky. Přeci
jenom 70 stran na syntaxi, datové typy a řízení běhu programu by mělo
i začátečníka naučit většinu důležitých věcí.
Na druhou stranu bych se nebránil tomu, aby některé kapitoly byly více
dopodrobna. Když už budeme psát o Pythonu, tak by se potom dalo psát o
různých použitích. Na webaplikace (Django, Zope, mod_python, cherrypy,
nebo tak podobně), potom v kapitole, kde by se psalo o gtkpythonu, by
jsme taky měli minimálně zmínit wxPython, a PyQt.
Prostě a jednoduše by se mi líbilo, aby to byla kniha, kde si každý
najde to svoje. Ať už se jedná o začátečníka, nebo někoho kdo už umí
programovat. Stejně tak aby ten, kdo umí hlavně webové záležitosti se
naučil něco o psaní pod gtk/wx/qt.
Teď jsem si ještě vzpomněl na Twisted. Kdo to nezná, tak to je
framework, který poskytuje nástroje nejen pro vývoj webu, ale nástroje
pro všechno možné i nemožné okolo sítí.
Jak to tak vypadá, tak každý známe o Pythonu to své a preferujeme jiné
knihovny a nástroje. Asi nejjednodušší bude, když to všechno dáme do
nějaké wiki a potom vybereme jenom to podstatné.
Lukoko
Skriptování a podobné věci se vejdou ke knihovnám jako jsou os a sys.
Pro koho má kniha být? Určitě by to neměla být učebnice programování.
Čtenáři by už měli mít zkušenosti s procedurálním i objektovým
programováním.
Ať už na teoretické úrovni nebo třeba v php. Dneska už na střední
možná základní škole se dají nějaké základy programování pochytit. Tj.
probral bych tam samozřejmě syntaxy a základy pythonu i pro ty, co
python nikdy neviděli, ale ne for dummies, ale spíš for middle
advanced programmers.
Jaké vzít zdroje?
Vycházet bysme měli samozřejmě z manuálu zřejmě verze: http://docs.python.org/dev/
Dále pak co každý zná či používá.
Pěkný stručný přehled všech vlastností pythonu 2.5 je zde:
http://rgruet.free.fr/PQR25/PQR2.5.html (něco takového by mohlo být na
konci knihy.)
Pythoní builtin moduly ve stručných příkladech: http://www.lightbird.net/py-by-example/
Nedělal bych z toho ale jenom referenční příručku. Od toho je manuál.
Jak jít do podrobna při popisu konkrétních programů? Asi dát základní
popis, ukázat filosofii použití, vyjmenovat možnosti, zmínit podobné
aplikace na dané téma případně s nimi porovnat klady a zápory a uvést
užitečné zdroje, kde si člověk dostuduje podrobnosti, pokud se
rozhodne, že danou aplikaci chce používat.
Kromě popisu jazyka by měl být myslím určitě zastoupen web, desktop,
mobily. A z multiplatformích aplikací pro svou atraktivitu určitě
spolupráce s Javou a .NETem
VS
+ nebyla by spatna zminka o Google App Engine
Založil jsem tedy TRAC a SVN viz:
http://trac.python-book.stopuje.cz
Do tracu se může registrovat kdokoliv. O přístup do SVN si řekněte.
Ahoj, tak prosim o pristup do svn. :-)