FlaPer87 - import freedom; print everything

  • galería de imagenes
  • presentaciones
  • proyectos
  • copyright
  • contacto
  • acerca de...

Google Adsense

User login

  • Request new password

Usando keywords con subversion y python

Submitted by flaper87 on Sun, 08/03/2008 - 13:41.

Para ser honesto me cansé de que se me olvide como hacer esto, espero que escribiéndolo en el blog me acuerde mas fácilmente (ya sabre donde buscar). Se trata de como asignar keywords a distintos archivos que se encuentran bajo control de versiones en algun proyecto o desarrollo o "X" que estemos llevando a cabo. Antes de decir como hacerlo es importante saber que son y para que sirven.

Las keywords son palabras claves que reconoce ( en este caso ) subversion y que son sustituidas automáticamente por este suministrando la información requerida en cada caso (Id, Revision, Date...). Las keywords nos sirven para suministrar información importante (para algunos, entre los cuales me incluyo) acerca del fichero en el que se esta trabajando. Algunas de estas informaciones pueden ser el Id del proyecto, la revisión en la que se encuentra o de la cual fue descargado dicho fichero, la fecha en la cual fue descargado o en la cual fue modificado por última vez. Ademas de suministrar importante información nos evitan tener que modificar fichero por fichero para actualizar esta información, lo cual es fabuloso para proyectos grandes.

Ahora bien, Como activamos estas fabulosas keywords. Supongamos que tenemos una copia de trabajo de un proyecto hecho en python y que en la carpeta raiz de dicho proyecto estan todos los archivos .py:

# cd /copia/de/trabajo

# svn propset svn:keywords "Id Revision Date" ./*.py

Con esto ya hemos habilitado las keywords para todos los ficheros .py que se encuentran en /copia/de/trabajo (No en las subcarpetas, OJO). Una vez activadas tenemos que incluirlas en nuestros ficheros de la siguiente manera (En mi caso suelo colocar esta cabecera en los ficheros de mis desarrollos):


# -*- coding: utf-8 -*-

#
#
# BLOQUE QUE CONTIENE LA LICENCIA
#
#

"""DESCRIPCIÓN DEL FICHERO """

__id__ = "$Id$"
__version__ = "$Revision$"
__date__ = "$Date$"
__copyright__ = "Copyright (c) 2008 Flavio Percoco Premoli"
__license__ = "GPLv2"

Como se puede apreciar las palabras claves van entre $$ ($Id$, $Revision$, $Date$) de esta manera subversion reconocerá fácilmente que palabras debe cambiar.

Este comando (svn propset svn:keywords........) debe ser ejecutado cada ves que un fichero es agregado o importado al control de versiones lo cual puede resultar fastidioso en muchos casos, para que subversion automáticamente agregue esta propiedad a los nuevos ficheros entonces se deberá modificar lo siguiente en el ~/.subversion/config:

$ vim ~/.subversion/config

Buscar la sección [miscellany] y descomentar la linea que contiene enable-auto-props = yes

Seguido a esto se deberá modificar la seccion [auto-props] y agregar lo siguiente:

*.py = svn:eol-style=native;svn:keywords=Id Revision Date

Esto hará que subversion agregue la propiedad de keywords a todos los ficheros .py que sean agregados o importados al proyecto.

Bueno, acá concluye el post, espero que les sirva a muchos y que a mi no se me vuelva a olvidar :D

Saludos a todos

  • GNU/Linux
  • keywords
  • linux
  • revisions
  • subversion
  • Subversion
  • flaper87's blog
  • Add new comment

Mousetra Users Manual v0.1

Submitted by flaper87 on Wed, 07/23/2008 - 14:19.

English:

It's ready the version 0.1 of the MouseTrap Users Manual. I encourage everyone to read it and give some feedback :) It can be read here [0]

Español:

Esta lista la versión 0.1 del Manual de Usuarios de Mousetrap, los animo a todos a leerla y a darme sus opiniones. La documentación puede ser encontrada acá [0]

Italiano:

È pronta la versione 0.1 della documentazione per utenti di MouseTrap. Invito a tutti a leggerla e darmi le vostre opinioni. Potete trovare la documentazione qua [0]

[0] http://mousetrap.flaper87.org/docs/

  • Accessibility
  • docbook
  • Docbook
  • documentation
  • GNU/Linux
  • manuals
  • mouseTrap
  • mouseTrap
  • users
  • flaper87's blog
  • Add new comment

Wordpress to Drupal

Submitted by flaper87 on Mon, 07/21/2008 - 11:41.

Saludos!!

  • Drupal
  • GNU/Linux
  • Web
  • wordpress
  • flaper87's blog
  • Add new comment
  • Read more

mouseTrap 0.2 release

Submitted by flaper87 on Tue, 07/15/2008 - 08:21.

Hi all!!

Yes! It's true, I'm releasing the mouseTrap version 0.2 so it can be downloaded by anyone.

What offers mouseTrap version 0.2:

* Complete control of the mouse pointer via webcam.

* Mouse Movements

* Mouse Clicks events ( left, double, drag/drop, middle, right... Scroll Up/Down coming in the coming revisions )

* Compatibility with other Assistive technologies ( MouseTweaks, GOK)

* Multi Desktop Manager application ( Tested with: Gnome, E17 and OpenBox W.M )

* Complete Documentation for developers ( using --enable-pydoc and --enable-doxygen for building it )

* more......

The Code:

It is written in python using OpenCV library, and can be browsed from:

http://mousetrap.flaper87.org/trac/

Or downloaded using the subversion repository:


svn checkout http://svn.flaper87.org/mousetrap mousetrap

Installation:

MouseTrap uses the autotools for the installation process, so it is as easy as doing:


$ ./autogen.sh && make

AS ROOT:

# make install

Suggestions:

Read the README file :D

Coming on future versions:

* Eye tracking

* More Stability

* Different clicking methods.

* mouseTrap Art ( Icons, Images ) ( Any help needed!! )

Well, I really hope you like it and I'll be waiting for your feedback ( please write me to: flaper87 [at] flaper87 [dot] org )

Thanks all

  • Accessibility
  • Accessibility
  • Anuncios
  • ArchLinux
  • control
  • Debian
  • English
  • Enlightenment
  • GNU/Linux
  • mouse
  • mouseTrap
  • mouseTrap
  • opencv
  • Ubuntu
  • webcam
  • Add new comment

Dibujando con MouseTrap / Drawing with mouseTrap / Disegnando con mouseTrap

Submitted by flaper87 on Mon, 07/14/2008 - 18:03.

Español:

Bueno acá dejo un vídeo realmente corto para demostrar el funcionamiento de mouseTrap con aplicaciones como OpenOffice Draw, el diseño que realizo es un simple cuadrado mostrando el uso del panel de click y específicamente el click Drag and Drop.

Disfrútenlo!!

English:

Well, Here's the video showing how to use mouseTrap for drawing in applications like OpenOffice Draw.The design is a simple square showing the use of the buttons click panel and specifically the Drag and Drop click method.

Enjoy!!

Italiano:

Ecco qua un piccolo video di come funziona mouseTrap con applicazioni stile OpenOffice Draw. Si fa vedere l'uso del panello di click e specificamente l'uso del click Drag and Drop.

Spero vi piaccia!!

Video: http://www.youtube.com/watch?v=_rjyEouT-Hw


  • accesibilidad
  • Accessibility
  • Accessibility
  • control
  • disabilities
  • English
  • GNU/Linux
  • mouse
  • mouseTrap
  • mouseTrap
  • opencv
  • opencv
  • video
  • Add new comment

mouseTrap First mouth click

Submitted by flaper87 on Mon, 06/09/2008 - 05:17.

Well Here's a short video showing the first mouseTrap mouth Click.

I hope you like it.

Acá les dejo un pequeño vídeo con el primer click ejecutado con mouseTrap.

Espero que les guste.

URL: http://www.youtube.com/watch?v=jfNRS1oSb34


  • Accessibility
  • Anuncios
  • ArchLinux
  • click
  • Debian
  • English
  • first
  • GNU/Linux
  • mouseTrap
  • mouseTrap
  • opencv
  • pointer
  • Python
  • Ubuntu
  • webcam
  • 4 comments

Communicating with our application using python and dbus

Submitted by flaper87 on Wed, 06/04/2008 - 10:32.

Hi!!

I've been programming the httpServer and the dbusServer for mouseTrap and I wanted to share how simple is communicate with our applications using dbus and its python bindings.

The piece of code we are interested in is this:

import dbus
import gobject
import dbus.service
from dbus.mainloop.glib import DBusGMainLoop

main_loop = DBusGMainLoop()
bus = dbus.SessionBus(mainloop=main_loop)

DBUS_NAME = "org.myApp"
DBUS_PATH = "/org/myApp"

class myAppdBus(dbus.service.Object):
    """
    Our dbus Class
    """

    def __init__( self ):
        """
        Starting the dbus service.
        """
        global bus
        bus_name = dbus.service.BusName(DBUS_NAME, bus=bus)
        dbus.service.Object.__init__(self, bus_name, DBUS_PATH)

    @dbus.service.method(DBUS_NAME)
    def do( self ):
        """
        Function to execute using dbus service
        """
        print "do function has been called using dbus service"


class myApp:

    def __init__(self):
        self.loop = gobject.MainLoop()
        d = myAppdBus()

    def start(self):
        self.loop.run()


if __name__ == '__main__':
    app = myApp()
    app.start()

It is a simple script with 2 classes. The main class called myApp will call the dbus class (myAppdBus) and will start the applications main loop. The second class (myAppdBus) is the dbus class, it starts the service and register the methods that can be called using dbus.

The script can be executed like this (in my case the name of the script is dbus_script.py):


$ python dbus_script.py

After running the script it is possible to execute the do function like this:


$ dbus-send --reply-timeout=30000 --print-reply --dest=org.myApp /org/myApp org.myApp.do

This last command will show us the information related to the call we just executed. The output is something like:

flaper87@r4-p17:~$ dbus-send --reply-timeout=30000 --print-reply --dest=org.myApp
/org/myApp org.myApp.do
method return sender=:1.6 -> dest=:1.7 reply_serial=2

Ass you can the classes are really simple and show an easy way to communicate with our applications using dbus. There are a lot of options a tweaks that can be implemented so it's all in you hands now.

Good Luck.

P.S: Quick post, isn't it? :P

  • communicating
  • dbus
  • English
  • mouseTrap
  • Python
  • Python
  • service
  • Add new comment

Goosh - Unofficial Google Shell

Submitted by flaper87 on Tue, 06/03/2008 - 07:18.

Saludos!!

Quisiera compartir una de las tantas cosas que se descubren en #archlinux-es, posiblemente muchos ya la conozcan pero yo no :P

Goosh, es una shell no oficial de google que nos permite ejecutar la mayoria de las acciones que normalmente llevamos a cabo con St. Google pero a través de una shell al estilo unix.

No los entretengo mas, acá les dejo el link: http://goosh.org/

Saludos

  • ArchLinux
  • busquedas
  • curiosidades
  • Debian
  • GNU/Linux
  • google
  • shell
  • Ubuntu
  • unix
  • Web
  • Web
  • 1 comment

Algunas Curiosidades de Google

Submitted by flaper87 on Fri, 05/30/2008 - 09:51.

  1. Su nombre es fruto de un error de pronunciación del término gúgol (Googol).
  2. Su extrema sencillez se debe a que sus fundadores sabían muy poco HTML.
  3. En sus inicios mucha gente pensaba que la web no estaba totalmente cargada por su simpleza (no era lo habitual en aquellos tiempos).
  4. El botón “Voy a tener suerte” hace perder millones a Google en publicidad (te lleva directamente a una web). Se mantiene porque sus fundadores aseguran que hace al buscador más agradable.
  5. Google tiene registradas direcciones parecidas, por si alguien se equivoca al escribirlas, tipo gogle.com, gooogle.com.
  6. Su slogan era Don´t Be Evil (no seas malvado).
  7. Durante el 11-S Google se encargo de realizar “cachés” de los principales medios de comunicación (evitando su colapso) y se redirigieron muchas búsquedas hacia las últimas noticias.
  8. Google es propietario del dominio 466453.com ( escribe Google en un SMS para saber porqué).
  9. En Google usan la regla 20/5 para sus proyectos. Si al menos un 20% de los usuarios necesita una función esta se incluye. Además si como mínimo un 5% la necesita la implementan en preferencias avanzadas.
  10. GMail estuvo en periodo de pruebas 2 años y medio. Concluyeron que había 6 tipos de usuario, y en función de eso desarrollaron las opciones de la aplicación.
  11. Nadie sabe con exactitud donde están sus datacenters. Este es un mapa no oficial.
  12. Antes se llamó BackRub.
  13. Google tiene una intranet llamada Moma con documentación técnica e información de sus más de 16.000 empleados.
  14. Sus empleados tienen disponible el 20% de su tiempo para pensar en nuevos proyectos. interesante no?
  15. La compañía tiene una regla sobre la comida. Ningún empleado puede estar a más de 100 pies de ella.
  16. Para determinados estrenos como “El Señor de los Anillos” o “Transformers” la empresa ha alquilado varios cines exclusivamente para sus empleados y acompañantes.
  17. Google también fue beta durante un tiempo.
  18. Cobraron un cheque de 100.000$ a nombre de Google Inc…¡cuando aún no existía! Tuvieron que fundarla para poder hacerlo efectivo.
  19. GooglePlex es el nombre de sus oficinas.
  20. Fue fundada oficialmente el 7 de Septiembre de 1998. ¡Aún no tiene ni 10 años!"
  • 20
  • curiosidades
  • curiosidades
  • google
  • secretos
  • Add new comment

Comenzando con OpenCV

Submitted by flaper87 on Fri, 05/30/2008 - 04:18.

OpenCv (Open Source Computer Vision Library) es una librería de funciones principalmente orientadas al procesamiento de imágenes en tiempo real.

En este post colocare un ejemplo de como utilizar OpenCV para realizar una simple captura y mostrarla en un frame.

import sys
from opencv import cv,highgui

if __name__ == '__main__':
    #Iniciamos la captura del device 0. Ej: /dev/video
    capture = highgui.cvCreateCameraCapture (0)

    # Revisamos que este Capturando.
    if not capture:
        print "Error Abriendo el device /dev/video0"
        sys.exit (1)

    # Creamos las ventanas necesarias.
    highgui.cvNamedWindow ("Ejemplo OpenCV", highgui.CV_WINDOW_AUTOSIZE)

    while 1:
        # Loop Infinito.

        # 1. Capturamos la imagen actual
        frame = highgui.cvQueryFrame (capture)

        # 1.1 Si no hay captura salimos.
        if frame is None:
            break

        # 2. Mostramos la imagen
        highgui.cvShowImage ("Ejemplo OpenCV", frame)

        # 3. Manejar Eventos. Esta función debe ser llamada periódicamente,
        # por eso esta dentro del loop
        c = highgui.cvWaitKey (10)

        #Revisamos si alguna tecla de nuestro interés fue presionada
        if c == '\x1b':
            # Esc fue presionado, Salimos.
            break

    cvDestroyWindow( "Ejemplo OpenCV" );

Como pueden apreciar los pasos son muy simples:

  1. Nos conectamos al device
  2. Comenzamos a capturar
  3. Mostramos la captura
  4. Capturamos teclas.
  5. Procesamos las capturas

Espero que les sirva como una pequeña introducción a opencv + python, seguire publicando otras formulas secretas :P para explicar pocas de las infinidades de cosas que se pueden hacer con esta combinacion :D

Feliz Día a todos!!

  • camaras
  • GNU/Linux
  • imagenes
  • opencv
  • opencv
  • procesamiento
  • Python
  • Python
  • 3 comments
1234567next ›last »
Syndicate content

Search



Blogroll

  • Blogroll
  • Other

Blogroll

  • Divilinux
  • MilMazz
  • ~redShadow~

Other

  • Netvibes
  • Lastfm
  • galería de imagenes
  • presentaciones
  • proyectos
  • copyright
  • contacto
  • acerca de...