SshFs
0.- Instalar sshfs
1.- Crear un directorio para montar que el usuario sea dueño
2.- Añadir al usuario al grupo fuse
sudo adduser username fuse3.- Relogear al usuario para que tome los cambios
4.- Montar
sshfs dominio.com:/cosas /directorio/creado/para/montar5.- Enjoy
6.- Dismont
fusermount -u /directorio/creado/para/montar
Email desde Python
#!/usr/bin/python
# -*- coding: utf-8 -*-
import smtplib
from email.mime.text import MIMEText
# configuraciones smtp
server = mail.dominio.com
puerto = 25
user = usuario
password = password
msg = MIMEText ('Cuerpo del mensaje')
msg['Subject'] = 'Título'
msg['From'] = 'Nombre '
msg['To'] = 'destinatario@dominio.com'
s = smtplib.SMTP (server, puerto)
s.login (user, password)
s.sendmail (msg[From], 'destinatario@dominio.com', msg_as_string())
s.quit
print ('Mensaje enviado ;)')
Convertir de .flv a .mp3
ffmpeg -i archivo.flv -f mp3 -vn -acodec copy archivo.mp3
Carbonada
Ingredientes
- 400 - 500 grs de posta negra (o rosada)
- 5 papas medianas (y dos zanahorias si se quiere)
- 1 cebolla mediana
- 1 diente de ajo
- 1/4 de cucharadita de pimienta (negra o blanca)
- 1 sopa en sobre Carne y verduras de preferencia o la que mas guste
- 1 caldo maggi de carne (si se quiere echar más agua a la olla)
- 1 litro de agua
- 3 cucharadas de aceite
- 1 kilo de pulpa de amor
- Cilantro a gusto para darle un poquito de verde
1.- Picar o rallar la cebolla y el ajo.
2.- Freir el resultado de (1) con las 3 cucharadas de aceite, añadir media taza de agua para bajar los niveles de potencia de ambos ingredientes. Es un buen momento para poner la pimienta, asi se mezclan mejor los sabores.
3.- Picar las papas (y zanahorias...) en el corte preferido (el de las papas fritas o cuadritos)
4.- Picar la carne en trozos de tamaño 'comible sin volver a trozar', que puedan ser tomados facilmente con la cuchara al momento de comer.
5.- Después cocinar un rato prudente el resultado de (2), se cristaliza o tiende a ponerse trasparente la cebolla... Agregar la carne picada (4) y poner a fuego lento.
6.- Poner en una olla de más de 1 litro y medio las papas y zanahorias a cocer.
7.- Esperar algo de tiempo, ir observando en base al tamaño de corte de las papas & zanahorias y agregar el contenido de la sopa en sobre y el resultado de (5) en la olla donde se estan ejercitando las papas.
8.- Cocinar con la tapa durante otro rato a fuego lento, revolviendo de forma suave, como si el hambre misma fuera quien revuelve los ingredientes.
9.- Cortar el fuego y esperar 3 a 4 minutos (recomiendo esperar una canción de agrado).
10.- Es importante ir agregando el kilo de amor durante la preparación de forma racionada.
11.- Sirva en platos hondos con un poco de cilantro encima o en un plato a parte. (ver salsa verde)
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 do not 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 (okubi)