Buscar este blog

25 junio 2008

Top 20

¿En qué puesto está tu lenguaje de programación favorito?
Les dejo una tabla con los 20 primeros... (gracias Pablo)

Fuente: TIOBE Software
Enlaces relacionados: Tehsis

21 junio 2008

Web SMS

Este post está relacionado con un post anterior sobre las clases WebRequest y WebResponse.
Lo que hice fué probar enviar un SMS desde la pagina web de algún proveedor de telefonía celular y grabar el “dialogo” con el web server para luego ver en que partes del segmento http van mis datos como ser: Número destino, Remitente, Mensaje y Código de verificación, para luego automatizar el envío desde una clase en VB.NET.

Conceptualmente era muy fácil, pero había detalles de implementación que no eran tan triviales, como ser:
• ¿De dónde obtengo la imagen con el código anti robots?
• ¿Cómo obtengo y mantengo la cookie de sesión?

Esto fue resolviéndose sin mayor dificultad con un método que me resulta muy eficaz que llamo LPE (Lectura, Prueba y Error) :P

En fin logré crear esas clases que me simulan el envío de SMS vía web las cuales puedo reutilizar tanto en aplicaciones de escritorios como web. Pueden dscargar la pequeña aplicación haciendo click aquí.


Perdón por el diseño de interfaz, no es mi fuerte y además tuve malos profesores en la facu...(Práctica de Diseño de Sistemas 3er año)

Por ahora soporta envíos vía Personal y Claro, si tienen alguna idea de como (ya sea web o smtp) enviar a los demás proveedores cuelgo el código fuente para mejorar al aplicación, agregarle una agenda, envío de mms, etc..

En fin, ustedes me dirán, pero para eso envío SMS’s desde la página de: Personal, de Claro, NKWAP o desde tmsCasin y listo! ...y tienen razón pero de esta forma se aprende algo y es más divertido ;-)

Saludos!

20 junio 2008

Gimnasio en los laburos de oficina ya!


¿Quién dijo que trabajar en un escritorio sentado no es riesgoso? El sedentarismo es una de las principales causas de diversas enfermedades fatales, se que ya lo saben pero no esta mal recordarlo de vez en cuando. Así que muchachos aflojen (aflojemos) con el teclado, la comida chatarra, las gaseosas y a ponerse en forma.

Fuente: Diario Norte

Buscando al respecto en Google encontré "Google Health" un servicio que nos permite tener nuestra historia clínica centralizada la cual, en un país del primer mundo, se mantendría actualizada automática y constantemente mediante la integración de los sistemas de salud pública y privada. Google Health nos sirve para mostrar rápidamente desde la web nuestros registros de vacunas, alergias y cosas que siempre tenemos que contar a cada médico nuevo que visitamos. También nos permite buscar Médicos, Información y Servicios relacionados desde esta página. Realmente Google me sigue sorprendiendo cada día más.
Otro dato interesante es que si somos partners (Empresas relacionadas a la salud) de Google Health se pueden usar las APIs para guardar y consultar historias clínicas en Google. Por ahora en inglés y para U.S.A.

19 junio 2008

WebRequest y WebResponse

Hola amigos, en este post veremos las clases HttpWebRequest y HttpWebResponse pertenecientes al espacio de nombre “System.Net”. Estas clases implementan métodos y propiedades de las calases abstractas WebRequest y WebResponse respectivamente, pero están especialmente diseñadas para encapsular todo lo referente al protocolo HTTP. ¿Y para qué sirve? esto nos puede servir por ejemplo para realizar pedidos (GET) y/o para enviar información (POST) a un servidor web HTTP de manera programática. (Otra alternativa es la clase WebClient).

De esta manera una petición http y su respuesta se lograría en VB.NET así:
Imports System
Imports System.IO
Imports System.Net
Imports System.Web
Imports System.Text

Module Module1
Sub Main()
Try
Dim req As WebRequest = WebRequest.Create("http://www.google.com")
Dim resp As WebResponse = req.GetResponse()
Dim data As Stream = resp.GetResponseStream()
Dim reader As New StreamReader(data)
Dim linea As String = String.Empty

Do
linea = reader.ReadLine
Console.WriteLine(linea)
Loop Until Not IsNothing(linea)

reader.Close()
resp.Close()
Catch WebEx As WebException
Console.WriteLine()
Console.WriteLine(WebEx.Message)
Finally
Console.WriteLine()
Console.WriteLine("Presione una tecla para continuar...")
Console.ReadKey()
End Try
End Sub
End Module

Como resultado deberíamos obtener el código fuente de la página resultante.
En este caso WebRequest.Create al observar de que se trata del protocolo http por la URI solicitada creará una instancia de HttpWebRequest.

Las dos primeras líneas son equivalentes a las siguientes:
Dim req As HttpWebRequest = WebRequest.Create("http://www.google.com")
Dim resp As HttpWebResponse = req.GetResponse()

También podíamos haber hecho lo anterior de esta manera:
Dim client As New WebClient()
Dim data As Stream = client.OpenRead("http://www.google.com")
Dim reader As New StreamReader(data)
Dim pagina As String = reader.ReadToEnd()
Console.WriteLine(pagina)

En cualquiera de los casos podemos alterar la información del encabezado HTTP como queramos y poder simular peticiones http como si fueran generadas desde un navegador web (IE, Firefox, etc..) o desde un dispositivo móvil.

Como vemos en el listado siguiente un request mas completo con alguna información de encabezado http personalizada:
...
request = WebRequest.Create("http://..........")
data = Encoding.ASCII.GetBytes(postData)

With request
.ContentType = "application/x-www-form-urlencoded"
.Method = "POST"
.ContentLength = data.Length
.CookieContainer = _CC
.Accept = "image/gif, image/x-xbitmap, image/jpeg, _
image/pjpeg, application/x-shockwave-flash, _
application/x-ms-application, application/x-ms-xbap, _
application/vnd.ms-xpsdocument, application/xaml+xml, _
application/vnd.ms-excel, application/vnd.ms-powerpoint, _
application/msword, application/x-silverlight, */*"
.Referer = "http://.........."
.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; _
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; _
.NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; _
.NET CLR 3.5.21022)"
End With

resStream = request.GetRequestStream()
resStream.Write(data, 0, data.Length)
resStream.Close()
...

Con estos conocimientos básicos podríamos hacer lo siguiente: instalamos cualquier programita sniffer http para observar y/o ir guardando las distintas interacciones con algún servidor web http y después reproducirlas (armar los mismos segmentos http) de manera parametrizada y a velocidad controlada por nosotros simulando un usuario (o cientos) navegando. También podríamos hacer esto de manera repetitiva y rápida (como robots) contra nuestros (y no ajenos ;-) web servers para hacer pruebas de rendimiento y seguridad. Otra utilidad podría ser insertar información extraída desde una página web o de un web service en nuestras aplicaciones de escritorio por ejemplo, y/o enviar información vía http desde nuestras aplicaciones, bajar y/o enviar archivos, utilizar consultas LINQ2XML para extraer información mas cómoda de los documentos HTML, hacernos un navegador de consola ;) y todas las combinaciones que se les ocurran…

En el próximo post les muestro una pequeña aplicación que utiliza lo explicado aquí, mientras tanto a probar sin miedo! Saludos.

Enlaces relacionados: MSDN (WebRequest, WebResponse, HttpWebRequest, HttpWebResponse), Rick Strahl

18 junio 2008

Opera


Hace poco y adelantándose a la salida de la nueva versión de Firefox (3.0), Opera lanzó la versión 9.5 de su navegador web luego de 2 años de intenso trabajo. Es ágil, flexible y viene de varios colores: Opera Desktop, Opera Mini, Opera Mobile, Opera Dragonfly (para desarrolladores web), hasta viene una versión para la Nintendo Wii!. Si quieren un navegador completo gratuito y que, según mi experiencia, ocupa menos memoria y es más rápido que sus actuales competidores entonces prueben ya Opera 9.5 se los recomiendo. Hasta pronto!

Enlaces relacionados: Opera.com, Lanzamiento, Descargar

17 junio 2008

Según como se mire

Hola! Les presento esta nueva tecnología (en realidad no tan nueva) denominada Immersive Video que nos permite ver un video de manera interactiva rotando la cámara 360º con la posibilidad de cambiar el factor de zoom, todo mientras vemos el video. Esto se logra grabando el video con una camara especial que graba en toda las direcciones (menos en la dirección de la base donde esta sujeta).
¿Se imaginan que bueno sería esto pero sin usar el mouse?, sino con una especie de casco y gafas de realidad virtual y que podamos realizar tours o viajes virtuales por lugares que nunca conoceríamos de otra manera. Otra aplicación podría ser para cámaras de vigilancia, partidos de fútbol o deportes en general, etc..
Les dejo algunos videos y un enlace a un mapa de recorridos grabados para ver:

*** Mantener presionado el botón izquierdo del mouse sobre el video y mover el mismo para rotar la cámara.


Si tienen vértigo o mareos no vean este video...


Enlaces relacionados: Immersive Media, Demo

06 junio 2008

Día de la Ingeniería


Cada 6 de junio se celebra en nuestro país el Día de la Ingeniería, en coincidencia con el egreso en l870 del primer ingeniero argentino formado en una Universidad Nacional. Ese hombre fue Luis Augusto Huergo , uno de los doce alumnos inscriptos en la novel carrera de Ingeniería Civil en la Universidad de Buenos Aires.

"...en este día donde se recuerda el "ingreso" a nuestra sociedad del primer ingeniero argentino, debemos destacar y resaltar la importancia de las Universidades en nuestro país como formadoras de profesionales y desarrolladoras de conocimiento..."

Enlaces relacionados: #1, #2

05 junio 2008

El Don

Quería compartir este gracioso video que me pasaron en el laburo, algunos (como yo) se van a sentir muy identificados.



y vos... tenés "El Don"? Espero comentarios...

03 junio 2008

El youtube de la seguridad informática


(Mirá, Aprendé y Contribuí)

Es simplemente eso, un sitio al estilo YouTube para compartir videos que abordan temas técnicos relacionados a la seguridad informática: Explicación del funcionamiento de los protocolos, desarrollo de herramientas con sockets, publicación de vulnerabilidades y mucho más, la interfaz es agradable, se pueden subir videos y/o embeberlos en nuestros blogs, pero le falta un buen logo (el que está arriba es una fusión que hice del original con el de YouTube :P). Sin mas les dejo el enlace al mundo del internetworking en video: SecurityTube.Net

Otra cosa por favor escuchen algún tutorial del autor del sitio Vivek Ramachandran (muy capo por cierto vean su currículum), es muy gracioso como pronuncia el inglés... primero pensé que estaba escuchando la lectura de un text-to-speech pero no! :)

Enlaces relacionados: security-freak.net, Blog

Bella Vista



Hoy 3 de junio de 2008 se conmemora el 183º aniversario de la fundación de mi Bella Vista natal fundada en el año 1825 por el Brigadier Pedro Ferré. Aprovecho este post para saludar cordialmente a la distancia (ya que no vivo más allí) a mis padres, amigos, ex compañeros de escuela y gente del barrio que me conoce, y a ustedes los invito a conocer Bella Vista aunque sea por fotos o si tienen la oportunidad de viajar y pasar por ahí les recomiendo esta ciudad que realmente hace honor a su nombre. Feliz Cumpleaños Bella Vista!

Enlaces relacionados: Turismo, Sitio oficial.