PHP Fatal error: mcrypt_encrypt(): Mcrypt initialisation failed

Ten=EDa instalado phpmyadmin 2.6.1 y al instalar la libreria php4-mcrypt
de daba ese error: PHP Fatal error: mcrypt_encrypt(): Mcrypt
initialisation failed

Seg=FAn he leido por ahi es por que falla la cadena aleatoria de la
configuracion, el salt, que lo llaman por ah=ED.

en el fichero config.php.inc
[shell]
$cfg[‘blowfish_secret’] =3D ‘asdfasdfasdfasfasdfasd’;
[/shell]
meter una cadena alfanumerica, a mi me ha debido de fallar al meter
caracteres un como | y al instalar php4-mcrypt habr=E1 usado otra libreri=
a
para la funcion de mcrypt.=20

As=ED que eso, a usar alfanumericos y nada de caracteres asc > 128 😉

Comandos de vi I

quitar los espacios en blanco del principio de linea

[shell]
:1,$s/^\s*//g
[/shell]

Evitar que al pegar texto se desplace cada linea con tabulacion
( identaci=F3n )

[shell]
:set noai
[/shell]

ordenar ficheros por campos son sort

/home/pepe:/bin/bash

vamos a separar los campos por : y ordenamos por la columna 3 que es el
uid.

[shell]
sort -t: -k3 /etc/passwd
[/shell]

-t : terminador de campo en este caso :
-k : key, para ordenar, la columna 3

otra aplicaci=F3n de sort

ordenar y delvolver sin repetir, por ejemplo emails:

[shell]
grep -u listaemails > emails_ordenados
[/shell]
-u: unique

update: manda un email con adjuntos usando perl

### Adjust sender, recipient and your SMTP mailhost
my $from_address = ‘robot@senin.org’;
my $to_address = ‘jorge@senin.com’;
my $mail_host = ‘mail.senin.org”;

my $your_file_txt = ‘for-mail-robot.txt’;

### Adjust subject and body message
my $subject = ‘[notificacion] enviando un email con perl’;
my $message_body = “”;

open ( F , $your_file_txt);
@message_body = <F> ;
close ( F );

### Create the multipart container
$msg = MIME::Lite->new (
From => $from_address,
To => $to_address,
Subject => $subject,
Type =>’multipart/mixed’
) or die “Error creating multipart container: $!\n”;
$part->attr(‘content-type.charset’ => ‘UTF8’);

### Add the text message part
$msg->attach (
Type => ‘TEXT’,
Data => $message_body
) or die “Error adding the text message part: $!\n”;

### Add text
$msg->attach (
Type => ‘text/plain’,
Path => $my_file_txt,
Filename => $your_file_txt,
Disposition => ‘attachment’
) or die “Error adding $file_txt: $!\n”;

### Send the Message
MIME::Lite->send(‘smtp’, $mail_host, Timeout=>60);
$msg->send;

Downgrade de Debian

Cómo pasar de unstable a testing, antes era un problema.
Ahora es cuestión de tiempo y ancho de banda.

Cuando lo quiero todo y tenerlo a la última siempre me la juego y uso unestable, y siempre acabo volviendo a testing.
Cada vez aprendo más que más vale 10 minutos, 1 hora un día de leer y buscar información una sola vez que no 20 cuando te sucede el problema y se recuerdan levemente las soluciones.

El tema es que para pasar de una unestable a una testing:

  • Actualizar /etc/apt/sources.list con testing, por ejemplo: [shell]
    deb ftp://ftp.es.debian.org/debian/ testing main non-free contrib
    deb-src ftp://ftp.es.debian.org/debian/ testing main non-free contri[/shell]
  • Crear el fichero /etc/apt/preferences y añadir estas lineas:
    [shell]Package: *
    Pin: release a=testing
    Pin-Priority: 1001[/shell]
    , sin espacios o puede que de un error como este:
    [shell]E: Registro inválido en el archivo de preferencias, no hay cabecera de paquete[/shell]
  • Actualizar con apt-get update && apt-get dist-upgrade y nos saldrá el porrón de megas a actualizar

Si hay que desinstalar algun paquete por que da problemas usad esto:
[shell]dpkg –force-depends -r [/shell]
y luego apt-get install -f

Qemu: emulando a colores I

Como dicen por ahí la pregunta es: ¿por qué no deberías instarte gnu/linux?. La respuesta es muy sencilla: no se ;).

Qemu es la caña del software libre, un emulador de sistemas operativos, hacía tiempo que quería probar botch y quemu, y la verdad es que viendo las comparativas ni me paro a instalar botch que es como 20 veces más lento que qemu. Los dos emulan sistemas operativos, y qemu usa la bios de botch para arrancar, pero qemu es bastante rapido. He probado a instalar windows 98, windows 2000 y windows xp home y la verdad es que se mueven bastante bien para estar siendo emulados:

Instalando Windows 98Windows XPWindows 2000

Para los listos tengo licencia 😉 forzada a comprar con mi portatil, aunque tengo que mirar los terminos exactamente por si puedo o no usarla en otro pc.

Para instalar 3 pasos muy faciles :

# instalar el software
apt-get install qemu
# crearnos un disco virtual ( parece que soporta imagenes comprimidas y de vmware pero no lo he probado )
# me creo una unidad virtual de 3 gigas
qemu-img create windowsxp.img 3G
# arrancamos la maquina virtual con cd y discoduro -win2k-hack es para solucionar un problema con la instalación de windows 2000 que dice que no tiene espacio suficiente y -boot le decimos de donde arranca
# en -cdrom isodeuncd.iso tambien vale usar isos
qemu -boot d -cdrom /dev/cdrom -hda windowsxp.img -win2k-hack
# instalamos lo que queramos …
# arrancamos con un usb activado
qemu -hda windowsxp.img -usb

Aparte el programador de qemu tiene escrito un acelerador que promete bastante y que aun no he podido probar. El acelerador es un binario libre de uso pero con el codigo fuente cerrado, el pobre hombre quiere que le compren el invento 🙂

y para finalizar comentar que qemu emula un pc con estas caracteristicas :

* i440FX host PCI bridge and PIIX3 PCI to ISA bridge
* Cirrus CLGD 5446 PCI VGA card or dummy VGA card with Bochs VESA extensions (hardware level, including all non standard modes).
* PS/2 mouse and keyboard
* 2 PCI IDE interfaces with hard disk and CD-ROM support
* Floppy disk
* NE2000 PCI network adapters
* Serial ports
* Creative SoundBlaster 16 sound card
* ENSONIQ AudioPCI ES1370 sound card
* Adlib(OPL2) – Yamaha YM3812 compatible chip
* PCI UHCI USB controller and a virtual USB hub.

esto significa que sea el pc que sea podemos usar nuestras imagenes por que el hardware emulado es siempre el mismo.

Otra ventaja de qemu es probar kernels antes de reinciar… y mucho más

Instalar java en debian

Debian debido a su estricto compromiso social se compromete a mantener una distribución exclusivamente libre, así que hay paquetes como el de java que debido a su licencia no forman parte del contenido oficial, aún así son necesarios para la vida cotidiana.

He encontrado en esta web http://martinfowler.com/bliki/DebianJava.html esta manera de instalar java de una forma más elegante:

# apt-get install java-package
download the sun jdk from java.sun.com
# make-jpkg jdk-1_5_0-linux-i586.bin
# dpkg -i sun-j2sdk1.5_1.5.0_i386.deb
# apt-get install sun-j2sdk1.5debian
# update-alternatives –config java

Exportar tablas de mysql a csv con perl

#!/usr/bin/perl
#
# Obtiene estadisticas diarias sobre ociojoven.com y ojgames.com
#

use DBI;

&ConnectDatabase;
$path=”/tmp/product.csv”;

@tablas=(
“eZTrade_Category”,
“eZTrade_Quantity”);

foreach $tabla (@tablas){
$path=”/tmp/$tabla.csv”;
$sql= “SELECT * INTO OUTFILE ‘$path’ FIELDS TERMINATED BY ‘;’ ENCLOSED BY ‘\”‘ LINES TERMINATED BY ‘\r\n’ FROM $tabla”;

$foo = &QueryOneFetch ($sql );
}

&DisconnectDatabase;

#Nos conecta a la base de datos que especifiquemos
sub ConnectDatabase {
$database = “produccion”;
$host=”dbserver”;
$data_source = “DBI:mysql:database=$database;host=$host;port=3306”;
#$data_source = “DBI:mysql:$database”;
$username = “user”;
$password = “password”;
$dbh = DBI->connect( $data_source, $username, $password)
or die “Can’t connect to $data_source: $dbh->errstr\n”;
}

# Desconecta de la base de datos
sub DisconnectDatabase {
$dbh->disconnect;
}

#Ejecuta un query SQL y devuelve su resultado
sub Query {
local ($query) = @_;
$sth = $dbh->prepare(“$query”);
$rc = $sth->execute;
$row = $sth->fetchrow_arrayref;
$sth->finish;
return $rc;
}

# Realiza una consulta y devuelve solo la primera linea
sub QueryOneFetch (){
local ($query) = @_;
$sth = $dbh->prepare(“$query”);
$rc = $sth->execute;
if ( @row = $sth->fetchrow_array ) {
$ret = $row[0];
}
$sth->finish;

return ($ret);
}