Xgamma, una utilidad poco conocida

01 03 2008 GNU/Linux
    Hay veces que el brillo del monitor no está correctamente ajustado o la iluminación en la habitación donde está tu ordenador es la inadecuada. Entonces debemos ajustar los mandos de brillo o contraste de tu monitor, por medio de las ruedecitas (antes) o de algún menú interno (ahora). ¡Pero quieto! ¡Un autentico friki no hace eso!, es mejor ajustar el brillo modificando la corrección gamma de tu monitor a través del servidor X (bueno, bueno donde va a parar esta solución es mucho mejor ;p)

  Pues para hacer esto utilizamos el poco conocido comando xgamma, esta es su sintaxis

xgamma [-display display] [-screen screen] [-quiet] [-gamma f.f | [[-rgamma f.f] [-ggamma f.f] [-bgamma f.f]]]

  Prueba a ejecutar

$ xgamma -gamma 2


  Obtendrás una salida como esta

-> Red 1.000, Green 1.000, Blue 1.000
<- Red 2.000, Green 2.000, Blue 2.000

  La primera línea indica los valores antiguos rgb y la segunda los nuevos

  Para volver a la situación inicial

$ xgamma -gamma 1

  Y ya está, puedes modificar los componentes rgb de manera individualizada mediante los parámetros rgamma, ggamma y bgamma. Y cuidado no quemes tu monitor.

Ahora puedes hacer que una combinación específica de teclas o los botones multimedia de tu teclado hagan automaticamente esta tarea. Utilizando por ejemplo LinEAK.


Bookmark Xgamma, una utilidad poco conocida  at del.icio.us Digg Xgamma, una utilidad poco conocida Mixx Xgamma, una utilidad poco conocida Bloglines Xgamma, una utilidad poco conocida Technorati Xgamma, una utilidad poco conocida Fark this: Xgamma, una utilidad poco conocida Bookmark Xgamma, una utilidad poco conocida  at YahooMyWeb Bookmark Xgamma, una utilidad poco conocida  at Furl.net Bookmark Xgamma, una utilidad poco conocida  at reddit.com Bookmark Xgamma, una utilidad poco conocida  at blinklist.com Bookmark Xgamma, una utilidad poco conocida  at Spurl.net Bookmark Xgamma, una utilidad poco conocida  at NewsVine Bookmark Xgamma, una utilidad poco conocida  at Simpy.com Bookmark Xgamma, una utilidad poco conocida  at blogmarks Bookmark Xgamma, una utilidad poco conocida  with wists Bookmark Xgamma, una utilidad poco conocida  at Ma.gnolia.com wong it! Bookmark using any bookmark manager! Stumble It!

Memoria compartida bajo Linux

28 02 2008 GNU/Linux

    La memoria compartida es otro de los métodos utilizados para la comunicación entre procesos (IPC) en donde 2 o más procesos comparten un segmento de memoria. Básicamente existen 2 tipos diferentes disponibles en la mayoría de sistemas GNU/Linux. Los nombres de estas implementaciones son System V IPC y BSD mmap.

La utilización de memoria compartida en ambos sistemas involucra lo siguiente:

La asignación de un nombre único para el segmento
, de manera que otras aplicaciones puedan acceder a él. Al mismo tiempo contienen métodos para producir segmentos anónimos o privados.

Especificación de los permisos de acceso, siguiendo el esquema lectura/escritura/ejecución

Condiciones de carrera (Race conditions), métodos para tratar de evitar estas situaciones.

Continua leyendo "Memoria compartida bajo Linux"


Bookmark Memoria compartida bajo Linux  at del.icio.us Digg Memoria compartida bajo Linux Mixx Memoria compartida bajo Linux Bloglines Memoria compartida bajo Linux Technorati Memoria compartida bajo Linux Fark this: Memoria compartida bajo Linux Bookmark Memoria compartida bajo Linux  at YahooMyWeb Bookmark Memoria compartida bajo Linux  at Furl.net Bookmark Memoria compartida bajo Linux  at reddit.com Bookmark Memoria compartida bajo Linux  at blinklist.com Bookmark Memoria compartida bajo Linux  at Spurl.net Bookmark Memoria compartida bajo Linux  at NewsVine Bookmark Memoria compartida bajo Linux  at Simpy.com Bookmark Memoria compartida bajo Linux  at blogmarks Bookmark Memoria compartida bajo Linux  with wists Bookmark Memoria compartida bajo Linux  at Ma.gnolia.com wong it! Bookmark using any bookmark manager! Stumble It!

Trabajar con memoria compartida entre procesos php

27 02 2008 GNU/Linux
    Para los que no deseen emplear fifos para la comunicación entre procesos php, la otra solución es compartir un segmento de memoria. Esta tarea se puede realizar con los comandos shmop.

Estas funciones no precisan la instalación de extensiones especificas pero si la compilación de tu php con el parámetro --enable-shmop

Esta opción nos permite tener disponibles los siguientes comandos

- shmop_close — Cierra un segmento de memoria compartida
-shmop_delete — Borra un segmento de memoria compartida
- shmop_open — Crea o abre un segmento de memoria compartida
- shmop_read — Lee un segmento de memoria compartida
- shmop_size — Obtiene el tamaño de un segmento de memoria compartida
- shmop_write — Escribe datos en un segmento de memoria compartida

Se emplean de manera analoga a como lo hariamos con un fichero o con un socket

Primero abrimos el segmento compartido con chmop_open, luego leemos o escribimos (las dos opciones son posibles a diferencia de los fifos en GNU/Linux donde o abrimos el fifo para lectura o para escritura) con shmop_read o shmop_write. Y finalmente cerramos el segmento de memoria compartido con chmop_close.

Este seria un ejemplo sencillo


<?php

//0xff3 - identificador segmento, se debe utilizar en todos los segmentos a compartir
// "c" - Opciones: c para crear, a para acceder, w acceder lectura/escritura y n crear nuevo segmento
// 0644 - Permisos GNU/Linux
// 100 - Tamaño en bytes
if(!$sh = shmop_open(0xff3, "c", 0644, 100))
{
die('Error creando segmento de memoria compartido');
}

// El 0 es el offset sobre el segmento de memoria, para leer desde el principio 0
shmop_write($sh, "mi segmento de memoria compartida",0);

$my_string = shmop_read($sh, 0, strlen("mi segmento de memoria compartida"));

echo $my_string;
shmop_close($sh);

?>


Bookmark Trabajar con memoria compartida entre procesos php  at del.icio.us Digg Trabajar con memoria compartida entre procesos php Mixx Trabajar con memoria compartida entre procesos php Bloglines Trabajar con memoria compartida entre procesos php Technorati Trabajar con memoria compartida entre procesos php Fark this: Trabajar con memoria compartida entre procesos php Bookmark Trabajar con memoria compartida entre procesos php  at YahooMyWeb Bookmark Trabajar con memoria compartida entre procesos php  at Furl.net Bookmark Trabajar con memoria compartida entre procesos php  at reddit.com Bookmark Trabajar con memoria compartida entre procesos php  at blinklist.com Bookmark Trabajar con memoria compartida entre procesos php  at Spurl.net Bookmark Trabajar con memoria compartida entre procesos php  at NewsVine Bookmark Trabajar con memoria compartida entre procesos php  at Simpy.com Bookmark Trabajar con memoria compartida entre procesos php  at blogmarks Bookmark Trabajar con memoria compartida entre procesos php  with wists Bookmark Trabajar con memoria compartida entre procesos php  at Ma.gnolia.com wong it! Bookmark using any bookmark manager! Stumble It!

FIFOs en linux

24 02 2008 GNU/Linux
¿Que es un FIFO?

FIFO significa Fist In First Out (primero en entrar, primero en salir) y es utilizado en estruturas de datos para implementar colas. Su comportamiento como se ve es análogo al de una cola donde la primera persona en llegar es la primera en ser atendida.

En GNU/Linux podemos crear objetos tipo fifo en nuestro sistema de archivos. Para ello tenemos el comando mkfifo. Para crear un fichero tipo fifo, también llamado tuberia (pipe) debemos ejecutar:

$ mkfifo nombre_fifo

Para introducir datos en el puedes emplear el operador >

Por ejemplo

$ echo Hola > nombre_fifo

y para extraer datos de el basta por ejemplo ejecutar

$ cat nombre_fifo

Prueba a crear una fifo y desde dos terminales distintas ejecuta los dos comandos anteriores. Verás que cualquiera de ello espera a que el otro escriba o lea los datos que necesita. No importa el orden en el que los ejecutes.

Si ejecutas:

$ ls -l nombre_fifo

Verás que la primera letra que sale, la que corresponde al tipo de fichero es una p de pipe.

A diferencia de las tuberias en linea (|) que sólo sirven para permitir que la salida de una aplicación sea la entrad de otra las fifo también llamadas tuberias con nombre (named pipes) nos permiten además de esta redirección de la salida estandar una redirección de cualquier dato de salida que pueda ser grabado a disco.

Esto es particularmente útil para aplicaciones o grupos de aplicaciones que no soportan tuberias en linea.

Ejemplo:

$ mkfifo mififo
$ lame -q 2 -b 128 mififo output.mp3
$ mplayer input.rm -ao pcm -aofile mififo

Con esto podemos convertir ficheros en formato Real media a mp3

Es posible crear tuberias con nombre empleando el comando mknod, de hecho era el método utilizado para crearlas antes de la aparición del comando mkfifo para simplificar esta tarea.

Mas información en:

Linux Journal
Unix review

Bookmark FIFOs en linux  at del.icio.us Digg FIFOs en linux Mixx FIFOs en linux Bloglines FIFOs en linux Technorati FIFOs en linux Fark this: FIFOs en linux Bookmark FIFOs en linux  at YahooMyWeb Bookmark FIFOs en linux  at Furl.net Bookmark FIFOs en linux  at reddit.com Bookmark FIFOs en linux  at blinklist.com Bookmark FIFOs en linux  at Spurl.net Bookmark FIFOs en linux  at NewsVine Bookmark FIFOs en linux  at Simpy.com Bookmark FIFOs en linux  at blogmarks Bookmark FIFOs en linux  with wists Bookmark FIFOs en linux  at Ma.gnolia.com wong it! Bookmark using any bookmark manager! Stumble It!