Hlavní navigace

Kořenový blog a představení projektů

8. 12. 2006 22:05 (aktualizováno) | almad

Tož jsem se rozhodl začít psát i sem na kořen, plánujíc podmnožinu mého diáře, která bude sloužit spíš coby informační zdroj o mých OSS projektech. Průměrného kořena (tedy, čtenáře root.cz) zcela jistě nezajímají moje ostatní kydy okolo vývoje, naopak můžu v marné naději sníti, že se někomu něco z následujícího zalíbí natolik, že se přidá ,)

Abych představil aspoň aktuální projekty, momentálně páchám následující (nějaké větší články o jednotlivých projektech snad sepíšu časem):

Czechtile

„Yet another wiki syntax“, která má dva důvody svého vzniku. Jednak je míněna pro české BFU, pročež se mi nelíbilo ani Texy!, druhak považuji za klíč použitelných stránek snadnou integraci, pročež potřebuji, aby syntax byla rozšiřitelná (a samostatná, nezávislá na engine). Nic takového jsem nenašel, tak mi nezbylo, než si napsat něco vlastního. Momentálně je Czechtile „jen“ sadou pravidel SneakyLangu (jiná implementace než Pythoní není známa), většinu „základních“ pravidel a čeká ho ještě dost práce (především jsme ani nevymysleli syntax pro tabulky, potom nejsou skoro žádné typografické vychytávky apod.), nicméně na základní texty už je použitelný.

SneakyLang

SneakyLang coby „wiki framework“ je honosný název pro pár tříd, které se snaží realizovat podivný nápad okolo czechtile, aby z toho nakonec vylezlo něco trochu jiného. Kažopádně, verze 0.1 je použitelná, avšak trpí porodními chybami, takže teď prochází poněkud drastičtějším refactoringem, ze kterého už snad vyleze něco trochu rozumnějšího.

Opět hadí projekt.

PyArticle

PyArticle je hadí wrapper okolo existujících nástrojů na konverzi textů na trase něco_příjemného_na_psaní → docbook → něco_příjemného_na_tisk/pre­zentaci/whatever. Běžnými uživateli může být použit coby pomalejší alternativa xmlto, která ovšem umí používat konfigurační soubory (takže lze například FOPu vpašovat onen otravný parametr -c /kde/je/ten/muj/userconfig.xml). Především je ovšem míněn pro Python vývojáře, co se nechtějí psát s těmi voláními na externí programy, konfigurací apod.

Verze 0.1 je s klidem použitelná, asi před půl rokem jsem udělal v SVN jakousi guerilla akci stran rozumné podpory verzování, ale pak jsem došel k tomu, že to buď nemá cenu, nebo musim vymyslet lepší API (nebo obojí), takže tohle prozatím usnulo. Bugy reportujte ,)

DBClass

Pseudo-ORM pro Firebird (ano, jiné databáze nejsou podporovány, protože je nepoužívám), tedy cosi snažící se mapovat třídní atributy na relační tabulky, ovšem s poněkud jiným přístupem, díky kterému to zřejmě bude většinou lidí zavrhováno ,)

ORM totiž často inklinují k tomu, že si reimplementují SQL do příslušného jazyka a autoři se pak cítí příjemně odstíněni od toho zlého jazyka, viz SQLAlchemy:

# find all users who have an address on Green street: SQLusers.select(     exists(         [addresses.c.address_id],          and_(             addresses.c.user_id==users.c.user_id,              addresses.c.street.like('%Green%')         )     ) ) 

Věřím, že pro lid s hrůzou vzpomínající na jakési relační věci z FELu je to uklidňující, ale já se SQL nebojím, takže mi to přijde spíše zmatečné.

Proto se DBClassa stará jen o nějaké to základní mapování (ze slovníku .data, nikoliv přímo z atributů, neb se mi s tímto mnohem lépe pracuje, snáz se nad tím iteruje a tak podobně) a především obstarává takové ty základní opruzy, typu schování mašinerie okolo kurzoru, connection poolu a pod. Nějaké advanced featury typu výše uvedené expression nečekejte, jeden z cílů také je, aby to bylo malé a rychlé ,)

Stále se nemohu přehoupnout přes x-tou betu, protože se pořád nemohu dokopat k implementaci plného CRUDu pro virtuální sloupce; DBClass používám skoro všude, ale zatím mi to nechybí tak zásadně, abych mě to donutilo si nad to na jedno dvě odpoledne sednout. Takže snad někdy :)

Tolik tedy úvod do úvodu, další informace čekejte, jak půjde volný čas a vývoj ;) Pokud by se někdo chtěl na něčem z výše uvedeného podílet, ať už vývojem, dokumentací či používáním, je vítán a ať se tu někde v komentářích ozve.