iščejo se prostovoljci za programiranje
napsy
Član Ubuntu.si
Jaz in moj projekt, imenovan WON potrebujema sveže meso. Iščem programerje, ki bi želeli sodelovati pri razvoju odprtokodnem CASE orodju za Linux z uporabo GTK+ knjižnice in jezikom C.
Natančneje se gre za orodje, ki je zmožen ustvarjati diagrame. Glavni namen je soustvarjanje diagramov preko varne omrežne povezave. Tako lahko več uporabnikov hkrati dela na neki risalni tabli (aka whiteboard). Risanje je omogočeno preko vektorske knjižnice cairo. Za varno povezavo poskrbi TLS.
Še več pa pove naslednji OGG filmček: http://www.mediafire.com/?azejidt1sy7
Ali pa če koga zanima C omrežno programiranje, lahko pomaga pri pisanju WON strežnika.
Pripravlja se še SVN repozitorij za objavo kode.
Kandidati se lahko javijo kar tukaj ali pa mi pošljenjo mail na luka _dot_ napotnik _at_ gmail _dot_ com
Natančneje se gre za orodje, ki je zmožen ustvarjati diagrame. Glavni namen je soustvarjanje diagramov preko varne omrežne povezave. Tako lahko več uporabnikov hkrati dela na neki risalni tabli (aka whiteboard). Risanje je omogočeno preko vektorske knjižnice cairo. Za varno povezavo poskrbi TLS.
Še več pa pove naslednji OGG filmček: http://www.mediafire.com/?azejidt1sy7
Ali pa če koga zanima C omrežno programiranje, lahko pomaga pri pisanju WON strežnika.
Pripravlja se še SVN repozitorij za objavo kode.
Kandidati se lahko javijo kar tukaj ali pa mi pošljenjo mail na luka _dot_ napotnik _at_ gmail _dot_ com
Komentarji
tu je še pa en koristen wiki kako začet
drgac pa zanimiv projekt, bi mogoce dau kako roko zraven, ce bom meu kaj casa v prihodnje...
lp,cube
Domača stran: http://teuthida.sourceforge.net/index.html
SF.net stran: https://sourceforge.net/projects/teuthida/
http://www.mediafire.com/?bgmjmjvt9ng
Pred štirimi leti sem razvil knjižnico Vision, ki je precej naprednejša od Teuthide. Bi me zanimalo zadevo združiti z Teuthide in prenesti v C++/Ubuntu okolje (že nekaj let me me čaka druga diploma za napisat in tole bi bil zanimiv izziv, povrhu pa bi se lahko naučil automake/autoconf in drugih orodij, za katera nekako nikoli ni bilo priložnosti, pa so "a must" za unix okolje).
Ne bi pa se tega lotil v C-ju, ker so diagramske aplikacije pisane na kožo objektno orientiranim jezikom.
tstih, tudi v c-ju se da pisat objektno orientirano Poglej si knjižnico GObject. To je nekakšnen object system za c, kjer preko c APIja manipuliraš s strukturo kot da bi mel previ objekt, ki je še bolj napreden od tistih v C++. Na primer objekt od GObject pozna dedovanje, skrite in javne člane, signale, lastnosti, memory management.
Sicer me C++ ne pritegne in se mi zdi koda zelo grda. Da ne začnem z outputom od g++ če je kakšna napaka v kodi
A je tvoja knjižnica kje dosegljiva? Lahko kaj več poveš?
- WYSIWYG,
- preprosto dodajanje novih objektov,
- zelo lepo strukturirani objekti.
V osnovi (po spominu, imam nekje shranjene objektne modele) je bila zadeva zelo preprosta. Imel sem objekt Figure, ki se je znal narisati. Imel sem objekt Page. Ki je lahko vseboval objekte Figure. Za like sem izpeljeval iz Figure. Npr. LineFigure, RectangleFigure, TextFigure. To je bil statični del objektnega modela. Ko si želel zadevo zrisati si samo pogledal kaj je v clipping region in naredi for each figure in clipping region call figure.draw().
Nato pa sem na objekt Figure pripel objekt Editor, ki je znal spreminjati njegove lastnosti (properties) in je bil dinamičen. Editor je imel več objektov tipa Handle (to so tisti majhni kvadratki okoli lika, ki ga premikaš). Če si naredil nov objekt iz Figure, si naredil tudi nov Editor zanj. Npr. LineFigure je imel LineEditor, EllipseFigure je imel EllipseEditor. LineEditor je imel 2x Handle (začetek in konec). Če si spremenil pozicijo od Handle je Editor točno vedel, katere lastnosti objekta Line mora spremeniti, da se le ta odzove. Spremenil jih je in ponovno zrisal del risbe. Editor je imel tudi objekte tipa Trap, to so bili objekti odkoder in iz koder so vodile povezave. Dva objekta sta imela lahko ogljišča v isti pasti. Če si premaknil en editor je le ta sprožil pasti, te pa so drugim editorjem sporočile, naj se popravijo. Tako si povezal 2x Rectangle z Line in je premik enega popravil tudi povezavo med njima.
Zadnji zanimiv objekt je bil Tool. Če je koncept Figure-Editor poskrbel za to, da je imel Editor znanje odgovoriti na spremembe pozicij svojih Handles s spremembo pozicij Figure, pa je bil Tool tisti, ki je določal, kako se bo interpretiral kakšen premik ali akcija miške. Npr, ko si kliknil nekam na zaslon je engine izbral ustrezen Tool. Če si kliknil na prazno je izbral SelectionTool. Če si kliknil na Handle je izbral MoveOrSelect tool. Zgodil se je capture in vse bodoče akcije miške je potem pošiljal temu Toolu. Le ta pa se je seveda ustrezno odzval. SelectionTool je na premike miške risal črtkasti kvadrat. Ko si miško spustil pa je preveril kateri liki so znotraj črtkastega kvadrata in njihov Editor.Selected flag postavil na true. Če je bil aktiven PlacementTool pa je na MouseRelease postavil nov lik na mesto, kjer je bila miška izpuščena,
Dodajanje novih lastnosti, oblike ali obnašanja diagramu je bilo tako zreducirano na nov Tool, Figure ali Editor objekt za ta lik. Če si bil zadovoljen z obstoječo funkcionalnostjo (npr. krog potrebuje iste lastnosti, kot kvadrat) pa si izpeljal samo nov Figure objekt in mu dodelil kar SquareEditor.
Stvar je nekako prišla do stopnje, ko je znala vse, kar zna Visio (seveda nisem imel izrisanih toliko likov) in tam sem zaključil. Bi znalo biti dosti bolj uporabno, kot npr. kakšna Dia.
Teuthida ma preprosto en glavni canvas, ki vsebuje seznam predmetov, ki se morajo izrisat. in ob vsakem expose eventu se iterira skoz seznam in se stvari izrisujejo po vrsti. Ko se zgodi click event se preveri, če kakšen element naleti na dobljene X,Y koordinate. Predmeti so pa shranjeni v strukturi, kjer je seznam XY koordinat črt, ki bojo sestavljale predmet. Koordinate se pa preberejo iz SVG slike, ki je podana kot zunanja datoteka. Če se spremeni velikost ali položaj predmeta, se zupdejtajo vrednosti v strukturi predmeta.