Un microframewok es un conjunto de herramientas que facilitan la creación de aplicaciones web, pero sin pretender cubrir todas las necesidades del programador, dejandole a su elección qué bibliotecas usar. Python es uno de los lenguajes pioneros en este tema, y en general es uno de los mejores lenguajes para backend, y cuenta con una gran gama de opciones, como son Turgo Gears, pyramid, cherrypy, web2py, etc... Pero me encantó la elegancia de Flask. Flask resulta ser una de las aplicaciones mejor documentadas, minimalistas, pero a la vez flexibles para todo los que he necesitado. Les presento un rápido extracto de código para que se puedan dar una idea de lo confortable que es trabajar con este microframework.

¿Pero qué aspecto tiene un hola mundo en flask? 


from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
   return 'Index Page'

@app.route('/hello')
def hello():
   return 'Hola Mundo'

if __name__ == '__main__':
app.run()

En ésta breve entrada les presento una lista de libros libres online que pueden ser consultados de manera abierta para aprender a programar en Python. El contenido fue liberado por sus autores y por lo tanto se encuentran en constante acutualización y al consultarlos no se incurre en infreacción alguna. Los temas son diversos, desde intruductorios hasta tecnologías específicas. Espero sea de su agrado. 

 

 

Si quiere saber qué es la dualidad de un problema de programación lineal y por qué el algoritmo simplex dual es más eficiente que simplex, puede consultar la explicación aquí. También tenemos un ejemplo de aplicación de este algoritmo sobre la red del Metro de la Ciudad de México para encontrar el mejor camino entre dos estaciones

Este es el código del método simplex dual en python 3.4. Para poder ejecutar este código se necesita NumPy y se puede usar directamente mediante python3 simplexdual.py o realizando in import. En la aplicación ejemplo se hace una búsqueda de mejor camino. También se puede poner el valor de debug en true para poder ver paso a paso como se realizan las operaciones.  También hay que notar que se hace la conversión al modo canónico de manera automática, así que las restricciones pueden tener cualquier forma. 

\[\min \]

 

Muchas veces nos enfrentamos que los HTML que queremos usar como templates de Django no fueron creados con esa visión previa y por lo tanto tenemos que agregar tags static ellos. Hacerlo a mano resultaría bastante tedioso. Pero usando el sistema de expresiones regulares de VIM es posible hacer esta tediosa tarea automáticamente. A continuación se presentarán los comandos necesarios para poder ahorrarnos horas de trabajo incesario.

Se supone que los CSS se encuentran en un directorio llamado "css", las imágenes en un directorio "images" y los javascripts en un directorio "js".

 

:%s/css\/.*\.css/{% static "&" %}/g
:%s/images\/.*\.\(jpg\|png\|gif\)/{% static "&" %}/g
:%s/js\/.*\.js/{% static "&" %}/g

 La expresión se puede adecuar cambiando el nombre de la carpeta en la cual se encuentran los archivos, además de insertar otras cláusulas. Para entender las expresiones regulares descritas comentaré un poco las mismas.

  • :%s indica que vamos a buscar y sustituir en todo el texto. También se puede aplicar la sentencia s sonbre una áreas seleccionada o un rango de filas.
  • el formato de búsqueda y sustitución es:DONDEBUSCARs/QUEBUSCAR/PORQUESUSTITUIR/g
  • en QUEBUSCAR usamos la expresión regular css\/.*\. Esto nos indica que la cadena debe comenzar con css, que sigue con / pero como / tiene un significado especial le hacemos un escape, indicando que queremos usar el caracter y no su significado \/ posteriormente el puno . significa que buscamos cualquier cosa, y * será una vez o más, seguido de un punto \.
  • en la PORQUESUSTITUIR insertamos el texto {% static "&"%}, donde el caracter & significa que deberemos insertar la cadena que encontramos en la búsqueda inicial.

Esperemos sirva esta instrucción para VIM y Diango y les facilite la vida al editar templates.

A continuación presento una función que nos permitirá visulizar un autómata de estado finito (FSM) con python. Espero que les sea útil para sus trabajos. Requiere python3 y la librería graphviz. Primero mostraré un FSM que genera y posteriormente le código fuente.

 

Para diagramar el FSM se necesita agregar un alfabeto con el cuál trabajar. Este alfabeto es una lista de símbolos que serán usados para las transicione entre los estados. También será necesario definir una lista de estados que se utilizarán, donde los estados son cadenas de caracteres. Tamién es necesario agrear una lista de 3-tuplas, done se se especificará primero el estado de salida, el de llegada y el símbolo del alfabeto que realizará la transición de un estado a otro. Esto se verá así: [("A","B", 1),("A","E",0),]. Finalmente debemos especificar los estado de salida y de de finalización. Estos deben de ser mayores que 0. 

Un ejemplo de cómo llamar a la función de graficación se presenta en el apartado main del código. Espero esto sirva para facilitar sus diagramas. 

Share This