Entradas

Mostrando entradas de 2015

Y si python tuviese una gui como Microsoft WPF

Imagen
15-nov-2015

Hoy he comenzado un experimento para ver si conseguía cargar un archivo xml con la estructura de la ventana a generar y usar como framework PyQt4 sobre python.

Resultado:


De momento en fase 'muuuyyyy experimental'

Visual studio 2015 error de office

Para aquellos que quieran usar las librerias de interoperabilidad microsoft.office.interop.... deben instalar 

https://www.visualstudio.com/en-us/features/office-tools-vs.aspx

Para que tire con el visual studio community 2015.

Al parecer seguimos con los errores de compatibilidad. Y eso que no hemos llegado a Office 2016 y sus versiones solo cloud.

Ejemplo de uso de tabla en pyqt

He subido el codigo de ejemplo de como usar el QtableWidget en pyqt
https://github.com/arkadoel/AprendiendoPython/tree/master/tablaQT

Licencia Gen Source

Hoy os presento la primera licencia Gen Source
-
-

Apache + php5 + postgres 9.3

Para poder hacerlo usaremos la siguiente linea de instalcion.

sudo apt-get install apache2 postgresql php5 php5-pgsql libapache2-mod-auth-pgsql -y

Contribucion a Ubuntu-Mac-changer

Hoy he contribuido al código de una aplicación para ubuntu llamada ubuntu-mac-changer. El código que he añadido es para que la aplicación pueda usar interfaz QT4 en vez de swing.

Como habréis notado, la aplicación esta en java.

https://github.com/arkadoel/Ubuntu-Mac-Changer/tree/contrib


Comienzo OpenBascula

Hoy he comenzado el desarrollo de OpenBascula, un software para gestión del pesaje en garitas.

Uno de los elementos que quiero añadir es la licencia 'Gen source' del cual sorprendentemente no he hablado y que espero poder transmitir en próximas fechas.

De momento aqui os dejo el enlace al repositorio:
https://github.com/arkadoel/openbascula


Escribir Excel desde python

Hoy tocaba probar distintas formas de generar un archivo excel con extension .xlsx, desde python https://github.com/arkadoel/AprendiendoPython/commit/ce4738baff2f918747052710533335ce50ce9e01

25 de Junio de 2015

Cherrypy pruebas 2

Esta vez haciendo pruebas más profundas para ver su usabilidad https://github.com/arkadoel/AprendiendoPython/commit/db59fdc3651b80e768385ceade2e5e1760174793


22 de Junio de 2015

Siguiendo con cherrypy y pypandas

Como ya hice con anterioridad, toca seguir con cherrypy y un poco de pypandas https://github.com/arkadoel/AprendiendoPython/commit/474f039ffe2d5cb52e55a19d5cf2062afa105cf8

21 de Junio de 2015

PyPandas xlrd, contribuyendo con un pequeño cambio

Cuando lo estuve usando me dio un error y quise notificarlo a sus creadores. 
https://github.com/python-excel/xlrd/commit/66d7a23dc12d66872af6160ef70bf792855cb79c

xlrd es una librería de python para lectura de archivos de excel.

16-jun-2015

Algoritmo para toma de deciones

Imagen
Vagos y vagas del mundo. Que preferís ser esclavos de las decisiones de otros. Hoy os traigo un invento revolucionario, el algoritmo para toma de decisiones pyDecisions

Como funciona

Lo arrancas, te pedirá la pregunta que quieras responder y un nombre.

Resultado
https://github.com/arkadoel/pyDecisions





7 de junio de 2015

Instalar Windows Server 2012 con virtualbox

Si has intentando instalar Windows Server 2012 en una maquina virtual de Virtualbox te habrá dado un error del tipo 0x00000C4 para solucionar ese error simplemente has de poner unos parametros, via consola o terminal, al ejecutable VBoxManage

Para conocer cuales son tus maquinas virtuales:
VBoxManage list vms

y para remediarlo:
 VBoxManage setextradata <nombre> VBoxInternal/CPUM/CMPXCHG16B 1


Struts2 Variables de session

Hoy he estado probando las variables de sesión con struts 2. Llevaba una semana dándome la lata de que no funcionaba, pero debe de ser alguna configuración del otro proyecto que estaba haciendo.
Os dejo el codigo para que lo podais ver: https://github.com/arkadoel/Struts2-sessions


23 de Abril de 2015

Tuto: Struts 2 + Netbeans (Parte 2)

Imagen
Bienvenidos/as a la segunda parte de este tutorial, en la parte 1ya hicimos una primera aproximación ahora vamos al mancharnos las manos con ello.
Creando nuestra primera Action:
Como mencioné la vez pasada, ahora las clases Action y ActionForm se han unido simplemente en un solo objeto llamado ActionSupport. Para hacer uno nuevo damos boton derecho encima del proyecto y añadimos un nuevo Action (en la imagen aparece en cuarto lugar)
Por defecto podremos ver que nos aparece el constructor vacio y un metodo execute, este metodo es el que antaño veiamos en los ActionForm para recibir los eventos. _ _ Como vemos no hace falta que la clase herede de ningun lado, pero podremos hacer que herede de ActionSupport para que nos añada la posibilidad de usar unos tipos ya estandares como SUCCESS, NONE, .... (para hacerlo despues de MiAccion añadimos 'extends ActionSupport' e importamos la libreria correspondiente)

Nota: una curiosidad es que en struts2 los archivos de configuracion pueden conten…

Tuto: Struts2 + netbeans (parte 1)

Imagen
Bienvenidos/as a este manual en le cual voy a explicar poco a poco los cambios que ha habido con la llegada de Struts 2.  Decir que, de momento, en Netbeans 8.0.2 todavia seguimos sin tener posibilidad de usar dicho framework sin instalar un plugin de terceros. 
Por tanto, lo primero es ir a la web de plugins de netbeans y descargarnos uno que nos permite hacer proyectos con struts 2:  http://plugins.netbeans.org/plugin/39218/struts2-support-repack-for-nb-7-x-xwork
Es un .zip, lo descomprimimos y nos vamos a nuestro netbeans, menu 'tools'>'plugins' y en la ventana que nos sale, a la pestaña 'downloaded'. En esa pestaña veremos en la parte izquierda un boton 'Add plugins' para poder buscar dentro de nuestro PC los plugins que hemos descargado y descomprimido. Despues damos debajo en donde aparece 'Install', aceptamos las licencias y ya estaria todo listo.
Nuevo proyecto con struts 2
Damos a nuevo proyecto, de tipo java web > 'web application…

Lentitud tomcat netbeans

Aunque ya hace un par de años que aprendí j2ee y a usarlo con apache tomcat y glassfish, hay ocasiones en las que vuelves a usar ciertas tecnologías.
Se ha dado el caso de que tenia que estaba desarrollando con struts2 y me iba bastante lento al ejecutarlo desde netbeans. Mi temor era que dicha tardanza siguiese una vez instalado el .war en otro servidor, libre de netbeans. Lo instale en otro tomcat, supervisado con xampp.... La mejora de rendimiento fue de cinco segundos por pagina, he de decir que en NetBeans no estaba puesto el modo debug, solo arrancado el servidor, pero vaya bestialidad de diferencia.
También he de comentar que la prueba estaba siendo realizada en un netbook, para ser exactos en un HP x360 (sí, ese que es rojo y que la pantalla se puede volver completamente). Aunque este equipo ya es bastante potente y esta a años luz del primer netbook que tuve, no deja de ser un ordenador con mas limitaciones que uno de sobremesa u otros tipos de portatiles con mayor tamaño y pres…

Probando phonegap

Imagen
Desde hace una o dos semanas ando pensando una app para móvil y de paso probar mas a fondo struts2 (comencé un pequeño tutorial y quería experimentar con un proyecto mas real)
El caso es que instalé phonegap y lo probé para firefoxOS. No me apetecía instalar el sdk de android. Puse el típico iframe para ver mi web a pantalla completa, lo curioso es que mi web kamifer.es se ve, pero google no carga.

Os dejo la foto


14 de Abril de 2015

Curso Udacity Big data

Hoy he estado haciendo la primera lección del curso gratuito de Big data de Udacity

https://www.udacity.com/course/ud359

Mi código por aquí
https://github.com/arkadoel/AprendiendoPython/tree/master/Udacity_tutorial


18 de Marzo de 2015

PyPandas prueba 2

Hoy, para continuar con lo anterior he intentado guardar un dataframe a un archivo excel. Aunque lo probé levemente, ya veo que tiene su misterio el hacerlo.

https://github.com/arkadoel/AprendiendoPython/commit/d660c8c0aa1aee9fe6cf219987b91332bc681e90



16 de Marzo de 2015

Primeros pasos con PyPandas

Hoy me he decidido a probar un poco de pypandas y en especifico como usarlo para interpretar la información de un archivo .csv

Como siempre en mi Github podreis ver los cambios:
https://github.com/arkadoel/AprendiendoPython/commit/d22f243d6436d9073a90a14fb35c7b785f8c176a






13 de Marzo de 2015

DirectORM evoluciona

Tras el fracaso que podria suponer usar el nuevo Entity Framework y su falta de estabilidad (añadido a que van a eliminar la tecnologia OleDb, que es la base de esta framework).
He mejorado notablemente la interfaz de DirectORM para proyectos C#, la lista de cambios es la siguiente:

Cargar y exportar el formato de una base de datos en XMLGenerar clases tanto para OleDB como para SQLClientMejora de aspectoSe añade columna Auto_increment para las claves primarias...Aun sigue siendo una version experimental, pero promete.
https://github.com/arkadoel/directORM/commit/6539f3c93ef57bad583a2a8e046db54197f96b93?diff=unified

8 de Marzo de 2015

Tuplas en C#

Veamos hoy un elemento que se utiliza poco en C# y que podría hacernos pensar que es mas compatible con python de lo que parece, pero eso solo es en apariencia. Hoy hablaremos de las tuplas en C#.
Las tuplas en python son un tipo de dato que admite distintos tipos de datos en su interior y se comporta como una lista. Eso al menos, es lo que pasa en python, en donde se puede declarar una lista con, por ejemplo, los datos de personas, teniendo cada indice una serie de elementos de distinto tipo.
Con el ejemplo siguiente veremos cómo se utilizan las tuplas en C#. Lo primero que veremos es que no son listas sino un tipo de dato que permite otros tipos de datos como elementos. Tambien mencionar que las tuplas en C# tienen limite de elementos en su definicion (hasta 8 elementos), pudiendo contener un elemento cualquier tipo de dato, incluido otras tuplas.
-
-

2 de Marzo de 2015

Subido código de DirectORM

Hace ya bastante tiempo que existe el proyecto directORM por mis usb, pero no ha sido hasta este año que está comenzando a aparecer mas veces.
El proyecto se podría decir que nace en 2010 como una idea que alguna que otra vez ya había pensado en implementar y en 2013 necesité hacer una versión mas rápidamente. Fue en ese año cuando lo desarrollé en C# la generación de código, al tener alguna que otra ventaja a la hora de realizar interfaces gráficas (WPF leñe) y que C# permite strings multilinea (cosa que java no permite de forma muy limpia)
Aquí os dejo el enlace para que podais ver los distintos lenguajes que soporta (C#, JAVA y Python), en un futuro espero unificarlo https://github.com/arkadoel/directORM

2 de Marzo de 2015

Probando CherryPy

Hace unos días estuve probando la manera de hacer una web sencilla con python. Mi principal problema y el de mucha gente es que, los frameworks como django tienen una curva de aprendizaje bastante elevada.  Hoy he estado probando con un framework llamado CherryPy, el cual me ha agradado bastante porque es simple y hace lo que se necesita.
Os dejo un enlace al código, los cuatro primeros ejemplos es lo que hice hoy (del 1 al 4): https://github.com/arkadoel/AprendiendoPython/tree/master/Cherrypy



Semana 23 al 28 de Febrero

El problema de las capas de abstraccion

Como mencionaba en un articulo anterior, en el cual se pudo notar todo mi descontento con un framework (que hasta la versión 4 era un ejemplo a seguir) y su empeoramiento en las dos ultimas versiones, he de hacer una reflexión sobre 'los frameworks'. OJO, no solo me voy a referir a los de Microsoft, sino a todos los frameworks y apis que últimamente inundan el mundo de la programación.
Los frameworks eran 'paquetes de librerías'
En un inicio, cuando fueron concebidos los primeros framework del mercado, no recibían ese nombre, simplemente eran paquetes de librerías que te descargabas y podías hacer con ellos ciertas funciones de manera mas sencilla. Un ejemplo claro fueron todas las librerías creadas para C/C++ y que hoy en día se siguen utilizando.  Como tales 'paquetes de librerías', tu llegabas a tu proyecto, instalabas las librerías que necesitases y felizmente te olvidabas del resto. Eran fáciles de enlazar y la documentación estaba bastante bien realizada, ad…

Entity Framework 5 y 6 a la basura

Estas semanas he estado programando un proyecto y resulta que cuando ya voy a conectar ciertas areas de la base de datos con la interfaz resulta que salen los errores a relucir.
NO, no son errores mios, sino del Entity framework 5 y superior. Primero use el framework 6.XX con una estabilidad tal que casi explota el ordenador de la cantidad de librerias necesarias para hacer algo tan simple como conectar con la base de datos. Fue en ese momento cuando decidi usar la version 5. Mi sorpresa fue cuando genero un identificador (una primary key de toda la vida) y resulta que al pasarlo al modelo de objetos se mapea a un int (recordemos que int en C# no admite valores null pero Integer sí)
En qué radica el problema, pues que si tienes un objeto nuevo siempre sale el id 0 (cero) por defecto, no null ni indeterminación ni nada parecido.... sale un maldito CERO
Obviamente al ser el primer elemento no pasaría nada, pero al problema radica en cuando vas a usar 'solo el objeto sin id' siempre …

Estoy haciendo un desarrollo privado

Desde el mes de Febrero se puede ver en mi github que he estado subiendo menos código, esto se debe a varios factores. Por un lado, mi trabajo de conserje, el cual en ciertos meses suele ser bastante intenso y por otro lado, es porque estoy desarrollando un software de código cerrado que, aunque es un proyecto a largo plazo, cada cierto tiempo va a ocasionar saltos en la gráfica de github.
Dicho software espero terminarlo en unos meses, pero es tocho.
Semana 16 al 22 de Febrero

Hacer un servidor web simple en python

Hoy tras varias horas investigando los frameworks web que existen para python y casi darme una embolia cerebral por intentar saber como poner, simplemente un archivo html, lo he conseguido.
Al final no use ningún framework. Para arrancar un servidor web estando en una carpeta especifica con tus archivos .html debes poner el siguiente comando 

python -m SimpleHTTPServer80

Tan simple como eso, pero el caso es que no permite poner, a priori, un enlace con un sistema gestor de bases de datos.
Los frameworks para hacer una web simple
La impresion que me ha dado es que para hacer una web simple necesitas herramientas similares a la flota de EEUU en tamaño. En otra analogía mas simple:
Para cortar una rama de mi bonsai, necesito unas tijeras, pero las únicas herramientas que hay son un gigantesco aserradero con maquinas de cortar secuoyas.

Semana 16 al 22 de Febrero

Dilema al hacer un software de TPV

En el mes de Enero una persona me animó a intentar hacer un programa que necesitaba para una TPV que estaba reparando y ya que estaba estudiando python, decidí evaluar si prodría hacer dicha aplicacion en ese lenguaje.
Unos de los principales problemas cuando programas una TPV es que debe de ser tactil, es decir, todo lo que pongas debe de tener el tamaño suficiente como para que el cliente no quiera darte con un bate de baseball en las manos por ser poco usable.
La idea original era hacer la aplicacion con un nucleo comun y las distintas interfaces de usuario (windows y linux) por separado. El caso es que estuve probando WPF + ironpython de cara a hacer la aplicacion. Lo sorprendente fue que las mismas librerias funcionaban de distinta manera en ironpython que en C# impidiendo que, algunas partes de codigo que tenía de antes pudiesen ser usadas con normalidad en WPF + ironpython. A esto debemos sumarle que ningun ORM del mercado es del todo compatible, lo cual me impulsó aceleradamente …

Json + Github con Java

De cara a una charla para el instituto Gregorio Fernandez he estado investigando como usar JSON junto con Java, aunque solo fuese de forma superficial para una pequeña practica. 
Lo primero que se me ocurrió fue intentar saber los repositorios de un usuario de Github leyendo la cadena de json que sueltan ciertas urls del sitio. Para ello usé una libreria de java que es la desarrollada por el propio proyecto json y que podreis encontrar en el siguiente enlace:
http://www.json.org/java/index.html
Despues de haber conseguido leer los repositorios que tiene un determinado usuario, la cuestión era obtener la url en donde se encontrasen los commits de dicho proyecto y leer la descripcion de los mismos, la fecha y lo que se me ocurriese.
Tras probar unas 60 veces me di cuenta de que hay un limite de conexiones de 60 y por tanto después debería registrarme, pero hacer eso con java y json ya rozaba lo absurdo, teniendo en cuenta que es para una charla para alumnos de primero de desarrollo de aplic…

IronPython samples

De cara a que no se me olvidasen ciertos aspectos que había aprendido, hice un proyecto en github el cual consiste en usar controles wpf junto con ironpython. Recordemos que ironpython es la versión .net de la maquina de python (la estándar está en C y se llama cpython).

Ciertamente me fastidiaba un poco el no poder utilizar controles (UserControl) ni paginas (WPF Page) en mis proyectos. Se podría decir que los proyectos se podrían quedar un poco cojos sin estas capacidades, las cuales dan mucho juego a la hora de desarrollar las aplicaciones que se necesite.
En el siguiente enlace se puede ver como uso las dos tecnologías y las implemento en ironpython:
https://github.com/arkadoel/ironPythonSamples

Prueba tactil en windows 8.1

Imagen
30 de Enero de 2015:

Ciertamente hay días en los que parece que te has levantado para hacer cosas y hoy era un día de esos. 

Hoy al levantarme de la siesta me puse a programar un poco y me interesó saber como hacer para que el teclado de windows 8.1 aparezca y se quite cuando pulsas en la pantalla, este es el resultado:



Ironpython, cpython, sqlalchemy

Semana 26 al 31 Enero:
Esta semana he estado probando distintas tecnologías, todo a raíz de un proyecto que me ha salido. Por primera vez en mucho tiempo me estoy tomando con calma el inicio de un proyecto, porque quiero evaluar bajo qué tecnologías seria mejor implementarlo.

Por un lado he estado probando ironpython, la versión de python con la maquina virtual de .Net... El rendimiento es bastante malo, pero la idea era generar una aplicación con WPF + ironpython y que compartiese el núcleo con otra en Qt4 + cpython. Pero de momento no cuadra demasiado.
Otro problema es que ironpython todavía anda por la versión 2.7.5 y en cpython uso la 3.4.2 o superior, es decir 67 versiones más... se notan.
Por otro lado, con cpython he probado sqlalchemy, un ORM muy cómodo y funcional para python, ademas de open source. Lo intenté usar en ironpython y 'peta que da gusto'.
Seguramente desarrolle un poco mas directORM de cara a poder usarlo y ver si se comporta de manera estable o, lo suficient…

DirectORM ya genera SQL

30 de Enero de 2015:
Ayer estuve mejorando directORM, ahora además de generar las clases y otros objetos para controlar una base de datos SQLite, permite generar las sentencias SQL para crear las tablas. A parte, detecté un error en el método de eliminar que se genera. Básicamente no me percaté de cuando una tabla tiene varios identificadores (key).... en la ultima version ya esta solucionado.
También he probado y directORM funciona adecuadamente tanto para cpython 3 como para ironpython 2.7.5

Mi portfolio

Imagen
http://stockroom.io/arkadoel
En esa dirección podréis ver mi portfolio o, mejor dicho, aquello que he ido programando, pero de una forma bonita y muy a lo responsive.

Terminada parte core de directORM

Hoy he terminado, en cierto modo el núcleo de lo que sería el generador de clases directORM. Básicamente consiste en una aplicación que, basándose en un archivo xml genera una serie de clases y objetos de cara a manejar una base de datos con esa estructura.
Sé que existen frameworks super-eficientes y complejos que lo hacen, pero el misterio estaba en hacerlo yo y de paso ver la complejidad que ello conlleva.
Pongo el enlace a la parte 'core'... se que falta mucho formato, pero aun está en fase experimental y también me faltan comentarios, pero poco a poco.
https://github.com/arkadoel/directORM/tree/master/core

Algo he programado

Hola, esta semana pasada recuerdo que estuve modificando una clase de 'reconocimiento de sistema operativo' de un proyecto de PlasticSCM. Al final hice un fork del proyecto porque tienen capadas las contribuciones via github. ¿para que ponen un repoditorio en github y no permiten contribuciones externas a la empresa?.... misterios de la vida moderna.

Experimentando xml python

Brevemente diré que hoy me he dedicado a experimentar con python y xml para cargar desde un archivo xml el esquema de las tablas de una base de datos y mapearlo a objetos.
https://github.com/arkadoel/directORM

Lectura de puerto serial con python

Durante estas semanas no he publicado, pero he estado haciendo alguna que otra cosilla. Hoy traigo un código que permite leer lo que emite una bascula de pesar camiones y mostrarlo por consola en el caso de que el peso sea mayor que cero.

En esta ocasión el código esta hecho en python y resulta ser bastante menos extenso que hacerlo con otros lenguajes como C#
Importante: la bascula cuenta con visor físico del peso, lo digo porque hay modelos de basculas que si no tienen un visor no emiten nada y tienes que mandarlas señales para que funcionen.
A continuación veamos el código:
.
.

Prueba de codigo en blogger

Probando como se ve el codigo en un pluggin de blogger


import sys print('Funciona para ver python') >>>from agenda.models import Persona >>>p = Persona(nombre='paco', apellidos='perez', casado=False) >>>p.nombre 'paco' >>>p.save() >>>len(Persona.objects.all()) 1 >>>Persona.objects.all()[0].apellidos 'perez' >>>exit()
sh ./comando.sh  python manage.py makemigrations agenda   sudo python3 manage.py sqlmigrate agenda 0001