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

Komentarji

  • napsy Član Ubuntu.si
    http://koda7.com/dokuwiki/doku.php

    tu je še pa en koristen wiki kako začet
  • napsy Član Ubuntu.si
    Takšen je pa trenutni izgled:

    image
  • Cube Član Ubuntu.si
    page mas down... sm ze zadnic hotu pogledat enga od tvojih projektov pa mas in napotnik.info in koda7.com down :)
    drgac pa zanimiv projekt, bi mogoce dau kako roko zraven, ce bom meu kaj casa v prihodnje...

    lp,cube
  • napsy Član Ubuntu.si
    Um ja do petka ni serverja. Če pa še koga zanimajo podrobnosti ali pa koda, lahko priskrbim
  • napsy Član Ubuntu.si
    To je pa še novejši screenshot z opisom vmesnika:

    image
  • napsy Član Ubuntu.si
    Torej zgodilo se je marsikaj. Projekt je dobil novo ime in novo obliko. Sedaj je znan kot Teuthida. Posnetek programa v akciji si pa lahko skopirate iz linka http://www.filedropper.com/2501/out
  • napsy Član Ubuntu.si
    No piko na i je pa sedaj naredil še sourceforge.net gostovanje projekta

    Domača stran: http://teuthida.sourceforge.net/index.html
    SF.net stran: https://sourceforge.net/projects/teuthida/
  • napsy Član Ubuntu.si
    Da malo pokažem napredek. Fotka iz najnovejšega builda:

    image
  • napsy Član Ubuntu.si
    In pripravil sem še 7 mega velik OGG posnetek ki razkaže vse trenutne zmožnosti Teuthide:
    http://www.mediafire.com/?bgmjmjvt9ng
  • napsy Član Ubuntu.si
    Da malo posodobim ta thread. Takšen je trenutni izgled Teuthide v akciji:
    image
  • sweet
  • Je to še vedno aktualno?

    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.
  • napsy Član Ubuntu.si
    Noja nekako nisem našel ljudi, ki bi bili pripravljeni priskočit na pomoč. Ker mi pa je zmankal prostega časa pa projekt trenutno počiva. Vendar nameravam nadaljevati čim prej. Nekatere stvari bodo ponovno spisane. Posebej nalaganje predmetov.

    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š?
  • Knjižnica ni splošno dosegljiva, ker je bila napisana za MAN Investments za modeliranje struktur skladov. Poudarek je bil na:
    - 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.
  • napsy Član Ubuntu.si
    Res hudo premišljeno. No ta moja teuthida še zdaleč ni tako advanced. To sm prvič delu kj v smislu WYSIWYG in kokr vidim se dajo stvari narediti veliko boljše. Sicer je dia dovolj za preproste diagrame. Vseeno pa pogrešam nek opensource visio-like orodje za linux. Zaradi tega sm se tudi spravu delat to.

    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.
  • napsy Član Ubuntu.si
    No sedaj sem začel iz ničle. In imam bolj objektno zgradbo. Trenutno kodo lahko vidite na strani http://github.com/napsy/teuthida/tree/master ali pa si jo potegnete preko git:
    git clone git://github.com/napsy/teuthida.git
Za komentiranje se prijavite ali pa se vpišite.