Portál AbcLinuxu, 1. května 2025 04:54

Cesta

23.2.2007 23:44 | Přečteno: 1403× | Linux | Výběrový blog

Je to už asi 8 let a kousek co se hrabu ve webech. Můj první web byl časopis a měl jsem ambice ho poslat do Levelu kde se tyhle časopisy rozmáhali. Nedošlo k tomu a dneska jsem za to i rád:) Co chci říct je, že za těch 8 let jsem se vypracoval, i když si myslim že většinu toho co umím umím díky poslednímu roku s Linuxem.

Po zmateném úvodu zkusím v novém zmateném odstavci naznačit pointu. Ve třinácti jsem dělal statické weby, ve 14 dynamické pomocí PHP. V 15 se do toho namíchali databáze, v 16 jsem se objevoval a poznával divy C/C++, které mě nakonec moc nechytlo i když bych v tom aplikaci napsal. Byla to taky doba kdy jsem poprvé instaloval Linux a poprvé ho odmít. V 17 jsem parazitoval na svých znalostech a pokusil se něco vytvořitl. V 18 jsem podruhé poznal Linux a tentokrát ho neodmít, běžel jako druhý a rozchodil jsem v něm všechen HW, byl to Slackware. V 19 jsem poznal Python a přešel na Linux jako na hlavní systém. Na disku zůstala partition s nefunkčními Win. Během měsíce win šli do kopru a já prohluboval znalosti unixových systémů, různých knihoven a hlavně jsem se naučil pracovat s qt3/qt4. Před 20. narozeninami jsem udělal svoje poslední 4 velké projekty v PHP. Vyvíjel jsem u toho svůj php framework Form. Už se dostávám k cíly tak to dám do dalšího odstavce.

Začátky generování

Form byl bezvadný pomocník, práci na 3 hodiny mi zkrátil na 10 minut. Vývoj ale nešel najednou a každým projektem jsem přidal novou vrstvu. Nakonec jsem napsal 20 řádků kde jsem popsal co chci a vygenerovalo mi to formulář pro úpravu a list. Generovalo to jenom administraci, ale s webem mi to hodně pomáhalo. Nebylo to ono, a tak jsem se rozhodl přidat poslední vrstvu. Vrstvu která bude generovat úplně celou administraci. Narazil jsem na problém. Člověk pro kterého jsem tenkrát dělal z tohohle nebyl nadšený. Vývoj webu jsem zkrátil na pár dní. Jenže si to vybralo daň u prvních testů kde když odešlo něco ve frameworku tak nešla celá administace. Chvilku to dalo než se to odladilo, každej projekt přinášel nové vrstvy (celkově byli 3) a ladit to bylo čím dál horší. Vrstvování je pěkné, ale tak maximálně na postupný vývoj na novou aplikaci se to nehodí. Kdyby tenkrát tenhle člověk měl trochu trpělivosti a nevadilo mu, že tam občas něco drhne asi to dělám do teď, ale díky tomuhle jsem přestal na Form pracovat a chvilku zevloval.

pyweb?

Na konci minulého roku mě napadla myšlenka. Vybodnout se na vrstvování a začít s úplně novým návrhem a napsat to v jazyce, který dokáže líp pracovat s objekty. Výsledek je pyweb. O co jde. Rozdělil jsem web na elementární části, které se skládají do sebe. Výsledkem je modulární toolkit, který jde krásně využít k poskládání dynamického webu nezávislého na grafice aniž by člověk napsal jedinou řádku (X)HTML. Zrušil jsem tedy neosvědčené vrstvení a tentokrát skládám kousky, které se o sebe starají sami. Výhodou je, že se to dá skládat růčo přímo v Pythonu (jazyk co jsem nakonec vybral) a nebo použít konfigurační yaml soubůrky a napsat tam co vlastně chci. Stejně tak pěkně se to dá i generovat pomocí nějakého WYSIWYG nástroje, ale o tom dále.

Nová cesta k webu?

Popisuju tady hrušku, ale zatím jsem se nezmínil co z ní vyleze za červa. Největším problémem mojí práce bylo nesmyslné opakování kódu. Pyweb je navržen tak že generuje celé weby. Napíšeme form("konfigurak") a vyflushne nám to formulář, vytvoří tabulku v databázi a udělá list uložených dat. Tohle odebere asi 80% práce, ale umí to mnohem víc. Pyweb nevygeneruje jen celou administraci, ale dokáže vygenerovat celý web včetně detailu položek v DB, různých statistik, menu, layoutu, atd. Jak to přibližně funguje nastíním dále.

Yaml vítězem

Pokud něco můžu zneužít tak to zneužiju a ve světě OSS to platí dvojnásob. Jelikož pyweb nakonec OSS bude, tak se nemusím bát po něm přejímat kód nebo vužívat různé cool nástroje. Yaml je jedním z nich. Yaml soubor je soubor, který se dá přečíst dobře jak člověkem tak strojem a je implementován v každém druhém jazyku. Založil jsem tedy pyweb na něm. Musím podotknout, že mě k tomu nakop Botanicus. O Yamlu se dá dočíst třeba tady.

Základem je formulář

Ač se to nezdá, dnešní webový svět je založen na formuláři, je to to co dá nejvíce práce. Proto je to hlavní nosná síla pywebu. Funguje to asi tak, že se napíše jeden yaml soubor s určitými daty se kterým pracuje pár dalších objektů. Jeden vygeneruje formulář pro zadávání a stará se o zadávání. Druhý vygeneruje tabulku s daty a tlačítky pro úpravu atp. Další vygeneruje statisitku (fajn pro ankety třeba). Další zase vypíše detail jedné položky případně k ní zobrazí i nějaké ty uploadované fotky a další kravinky. S tímhle si už člověk v pohodě vystačí a poskládá s tim web, který vyhovuje většině zadání. Díky tomuto totiž jde udělat yaml soubor, který definuje formulář pro článek, novinky, zprávy z čehokoli, prostě cokli kde je potřeba něco zadat.

Na webu je i text

Text je takovym velkym trnem v mém oku. Já sice vyvíjím pyweb, ale kolega Botanicus pracuje na WYSIWYG nástroji pro konfigurační yamly. Jazyk pro text je něco co musíme odsouhlasit oba a i když pyweb podporuje teď 2 jazyky a jeden je připraven pro implementaci, tak defaultně buden nastaven jeden. Botanicus je TeXař a já jsem spíš user, tak se nemůžeme shodnout na jedné základní věci. Nový řádek chci mít jako :n a on jako ---. Tabulku chci mít jako :table:XXX a on jako ---table:XXX---. Obrázek to samý v bledě modrym. Udělali jsme nakonec kompromis, který není nejlepší a myslím že to bude dělat problémy :(

Layouty

Moderní web jede na CSS layoutech. Rychleji se to kreslí, hůř se to dělá. V pywebu znamená layout něco trochu jiného než sada divů. Je to rozložení prvků na stránce. Jsou to takové boxíky, které dum8d0g nazval cubes do kterých se dají vkládat jednotlivě objekty (formy, listy, články, anekty, ...). Pyweb tak má nástroje, které přečtou layout a nahází do toho objekty, které obsahuje a web je hotov.

2CSS stačí

Pyweb na celý web potřebuje 2 CSSka, jedno nastavuje jak má vypadat layout a druhé barvičky. Jelikož je pyweb složen z elementárních objektů tak můžu jednoduše nastavit barvy pro celý web a vím že to bude vypadat stejně a žádnej kód nebude duplicitní. CSSko pro layout se nestará o barvy ale o rozměry jednotlivých cubes případně jejich pozadí.

Pouze balíček

Inspiroval jsem se unixovým světem a navrhnul tar.bz2 archiv, který obsahuje všechno co je potřeba pro grafickou podobu webu. Výsledek je takový, že udělám jenom seznam objektů, které potřebuji na webu, vyberu balíček a mám web hotový. Balíček tedy obsahuje zmíněná 2CSSka, jeden layout a obrázky, které jsou nutné pro design webu. Když je tedy potřeba změnit grafika tak se změní jen balíček a všechno ostatní zůstává. Easy... :)

DOCS

S takhle velkým projektem přišli i problémy s dokumentací. Potřeboval jsem aspoň něco jednoduchého a nejlíp možnost získat další potřebná data. Začal jsem tedy s vývojem pydocs. Je to malý skriptík co prolítne py soubor, vyseká z něj třídy, metody a funkce, dá je do souvislosti a přiřadí k nim komentáře začínající na #?(popisek metody,fce nebo třídy) a ##?(popisek na úvodu). Výstup je do normálních textových souborů a je to bez práce a pohodlný :)

Konec

Už píšu hodinu a nic moc mě nenapadá tak když tak pokračování příště, protože tohle rozhodně neni konec. Komplet pyweb bude OSS a bude k dispozici do pár týdnů. Jestli bude i WYSIWYG generátor yamlíků OSS nevím, ale Botanicus se určitě ozve v diskusi. Zatím se loučím a doufám, že to nebylo moc dlouhý :)

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

Daniel Kvasnička ml. avatar 24.2.2007 00:35 Daniel Kvasnička ml. | skóre: 52 | blog: The Joys and Sorrows of Being an IT Freak | Ostrava
Rozbalit Rozbalit vše Re: Cesta
Odpovědět | Sbalit | Link | Blokovat | Admin
Taky si buduju v Pythonu jistou vetsi vecicku, ale spis na principu Apache Cocoonu. Tahle tvoje vec pojede pres CGI?
FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."
24.2.2007 00:46 Creckx | skóre: 23 | blog: cxblog | Lanškroun
Rozbalit Rozbalit vše Re: Cesta
Tahle moje věc pojede v mod_python... ta část která se stará o skládání webu bere data od usera z apache a vyhazje XHTML. Když si napíšeš pár řádek kde bude předávání dat těm třídám z něčeho co chceš použít tak to bude fungovat i tam. Je tam třeba i objekt pro výpis adresáře s různym infem o souboru, takže když ho zavoláš ze shellu třeba pomocí python -i files.py a tam napíšeš s = fifo("/neco/hafhaf") a o řádek níž xhtml().addContent(s) tak ti to vyhodí na stdout stránku s listem souborů v tom adresáři. Nejsem tedy omezený jen na mod_python.
Můj blog Pokud máte taky blog, můžeme vyměnit odkazy :)
Daniel Kvasnička ml. avatar 24.2.2007 00:43 Daniel Kvasnička ml. | skóre: 52 | blog: The Joys and Sorrows of Being an IT Freak | Ostrava
Rozbalit Rozbalit vše Re: Cesta
Odpovědět | Sbalit | Link | Blokovat | Admin
Jeste me tak napada, proc nepouzijes na generovani dokumentace Epydoc?
FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."
24.2.2007 00:49 Creckx | skóre: 23 | blog: cxblog | Lanškroun
Rozbalit Rozbalit vše Re: Cesta
Jsem dlouho hledal dokumentační nástroj, ale na tohle jsem nenarazil. Pak jsem začal psát pure-text dokumentaci k formátům co tam používám a tak nějak jsem si na to přivykm takže jsem si napsal svůj.
Můj blog Pokud máte taky blog, můžeme vyměnit odkazy :)
24.2.2007 01:02 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Cesta
Odpovědět | Sbalit | Link | Blokovat | Admin
a nejvetsi sranda na tom je, ze potom, co si clovek projde toto kolecko, zjisti ze to cele jde naprogramovat na 2-3 tis. radku v blbem phpcku, jenom se v tom nesmi programovat jako v phpcku ;-] (a i presto, vnitrne vi, ze se to vleze na 500 radku v lispu... i kdyz by ho za to nikdo nezamestnal a co hur... hlavne nepochopil ;-])
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
24.2.2007 01:09 Creckx | skóre: 23 | blog: cxblog | Lanškroun
Rozbalit Rozbalit vše Re: Cesta
cx@desktop:~/python/pyweb$ ./count.sh
  218 dataForm.py
  238 dataTable.py
   36 div.py
  215 files.py
  306 form.py
   26 io.py
  119 imgs.py
   50 listing.py
   15 pywebgen.py
  118 pyweb.py
  365 sql.py
  120 table.py
  200 webgen.py
   69 xhtml.py
   75 menu.py
   61 pysys.py
  120 text.py
  154 docs.py
 2505 celkem
Můj blog Pokud máte taky blog, můžeme vyměnit odkazy :)
24.2.2007 01:17 Jiří (BoodOk) Kadeřávek | skóre: 19 | blog: BoodOk | Brno
Rozbalit Rozbalit vše Re: Cesta
Jo jo. Tuhle mám objekt a po něm dedí tenhle objekt, který umí list a tenhle form a tenhle .... tuhle mám data, tahle funkce je transformuje takto a tahle takto, ta vygeneruje form, ta list. Skutečně je na web zapotřebí těchhle objektových onanií? Nemělo by to být spíše data, kód, prezentační vrstva a piště si to v čem chcete? Problém webu je oddělení HTML od kódu. Pokud toto dokážete, dostanete View (HTML). A pokud kód umíte rozseknout na klient-server, dostanete Controller a Model. Dle mého dostačující. A jestli to zpracovávám strurovaným jazykem, objektovým jazykem je ale úplně jedno.
Věda má v sobě určitou zpupnost, že čím dokonalejší techniku vyvineme, čím více se dozvíme, tím lepší budou naše životy.
24.2.2007 02:13 Creckx | skóre: 23 | blog: cxblog | Lanškroun
Rozbalit Rozbalit vše Re: Cesta
Pokud mám psát web a nemám se u toho zbláznit, tak je opravdu potřeba takováhle objektová onanine. Oddělení HTML od kódu je sice čísté, ale pokud se na to koukneš z pohledu někoho kdo to musí psát je tam kupa opakujícího se kódu. S timhle napíšeš web za pár minut a pak už si jen hraješ s grafikou. Pokud to děláš po staru je to na dny a ještě do toho musíš napasovat grafiku. Systém šablon je vcelku nechutnej a v mnoha ohledech překonanej. Web je objekt a jakkoli to obcházet nemá smysl.
Můj blog Pokud máte taky blog, můžeme vyměnit odkazy :)
24.2.2007 09:03 Jiří (BoodOk) Kadeřávek | skóre: 19 | blog: BoodOk | Brno
Rozbalit Rozbalit vše Re: Cesta
Dokázal jste, že jste plně indoktrinován :-) Pokud je web objekt, je objekt cokoliv. Což je samozřejmě pravda a je to výborná výchozí pozice pro všechny urputné zastánce pure objektového programování. Jenže, reusability kódu není patent objektového programování. Samozřejmě beru programování jako takové, nikoliv CRUD onanii. Pokud je její zvládnutí tím nejpatrnějším výsledkem objektového přístupu k webu (protože mám pocit, že mluvíte právě o tom), pak je mi to líto.
Věda má v sobě určitou zpupnost, že čím dokonalejší techniku vyvineme, čím více se dozvíme, tím lepší budou naše životy.
24.2.2007 12:56 Creckx | skóre: 23 | blog: cxblog | Lanškroun
Rozbalit Rozbalit vše Re: Cesta
No to sem.. několik let programování pro web mě k tomu dohnalo. Reusability možná není patentem OOP, ale je to pro mě nejjednoduší cesta jak toho dosáhnout. Tady nejde o nějaké CRUD, to je to poslední co pyweb řeší, jde o to, že i 2 na oko rozdílné weby mají prakticky stejný základ a když já mám napsaný základ tak se můžu soustředit na odlišnosti. Pyweb je sada objektů, které se snaží být co nejpružnější. Je mi jasné, že to nepokryje vše, ale pokryje to to s čim jsem se několik hodin celé minulé prázdniny dělal.
Můj blog Pokud máte taky blog, můžeme vyměnit odkazy :)
24.2.2007 12:57 Creckx | skóre: 23 | blog: cxblog | Lanškroun
Rozbalit Rozbalit vše Re: Cesta
*... několik hodin denně ...
Můj blog Pokud máte taky blog, můžeme vyměnit odkazy :)
24.2.2007 13:23 Jiří (BoodOk) Kadeřávek | skóre: 19 | blog: BoodOk | Brno
Rozbalit Rozbalit vše Re: Cesta
OK, já chtěl jen naznačit, že objekty nejsou jediná cesta a že se jejich význam mnohdy přeceňuje. Myslím se, že je výborné, že něco takového vytváříš, třeba to bude obsahovat několik originálních myšlenek a přesvědčíš mne více.
Věda má v sobě určitou zpupnost, že čím dokonalejší techniku vyvineme, čím více se dozvíme, tím lepší budou naše životy.
24.2.2007 13:31 Creckx | skóre: 23 | blog: cxblog | Lanškroun
Rozbalit Rozbalit vše Re: Cesta
To jsem doufám nikde netvrdil. Já píšu spoustu věcí neobjektově, ale když se to hodí (jako že tady jo) tak to použiju. Jestli máš zájem tak ti to pošlu.. napiš na cx@jabber.cz
Můj blog Pokud máte taky blog, můžeme vyměnit odkazy :)
Ale je pravda, ze jsi se v podstate orientoval hlavne na reseni otravneho problemu s CRUD. Web ti to vygeneruje, ale jak resis kdyz uzivatel potrebuje nad daty provadet vlastni nestandartni operace nebo kdyz clovek potrebuje dalsi dynamicke prvky rozesete po webu? Dopisuje se to tam pak rucne nebo se to uvede nekde v konfiguraku a vygeneruje se to k tomu podle toho, jak to clovek napise? ...to uz by ses totiz trochu drbal pravou rukou za levym uchem :-)

Otazka taky je, jestli tam tu logiku od prezentace mas oddelenou. Generuje to obycejna PSPcka nebo pouzivas publisher nebo mas vlastni handler?
FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."
24.2.2007 13:09 Creckx | skóre: 23 | blog: cxblog | Lanškroun
Rozbalit Rozbalit vše Re: Cesta
Jak jsem psal výše, nemůžu podchytnout vše. Jde o to co uživatel potřebuje, pyweb je schopen kombinovat několik tabulek, je schopen převádět hodnoty na jiné hodnoty. Je založen na mých několikaletých zkušenostech a opravdu jsem sesnažil, aby byl co nejvíc nápomocný. Co se týče oddělení od logiky a prezentace tak si přečti část o balíčcích. Tu poslední otázku nevim jak přesně myslíš.
Můj blog Pokud máte taky blog, můžeme vyměnit odkazy :)
No jestli jsem to spravne pochopil, mas balicky s prezentacni vrstvou, ktere Pyweb vezme, prospikuje je business logikou a vytvori nejakou tu kostru aplikace. Me by ale zajimalo, jestli je logika od prezentace oddelena i v tom, co se vygeneruje. Protoze pak tu aplikaci dale rozvijet, kdyz je v ni gulas logiky a prezentace, to by me nebavilo.

Posledni otazka byla na to, ktery styl fungovani mod_pythonu budes pouzivat (tedy pro jaky setup je vygenerovany web pripraveny). Jestli klasicke Python Server Pages (michani vseho dohromady) nebo publisher handler s PSP sablonami (to asi ne, jak jsem pochopil ;-) ) nebo jestli mas na obhospodareni aplikace vlastni handler (coz je suverenne nejflexibilnejsi, ale obcas overhead).
FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."
24.2.2007 14:27 Creckx | skóre: 23 | blog: cxblog | Lanškroun
Rozbalit Rozbalit vše Re: Cesta

Ty myslíš na úrovni toho generátoru? No těch pár značek je namíchanejch v metodách gen() v každym objektu co něco vyflushává. Ono jich zas tolik neni, takže nemá smysl to oddělovat.

Teď nevím jestli si mě pochopil. Generátor negeneruje celý web, ale jenom část, která je zrovna vyžadovaná. Tedy vrací pouze jednu XHTML stránku. Ke zpracování dat z apache používám handler.

Můj blog Pokud máte taky blog, můžeme vyměnit odkazy :)
Mimochodem, pro myslis, ze system sablon obchazi objektovost webu? :-)
FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."
24.2.2007 13:16 Creckx | skóre: 23 | blog: cxblog | Lanškroun
Rozbalit Rozbalit vše Re: Cesta
Protože šablona je a vždycky bude jeden nepraktický objekt. Sama se o sebe nikdy nepostará, potřebuje k tomu další kupu kódu, aby vůbec vypadala jako web a pak do ní ještě strkat nějakým způsobem data.
Můj blog Pokud máte taky blog, můžeme vyměnit odkazy :)
24.2.2007 17:19 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Cesta
budu trochu hnidopich...za sablonu lze povazovat tridu ze ktere nejde dedit (kafickari - final, c-kriminalnici sealed) s jasne definovanym rozhranim (vstupy jsou hodnoty co tam lezou a vystup nejake to sesrotovane html)... neni potreba aby to byl jediny objekt (i kdyz ortodoxni objektari budou tvrdit, ze trida je taky objekt ;])

a kdyz jsme u toho, sablona vlastne nemusi byt ani trida... ale treba funkce ... protoze cely svet je jedna velka lambda ;-]
(define hello-template (lambda (jmeno)
`(html (body (h1 "Hello world") (p ,jmeno))))

(define (hello-controler (request template)
   (let ((jmeno (get-name request)))
       ....... some other logic  .......
        (template jmeno))

(hello-controler request hello-template)
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
24.2.2007 01:17 Jiří (BoodOk) Kadeřávek | skóre: 19 | blog: BoodOk | Brno
Rozbalit Rozbalit vše Re: Cesta
Jo jo. Tuhle mám objekt a po něm dedí tenhle objekt, který umí list a tenhle form a tenhle .... tuhle mám data, tahle funkce je transformuje takto a tahle takto, ta vygeneruje form, ta list. Skutečně je na web zapotřebí těchhle objektových onanií? Nemělo by to být spíše data, kód, prezentační vrstva a piště si to v čem chcete? Problém webu je oddělení HTML od kódu. Pokud toto dokážete, dostanete View (HTML). A pokud kód umíte rozseknout na klient-server, dostanete Controller a Model. Dle mého dostačující. A jestli to zpracovávám strurovaným jazykem, objektovým jazykem je ale úplně jedno.
Věda má v sobě určitou zpupnost, že čím dokonalejší techniku vyvineme, čím více se dozvíme, tím lepší budou naše životy.
24.2.2007 08:47 s0 | skóre: 32 | blog: nejchytřejší kecy | prágl
Rozbalit Rozbalit vše Re: Cesta
Odpovědět | Sbalit | Link | Blokovat | Admin
tu mám Zope a tu Django. V ušetřeném čase mohu popíjet piviště a chvástavě se chvástat :)))
Kuolema Kaikille (Paitsi Meille).
24.2.2007 10:20 -ml-
Rozbalit Rozbalit vše Re: Cesta
Odpovědět | Sbalit | Link | Blokovat | Admin
Nechci rypat, ale kdyz uz neco nekam pisu, tak by neskodilo se naucit aspon zaklady cestiny... Protoze tech gramatickych veci co primo biji do oci (typu byli/byly) je v clanku opravdu kopec... Zbytecne to snizuje hodnotu jinak po obsahove strance kvalitniho clanku :-( A hlavne se to opravdeu spatne cte, kdyz za kazdou patou vetou je takovahle bota :-)
24.2.2007 13:17 Creckx | skóre: 23 | blog: cxblog | Lanškroun
Rozbalit Rozbalit vše Re: Cesta
Za chyby se omlouvám, na češtinu jsem nikdy nebyl :(
Můj blog Pokud máte taky blog, můžeme vyměnit odkazy :)
24.2.2007 21:28 botanicus | blog: Botanicusovi povzdechy | Prachatice
Rozbalit Rozbalit vše Re: Cesta
Odpovědět | Sbalit | Link | Blokovat | Admin
No tak botanicus se tedy ozyva ... jasne, i ma cast pywebu (psana v Ruby, aby se to nepletlo :D ) bude OSS ... pracuje se na ni a nemit problemy s dementskym Apachem, tak uz to mohlo davno bejt ...
... mam chut na jablicka ;)
Copak je za problem s Apachem? Nekamaradi se s Ruby? :-)
FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.