Programación
Es curioso como un error de este tipo se les llega a escapar y entra en producción.
¿Por qué no funciona? porque a algun iluminado se le ocurrio que solo lanzando la query ‘SELECT LAST_INSERT_ID()’ sin especificar la tabla sobre la que se quiere obtener el ultimo registro insertado Drupal iba automagicamente a obtenerlo…. ERROR. Ah y por cierto incluso la query ’SELECT LAST_INSERT_ID()’ bien armada también suele fallar.
/**
* Returns the last insert id.
*
* @param $table
* The name of the table you inserted into.
* @param $field
* The name of the autoincrement field.
*/
function db_last_insert_id($table, $field){
return db_result(db_query('SELECT LAST_INSERT_ID()'));
}
La función que soluciona este problema es esta:
/**
* Version modificada del analogo de drupal que soluciona un problema comentado en foros.
*
* @param string $table tabla sobre la que se quiere obtener el ultimo id insertado
* @param string $field cual es la columna que tiene el id
* @return int
*/
function custom_db_last_insert_id($table, $field) {
$result = db_query("SELECT $field FROM {$table} ORDER BY $field DESC LIMIT 1");
$row = db_fetch_object($result);
return $row->$field;
}
Solo resta agregar que uso esta solución hace mas de un año y funciona bien.
Comprimir y enviar archivos al vuelo con SCP / SSH
Sintaxis:
scp -C -c arcfour [archivo_local.ext] [ip destino]:[ruta remota]/[archivo_destino.ext]
Ejemplo:
scp -C -c arcfour archivo_local.ext 192.168.1.20:/home/archivo_destino.ext
Que frase! y que cierta!
“La mayoría de los programadores no programa porque espera el sueldo o la adulación del público, si no porque es divertido programar”
- Linus Torvalds
Convertir maquinas virtuales .raw a .qcow2
Me pasó que tenia una maquina virtual que hice con Proxmox en formato .raw pero necesitaba pasar esa maquina a un CentOS que corría libvirt. Para ello necesité convertir la imagen de la maquina virtual de formato raw a .qcow2.
qemu-img convert -f raw vm-disk.raw -O qcow2 vm-disk.qcow2
Tip: Resetear el usuario root de webmin
sudo /usr/share/webmin/changepass.pl /etc/webmin root CLAVE_NUEVA