SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
Combinación ganadora: 
    Plone y tu framework favorito
                   
Charla basada
        en un trabajo
    de Carlos de la Guardia
      http://us.pycon.org/2009/conference/schedule/event/85/


                                
Ustedes ?

        
menttes

        
     
Por qué ?

         
Plone es el mejor CMS
NO desarrollado en PHP
Plone tiene muchas prestaciones
●   Fácil de usar e instalar 
●   Cumple con estandares, incluyendo 
    accesibilidad
●   Mejor registro de seguridad entre los CMSs 
    mas populares
●   Disponible en mas de 40 lenguajes
●   Motor de workflow y reglas
●   Versionado: historial y revertir cambios 
●   y por supuesto...
Python
pero...

        
    Plone es complejo
             
Plone puede ser lento




               
Caching no siempre es la respuesta al tráfico




                           
Plone NO es un framework web de 
           propósito general

    ●   Aunque a veces ovidamos eso...
    ●   Nuestros clientes no piden funcionalidades:
        “queremos Plone, solo necesitamos sacar tal 
        funcionalidad y agregar otras tantas”
    ●   O simplemente creemos que no tenemos otra 
        opción.
    ●   y al final nos queda...
                                   
Frankenplone




          
Y no deberia ser siempre asi. 

     Es posible trabajar con tus 
      herramientas favoritas.


                   
 
    Content Mirror
           
Content Mirror serializa el 
      contenido de Plone en una bdd 
                relacional
●    Todos los tipos de contenidos que vienen out of the 
     box en Plone  y los campos archetypes.
●    Tipos de contenidos archetypes, agregados en 
     productos de terceros. 
●    Mantiene jerarquía de contenido.
●    Mirroring completamente automatizado, no requiere 
     configuración mas allá de la instalación.
 ●   Soporte para Plone 2.5, 3.0, 3.1, 3.2 y 3.3.
                                
Simple




          
Ahora podemos:
    ●   Usar Plone solo para administrar contenido
    ●   Usar cualquier framework para trabajar con el 
        contenido.
    ●   Quitar Plone del deployment
    ●   Dejar de pensar como hacer algo en términos 
        de plone y comenzar a pensar qué queremos 
        realizar.
    ●   Simplificar, simplificar
                                    
                           

..y podemos servir contenido Plone rápido!
Cómo funciona ?
    ●   Se integra  dentro del manejador de eventos de 
        Plone y subscribe eventos al ciclo de vida de 
        contenido (object added, edited, deleted).
    ●   Transforma schemas de contenido Plone  en 
        tablas relacionales usando SQLAlchemy
    ●   Para todos los objetos se genera un schema, 
        incluyendo archivos y relaciones.
    ●   Se genera una tabla para cada tipo de 
        contenido Plone.
                               
     
Instalación
    ●   Bajar: 
        http://code.google.com/p/contentmirror/downloads/list
    ●   Instalar
    ●   Configurar bdd
    ●   Configurar tipos de contenidos propios
    ●   Generar tablas
    ●   Exportar contenido pre­existente

                                  
Configurar la bdd con ZCML
<configure xmlns="http://namespaces.zope.org/zope"
                  xmlns:db="http://namespaces.objectrealms.net/rdb"
                  xmlns:ore="http://namespaces.objectrealms.net/mirror">
   
   <!­­ setup a database connection ­­>
   <db:engine url="postgres://localhost/plone"
              name="mirror­db"
              echo="True"/>

   <!­­ associate the database connection to mirror db structures ­­>
   <db:bind engine="mirror­db"
           metadata="ore.contentmirror.schema.metadata"
           />

</configure>
                                       
Configurar los tipos de contenidos 
                  propios
Por cada tipo de contenido del sitio:

<ore:mirror content= 
"Products.ATContentTypes.content.document.ATDocument" />




                              
Generar tablas y subir el contenido

$ dropdb plone
$ createdb plone ­­encoding=UTF­8

# generate table definitions and create tables
$ bin/instance run parts/productdistros/ContentMirror/ddl.py 
$ postgres > mirror.sql
$ psql plone < /home/andy/plone/zinstance/mirror.sql

# optionally, load existing content
$ bin/instance run parts/productdistros/ContentMirror/bulk.py Plone
                                  
                                  
Listo.




       
Los cambios se envían de forma 
            síncrona a la bdd


plone# select content_id, id, title from content where id = 'front­page';
 content_id |     id     |     title
­­­­­­­­­­­­+­­­­­­­­­­­­+­­­­­­­­­­­­­­­­
          8 | front­page | Content Mirror sent this
(1 row)




                                      
Qué tipos de sitios ?

    ●   Pocos gestores de contenidos, muchos 
        usuarios 
    ●   Sitios freezados
    ●   Sitios con separación clara contenido y 
        presentación: 
        –   Revistas 
        –   Períodicos
        –   Gobierno
 
        –   ONG                
Plyne, por menttes

from pylons import config
from sqlalchemy import Column, MetaData, Table, types
from sqlalchemy.orm import mapper
from sqlalchemy.orm import scoped_session, sessionmaker

meta = MetaData(engine)
model_classes = {}

for tn in engine.table_names():
    class_name = str(tn).capitalize()
    new_class = type( class_name , object.__bases__, dict (object.__dict__))
    new_table = Table( tn, meta, autoload=True)
    mapper(new_class, new_table)    

    model_classes[ class_name ] = new_class
                                         
Plango, por Andy McKay
from django.db import models
from django.contrib.contenttypes.models import ContentType

from utils import normalize_name

class Content(models.Model):
    class Meta:
        db_table = u'content'
            
    content_id = models.IntegerField(primary_key=True, editable=False)
    id = models.CharField(max_length=256, editable=False)
    uid = models.CharField(unique=True, max_length=36, editable=False)
    portal_type = models.CharField(max_length=64, editable=False)
    status = models.CharField(max_length=64, editable=False, null=False)
    type = models.CharField(max_length=64, editable=False)
    container = models.ForeignKey('self', related_name="parent", editable=False)
                                           
Repoze.BFG, por Carlos de la Guardia

class WebSite(UserDict):
    implements(IWebSite,ILocation)
    __acl__ = [ (Allow, Everyone, 'view') ]

    def __init__(self, website_id):
        UserDict.__init__(self)
        self.__name__ = None
        self.__parent__ = None
        self.website_id = website_id
        session = Session()
        website =  session.query( PloneContent ).with_polymorphic( 
            PloneWebSite ).filter( PloneContent.id==website_id ).first()
        self.title = website.title


                                               
Y mas...
    ●   Turbogears
    ●   Werkzeug
    ●   PHP
    ●   Java 




                         
Content Mirror es fácil de extender
●    Por ejemplo
      –   Reportes a partir del contenido
      –   Auditar cambios
      –   Exportar a formatos como JSON
      –   Otros medios de persistencia

●    Content mirror Usa la Arquitectura de 
     Componentes de Zope 

 ●   Otra cosa que sea bdd relacional 
                           
Nosotros estudiamos la AC de Zope 
para que vos no tengas que hacerlo.



                  
Front end para Google App Engine

    ●   Aprovechar la infraestructura de Google
    ●   Usar su autenticación
    ●   Dejar que ellos solucionen la escalabilidad

    ●   Casi un juguete, pero muestra que se puede 
        hacer con ContentMirror y Plone


                                 
front end para GAE 
import os
import wsgiref.handlers

from google.appengine.ext import webapp
from google.appengine.ext.webapp import template
from google.appengine.ext import db
from google.appengine.ext.db import polymodel
from google.appengine.api import users

class PloneContent(polymodel.PolyModel):
    id = db.StringProperty()
    uid = db.StringProperty()
    portal_type = db.StringProperty()
    status = db.StringProperty()
    type = db.StringProperty()

                                      
Plone content in GAE




              
Todos los frontends están 
             disponibles en:


    http://contentmirror.googlecode.com/ 


                      
Caso de éxito




    Biblioteca del Congress en Chile




                    
Crear multiple sitios en una instancia




                        
Seleccionar contenido




               
Definir layout y estilo




                
Deploy usando repoze.bfg 




                 
                         

    Y que Plone sea parte del universo Python
                    
    http://www.plonesymposium.com.br
Muchas gracias!

              Roberto Allende
       Sobre un trabajo de Carlos de la Guardia


         rallende@menttes.com

    http://twitter.com/robertoallende 

       http://robertoallende.com
                           

Weitere ähnliche Inhalte

Was ist angesagt?

Desarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y AngularDesarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y AngularFreelancer
 
Introducción al desarrollo de aplicaciones web
Introducción al desarrollo de aplicaciones webIntroducción al desarrollo de aplicaciones web
Introducción al desarrollo de aplicaciones webAnfap
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Edgar Dueñas
 
La web como Plataforma con Dojo Toolkit
La web como Plataforma con Dojo ToolkitLa web como Plataforma con Dojo Toolkit
La web como Plataforma con Dojo ToolkitAlex Fuentes
 
Tutorial de eclipsee
Tutorial de eclipseeTutorial de eclipsee
Tutorial de eclipseejavierot99
 
Javascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryJavascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryDavid Arango
 
Taller de Django betabeers
Taller de Django betabeersTaller de Django betabeers
Taller de Django betabeersbetabeers
 
Depurando Java Script - Programador PHP
Depurando Java Script - Programador PHPDepurando Java Script - Programador PHP
Depurando Java Script - Programador PHPJuan Belón Pérez
 
PHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad WebPHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad WebRightster
 
Maven Divide tu código, pruébalo y vencerás
Maven Divide tu código, pruébalo y vencerásMaven Divide tu código, pruébalo y vencerás
Maven Divide tu código, pruébalo y vencerásCristian Romero Matesanz
 
Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain Raul Fraile
 
Partes de la pantalla de eclipse
Partes de la pantalla de eclipsePartes de la pantalla de eclipse
Partes de la pantalla de eclipselourdes9898
 

Was ist angesagt? (20)

Desarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y AngularDesarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y Angular
 
Introducción al desarrollo de aplicaciones web
Introducción al desarrollo de aplicaciones webIntroducción al desarrollo de aplicaciones web
Introducción al desarrollo de aplicaciones web
 
Javascript
JavascriptJavascript
Javascript
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
 
La web como Plataforma con Dojo Toolkit
La web como Plataforma con Dojo ToolkitLa web como Plataforma con Dojo Toolkit
La web como Plataforma con Dojo Toolkit
 
Eclipse
EclipseEclipse
Eclipse
 
Tutorial de eclipsee
Tutorial de eclipseeTutorial de eclipsee
Tutorial de eclipsee
 
9.laravel
9.laravel9.laravel
9.laravel
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Javascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryJavascript en proyectos reales: jQuery
Javascript en proyectos reales: jQuery
 
Taller de Django betabeers
Taller de Django betabeersTaller de Django betabeers
Taller de Django betabeers
 
Depurando Java Script - Programador PHP
Depurando Java Script - Programador PHPDepurando Java Script - Programador PHP
Depurando Java Script - Programador PHP
 
Symfony2
Symfony2Symfony2
Symfony2
 
PHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad WebPHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad Web
 
Maven Divide tu código, pruébalo y vencerás
Maven Divide tu código, pruébalo y vencerásMaven Divide tu código, pruébalo y vencerás
Maven Divide tu código, pruébalo y vencerás
 
Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain
 
Mi tutorial-eclipse
Mi tutorial-eclipseMi tutorial-eclipse
Mi tutorial-eclipse
 
Partes de la pantalla de eclipse
Partes de la pantalla de eclipsePartes de la pantalla de eclipse
Partes de la pantalla de eclipse
 
tutorial
tutorialtutorial
tutorial
 
Composer: Gestionando dependencias en PHP
Composer: Gestionando dependencias en PHP Composer: Gestionando dependencias en PHP
Composer: Gestionando dependencias en PHP
 

Andere mochten auch

Introducción al desarrollo en Plone
Introducción al desarrollo en PloneIntroducción al desarrollo en Plone
Introducción al desarrollo en PloneRoberto Allende
 
Plone 3 Products Development Cookbook
Plone 3 Products Development CookbookPlone 3 Products Development Cookbook
Plone 3 Products Development Cookbookmenttes
 
CMS + CRM: Integrando Plone y Salesforce
CMS + CRM: Integrando Plone y SalesforceCMS + CRM: Integrando Plone y Salesforce
CMS + CRM: Integrando Plone y Salesforcementtes
 
Plone 4 - Gegenwart und Zukunft (Pycon DE)
Plone 4 - Gegenwart und Zukunft (Pycon DE)Plone 4 - Gegenwart und Zukunft (Pycon DE)
Plone 4 - Gegenwart und Zukunft (Pycon DE)Timo Stollenwerk
 
Construindo uma Intranet Corporativa utilizando Plone
Construindo uma Intranet Corporativa utilizando PloneConstruindo uma Intranet Corporativa utilizando Plone
Construindo uma Intranet Corporativa utilizando Plonementtes
 
From copy to paster: A middle-class Plone developer tale
From copy to paster: A middle-class Plone developer taleFrom copy to paster: A middle-class Plone developer tale
From copy to paster: A middle-class Plone developer talementtes
 
El estado de Plone
El estado de PloneEl estado de Plone
El estado de Plonementtes
 
Management para emprendimientos: Lean Startup
Management para emprendimientos: Lean Startup Management para emprendimientos: Lean Startup
Management para emprendimientos: Lean Startup menttes
 

Andere mochten auch (9)

Introducción al desarrollo en Plone
Introducción al desarrollo en PloneIntroducción al desarrollo en Plone
Introducción al desarrollo en Plone
 
Plone 3 Products Development Cookbook
Plone 3 Products Development CookbookPlone 3 Products Development Cookbook
Plone 3 Products Development Cookbook
 
CMS + CRM: Integrando Plone y Salesforce
CMS + CRM: Integrando Plone y SalesforceCMS + CRM: Integrando Plone y Salesforce
CMS + CRM: Integrando Plone y Salesforce
 
Plone 4 - Gegenwart und Zukunft (Pycon DE)
Plone 4 - Gegenwart und Zukunft (Pycon DE)Plone 4 - Gegenwart und Zukunft (Pycon DE)
Plone 4 - Gegenwart und Zukunft (Pycon DE)
 
Construindo uma Intranet Corporativa utilizando Plone
Construindo uma Intranet Corporativa utilizando PloneConstruindo uma Intranet Corporativa utilizando Plone
Construindo uma Intranet Corporativa utilizando Plone
 
From copy to paster: A middle-class Plone developer tale
From copy to paster: A middle-class Plone developer taleFrom copy to paster: A middle-class Plone developer tale
From copy to paster: A middle-class Plone developer tale
 
Introducción a Plone y Zope - v0.1.8
Introducción a Plone y Zope - v0.1.8Introducción a Plone y Zope - v0.1.8
Introducción a Plone y Zope - v0.1.8
 
El estado de Plone
El estado de PloneEl estado de Plone
El estado de Plone
 
Management para emprendimientos: Lean Startup
Management para emprendimientos: Lean Startup Management para emprendimientos: Lean Startup
Management para emprendimientos: Lean Startup
 

Ähnlich wie Plone y frameworks

Primeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPrimeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPHP Vigo
 
MasterClass Desarrollo Plantillas Joomla!
MasterClass Desarrollo Plantillas Joomla!MasterClass Desarrollo Plantillas Joomla!
MasterClass Desarrollo Plantillas Joomla!SergioIglesiasNET
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plonementtes
 
Introducción a la programación para joomla
Introducción a la programación para joomlaIntroducción a la programación para joomla
Introducción a la programación para joomlaRoberto Segura
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios webjcarazo
 
Capacitación en “Desarrollo y personalización de Plone”
Capacitación en “Desarrollo y personalización de Plone”Capacitación en “Desarrollo y personalización de Plone”
Capacitación en “Desarrollo y personalización de Plone”Covantec R.L.
 
Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018
Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018
Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018nacho mascort
 
Ez platform-meetup-madrid-march-2018
Ez platform-meetup-madrid-march-2018Ez platform-meetup-madrid-march-2018
Ez platform-meetup-madrid-march-2018crevillo
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netAlberto Diaz Martin
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETAlberto Diaz Martin
 
#JoomlaIO - Desarrollo de Plantillas para Joomla!
#JoomlaIO - Desarrollo de Plantillas para Joomla!#JoomlaIO - Desarrollo de Plantillas para Joomla!
#JoomlaIO - Desarrollo de Plantillas para Joomla!SergioIglesiasNET
 
Taller de introducción al desarrollo web con Django
Taller de introducción al desarrollo web con DjangoTaller de introducción al desarrollo web con Django
Taller de introducción al desarrollo web con DjangoJuan Rodríguez
 
¡This is drupal! - Global Training Days
¡This is drupal! - Global Training Days¡This is drupal! - Global Training Days
¡This is drupal! - Global Training DaysLa Drupalera
 
Presentación sobre Display Suite en el Drupal Day Valencia 2012
Presentación sobre Display Suite en el Drupal Day Valencia 2012Presentación sobre Display Suite en el Drupal Day Valencia 2012
Presentación sobre Display Suite en el Drupal Day Valencia 2012Atenea tech
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosGeorge Navarro Gomez
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosGeorge Navarro Gomez
 

Ähnlich wie Plone y frameworks (20)

Django
DjangoDjango
Django
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a Django
 
Primeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPrimeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigo
 
MasterClass Desarrollo Plantillas Joomla!
MasterClass Desarrollo Plantillas Joomla!MasterClass Desarrollo Plantillas Joomla!
MasterClass Desarrollo Plantillas Joomla!
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plone
 
Introducción a la programación para joomla
Introducción a la programación para joomlaIntroducción a la programación para joomla
Introducción a la programación para joomla
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios web
 
Capacitación en “Desarrollo y personalización de Plone”
Capacitación en “Desarrollo y personalización de Plone”Capacitación en “Desarrollo y personalización de Plone”
Capacitación en “Desarrollo y personalización de Plone”
 
Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018
Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018
Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018
 
Ez platform-meetup-madrid-march-2018
Ez platform-meetup-madrid-march-2018Ez platform-meetup-madrid-march-2018
Ez platform-meetup-madrid-march-2018
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.net
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NET
 
#JoomlaIO - Desarrollo de Plantillas para Joomla!
#JoomlaIO - Desarrollo de Plantillas para Joomla!#JoomlaIO - Desarrollo de Plantillas para Joomla!
#JoomlaIO - Desarrollo de Plantillas para Joomla!
 
Dia2
Dia2Dia2
Dia2
 
Taller de introducción al desarrollo web con Django
Taller de introducción al desarrollo web con DjangoTaller de introducción al desarrollo web con Django
Taller de introducción al desarrollo web con Django
 
Welcome to Django
Welcome to DjangoWelcome to Django
Welcome to Django
 
¡This is drupal! - Global Training Days
¡This is drupal! - Global Training Days¡This is drupal! - Global Training Days
¡This is drupal! - Global Training Days
 
Presentación sobre Display Suite en el Drupal Day Valencia 2012
Presentación sobre Display Suite en el Drupal Day Valencia 2012Presentación sobre Display Suite en el Drupal Day Valencia 2012
Presentación sobre Display Suite en el Drupal Day Valencia 2012
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales Conceptos
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales Conceptos
 

Mehr von menttes

Plone 4 — what's up doc?
Plone 4 — what's up doc?Plone 4 — what's up doc?
Plone 4 — what's up doc?menttes
 
Reusando componentes Zope fuera de Zope
Reusando componentes Zope fuera de ZopeReusando componentes Zope fuera de Zope
Reusando componentes Zope fuera de Zopementtes
 
1001 formas de promover Python
1001 formas de promover Python1001 formas de promover Python
1001 formas de promover Pythonmenttes
 
Integrando Plone con cualquier cosa
Integrando Plone con cualquier cosaIntegrando Plone con cualquier cosa
Integrando Plone con cualquier cosamenttes
 
Menttes: 5 años emprendiendo con Software Libre
Menttes: 5 años emprendiendo con Software LibreMenttes: 5 años emprendiendo con Software Libre
Menttes: 5 años emprendiendo con Software Librementtes
 
Intranets flexibles y escalables con Plone
Intranets flexibles y escalables con PloneIntranets flexibles y escalables con Plone
Intranets flexibles y escalables con Plonementtes
 
No me hagas pensar. Buenas Prácticas para desarrollar en la web
No me hagas pensar. Buenas Prácticas para desarrollar en la webNo me hagas pensar. Buenas Prácticas para desarrollar en la web
No me hagas pensar. Buenas Prácticas para desarrollar en la webmenttes
 

Mehr von menttes (7)

Plone 4 — what's up doc?
Plone 4 — what's up doc?Plone 4 — what's up doc?
Plone 4 — what's up doc?
 
Reusando componentes Zope fuera de Zope
Reusando componentes Zope fuera de ZopeReusando componentes Zope fuera de Zope
Reusando componentes Zope fuera de Zope
 
1001 formas de promover Python
1001 formas de promover Python1001 formas de promover Python
1001 formas de promover Python
 
Integrando Plone con cualquier cosa
Integrando Plone con cualquier cosaIntegrando Plone con cualquier cosa
Integrando Plone con cualquier cosa
 
Menttes: 5 años emprendiendo con Software Libre
Menttes: 5 años emprendiendo con Software LibreMenttes: 5 años emprendiendo con Software Libre
Menttes: 5 años emprendiendo con Software Libre
 
Intranets flexibles y escalables con Plone
Intranets flexibles y escalables con PloneIntranets flexibles y escalables con Plone
Intranets flexibles y escalables con Plone
 
No me hagas pensar. Buenas Prácticas para desarrollar en la web
No me hagas pensar. Buenas Prácticas para desarrollar en la webNo me hagas pensar. Buenas Prácticas para desarrollar en la web
No me hagas pensar. Buenas Prácticas para desarrollar en la web
 

Kürzlich hochgeladen

TENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfTENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfJoseAlejandroPerezBa
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskbydaniela5
 
Tecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaTecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaElizabethLpezSoto
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdflauralizcano0319
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y maslida630411
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888ElianaValencia28
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024anasofiarodriguezcru
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 

Kürzlich hochgeladen (20)

TENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfTENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
 
Tecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaTecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestría
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y mas
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 

Plone y frameworks