Instalar phpmyadmin en Ubuntu

Con el sistema recién formateado instalé Apache, PHP y MySQL, como de costumbre, pero ya iba echando algo de menos, y es que soy un enamorado de phpmyadmin.

Bien, con un sencillo paso tendremos este cliente de base de datos instalado en nuestra máquina:

ahornero@6581-D:~$ sudo apt-get install phpmyadmin

Después reiniciamos el servidor:

ahornero@6581-D:~$ sudo service apache2 restart

Y listo. Si tenemos algún problema accediendo a: http://elnombredetuhost/phpmyadmin crearemos la siguiente ruta simbólica: read more

Leer más » 1 Comentario

Curso programación de videojuegos con SDL – ¿Qué es SDL?

En la Wikipedia encontramos que: ”LibSDL es un conjunto de librerías desarrolladas con el lenguaje C que proporcionan funciones básicas para realizar operaciones de dibujado 2D, gestión de efectos de sonido y música, y carga y gestión de imágenes. SDL es una abreviatura en inglés de Simple DirectMedia Layer.

Resaltar como podéis ver que se trata de un conjunto de librerías para C encargada de todos los aspectos que a la hora de crear un juego faltan en las librerías básicas de C. Con ella podemos controlar las pulsaciones sobre el teclado, cargar imágenes, mover sprites o reproducir un sonido. Usando SDL tendremos toda la libertad del mundo para desarrollar un juego tal como nos parezca. SDL se convierte sólo en la herramienta básica para hacer todo aquello que necesitamos, pero a un nivel que no interviene más que en eso. read more

Leer más » 5 Comentarios

Curso programación de videojuegos con SDL – Introducción

Con esta entrada presento el próximo curso que Linux Hispano os va a presentar: “Programación de videojuegos con SDL“. Constará de una serie de entregas que irán  apareciendo periódicamente en forma de entradas, al igual que en el caso de los cursos que ya están publicados:

Aún recuerdo la primera vez que cogí entre mis manos el mando de la Master System II que mis tíos habían regalado a mi primo por Reyes. Estuve jugando al juego más popular de la primera ”mascota” de Sega, Alex Kidd in the miracle world. Fue mi primer acercamiento al ocio digital y en ese mismo momento me pregunté, ¿cómo estará hecho ese videojuego? read more

Leer más » 6 Comentarios

Manejar tiempos con ‘setTimeout’ en Javascript

Cuando necesitas interactuar con el usuario resulta fundamental manejar el tiempo para que ocurran determinados eventos. En Javascript hay varias funciones para administrar los tiempos y una de ellas es setTimeout.

Esta función, cuando se ejecuta, espera una cantidad de milisegundos hasta que llama otra función. Aquí os dejo un ejemplo con su código para clarificarlo.

Ejemplo

Código fuente del ejemplo read more

Leer más » 6 Comentarios

Embeber HTML en una página web

Cuando estás realizando aplicaciones HTML resulta fundamental insertar dicho código en una página web. Existen muchas maneras de hacerlo: con iframe, con embed, etc. Pero la recomendada por W3C es utilizando la etiqueta object:

<object type="text/html" data="http://ejemplo.com/app.html" width="100" height="100"></object>

Demostración

Código fuente de la demostración

<!doctype html>

<html>

  <head>
    <title>Embeber HTML en una web</title>
    <meta charset="utf-8" />
  </head> read more

Leer más » 9 Comentarios

Instalar Chromeless

Hace unas semanas os hablé de cómo instalar Webian Shell, un navegador fullscreen basado en Chromeless. Este proyecto está orientado básicamente a la creación de un navegador Web liviano, sencillo y ágil.

Bien, veamos como instalarlo en nuestro sistema:

Hacemos un checkout del repositorio del mozilla en gibhub:

ahornero@6581-D:~$ git checkout http://github.com/mozilla/chromeless.git

Si todo ha ido bien, comprobamos el contenido del directorio que nos acabamos de traer. Debe de ser el siguiente: read more

Leer más » 1 Comentario

Restringir el acceso mediante la dirección IP usando PHP

Si por razones de seguridad o por política de empresa, queremos bloquear las direcciones a un determinado rango o conjunto de IP, os voy a comentar cómo hacerlo de forma simple haciendo uso de PHP.

Lo primero que debemos hacer es crear una función que nos permita conocer la dirección IP del cliente:

function obtenerDireccionIP()
{
    if (!empty($_SERVER ['HTTP_CLIENT_IP'] ))
      $ip=$_SERVER ['HTTP_CLIENT_IP'];
    elseif (!empty($_SERVER ['HTTP_X_FORWARDED_FOR'] ))
      $ip=$_SERVER ['HTTP_X_FORWARDED_FOR'];
    else
      $ip=$_SERVER ['REMOTE_ADDR'];

    return $ip;
}

Una vez hecho esto, el proceso es simple. Veamos distintas posibilidades.

Permitir/restringir acceso a una sola IP

Con esta función, restringimos el acceso sólo a la IP que se le envía a la función. Podemos cambiar el “==” por “!=” para hacer lo contrario.

function restringirIp($ip) { $ipCliente = obtenerDireccionIP(); if($ipCliente == $ip) { return true; } else { header('location: http://direccion_envio_salida'); exit; } } read more

Leer más » 5 Comentarios

Descargar vídeos de Youtube en Ubuntu

Descargar vídeos en Ubuntu es fácil y sencillo, desde la línea de comandos y gracias a la aplicación youtube-dl. He usado DownloadHelper con anterioridad, pero sin duda esta me parece la mejor opción, no uso otros servicios de vídeos (quitando Vimeo), y con esto me resulta más que suficiente e intuitivo, de esta forma evito instalar extensiones en los navegadores que sólo me proporcionan un servicio concreto.

Se encuentra en los repositorios multiverse de Ubuntu, y para instalarla:

ahornero@6581-D:~$ sudo apt-get install youtube-dl read more

Leer más » 9 Comentarios

Cuenta atrás para Oneiric Ocelot

Si eres de esos que se pasan los días pensando cuando llegará la próxima versión de Ubuntu, hoy os traigo una llamativa solución que en forma de NotifyOSD podremos saber cuanto tiempo falta para el lanzamiento de Ubuntu 11.10 Oneiric Oceloc.

Para instalarlo:

Descargar el siguiente archivo y descomprimirlo gráficamente o desde línea de comandos.

ahornero@6581-D:~$ tar -jxvf Oneiric-en-1.0.tar.bz2

Cambiamos los permisos (añadimos ejecución) y lanzamos el script:

ahornero@6581-D:~$ cd Oneiric-en-1.0 read more

Leer más » 2 Comentarios

Curso PHP orientado a objetos – Clases de terceros, encapsulamiento

Una de las grandes ventajas, además de todas las ya explicadas y comentadas, es la facilidad con que se puede encapsular todo, para que en desarrollos posteriores no haya problema alguno. La implementación pasa a un segundo plano y se utiliza como una caja negra que funciona de manera simple. Los atributos: públicos, privados y protegidos; que hemos comentado en un punto anterior, son la base del encapsulamiento.

Imaginad que en una aplicación web, necesitamos generar un fichero PDF o interactuar con el servidor de correo de Gmail o Google Apps. Como es lógico, sería costoso perder tanto tiempo en desarrollar algo de cierta dificultad y que ya existe. La solución, encontrar una clase que se encargue de alguna de estas labores. Quien dice estas dos labores, dice otras muchas, pero he puesto estos dos ejemplos porque he tenido que hacer uso de los mismos hace no mucho.

¿Cómo utilizar dichas clases?

Lo primero es encontrarlas. Por ejemplo, en el caso de interactuar con el servicio de correo de Google tenemos PHP Mailer. Las clases se presentan en ficheros fuente de PHP que deberemos agregar convenientemente a nuestro código con algunas de las instrucciones (elegiremos cada una en función a nuestras necesidades) que mostramos a continuación y que seguro que habéis usado en más de una ocasión:

  • require(ruta_fichero);
  • include(ruta_fichero);
  • require_once(ruta_fichero);
  • include_once(ruta_fichero);

Una vez agregado a nuestro código ya podremos interactuar con ella. Primero la instanciaremos y luego interactuaremos con sus atributos y sus métodos. Con PHPMailer podríamos hacer algo así:

<?php require_once 'class.phpmailer.php'; $correo = new PHPMailer (); $correo->From = "nombre_usuario@gmail.com"; $correo->FromName = "Foo"; $correo->AddAddress ("destinatario@dominio.com"); $correo->Subject = "Mensaje de parte del equipo Linux Hispano"; $correo->Body = "<h3>Enviando con Gmail<h3/>"; $correo->IsHTML (true); $correo->IsSMTP(); $correo->Host = 'ssl://smtp.gmail.com'; $correo->Port = 465; $correo->SMTPAuth = true; $correo->Username = 'nombre_usuario@gmail.com'; $correo->Password = '******'; if(!$correo->Send()) { echo 'Ha ocurrido un error: ' . $mail->ErrorInfo; } else { echo 'Correo enviado con éxito'. } ?> read more

Leer más » 6 Comentarios