Buscar este blog

miércoles, 15 de febrero de 2012

Hey, logre instalar blogger en mi galaxy s

Vamos a ver si asi me animo y empiezo a alimentar mi blog de cosas y mas cosas... FUS RO DAH!


miércoles, 20 de octubre de 2010

Xbox 360 y Halo : Reach

Pues si, esta semana decidí entregarme al imperio y dejar de ser un mediocre jugador de wii o de juegos que corren en mi vieja laptop (nada de nueva generación... triste... ), y me compre una consola seria seria:

La Xbox 360 Elite limited edition Halo Reach Bundle. 


Esta demasiado seria.. desde que abres la caja te impresionas, el acabado de la consola es genial, los colores muy sobrios pero con detalles de Halo, muy cool. Par de controles para que no falte nada, head set para hablar con los panas gringos mientras nos caemos a plomo, y lo mas importante, Halo: Reach, el boom en shooters para la fecha.

Tuve la oportunidad de probar la consola anoche, aunque solo pude jugar un par de horas (la verdad es que me maree con tanto movimiento, no estoy para nada acostumbrado.. y ademas mi TV no me ayuda mucho, pronto haré una inversión al respecto).

Soy algo nuevo en este mundo de Xbox y Xbox Live, por lo que aun me falta para empezar la experiencia on-line del juego, sin embargo pretendo involucrarme 100% en la movida, ya que me entere que hay toda una comunidad Halo de geeks que solo se dedican a este maravilloso juego. (Hasta en "The Big Bang Theory" mencionan Halo como un elemento que merece una noche a la semana dedicada.. hehe).

Incluso hay una iniciativa que consiste en grabar las partidas on-line que juegas, y taggear situaciones que lo meriten. Existen redes sociales que se encargan de evaluar estas grabaciones y postear "programas online" con tópicos como:

- Top Kills of the week.
- Fails of the week.
- etc...

Espero incluso conseguir comunidades, preferiblemente de habla hispana.... preferiblemente en Venezuela, que jueguen y quizás en un nivel competitivo, para poner la cosa mas seria todavía.

Lo único medio chimbo es que para jugar on-line, se requiere la Xbox Live Gold Membership, que no es gratis, pero tampoco es que es tan cara, y según me ha comentado un amigo, jugar en esos servidores es la gloria. Cero (0) lag, puro plomo. Así que quizás vale la pena la inversión.

Les dejo algunos link interesantes, para aquellos que como yo recien descubren este mundo de Halo, quizas asi se empieza a armar la comunidad Venezolana.

http://www.bungie.net/default.aspx (Bungie)
http://xbox360.ign.com/ (IGN, la mejor pagina de gamers ever.!! )
http://www.youtube.com/user/RoosterTeeth (Promotores del Fails of the week... xD demasiado bueno.)

lunes, 3 de mayo de 2010

Validate input en Asp Mvc 2.0 y Asp.Net 4.0

Uno de los ataques a paginas de internet mas conocidos son los ataques XSS (Cross-site scripting) , que consiste en que el usuario inyecta condigo Html o Javascript en la pagina web. Para evitar esto el framework .Net 2.0 analiza los datos enviados en los requests, y si detecta algun codigo malicioso (como tags html), retorna un error al usuario y suspende el resto de la ejecución del request.

Ahora, existen casos en el que si queremos permitir que los usuarios envíen código que pueda parecer malicioso, como en un editor de texto enriquecido, o en en este blog, donde podemos escribir codigo javascript en los posts.

Para evitar estas validaciones del Framework en Asp mvc, simplemente colocamos el atributo [ValidateInput(false)] en las acciones o controladores que no queramos que validen el texto recibido.

Sin embargo para el caso de Asp.Net 4.0, estas validaciones son realizadas a todos los requests (incluidos web services) antes de la funcion BeginRequest, esto significa que el framework rebota los requests con datos maliciosos antes de que se ejecuten los atributos de los controladores, dejando sin efecto el atributo mostrado previamente.

Para solucionar esto se le debe indicar al framework que utilice las validaciones de la manera anterior, colocando dentro del tag en el web.config lo siguiente:

< httpruntime requestValidationMode="2.0" />

Esperemos que en el futuro exista alguna manera de poder especificar donde queremos usar esta nueva funcionalidad de seguridad y donde no, ya que con la solución actual estamos perdiendo por completo esta nueva funcionalidad.

martes, 13 de abril de 2010

Ya salio el Visual studio 2010.

Visual studio 2010 ya esta aquí, así como el framework 4.0.

Aqui tenemos las diferentes versiones de visual studio.

Visualmente el nuevo visual studio es bastante amigable y viene con varias innovaciones, como el soporte para Dual Monitor, ademas de un debugger muy potente con opciones entre otras cosas, de revisar los request y response que recibe y envía el servidor.

El framework viene con las nuevas versiones para el desarrollo web, Asp.Net 4 y MVC 2. Con MVC 2, tenemos ahora la posibilidad de crear areas dentro de un proyecto, inyectar el resultado de una accion directamente en una vista con , validaciones del lado del cliente integradas con las del servidor y otros Html helpers.

C# 4.0 trae unas cuantas novedades como podemos ver aqui (en ingles), entre las que tenemos tipos de daots totalmente dinamicos, y acceso a un nuevo API de Office, para interactuar con este de manera mucho mas sencilla.

Otras novedades de esta nueva version son F# (un lenguaje de programacion funcional) asi como novedades en C++, Visual Basic, Entity framework 4.0 y windows communication foundation.

Pronto veremos en detalle algunas de estas novedades!

miércoles, 7 de abril de 2010

Introducción a ASP MVC (parte 2)

¿Porque surge Web Forms?





La tecnologia Web forms fue desarrollada con la intención de asemejar la programación web a la programación de escritorio, principalmente a Windows forms, abstrayendo al programador del protocolo http, como lo es la comunicación por requests. En lugar de trabajar con HTML para crear nuestra interfaz, se utilizan controles ASP.

Estos controles les son asociados propiedades, metodos y eventos de manera similar a los controles de Windows Forms, los cuales son luego traducidos a lenguaje HTML desde el servidor para ser enviados al usuario y mostrarse en el navegador. 


Esta tecnología es muy buena para el desarrollo de paginas de manera rápida, ademas que es muy fácil su aprendizaje para desarrolladores que no estén familiarizados con el desarrollo web, pero tengan experiencia en el desarrollo de aplicaciones de escritorio con Windows Form, e incluso con otras tecnologías.


Desventajas de Web Forms
Sin embargo la utilizacion de Web Forms no siempre es la mejor opción, ya que el programador no tiene control directo sobre el html o los javaScripts generados, lo que muchas veces dificulta el realizar interfaces de usuario mas especificas o particulares. Esto se debe en parte a que el funcionamiento interno del manejo del protocolo HTTP por parte de WebForms esta parcialmente oculto al programador, lo que termina dificultando la creación de aplicaciones webs con funcionalidades muy particulares.

A esto de le suma que las paginas generadas por WebForms son mas pesadas y lentas a diferencia de que sea creada completamente por nosotros los programadores

Es por esto que para los programadores experimentados en la web; la tecnología y la forma de ocultar el protocolo HTTP, les resulta mas un estorbo que una solución, y muchas veces evita que personas desarrollando aplicaciones web con WebForms no aprenda como funcionan realmente las paginas webs.

Pensando en esto, Microsoft desarrollo una nueva tecnología para la creación de aplicaciones web, que se acerca mucho mas a la forma en que trabaja el protocolo HTTP, esta tecnología de nombre Asp MVC esta basada en el patrón de ingeniería de software Modelo Vista Controlador, un patrón ya bastante extendido en otras tecnologías de desarrollo como Java, Ruby on rails y diferentes frameworks de php.

La razón de que se use este patrón es que se asemeja al funcionamiento de la web, donde tenemos la vista que representa la interfaz presentada al usuario (Html, Css, Javascript, etc). La capa controlador; clases en el servidor que se encargan de recibir los requests, procesarlos, acceder al modelo si es necesario y retornar una vista al usuario. El modelo se encarga de todo el proceso de negocios de la aplicación, obtener y almacenar datos en la base de datos, comunicarse con web services, etc.

¿Como utilizamos este nuevo framework?
Lo primero es visitar la pagina oficial en http://www.asp.net/mvc/ , ahí se encuentra diferentes recursos de aprendizaje. Para instalarlo, hacemos click en dowmload. Luego veremos en el visual studio nuevas opción para crear proyectos del tipo MVC.

El framework funciona tanto para Visual studio 2008 como para la versión a salir próximamente; la 2010.

Por cierto, el codigo del framework se encuentra bajo licencia Open Source, por lo que podemos bajarlo y modificarlo como nos plazca.

Ya hay en la web varios recursos para aprender por complejo el framework, en particular recomiendo el libro escrito por Steven Sanderson y publicado por Apress  http://tinyurl.com/y8h8yf5 , es muy completo y explica de manera concisa y fácil de entender todo lo relacionado con este nuevo Framework.





domingo, 21 de marzo de 2010

Liquid Page and Resizeable Background Image (Páginas Líquidas)

¿Qué se quiere lograr?

Hace un par de meses se presento un requerimiento por parte de un cliente. Deseaba poder mostrar sus fotos en pantalla, y que las mismas ocuparan lo largo y ancho del explorador en su totalidad. Incluido esta el requerimiento de evitar que la misma se deforme, porque de no ser así, bastaría con colocar un código como este:


El problema con el código anterior es que no se preserva el radio de aspecto de la imagen de fondo (http://en.wikipedia.org/wiki/Aspect_ratio_(image)), por ejemplo: Supongamos que tenemos una imagen de tamaño 1280 x 800 (ar: 16:9 universal to high-definition television and European digital television), y nuestro explorador se encuentra en resolución 800 x 600 (ar: 4:3 universal for standard-definition video formats). El resultado sería una imagen deformada, ajustada de su tamaño original hacia 800 x 600, obviamente no es el resultado deseado.

¿Cómo lo solucioné?

La solución requiere realizar un cálculo en tiempo real que detecte el tamaño actual del explorador, y escale la imagen proporcionalmente a la mayor de las dimensiones del mismo. (WTF…?). Sencillo, que no deforme la foto, y que ocupe la mayor cantidad de pantalla posible.

¿Qué herramientas me apoyan?

Obviamente se necesitan algunas librerías de javascript que permitan gestionar y consultar las dimensiones del explorador. Aquí entra el grandioso JQUERY FRAMEWORK, mas específicamente la librería “jquery.dimensions.min.js”, que permite realizar un par de operaciones escenciales:

- $(window).width();
- $(window).height();

Por consiguiente, es necesaria la librería del propio framework “jquery-1.4.2.min.js”

Luego el algoritmo va como sigue……

El HTML:


********* IMPORTANTE **********
El identificador de la imagen (id=”liquidImage”) debe ser tomado en cuenta para el javascript que sigue.



EL JAVASCRIPT:

$(document).ready(function() {
Liquify();
$(window).bind("resize", function() {
Liquify();
});
});

Function Liquify(){
// dimensiones del explorador
var $winwidth = $(window).width();
var $winheight = $(window).height();

// dimensiones originales de la imagen
var $x = 1024; // cambiar de acuerdo al requerimiento o pasar por parametro
var $y = 768; // cambiar de acuerdo al requerimiento o pasar por parametro
var $dx = 4; // radio de aspecto x
var $dy = 3; // radio de aspecto y

// algoritmo
var $p = $winwidth / $dx;
var $coef = 0;
var $newwidth = 0;
var $newheight = 0;

// calculamos la mayor de las dimensiones del explorador
if (($winheight / $dy) > $p) {
// height predomina
$coef = $winheight / $y;
$newheight = $winheight;
$newwidth = $x * $coef;
} else {
// width predomina
$coef = $winwidth / $x;
$newwidth = $winwidth;
$newheight = $y * $coef;
}

// seteamos las dimensiones deseadas a la imagen de background
$("#liquidImage").attr({
width: $newwidth
});
$("#liquidImage").attr({
height: $newheight
});
}

¿Qué defectos tiene?

1. Las variables de dimensiones originales de la imagen están hard-coded en el javascript, y deben ser cambiadas de acuerdo al requerimiento. Lo ideal es hacer un pluing de jquery que reciba estas variables por parámetro, y tenga algunas seteadas por defecto.

jueves, 6 de diciembre de 2007

Welcome.

Bienvenidos sean todas y todos a mi blog. Un espacio al que estan invitados todas aquellas personas que no tengan nada mejor que hacer en su vida, y tengan tiempo para discutir acerca de las opiniones que tengo yo acerca de la vida y las cosas que pasan en mi entorno.

Ahora que me animé para escribir pistoladas, espero estar alimentando este blog al menos una véz al mes.

Al que le pueda interesar. Janx