Site Meter
Acceder:
Basado en Elgg

Roberto Morales

Blog :: Roberto Morales

como todo curioso o quiza por la calidad de version Beta de Google Chrome me vienen sucediendo algunas cosas interesantes con algunos usuarios.

no se si les paso pero a mi si y en estos dias de prueba frecuentemente sobre todo cuando escriben un correo largo y la verdad cada cual tiene 2 GB de RAM en la portable problema de memoria no es, no me explico si hacen lo que todos los dias; escribir algunos correos.

les adjunto una imagen :-/

fallo Google Chrome

la verdad ya da miedo y les digo graben despues de cada parrafo :D sino Firefox nomas :)

solo como anecdota.

 

Palabras clave: Beta Google Chrome

Enviado por Roberto Morales | 2 Comentario (s)

Hace unos añitos atrás (mas o menos 7) en un congreso del ISTEC visitamos la Universidad de Campinas (UNICAMP), dicha visita la coordinamos con antelacion con Rubens Queiroz de Almeida todo un personaje ligado al Software Libre en Brasil, entonces el era el coordinador del Centro de Computo de la UNICAMP nos mostraron algunos de sus sistemas desarrollados en ese entonces todo usando herramientas de software libre aqui el resumen de ellas http://www.softwarelivre.unicamp.br/SoftwareLivre

vimos muchas cosas super interesantes, pero sobre todo ver al software libre en su auge institucional hablo de hace 7 años atras imaginen ahora, bueno una de las cosas que mas resalto para mi en esa oportunidad fue RAU-TU aqui su enlace http://www.softwarelivre.unicamp.br/SoftwareLivre/rau-tu-perguntas-e-respos

una herramienta para mantener una base de conocimiento y cooperar entre usuarios,  el mismo se puede aplicar a cualquier area del conocimiento o tematic, ¿que diferencia esta herramienta de cualquier otro sistema de foros? es que hay un sistema de meritocracia que destaca a los colaboradores con mas apoyos de exito, manejo de tickets, gestar una base de conocimiento bien ordenada y a la ves ayudarnos como simples usuarios en otros topicos de la temática.

aqui algunos sitios RAU-TU de preguntas respuestas sobre Debian http://rautu.cipsga.org.br/ aqui otro sobre Open Office http://www.rau-tu.unicamp.br/openoffice/ y esta este sobre GNU/Linux http://www.rau-tu.unicamp.br/linux/ y los hay sobre otras areas del conocimiento.

el uso mas impactante involucro la misma idea la cual fue portada a J2EE por un proyecto de Computacion paralela de la Universidad de Sao Paulo (USP) para desplegarlos sobre un cluster de computadoras  por la demanda de usuarios concurrentes, eso fue implementado en http://www.oncopediatria.org.br/ que engloba a una red de mas de 70mil medicos gestando una base de conocimiento respecto de la "diagnosis temprana" del Cancer Infantil.

imaginen un buen numero de los 70mil Oncologos apoyando (compitiendo) en la diagnosis temprana o otros tantos medicos no especialistas en todo el territorio Brasilero, alimentando una base de conocimientos.

Lei 8080 - Servicio Único de Saúde http://www.oncopediatria.org.br/portal/artigos/pais/conheca_direitos/su

el cancer en niños es el mas elevado y es una de las causas de mayor martalidad infantil en Brasil.

ya van años de esta visita y en los foros de SLOB veia un mensaje que decia "Ayudaaaaaaaaaa!!!", sera esta una oportunidad de aplicar RAU-TU, yo se que no salvaremos niños del cancer pero podemos ayudar en aquello que nos gusta hacer.

es solo una idea ¿que opinan? ¿se podra implementar?

Palabras clave: Ayuda, Colaborativo, Cooperativo, Preguntas, Respuestas

Enviado por Roberto Morales | 3 Comentario (s)

El otro dia discutiamos con algunos compañeros del equipo de la conveniencia de seguir liberando codigo.

A colacion tambien vino infaltablemente la discusion sobre el modelo de negocios del Software Libre y el desafio "¿como liberar software libre y sobrevivir en el intento?", la contrapregunta era innegable ¿a que le tienes miedo?

lo  claro es que este es un cambio de cultura, va mas alla de publicar un chiche o "hack" :D como le dicen ahora, compromete buena parte de tu esfuerzo por semanas y meses, una idea que se traduce en modelo y de repente todo es un aporte que ya no es tuyo sino de una comunidad.

Por decenas uno lee a noveles autodenominados "hackers" que hasta han cambiado los terminos tecnicos a la palabra programar :D y cada vez que uno lee esa tematica es sorprendente como una palabra puede cambiar todo y hacerlo parecer increiblemente complejo lo que hacen.

¿Cuanto codigo liberas? , no hablamos solamente de deliberar codigo para temas academicos sino de que lo que liberas es tu medio de vida? y cual sera el impacto pero bueno es ya parte de una nueva cultura que vives no solo frente a la computadora o frente a un ejemplito en un salon de clases, es know-how.

lo peor es que una vez te embarcas en este modelo de negocios, tienes que hacerlo hasta el final y una vez que te metetiste debes encontrar la forma en que llegue a la mayor cantidad de personas en la comunidad de software libre.

y bueno viene la penultima pregunta ¿donde lo libero? y te das cuenta que en el Pais no hay repositorios dedicados al tema y no solo hablo de hospedaje sino de herramientas que ayuden a generar comunidad donde todos aporten y no solo consuman y bien gracias.

Por ejemplo nosotros liberamos en http://chileforge.cl lo cual nos permite una cancha pequeña no por eso facil y donde nuestros productos son visibles a una comunidad enfocada en el desarrollo, ojo no queremos perdernos en Novell Forge o Source Forge, donde sabemos nadie nos veria y menos tropezaria con nuestros aportes por la inmensa cantidad de proyectos.

Luego solo resta preguntarse ¿valio la pena? bueno hasta el momento nuestro aportes marchan y tienen acogica  eso lo sabemos gracias a los correos que llegan, tenemos el segundo lugar en descargas y somos el primer grupo con mas proyectos liberados y en proceso de desarrollo.

¿Liberamos codigo si o no?

Palabras clave: liberar codigo

Enviado por Roberto Morales | 10 Comentario (s)

La pregunta es inmediata ¿para que tanto lio? ¿no es mejor hacer una aplicacion web y punto? y es que no toda la vida puedes depender de un Navegador, te limita al extremo, ejemplo controlar un biometrico, manejar una impresora financiera, manejar una impresora de alta velocidad, scannear y aplicar IRC sobre un formulario llenado a mano, etc pero todo conectado a Internet o al menos a tu Intranet, para eso hacemos tanto lio con las aplicaciones Internet standalone que se conectan consumiendo webservices para leer y escribir datos en un servidor.

Esta es una guia breve para probar la aplicacion de Webservices en ambiente Win32, estan basadas en informacion que encuentras en la documentacion de esos API's y bastante paciencia.

*** EN EL SERVIDOR ***

PYTHON
para el efecto puedes descargar e instalar Python de
    http://www.python.org/download/releases/2.5.2/
para Win32 directamente descarga
    http://www.python.org/ftp/python/2.5.2/python-2.5.2.msi

DOCUMENTACION PYTHON
Documentacion sobre el lenguaje Python sus curvas y contra curvas la encuentras en:
Thinking in Python en el enlace http://www.mindview.net/Books/TIPython
Dive Into Python http://www.diveintopython.org/ te recomiendo el pdf en Ingles es el mas completo que el que esta en castellano.

POSTGRESQL
Vamos a suponer que descargaste e instalaste PosgreSQL con el usuario postgres.

Configura el pg_hba.conf comentando la siguiente linea:
  #####host    all         all         127.0.0.1/32          md5
y adicionando:
  host    all         all         127.0.0.1/32          trust
si esto no va con tus politicas de seguridad configuralo de la manera que te sea mas optima.

Luego crea una base de datos con el nombre "mibase".

Con ayuda de psql crea la siguiente tabla
  create table ctc_contactos (
    id_contacto integer primary key not null,
    nombres text,
    paterno text,
    materno text
  );

Adiciona unos cuantos registros por ejemplo:
  insert into ctc_contactos values ('1', 'DALI ALEXANDER', 'APARICIO', 'TORREZ');
  insert into ctc_contactos values ('2', 'RENE PASTOR', 'MAMANI', 'FLORES');

[PyGreSQL]
Para conectar tu programa Python con PostgreSQL lo haremos con el API PyGreSQL, los paquetes para Win32 los encuentran en:
    ftp://ftp.pygresql.org/pub/distrib/PyGreSQL-3.8.1.win32-py2.4.
Su instalacion es bastante sencilla solo se debe correr el ejecutable.

Esta API tiene dos interfaces una la denominada "DB-API 2.0 compliant interface" provista por el modulo pgdb aqui en este enlace hay una breve referencia http://www.linuxjournal.com/article/2605 para el ejemplo utilizaremos el "classic PyGreSQL interface" provista por el modulo pg del cual podran ubicar una guia de referencia en http://www.pygresql.org/pg.html

Para ver que todo esta ok desde el menu de inicio correr "Python (command line)" o lo que es lo mismo el c:python25python.exe efectuamos una prueba ejecutando el siguiente codigo:
>>> import _pg
>>> db = _pg.connect(dbname='mibase', host='localhost', user='postgres')
>>> db.query("SELECT * FROM ctc_contactos")
id_contacto|nombres       |paterno |materno
-----------+--------------+--------+-------
1          |DALI ALEXANDER|APARICIO|TORREZ
2          |RENE PASTOR   |MAMANI  |FLORES
(2 rows)

Con todo esto sabemos que el Python con ayuda del PyGreSQL conecta con PostgreSQL en nuestro servidor.

WEBSERVICE
Son necesarios instalar primero el paquete PyXML http://pyxml.sourceforge.net/ y lo compilaremos ejecutando:
  setup.py build -c mingw32 install
como veran utiliza MinGW32 para compilar el paquete PyXML, si no tubieran MinGW32 lo pueden bajar de http://www.mingw.org/

Lo mismo con FPConst lo pueden bajar de http://pypi.python.org/pypi/fpconst el cual pueden compilar e instalar ejecutando:
  setup.py build
  setup.py install

Ahora si instalaremos la libreria SOAPpy la cual debemos bajarla de:
  http://pywebsvcs.sourceforge.net/
Yo intente con varias versiones y me daban errores al compilar la libreria __future__, al final me quede con la SOAPpy-0.11.1.zip aqui dejo el enlace http://downloads.sourceforge.net/pywebsvcs/SOAPpy-0.11.1.zip?modtime=107
Para compilarla lo mismo
  setup.py build
  setup.py install

--- servidor.py ---

import _pg
import SOAPpy

def hola():
  return "Hola, Mundo"

def listarcontactos():
  db = _pg.connect(dbname='mibase',host='localhost',user='postgres')
  contactos = db.query("SELECT * FROM ctc_contactos").dictresult()
  print contactos
  return contactos

def adios(nombre):
  return "Adios " + nombre + "!!!"

print
print "Servidor funcionando ..."
print "========================"
print

# no olviden verificar que el puerto este libre
# sino muevanlo al 8081 o 8082
server = SOAPpy.SOAPServer(("localhost", 8080))
#aqui se registra los 3 metodos
server.registerFunction(hola)
server.registerFunction(listarcontactos)
server.registerFunction(adios)

try:
  server.serve_forever()
except KeyboardInterrupt:
  pass


*** EN EL CLIENTE ***

En el cliente solo deben instalar el Python, PyXML, FPConst y el SOAPpy

--- cliente.py ---
import SOAPpy

print
print "CLIENTE WEBSERVICE"
print "=================="

try:
  server = SOAPpy.SOAPProxy("http://localhost:8080/")
  print
  print server.hola()

  contactos = server.listarcontactos()

  for t in range(len(contactos)):
    print contactos[t]["nombres"] + "t" + contactos[t]["paterno"] + "t" + contactos[t]["materno"]
   
  print server.adios("muchachos")
  print
 
except:
  print
  print "No hay conexion o la direccion no existe."
  print

CORRIENDO
Primero ejecuten el servidor.py y luego ejecuten el cliente.py

Esto no quiere decir de ningna forma que el servidor y/o el cliente deben estar escritos en Python, por el contrario abre la posibilidad de crear servidores y clientes en cualquier otro lenguaje y plataforma y consumir datos a traves de la web, dejamos en el tintero algunos importantes detalles de seguridad que considerar pero ello para estas pruebas no es indispensable.

CONCLUSIONES
Los caperuzos de GNU/Linux estoy seguro le meteran sin problemas, pero mas ganas le hecho a los win2ceros que quieren probar una plataforma ligera que disponibiliza y consume webservices en Python sobre Win32.

Deben faltar alguno que otro detalle, espero pulirlo y con suerte tratar de aplicar el articulo a la revista ATIX :) si hay dudas o inconvenientes solo escriban, probe cada paso a mano :D quiza se haya escapado uno que otro detalle en la transcripcion pero verifique que cada paquete y API sea el adecuado para llevarlo a ambiente de pruebas sin perder el tiempo.

Desestime algunas versiones de algunos paquetes para evitar las idas y vueltas, pero sientanse en la libertad de probar otros caminos, espero lo disfruten yo lo hice y bastante :)

 

Palabras clave: PyGreSQL, Python, PyXML, SOAPpy, Webservices

Enviado por Roberto Morales | 7 Comentario (s)

Amigos