Una mirada a SQL (IV)

Para esta miradita repasaremos lo que tenemos. Ya hemos puesto en marcha los servidores SQL y http con php, hemos creado una base de datos, tablar e insertado algunos datos y contreñas seguras. Ahora continuemos con un paso muy sencillo. Rellenemos las bases de datos con mas datos asi que

INSERT INTO base_de_datos.usuarios (id, nick, pass) VALUES
 (NULL, 'pedro', MD5('algunpa$$')),
 (NULL, 'jorge', PASSWORD('0trop4$$'))
 (NULL, 'alguntroll', SHA1('123456'))

Bien como vimos en la leccion pasada podemos usar informacion especifica usando la forma padre.hijo con padre = base de datos e hijo=tabla en este caso. Por lo siguiente dentro de la seccion de valores pasamos los pares de valores (cosas entre parentesis) para cada registe que deseamos hacer, siendo en este caso 3 usuarios. Seguir leyendo

Una mirada a SQL (III)

En la parte anterior creamos nustra base de datos y su estructura basica asi que es momento de usarla. Primero debemos crear un usuario y ese primer usuario como es logico pensar, debe ser el administrador. Para crear datos debemos de usar la sentencia INSERT INTO ….. VALUES …. pasando como parametros la tabla, los campos y los valores asi que a por ello.

INSERT INTO usuarios (nick,pass) VALUES ("admin","root")

Esto no es nada seguro asi que usemos una pequeña funcion para la contraseña que sigue. Esta funcion es nada menos que la famosisima md5(). Asi nuestras proximas contraseñas seran un hash “seguro”, aunque algunos pueden preferir usar cosas como sha-1 y sha-512. Seguir leyendo

Una mirada a SQL (II)

Bien para empezar a trabajar con SQL pedire unos cuantos requisitos. El primero sera la base de datos MySql, un servidor http como Apache con soporte para PHP y el sostema de gestion de base de datos PHPMyAdmin. Estos requisitos se pueden cumplir facilmente en la mayoria de las distribuciones de Linux y en Windows con los paquetes LAMP, uno que recomiendo es el appServer. Una vez instalado y configura entramos a la interfaz de PhpMyAdmin y observamos una parte de la ventana en el lado izquierdo como si fuera un menu y en la derecha la informacion del servidor SQL y muchos datos adicionales que sirven para la administracion. Por el momento nos fijaremos en la parte que dice “Bases de datos” casi al final de la lista.

Al entrar en esta parte podremos ver una lista con las bases de datos que existen y la codificacion de caracteres, este ultimo dato por el momento no nos debe preocupar. En la parte superior vemos la pestaña SQL y la seleccionamos, lo que nos muestra un cuadro de texto para ingresar nuestra consulta y un boton de confirmar para ejecutarla. Seguir leyendo

Una mirada a SQL (I)

SQL es el lenguaje de programacion usado para obtener informacion de las bases de datos relacionales. Al darse a conocer el modelo relacional de bases de datos, aparecio un lenguaje llamado SEQUEL y este continuo su desarrollo hasta convertirse en lo que hoy conocemos como SQL.

Este lenguaje es un lenguaje declarativo de acceso a bases de datos, por lo que no ejecuta codigo. En lugar de eso genera consultas a los registros y devuelve la informacion o realiza las acciones especificadas sin tener una estructura de flujo como cualquier otro lenguaje de programacion. Seguir leyendo

Programacion orientada a objetos

¿Que es un objeto? Una silla, una mesa, una computadora, una casa. Todos los elementos tangentes en el mundo son objetos pero ademas podemos pensar en los numeros como objetos, las ideas, los modelos y cualquier abstraccion mental que se conciba. Para efectos practicos diremos que un objeto es un ente, ya sea fisico o mental, que puede tener propiedades (forma, tamaño, cantidad), estado (vivo, cerrado, marcado) y acciones (correr, pintar, sumar).

Al referirnos a la programacion basada en objetos nos referimos a una forma de programar. No es un lenguaje, no es una caracteristica, no es una plataforma. Es una filosofia propiamente y nos indica la manera en que podemos abstraer nuestras ideas para programar. La programacion es un modelo abstracto del mundo en el que se trate de resolver un problema especifico, el cual puede ser un problema fisico o abstracto. Seguir leyendo

Licencias de software

Generalmente conocemos una definicion de software libre muy general: Los terminos de la licencia GPL, pero realmente que son las licencias  que nos ofrecen.

El objetivo de las licencias es ofrecer los términos bajo los cuales se libera el software; estas licencias se caracterizan por permitir utilizar, estudiar, modificar o redistribuir el software – sea modificado o no.

Licencia GPL

La licencia GPL es una licencia creada por la Free Software Foundation. Su objetivo es evitar que el software libre pierda las libertades de los usuario. Al ser un documento legal, se le llama acuerdo o contrato de licencia.

A finales del 2005 se anuncio el trabajo de la version 3 y a principios de 2006 se presento el primer draft. Su publicacion tardo varios meses y se publico finalmente a mediados del 2007 contemplando los siguientes puntos:

  • Las diversas formas en que alguna persona podría quitar libertades a los usuarios.
  • Prohibir el uso de software libre en sistemas que utilizan la llamada Gestión de derechos digitales o DRM, sistema criticado por la comunidad del software libre.
  • Resolver ambigüedades y aumentar la compatibilidad de GPLv3 con otras licencias.
  • Facilitar su adaptación a otros países.
  • Incluir cláusulas que defiendan a la comunidad de software libre del uso indebido de las patentes de software.
  • Mostrar usuarios registrados.

Los programas que usan esta licencia pueden combinarse o re-licenciarse bajo otra licencia que sea compatible. La lista de compatibilidades esta disponible en http://www.gnu.org/licenses/license-list.es.html

LGPL

Esta licencia llamada Lesser General Public License es una licencia de la FSF y la diferencia entre esta y la GPL es que permite enlazarse con una aplicacion no libre. Su uso se recomienda al crear una codigo que provea funciones implementadas en sistemas cerrados, pues no se daria ninguna ventaja al software privativo y no habria problemas si terminan en un sistema propietario.

Licencia Apache

La licencia Apache fue creada por la Apache Software Foundation y no es una licencia copyleft. Con esta licencia se requiere el uso de un disclaimer y un aviso de copyright. Al igual que otras licencias libres le permite al usuario distribuir, modificar y usarlo con cualquier proposito sin embargo las modificaciones no necesitan usar la misma licencia por lo que pueden terminar siendo de codigo cerrado.

Licencia MIT/X11

Esta licencia fue usada para el proyecto X Window System del MIT en los 80’s. Dado que no incluye copyright, su modificacion es permitida. Esta licencia permite los derechos de uso, copiar, modificar, enlazar, publicar, sublicenciar o vender copias del software y estos derechos pasan a la persona que obtiene el software.

Licencia BSD

Es parecida a la licencia MIT y es usada en los sistemas BSD. Existen 3 versiones:

  • BSD original o antigua BSD.- Contiene 4 clausulas. Pide mantener la licencia en redistribuciones de codigo, una mencion del desarrollo generado por la universidad de Berkeley y no permite usar el nombre de la escuela y de los contribuidores para promocionar los productos derivados.
  • BSD Revisada, modificada o BSD-3.- Esta version elimina la clausula que obligaba a otorgarle credito a la universidad.
  • BSD simplificada o licencia FreeBSD.- Elimina la clausula donde se prohibe el uso de los nombres de os contribuidores agregando un aviso que menciona la neutralidad de sus comentarios y puntos de vista sobre el desarrollo del proyecto FreeBSD

Licencia MPL

La licencia publica de Mozilla (MPL) fue creada por Netscape y luego paso a ser de la Fundacion Mozilla. Esta licencia hace posible el uso de codigo en sistemas cerrados con el problema de que se necesita una notificacion especifica para el uso de codigo con diferente licencia por lo que el usar cualquier cosa licencia incluso bajo la GPL podria llegar a ser en algunos casos ilegal.

Licencia PHP

La licencia PHP permite la redistribución del contenido licenciado en forma de código fuente o binaria siempre y cuando se cumplan los siguientes requisitos:

  1. Se incluya la declaración de los derechos de autor de la licencia PHP;
  2. La palabra “PHP” no se use en el título de las obras derivadas;
  3. Se incluya el siguiente anuncio bajo cualquier forma en la que se redistribuya el código:
This product includes PHP software, freely available from <http://www.php.net/software/>

Contribuir en el software libre

Bien puesto que hace un tiempo di una conferencia y no he publicado las diapositivas, decidi mejorar la presentacion y aqui les dejo mi presentacion de contribuir en el software libre en un nuevo formato muy interesante.

Contribuir en el software libre on Prezi

Bien debido a la pesima personalizacion de este blog, solo puedo usar la URL que arriba esta para que vean la presentacion asi que, espero la disfruten.