[Linux] Agregar Beep de alerta en nuestros script..

Standard

Muchas veces nuestros script en Linux poseen mucho procesamiento por la cual debemos esperar y luego volver a revisar el flujo del script para ver si a terminado. Una cosa útil que uso en mis script (o en una serie de comandos) es agregar un sonido “Beep” al final de la ejecución del script para que advierta que algo a sucedido (esperemos que para bien :D )

El programa que se encarga hacer esto se llama beep (difícil de deducir, no?).

Instalamos…

sudo apt-get install beep

Probamos…

beep -f 900

Si no escuchamos nada, agregamos el modulo pcspkr al kernel…

sudo modprobe pcspkr

Y listo agregar al final de nuestros script para estar pendiente o podemos utilizarlo al finalizar un comando tan simple como cp

cp archivoGrande.tar.gz ; beep -f 900

O informar que la computadora se va a reiniciar

beep -f 900 -l 2000; shutdown -r now

Lo pueden usar también para wget, scp. Programas que de anticipado saben que van a demorar.

El parámetro -f de beep es la frecuencia, también pueden utilizar -l y jugar con la duración (en ms). Pueden ver mas parámetros con –help

beep -f 880 -l 500

Referencia de las escalas musicales y las frecuencias asociadas.

Do > 261
Do# > 277
Re > 293
Re# > 311
Mi > 329
Fa > 349
Fa# > 369
Sol > 392
Sol# >415
La > 440
La# > 466
Si > 493

Buen Código

[PHP] Variables de Apache

Standard

Estas variables son creadas por el servidor web Apache (http://www.apache.org/). Si se está utilizando otro servidor web, no hay garantía de que proporcione las mismas variables; pueden faltar algunas, o proporcionar otras no listadas aquí. Dicho esto, también están presentes las variables de la especificación CGI 1.1, por lo que también se deben tener en cuenta.

Tenga en cuenta que unas pocas, como mucho, de estas variables van a estar disponibles (o simplemente tener sentido) si se ejecuta PHP desde la línea de comandos.

<?php
//Qué revisión de la especificación CGI está usando el servidor; por ejemplo ’CGI/1.1’.
echo '<p>'.var_dump($_SERVER['GATEWAY_INTERFACE']).'</p>';

//El nombre del equipo servidor en el que se está ejecutando el script. Si el script se está ejecutando
//en un servidor virtual, este será el valor definido para dicho servidor virtual.
echo '<p>'.var_dump($_SERVER['SERVER_NAME']).'</p>';

//Una cadena de identificación del servidor, que aparece en las cabeceras al responderse a las
//peticiones.
echo '<p>'.var_dump($_SERVER['SERVER_SOFTWARE']).'</p>';

//Nombre y revisión del protocolo a través del que se solicitó la página; p.ej. ’HTTP/1.0’;
echo '<p>'.var_dump($_SERVER['SERVER_PROTOCOL']).'</p>';

//Qué método de petición se usó para acceder a la página; p.ej. ’GET’, ’HEAD’, ’POST’, ’PUT’.
echo '<p>'.var_dump($_SERVER['REQUEST_METHOD']).'</p>';

//La cadena de la petición, si la hubo, mediante la que se accedió a la página.
echo '<p>'.var_dump($_SERVER['QUERY_STRING']).'</p>';

//El directorio raíz del documento bajo el que se ejecuta el script, tal y como está definido en el
//fichero de configuración del servidor.
echo '<p>'.var_dump($_SERVER['DOCUMENT_ROOT']).'</p>';

//Los contenidos de la cabecera Accept: de la petición actual, si hay alguna.
echo '<p>'.var_dump($_SERVER['HTTP_ACCEPT']).'</p>';

//Los contenidos de la cabecera Accept-Charset: de la petición actual, si hay alguna. Por
//ejemplo: ’iso-8859-1,*,utf-8’.
echo '<p>'.var_dump($_SERVER['HTTP_ACCEPT_CHARSET']).'</p>';

//Los contenidos de la cabecera Accept-Encoding: de la petición actual, si la hay. Por ejemplo:
//’gzip’.
echo '<p>'.var_dump($_SERVER['HTTP_ENCODING']).'</p>';


//Los contenidos de la cabecera Accept-Language: de la petición actual, si hay alguna. Por
//ejemplo: ’es-ar’.
echo '<p>'.var_dump($_SERVER['HTTP_ACCEPT_LANGUAGE']).'</p>';

//Los contenidos de la cabecera Connection: de la petición actual, si hay alguna. Por ejemplo:
//’Keep-Alive’.
echo '<p>'.var_dump($_SERVER['HTTP_CONNECTION']).'</p>';

//Los contenidos de la cabecera Host: de la petición actual, si hay alguna.
echo '<p>'.var_dump($_SERVER['HTTP_HOST']).'</p>';

//La dirección de la página (si la hay) desde la que el navegador saltó a la página actual. Esto lo
//establece el navegador del usuario; no todos los navegadores lo hacen.
echo '<p>'.var_dump($_SERVER['HTTP_REFERER']).'</p>';

//Los contenidos de la cabecera User_Agent: de la petición actual, si hay alguna. Indica el
//navegador que se está utilizando para ver la página actual; p.ej. Mozilla/4.5 [en] (X11; U;
//Linux 2.2.9 i586). Entre otras cosas, se puede usar este valor con get_browser() para adaptar la
//funcionalidad de la página a las posibilidades del navegador del usuario.
echo '<p>'.var_dump($_SERVER['HTTP_USER_AGENT']).'</p>';

//La dirección IP desde la que el usuario está viendo la página actual.
echo '<p>'.var_dump($_SERVER['REMOTE_ADDR']).'</p>';

//El puerto que se está utilizando en la máquina del usuario para comunicarse con el servidor web.
echo '<p>'.var_dump($_SERVER['REMOTE_PORT']).'</p>';

//La vía de acceso absoluta del script que se está ejecutando.
echo '<p>'.var_dump($_SERVER['SCRIPT_FILENAME']).'</p>';

//El valor que se haya dado a la directiva SERVER_ADMIN (en Apache) en el fichero de
//configuración del servidor web. Si el script se está ejecutando en un servidor virtual, será el valor
//definido para dicho servidor virtual.
echo '<p>'.var_dump($_SERVER['SERVER_ADMIN']).'</p>';

//El puerto del equipo servidor que está usando el servidor web para la comunicación. Para
//configuraciones por defecto, será ’80’; al usar SSL, por ejemplo, cambiará al puerto que se haya
//definido como seguro para HTTP.
echo '<p>'.var_dump($_SERVER['SERVER_PORT']).'</p>';

//Una cadena que contiene la versión del servidor y el nombre del servidor virtual que es añadida a
//las páginas generadas por el servidor, si está característica está activa.
echo '<p>'.var_dump($_SERVER['SERVER_SIGNATURE']).'</p>';

//Vía de acceso basada en el sistema de ficheros- (no el directorio raíz del documento-) del script en
//cuestión, después de que el servidor haya hecho la conversión virtual-a-real.
echo '<p>'.var_dump($_SERVER['PATH_TRANSLATED']).'</p>';

//Contiene la vía de acceso del script actual. Es útil para páginas que necesitan apuntar a sí mismas.
echo '<p>'.var_dump($_SERVER['SCRIPT_NAME']).'</p>';

//La URI que se dió para acceder a esta página; por ejemplo, ’/index.html’.
echo '<p>'.var_dump($_SERVER['REQUEST_URI']).'</p>';
?>

Saludos…

[PHP] Asignación por referencia.

Standard

PHP ofrece otra forma de asignar valores a las variables: asignar por referencia. Esto significa que la nueva variable simplemente referencia (en otras palabras, “se convierte en un alias de” o “apunta a”) la variable original. Los cambios a la nueva variable afectan a la original, y viceversa. Esto también significa que no se produce una copia de valores; por tanto, la asignación ocurre más rápidamente. De cualquier forma, cualquier incremento de velocidad se notará sólo en los bucles críticos cuando se asignen grandes array’s u objetos.

<?php
$nombre = 'Zarpele';              // Asigna el valor 'Zarpele' a $nombre
$referencia = &$nombre;              // Referencia $nombre vía $referencia.
$referencia = "Linux y software libre $referencia"; // Modifica $referencia
var_dump($nombre);                 // $nombre también se modifica.
var_dump($referencia);
?>

Saludos…

Synapse: un lanzador de aplicaciones al estilo GNOME Do pero mucho más rápido

Standard
Synapse es una aplicación al estilo Gnome-Do o Kupfer. Además de la impresionante velocidad a la que corre, cabe destacar que este programa, a diferencia de Gnome-Do está desarrollado en lenguaje Vala, por lo que no necesita las librerías Mono. Además, tiene la particularidad de que todas las búsquedas las realiza utilizando Zeitgeist.

La aplicación ya cuenta con varios temas para cambiar su apariencia. El que se ve a continuación es el tema “mini”, pero hay varios más disponibles.

Los plugins con los que actualmente cuenta Synapse:

  • Applications – busca archivos en tu equipo
  • Banshee – permite reproducir/encolar archivos musicales en Banshee
  • Commands – ejecuta cualquier comando (Ej: “sudo apt-get update”)
  • Devhelp – busca documentación usando Devhelp
  • Dictionary – encuentra definiciones de palabras
  • Directory search – permite abrir directorios comúnmente usados
  • Gnome session – cerrar sesión, apagar, reiniciar
  • Hybrid search – resultados completos de búsqueda provistos por Zeitgeist
  • Rhythmbox – permite reproducir/encolar archivos musicales en Rhythmbox
  • UPower – suspende e hiberna tu computador
  • Zeitgeist – busca cualquier cosa encontrada por Zeitgeist

video: http://www.futbol-rustico.com.ar/video/v/JRfQ9LsTdD4

Instalación

Simplemente hace falta agregar el repositorio PPA:

sudo add-apt-repository ppa:synapse-core/ppa
sudo apt-get update
sudo apt-get dist-upgrade # este paso sólo es necesario en Ubuntu Lucid
sudo apt-get install synapse

Synapse estará disponible en Aplicaciones >Accesorios. Para lanzarlo, apretá CTRL + barra espaciadora.

Visto en | Usemos Linux (Recomendado)

WordPress: Tus feeds en texto completo…

Standard

Bueno, hace poco, se me ocurrió poner los feeds con todo el contenido de la entrada, ya que trae una serie de ventajas y esta entrada tuvo mucho que ver con esta decision.

Listo, voy a Ajustes -> Lectura en el panel de administrador y sobre la opción Mostrar, para cada entrada en el feed. habilito texto completo. Voy a verificar esto y nada, sigue en modo resumen. Limpio Cache, vuelvo a intentar y nada.

La solución la encontré en esta pagina, es un plugin llamado CompleteRSS bastante viejo por cierto pero muy eficiente.

CompleteRSS no esta para la descarga en los plugins oficiales de WordPress, asi que tenemos que hacer todo el proceso a la vieja usanza.

completerss.php

<?php
/*
Plugin Name: CompleteRSS
Plugin URI: http://neosmart.net/dl.php?id=2
Description: CompleteRSS makes sure your RSS Feeds contain full article text and are fully valid - because your readers deserve it!
Version: 1.1 BETA
Author: Computer Guru
Author URI: http://neosmart.net/blog/
*/

/*  Copyright 2006  NeoSmart Technologies  (site: http://neosmart.net/)
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.
   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

function NST_CheckRSS( $old_content )
{
	if ( !is_feed() )
		return $old_content;
	remove_filter( 'the_content', 'NST_CheckRSS', -1 ); //To get rid of infinite loops
	$content = NST_get_the_content();
	$content = apply_filters( 'the_content', $content );
	$content = str_replace(']]>', ']]&gt;', $content);  //Make it valid!
	add_filter( 'the_content', 'NST_CheckRSS', -1, 1 ); //To make it work in the future
	echo $content;
}

function NST_get_the_content()
{
    global $post;
    // Password checking copied from get_the_content()
    if ( !empty( $post->post_password ) )
		if ( stripslashes( $_COOKIE['wp-postpass_'.COOKIEHASH] ) !=  $post->post_password )
			return get_the_password_form();
    return $post->post_content;
}

//Integrate into WP
add_filter( 'the_content', 'NST_CheckRSS', -1, 1 ); //After all other filters have loaded...
add_filter( 'option_rss_use_excerpt', create_function( '$a=0', 'return 1;' ) ); //Set RSS options to summary, not full text.
?>

Solo tiene que subir este fichero completerss.php a la carpeta de plugin de su WordPress (wp-content/plugins) y luego activar el Plugin a través de su panel de Administración.

Se que es bastante escueto la entrada, pero encontrar esta solución me llevo bastante tiempo, no la encontré rápidamente en Google asi que la queria compartir en este humilde blog.

Saludos…, disculpen la falta de frecuencia en el blog, la ingenieria me esta matando :D

OpenBox, Gestor de ventanas libre para tu linux…

Standard

Openbox es un famoso gestor de ventanas libre para el sistema de ventanas X, licenciado bajo la GNU General Public License.

Openbox fue originalmente derivado de Blackbox 0.65.0, pero ha sido totalmente reescrito en el lenguaje de programación C y desde la versión 3,0 no se basa en ningún código de Blackbox. Su sistema de menú tiene un método para utilizar los menús dinámicos.

Está diseñado para ser rápido y consumir una mínima cantidad de recursos. Para conseguir esa ligereza sacrifica algunas funciones típicas en buena parte de los gestores de ventanas como por ejemplo barra de menú, lista de aplicaciones en ejecución o bordes redondeados en las ventanas. Pero a cambio ofrece otras posibilidades tales como menús generados dinámicamente capaces de ofrecer información variada.

Click para agrandar

Web | OpenBox
Ver mas capturas Google Images OpenBox