La Función de este Blog

Todos tenemos una razón de existir, y la razón de este blog no es la de duplicar información de otras webs, sino la de servirte de guía hacia ella.

Aquí podrás encontrar todas las utilidades y funciones que vaya necesitando y encontrando para mis proyectos webs.

Espero que os sea de ayuda.

Saludos

miércoles, 2 de octubre de 2013

Vim. Mostrar número de líneas

Buenas a todos,

Últimamente estoy trabajando bastante sobre máquinas en linux, y me toca editar de vez en cuando ficheros, normalmente uso el editor vim, por su potencial y porque como trabajo en linea de comando, siempre esta disponible (si no está vim siempre nos quedará vi :D)

Pero una de las cosas que más hecho en falta en algunas maquinas es que el vim me muestre los números de líneas, así que para todo aquel que le pase como a mi que casi no pueda vivir sin los números de líneas os dejo como configurarlo.

Una vez dentro del vim para mostrar las líneas, ejecutamos:
:set number
ó
:set nu

Si lo que queremos es ocultarlas, desde el vim, ejecutamos:
:set nonumber
ó
:set nu!

Ahora bien, si lo que queremos es configurarlo para tenerlo siempre disponible, editamos el fichero ~/.vimrc, no lo tenemos lo creamos, e insertamos las línea
set number

Así siempre tendremos disponibles los números de líneas.

Saludos y espero que os sea de ayuda

jueves, 25 de abril de 2013

Chmod diferenciando entre ficheros y directorios

Buenas,

Hoy voy a explicar como cambiar permisos discriminando entre ficheros y directorios en Linux.

Para cambiar los permisos se usa el comando chmod. Pero el sentido de este post es poder diferenciar los ficheros de los directorios, para ello lo combinaremos con el comando find.

Para cambiar solo los permisos de directorios que cuelguen del directorio /home/prueba usaremos el comando:
find /home/pruebas -type d -exec chmod -R 755 {} \;

Para cambiar solo los permisos de ficheros que estén dentro de cualquier subdirectorio del directorio indicado (/home/prueba) ejecutamos:
find . -type f -exec chmod -R 664 {} \;

Tened en cuenta que posiblemente necesitéis permisos de root para poder cambiar permisos.

Espero que os sea de ayuda.

Un saludo

martes, 26 de marzo de 2013

Cambio de divisas

Buenas,

aquí estamos de nuevo, hoy os escribo porque recientemente he necesitado crear una calculadora de divisas los valores de estos en tiempo real. Para ello me he ayudado de las API de Google y Yahoo, reduncia por si una falla.

Las instrucciones que use son las que encontre en estos 2 enlaces:
Para resumiros lo que hice fue llamar a la función de Google, si esta me daba un error, llamaba a la de Yahoo, si ambas me daban error la conversión será de 0 que ya lo controlaré más adelante.


function conversor_divisas_google($divisa_origen, $divisa_destino, $cantidad) {
 $cantidad = urlencode($cantidad);
 $divisa_origen = urlencode($divisa_origen);
 $divisa_destino = urlencode($divisa_destino);
 $url = "http://www.google.com/ig/calculator?hl=en&q=$cantidad$divisa_origen=?$divisa_destino";
 $rawdata = file_get_contents($url);
 $data = explode('"', $rawdata);
 $error = $data['5'];
 $data = explode(' ', $data['3']);
 $var = $data['0'];

 $return = array('valor' => $var, 'error' => $error);
 return $return;
}

function conversor_divisas_yahoo($divisa_origen, $divisa_destino, $cantidad) {
 $url = 'http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=' . $divisa_origen . $divisa_destino . '=X';
 $handle = @fopen($url, 'r');
 if ($handle) {
  $result = fgets($handle, 4096);
  fclose($handle);
 }
 $array = explode(',', $result);
 $error = "";
 $valor = $array[1] * $cantidad;
 if ($valor == 0)
  $error = "Fallo yahoo";

 $return = array('valor' => $valor, 'error' => $error);
 return $return;
}

function conversor_divisas($divisa_origen, $divisa_destino, $cantidad) {
 $google = conversor_divisas_google($divisa_origen, $divisa_destino, $cantidad);
 if (!empty($google["error"])) {
  $yahoo = conversor_divisas_yahoo($divisa_origen, $divisa_destino, $cantidad);
  if (!empty($google["error"])) {
   $valor = 0;
  } else {
   $valor = $yahoo["valor"];
  }
 } else {
  $valor = $google["valor"];
 }
 return round($valor, 3);
}

echo "\n" . conversor_divisas("USD", "EUR", 1) . "\n";


El orden de las llamadas se decidío después de ver los tiempos de respuestas de cada API

Espero que os sea de ayuda

Nos leemos

sábado, 12 de enero de 2013

Creando proyecto Bazaar (bzr)

Buenas, hoy vamos a crear un proyecto desde cero con Bazaar, un buen sistema de versiones.

Lo primero, entramos dentro de la carpeta donde se encuentra el código que vamos a compartir.

user@pc: ~$ cd /var/www/proyecto


Ahora ejecutamos el comando para indicar que vamos a inicializar un nuevo proyecto

user@pc: /var/www/proyecto$ bzr init

Ya tenemos el proyecto inicializado, para comprobarlo hacemos un ls -la y veremos que tenemos una carpeta nueva, .bzr El siguiente paso es irnos al directorio donde tendremos otro repositorio:

user@pc: /var/www/proyecto$ cd /home/user/Bazzar

En este directorio nos hacemos un branch hacia el proyecto

user@pc: /home/user/Bazaar$ bzr branch /var/www/proyecto

Esto nos creará el directorio proyecto, entramos en el y ejecutamos el bind. Importante, no debe de existir el directorio.

user@pc: /home/user/Bazaar$ cd proyecto
user@pc: /home/user/Bazaar/proyecto$ bzr bind /var/www/proyecto

Con esto ya tenemos listo el sistema de versiones. Un pequeño listado de los comandos usados:
  • añadir los ficheros (bzr add), 
  • hacer commit (bzr commit -m "comentario"), 
  • ver el estado (bzr status) y 
  • actualizarnos (bzr update)
Espero que os ayude. Nos vemos.

Nota: para el ejemplo he creado el propio repositorio dentro del mismo equipo. Para poder compartirlo con más gente a través de un servidor, solo tendréis que cambiar la ruta del branch y del bind, como se indica aquí, podéis usar sftp, ssh, entre otros, esto ya se verá en otro artículo.