Framework, CMS, Comunidad y Software Libre

Joaquín Bravo

http://axai.com.mx

¿Quienes son ustedes?

  • ¿Qué carreras?
  • ¿Qué semestre?
  • ¿Cuántas clases de programación han tenido?
  • ¿Cuál es su lenguaje favorito?
    • ¿Orientado a objetos o estructural?
    • ¿Compilado o interpretado?
    • ¿Tipos estáticos o dinámicos?
  • ¿Cuál es su editor o IDE favorito?
  • ¿Cuál es su sistema operativo favorito?

¿Qué es Drupal?


¿Por qué Drupal?

¿Cómo desarrollan páginas web?


¿Cómo desarrollan páginas?



  • HTML
  • CSS
  • Tal vez Javascript

Geocities



Pero yo quiero una página dinámica

El poder del HTML

Este no es el Internet de nuestros padres


  • Hosting gratis en neocities.org o en github.com
  • Comentarios con facebook o disqus.com
  • Videos con youtube o vimeo
  • Mapas dinámicos con leaflet o google maps
  • Formularios con Google Drive Forms, Mailchimp, SurveyMonkey

El poder del HTML


¿Por qué Drupal?

¿Cómo desarrollan páginas?


Como me ensañaron en la escuela:

  • Servidor web (IIS, Apache, Nginx?)
  • Lenguaje de programación (PHP, Java)


<!DOCTYPE html>
<html>
<head><title>Hola!</title></head>
<body>
<?php

echo "Hola desde la web<br>";
echo "Hoy es " . date('r');

?>
</body>
</html>

¿Cómo desarrollan páginas?


Usando bases de datos para guardar y actualizar:

  • El contenido de las páginas
  • Los usuarios que pueden modificar el contenido
  • Los clientes que han solicitado información para saber a quienes mandarles spam
  • Los productos o servicios que ofreces

¿Cómo desarrollan páginas?



 <?php

include('connect.php');

$result = mysql_query("SELECT id, name FROM students");

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf("ID: %s Name: %s", $row[0], $row[1]);
}

¿Cómo desarrollan páginas web?


  1. Primero haces copy paste de código
  2. Haces tu propia colección de funciones
  3. Creas clases que encapsulan funcionalidades básicas
  • O las copias de phpclasses.org
  • Copias tu proyecto anterior
  • ¡Felicidades!


    Haz creado tu propio Framework.

    Quien no conoce la historia

    (de PHP)

    está condenado a repetirla

    (en su propio framework)

    ¿Qué es un framework?


    Es el fruto de la flojera de los programadores

    ¿Qué es un framework?


    Librería de funciones y clases comunes
    • Conectarse a la BD
    • Mandar correos
    • Autenticación y Autorización (usuarios y permisos)

    ¿Qué es un framework?


    Librería de funciones y clases que no se te han ocurrido:
    • Validación de formularios (SQL Injection)
    • Filtrar la salida (XSS)
    • Cachar el contenido para mejorar el desempeño (DDoS)
    • Generadores de código
    • Instalador
    • Actualizaciones a la BD
    • Pruebas automáticas

    ¿Qué es un framework?


    • Librería de funciones y clases
    • Estructura de archivos
    • Estándar y convenciones

    Web Frameworks

    Mientras más grande es tu framework más lenta es tu aplicación


    Mientras más minimalista es tu framework más tienes que programar tú


    Aunque suene poco intuitivo, los frameworks minimalistas son para expertos


    Usar un framework es pararse sobre los hombros de gigantes

    Ejemplos de Web Frameworks

    Ejemplos de frameworks

    CMS

    Content Management System

    Manejadores de Contenido


    Son la aplicación más genérica para el Internet


    Web 2.0

    :P

    Usos de un CMS


    • Blog
    • Catálogo / Portafolio
    • ¿Quiénes somos?
    • Intranet


    30% de todos los sitios en Internet usan un CMS


    Los 3 más usados: Wordpress, Joomla y Drupal

    LAMP

    Wordpress, Joomla, Drupal



    Alexa, incluyendo subdominios. (diresnote)

    Ejemplos de CMS

    Wordpress: Playmobil.

    Es más sencillo y fácil de usar


    Drupal: Lego.

    Necesitas unir varias piezas para que haga algo

    pero es más flexible



    Buena comparación aquí

    Curva de aprendizaje





    Wordpress recien instalado




    Drupal recién instalado




    Drupal + módulos

    Drupal


    CMF: Content Management Framework


    • Fields (CCK). Crear tus propios tablas
    • Views. Crear vistas de tus tablas
    • Panels. Crear páginas con su propio layout
    • Features. Guardar tus configuraciones en código




    Drupal en acción

    El poder de Drupal


    • Taxonomías, categorización de contenido
    • Permisos y roles de usuarios
    • Seguridad (equipo de seguridad)
    • Distribuciones y features

    Otros usos


    Software Libre


    Llegas por el código, te quedas por la comunidad


    http://groups.drupal.org
    /spanish
    /mexico
    /guadalajara

    contribuciones


    • Código
    • Documentación
    • Pruebas (probar parches)
    • Cursos
    • Traducciones

    Drupal mexico




    http://drupalcamp.mx


    @drupalgdl

    Framework, CMS, comunidad

    By jackbravo

    Framework, CMS, comunidad

    • 1,125