Usuarios en Linea Actualmente: 2 Users Online

Cronicas de un desarrollador

↑ Grab this Headline Animator

Graphviz Herramienta de Diagramas

May 14, 2008 on 5:31 pm | In Desarrollo | 1 Comment | 21 views

Como soy muy inquieto, hace unos dias me dio por querer hacer diagramas de informacion obtenida de una base de datos, estuve buscando opciones, la mas sencilla era hacer un objeto Flash y pasarle parametros con ActionScript, pero ….. no soy muy fan de Flash, la otra era usar un objeto DCOM y generar una imagen con algun lenguaje de Microsoft, mmmm tampoco era una opcion que me gustara, hace como 8 años conoci un proyecto OpenSource de AT&T que se llama Graphviz, decidi darle una nueva revisada, y sorpresa cumple con mi capricho y ademas hay varias API que la explotan, les dejo algunos ejemplos de lo que se puede hacer con esta herramienta

Graphviz Unix history

El codigo Graphviz para hacer el dibujo anterior es

/* courtesy Ian Darwin and Geoff Collyer, Softquad Inc. */
digraph unix {
	size="6,6";
	node [color=lightblue2, style=filled];
	“5th Edition” -> “6th Edition”;
	“5th Edition” -> “PWB 1.0″;
	“6th Edition” -> “LSX”;
	“6th Edition” -> “1 BSD”;
	“6th Edition” -> “Mini Unix”;
	“6th Edition” -> “Wollongong”;
	“6th Edition” -> “Interdata”;
	“Interdata” -> “Unix/TS 3.0″;
	“Interdata” -> “PWB 2.0″;
	“Interdata” -> “7th Edition”;
	“7th Edition” -> “8th Edition”;
	“7th Edition” -> “32V”;
	“7th Edition” -> “V7M”;
	“7th Edition” -> “Ultrix-11″;
	“7th Edition” -> “Xenix”;
	“7th Edition” -> “UniPlus+”;
	“V7M” -> “Ultrix-11″;
	“8th Edition” -> “9th Edition”;
	“1 BSD” -> “2 BSD”;
	“2 BSD” -> “2.8 BSD”;
	“2.8 BSD” -> “Ultrix-11″;
	“2.8 BSD” -> “2.9 BSD”;
	“32V” -> “3 BSD”;
	“3 BSD” -> “4 BSD”;
	“4 BSD” -> “4.1 BSD”;
	“4.1 BSD” -> “4.2 BSD”;
	“4.1 BSD” -> “2.8 BSD”;
	“4.1 BSD” -> “8th Edition”;
	“4.2 BSD” -> “4.3 BSD”;
	“4.2 BSD” -> “Ultrix-32″;
	“PWB 1.0″ -> “PWB 1.2″;
	“PWB 1.0″ -> “USG 1.0″;
	“PWB 1.2″ -> “PWB 2.0″;
	“USG 1.0″ -> “CB Unix 1″;
	“USG 1.0″ -> “USG 2.0″;
	“CB Unix 1″ -> “CB Unix 2″;
	“CB Unix 2″ -> “CB Unix 3″;
	“CB Unix 3″ -> “Unix/TS++”;
	“CB Unix 3″ -> “PDP-11 Sys V”;
	“USG 2.0″ -> “USG 3.0″;
	“USG 3.0″ -> “Unix/TS 3.0″;
	“PWB 2.0″ -> “Unix/TS 3.0″;
	“Unix/TS 1.0″ -> “Unix/TS 3.0″;
	“Unix/TS 3.0″ -> “TS 4.0″;
	“Unix/TS++” -> “TS 4.0″;
	“CB Unix 3″ -> “TS 4.0″;
	“TS 4.0″ -> “System V.0″;
	“System V.0″ -> “System V.2″;
	“System V.2″ -> “System V.3″;
}

Se usa pasandole parametros a la linea de comandos, pero hay muchas maneras con PHP,ASP y otros lenguajes de hacer diagramas al vuelo

http://www.graphviz.org Este es su sitio visitenlo y vean las enormes posibilidades que ofrece

Saludos

XAMPP Paquete util y Practico

May 9, 2008 on 4:40 am | In Desarrollo | 3 Comments | 47 views

Bien aqui como siempre con las Cronicas de un Desarrollador (Y Como no Morir en el intento) pues el dia de hoy estaba viendo como implementar un pequeño sistema desarrollado en PHP/MySQL ya estaba listo y probado y recontrarevisado, lo lleve con un cliente para que le dieran un vistaso y me dijo claro instalalo en mi PC ya que no tengo Internet, ups ahi comenzamos con problemas, ya que yo tenia previsto que lo accediera via Internet, bien dije pues es un asunto que se arregla veamos, que equipo tienes, pense que seria un tipico Windows XP Professional, asi solo instalaria PHP y MySQL y agregaria el tan temeroso IIS para hacer de esto algo sencillo, zaz cual fue mi sorpresa cuando veo que es un Windows XP Home Edition, que de util tiene muy poco en estos casos ya que no tiene soporte para IIS, mi primera idea fue conseguir el instalador de Apache para XP, pero carajo eso hiba complicar las cosas ya que esa PC no estaba destinada a ser un servidor , consultando con un buen amigo Hector Flores (Si blog es http://www.azain.com) me comento de un pequeño recopilado que se llama XAMPP este es un zip que contiene todo lo necesario para correr aplicaciones PHP con Apache y MySQL y otras bondades (PhpMyAdmin,Perl, phyton) y que su gran ventaja es que esta pensado para equipos de bajas prestaciones y que no tienes que hacer gran trabajo para configurarlo, porque practicamente esta ya listo para usarse, asi es de simple bajas el zip de esta direccion http://www.apachefriends.org/en/xampp.html y desempaquetas la carpeta xampplite en mi caso en la unidad de C:\ del susodicho Windows, entras a la carpeta ejecutas setup_xampp.bat y taran listo, asi de sencillo ya tienes un Apache/PHP/MySQL listo y funcionando con sus versiones mas recientes y sin ninguna complicacion, si lo quieres hacer un poco mas elegante puedes agregar Apache y MySQL como servicios solo lee el archivo readme.txt y veras que es cuestion nada mas de ejecutar unos .bat y listo, si no pues viene otros .bat para que puedas iniciar los servicios de Apache y MySQL, en mi caso fue un alivio ya que una vez realizado esto solo tuve que copiar la carpeta de la aplicacion y restaurar la base de datos en el recien instalado MySQL y listo la aplicacion se ejecuto de mil maravillas.

Se me estaba pasando este paquete no nada mas existe para Windows, si no que tambien tienen para MacOSX y Linux, se por buenos amigos Mac’eros que este les funciona de mil maravillas y otros Linuxeros me dicen que les simplifico mucho la vida

Les dejo estos comentarios porque uno como desarrollador muchas veces asume muchas situaciones y escenarios cuando se esta por implementar un sistema con el usuario final y ahi estan los hechos no todo es como creemos que esta en nuestras computadoras de desarrollo, asi que siempre evaluen la situacion y asegurense de tener una alternativa para realizar dicho trabajo, les dejo este util y practico tip

Saludos

Dante Robles

Transmitiendo TV a la LAN con VLC

May 6, 2008 on 11:32 pm | In Tecnologia | 4 Comments | 116 views

Bueno debo de aclarar que esto no es la panacea del mundo pero creo que ha alguien le puede ser muy util, debo esta idea nuevamente a Omar Cobos desde Pragmatic Blog, todo comenzo con una pequeña platica sobre como Omar estaba sacandole partido su PSP, me comento que con el VLC que es un programa para reproducir Videos de muchos formatos se podia enviar señales de video al PSP y que podia muy tranquilamente almorzar viendo su PSP las noticias recientes.

Me agrado la idea debo de decirlo, asi que me dispuse a ver que mas se podia hacer, resultado investigue al susodicho programa VLC (VideoLan Client MediaPlayer) ademas de ser un reproductor multiplataforma de una gama extensea de formatos de video y audio, tiene la gran habilidad de hacer de streaming.

Espera!!!! ¿Que es Streaming? veamos que nos dice la Wikipedia
Streaming es un término que se refiere a ver u oír un archivo directamente en una página web sin necesidad de descargarlo antes al ordenador. Se podría describir como “hacer click y obtener”. En términos más complejos podría decirse que describe una estrategia sobre demanda para la distribución de contenido multimedia a través del internet. Referencia

Bueno ya vimos que el streaming es un metodo de transmitir video, audio ya sea en vivo o grabado, comunmente se le usa para transmitir en vivo. Bueno VLC puede hacer muchas maravillas como transmitir desde tu capturadora de TV a todos los dispositivos que tengan VLC,MPlayer ,Windows Media Player o Real Player, si suena bien interesante veamos el siguiente escenario

La Seleccion Mexicana Juega Futbol contra algun pais interesante pero solo tenemos una computadora con Tarjeta de TV para ver la señal, quisiera poder compartirla con todos mis compañeros de oficina y asi evitar que todos esten hechos un monton conmigo, o peor que me crucifiquen si no los dejo ver el partido.

¿Como solucionarlo?
Simple veamos los elementos

  • Un PC con Capturadora de TV
  • VLC 8.6f instalado descargar aqui para Windows
  • que todos los demas tengan al menos Windows Media Player 10 o superior
  • Seguir los siguientes Pasos

Bien supondremos que todos tienen Windows XP y que la Maquina con la Capturadora tambien, que se reunieron los requisitos anteriores y listo vamos por partes

1.- Instalar VLC en la Maquina de la Capturadora
2.- Una vez instalado abrir el Programa
VLC
3.- Abrir el Menu Volcado de Red
VLC
4.- Despues ir a la pestaña de DirectShow y seleccionar en la lista “nombre aparato video su tarjeta de TV”
VLC
5.- en esa misma ventana palomeen la opcion de Volcado/Salvar y Presionen el boton de Opciones
VLC
6.- Configuren como se muestra en la imagen, Reproducir localmente, http port 8080,ASF,WMV2 y MP3, esto para que funcione en los Windows Media Player
VLC

Despues de esto dan OK y el VLC comenzara a Reproducir con la Tarjeta de TV y a Transmitir en su computadora para la LAN, con http://ipdemipc:8080 este dato lo debemos usar en las PC’s Clientes con Windows Media Player se van al Menu->Archivo->Abrir URL y ponen los datos de la PC como quedamos http://ipdemipc:8080 esperan un poco a que se envie la señal y listo, ahora todos pueden ver la señal de la TV en sus PC’s.

Esto esta pensado para ser usado en una red local, no para transmitir por Internet, aunque se puede les comento que si lo intentan van a consumir mucho ancho de banda, bastante diria yo asi que los dejo a su consideracion

Como siempre espero les sea util y agradecimientos por las ideas a Omar Cobos.

Saludos

Dante

Migracion a WordPress 2.5

May 1, 2008 on 6:41 am | In Web 2.0 | 1 Comment | 56 views

Caray tanto me resisti y me resisti a no cambiar la version de mi antiguo WordPress pero termine haciendolo, ¿motivos? bueno pues los plugins que usaba aun no estaban listos para la nueva version, pero como ya estan actualizados y ademas de que me quede encantado con la actualizacion automatica, pues me decidi, asi que a partir de este mes de Mayo Cronicas de un desarrollador ya esta actualizado a la mas flamante version de WordPress 2.5

Saludos

Dante

Sabado 26-Abril-2008

April 27, 2008 on 4:17 am | In Personal | No Comments | 57 views

Conoci a la familia Leal, en Agosto del 2005, por una de esas casualidades de la vida que yo considero muy afortunadas, ellos como siempre muy entusiastas de las nuevas tecnologias buscaban quien pudiera darles cursos sobre linux y servidores, tuve la oportunidad de ser yo quien diera esos cursos, de ahi comenzamos una relacion basada en la cordialidad , el respeto y la confianza, poco a poco fuimos convirtiendonos de cliente/proveedor a amigos/amigos, tengo presente que son personas con altos valores y creencias, respeto y admiro la forma en que ellos salen adelante y la forma en que tratan a todos los que los rodean.

La primera vez que necesite de un consejo honesto y sincero me lo brindo el Sr. Abelardo Leal, quien tuvo la paciencia y el tiempo de escucharme y darme su opinion, despues el entusiasta de su Hijo Abelardo quien dirige una empresa de tecnologia en monterrey, nos permitio hacer muchas cosas en conjunto y hacer planes futuros para inovar en la tecnologia, hasta este momento creo que su entusiasmo es precisamente lo que se necesita en monterrey.

Ellos me dieron la mano en muchas maneras y en diferentes circunstancias me han ayudado, estoy y estare siempre agradecido por todo y tienen en mi a un buen y sincero amigo.

El dia de hoy por situaciones que no estan en mi explicar, pasaron por una situacion bastante dificil, que no habria palabras para entender lo que en su sentir y pesar esta, estuve con ellos lo mas que pude y lo que prudentemente se debe estar, desde aqui en estas lineas que son mi manera de decir lo comprometido y solidario que me siento con ellos, escribo esto para que sepan que cuentan conmigo para cualquier cosa y que espero y pido a Dios logren con el tiempo y los amigos que los rodean y aprecian, salir adelante como ellos se merecen.

Luto

Familia Leal, que Dios guie su camino y les permita seguir adelante

Su amigo

Dante Robles

Aplicaciones RIA Web 2.0

April 24, 2008 on 4:22 am | In Web 2.0 | 1 Comment | 84 views

Bueno como saben a mi me encanta hablar de programacion y de desarrollo Web, y uno de mis temas de moda es precisamente la Web 2.0, hace no mas de unas horas estaba leyendo una presentacion sobre las tendencias del desarrollo basado en internet y vi el concepto RIA, que para mi es muy familiar ya que a esto me dedico pero para otros es algo que no se sabe RIA significa Rich Internet Applications o como se dice en español Aplicaciones Ricas de Internet este concepto es el que hace la diferencia entres las aplicaciones Web tradicionales y las mas modernas, ya que anteriormente en una aplicacion tenias que escoger algun listado o presionar un boton y la pagina literalmente se recargaba para poder traer los datos usando lenguajes de script, hoy en dia se siguen usando los lenguajes de script pero en lugar de recargarse completamente solo cambian su contenido, de ahi que sean mas dinamicas y casi no notemos mas que los cambios solicitados , esto es posible gracias a tecnologias como Adobe AIR, AJAX, Microsoft Silverlight y otras tantas que existen, la mas comun y popular en estos momentos es AJAX, ya hemos platicado bastante sobre ese tema, AJAX permite casi la integracion total en el navegador para poder manipular los elementos que se despliegan de una manera limpia siempre y cuando lo programemos bien.

El futuro del Desarrollo de las Aplicaciones RIA esta definiendose hay varios jugadores en esta terna esta la tecnologia Google Gears, Adobe AIR, y el tan nombrado HTML 5 que aun no ve la luz, todo parece indicar que el unico beneficiado sera como debe de ser el usuario final ya que todas estas tecnologias estan tratando de tener las aplicaciones web disponibles incluso aunque no exista conexion a Internet y que sean tan parecidas a las aplicaciones de escritorio que antes todos usabamos.

Veamos que nos depara el futuro

Saludos

Dante Robles

Nokia Tube

April 17, 2008 on 4:45 am | In Gadgets | 1 Comment | 106 views

Leyendo mis Feeds RSS me encontre con esta nota de Engadget que me llamo la atencion es el competidor para el iPhone desarrollador por Nokia

la nota original la pueden leer aqui

Nokia tube

¿Te gusta hacer de detective? Pues corre a por la lupa y a ver qué conclusiones sacas de esto. Se trataría de la primera imagen que veríamos del Nokia Tube, el primer Nokia S60 con pantalla táctil, según informa Symbian-Freak. La pantalla sería de entre 3 y 3,5 pulgadas con un ratio de 16:9, con cámaras (frontal, según se ve en la foto y trasera), que afirman que es “muy superior” a la del iPhone, pero sin llegar al nivel de las N-series.

Se espera que el móvil cubra las cuatro bandas (GSM/EDGE, UMTS/HSDPA) con Bluetooth, WiFi, soporta uPnP y dispone también de stylus. ¿Cuenta con GPS? Pues sí, también. El modelo que veis no cuenta con pantalla multitáctil, pero en su lugar incorpora interfaz háptico, en un chasis levemente inferior al N73. También nos hemos dado cuenta que incorpora la etiqueta XpressMedia” con lo que se deduce su afiliación al XpressMusic de Nokia. En lo que toca a los iconos, han sufrido una ligera revisión desde que pusimos las manos en un S60 táctil allá por febrero.

Saludos

Dante

Lenguajes de Programacion

April 17, 2008 on 4:32 am | In Desarrollo | 1 Comment | 76 views

Recientemente en una platica con un buen cuate, me preguntaba oyes Dante tu cuantos lenguajes de programacion conoces, le dije mmmmm pues varios, nunca me he puesto a refleccionar en la cantidad, me insistio y me dijo bueno pero cuantos, le dije tomando en cuenta los que aprendi y hace años y que ya no se usan hoy pues son como unos 14 lenguajes, pero le explique que el asunto no es la cantidad, si no mas bien la facilidad de aprender uno desde cero y poder encontrar las ventajas de ese lenguaje para tu beneficio como desarrollador.

Hoy en dia la programacion de aplicaciones es como digo yo todo un arte, necesitas tener inspiracion para hacer buenos diseños y ademas de eso que sean realmente utiles para algo, si no podra verse muy bonito pero no servir para nada, igual el otro extremo podra ser muy practico pero su manejo es un verdadero fiasco, debe existir un buen balance, ademas las tecnologias cambian mucho todos los dias, lo que hace unos diez años era ser experto en VisualBasic hoy necesitas conocer bien Ajax,PHP,.Net , mañana quien sabe que seguira tal vez mas Ruby,Phyton y otros lenguajes que vienen sonando fuerte, antes era programar para un Sistema Operativo especifico hoy mas que un Sistema Operativo es Compatibilidad en Varios Navegadores, las plataformas cambian, los tiempos cambian, asi que el asunto no es cuantos lenguajes de programacion conozcas si no que tan habil eres para aprender las cosas nuevas y no resistirte al cambio

Saludos

Dante Robles

Tips para Programar en PHP (la funcion extract)

April 17, 2008 on 4:26 am | In Desarrollo | 2 Comments | 87 views

Bien pues puede que esta no sea la solucion a los problemas de todos los programadores del mundo, pero igual puede ser util para quien comienza a programar en este lenguaje, los lenguajes de script para desarrollo web, suelen tener muchas funciones que desconocemos y son de mucha utilidad, recientemente en una visita a puebla con un buen cuate, me toco ver como una persona a su cargo estaba realizando un formulario enorme y me refiero a enorme con mas de 40 campos en el dicho formulario, el objetivo era que ese formulario al ser procesado se enviara por correo a una cuenta determinada, hasta ese punto un tipico trabajo de una forma de contacto en internet, como para variar soy muy curioso (en ocasiones hasta metiche) en los asuntos de programacion, me toco ver que el formulario una vez enviado lo recibia un script de PHP y que lo que ellos estaban haciendo era incializar variables una por una desde el objeto $_POST para despues concatenarlas y pasarlas una funcion que enviara el mail, zaz me vinieron a la mente entre recuerdos de mis primeras clases de programacion y una obsesion que tengo con querer hacer las cosas mas simples pero a la vez faciles, despues de pegar el grito en el cielo por lo que estaban haciendo y preguntar si les podia dar un tip les dije que habia una manera de simplificar eso, de dibujar el formulario casi nadie se salva eso es inevitable pero de procesar las variables mas sencillo y usar un pequeño ciclo para concatenar era lo mas viable.

Primero les explique la susodicha funcion extract que segun la descripcion de la documentacion de PHP hace esto:

Descripción
void extract ( array $matriz_vars [, int $tipo_extraccion [, string $prefijo ]] )

Esta función se utiliza para importar variables desde una matriz a la tabla de símbolos actual. Toma la matriz asoiativa matriz_vars y trata las claves como nombres de variable y los valores como los valores de éstas. Para cada par clave/valor creará una variable en la tabla de símbolos actual, sujeto a los parámetros tipo_extraccion y prefijo .

Como vemos la definicion es algo mmmmmm…… indigerible pero si le buscamos un enfoque practico resulta sencilla veamos

Tenemos la situacion anteriormente descrita, en lugar de inicializar variables asi:

<?php
 
$nombre=$_POST['nombre'];
$apellidopaterno=$_POST['apellidopaterno'];
$apellidomaterno=$_POST['apellidomaterno'];
 
echo "Nombre:$nombre $apellidopaterno $apellidomaterno";
 
?>

Se podria usar la funcion extract y resultaria mas facil:

<?php
extract($_POST);
 
echo "Nombre:$nombre $apellidopaterno $apellidomaterno";
?>

Como ven la funcion extract toma el array $_POST donde vienen todos los valores del formulario y automaticamente las convierte y asigna sus valores a variables con el mismo nombre de las que venian del formulario, esto nos evita estar inicializando variables y perder tiempo valioso en la programacion, esta fue una de las utilidades que encontre en esta funcion y que en ese momento comparti con mi cuate.

Ademas como todo ejejej siempre hay muchos caminos para lograr el resultado final, me preguntaba y bueno que la concatenada de las variables no se podia hacer mas facil y le dije claro, solo que aqui en lugar de extract vamos a usar un pequeño truco con un bucle For Each, el resultado fue el siguiente:

<?php
$todaslasvariables=" ";
foreach($_POST as $key=>$value){
			$todaslasvariables.="$key - $value<br>";
			}	
echo $todaslasvariables;
?>

Que fue lo que paso aqui, sencillo tome el Array $_POST con todos sus valores y nombres, recorri con un ciclo en ocasiones poco explotado que es el Foreach y las concatene automaticamente en una sola variable, y listo ya teniamos una variable con todos los datos de campo y valor listos para ser enviados por correo.

Se que no es la quinta maravilla del mundo pero a como son utiles los tips cuando uno esta empezando a conocer un lenguaje, este se los comparto como en su momento un buen cuate y compañero lo hizo, el buen Omar Cobos desde su blog Pragmatic fue el que me dio a mi ese tip

Saludos y a Programar y a Programar que la Web 3.0 se acerca

Dante Robles

Como obtener el clima via XML para ponerlo en tu sitio o Aplicacion Web

April 10, 2008 on 6:10 pm | In Desarrollo | 2 Comments | 307 views

Pero con cada cosa que se topa uno en la programacion, recientemente estaba revisando en una de las aplicaciones que tenemos en la empresa la posibilidad de integrarle la temperatura local para que fuera desplegada dentro de la misma, originalmente habia hecho un Link a una imagen que se cambiaba dentro de una pagina de servicios del clima, pero no era una solucion elegante, es mas parecia realmente algo para salir del paso, me di a la tarea de buscar opciones, encontre algunas interesantes otras mas simplonas hasta que por fin me tope con el Yahoo Weather, basicamente es el servicio del clima de Yahoo, pero estos cuates hicieron un feed de RSS que contiene el clima regionalizado , incluso hasta un poco del pronostico de los proximos dias, me agrado, pero aun asi eso habia que integrarse a la aplicacion Web, cosa que con un poco de ingenio PHP y Javascript se resolvio de volada.

Vemos , Yahoo pide un codigo para saber que ciudad es, ese codigo lo puedes consultar en su sitio Yahoo Weather Developer Network ahi te explican como obtener el RSS que necesitas, por ejemplo

  • Monterrey - MXNL0068
  • Toluca - MXMO0055
  • Puebla - MXPA0070

Estos codigos los saque del mismo servicio de Yahoo, ahora ya tenemos identificado el RSS veamos como esta compuesto, este es el RSS para Monterrey

Utilizando este Link le pasamos el codigo y el tipo de unidad en nuestro caso es Monterrey en Grados Centigrados

http://weather.yahooapis.com/forecastrss?p=MXNL0068&u=c

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<rss version="2.0" 
xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" 
xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">
<channel>
 
<title>Yahoo! Weather - Monterrey, MX</title>
<link>
http://us.rd.yahoo.com/dailynews/rss/weather/Monterrey__MX
/*http://weather.yahoo.com/forecast/MXNL0068_c.html
</link>
<description>Yahoo! Weather for Monterrey, MX</description>
<language>en-us</language>
<lastBuildDate>Thu, 10 Apr 2008 12:43 pm CDT</lastBuildDate>
<ttl>60</ttl>
<yweather:location city="Monterrey" region=""   country="MX"/>
 
<yweather:units temperature="C" distance="km" pressure="mb" speed="kph"/>
<yweather:wind chill="37"   direction="340"   speed="19.31" />
<yweather:atmosphere humidity="21"  
visibility="1607.69"  pressure="1001"  rising="2" />
<yweather:astronomy sunrise="7:22 am"   sunset="8:01 pm"/>
<image>
<title>Yahoo! Weather</title>
<width>142</width>
<height>18</height>
<link>http://weather.yahoo.com</link>
<url>http://l.yimg.com/us.yimg.com/i/us/nws/th/main_142b.gif</url>
</image>
<item>
 
<title>Conditions for Monterrey, MX at 12:43 pm CDT</title>
<geo:lat>25.67</geo:lat>
<geo:long>-100.32</geo:long>
<link>http://us.rd.yahoo.com/dailynews/rss/
weather/Monterrey__MX/*
http://weather.yahoo.com/forecast/MXNL0068_c.html</link>
<pubDate>Thu, 10 Apr 2008 12:43 pm CDT</pubDate>
<yweather:condition  text="Mostly Cloudy"  
code="28"  temp="37"  date="Thu, 10 Apr 2008 12:43 pm CDT" />
<description><![CDATA[
<img src="http://l.yimg.com/us.yimg.com/i/us/we/52/28.gif"/><br />
<b>Current Conditions:</b><br />
Mostly Cloudy, 37 C<BR />
<BR /><b>Forecast:</b><BR />
Thu - Mostly Sunny. High: 37 Low: 21<br />
Fri - Isolated Thunderstorms. High: 33 Low: 18<br />
<br />
<a href="http://us.rd.yahoo.com/dailynews/
rss/weather/Monterrey__MX/*
http://weather.yahoo.com/forecast/MXNL0068_c.html">
Full Forecast at Yahoo! Weather</a><BR/>
(provided by The Weather Channel)<br/>
]]></description>
<yweather:forecast day="Thu" 
date="10 Apr 2008" low="21" high="37" 
text="Mostly Sunny" code="34" />
<yweather:forecast day="Fri" 
date="11 Apr 2008" low="18" high="33" 
text="Isolated Thunderstorms" code="37" />
<guid isPermaLink="false">MXNL0068_2008_04_10_12_43_CDT</guid>
</item>
 
</channel>
</rss>
<!-- api1.weather.ac4.yahoo.com compressed/chunked Thu Apr 10 11:04:52 PDT 2008 -->

Pareciera un poco intimidante y rebuscado pero la verdad esta bien sencillo, primero debemos identificar que es lo que queremos en mi cas ahorita solo me interesare por la temperatura es basicamente la tomamos de este tag

<yweather:condition  text="Mostly Cloudy"  
code="28"  temp="37"  
date="Thu, 10 Apr 2008 12:43 pm CDT" />

El Tag yweather:condition contiene un atributo que se llama temp y esa trae ahorita la temperatura en Grados Centigrados esa es la informacion que necesitamos ok ya tenemos la informacion y localizado el tag que sigue bueno pues un poco de PHP y otro poco de Javascript

Necesitamos que PHP pueda leer el servicio XML y regresarlo a nuestra pagina local para eso hacemos un pequeño archivo que se llamara rss_weather.php y contendra lo siguiente:

<?php
// aqui podemos cambiar URL por el que concuerde para nuestra ciudad
$filename = "http://weather.yahooapis.com/forecastrss?p=MXMO0055&u=c";
header("Content-type:text/xml");
readfile ($filename);
?>

Listo con ese archivo PHP nos regresara en formato XML para poder instanciarlo desde javascript(Se que debe haber mas formas pero esta resulto muy practica)

Ahora un archivo HTML para demostrar la facilidad veamos este se llamara temperatura.html

<html>
<head>
         <title>Ejemplo de Obtener Temperatura via XML</title>
<script type="text/javascript">
function parseXML()
{
try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
    {
    xmlDoc=document.implementation.createDocument("","",null);
    }
  catch(e)
    {
    alert(e.message);
    return;
    }
  }
xmlDoc.async=false;
xmlDoc.load("rss_weather.php");
 
unidad=xmlDoc.getElementsByTagName("units")[0].attributes[0].nodeValue;
tempe=xmlDoc.getElementsByTagName("condition")[0].attributes[2].nodeValue;
 
document.getElementById("yu").innerHTML=unidad;
document.getElementById("temp").innerHTML=tempe;
 
 
}
</script>
</head>
<body onload="parseXML()">
<h1>La temperatura desde Yahoo Weather</h1>
<b>Unidades:</b> <span id="yu"></span><br />
<b>Temperatura:</b> <span id="temp"></span><br />
</p>
</body>
</html>

Listo grabamos los dos archivos juntos en una carpeta del WebServer(Que soporte PHP claro) y abrimos el archivo temperatura.html y listo nos desplegara las unidades “C” y la Temperatura segun la ciudad que le especificamos, el Javascript empleado es muy sencillo basicamente mandamos llamar al archivo PHP que nos regresara el XML, despues usamos las facilidades que tiene Javascript para poder recorrer el DOM del Documento XML y listo, lo ponemos en la etiqueta que queremos para desplegar y listo.

Se que muchas veces la programacion nos lleva a querer hacer super codigos y programas complejos para una tarea tan sencilla, seria mejor mantener las cosas simples y limpias para poder controlar mejor los cambios, espero les sea util este fragmento de codigo que comparto con la gente del blog.

Saludos

Dante Robles

Next Page »


Dante Robles - Cronicas de un Desarrollador (y como no morir en el intento)
Entries and comments feeds. Valid XHTML and CSS. ^Top^