La Free Software Foundation apoya a Google y su proyecto WebM

Standard

Hace casi una semana Google comunicaba que su navegador Chrome dejaría de dar soporte a H.264, para concentrar sus esfuerzos en su propio códec abierto de video VP8 junto a su contenedor WebM.

Ahora es la Free Software Foundation (FSF) la que se pronuncia respecto al tema dando todo su apoyo a la iniciativa liderada por Google, dejando de paso claramente establecida su posición contraria al uso del códec H.264 por estar “rodeado de patentes”.

De paso aprovecha de responder a quienes han señalado que le medida de Google representa un retroceso para los estándares en la web, ya que H.264 es mucho más compatible en la actualidad. A estos les aclara que se confunden con la idea de que la web debe ser libre y sin trabas; por lo que la única manera de que la web sea efectivamente libre es rechazando aquellos formatos que están restringidos por patentes.

Con seguridad el apoyo entregado por la FSF a WebM será de gran utilidad para la masificación de este estándar, mientras tanto seguimos esperando algún tipo de pronunciamiento de parte de las compañías que aún dan soporte a H.264.

Link: No double standards: supporting Google’s push for WebM (FSF)

[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…

Ya está disponible la versión 2.6.37 del kernel Linux

Standard

La versión 2.6.37 del kernel Linux ha sido liberada, después de que hace unos días Linus Torvalds la anunciara después de 11 semanas de desarrollo.

Esta versión cuenta con:

  • Mejoras de escalabilidad y rendimiento en los sistemas de archivos Ext4 y XFS
  • Posibilidad de compilar el kernel sin el BKL (Big Kernel Lock), bloqueo más molesto del núcleo que no tenía impacto en el rendimiento
  • Dispositivo de bloques basado en el sistema de archivos distribuido Ceph.
  • Soporte de limitación I/O, esto hace posible que con cgroup se limite la lectura/escritura de un grupo de procesos.

Además agrega varias mejoras en Btrfs, pruebas estáticas más eficientes, soporte a los módulos de prueba perf y listados de variables locales y globales accesibles, hibernación de imágenes utilizando la compresión LZO, PPP a través de IPv4 y varias microoptimizaciones de redes, sin mencionar los nuevos controladores para dispositivos.

Visto en | FayerWayer

Ordenar array multidimensional por un campo con PHP

Standard

Una de las razones por al que creé el blog, fue la de guardar todo aquello que creo importante o que voy a utilizar en un futuro próximo. Esta función la encontré buscando como ordenar un array multidimensional por un campo y me sirvió bastante, así que hoy se las dejo para que la usen. Saludos y perdón por la poca frecuencia de entradas, prometo en enero aumentar las mismas…

Con esta sencilla función conseguiremos ordenar cualquier array multidimensional por el campo del array que queramos. Podremos indicarle si queremos que nos lo ordene de manera ascendente o descendente.

$toOrderArray -> Array a ordenar
$field -> Campo del array por el que queremos ordenarlo (entre comillas).
$inverse -> Su valor será true o false. El valor true lo ordenará de manera descendente y el false (valor por defecto) lo ordenará de manera ascendente.

function orderMultiDimensionalArray ($toOrderArray, $field, $inverse = false) {
    $position = array();
    $newRow = array();
    foreach ($toOrderArray as $key => $row) {
            $position[$key]  = $row[$field];
            $newRow[$key] = $row;
    }
    if ($inverse) {
        arsort($position);
    }
    else {
        asort($position);
    }
    $returnArray = array();
    foreach ($position as $key => $pos) {
        $returnArray[] = $newRow[$key];
    }
    return $returnArray;
}

Fuente | NotasWeb