PHP
Es un lenguaje
de programación interpretado,
diseñado originalmente para la creación de páginas web dinámicas.
Se usa principalmente para la interpretación del lado del servidor (server-side
scripting) pero actualmente puede ser utilizado desde una interfaz de línea de
comandos o
en la creación de otros tipos de programas incluyendo aplicaciones con interfaz
gráfica usando
las bibliotecas Qt o GTK+.
Es un acrónimo
recursivo que
significa PHP
Hypertext Pre-processor (inicialmente PHP Tools,
o, Personal
Home Page Tools). Fue creado originalmente por Rasmus Lerdorf en 1994; sin
embargo la implementación principal de PHP es producida ahora por The PHP Group
y sirve como el estándar de facto para PHP al no haber una especificación
formal. Publicado bajo la PHP License, la Free Software Foundation considera
esta licencia como software libre.
Puede ser desplegado en la
mayoría de los servidores web y en casi todos los sistemas operativos y
plataformas sin costo alguno. El lenguaje PHP se encuentra instalado en más de
20 millones de sitios web y en un millón de servidores, el número de sitios en
PHP ha compartido algo de su preponderante sitio con otros nuevos lenguajes no
tan poderosos desde agosto de 2005. Este mismo sitio web de Wikipedia está
desarrollado en PHP. Es también el módulo Apache más popular entre las
computadoras que utilizan Apache como servidor web.
El gran parecido que posee PHP
con los lenguajes más comunes de programación
estructurada, como C y Perl, permiten a la
mayoría de losprogramadores crear aplicaciones
complejas con una curva de aprendizaje muy corta. También les permite
involucrarse con aplicaciones de contenido dinámico sin tener que aprender todo
un nuevo grupo de funciones.
Aunque todo en su diseño está orientado a facilitar la creación de
sitios webs, es posible crear aplicaciones con una interfaz gráfica para el usuario, utilizando la extensión PHP-Qt o PHP-GTK. También puede ser usado
desde la línea
de órdenes, de la misma manera como Perl o Python pueden hacerlo; a esta
versión de PHP se la llama PHP-CLI (Command Line Interface).
Permite la conexión a diferentes tipos de servidores de bases de datos
tales como MySQL, PostgreSQL, Oracle, ODBC, DB2, Microsoft
SQL Server, Firebird y SQLite
Ventajas
Es un lenguaje multiplataforma.
Orientado al desarrollo de aplicaciones web dinámicas con
acceso a información almacenada en una base de datos.
El código fuente escrito en PHP es invisible al navegador web y al cliente ya
que es el servidor el que se encarga de ejecutar el código y enviar su
resultado HTML al navegador.
Esto hace que la programación en PHP sea segura y
confiable.
Capacidad de conexión con la mayoría de los motores
de base de datos que se utilizan en la actualidad, destaca su conectividad conMySQL y PostgreSQL.
Capacidad de expandir su potencial utilizando
módulos (llamados ext's o extensiones).
Posee una amplia documentación en su sitio web
oficial, entre la cual se destaca que todas las funciones del sistema están
explicadas y ejemplificadas en un único archivo de ayuda.
Es libre,
por lo que se presenta como una alternativa de fácil acceso para todos.
Permite aplicar técnicas de programación
orientada a objetos.
Biblioteca nativa de funciones sumamente amplia e
incluida.
No requiere definición de tipos de variables aunque
sus variables se pueden evaluar también
por el tipo que estén manejando en
tiempo de ejecución.
Tiene manejo de excepciones (desde PHP5).
Si bien PHP no obliga a quien lo usa a seguir una
determinada metodología a la hora de
programar (muchos otros lenguajes tampoco
lo hacen), aun haciéndolo, el programador
puede aplicar en su trabajo cualquier
técnica de programación o de desarrollo que le permita
escribir código
ordenado, estructurado y manejable. Un ejemplo de esto son los desarrollos
que
en PHP se han hecho delpatrón de diseño Modelo
Vista Controlador (MVC),
que
permiten separar el tratamiento y acceso a los datos, la lógica de
control y
la interfaz de
usuario en
tres componentes independientes.
Inconvenientes
Como es un lenguaje que se interpreta en ejecución,
para ciertos usos puede resultar un inconveniente que el código fuente no pueda
ser ocultado. La ofuscación es una técnica que
puede dificultar la lectura del código pero no la impide y, en ciertos casos,
representa un costo en tiempos de ejecución.
Instalación de PHP
Como
todo lenguaje de lado servidor, PHP, requiere de la instalación de un servidor
en nuestro PC para poder trabajar en local. Este modo de trabajo resulta a
todas luces más práctico que colgar los archivos por FTP en el servidor y
ejecutarlos desde Internet.
Así pues, antes comenzar a crear
nuestros programas en PHP, es necesario:
- Convertir nuestro ordenador en un
servidor. Esto se hace instalando uno de los varios servidores disponibles para
el sistema operativo de nuestra máquina.
- Introducir en nuestro servidor los archivos
que le permitirán la comprensión del PHP. Estos archivos pueden ser
descargados, en su versión más actual, de la página oficial de PHP.
APACHE
El
proyecto Apache HTTP Server es un esfuerzo para desarrollar y mantener
un servidor HTTP de código abierto para sistemas operativos modernos,
incluyendo UNIX y Windows NT.
El objetivo de este proyecto es proporcionar un servidor seguro,
eficiente y extensible que proporciona servicios de HTTP en sincronía
con los estándares HTTP actuales.
Servidor web Apache es el servidor web más popular en Internet desde
abril de 1996, y celebró su cumpleaños número 15 como un proyecto de
este mes de febrero.
El Apache HTTP Server ("httpd") es un proyecto de la Apache Software Foundation.
Historia de
Apache
La primera versión del servidor web Apache fue
desarrollada por Robert McCool, quien desarrollaba el servidor web NCSA HTTPd
(National Center for Supercomputing Applications). Cuando Robert dejó el NCSA a
mediados de 1994, el desarrollo de httpd se detuvo.
Robert McCool buscó
otros desarrolladores para que lo ayudaran, formando el Apache Group. Algunos
miembros del grupo original fueron Brian Behlendorf, Roy T. Fielding, Rob
Hartill, David Robinson, Cliff Skolnick, Randy Terbush, Robert S. Thau, Andrew
Wilson, Eric Hagberg, Frank Peters y Nicolas Pioch.
La versión 2 del servidor. Apache fue una reescritura sustancial de
la mayor parte del código
de Apache 1.x, enfocándose en una mayor modularización y el desarrollo de una
capa de portabilidad,
el Apache Portable Runtime.
Apache 2.x incluyó
multitarea en UNIX,
mejor soporte para plataformas no
UNIX (como Windows), una nueva API Apache y
soporte para IPv6.
La versión 2 estable de
Apache, fue lanzada el 6 de abril de 2002.
Características de
Apache
·
Soporte para los lenguajes
perl, python, tcl y PHP.
·
Módulos de autenticación: mod_access,
mod_auth y mod_digest.
·
Soporte para SSL y TLS.
·
Permite la configuración de
mensajes de errores personalizados y negociación de contenido.
·
Permite autenticación de base de datos
basada en SGBD.
Uso de Apache
Apache es
principalmente usado para servir páginas web estáticas y dinámicas en la
WWW. Apache es el
servido web
del popular sistema XAMP, junto con MySQL y los lenguajes de
programación PHP/Perl/Python. La "X"
puede ser la inicial de cualquier sistema
operativo, si es Windows:
WAMP, si es el Linux: LAMP, etc.
MySQL
MySQL es un sistema
de gestión de bases de datos relacional, multihilo y multiusuario con más de seis
millones de instalaciones.MySQL AB —desde
enero de 2008 una subsidiaria de Sun Microsystems y ésta a su vez de Oracle
Corporation desde
abril de 2009— desarrolla MySQL como software libre en un esquema de
licenciamiento dual.
Por un lado se ofrece bajo la GNU
GPL para
cualquier uso compatible con esta licencia, pero para aquellas empresas que
quieran incorporarlo en productos privativos deben comprar a la
empresa una licencia específica que les permita este uso. Está desarrollado en
su mayor parte en ANSI C.
Al contrario de proyectos como Apache,
donde el software es desarrollado por una comunidad pública y los derechos de autor del código están
en poder del autor individual, MySQL es patrocinado por una empresa privada,
que posee el copyright de la mayor parte del código.
Esto es lo que posibilita el
esquema de licenciamiento anteriormente mencionado. Además de la venta de
licencias privativas, la compañía ofrece soporte y servicios. Para sus
operaciones contratan trabajadores alrededor del mundo que colaboran vía Internet. MySQL AB fue
fundado por David
Axmark, Allan
Larsson y Michael
Widenius.
MySQL es muy utilizado en aplicaciones web, como Drupal o phpBB, en plataformas
(Linux/Windows-Apache-MySQL-PHP/Perl/Python), y por herramientas de seguimiento
de errores
como Bugzilla. Su popularidad como aplicación web está muy ligada a PHP, que a menudo aparece
en
combinación con MySQL. MySQL es una base de datos muy rápida en la lectura cuando
utiliza el
motor no transaccional MyISAM, pero puede provocar
problemas de integridad en entornos de alta
concurrencia en la modificación. En
aplicaciones web hay baja concurrencia en la modificación de
datos y en cambio
el entorno es intensivo en lectura de datos, lo que hace a MySQL ideal para
este
tipo de aplicaciones. Sea cual sea el entorno en el que va a utilizar
MySQL, es importante
monitorizar de antemano el rendimiento para detectar y
corregir errores tanto de SQL como de
programación.
Características
Usa GNU Automake, Autoconf, y Libtool para
portabilidad
Uso de multihilos mediante hilos del kernel.
Usa tablas en disco b-tree para búsquedas rápidas
con compresión de índice
Tablas hash en memoria temporales
El código MySQL se prueba con Purify (un detector
de memoria perdida comercial) así como con Valgrind, una herramienta GPL.
Completo soporte para operadores y funciones en
cláusulas select y where.
Completo soporte para cláusulas group by y order
by, soporte de funciones de agrupación
Seguridad: ofrece un sistema de contraseñas y
privilegios seguro mediante verificación basada en el host y el tráfico de
contraseñas está cifrado al conectarse a un servidor.
Soporta gran cantidad de datos. MySQL Server tiene
bases de datos de hasta 50 millones de registros.
Se permiten hasta 64 índices por tabla (32 antes de
MySQL 4.1.2). Cada índice puede consistir desde 1 hasta 16 columnas o partes de
columnas. El máximo ancho de límite son 1000 bytes (500 antes de MySQL 4.1.2).
Los clientes se conectan al servidor MySQL usando
sockets TCP/IP en cualquier plataforma. En sistemas Windows se pueden conectar
usando named pipes y en sistemas Unix usando ficheros socket Unix.
En MySQL 5.0, los clientes y servidores Windows se
pueden conectar usando memoria compartida.
MySQL contiene su propio paquete de pruebas de
rendimiento proporcionado con el código fuente de la distribución de MySQL.
Otras funcionalidades de las listas de correo
- Anuncios: informan sobre nuevas versiones de MySQL y programas relacionados.
- MySQL: lista principal de discusión de MySQL y sql.
- Bugs: permite a la gente buscar y arreglar bugs.
- Temas internos: para gente que trabaja con el código de MySQL. Es el fórum para discutir sobre el desarrollo de MySQL.
- MySQLdoc: para gente que trabaja en documentación.
- Pruebas de rendimiento: para gente interesada en temas de rendimiento no sólo de MySQL, sino de otros motores de bases de datos.
- Empaquetadores: para discusiones sobre empaquetamiento y distribución de MySQL.
- Java: discusiones sobre MySQL Server y Java.
Otras listas de correo son: MyODBC, Herramientas GUI, Cluster, Dotnet, PlusPlus y Perl.
PHPMyAdmin
PhpMyAdmin es una herramienta
escrita en PHP con la intención
de manejar la administración de MySQL a través de
páginas web, utilizando Internet.
Actualmente puede crear y eliminar Bases de Datos, crear, eliminar y alterar tablas, borrar, editar y
añadir campos, ejecutar
cualquier sentencia SQL,
administrar claves en campos, administrar privilegios, exportar datos en varios
formatos y está disponible en 62 idiomas. Se encuentra disponible bajo la
licencia GPL.
Este proyecto se encuentra
vigente desde el año 1998,
siendo el mejor evaluado en la comunidad de descargas de SourceForge.net como
la descarga del mes de diciembre del 2002.
Como esta herramienta corre en máquinas con Servidores Webs y Soporte de PHP y MySQL,
la tecnología utilizada ha ido variando durante su desarrollo.
Instalando phpMyAdmin
Una vez descargada la última versión la tenemos que descomprimir, con lo que obtendremos los
Una vez descargada la última versión la tenemos que descomprimir, con lo que obtendremos los
ficheros PHP que conforman la
herramienta y colocarlos dentro del directorio de publicación de nuestro
servidor web.
Lo
primero que podemos leer es el archivo de la documentación, que encontramos
junto con los
archivos de phpMyAdmin. Explica datos generales del programa,
como sus requerimientos,
instrucciones de instalación, configuración, preguntas
frecuentes, etc.
Posteriormente, tal como explica la documentación, hay que editar el archivo config.inc.php para
cambiar los valores de host de la base de datos (ordenador que tiene
instalado el MySQL) y el usuario
y password con el que nos conectamos. Se
pueden configurar muchos aspectos en la herramienta,
aunque ahora solo
comentaré los que he encontrado esenciales para hacerla funcionar, en la
documentación tenemos un apartado dedicado por completo a especificar el
sentido de cada variable.
$cfgPmaAbsoluteUri
Debemos
asignarlo a la ruta completa necesaria para acceder a phpMyAdmin. Podría ser
algo como http://localhost/phpMyAdmin o http://www.midominio.com/phpMyAdmin
$cfgServers[$i]['host']
string
El
nombre del host de la base de datos. Por ejemplo localhost, si es que es el
mismo ordenador donde estamos instalandos phpMyAdmin y la base de datos.
También podría ser la dirección IP del ordenador al que nos conectamos.
$cfgServers[$i]['user']
string
$cfgServers[$i]['password'] string
$cfgServers[$i]['password'] string
El
par usuario/contraseña que debe utilizar phpMyAdmin para conectarse con el
servidor MySQL.
Con
estas sencillas configuraciones ya podemos acceder a phpMyAdmin y trabajar con
nuestra base
de datos a golpe de ratón, que resulta muy de agradecer teniendo
en cuenta que, en caso de no
tener esta herramienta u otra parecida, la otra
opción consistiría en utilizar el lenguaje SQL, y, en caso
de que la base de
datos esté alojada remotamente en Internet, no podríamos hacerlo sino es con
acceso por TELNET al servidor de la base de datos.
UNIX SO
Unix se trata
de un sistema operativo
de los mas utilizados y con mas futuro debido a que son muchos
organismos oficiales y particulares los que defienden su
utilización, así como muchas firmas de
fabricación y comercialización de computadoras
que lo incorporan en sus productos.
Podemos citar el ejemplo de la Comunidad
Económica Europea, que impone el sistema operativo
UNIX en todas las aplicaciones que se desarrollan bajo sus
auspicios.
Unix es un sistema operativo de tiempo compartido, controla los recursos de una computadora y los asigna entre los usuarios. Permite a los usuarios correr sus programas. Controla los dispositivos de periféricos conectados a la máquina. Además es un sistema multiusuario, en el que existe la portabilidad para la implementación de distintas computadoras.
Esta formado por una serie de elementos que pueden representarse en forma de capas concéntricas donde, en primer lugar, alrededor del hardware, aislando a este de los usuarios, además de adaptar el resto del sistema operativo a la maquina debido a la portabilidad que existe en el mismo.
Características Generales:
Es un sistema operativo de tiempo compartido, controla los recursos de una computadora y los asigna entre los usuarios. Permite a los usuarios correr sus programas. Controla los dispositivos de periféricos conectados a la máquina.
Posee las siguientes características:
- Es un sistema operativo multiusuario, con capacidad de simular multiprocesamiento y procesamiento no interactivo.
- Está escrito en un lenguaje de alto nivel: C.
- Dispone de un lenguaje de control programable llamado SHELL.
- Ofrece facilidades para la creación de programas y sistemas y el ambiente adecuado para las tareas de diseños de software.
- Emplea manejo dinámico de memoria por intercambio o paginación.
- Tiene capacidad de interconexión de procesos.
- Permite comunicación entre procesos.
- Emplea un sistema jerárquico de archivos, con facilidades de protección de archivos, cuentas y procesos.
- Tiene facilidad para redireccionamiento de Entradas/Salidas.
- Garantiza un alto grado de portabilidad.
Unix es un sistema operativo de tiempo compartido, controla los recursos de una computadora y los asigna entre los usuarios. Permite a los usuarios correr sus programas. Controla los dispositivos de periféricos conectados a la máquina. Además es un sistema multiusuario, en el que existe la portabilidad para la implementación de distintas computadoras.
Esta formado por una serie de elementos que pueden representarse en forma de capas concéntricas donde, en primer lugar, alrededor del hardware, aislando a este de los usuarios, además de adaptar el resto del sistema operativo a la maquina debido a la portabilidad que existe en el mismo.
Características Generales:
Es un sistema operativo de tiempo compartido, controla los recursos de una computadora y los asigna entre los usuarios. Permite a los usuarios correr sus programas. Controla los dispositivos de periféricos conectados a la máquina.
Posee las siguientes características:
- Es un sistema operativo multiusuario, con capacidad de simular multiprocesamiento y procesamiento no interactivo.
- Está escrito en un lenguaje de alto nivel: C.
- Dispone de un lenguaje de control programable llamado SHELL.
- Ofrece facilidades para la creación de programas y sistemas y el ambiente adecuado para las tareas de diseños de software.
- Emplea manejo dinámico de memoria por intercambio o paginación.
- Tiene capacidad de interconexión de procesos.
- Permite comunicación entre procesos.
- Emplea un sistema jerárquico de archivos, con facilidades de protección de archivos, cuentas y procesos.
- Tiene facilidad para redireccionamiento de Entradas/Salidas.
- Garantiza un alto grado de portabilidad.
Filosofía de
UNIX
Las ideas principales de UNIX fueron derivadas del
proyecto
MULTICS (Multiplexed Information and Computing Service) del MIT y
de General Electric. Estas ideas son:
- Todo se maneja como cadena de bytes: Los dispositivos periféricos, los archivos y los comandos pueden verse como secuencias de bytes o como entes que las producen. Por ejemplo, para usar una terminal en UNIX se hace a través de un archivo (generalmente en el directorio /dev y con nombre ttyX).
- Manejo de tres descriptores estándares: Todo comando posee tres descriptores por omisión llamados 'stdin', 'stdout' y 'stderr', los cuales son los lugares de donde se leen los datos de trabajo, donde se envían los resultados y en donde se envían los errores, respectivamente. El 'stdin' es el teclado, el 'stdout' y el 'stderr' son la pantalla por omisión (default).
- Capacidades de 'entubar' y 'redireccionar': El 'stdin', 'stdout' y el 'stderr' pueden usarse para cambiar el lugar de donde se leen los datos, donde se envían los resultados y donde se envían los errores, respectivamente. A nivel comandos, el símbolo de 'mayor que' (>) sirve para enviar los resultados de un comando a un archivo. Por ejemplo, en UNIX el comando 'ls' lista los archivos del directorio actual (es lo mismo que 'dir' en DOS). Si en vez de ver los nombres de archivos en la pantalla se quieren guardar en el archivo 'listado', el redireccionamiento es útil y el comando para hacer la tarea anterior es 'ls > listado'. Si lo que se desea es enviar a imprimir esos nombres, el 'entubamiento' es útil y el comando sería 'ls | lpr', donde el símbolo "|" ( pipe) es el entubamiento y 'lpr' es el comando para imprimir en UNIX BSD.
- Crear sistemas grandes a partir de módulos: Cada instrucción en UNIX está diseñada para poderse usar con 'pipes' o 'redireccionamiento', de manera que se pueden crear sistemas complejos a través del uso de comandos simples y elegantes. Un ejemplo sencillo de esto es el siguiente. Suponga que se tienen cuatro comandos separados A,B,C y D cuyas funcionalidades son:
A: lee matrices
checando tipos de
datos y formato.
B: recibe matrices, las invierte y arroja el
resultado en forma matricial.
C: recibe una matriz y
le pone encabezados 'bonitos'
D: manda a la impresora una matriz cuidando el salto de
página, etc.
LINUX
Linux es un núcleo de sistema operativo libre tipo Unix. Es uno de los principales ejemplos de software libre. Linux está licenciado bajo la GPL v2 y está desarrollado por colaboradores de todo el mundo. El desarrollo del día a día tiene lugar en la Linux Kernel Mailing List Archive.
El núcleo Linux fue concebido por el entonces estudiante de ciencias de la computación finlandés, Linus Torvalds, en 1991.
Linux consiguió rápidamente desarrolladores y usuarios que adoptaron
códigos de otros proyectos de software libre para su uso en el nuevo
sistema operativo. El núcleo Linux ha recibido contribuciones de miles
de programadores.
Arquitectura
Actualmente Linux es un núcleo monolítico híbrido. Los controladores de dispositivos y las extensiones del núcleo normalmente se ejecutan en un espacio privilegiado conocido como anillo 0 (ring 0), con acceso irrestricto al hardware, aunque algunos se ejecutan en espacio de usuario.
A diferencia de los núcleos monolíticos tradicionales, los
controladores de dispositivos y las extensiones al núcleo se pueden
cargar y descargar fácilmente como módulos,
mientras el sistema continúa funcionando sin interrupciones. También, a
diferencia de los núcleos monolíticos tradicionales, los controladores
pueden ser prevolcados (detenidos momentáneamente por actividades más
importantes) bajo ciertas condiciones. Esta habilidad fue agregada para
gestionar correctamente interrupciones de hardware, y para mejorar el soporte de multiprocesamiento simétrico.
El hecho de que Linux no fuera desarrollado siguiendo el diseño de un micronúcleo
(diseño que, en aquella época, era considerado el más apropiado para un
núcleo por muchos teóricos informáticos) fue asunto de una famosa y
acalorada discusión entre Linus Torvalds y Andrew S. Tanenbaum.
Lenguajes de programación
Linux está escrito en el lenguaje de programación C, en la variante utilizada por el compilador GCC
(que ha introducido un número de extensiones y cambios al C estándar),
junto a unas pequeñas secciones de código escritas con el lenguaje ensamblador.
Por el uso de sus extensiones al lenguaje, GCC fue durante mucho tiempo
el único compilador capaz de construir correctamente Linux. Sin
embargo, Intel afirmó haber modificado su compilador C de forma que permitiera compilarlo correctamente.
Asimismo se usan muchos otros lenguajes en alguna forma, básicamente
en la conexión con el proceso de construcción del núcleo (el método a
través del cual las imágenes arrancables son creadas desde el código
fuente). Estos incluyen a Perl, Python
y varios lenguajes shell scripting. Algunos drivers también pueden ser
escritos en C++, Fortran, u otros lenguajes, pero esto no es
aconsejable. El sistema de construcción de Linux oficialmente solo
soporta GCC como núcleo y compilador de controlador.
El nombre GNU, GNU's Not Unix (GNU no es Unix), viene de las herramientas básicas de sistema operativo creadas por el proyecto GNU, iniciado por Richard Stallman en 1983 y mantenido por la FSF. El nombre Linux viene del núcleo Linux, inicialmente escrito por Linus Torvalds en 1991.
UBUNTU
Ubuntu, es ni mas ni menos, que un
sistema operativo libre, en el mundo existen miles de sistemas
operativos, pero por desgracia la mayor parte de la población solo
conoce los de la empresa Microsoft con sus distintas versiones de
Windows, decir que windows es una ínfima porción de las posibilidades
que existen en cuanto a sistemas operativos. Seguro que si os hablo de
Linux, os suena mas esta palabra, muchos pensarán que Linux es un
sistema operativo, no del todo correcto, Linux como tal es simplemente
el kernel (núcleo) libre de sus distintas distribuciones. Distribución
es la palabra clave, ya que Ubuntu es una distribución de Linux, y
distribuciones existen cientos como Debian, Red Hat, Fedora, Suse,
Mandriva, Kubuntu... y por supuesto Ubuntu.
Ubuntu, es una palabra africana que significa "ser humanitario con
los demás", lo cual es una definición que le viene muy bien a la idea de
este sistema operativo.
Ubuntu es una distribución GNU/Linux
basada en Debian, que es otra distribución de Linux. Ubuntu proporciona
un sistema operativo actualizado y estable para el usuario medio. Al
igual que otras distribuciones se compone de múltiples paquetes de
software normalmente distribuidos bajo una licencia libre o de código
abierto, los cuales son muy fáciles de descargar e instalar, esta es una
ventaja muy interesante para este sistema operativo, ya que desde el
"Centro de Software" se puede instalar casi cualquier programa
en cuestión de minutos.
La filosofía de Ubuntu se basa en los siguientes principios:
- Ubuntu siempre será gratuito, y no habrá un coste adicional para la «edición profesional»; queremos que lo mejor de nuestro trabajo esté libremente disponible para todos.
- Para hacer que Ubuntu pueda ser usado por el mayor número de personas posible, Ubuntu emplea las mejores herramientas de traducción y accesibilidad que la comunidad del Software Libre es capaz de ofrecer.
- Ubuntu publica de manera regular y predecible, una nueva versión cada seis meses. Puede usar la versión estable o probar y ayudar a mejorar la versión en desarrollo.
- Ubuntu está totalmente comprometido con los principios de desarrollo del software de código abierto, animamos a la gente a utilizarlo, mejorarlo y compartirlo.
Soporte a largo plazo
Cada versión de Ubuntu está soportada al menos durante 18 meses con
actualizaciones genéricas y de seguridad. Ubuntu 8.04 LTS es una versión
especial preparada para un uso empresarial, y está soportada durante 3
años para el escritorio y durante 5 años para el servidor. El proceso de
desarrollo de Ubuntu 8.04 LTS fue ligeramente más largo de lo normal
para concentrarse en una serie de áreas:
- Garantía de calidad
- Localización
- Certificación
Como resultado, es posible configurar en Ubuntu 8.04 LTS durante un
periodo de tiempo mayor de lo normal. Por tanto, esta versión de Ubuntu
se identifica como «LTS» o «Long-Term Support» (Soporte a Largo Plazo).
La última versión LTS de Ubuntu es la 10.04 "Lucid Lynx" lanzada el 29 de abril de 2010.
DISTRIBUIDORES DE SOFTWARE LIBRE
LICENCIA GPL
La Licencia Pública General (inglés:
General Public License o GPL) otorga al usuario la libertad de
compartir el software licenciado bajo
ella, así como realizar cambios en él. Es decir, el
usuario tiene derecho a usar un programa
licenciado bajo GPL, modificarlo y distribuir las versiones
modificadas de éste.
La licencia GPL adopta el principio de la no
ocultación, respaldando el concepto moral que
establece que todo software desarrollado con el uso de material
licenciado bajo GPL debe estar disponible para ser compartido con
el resto de la humanidad.
GPL fue creada para mantener la libertad del software y
evitar que alguien quisiera apropiarse de la autoría
intelectual de un determinado programa. La licencia advierte que
el software debe ser gratuito y que el paquete final,
también debe ser gratuito, asegurándose siempre de
mantener los nombres y créditos de los autores
originales.
Como aspecto curioso, se debe considerar que si se
reutiliza un programa "A", licenciado bajo GPL, y se reutiliza un
programa "B", bajo otro tipo de licencia libre, el programa final
"C", debe de estar bajo la licencia GPL. Este concepto se
introduce con el denominado copyleft a fin de garantizar
que cualquier aprovechamiento de un programa bajo licencia GPL
redunde sobre la comunidad.
Ventajas de GPL
- Cualquier código fuente licenciado bajo GPL, debe estar disponible y accesible, para copias ilimitadas y a cualquier persona que lo solicite.
- De cara al usuario final, el software licenciado bajo GPL es totalmente gratuito, pudiendo pagar únicamente por gastos de copiado y distribución.
- Se ha establecido la idea global que GPL contribuye al mejoramiento y evolución del software, ya que la disponibilidad y acceso global de los programas permite la expansión del conocimiento depositado en cada pieza de software.
Desventajas de GPL
- Si el desarrollador incluye código fuente bajo GPL en otro programa, todo el programa final está obligado a seguir las condiciones y términos de la licencia GPL.
- El software licenciado bajo GPL carece de garantía. El autor del software no se hace responsable por el malfuncionamiento del mismo.
- De cara al desarrollador, no se puede establecer ningún cobro por las modificaciones realizadas. Únicamente se pueden establecer cobros asociados a copiado y distribución.
- Aunque GPL posibilita la modificación y redistribución del software, obliga a que se haga únicamente bajo esa misma licencia.
LICENCIA LGPL
La Licencia Pública General Menor
(inglés: Lesser General Public License o LGPL) es
una modificación de la licencia GPL descrita
anteriormente. La LGPL reconoce que muchos desarrolladores de
software no utilizarán el código fuente que se
distribuya bajo la licencia GPL, debido a su principal desventaja
que determina que todos los derivados tendrán que seguir
los dictámenes de esa licencia. La LGPL permite que los
desarrolladores utilicen programas bajo la GPL o LGPL sin estar
obligados a someter el programa final bajo dichas
licencias.
La licencia LGPL permite entonces la utilización
simultánea de software con este tipo de licencia tanto en
desarrollos libres como en desarrollos privativos. Entonces, LGPL
es una licencia de software libre
que no tiene un copyleft fuerte,
porque permite que el software se enlace con módulos no
libres.
Ventajas de LGPL
- Si en el desarrollo de un producto se utiliza código fuente licenciado bajo GPL o LGPL, no es obligatorio licenciar dicho producto final bajo dichas licencias.
- LGPL es menos restrictiva que la licencia GPL, ya que sólo se ocupa en impedir el realizar versiones comerciales del producto licenciado bajo LGPL.
- Ahora bien, LGPL permite realizar versiones comerciales de un producto final que contenga como herramienta adicional un programa LGPL. Por lo tanto, LGPL puede ser utilizada o enlazada con software propietario.
- LGPL exige registrar todos los cambios realizados por terceros, a manera de no afectar la reputación del autor original del software.
Desventajas de LGPL
- Otras actividades que no sean copia, distribución o modificación no están cubiertas en esta licencia y están fuera de su alcance
LICENCIA BSD
La Licencia de Distribución de Software de
Berkeley (inglés: Berkeley Software Distribution
ó BSD) no impone ninguna restricción a los
desarrolladores de software en lo referente a la
utilización posterior del código en derivados y
licencias de estos programas. Este tipo de licencia permite a los
programadores utilizar, modificar y distribuir a terceros el
código fuente y el código binario del programa de
software original con o sin modificaciones. Los trabajos
derivados pueden optar a licencias de código abierto o
comercial.
La licencia BSD es un buen ejemplo de una licencia
permisiva, que casi no impone condiciones sobre lo que un usuario
puede hacer con el software. La licencia BSD permite la
redistribución, uso y modificación del
software.
Esta licencia permite el uso del código fuente en
software no libre, con lo que es muy similar a la LGPL descrita
anteriormente. La diferencia consiste en que en la licencia BSD
no es obligatorio mencionar a los autores ni proporcionar el
código fuente.
El autor, bajo esta licencia, mantiene la
protección de copyright únicamente para la renuncia
de garantía y para requerir la adecuada atribución
de la autoría en trabajos derivados, pero permite la libre
redistribución y modificación.
Ventajas de BSD
- La licencia BSD permite el uso de código fuente en software propietario.
- Una aplicación licenciada con BSD permite que otras versiones puedan tener otros tipos de licencias, tanto propietarias como libres.
- BSD permite que los redistribuidores puedan hacer casi cualquier cosa con el software, incluyendo usarlo para productos propietarios.
- De cara al desarrollador, BSD permite el cobro por la distribución de objetos binarios. Así mismo, el desarrollador no está en la obligación de incluir el código fuente.
- Se argumenta que la licencia BSD asegura el verdadero software libre, en el sentido que el usuario tiene libertad ilimitada con respecto al software, y que puede decidir incluso redistribuirlo como no libre.
- La utilización de las licencias BSD ha contribuido al mantenimiento de un ecosistema de software sano, ya que ha permitido la investigación con fondos públicos y su posterior comercialización, con lo cual se mejora al sector privado del software.
Desventajas de BSD
- Las distribuciones del software bajo licencia BSD deben incluir copias literales de la licencia, anuncio de copyright y una "negación de responsabilidad" (inglés: disclaimer).
- Debe incluirse reconocimiento del origen del software (la Universidad de California) en cualquier anuncio, con el aviso publicitario de BSD, más no es obligatorio la inclusión de los autores.
- BSD no incluye ninguna restricción orientada a garantizar que los trabajos derivados sigan siendo libres.
- De cara al usuario final, BSD permite establecer el pago por la distribución de objetos binarios. Así mismo, el usuario puede no recibir el código fuente.
- Aunque se argumenta que BSD segura el software libre, existen tendencias que destacan que BSD no contribuye al desarrollo de nuevo software libre, ya que el mismo puede ser utilizado en desarrollos propietarios o de distribución no libre.
LICENCIA MPL
La Licencia Pública de Mozilla (inglés:
Mozilla Public License ó MPL) es una licencia de
código abierto y sofware libre utilizada por el navegador
de Internet Mozilla
y sus productos derivados. Cumple completamente con los
postulados del open source y del software libre. Sin embargo, la
MPL deja abierto el camino a una posible reutilización
comercial y no libre del software, si el usuario así lo
desea, sin restringir la reutilización del código
ni el relicenciamiento bajo la misma licencia.
Aunque el uso principal de la MPL es servir como
licencia de control para el
navegador Mozilla y el software relacionado con él, esta
licencia es ampliamente utilizada por desarrolladores y
programadores que quieren liberar su código.
Ventajas de MPL
- MPL es una licencia de código abierto y software libre utilizada por desarrolladores y programadores para la liberación de código fuente.
Desventajas de MPL
- No se puede, legalmente, enlazar un módulo cubierto por la licencia GPL con un módulo cubierto por la licencia MPL.
LICENCIA NPL
La Licencia Pública de Netscape
(inglés: Netscape Public License ó NPL), es
una licencia de software libre sin un copyleft fuerte. NPL
está basada en la Licencia Pública de Mozilla
revisada anteriormente.
NPL agrega una cláusula que permite a Netscape
utilizar el código que un desarrollador agregue a un
programa con bajo licencia NPL. Netscape podrá utilizar
este código fuente sin importar si el desarrollador lo
estableció de tipo privativo. En contrapartida, la
licencia NPL no permite al desarrollador hacer uso del
código fuente Netscape.
Ventajas de NPL
- NPL presenta como ventaja básica que se trata de una licencia de software libre.
Desventajas de NPL
- LPN no otorga derechos iguales a Netscape y al resto de los desarrolladores, ya que permite utilizar el código de Netscape sólo como se especifica en la licencia, pero Netscape puede utilizar los cambios realizados por los desarrolladores en cualquier forma posible, incluso en versiones del software bajo licencia propietaria.
- LPN no se esfuerza en asegurar que las modificaciones hechas por los usuarios queden disponibles como software libre.
- Aunque todas las modificaciones hechas por los desarrolladores se deben liberar bajo la licencia LPN, esto sólo aplica a las modificaciones realizadas al código existente, no a subrutinas añadidas colocadas en archivos diferentes.
OTRAS LICENCIAS RECONOCIDAS
Licencia Apache
Es una descendiente de la licencia BSD. Permite al
desarrollador hacer lo que desee con el código fuent,
incluso productos propietarios, sin entregar el código
fuente. La única restricción es que se
reconozcas el trabajo
del desarrollador.
Licencia de JAVA
Es una licencia particular con
características muy especiales dirigidas a la
protección del lenguaje de
programación JAVA de SUN
Microsystems. Pone énfasis en evitar que aparezcan
extensiones incompatibles con el
lenguaje JAVA.
Licencia de Distribución y Desarrollo
Común (CDDL)
Recientemente publicada por SUN Microsystems, tiene
por objeto liberar parte del software de esta
compañía y que sea integrado con otras herramientas open source. Su objetivo
principal apunta a permitir la integración de Java con las diferentes
distribuciones de Linux del
mercado.
La licencia CDDL está basada en la MPL, y por tanto es
muy similar en sus términos a la LGPL, permitiendo
compartir el código utilizado por el programa con
otros de diferente procedencia y guardarse para el autor la
libertad de publicar o no los resultados. Permite la
inclusión de cualquier otro tipo de código, sea
cual sea la licencia del mismo, en la solución
completa.
Licencia Creative Commons
Es una licencia de reciente creación,
dirigida básicamente para trabajos multimedia. No permite la alteración
del producto original, ni tampoco su comercialización.
Sólo permite su reproducción tal cual, mencionando al
autor.
Licencia de Guile
Basada en la licencia GPL más una
declaración especial que permite enlazar con software
no libre. Por tanto, no tiene un
copyleft fuerte, pero es compatible
con la GPL.
Joomla
Joomla! es un
potente gestor de contenidos web (CMS o Content Management System) que
permite crear sitios web elegantes, dinámicos e interactivos. Por su
diseño, potencia, flexibilidad y por sus enormes posibilidades de
ampliación se está convirtiendo en el sistema de publicación preferido
por muchos centros educativos y por millones de webmasters en todo el
mundo para desarrollar su portal web.
Con Joomla! podemos crear en poco tiempo un completo portal para un centro escolar o una web docente en la que publicar noticias, blogs, directorios de enlaces o documentos para descargar sin necesidad de conocimientos técnicos especiales o de complejos lenguajes de programación.
A partir de una plantilla y de unos contenidos de ejemplo iniciales podemos desarrollar un vistoso y completo portal añadiendo los contenidos, menús
y elementos visuales deseados a través de un entorno web y sin
necesidad de programas auxiliares ni de conocimientos especiales de
diseño o de programación ya que todas estas operaciones de edición y
administración se realizan a través de cualquier navegador.
La introducción y edición de contenidos resultan así una tarea cómoda
y sencilla y ello nos permite mantener nuestro sitio permanentemente
actualizado.
Joomla! es Open Source
Joomla! es una aplicación Open Source o de código abierto programada en lenguaje PHP bajo una licencia GPL y que utiliza una base de datos MySQL
para almacenar el contenido y los parámentros de configuración del
sitio. Además de libre, Joomla! es gratuito y no tendrás que pagar nada
por usar este CMS para construir tu web.
Joomla! se basa en Mambo,
otro CMS iniciado por la empresa australiana Miro, que tenía además la
propiedad de la marca. El proyecto Joomla surge en 2005 cuando Miro
decidió crear una Fundación que, a jucio de una buena parte de los
desarrolladores de Mambo, se apartaba bastante de la filosofía del
software libre. Estos desarroladores se agruparon en torno al movimiento
Open Source Matters
que poco después daría lugar a Joomla!, una denominación que procede de
una palabra de la lengua swahili que significa "todos juntos".
La nueva versión de Joomla -la 1.5- fue liberada en enero de 2008
incorporando interesantes novedades y está escrita en un código
completamente nuevo con el que se ha independizado ya completamente de
su predecesor. No obstante, el equipo de desarrollo de Joomla sigue
manteniendo actualizada la serie anterior, la 1.0.x, ya que muchos
sitios web funcionan aún con esa versión inicial.
Características de Joomla!
Joomla! ofrece, en general, las mismas ventajas que otros gestores de
contenidos web (CMS o Content Management System) en la medida en que
hace posible convertir una web estática tradicional en un completo
portal con diferentes funcionalidades y características dinámicas e
interactivas que hacen de nuestro sitio algo más que una página web
informativa a la vez que se facilita la introducción y actualización de
contenidos.
Al igual que otros gestores de contenidos, Joomla! permite la
participación de varios autores en el desarrollo y mantenimiento del
sistema gracias a la posibilidad de asignar diferentes niveles de uso y
administración a diferentes usuarios. Con ello se puede hacer una
gestión colaborativa a la vez que controlada del sitio web y conseguir
un mejor reparto de funciones y responsabilidades que estimule la
participación. El sistema de gestión de usuarios de Joomla! nos permite también restringir al acceso a determinados contenidos a usuarios con permisos especiales.
La facilidad para editar y organizar los contenidos es otra de las grandes virtudes de los sistmas CMS como Joomla!. Además de páginas de contenido estático para la información que sea más estable y permanente podemos añadir artículos agrupados en secciones y categorías
temáticas que permiten su clasificación y que ofrecen diferentes
opciones para su presentación: en forma de lista o índice, en forma de
blog, en una o más columnas, etc.
Para facilitar la edición de artículos
o páginas de contenido, Joomla! dispone de un editor visual con una
barra de herramientas semejante a la de los procesadores de textos con
las que se puede dar formato al contenido, añadir imágenes, insertar
hipervínculos, etc. Los administradores disponen también de un Gestor Multimedia
con el que pueden subir fácilmente imágenes, archivos y otros elementos
multimedia al servidor para luego insertarlos en las páginas y
artículos de contenido.