Planeta Plone.es

Aquí es donde los desarrolladores y integradores escriben sobre Plone en español.

05/11/2015

CodeSyntax: Sitio web internacional: el reto multilingüe

2015-11-05T16:02:05Z

Durante el último año y medio hemos lanzado varios sitios web internacionales que disponen de una avanzada gestión multilingüe y multidominio, gracias a las opciones que para ello ofrece nuestro CMS de referencia: Plone.

04/11/2015

CodeSyntax: Sitios web multilingües

2015-11-04T12:16:58Z

Trabajar con varios idiomas en un gestor de contenido es un reto que sólo conoce quien ha tenido la experiencia de gestionar un sitio web en varios idiomas alguna vez.

20/10/2015

CodeSyntax: Microsites, herramienta para trabajar diseños y contenidos diferenciados

2015-10-20T07:11:41Z

Los microsites son excelentes herramientas para poder comunicar diversas iniciativas de manera diferenciada, con su propio diseño y árbol de contenidos, dentro del sitio web corporativo. Así, trabajaremos una única marca e infraestructura, en lugar de crear otros sitios web independientes.

15/10/2015

CodeSyntax: Los primeros días de la conferencia anual Plone en Bucarest

2015-10-15T07:49:36Z

La conferencia anual que suele organizar la comunidad Plone se está celebrando desde el lunes en Bucarest, y aquí estamos dos compañeros de CodeSyntax. Esta será la séptima vez que tomemos parte en un PloneConf, desde que en 2007 acudimos a Nápoles.

06/10/2015

CodeSyntax: Plone 5: renovado, poderoso y desarrollado pensando en el usuario

2015-10-06T13:55:17Z

El lunes se publicó la quinta versión del Sistema de Gestión de Contenidos Plone. Esta versión ha primado poner en manos del usuario diversas nuevas funcionalidades: nueva infraestructura de creación de tipos de elementos; aspecto moderno, nuevo y adaptable, pensado para móviles, tablets y diversos dispositivos; o una nueva manera de modificar el diseño vía web.

02/10/2015

CodeSyntax: Plone vs. Wordpress

2015-10-02T09:10:18Z

¿Cuál es la diferencia de Plone con Wordpress? ¿Por qué optamos por uno o por el otro? ¿Plone vs Wordpress?

CodeSyntax: Herramientas que fomentan la participación ciudadana

2015-10-02T09:08:31Z

Hace tiempo que la participación ciudadana está de moda. Numerosas instituciones, grandes y pequeñas, han intentado promover una relación más cercana y efectiva. Sea o no una mera estrategia de comunicación la participación ciudadana permanecerá entre nosotros durante mucho tiempo, e internet puede ayudar mucho a promover y estructurarlo.

24/09/2015

CodeSyntax: 30 de abril, jornada World Plone Day en las oficinas de CodeSyntax

2015-09-24T07:10:33Z

El día 30 de abril es World Plone Day, el "día mundial de Plone". Lo celebraremos en nuestras oficinas en Eibar, con una jornada/sesión sobre Plone e Internacionalización, en la que veremos casos de estudio (Larzep, Grupo Ulma) y contaremos con la asistencia de representantes de SPRI (el director Alexander Arriola y otros).

CodeSyntax: Ya está aquí la World Plone Day 2012

2015-09-24T07:09:31Z

Ya está aquí la cita anual que pretende dar a conocer Plone, la World Plone Day. El 25 de abril se organizarán multitud de eventos en todo el mundo para publicitar las características y ventajas de este gestor de contenidos de software libre. Desde CodeSyntax nos sumamos a la iniciativa de la Fundación Plone con una serie de charlas. Pero estas charlas las impartirán clientes nuestros que utilizan Plone en su día a día; el objetivo es dar a conocer este CMS desde la óptica de los gestores de contenido y los usuarios.

2015-09-24T07:09:16Z

Ayer celebramos en nuestras oficinas una edición más del World Plone Day, evento de marketing y divulgación que la comunidad global de Plone programa todos los años para darnos a conocer. En esta ocasión, el encuentro de CodeSyntax estuvo marcado por la voz de los usuarios, responsables de comuncación o IT de instituciones varias que decidieron en su día apostar por Plone para su presencia web y hoy pueden contarlo, felizmente, en las oficinas del proveedor que se lo instaló.

2015-09-24T07:08:09Z

El Equipo de Seguridad de Plone ha informado sobre una actualización de seguridad. Este parche de seguridad se dará a conocer el martes y se recomienda instalarlo de manera correcta.

2015-09-24T07:03:42Z

Celebramos el pasado día 30 de abril el Día Mundial de Plone o World Plone Day. Una conmemoración de la comunidad que mantiene colectivamente este CMS de software libre, y que también solemos recordar en nuestras oficinas. Invitados y clientes atendieron a unas presentaciones, centradas sobre todo en las posibilidades de Plone de cara a la empresa exportadora.

2015-09-24T07:01:35Z

Hace un par de días que llegamos a Bristol dos compañeros de CodeSyntax, Mikel Larreategi y servidor (Lur Ibargutxi), a seguir PloneConf, la conferencia anual Plone.

25/04/2014

Noe Nieto: Módulos y paquetes en Python

2014-04-25T07:00:00Z

Módulos y paquetes en Python

Packages

Cuando comenzamos a usar Python, tarde o temprano llegaremos al usar módulos y paquetes.

En Python, un módulo es un objeto que sirve como contenedor para organizar codigo en Python. Cada módulo tiene asignado un espacio de nombres y dentro de ese espacio de nombres puede haber cualquier cantidad de objetos, y como en Python todo es un objeto, tambien puede contener otros módulos.

En el siguiente ejemplo se importa el módulo math; math es el espacio de nombres para un monton de funciones, clases y valores relacionados con operaciones matematicas; el nombre pi es uno de esos y se encuentra dentro del espacio de nombres math.

>>> import math
>>> math.pi
3.141592653589793
>>>

En lenguajes como C, lo equivalente es #include <math.h>, pero la diferencia esta en que todas las funciones, variables y constantes de la libreria se quedan disponibles en el espacio de nombres global. Cuando se incluyen muchas librerias y el codigo se hace muy grande, se corre el peligro de contaminar el espacio de nombres (namespace pollution). Otro problema es la colisión de nombres (namespace collision o namespace clash), que en nuestro ejemplo, ocurriría si alguna otra libreria define una variable o una funcion con el nombre pi.

Con los módulos de Python se matan dos pajaros de un tiro: 1) son una manera de organizar codigo y 2) se reduce la posibilidad de colisión de nombres y contaminar el espacio de nombres global.

Ademas de los módulos, Python tiene el concepto de paquetes. Un paquete es un módulo de Python que contiene otros módulos y/o paquetes. La diferencia entre un módulo y un paquete es que el paquete contiene un atributo __path__ que indica la ruta en el disco duro donde esta almacenado el paquete.

Aca un ejemplo de un módulo:

>>> import os
>>> os
<module 'os' from '/usr/lib64/python2.7/os.pyc'>
>>> os.__package__
>>>

Ahora dos paquetes, json y gtk:

>>> import gtk
>>> gtk
<module 'gtk' from '/usr/lib64/python2.7/site-packages/gtk-2.0/gtk/__init__.pyc'>
>>> import json
>>> json
<module 'json' from '/usr/lib64/python2.7/json/__init__.pyc'>

Notaste alguna diferencia? os es un archivo mientras que``gtk`` y json son archivos con el nombre __init__.py que estan dentro de un directorio con el mismo nombre del paquete.

Nota

pyc es la extension para archivos de python compilados. Casi siempre vienen acompanhados de el archivo .py original. Anda y abre los archivos .py correspondientes para que veas que no hay nada magico.

Tanto módulos como paquetes tienen muchos mas detalles que no voy a cubrir por el momento, basta con que te quedes con lo siguiente: en Python, los archivos con extension .py son módulos, mientras que cualquier directorio que contenga un archivo con el nombre __init__.py se convierte en un paquete.

Donde estan los módulos de Python?

Si en Python tanto los módulos y los paquetes son archivos y directorios con archivos, Te has preguntado de donde saca Python los módulos?

La libreria estándar de Python se encuentra en algun lugar del sistema de archivos. El lugar depende de si el sistema operativo es Windows, Linux, MacOS y si el sistema es de 64 bits o de 32.

En un Fedora 20 a 64 bits, la libreria estándar se encuentra en el directorio /usr/lib64/python2.7/. Los paquetes y módulos que no son parte de la libreria estándar de Python se encuentran en /usr/lib64/python2.7/site- packages/gtk-2.0/. Como ya dije, la ruta depende de el sistema operativo y nunca debemos de fiarnos de una ruta en especifico, en cambio, debemos hacer uso del módulo sys para saber la ruta actual donde Python entra a buscar módulos y paquetes.

El Python Path

Al iniciar un interprete de python, sys.path. se inicializa con una lista de los directorios del sistema donde se encuentra instalado Python y la libreria estándar. La ruta de este directorio varia de sistema en sistema. Por ejemplo, en mi computadora:

>>> import sys
>>> sys.path
['', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib64/python2.7/site-packages/gtk-2.0', '/usr/lib64/python2.7/site-packages/wx-2.8-gtk2-unicode', '/usr/lib/python2.7/site-packages']

Y este es el Python path. Es una lista de cadenas que le indican a python a que lugares del sistema debe ir a buscar módulos.

Esta lista de cadenas se inicializa a partir de la variable de entorno PYTHONPATH. Pero lo mas comun es que no este definida.

El detalle mas importante del Python Path se encuentra en que la estructura de datos usada para almacenar las cadenas es una Lista y las listas son mutables. Eso quiere decir que si manipulamos el Python Path podemos indicarle a Python nuevas rutas a donde debe ir a buscar módulos y paquetes.

Herramientas como virtualenv como Buildout se aprovechan de esta caracteristica.

12/03/2014

CodeSyntax: EF International, nuevo web corporativo, y de actualidad

2014-03-12T14:42:53Z

EF International Strategy es un gabinete de consultoría con sede en Madrid, gestionado por Emiliano López Atxurra y Fernando Ramírez Mazarredo, los dos socios y fundadores de la empresa.