Entradas

Mostrando entradas de 2014

Aprendiendo Django parte 2

Imagen
Desarrollemos ahora una 'app' en django. La diferencia entre app y proyecto en django radica en algo tan simple como que una app puede estar en varios proyectos y un proyecto puede contener varias apps, pero un proyecto no puede contener a otros proyectos.
Lo primero creamos la app:
 python3 manage.py startapp agenda 

Esto nos crea una app en el proyecto con una serie de archivos. Nos vamos al archivo models.py para definir el modelo de datos que queremos.
Creamos los objetos Persona y Telefonos, teniendo este un enlace a Persona.
Añadimos 'agenda' al archivo settins.py en la parte de INSTALLED_APPS y ejecutamos el comando
 python manage.py makemigrations agenda   sudo python3 manage.py sqlmigrate agenda 0001
nos saldra por pantalla las consultas sql que se generaran y ahora para ponerlo en la DB ejecutamos
 python3 manage.py migrate 
Jugando con la shell
Pongamos el comando python3 manage.py shell y juguemos un poco para comprobar si todo salió bien:
>>>from agenda.model…

Primeros pasos con Django

Imagen
Hoy me apetecía probar a ver como era el tema de Django. De momento pongo los pasos que he seguido para instalarlo en Ubuntu 14.04 LTS

Paso 1: Instalar python

En mi caso Ubuntu trae la version estable 2.7, yo instale la 3, tal vez tengais que activar los repositorios no estables de ubuntu, porque se encuentra dentro del area 'developers' de ubuntu:

 sudo apt-get install -y python3 python-setuptools
 sudo easy_install3 pip 

pip es el sistema de instalacion de python, es un gestor de paquetes.

Paso 2: Instalar Django

sudo pip install Django
 sudo pip install Django --upgrade 
python3 -c "import sys; sys.path = sys.path[1:]; import django; print(django.__path__)"
python3 -c "import django; print(django.get_version())" 

Con eso tendremos instalado Django y las dos ultimas lineas nos dirán el lugar donde se encuentran los archivos de django (__path__) y la versión que instalamos, en mi caso la 1.7.1

Paso 3: Aprender Django

Ir a la carpeta donde queramos hacer un proyecto. Po…

PseudoCodigo ya tiene un editor

Imagen
Si hace unas semanas presentaba el lenguaje pseudoCodigo, en su versión compilada, ahora toca ver el editor que he programado en python3. De momento es algo simple, tan solo permite el coloreado de la sintaxis, pero es un paso de gigante para un lenguaje que, al menos, exista un editor para escribirlo y que este cuente con el coloreado de la sintaxis pertinente.
Para aquellos que quieran probar la version de prueba 0.0.1, aquí podrán ver el código:  https://github.com/arkadoel/pseudoCodeEditor

MeAlertas 0.1.0

Imagen
Por fin hoy he podido terminar la primera version de MeAlertas, un sistema de aviso semanal que fue desarrollado en JAVA inicialmente, cuando estaba en la portería de Metales Extruidos y cuya finalidad era recordar todas las acciones que debíamos hacer al cavo del día. 


Y como habitualmente sucede, ya esta subido el codigo python a github: https://github.com/arkadoel/AprendiendoPython/tree/master/MeAlertas

MeAlertas

Otro pequeño proyecto para ir aprendiendo mas cosas de python. En esta ocasión aprenderé lo siguiente:   -Uso de hilos(thread en python)
   -El como hacer un reloj que lance X tareas a una determinada hora.
   -Uso de mas controles Qt
   -Desarrollo de la conexión de la base de datos (de cara a probar si puedo hacer unos modulos tipo directORM como en C# y Java)
   -Como reproducir sonidos en windows y linux.El proyectoMeAlertas es un programa que desarrollé en 2011-2012 en Metales Extruidos, porque teníamos que recordar mas de 20 horas a las que debíamos hacer cosas. Los móviles que teníamos no daban de sí la flexibilidad que necesitábamos y por ello lo desarrollé, en java. En esta ocasión será en python.Aquí os dejo el enlace:
https://github.com/arkadoel/AprendiendoPython/tree/master/MeAlertas

Ejemplo ORM a mano (Java)

Mire el siguiente enlace: https://github.com/arkadoel/EjemploJAVAJDBCEn ese código puede ver como conectarse a una base de datos sqlite mediante Jdbc de java y generar ciertas clases que le permitan gestionarlo como si de un ORM (object relational model) se tratase. Una de las diferencia radica en su simplicidad y en que no necesita mas librerías externas para hacerlo, salvo las de jdbc obviamente.Esta es la versión de lo que llamo DirectORM, hace tiempo ya hice una aplicación para generar de manera automática las clases necesarias y ahora estoy viendo si es posible hacer una implementacion para python.

Pseudo

Hace unos dias subí codigo en unas librerias que comence a programar en Julio de este año.
El proyecto era Pseudo y es un experimento de como poder escribir en pseudocodigo y que este sea compilable y ejecutable, para ello hice las librerias en c++.Lo que mas me ha sorprendido es que por fin he podido lograrlo y a día de hoy ya se puede programar algoritmos simples sin problemas. Ayer subi código para la parte de conversion de tipos, especialmente a cadenas de caracteres.
Por otro lado ayer también descubrí un proyecto de un programador en cual ha desarrollado un interprete de pseudocódigo. Las diferencias entre ese proyecto y el mio saltan a la vista, el suyo coge el código escrito por el programador y después lo traduce a c/c++ para compilarlo posteriormente. El mio podríamos ponerlo dentro de la categoría de ser un conjunto de librerías de c++ (el compilador toma como instrucciones de c++ lo que yo escribo en pseudocódigo)Tambien hay diferencia en cuanto a sintaxis, la suya es mas …

Cambios Pygenda

He subido cambios en la aplicacion pygenda https://github.com/arkadoel/AprendiendoPython/tree/master/Pygenda

Ahora permite decir de que departamento es la persona que estamos visualizando.

Pseudo

Añadida la parte para lectura de ficheros al conjunto de librerias 'Pseudo'.

Pseudo es un conjunto de librerias que permiten escribir en pseudocodigo y compilarlo nativamente, porque es una capa por encima de C++.

https://github.com/arkadoel/Pseudo

Uniendo blogs

Imagen
He decidido unir los artículos de los blogs 'Not a Number' y 'Mi Alejandría' en uno solo. Tambien, el nuevo blog lo usaré para dar a conocer los distintos avances en programación que vaya haciendo, por pequeños que sean y de cara a tener una pequeña historia de cuando voy haciendo las cosas.
Básicamente este blog será como un conjunto de artículos sobre los proyectos, las distintas versiones que haga y también servirá para poner ciertos manuales y artículos de opinión sobre programación.

Los controles de versiones: GIT

Imagen
Hace unas semanas os hablaba de los controles de versiones y los distintos usos que en la actualidad recibe este tipo de software, hoy vamos a profundizar en uno de los principales controles de vesiones que existen en la actualidad, hoy hablaremos de Git.

¿Qué es Git?Git es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando estas tienen un gran número de archivos de código fuente.

Este control de versiones se fundamentó en intentar facilitar la integración de distintos programadores que estuviesen distantes entre sí, de ello podremos notar que es un sistema de control de versiones distribuido y enfocado en captar fragmentos de código y facilitar su integración de una forma fácil, sencilla y en la mayoría de las ocasiones automática.

Mi historia usando GitLa primera vez que utilicé un control de versiones fue en 2010 cuando entré en una empresa de practicas como programador, en…

El ataque de la desmotivación

Imagen
Esta semana hablaremos de uno de los aspectos menos aireados en la vida de una startup, la desmotivación o mejor dicho, aquellos elementos que terminan por medrar nuestro ánimo hasta el punto de llevarnos hacia la desmotivación.
Debo decir que normalmente escribo los artículos cada cierto tiempo y tiendo a escribir varios y programarlos para no tener que estar pendiente de si tengo tiempo de escribir o no. Pero en esta ocasión terminó el mes de Abril y tuve un pequeño atasco en cuanto a mi capacidad para escribir artículos, algo comprensible en una persona que no se dedica a ello ni como profesión ni como hobby. Lo que mas me preocupaba era que no se me ocurría ningún aspecto del cual hablar o directamente de los que tengo en la recamara no me parecían lo suficientemente atractivos para escribirlos en este momento.
Ese pequeño atasque junto con cómo se desarrollan las cosas desde finales de Abril han ido medrando ese ánimo con el que todos comenzamos los distintos proyectos. Al inicio e…

Diario de programación

Imagen
Seguramente te estés imaginando la típica libreta en la que la gente apunta las cosas y lo que va haciendo, pero en este caso hablaremos de la primera aplicación gratuita creada por Mi Alejandría.
¿Que es un diario de programación? Comencemos pues definiendo lo que es un 'diario de programación', para lo cual debemos ponernos en el contexto adecuado, el de un programador trabajando en su día a día.
A un programador su jefe de proyectos le mandará realizar una serie de tareas, para crear o modificar funcionalidades de las aplicaciones o web que este programando. Lo normal es que una tarea pueda durar desde días hasta unas dos semanas como máximo. Bien, durante esos días, el programador, pondrá/modificará/borrará un numero bastante elevado de lineas de código y cuando haya terminado la tarea guardará una versión en el control de versiones que use su empresa.
El problema mas común a la hora de escribir código durante al menos una semana, suele ser que se pueden eliminar partes de cód…

Tras bambalinas (II): prueba y error

Imagen
Alguna vez has cometido algún error y has pensado que por fracasar una vez todos pensaban que ya nunca lograrías nada. Bienvenidos/as una semana más a tras las bambalinas de Mi Alejandría.

Desde que comencé a intentar fundar una empresa he podido percatarme de una clase de comportamiento bastante peculiar que diferencia a los españoles de otras culturas como las anglosajonas, en un aspecto ideológico muy significativo, la intolerancia al fracaso.
En la cultura española actual y seguramente en otros lugares del mundo pase algo parecido en mayor o menor medida, existe una tolerancia cero frente al fracaso. Cabe resaltar que dicha tolerancia cero está bastante menos arraigada en las empresas y personas dedicadas al sector tecnológico, lo cual resulta en ocasiones como una bocanada de aire fresco bastante tranquilizador.

Ademas de programador también estudié coaching y analizando este tema me di cuenta de que la intolerancia irracional al fracaso es implantada como paradigma en la educación …

Los controles de versiones

Imagen
Nombres como Git, TFS, plastic-scm, etc. Son nombres de tecnologías que son o utilizan sistemas de control de versiones, muy implantados y usados en el sector informático desde hace unos años y que poco a poco se han ido añadiendo sus funcionalidades a otros productos de otros sectores.

Qué es y para que sirve un control de versiones Lo primero que debemos conocer es ¿qué es una versión?  Bien, podríamos definir versión como cada una de las distintas instantáneas o conjuntos de cambios de uno o varios documentos. Pongamos un ejemplo usando nuestra imaginación, piense en un documento vacío que esta en su escritorio,  ahora imagine que ponemos un texto en ese documento y lo guardamos. Ahora imagine que dentro de una semana va a ese documento, reescribe algunos párrafos y lo vuelve a guardar, repetiremos esa acción de añadir y quitar texto durante unas 10 semanas.
Ahora es cuando le pueden surgir dudas como ¿qué escribí hace dos semanas? ¿como podría recuperar algo que borré hace una semana?…

Tras bambalinas de Mi Alejandría

Imagen
No sólo de pan vive el hombre, y no sólo de productos, marketing y web se funda una startup. Bienvenidos al primer articulo de cómo es nuestra startup, pero mirando desde dentro y enfocado en lo que piensan y hacen sus fundadores.

Pero, ¿qué es una startup?Como habréis leído, me he referido a Mi Alejandría como una startup y no como una empresa. El termino startup nace en Silicon Valley en California (EEUU) para designar a un tipo de organización de carácter temporal, cuyo fin es ser una empresa.
No toda startup llega a ser empresa y no toda empresa nace de una startup. La principal diferencia es que una startup esta enfocada en la búsqueda de nuevos modelos de negocio y llegar a conocer cuales son los segmentos de clientes para dicho modelo de negocio. Al contrario, la principal tarea de las empresas es ejecutar/explotar las posibilidades que da un modelo de negocio ya verificado, con el conocimiento de cuales son los clientes para dicho modelo de negocio.
Los monstruos de una startup:

Productividad y programadores

Imagen
Llevo observando desde hace tiempo, exactamente desde el año 2010,  cierto descontrol o desconocimiento en cuanto a cómo conocer si un programador/a es productivo cuando esta trabajando dentro del seno de una empresa.
En sí, es un  aspecto bastante difícil de medir debido a cómo se utilizan las herramientas dentro de las empresas de nuestro sector, el informático. Lo normal es usar los controles de versiones como git, team foundation server o plastic scm, solamente cuando la tarea que estamos desarrollando esta terminada, es decir, los pasos habituales suelen ser:
Bajarse el código completo o la parte que vamos a modificarModificar o crear nuevo código y probarloCuando todo esta listo, subir la versión al control de versiones correspondiente.


De la manera anterior suelen pasar semanas enteras resumidas en una sola tarea dentro de nuestro control de versiones, entonces, cómo podríamos medir la evolución o la forma de trabajar de nuestros programadores. Esa es una cuestión que me llega ron…

El feedback en nuestros días

Imagen
Quizás no este familiarizado con algunos términos que actualmente parecen destacar en la jerga informática y que cada vez aparecen mas repetidos en algunos medios. Un ejemplo de uno de esos términos es ‘feedback’, pero puede que nunca haya tenido que usar esta palabra para decir lo que realmente significa. El feedback es el flujo de información que vuelve a nosotros, también se llama retroalimentación. Cuando se crean programas informáticos, se mandan encuestas, se envían emails o básicamente se pregunta a alguien, el feedback es la parte en la que nos llega esa información tan valiosa en forma de opiniones. Actualmente se están fortaleciendo los medios para que los clientes o usuarios de algunas aplicaciones puedan expresar sus opiniones y estas puedan ser oídas y meditadas por los desarrolladores de una aplicación, por los analistas de una encuesta y otros perfiles profesionales dependiendo de la materia que se este tratando. Pero llegado este momento muchos se estarán preguntando...
¿…

Refundando que es gerundio

Imagen
Han pasado ya unos meses desde que comenzase esta andadura a la cual quisimos llamar 'Mi Alejandría'. Durante estos meses he aprendido mucho, tanto para bien como para mal de todo se aprende y aunque del equipo original solo quedo yo, rendirse no es una opción.
Tras la hecatombe de abandonos de febrero, este mes de Marzo tocaba re-evaluar la idea y ver si se estaba yendo por el camino correcto, de momento estoy formando un nuevo equipo para seguir el proyecto, pero enfocándolo verdaderamente en nuestros clientes actuales como en los que están por venir. 
Veamos que cambios nos depara el futuro:
Lo que ofrecíamos antes 
Desde Enero se ha intentado lanzar dos servicios principalmente, el primero consistía en la digitalización de documentos y estaba acompañado de un programa para gestionar todos esos documentos una vez digitalizados. El otro servicio consistía en el procesado automático de información, generar documentos a partir de información dada por las empresas para facilitarles…