sábado, 7 de febrero de 2015

Historial de comandos en Ubuntu



En ocasiones, cuando trabajamos con consola en Ubuntu, nos es necesario introducir un comando utilizado con anterioridad. Mediante las teclas "arriba" y "abajo", podemos visualizar las últimas órdenes introducidas en el terminal, pero si  por ejemplo lo hemos utilizado hace un mes, esta tarea se vuelve tediosa.

Ubuntu almacena todos los comandos introducidos por consola en un archivo de texto: .bash_history

Para visualizar a este archivo:

  1. Accedemos a nuestra carpeta personal
  2. Desplegamos el menú "Ver" y seleccionamos la opción "Mostrar archivos ocultos"
  3. Abrimos el archivo .bash_history
¿cómo saber cuantos registros nos guarda Ubuntu en el historial de comandos? Este valor se encuentra definido en la variable HISTFILESIZE

Para conocerlo, podemos acceder a la terminal CRTL+ALT+T  e introducir:

set | grep HISTFILESIZE


Podemos modificar el número de registros que nos guarda el historial mediante el comando:

HISTFILESIZE=3000
Así mismo, podremos visualizar y definir la ruta del archivo de historial, mediante la variable HISTFILE:

set | grep HISTFILE

Uso del comando history en el terminal

Podemos visualizar los últimos comandos utilizados mediante el uso de history,  que mostrará el historial completo.

Para visualizar, por ejemplo, los últimos 20 registros del historial, utilizaremos history 20

Para limpiar el historial completo, podemos utilizar history -c

Y por último, otro uso interesante del comando history, es que podemos hacer una búsqueda de un comando concreto utilizado con anterioridad. Por ejemplo, si deseamos que nos muestre todos los comandos utilizados que contengan la palabra "apt", utilizaremos:

history | grep apt

jueves, 5 de febrero de 2015

Añadir texto al contenido existente de un campo en mysql



En este tip vamos a comentar cómo añadir contenido mediante una sentencia sql al texto existente en el campo mediante el uso de UPDATE y CONCAT. Si únicamente utilizáramos UPDATE, sustituiría el contenido entero del campo. De esta forma lo concatena (delante o detrás) al texto existente.

Imaginemos tenemos una tabla "paises", con dos campos "id" y "denominacion"

con los siguientes valores:

iddenominacion
1España
2Portugal
3Francia

y queremos añadir el texto "CE" después de la denominación.  El procedimiento sería muy sencillo:

UPDATE paises
SET denominacion = CONCAT(denominacion, '  CE');

El resultado sería:

iddenominacion
1España CE
2Portugal CE
3Francia CE

Si queremos añadir el texto al principio de la cadena, bastaría con modificar el orden:

 CONCAT(' CE ',denominacion);

Esta función es muy útil no sólo para actualizar, sino para mostrar texto concatenado de varios campos en uno sólo:

SELECT CONCAT(nombre_comercial, ' ', cif) AS denominacion FROM empresas;

miércoles, 4 de febrero de 2015

Pagos fraccionados en PayPal



PayPal acepta el pago por suscripción , o pagos periódicos, que podemos programar de forma sencilla desde nuestro site.

El siguiente código ilustra un ejemplo de pago con las siguientes características:

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" name='form'>
<input type="hidden" name="cmd" value="_xclick-subscriptions">
<input type="hidden" name="business" value="y@mail.com">
<input type="hidden" name="item_name" value="nombre_producto">
<input type="hidden" name="item_number" value="493">
<input type="hidden" name="quantity" value="1">
<input type="hidden" name="custom" value="493_119">
<input type="hidden" name="currency_code" value="EUR">
<input type="hidden" name="amount" value="210">
<input type="hidden" name="a3" value="105.00">
<input type="hidden" name="p3" value="1">
<input type="hidden" name="t3" value="M">
<input type="hidden" name="srt" value="2">
<input type='submit' value='Pagar'>
</form>

EXPLICACION

  • cmd: indica el tipo de pago. En este caso, al ser un pago periódico, utilizaremos  el valor _xclick-subscription
  • business: e-mail del vendedor
  • item_name: nombre del artículo o suscripción
  • item_number: identificador numérico del artículo / suscripción
  • quantity: cantidad (en número)
  • custom: variable personalizada.
  • currency_code: código de moneda. 
  • amount: importe total (sin símbolo de moneda)
  • a3: importe de cada una de las cuotas
  • p3: periodo de tiempo entre cada pago. 
  • t3:  periodo de tiempo (D=días, W=semanas, M=meses, Y=años)
  • srt: número de pagos (si no pasamos esta variable, la suscripción es indefinida)
  • 
    
    
    
    Así pues, en el ejemplo expuesto a continuación, realizaríamos dos pagos (srt) mensuales (t3) cada 1 (p3) mes (t3), por importe de 105.00 (a3) euros (currency_code), por un importe total de 210 (amount) euros.

    Recorrer todas las variables POST o GET en PHP



    En ocasiones, al recibir el contenido de un formulario HTML o al recibir una petición mediante URL, no conocemos el nombre de las variables que vamos a recibir.

    Para ello, disponemos de la variable superglobal $_POST (o $_GET si la petición es a través de URL), en la cual se encuentran contenidas todas las variables recibidas.

    Imaginemos que tenemos un formulario con 10 variables, generadas dinámicamente:

    <form name='test' method='post' action='<?php echo "$PHP_SELF";?>'>

    <?php

    for($i=1;$i<11;$i++)
    {
    echo "Var $i <input type='text' name='variable_".$i."' size='20'><br>";
    }

    echo "<input type='submit' value='Enviar'>";

    ?>


    </form>

    Recogeremos estas variables utilizando $_POST, con un sencillo bucle que lo recorra y nos muestre el resultado por pantalla:


    <?php

    foreach($_POST as $nombre_variable => $valor_variable){

    echo $nombre_variable."=".$valor_variable."</br>";



    ?>

    mostrándonos por pantalla, el par nombre / valor de cada una de las variables.

    martes, 3 de febrero de 2015

    Apagar y reiniciar Ubuntu desde el terminal



    El procedimiento para reiniciar y apagar nuestro linux desde consola es muy sencillo. El comando para realizar esta tarea es: shutdown. Ni que decir tiene que debemos tener permisos de Administración para llevar a cabo esta acción.

    Para apagar el sistema de forma inmediata:

    sudo shutdown -h now  o sudo reboot

    Para reiniciar linux inmediatamente:

    sudo shutdown -r now

    Si queremos programar el apagado de nuestro equipo a una hora determinada, utilizaremos:

    sudo shutdown -h 12:03 "mensaje de apagado"

    Mostrará a cualquier usuario del sistema un mensaje de advertencia del apagado unos minutos antes.

    Si por otra parte deseamos reiniciar (o apagar cambiando -r por -h) nuestro sistema dentro de xx minutos, utilizaremos:

    sudo shutdown -r +30

    lo que provocará el reinicio de nuestro equipo 30 minutos después.

    lunes, 2 de febrero de 2015

    Buenas y malas prácticas contando registros en MySql con PHP


    Casi en cualquier ocasión nos encontramos con la necesidad de contar registros de una consulta mysql con PHP.

    Lo peor que podemos hacer es contar los registros mediante la sentencia count(*)

    Ej.- select count(*) from provincias.

    La ejecución de esta consulta consume muchos recursos en el servidor de bases de datos.

    Podemos mejorarla, indicando únicamente un campo, en este caso el identificador primario de la tabla:

    Ej.- select count(id) from provincias

    Aún mejor que esta fórmula, es utilizar mysql_num_rows

    $query_provincias="select id,nombre from provincias";
    $result_provincias=mysql_query($query_provincias,$link) or die ("error");
    $numero_filas = mysql_num_rows($result_provincias);

    while($row_provincias=mysql_fetch_array($result_provincias))
    {
    //mostramos los datos
    }
    echo "El número total de resultados es".$numero_filas;

    Esta función nos devuelve de forma rápida el número de filas de la consulta PERO condicionado por el limitador de resultados si lo incluimos en la consulta.

    Es decir. Si en la consulta indicamos que se muestren sólo 20 registros:
    $query_provincias="select nombre from provincias limit 0,20";
    la variable $numero_filas, nos devolvería 20 como resultado.

    La mejor forma y la más rápida de contar registros es utilizar la función la función SELECT SQL_CALC_FOUND_ROWS combinada con SELECT FOUND_ROWS(). Con ello obtendremos el número total de registros que generaría la consulta sin importar que esta lleve limit o no.

    $query_provincias="select SQL_CALC_FOUND_ROWS id,nombre from provincias";
    $result_provincias=mysql_query($query_provincias,$link) or die ("error");
    $rt = mysql_fetch_row(mysql_query("SELECT FOUND_ROWS()")); // Total de registros

    while($row_provincias=mysql_fetch_array($result_provincias))
    {
    //mostramos los datos
    }
    echo "El número total de resultados es".$rt[0];

    domingo, 1 de febrero de 2015

    Instalar HandBrake para ripear DVD en Ubuntu



    En ocasiones puede ser útil realizar una copia de seguridad de nuestros propios DVD. Ubuntu no dispone de este tipo de herramientas por defecto, así que instalaremos HandBrake para ello.

    Lo primero es añadirlo a nuestro repositorio:

    $ sudo add-apt-repository ppa:stebbins/handbrake-releases

    A continuación, actualizamos nuestro repositorio:

    $ sudo apt-get update

    e instalamos HandBrake:

    $ sudo apt-get install handbrake-gtk

    Una vez instalado el programa, vamos a instalar las librerías libdvdread4, necesarias para poder trabajar con DVD's

    sudo apt-get install libdvdread4

    Con esto ya lo tenemos todo listo para comenzar a ripear nuestro DVD.