Aunque podemos considerar esta noticia algo off-topic, al no estar encuadrada directamente en el contexto de Linux Hispano, creo que siempre es importante difundir noticias de este tipo, y más cuando se dan en mi ciudad, Córdoba.
La I Feria de la Innovación, Videojuegos y Entretenimiento Digital, FIVED’09 se celebra desde ayer día, 30 de octubre, hasta el 3 de noviembre, dentro de la programación del V Festival Internacional de Animación de Córdoba, Animacor’09, en el reciento ferial IFECO de Córdoba.
Siempre es una buena noticia este tipo de ferias de carácter tecnológico para demostrar a la sociedad que hasta algo tan perseguido en ocasiones por ciertos sectores, como el entretenimiento digital, tiene su vertiente de proyección económica y puede convertirse en un verdadero sector estratégico para un país.
Si os animáis a venir, nada mejor que un mapa para saber cómo llegar al recinto.
Hacer una copia de seguridad a tu Base de Datos es una tarea de administración obligatoria para mantener tu información resguardada. MySQL te permite realizar esta sencilla tarea con el comando mysqldump. Instalado MySQL y teniendo tu base de datos, entra en la terminal de consola, y ejecuta lo siguiente:
Sintaxis:
mysqldump --add-drop-table -h servidor -u usuario -p basededatos > nombreCopia.sql
Ejemplo:
mysqldump --add-drop-table -h localhost -u root -p empleados > backup.sql
A continuación te pedirá la contraseña, la introduces, esperas un poco y ¡listo!
Para importar una base de datos es muy sencillo:
Sintaxis:
mysql -h servidor -u usuario -p basededatos < nombreCopia.sql
Ejemplo:
mysql -h localhost -u root -p empleados < backup.sql
Hace ya dos semanas os presentamos el nuevo portal, un nuevo diseño e interfaz al que aun le faltan algunos detalles, pero que en líneas generales nos ha convencido mucho a todos, al equipo de Linux Hispano y a nuestros lectores. El hecho de decidir el cambio a WordPress no fue fácil, el implantarlo no fue realmente complicado. WordPress es un gestor de contenidos que se caracteriza por su facilidad de uso, su seguridad y su simpleza, pero en ocasiones deseamos añadir cierta funcionalidad y no sabemos que método utilizar o si ya se encontraba disponible, por ello, a través de esta entrada os paso un pequeña pero útil chuleta para Wordpress.

Ekin Ertac es su creador, y la podéis descargar desde el siguiente enlace.
Hispasec ha decidido regalar la que es la segunda edición del libro que relata 11 años de seguridad en el mundo de la red. El libro, en español, y en descarga gratuita en PDF (o compra mediante Lulu en formato papel) es la edición ampliada (un año más) del libro que se vendía el año pasado. Podríamos decir que es una descripción cronológica de los hechos más importantes en este tema a lo largo de los 11 años que lleva existiendo Hispasec y sus precursores.
El anuncio lo he visto en Security By Default.

Es muy fácil establecer tu editor por defecto si usas el comando: update-alternatives.
Abre el terminal de consola y escribe el siguiente comando:
sudo update-alternatives –config editor
Aquí tienes un ejemplo de lo que verás más o menos:
5 alternatives para `editor’.
Selecciona Alternativa
———————————————–
1 /usr/bin/vim
2 /bin/ed
*+ 3 /bin/nano
4 /usr/bin/vim.basic
5 /usr/bin/vim.tiny
Pulsa Intro para mantener la aplicación por defecto[*], o escribe un número:
Puedes seleccionar el editor que quieras simplemente escribiendo el número. Por ejemplo, si yo quisiese cambiar el editor por defecto a ed, debería escribir el 2.
Es tal la “avalancha informativa” en torno al lanzamiento de Karmic, que más que escribir un post desde cero hablándoos sobre lo que seguro que ya habéis leído, prefiero daros los enlaces que a mi parece, mejor cuentan qué novedades incluye y cómo es la nueva versión de la distribución de Canonical.
Además, aprovecho para recomendaros que veáis este vídeo creado por el autor de 120% Linux.
Seguiremos hablando de este tema en lo sucesivo.
Ayer por la tarde me surgió una duda sobre Python. Como en cualquier lenguaje orientado a objetos y para realizar una llamada a un método de una clase que no hemos instanciado, esta deberá de ser estática. ¿Realmente se puede hacer esto en Python? No directamente. Me puse a buscar sobre el tema y a través de ActiveState descubro como resolver esto, no se trata de un problema del lenguaje si no de poder compatibilizar algo que sí podemos hacer en otros lenguajes como Java, C++ o .NET.
Vamos a verlo sobre un ejemplo, os lo iré comentando entre línas.
# Directamente, tal como os comentaba, no funciona
class Clase:
def estatica(nombre): print "Imprime ",nombre
# Para comprobarlo, lo vamos a llamar como un método de la clase:
Clase.estatica("ahornero Linux Hispano")
# Fallará con un TypeError, ya que "estatica" se ha convertido en
un objeto independiente del método, no en una función normal
# Lo podemos resolver de una manera relativamente sencilla:
class Llamador:
def __init__(self, cualquierLlamada):
self.__call__ = cualquierLlamada
# Y un práctico ejemplo de su uso:
class Clase2:
def estatica(nombre):
print "Imprime ",nombre
estatica = Llamador(estatica)
# ahora, lo lanzamos como antes:
Clase.estatica("ahornero en Linux Hispano")
# funciona correctamente, como esperábamos
Espero que os sirva de ayuda si os surge la situación. ¿Conocéis alguna otra alternativa?
Ya os comenté con anterioridad, a través del último artículo publicado sobre Task Freak! la necesidad de proteger el contenido del mismo, en tal caso usamos .htaccess, pero en ocasiones nos puede resultar más factible usar la autenticación HTTP mediante PHP. Ya sea por comodidad o por restricciones del servidor para incluir modificaciones en subdirectorios con .htaccess.
En el ejemplo, eminentemente práctico, que os muestro a continuación haremos uso de las directivas de PHP, PHP_AUTH_USER y PHP_AUTH_PW, suficientes para nuestro marco de trabajo. Podéis encontrar las especificaciones al completo y ejemplos de estas en php.net.
En primer lugar, editarmos el fichero secure.php con la siguiente información, descriptiva por sí misma:
<?php
$users = array(
'ahornero' => 'contraseña en MD5'
);
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="Linux Hispano"');
exit('Esta página requiere autenticación');
}
if (!isset($users[$_SERVER['PHP_AUTH_USER']])) {
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="Linux Hispano"');
exit('Acceso denegado');
}
if ($users[$_SERVER['PHP_AUTH_USER']] != md5($_SERVER['PHP_AUTH_PW']))
{
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="Linux Hispano"');
exit('Acceso denegado');
}
?>
Y simplemente nos bastará con incluirlo en los ficheros que deseemos proteger:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
[...]