Razo Duke12

Thursday, February 04, 2010

No a los Pluris

Van a decir que como doy lata pero "el que no chilla no mama" :P, disculpen la insistencia pero necesitamos más apoyo en este tema de la propuesta para la eliminación de diputados y senadores plurinominales, al dia de hoy van alrededor de 150 mil personas q han externado su descontento x la existencia de estos legisladores así tambíen su apoyo por esta propuesta aportado su nombre y numero de IFE (el que esta atras de la credencial).

El Ing. Pedro Ferriz será citado en estos días para llevar nuestra voz al congreso APOYEMOS!! Que nuestra paritcipación no se quede solo en las urnas.

Si alguno de ustedes ya ha enviado esta info por favor promueva con sus familiares y conocidos para obtener mas apoyo y si no lo han hecho haganlo es importante.

Pueden leer mas sobre este tema en estas paginas web y darse cuenta de lo dañino que son estas personas para el progreso de México.

http://www.exonline.com.mx/diario/columna/844064
http://www.noalospluris.com.mx/
http://www.facebook.com/group.php?gid=181457792747
http://www.noalospluris.mx
http://www.imagen.com.mx/blog/9055/

Envien sus datos a alguno de estos medios:

Correo: ferriznoalospluris@hotmail.com

Correo: ferriznoalospluris@gmail.com

Correo: pedro@imagen.com.mx

Twitter: pedro@imagen.com.mx


DESPERTEMOS JOVENES, NO SOLO BASTA CON QUEJARSE, ESTA ACCIÓN NO IMPLICA IR A PERDER TIEMPO Y OBSTACULIZAR CALLES O CARRETERAS, ES UN MOVIMIENTO INTELIGENTE UTILIZANDO MEDIOS ELECTRONICOS NO NOS CUESTA MAS DE 5 MINUTOS.

Gracias x su tiempo.

Saturday, January 23, 2010

Apoyo No Plurinominales

Hola a todos!

Me permito enviarles este correo, que espero se convierta en una verdadera cadena con beneficio para México y nosotros, desde hace tiempo he venido escuchando la propuesta del Ing. Pero Ferriz De Con comunicador en radio sobre la "Eliminación de diputados y senadores plurinominales" , sinceramente antes de escuchar a esta persona en su programa matutino no conocía muchas cosas y creo q el estar bien informado nos hace abrir los ojos.

Desde el 11 de enero Don Pedor Ferriz esta solicitando nuestro apoyo para poder hacer valer el descontento que existe por la presencia de pseudolegisladores en el congreso de nuestro país, nadie votó por esta gente y sin embargo estan llenandose las bolsas con nuestro dinero, entorpecen la verdadera labor de legislar y lo peor nadie les puede hacer algo porque tienen fuero, son algunas de las cosas que hacen sentir un descontento, al menos en mí.

La convocatoria consiste en hacerle llegar a Don Pedro Ferriz un correo electrónico con nuestro nombre y el numero de folio de nuestra identificación IFE. Él se ha comprometido a levantar este movimiento y lograr que esta disminución de gente innecesaria y perjudicial, sea posible.

Please háganme ese favor logremos algo por nuestro país, el correo es pedro@imagen.com.mx, hagamos una cadena utilizando los medios posibles y esta propuesta es una de ellas, confió plenamente que no se hará ningún mal uso de esta información al contrario debemos dar muestras de estar presentes socialmente con lo q que ocurre en nuestro país...YA ESTUVO BUENO MÉXICO DEBE DESPERTAR!!! ojala nos toque ver ese anhelado cambio que los mexicanos deseamos!

Gracias x su tiempo, pls comuniquen y hagan extensiva esta invitación, no es copy-paste de ninguna otra cadena esto salió de mi :D.

Aqui les dejo algo de información sobre esta propuesta y sentir de los mexicanos que queremos un mejor país:

http://www.imagen.com.mx/blog/9055/

http://mexicoaldescubierto.wordpress.com/2007/09/13/los-plurinominales/

http://www.eluniversal.com.mx/notas/646594.html

Wednesday, February 04, 2009

Introducción a WURFL con PHP

WURFL (Wireless Universal Resource File) es una base de datos en formato XML que contiene características de dispositivos móviles, es un proyecto libre y colaborativo creado por Lucca Passani. Para poderlo utilizar en nuestros proyectos existen API's en diversos lenguajes como Java, PHP, Python o Perl que permiten el parseo del archivo XML.

Esta herramienta la conocí hace ya casi un año, cuando comencé a introducirme en la onda del desarrollo web para móviles en aplicaciones relativamente sencillas. Cuando me la explicaron brevemente y observé su aplicación, fue cuando conocí también el problema por el cuál surgió esta herramienta, sencillamente conocer las capacidades de los dispositivos móviles para poder adaptar el contenido que se entrega tanto en forma física (archivos) como visual (sitio web/wap).

Wurfl como el resto de la herramientas de su tipo, basan su funcionalidad en el parámetro llamado "UserAgent" de los dispositivos móviles, útil para poder determinar las características del mismo. Tomando el UA se puede consultar la base de datos de WURFL y poder conocer cosas importantes como ancho y alto de su pantalla, si es que soporta la reproducción de archivos en formato de audio MP3, que tipo de vídeos soporta, tipo de lenguaje estándar soportado para visualizar sitios web, etc.

En este post vamos a dar un breve introducción al uso de WURFL usando la librería creada en PHP por Andrea Trasatti, no se emocionen yo también pensé que era nena :P, sin mas choro vamos a comenzar. Para nuestro ejemplo práctico ocupamos los siguientes requerimientos:

* Sistema Operativo Ubuntu GNU/Linux.
* Servidor Web Apache2.
* PHP 5 con soporte para parsear XML.
* Firefox 3

Vamos a nuestro DocumentRoot y creamos una carpeta inicial para hacer las pruebas:

duke12@duke12:/var/www/tests$ mkdir wurfl && cd wurfl

Descargamos la libreria de PHP para utilizar WURFL:

duke12@duke12:/var/www/tests/wurfl$ wget http://downloads.sourceforge.net/wurfl/wurfl_php_tools_21.zip

Descomprimimos el archivo zip:

duke12@duke12:/var/www/tests/wurfl$ unzip wurfl_php_tools_21.zip

Los archivos importantes son wurfl_parser.php, wurfl_class.php y wurfl_config.php, el propio nombre nos dice mucho de su funcionalidad.

Continuamos, vamos a crear una carpeta llamada "data", descargamos al famoso wurfl.xml y su parche para browsers web dentro de la carpeta data:

duke12@duke12:/var/www/tests/wurfl/data$ wget http://wurfl.sourceforge.net/wurfl.xml
duke12@duke12:/var/www/tests/wurfl/data$ wget http://wurfl.sourceforge.net/web_browsers_patch.xml

Editamos el archivo wurfl_config.php y modificamos la constante DATADIR para ubicar la carpeta que contiene nuestro archivo wurfl.xml, en nuestro ejemplo queda:

define("DATADIR", 'data/');

Este archivo contiene directivas generales que podemos configurar para el uso de WURFL, por mencionar algunas encontramos aquellas que nos permiten habilitar (recomendado 100%) o deshabilitar el cache que va desde la creación de arreglos por grupos de dispositivos o en su caso archivos por dispositivos generalizados, también encontramos directivas de direccionamiento donde le especificamos a la librería donde se encuentran los archivos XML, ubicar la propia clase, el parseador y demás, también podemos habilitar el log más no se recomienda para aplicaciones en producción.

Muy bien ahora actualizaremos nuestro cache usando PHP CLI con la siguiente ejecución:

duke12@duke12:/var/www/tests/wurfl$ php update_cache.php

Unable to log to data/wurfl.log log_message:Thu, 30 Oct 2008 00:10:55 -0500 [duke12 11053][update_cache] Forced cache update started
Unable to log to data/wurfl.log log_message:Thu, 30 Oct 2008 00:10:59 -0500 [duke12 11053][parse] No XML patch file defined
Unable to log to data/wurfl.log log_message:Thu, 30 Oct 2008 00:11:01 -0500 [duke12 11053][update_cache] Updating multicache dir
Unable to log to data/wurfl.log log_message:Thu, 30 Oct 2008 00:11:01 -0500 [duke12 11053][update_cache] Done updating cache
Parser load time:0.0189509391785

Vamos al ejemplo ultra-mega-básico del uso de wurfl para comprobar que la librería esta bien configurada, creamos el archivo prueba1_wurfl.php dentro de nuestra carpeta de prueba y colocamos el siguiente código:

1
<?php
2
require_once('wurfl_config.php');
3 require_once(
WURFL_CLASS_FILE);
4
5
$wurflObj = new wurfl_class();
6
7
$ua = $_SERVER['HTTP_USER_AGENT'];
8
9
$wurflObj->GetDeviceCapabilitiesFromAgent($ua);
10
11 if (
$wurflObj->getDeviceCapability('is_wireless_device') ) {
12 echo
'El UA:'.$ua.'<br /> Es dispositivo movil';
13 } else {
14 echo
'El UA:'.$ua.'<br /> No es dispositivo movil';
15 }
16
?>
17




Expliquemos que onda con este script, la primeras líneas incluyen al archivo de configuración y posteriormente el archivo de la clase, paso siguiente se crea el objeto de la clase en la variable $wurflObj, utilizamos este objeto para invocar el método getDeviceCapabilitiesFromAgent() usando el header de PHP que contiene el UserAgent del dispositivo o navegador $_SERVER['HTTP_USER_AGENT'], la librería crea en este momento un mega-arreglo que contiene las características del dispositivo detectado.

Para conocer esas características se utiliza el método getDeviceCapability('nombre_caracteristica'), en nuestro ejemplo preguntamos a WURFL si es un dispositivo wireles o móvil. Podemos instalar el plugin "Modify Headers" para Firefox y podemos ver los resultados que se obtienen si jugamos con el UserAgent:

* Con el UserAgent propio del navegador vamos a la url http://localhost/tests/wurfl/prueba1_wurfl.php:

From misc


* Simulando a un NokiaN95:

From misc


De esta manera es como podemos detectar si el dispositivo que accesa nuestra pagina web es móvil o no y así poder entregar una pagina de acuerdo a sus características.

Ahora veamos otro ejemplo para conocer otro tipo de características de los móviles. Tenemos el siguiente código en el archivo prueba2_wurfl.php, los comentarios contienen una breve explicación:
1
<?php
2
require_once('wurfl_config.php');
3 require_once(
WURFL_CLASS_FILE);
4
5
//*** Comenzamos creando el objeto de la clase. ***//
6
$wurflObj = new wurfl_class();
7
8
$ua = $_SERVER['HTTP_USER_AGENT'];
9
10
//*** Obtenemos las capacidades usando el UserAgent ***//
11
$wurflObj->GetDeviceCapabilitiesFromAgent($ua);
12
13 if (
$wurflObj->getDeviceCapability('is_wireless_device') ) {
14
15
//*********** Info del Producto ********************//
16
$marca = $wurflObj->getDeviceCapability('brand_name');
17
$modelo = $wurflObj->getDeviceCapability('model_name');
18
$perfil_ua = $wurflObj->getDeviceCapability('uaprof');
19
$navegador = $wurflObj->getDeviceCapability('mobile_browser');
20
21
//********** Multimedia Basica *************************
22
$soporta_jpg = $wurflObj->getDeviceCapability('jpg') ? 'Si' : 'No';
23
$soporta_gif = $wurflObj->getDeviceCapability('gif') ? 'Si' : 'No';
24
$soporta_mp3 = $wurflObj->getDeviceCapability('mp3') ? 'Si' : 'No';
25
$soporta_video = $wurflObj->getDeviceCapability('video_3gpp') ? 'Si' : 'No';
26
27
//********** Lenguaje de Marcado ***********************
28
$nivel_xhtml = $wurflObj->getDeviceCapability('xhtml_support_level');
29
$leng_preferente = $wurflObj->getDeviceCapability('preferred_markup');
30
31
//********** Pantalla **********************************
32
$ancho = $wurflObj->getDeviceCapability('resolution_width');
33
$alto = $wurflObj->getDeviceCapability('resolution_height');
34
35
//******************* Desplegamos ***********************
36
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
37 <html><head><title>Probando Wurfl</title>
38 <meta content="text/html; charset=UTF-8" http-equiv="content-type">
39 </head><body>'
;
40 echo
"El UserAgent: <b>$ua</b> <br /> tiene las siguientes caracteristicas basicas: <br /><br />";
41 echo
'<b>[Información del producto]</b><br />';
42 echo
'Marca: '.$marca.'<br />';
43 echo
'Modelo: '.$modelo.'<br />';
44 echo
'Navegador: '.$navegador.'<br />';
45 echo
"Perfil del Agente: <a href='$perfil_ua'> $perfil_ua </a><br /><br />";
46
47 echo
'<b>[Multimedia Básica]</b><br />';
48 echo
'Soporta JPG: '.$soporta_jpg.'<br />';
49 echo
'Soporta GIF: '.$soporta_gif.'<br />';
50 echo
'Soporta MP3 '.$soporta_mp3.'<br />';
51 echo
'Soporta Video: '.$soporta_video.'<br /><br />';
52
53 echo
'<b>[Lenguaje de Marcado]</b><br />';
54 echo
'Soporta XHTML Nivel: '.$nivel_xhtml.'<br />';
55 echo
'Lenguaje Preferente: '.$leng_preferente.'<br /><br />';
56
57 echo
'<b>[Pantalla]</b><br />';
58 echo
'Ancho: '.$ancho.'<br />';
59 echo
'Alto: '.$alto.'<br />';
60
61 echo
'</body></html>';
62
63 } else {
64 echo
'El UA:'.$ua.'<br /> No es dispositivo movil';
65 }
66 echo
'</body></html>';
67
?>



Aquí podemos apreciar el resultado de jugar con el userAgent = "Nokia5200/2.0 (06.03) Profile/MIDP-2.0 Configuration/CLDC-1.1"

From misc


Con este ejemplo podemos observar que Wurfl es de gran utilidad cuando desarrollamos web para móviles para poder determinar que tipo de pagina puedo entregar al navegador de ese dispositivo, empezando por determinar el lenguaje de marcado estándar, el tipo de imágenes que puede desplegar, un idea del tamaño de pantalla, y más cosillas que le querramos colgarle.

Las debilidades de estas librerías PHP para usar Wurfl son principalmente el uso de archivos (E/S en disco) para generar el cache necesario, así como los recursos para parsear el XML.

Existen alternativas que intentan mejorar las deficiencias encontradas en esta versión de Wurfl + PHP, y algunas herramientas q se basan en Wurfl para diversas funcionalidades, tal es el caso de TeraWurfl y de WALL, de quienes hablaremos en otra ocasión, x el momento es todo --> Seguimos en la resistencia!

Wednesday, October 22, 2008

Revista NüNet #1

En una iniciativa del buen Garaged se llevó acabo el esfuerzo compartido con los miembros de la comunidad de Software Libre del Estado de Morelos Gruslic y SLM para elaborar un revista electrónica de interés tecnológico, ideólogico, cómico, mágico y aún no músical utilizando SL.

El anuncio del lanzamiento de Nünet, aquí.

Descarga la revista, aquí.

Nos gustaría conocer su opinión al respecto q invitarlos a que participen, ya se encuentra lista la convocatoria de envío de articulos para el segundo numero.

From Comunidad SL

Friday, August 01, 2008

A un año...

Un día como hoy 1 de agosto pero del año 2007 llega un ciudadano mexicano de provincia a trabajar x primera vez al D.F., llegó nervioso, temeroso y con mucha incertidumbre.

Valla un año ya chambeando por aqui se ha ido de volada cuando yo habia jurado y perjurado nunca venir a trabajar al D.F. pero en fin las oportunidades se presentan y no estamos para ponernos nuestros moños jejejej...la adaptación fue un poco compleja pero hasta el momento sigo en saldo blanco en cuanto a sustos, la verdad no me gusta exponerme y llevarmela relax con los df-eños.

pd. Seguimos en la resistencia.

Tuesday, July 22, 2008

Reunion Gruslic-era 26-julio-08

Próxima reunión Gruslic:

Fecha: Sábado 26 de Julio 2008
Horario: 9:00 am a 12:00 pm +/-
Lugar: Casa de Iván Alemán (bonovoxmofo) Cuernavaca Morelos
Mapa de ubicación.

Calle Nicolas Bravo 201-9
Lomas de Selva
62270
Entre las calles Nueva Italia y Nueva Francia en frente y a una cuadra
de Gayoso y el restaurant 'Iker' exactamente a un lado y atras de lo
que era el taller mecanico 'Speedy' ahora agencia de autos FAW (si los
chinos)


Como llegar: si vienen de Cuautla bajarse en La Luna o plan de ayala o el Vergel en Cuernavaca tomar la ruta 13 que va a la UNI x Alta Tension y Domingo Diez, bajarse como bien indica el mapa, en el cruce de Domingo Diez con la calle Nueva Italia, caminas hacia la derecha y a la primer cuadra doblas a la derecha, hay unos portones negros, no recuerdo el numero solo se que la calle es Nicolas Bravo.





Itinerario: temas diversos de interés para el grupo.


Friday, July 18, 2008

Given To Fly

"Given To Fly" - Pearl Jam

He could've tuned in, tuned in
But he tuned out
A bad time, nothing could save him
Alone in a corridor, waiting, locked out
He got up outta there, ran for hundreds of miles
He made it to the ocean, had a smoke in a tree
The wind rose up, set him down on his knee

A wave came crashing like a fist to the jaw
Delivered him wings, "Hey, look at me now"
Arms wide open with the sea as his floor
Oh, power, oh

He's.. flying
Whole
High.. wide, oh

He floated back down 'cause he wanted to share
His key to the locks on the chains he saw everywhere
But first he was stripped and then he was stabbed
By faceless men, well, fuckers
He still stands

And he still gives his love, he just gives it away
The love he receives is the love that is saved
And sometimes is seen a strange spot in the sky
A human being that was given to fly

High.. flying
Oh, oh
High.. flying
Oh, oh
He's flying
Oh, oh