Mostrando las entradas con la etiqueta memoria. Mostrar todas las entradas
Mostrando las entradas con la etiqueta memoria. Mostrar todas las entradas

jueves, diciembre 27, 2007

Rascase, a very simple tool

I've not talk much about Rascase here, but now i'm gonna explain some things where i am working on.

Rascase is mainly two things, the first one 'is my project degree to obtain my title degree of ingeniero ejecución en computación e informática (aka computer engineer)', and the second one 'is a simple CASE tool for linux to design Entity-Relationship models'.

Currently I am finishing the document to present it for corrections, these are made by a group of designed teachers (correctors teachers), they will return it to me on march (probably at the end of march), then a apply the corrections to the document and then wait for defend my project.
On the software side, rascase currently is less than a drawing program, still there is a lot of things hardcoded, but in february it must be functional tool, a really CASE tool.

Rascase will use the philosophy 'just to use', because the time don't let me develop a complete and powerfull tool like 'powerdesigner' is, but this will be just a stop on the road, i mean this will be just the first release (and i hope not the last to), my expectations are huge :)

A few thecnical details about the technologies involved in the development of the project:

  • The interface is designed using glade (3.4), the are some parts made by code, especially the canvas setup and a minor details.
  • The pattern design is MVC++, a MVC based pattern, defined by Ari Jaaksi (part of the development group of nokia internet tablet n770, n800, n810, and others things inside nokia)
  • The programming language is Python :)
  • Libraries used
    • PyGTK, nothing to say about this :P
    • PyODF, a python library to make documents with OpenDocument Format, i'm using it to generate the data dictionaries in ODT format
    • PyGoocanvas, the bindings of goocanvas, and this is a canvas library is based in cairo

  • The source code is managed using git, the great distributed version control system


A shot of the curently state of rascase, just a functional interface without logical code. (aka mockup of prototype :P)

viernes, octubre 26, 2007

Linus habla sobre git

A todas las personas que les interesa interiorizarse sobre los SCM (Source Code Management) les recomiendo ver la charla de que dio linus en google (en inglés of course :P)
Gracias a ese video pude entender la manera en que está configurado git para gestionar el kernel, ahora sé algunas utilidades que dá el DSCM versus un sistema centralizado.

el problema que me ha provocado es "que mierda uso para gestionar el código de mi proyecto de título" :(

SVN es simple, lo conozco y sería sencillo conseguir hosting para el código (linuxdiinf, sf.net, berlios, etc), PERO es molesto que los branchs sean globales y no se pueda hacer branches locales para trabajar, además que debes estar conectado para hacer los commits y otras operaciones

GIT es relativamente simple, pero no lo conozco, no sé en donde podría conseguir hosting para git

oh!, dear lazy web, conoces algún servicio de hosting de git? :P

viernes, octubre 05, 2007

Un repositorio de buenos papers

Hoy investigando acerca de los RDBMS para mi proyecto de título fui a dar al portal de la ACM y resultó ser un lugar increiblemente bueno y que debido a que se requiere un registro (gratuito y de pago) para acceder a los contenidos no aparece en los resultados del papá de los buscadores.

Les recomiendo que visiten el sitio y busquen temas que les interesen, por ejemplo yo me bajé "The Relational Model for Database Management" de Edgar Codd, además busqué por el topico 'case tools' y aparecienron muchos papers de todo tipo con información interesante, como por ejemplo Why are CASE tools not used?" de Juhani Iivari

Escuchando: Night Train from Back To The Future OST

miércoles, septiembre 19, 2007

Moviendo un cuadrado :P

Jugando con GooCanvas logre finalmente mover un elemento (item) sobre el canvas :)

video

Here is the code (python code, using pygoocanvas)


import goocanvas
import cairo
import gtk

def boton_presionado(item, target_item, event):
print "boton presionado"
fleur = gtk.gdk.Cursor(gtk.gdk.FLEUR)
canvas = item.get_canvas ()
canvas.pointer_grab(item,
gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.BUTTON_RELEASE_MASK,
fleur, event.time)
return True

def on_button_release(item, target, event):
canvas = item.get_canvas ()
canvas.pointer_ungrab(item, event.time)
return True

def on_enter_notify (item,target,event):
item.props.fill_color = "red"
return True

def on_leave_notify(item, target, event):
item.props.fill_color = "black"
return True

def on_motion(item, target, event):
canvas = item.get_canvas ()
change = False
if not event.state == gtk.gdk.BUTTON1_MASK:
return False

y = event.y
x = event.x
item.props.x = x - 5.0
item.props.y = y - 5.0

return True


def main():
window = gtk.Window();
window.set_title("titulo")
window.set_default_size(640,480)

window.connect("delete-event",gtk.main_quit)

scrolled_win = gtk.ScrolledWindow()
window.add(scrolled_win)

canvas = goocanvas.Canvas()
canvas.set_size_request(600,450)
canvas.set_bounds(0,0,1000,1000)

scrolled_win.add(canvas)

root = goocanvas.Group()

rect_item = goocanvas.Rect(parent=root,x=100, y=100,
width=200, height=100,
stroke_color="red", fill_color="blue",
line_width=5.0)

rect_item.connect("enter_notify_event", on_enter_notify)
rect_item.connect("leave_notify_event", on_leave_notify)
rect_item.connect("button_press_event", boton_presionado)
rect_item.connect("button_release_event", on_button_release)
rect_item.connect("motion_notify_event", on_motion)
#rect_item.connect("key_press_event",tecla_presionada)

text_item = goocanvas.Text(parent=root,text="Hello, World!",
x=250, y=150,
width=200, anchor=gtk.ANCHOR_SE,
fill_color="blue")

text_item.rotate(45, 300, 300)
canvas.set_root_item(root)

window.show_all()
gtk.main()

if __name__ == "__main__":
main()

nota: por desgracias los tabs se pierden en el blog, si alguien quiere el .py deje un comentario.