Convertir de .flv a .mp3
ffmpeg -i archivo.flv -f mp3 -vn -acodec copy archivo.mp3
Redimensionar fotos con CI
<?php
class Deploy extends Controller {
function resize()
{
# nuevos ancho y alto
$newWidth = '640';
$newHeight = '480';
# configurar el resize
$config['image_library'] = 'gd2';
$config['source_image'] = '/ruta/a/la/imagen/original'
$config['new_image'] = '/ruta/a/la/imagen/nueva';
$config['create_thumb'] = FALSE;
$config['maintain_ratio'] = TRUE;
$config['width'] = $newWidth;
$config['height'] = $newHeight;
$this->load->library('image_lib', $config);
if ( ! $this->image_lib->resize())
{
echo $this->image_lib->display_errors();
}
# dejar limpia la condig de la biblioteca
$this->image_lib->clear();
$this->load->view('vista_de_salida');
}
}
Revisar ortografía archivos latex con aspell
aspell -d es -c archivo.tex
Enviar correos desde Symfony con Swift Mailer
Primero se necesario bajar las clases de Swift Mailer. A parte de las cosas que trae como licencia y ejemplos, lo importante es el directorio lib el cual debe ser copiado en el directorio actions del módulo que enviará los correos. Fragmento de action.class.php
<?php
class mailActions extends sfActions
{
public function executeSendmsg (sfWebRequest $request)
{
// datos para cargar el correo
$title = "el titulo del correo";
$email = "kope@dominio.com";
$from = "sender@dominio.com";
$message = "El cuerpo del mensaje";
$ip = $_SERVER["REMOTE_ADDR"];
$servidor = "smtp.dominio.com";
$puerto = 25;
// lib requerida para la clase de envio de correos
require_once 'lib/swift_required.php';
// Crear objetos y configurar el correo
$msg = Swift_Message::newInstance();
$msg->setSubject ($title);
$msg->setFrom (array ($from => 'Nombre del emisor'));
$msg->setTo (array ($email => 'Destinatario'));
$msg->setBody ($email . ' wrote:<br />'.$message.'<br /><br /><br />From ' . $ip, 'text/html');
$transport = Swift_SmtpTransport::newInstance ($servidor, $puerto);
$transport->setUsername ('usuario');
$transport->setPassword ('p4ssw0rd');
$mailer = Swift_Mailer::newInstance ($transport);
// Enviar el mensaje
$numSent = $mailer->send ($msg);
if ($numSent)
{
// método para notificar el éxito
$this->redirect ('contact/thanks');
} else {
// método para notificar el fracazo
$this->redirect ('contact/fail');
}
}
}
Mysql desde C
Compilar con:
gcc -I/usr/include/mysql archivo.c -lmysqlclient -lsocket -lnsl -lm -lzCode archivo.c:
#include <mysql.h>
#include <stdio.h>
int main (void)
{
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "servidor.mysql.com";
char *user = "usuario";
char *password = "password";
char *database = "nombreBaseDatos";
conn = mysql_init (NULL);
/* Connect to database */
if (!mysql_real_connect (conn, server, user, password, database, 0, NULL, 0))
{
fprintf (stderr, "%s
", mysql_error (conn));
return(0);
}
/* send SQL query */
if (mysql_query (conn, "SELECT * FROM tabla"))
{
fprintf (stderr, "%s
", mysql_error(conn));
return(0);
}
res = mysql_use_result (conn);
/* output fields 1 and 2 of each row */
while ((row = mysql_fetch_row (res)) != NULL)
printf("%s %s
", row[1], row[2]);
/* Release memory used to store results and close connection */
mysql_free_result (res);
mysql_close (conn);
}
Encontrar un archivo
find / -iname nombreArchivo.algo
Convertir varias imagenes de tamaño en un directorio
for i in $(ls); do convert $i -geometry 500 $i;done
Leer datos desde archivo en python
cat datos.txt
Nombre: Juan Apellido: Perez Edad: 30
#!/usr/bin/env python
for line in open("datos.txt"):
line=line.strip()
if "Nombre" in line:
firstname = line.split(":")[1]
if "Apellido" in line:
lastname = line.split(":")[1]
if "Edad" in line:
age = line.split(":")[1]
print "Nombre = " + firstname
print "Apellido = " + lastname
print "Edad = " + age
Md5 en Python
#!/usr/bin/env python
import hashlib, string, base64
m = hashlib.md5()
m.update("Some text")
print m.hexdigest()
Comprimir / Descomprimir Linux
Comprimir .tar
tar cvf archivo.tar /archivos/a/comprimir/*Descomprimir .tar
tar xvf archivo.tarVer contenido .tar
tar tvf archivo.tarComprimir .tar.gz
tar zcvf archivo.tar.gz /archivos/a/comprimir/*Descomprimir .tar.gz
tar zxvf archivo.tar.gzVer contenido .tar.gz
tar tzvf archivo.tar.gzComprimir .gz
gzip -q archivo # el archivo lo renombra a archivo.gzDescomprimir .gz
gzip -d archivo.gzComprimir .bz2
bzip2 archivo bunzip archivoDescomprimir .bz2
bzip2 -d archivo.bz2 bunzip2 archivo.bz2Comprimir .tar.bz2
tar -c archivos | bzip2 > archivo.tar.bz2Descomprimir .tar.bz2
bzip2 -dc archivo.tar.bz2 | tar -xv # versiones recientes de tar tar jvxf archivo.tar.bz2Ver contenido .tar.bz2
bzip2 -dc archivo.tar.bz2 | tar -tv
Bajar un html por CLI
lynx -dump somefile.html
Cantidad commit por usuario SVN
svn log -q|grep "|"|awk "{print \$3}"|sort|uniq -c|sort -nr
LIKE en SF 1.2 (Propel)
<?php
class AlgunPeer extends BaseAlgunPeer
{
public static function nombre_funcion ($param1)
{
$c = new Criteria();
// is like en SQL
$c->add (AlgunPeer::CAMPO,"%{$param1}%", Criteria::LIKE);
// para no discriminar entre mayúsculas y minúsculas
$c->setIgnoreCase (true);
return AlgunPeer::doSelect ($c);
}
}
?>
Arrays Perl
| Función | Definición |
|---|---|
| push (@array, elemento) | Añade un elemento al fin del arreglo |
| pop (@array, elemento) | Remueve el último elemento de un arreglo |
| unshift (@array, elemento) | Añade un elemento al principio del arreglo |
| shift (@array) | Saca el primer elemento de un arreglo |
| delete $array[indice] | Borra el elemento index del arreglo |
Tunel ssh
ssh -L <puerto_remoto>:localhost:<puerto_local> <usuario_remoto>@server_remoto
Montar .iso
mount -o loop imagen.iso /mnt/donde/montar
Eliminar recursivamente los .svn
rm -rf `find . -type d -name .svn`
Generar un .cap con tcpdump
tcpdump -v -w archivo.cap -xX -s 0 -i <interface>
Boolean en C
// booleano typedef int Bool; #define FALSE 0 #define TRUE 1
Procedimientos almacenados desde Symfony 1.2
Dentro de el modelo Peer
<?php
class EjemploPeer extends BaseEjemploPeer
{
$con = Propel::getConnection(EjemploPeer::DATABASE_NAME);
$sql = "SELECT * FROM procedimiento('". $param1."', '".$param2."');";
$st = $con->prepare($sql);
$st->execute();
return true;
}
?>
Crontab Commands
export EDITOR=vim ;para especificar que editor usar. crontab -e Edit your crontab file, or create one if it doesn't already exist. crontab -l Display your crontab file. crontab -r Remove your crontab file. crontab -v Display the last time you edited your crontab file. (This option is only available on a few systems.)
Nero