[gugs] transpas seminario slashcode

Miquel Vidal miquel en sindominio.net
Lun Sep 24 03:09:40 CEST 2001


para quien esté interesado/a en el seminario sobre slashcode y no
pueda asistir mañana lunes a la Universidad (10,30h, URJC, Móstoles),
aquí van las transparencias de álvaro, en formato MagicPoint y HTML.

saludos,

m.

-- 
Miquel Vidal             |   Using Debian GNU/Linux sid  
miquel en sindominio.net    |   miquel en barrapunto.com
http://sindominio.net    |   http://mi.barrapunto.com/yonderboy 
Key fingerprint = 9816 F967 FD3C A4AA DD67 0DF7 8CD0 6F1A F724 244F
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: /pipermail/gugs/attachments/20010924/c01f0794/slash.html
------------ próxima parte ------------
%include "default.mgp"
%default 1 bgrad
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
%nodefault
%center, size 7, font "standard", fore "white", vgap 20

Slashcode: Un servidor de aplicaciones libre

%image "barrapunto.jpg"

%fore "yellow", size 5
Alvaro del Castillo San Félix
acs en barrapunto.com: http://barrapunto.com
Desarrollador de slashcode de Barrapunto

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Indice de la presentación (I)

	Breve historia de slashcode: Slashdot y Barrapunto
	Problemas con slashcode pre 2.0
	Slashcode 2.0: características principales
		Organización del software
		Integración con Apache con mod_perl
		Sistema de acceso a base de datos
		Presentaciónn de HTML/XML basada en plantillas
		La API de slashcode
		Programación mixta: CGI y aplicaciones son lo mismo
		Sindicación de contenidos
		Rendimiento: 75 páginas/segundo Slashdot 11 de Septiembre

%fore "yellow"
slashcode: servidor de aplicaciones libre

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Indice de la presentación (II)

	Funcionalidad propia de Barrapunto
                Sección EnBruto
                Índices
                MiBarrapunto
                Ecoluciones
		ACL como sustituto de seclev
        Extendiendo slashcode: PLUGINS
		Descripción de un PLUGIN
		Datos, lógica y presentación (MVC)
                Extensiones de Barrapunto como plugins
                Ejemplos: Repositorio de plugins, Bolsa de Trabajo, Estadísticas
        Futuro de slashcode
	Desarrollo abierto
	Referencias
	Conclusiones

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Breve historia de slashcode: Slashdot y Barrapunto

	Barrapunto comienza su andadura en Junio de 1999
	Software de slashdot: estabilidad y escalabilidad
	Potencia de Perl superior a PHP y otras soluciones
	Barrapunto evoluciona de 0.3, a 1.09 y 2.0
	Integración con el equipo de desarrolladores de slashcode
	Migración en Septiembre de 2001 a slashcode 2.0

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Problemas con slashcode pre 2.0

	Primera versión 0.2 era el primer programa Perl de Rob Malda
	Mezcla de lógica, visualización y gestión de datos: Perl+SQL+HTML
	SQL no portable específico de MySQL
	Una única librería: Slash.pm
	Funcionalidad repartida por varios ficheros Perl ".pl"
	Difícil de mantener, extender y poco escalable

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Slashcode 2.0: características principales

Organización del código

	Conjunto de librerías comúnes
	Esquemas de la base de datos comúnes
	Temas personalizables: plantillas, programas Perl y elementos de BD
	El Tema de Barrapunto

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Slashcode 2.0: características principales

Integración con Apache con mod_perl

	Uso intensivo de la API de mod_perl
	Posibilidad de actuar sobre las fases de petición HTTP
	Abstracción que permite uso de "pl" fuera de Apache

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Slashcode 2.0: características principales

Sistema de acceso a base de datos

	Definición clara de la interfaz de acceso a datos: Slash::DB
	Parte común para todas las bases de datos: Slash::DB::Utility
	Completa y optimizada implementación de Slash::DB para MySQL
	Soporte de Postgres y Oracle avanzando

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Slashcode 2.0: características principales

Presentación de HTML/XML basada en plantillas

	Sistema basado en Template Toolkit de Perl: rápido y extensible
	Todo el HTML y mensajes sólo aparece en plantillas y BD
	Slash::Display como librería de visualización
	Programación de plantillas muy potente
	Sencilla traducción a otros idiomas
	Diferentes juegos de plantillas para páginas y secciones
	Separación de mundos: programador y diseñador
	API de Slash disponible desde las plantillas

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Slashcode 2.0: características principales

La API de slashcode

	Completa API para la gestión de usuarios y sus características 
	Elementos comúnes disponibles en la API:
		Menús de usuario, administrador y plugins
		Listas desplegables
		Acceso a historias, votaciones, secciones y temas
		Titulares y cajas de datos
		Limpieza y filtrado de datos de los usuarios
	Facilita mucho la extensibilidad por PLUGINS
	API disponible facilmente ampliable por PLUGINS y librerías Perl
	
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Slashcode 2.0: características principales

Programación mixta: CGI y aplicaciones son lo mismo

	Llamada createEnvironment($virtual_user): simula entorno mod_perl
	Evita el uso del navegador y servidor de web	
	Pruebas unitarias de módulos y plugins
	Mayor facilidad de depuración y detección de errores
	Entorno de desarrollo tradicional

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Slashcode 2.0: características principales

Sindicación de contenidos

	Desde el inicio de vida de slashcode: ultramode
	Adopción de XML y RSS (RDF) para el intercambio de datos
	Librerías para exportar datos en XML (actualmente RSS)
	Facilidad de importación de contenidos y agregación
	http://newsglut.com: SlashFeed plugin - Agregación de contenidos pura

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Slashcode 2.0: características principales

Rendimiento: 75 páginas/segundo Slashdot 11 de Septiembre

	Grandes mejoras de rendimiento en slash 2.1
	Sistema de cache de información que evita acceso a base de datos
	Peticiones SQL optimizadas
	Tope teórico de 6  millones páginas/días con configuración de slashdot (6 máquinas)
	Tope de 100.000 páginas/día con una sóla máquina (Dual PIII 1 GB RAM)
	Posibilidad de separar servidor base de datos y servidor web

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Funcionalidad propia de Barrapunto

Sección EnBruto

	Necesidad de asegurar que los lectores confiaran en la no censura
	Desarrollo del plugin CrudeStories
	Toda historia recibida es incluída en la sección "EnBruto"
	Problemas legales
	Una de las secciones más visitadas

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Funcionalidad propia de Barrapunto

Índices

	En slashcode una historia sólo pertence a una sección
	Una historia puede organizarse por distintas vistas: tablas de índices
	Índices automáticas de noticias basadas en peticiones SQL
		Más visitadas/comentadas
		Todas las historias
		Todas las historias de los MiBarrapunto
		Todas las historias de las secciones oficiales
		Secciones internacionales
	Mecanismo básico para los MiBarrapunto
	Funcionalidad resumida en el plugin VirtualSections

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Funcionalidad propia de Barrapunto

MiBarrapunto

	Dar a los usuarios de Barrapunto sus propios MiBarrapunto
	Los MiBarrapunto se llenan con noticias originales o seleccionadas
	de otros sitios
	Punto de vista de cada usuario de Barrapunto
	Diversificación de puntos de vista
	Altavoz de la comunidad
	Cientos de periodistas trabajando: Más de 600

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Funcionalidad propia de Barrapunto

Ecoluciones

	Una noticia se recibe, se edita y se publica
	Las noticias se puede actualizar posteriormente por los editores
	¿Cómo podrían los usuarios personalizar las noticias?
	Un usuario puede moficiar a su gusto los contenidos ecolucionandolos
	generando nuevos contenidos más ricos y publicados en los MiBarrapunto
	Los editores oficiales pueden captar noticias de los MiBarrapunto
	y pasarlas a portada ecolucionándolas
	Edición compartida y recursiva
	Mayor contexto y contraste de las noticias: ¿Periodismo del próximo siglo?

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Funcionalidad propia de Barrapunto

Sistema de autorización basado en ACLs
	
	Problemas con el actual sistema de seclev
		Intersecciones de autorizaciones
		Falta de granularidad
		Ningún contenido semántico
	ACL: acceso a recursos basado en propiedades (ACLs)
		Lectura, inserción y borrado de secciones
		Administración de ACLs 
		Sistema facilmente extensible
		Sencilla interfaz para la gestión de ACLs
		Alto contenido semántico
	Incluído parcialmente slash 2.0

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Extendiendo slashcode: PLUGINS

Descripción de un PLUGIN

	Fichero PLUGIN
	name=Jobs
	description="Jobs manage system"
	mysql_schema=mysql_schema.sql
	mysql_dump=dump
	htdoc=jobs.pl
	...
	template=templates/show;jobs;default
	template=templates/new;jobs;default
	....

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Extendiendo slashcode: PLUGINS

Datos, lógica y visualización

	Datos: esquemas de la base de datos (mysql_scherma) y datos iniciales (dump)
	Lógica: Librería y programas Perl
	Visualización: conjunto de plantillas propio

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Extendiendo slashcode: PLUGINS

Instalación de plugins: PLUGIN
	
	Desarrollo como módulo Perl: h2xs
	Librerías asociadas
	Pruebas unitarias
	Instalación con install-plugin usando PLUGIN

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Extendiendo slashcode: PLUGINS

Extensiones de Barrapunto como plugins

	ACL
	AdminACL
	AutoStories
	CrudeStories
	MySlash
	VirtualSections

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Extendiendo slashcode: PLUGINS

Ejemplos

	Repositorio de plugins (Repository)
	Bolsa de Trabajo (Jobs)
	Caja de patrocinadores (Sponsors)
	Diarios personales (Journal)
	Sistema de seguimiento de fallos (LadyBug)
	Concentrador de RDFs de sitios de noticias (SlashFeed)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

El futuro de slashcode

	Mejoras continuas en el rendimiento
	Extensión a través de plugins
	Congelación de la arquitectura básica
	Migración de funcionalidad hacia plugins
	Soporte de otros tipos de visualización como WML
	Abrir la API a través de SOAP, XML::RPC

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Desarrollo abierto de slashcode

	Software cubierto por licencia GPL
	Desarrollo basado en CVS
	Listas de correo de anuncios, general, desarrollo e internacionalización
	Equipo de desarrolladores muy activos y competentes
	Comunidad reunidad alrededor de slashcode.com
	Fácil colaborar a través de plugins y temas
	Posibilidad de desarrollar plugins cerrados

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Referencias

	http://barrapunto.com: Barrapunto
	http://slashdot.org: Slashdot
	http://slashcode.com: Comunidad de desarrolladores de slashcode
	http://sourceforge.net/projects/slashcode: Desarrollo en Sourceforge
	irc.slashcode.com, #slashcode: Punto de encuentro de desarrolladores

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Conclusiones

	slashcode ha pasado de ser un gestor de historias a un gestor de contenidos
	La nueva arquitectura le está llevando a ser un gestor de aplicaciones
	Su desarrollo ha sido muy activo durante varios años
	Se asegura la migración sencilla entre versiones
	Es estable, flexible, potente y es muy escalable
	Núcleo de desarrolladores contratado por OSDN/VA Linux
	Comunidad creciente de usuarios y desarrolladores
	Licencia GPL y posibilidad de extensiones cerradas
	Todos los elementos necesarios para el desarrollo rápido de
	sitios muy interactivos en la red
	¿Problema de Perl?
	
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
%nodefault
%center, size 7, font "standard", fore "white", vgap 20

Slashcode: Un servidor de aplicaciones libre

%image "barrapunto.jpg"

%fore "yellow", size 5
Alvaro del Castillo San Félix
acs en barrapunto.com: http://barrapunto.com
Desarrollador de slashcode de Barrapunto


Más información sobre la lista de distribución Gugs