Algunas pistas para la creación de aplicaciones móviles basadas en jquery mobile y android
Presentación
Link de Interés
Charla dada en Mérida en el marco de PyTatuy 10:2012
Es este artículo explicaré la forma de administrar puntos de interés en una capa de OSM con GeoDjango de una manera sencilla desde el admin de Django.
Instalación de Geodjango
Paso 1
Instalar postgreSQL, GIS y algunos programas básicos necesarios necesarios
sudo apt-get install binutils gdal-bin postgresql-9.1-postgis postgresql-server-dev-9.1 python-psycopg2 python-setuptools
sudo apt-get install python-virtualenv
sudo apt-get install python-dev
Leer mas »

La comunidad de Python Mérida le invita a
PyTatuy 10:2012 Encuentro de desarrolladores de Python en Mérida
Tendrá lugar en la Biblioteca del Centro de Investigaciones de Astronomía (CIDA), el 30/10/2012 entre las 08:00am y 01:00pm
El encuentro contará con las siguientes ponencias:
-
Python en el Mundo Real por Facundo Batista (Argentina)
-
Mensajería de Colas con ZeroMQ y Python por Ernesto Crespo
-
Gestión de Mapas en Línea con Geodjango por J. Hernán Ramírez R
Al final de las ponencias haremos algunas pruebas con geodjango, asi que puedes traer tu laptop con Django, Geodjango y PostGIS instalado.
Mapa:
View Larger Map
23 octubre 2012 en
General |
Sin Comentarios
Me ha llamado la atención la generación de mapas en 3d. Investigando un poco encontré estas herramientas:
Que me permitieron hacer una sección del mapa OSM de Mérida:

Leer mas »
Hola Pythonistas
Ante todo un cordial saludo
La presente es para invitarles al World Plone Day Venezuela 2012, es un evento que busca promover la adopción de tecnologías basadas en Python, Plone, Django y compartir casos de uso reales exitosos de adopción Plone como un solución informática empresarial en el ámbito de gestión y publicación de contenido en el sector académico, ONG, privado y publico entre otros.
En esta oportunidad tendremos una charla llamada “Desarrollo de sistemas de publicación de noticias y contenidos multimedia Web para Medios de Comunicación con Plone en la cadena de noticias teleSUR” que exponen las experiencias de integración de Plone con sistemas de gestión de vídeos Django vía API con JSON.
Por eso les escribo esta invitación tal ves le sea de interés conocer experiencias como esta
Leer mas »
El 27 y 28 de Abril de este año estuve participando en el 8vo Congreso Nacional de Software Libre Capítulo Mérida.
Les publico algunas de mis notas:
Leer mas »
29 abril 2012 en
General |
2 Comentarios
En el blog de BeAsTiEuX, encontré algunas buenas prácticas para el uso de funciones y procedimientos con PostgreSQL, pero el link de la estructura de la base de datos esta roto y había que hacer dos cositas adicionales para que todo funcione.
Descarga la Estructura de la Base de datos
Descomprima la estructura de la base de datos
$ gunzip dbadmin.sql.gz
Crea la base de datos
$ createdb dbadmision
Importe la estructura
$ psql -d dbadmision -f dbadmin.sql
Crea el lenguaje PL/pgSQL a la base de datos
$ createlang -d dbadmision plpgsql
Ahora ya puedes ejecutar sin problemas el post BeAsTiEuX
En la parte 1 habíamos realizado la parte básica elemental para programar el Arduino, un simple led blink.
Ahora haremos un control con una interfaz pyQT, python, pyserial y arduino.
Software que necesitamos:
- QT 4 Designer
- Python y pyserial
- QT4 para phyton
- Un Arduino
- Un Led
Si usan linux debian o derivados pueden instalar el software con el siguiente comando:
sudo aptitude install qt4-dev-tools python python-qt4 qt4-designer qt4-doc python-qt4-doc python-serial
Programanado el Arduino:
Debemos programar el Arduino para que pueda recibir ordenes desde el puerto Serial.
int ledPin = 13; // Se asigna el pin13 al led
int val = 0; // variable for reading the pin status
char msg = ' '; // variable to hold data from serial
void setup() {
pinMode(ledPin, OUTPUT); // declare LED as output
Serial.begin(9600);
Serial.print("Program Initiated\n");
}
void loop(){
// Mientras se recibe data es asignado amsg
while (Serial.available()>0){
msg=Serial.read();
}
// LED on/off si recibe 'Y'/'N' desde el puerto serial
if (msg=='Y') {
digitalWrite(ledPin, HIGH); // Enciende el Led
Serial.print("LED encendido\n");
msg=' ';
} else if (msg=='N') {
digitalWrite(ledPin, LOW); // Apara el Led
Serial.print("LED apagado\n");
msg=' ';
}
}
Recordemos colocar el led en el ardunino tal como se hizo en la primera parte:

Interfaz QT
Ahora debemos realizar la interfaz QT con qt-designer. La idea de la interfaz es tener un botón para encender y apagar el Led y un textBrowser para mostrar los eventos del puerto serial. Para esto hice un pequeño video:
http://www.youtube.com/watch?v=Qh2Wiv79wDY&feature=youtu.be
Después que se tiene la interfaz UI la transformamos para poder utilizarla con python, esto se realiza con el siguiente comando:
pyuic4 DialogoLed.ui -o DialogoLed_Ui.py
Para probar todo ejecutamos el programa run.py
#!/usr/bin/python
# -*- coding: iso-8859-3 -*-
import sys, time, serial
from PyQt4 import QtCore, QtGui
from DialogoLed_Ui import Ui_DialogoLed
# Variables Globales
class DialogoLed(QtGui.QMainWindow):
def __init__(self, parent=None):
super(DialogoLed, self).__init__(parent)
#QtGui.QWidget.__init__(self, parent)
self.ui = Ui_DialogoLed()
self.ui.setupUi(self)
self.stadoled01 = 0
self.arduino = serial.Serial('/dev/ttyUSB0', 9600)
txtArduino = self.arduino.readline()
txt = "Arduino> " +txtArduino
self.ui.textBrowser.append(txt)
#buttons
QtCore.QObject.connect(self.ui.pushButton,QtCore.SIGNAL("clicked()"), self.led01)
def led01(self):
if self.stadoled01==0:
self.stadoled01 = 1
self.ui.pushButton.setText('Apagar Led')
self.arduino.write('Y')
txtArduino = self.arduino.readline()
else:
self.stadoled01 = 0
self.ui.pushButton.setText ('Encender Led')
self.arduino.write('N')
txtArduino = self.arduino.readline()
txt = "Arduino> " +txtArduino
self.ui.textBrowser.append(txt)
def quit(self):
sys.exit(app.exec_())
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = DialogoLed()
myapp.show()
sys.exit(app.exec_())
Programa Funcionando:
http://www.youtube.com/watch?v=mldONoSQf9U
Descarga los programas: Archivos utilizados en esta entrada: Arduino_pyQT_python
La idea de las siguientes entradas refieren a tener un prototipo para desarrollar robótica básica en plataformas libres.
Necesitaremos es una computadora con un puerto USB y Linux (derivado de debian o RedHat) con el siguiente software:
- Qt Designer
- Python
- Arduino software
- Librerías gcc-avr avr-libc
- openjdk-6-jre o sun-java6-jre
- pyserial
A medida que avancemos indicaré que y cómo instalar
Además necesitaremos:
- 1 Arduino
- 1 protoboard
- 1 led RGB.
- 2 Servos
- Algunos sensores, como de temperatura (LM35) y Luz
- Resistencias
- Cables
- Un teléfono con Android
Aquí les muestro mis jugueticos:
Es un arduino diecimila, una arduino mega y un pequeño protoboard lo necesarios básico para nuestro prototipo de robótica básica.
Leer mas »