Recientemente descubrí una nueva herramientas para hacer machotes o mock ups, la verdad no se como se traduce eso a español, de sitios web, se llama MockingBird. Esta en beta todavia pero se ve bastante bueno. Generalmente cuando yo empiezo un sitio web creo primero es machote, hay gente que cuestiona si vale la pena invertir tiempo en esta actividad pero yo pienso que si porque le da un rumbo al proyecto en contrario si no lo hacen no saben a donde ir, siempre es bueno tener una vision. De paso les menciono que otra alternativa para realizar mocks ups es el  Balsamiq mockups el cual tiene un version de escritorio bastante buena, y creo que es el mas popular.

Algo curioso de esta aplicacion (mocking bird) es que esta desarrolada con el framework capuccino.

Ir a MockingBird

{ 0 comments }

Como emular un navegador móvil en firefox

by ryudice on January 14, 2010

Utilizando el addon the firefox Useragent switcher pueden hacerse pasar por un teléfono móvil, asi pueden ver como se verían los sitios web en un teléfono. Solo descarguen el addon y luego instalenlo, y en el menu de herramientas les aparecerá una nueva opción que dice “Default User Agent”, si seleccionan “iPhone 3.0” se van hacer pasar por un iPhone.

image

El addon solo trae iPhone por defecto pero si se van a la opcion “Edit User Agents…” pueden agregar mas.

 Descargar User Agent Switcher

{ 0 comments }

Ninite es una pagina donde pueden seleccionar varias aplicaciones de una lista y luego descargarlas todas en un solo archivo instalador, solo tienen que correr este instalador para instalar todas las aplicaciones, es una gran ahorro de tiempo para cuando nos toca formatear la computadora y tenéis que reinstalar vuestros programas después.

Ir a Ninite

{ 0 comments }

Usando AJAX con JQuery y ASP.NET MVC

by ryudice on January 9, 2010

Jquery es una librería para escribir código javascript mas rápido ya que trae varias funcionas predefinidas. Utilizar ajax con jquery es bastante sencillo.

Este tutorial asume que ya tienen conocimiento de ASP.NET MVC, si no es asi y estan interesados en aprender lean el tutorial de ASP.NET MVC que escribi.

Paso 1. Creando el controlador AJAX en ASP.NET MVC

Agreguen un nuevo controlador al proyecto llamado “AJAXController”.

Luego agreguen la siguiente accion al controlador:

public ActionResult GetMensaje()   {  
         if (Request.IsAjaxRequest())    {   
                  return Content("Hola, usastes AJAX para ver este mensaje"); 
          }    
         return Content("<h1>No usastes AJAX</h1>");     
}

Paso 2. Creando la vista.

En el caso de este ejemplo voy usar la vista “Index” del controlador “Home”

image

Reemplacen el HTML por el siguiente, o si no simplemente reemplacen el contenido del tag <asp:Content> de su archivo porque el que yo les pongo abajo.

 <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
 
<asp:Content ID="indexTitle" ContentPlaceHolderID="TitleContent" runat="server">
 
Home Page
 
</asp:Content>
 
<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
 
<script src="http://www.google.com/jsapi"></script>
 
<script>
 
google.load("jquery", "1.3.2");
 
</script>
 
<a href="/AJAX/GetMensaje">Mostrar mensaje</a>
 
<p>
 
</p>
 
<script type="text/javascript">
 
$(document).ready(function() {
 
$("a").click(function(e) {
 
$.ajax({ url: this.href, success: function(data) {
 
$("p").html(data);
 
} 
 
});
 
e.preventDefault();
 
})
 
}
 
);
 
</script>
 
</asp:Content>

Explicación

En las líneas 8 a 11 cargamos jQuery desde el CDN de Google.

Luego creamos un hipervínculo hacia el controlador AJAX que creamos, el propósito de usar un vinculo es demostrarles lo que es javascript unobstrusivo, y la funcionalidad del metodo Request.IsAjaxRequest() que usamos en nuestra acción del controlador.

El tag <p> que ven después del hipervínculo es donde vamos a mostrar el resultado de nuestra acción que será ejecutada a través de AJAX.

Por ultimo tenemos el javascript. Bueno, en la parte de javascript utilizamos jQuery y su función “$(document).ready()”, esta función lo que hace es que ejecutar los comandos que le pasamos como argumento hasta que el documento termina de descargarse, así evitamos errores por la falta de elementos que todavía se están cargando.

Luego usamos un selector de jQuery para agregar una función al evento clic de todos mis vínculos en el documento, en este caso solo tengo uno, y dentro de la función que quiero que se ejecute en el evento clic utilizamos la función $.ajax de jQuery,  a la función $.ajax de jQuery le enviamos un arreglo asociativo con las opciones de la función, en este caso, le mandamos la url y la función que queremos que se ejecute en caso de que la petición se exitosa (sucess). Noten que para definir la URL simplemente agarro la del hipervínculo actual, es decir en el que se hizo clic, esto lo hago usando “this.href”, this se refiere al objeto que disparo el evento, y como ya sabes cada link tiene una propiedad href.

En la función success lleva un parámetro llamado “data”, este parámetro se refiere al resultado de la petición, lo que hacemos es mostrar el contenido del resultado dentro del tag p que pusimos, si todo funciona correctamente, debería de aparecer el mensaje “Hola, usaste AJAX para ver este mensaje” en nuestra pagina. También pueden accesar el la acción GetMensaje del controlador usando el navegador y les va tirar el otro mensaje que dice que no usaron AJAX, de esta manera si entra un usuario a la pagina que no tiene habilitado javascript ene l navegador, al dar clic en el hipervínculo los llevara a la pagina como un hipervínculo normal pero lo importante es que igual va funcionar, sin importar si no tienen javascript habilitado.

{ 2 comments }

Desfortunadamente Windows Update solo busca actualizaciones para programas de Microsoft, FileHippo es como un Windows Update pero para todos tus programas instalados sin importar si son o no son de Microsoft. Lo único que tienes que hacer es ejecutarlo y te mostrara las versiones mas nuevas de cualquier programa que tengas instalado en el caso de que no tengas la ultima. También te encuentra versiones Beta o que no han sido lanzadas todavía.

Descargar FileHippo

En esta imagen pueden ver el resultado de un escaneo.

image

{ 0 comments }

Excelente pagina de anime

by ryudice on December 30, 2009

Debido a falta de inspiración en este día no me queda mas que poner este link: Animecrazy es una pagina con miles de series de anime completas en video, para poder verlas desde la pagina estilo youtube o las pueden descargar también. Todos los capítulos los ponen a mas tardar un día después de que salen en Japón, y subtitulados. Le he pasado la pagina a varios amigos y la han encontrado excelente así que ahora la comparto con ustedes.

Ir a Animecrazy

{ 1 comment }

CDN es acronimo de Content delivery network, y como su nombre lo dice, generalmente son una red de servidores en ubicaciones geográficas estratégicas para la distribución de contenido. La ventaja es que como la red esta compuesta por varios servidores en diferentes ubicaciones geográficas cuando se hace una petición al CDN, el CDN busca el servidor que esta mas cerca del usuario y utiliza este servidor para satisfaces la petición del cliente, y por eso son mas rápidos.

Para que nos sirven?

Bueno pues Google tiene un CDN el cual contiene una gran cantidad de librerías de javascript. Muchos desarrolladores lo que hacen es cargar todas las librerias que utilizan en sus sitios web desde el CDN de google (microsoft tiene uno tambien), esto nos trae las ventajas anteriormente mencionadas y tambien no ahorra un poco de trafico. Yo siempre cargo jQuery desde el CDN de Google.

Como usarlo

Para cargar jQuery desde el CDN agregamos estas líneas dentro del tag head de nuestro documento html:

<script src="http://www.google.com/jsapi"></script>
<script>
google.load("jquery", "1.3.2");
google.load("jqueryui", "1.7.1");
</script>

Explicacion

En la linea #1 cargamos el API del CDN de Google, este API es el que nos da acceso a las funciones que usamos en las lineas 3 y 4, por medio de la funcion google.load podemos cargar las librerias disponibles en el CDN.

Visiten el sitio oficial del CDN de Google para mas información sobre las funciones disponibles y versiones de las librerías.

{ 1 comment }

Postbox: Una mejor alternativa a Outlook y a Gmail

by ryudice on December 28, 2009

Postbox es un cliente de correo que encontré hace poco y me parece excelente, lo uso para leer mi correo de gmail pero pueden leer otro tipo de cuentas, me ha ayudado a mantener mi correo mas ordenado, y lo mejor de todo es que es mas rapido y simple que el outlook. Se los recomiendo, abajo les dejo unas imagenes del cliente. Por cierto, el cliente esta basado en thunderbird, por lo que le pueden instalar cualquier plugin de thunderbird, incluyendo un plugin para poder sincronizar el google calendar.

Descargar Postbox

image

{ 0 comments }

Control de código fuente usando GIT

by ryudice on December 27, 2009

Que es GIT?

GIT es una herramienta open-source para la administración de código fuente. Fue creado por Linus Torvalds, el creador de Linux. En lo que nos ayudan estas herramientas es en ir llevando control de los cambios en nuestro código, y también nos permite que varios desarrolladores editen el código al mismo tiempo. Incluso si solo es un programador el que esta desarrollando la aplicación usar GIT tiene muchas ventajas, como por ejemplo, pueden ir llevando control de los cambios en el código así no tienen que preocuparse si arruinan algún funcionalidad, si llega a pasar algo malo solo revierten a una versión anterior y problema solucionado.

Alternativas a GIT

Existen muchas otras alternativas a GIT, una de las mas conocidas es Subversion, sin embargo, muchos programadores prefieren usar GIT gracias a su simplicidad, y gracias a que no se requiere tener un servidor, por lo que es fácil de configurar para equipos de una sola persona. Otra alternativa que esta tomando auge es Mercurial, sinceramente se poco sobre esta alternativa pero se basa en los mismos principios de git.

Por que deberían de usarlo?

Pues nos da la libertad a  los programadores de hacer lo que queramos sin preocuparnos por arruinar algo, ya que si llegáramos a arruinar algo simplemente restauramos a una versión funcional que esta guardada en git. En el caso de equipos de desarrollo de varias personas, utilizar un sistema de control de versiones debería de ser una obligación, ya que incrementa la productividad de los programadores porque no tienen que preocuparse por arruinar el código de alguien mas o caerle encima con su versión del código y perder cambios que ha hecho otro desarrollador, desafortunadamente por mi experiencia hay equipos de varios desarrolladores que ni siquiera usan control de versiones.

Descargando Git

Git inicialmente fue creado para linux pero ya existen varias versiones para Windows. Nosotros vamos a usar Tortoise GIT en conjunto con msSysGIT.

TortoiseGit es una versión mas grafica de GIT, mientras que msysGIT es una versión de pura consola como la de linux, yo prefiero usar una mezcla de ambas, creo que es lo mejor.

Descargar TortoiseGIT

Descargar msysGit

Creando un repositorio de GIT

Para poder utilizar Git primero tenemos que crear un repositorio en la carpeta donde tenemos los códigos fuentes que queremos gestionar utilizando Git. Utilizando TortoiseGIT es bien sencillo, solo hacemos clic derecho sobre la carpeta y seleccionamos

image

Después de esto dentro de la carpeta se creara una carpeta .git, esta carpeta contiene todo lo que Git utiliza para gestionar el código, no la borren. Esto es el equivalente a usar el comando “git init” en el modo de consola en msysgit.

Creando el archivo .gitignore

En el archivo .gitignore podemos especificar una lista de archivos o tipos de archivo que queremos que se excluyan del control de código, esto es porque generalmente no queremos enviar configuración especificas de nuestra computadora al repositorio de código porque si vienen otros desarrolladores y los descargan nos vamos a pasear en ellos. El problema es que windows no reconoce archivos o carpetas que empiezan con “.” (en el caso de linux todos los archivos que empiezan con “.” son archivos ocultos) y nuestro archivo se debe llamar “.gitignore”. Aquí es donde vamos a utilizar la versión de consola de Git, msysGit. Hacemos clic derecho sobre la carpeta y selecciona “Git Bash here”

image

Vamos a tener una ventana parecida a esto:

image

Ahora escribimos:

touch .gitignore

De esta manera creamos nuestro archivo donde vamos  a definir todo lo que no queremos incluir en el control de código. A continuación les pongo una lista de los archivo que yo excluyo normalmente para proyectos de .net:

#ignore thumbnails created by windows
Thumbs.db
#Ignore files build by Visual Studio
*.obj
*.exe
*.pdb
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
*.log
[Bb]in
[Dd]ebug*/
*.lib
*.sbr
obj/
[Rr]elease*/
_ReSharper*/
[Tt]est[Rr]esult*

Ahora abramos el archivo .gitignore en notepad y peguemos la lista de archivos de arriba.

Ahora tenemos que agregar el archivo .gitignore a nuestro repositorio, hacemos click derecho sobre el archivo y seleccionamos “add” así como en la imagen.

image

En la ventana que les va aparece solo hagan clic en OK

Ahora vamos agregar el resto de nuestros archivos, hacemos clic derecho sobre la carpeta que contiene todos nuestros archivos de código y seleccionamos “Add” otra ves. Como podrán ver, excluye automáticamente cualquier archivo que hayamos puesto en nuestro archivo .gitignore.

Ahora ya con esto lo único que nos falta es hacer un commit para guardar todo nuestro código.

Que es un commit?

Un commit quiere decir que ustedes van a transferir los cambios que han hecho en su código al repositorio, para que otros desarrolladores puedan descargarlos, o bien para que ustedes puedan restaurar la versión del repositorio en el caso de que arruinen el código.

Como hacer el commit?

Usando TortoiseGIT

image

Eso que ven que dice “master” es el branch o rama al que estamos haciendo el commit. En GIT se maneja el concepto de ramas, cada rama es una versión diferente de su código, las ramas se crean para implementar nuevas funciones del programa, por ejemplo, si yo voy agregar a mi aplicación una función para enviar correos, lo ideal es que se cree una rama llamada “enviar correo” una ves terminado de escribir el codigo de esta funcionalidad entonces se une la rama con la rama “master” que es la rama principal, en teoria la rama “master” siempre tiene que poder ser compilada sin errores, por eso es que se crean nuevas ramas para crear funcionalidades. El comando para unir dos ramas se llama “Merge”, mas adelante voy a hablar sobre el.

Por el momento eso es todo ya que este post se extendio mas de lo que pense, dependiendo de las lecturas de este post voy hacer una segunda parte sobre los demás comandos y como usar GIT en una aplicación real.

{ 0 comments }

Averigua si tu ISP discrimina trafico P2P

by ryudice on December 27, 2009

Hay ISP’s que manipulan el trafico de programas P2P, le bajan la prioridad a dicho trafico. En estados unidos incluso demandaron al ISP Comcast por esto y hace poco pago una multa de 16 millones. Si quieres averiguar si tu ISP hace esto google lanzo una serie de herramientas para examinar como maneja los traficos tu ISP, hay herramientas para examinar la calidad de tu conexion y para saber si tu ISP discrimina entre otros tipos de trafico, no solamente P2P.

Ir a Measurementlab

{ 0 comments }

Get Adobe Flash playerPlugin by wpburn.com wordpress themes