Como poner audio en HTML5


La etiqueta de <audio>

 tiene como objetivo estandarizar los elementos en una página y reducir el uso de plugins. Con HTML4 siempre se necesita un plugin, como Flash o Quicktime, para poder escuchar música y vídeo.
Las etiquetas de audio permite poner un archivo de música directamente en el código HTML sin el uso de un plugin, como Flash o Javascript. Hay tres tipos de formatos de audio que son compatibles con esta etiqueta:. Ogg, mp3 y wav… Sin embargo, algunos de estos tipos de archivo sólo funciona con determinados navegadores.
Navegadores compatibles:
Código:
1.<audio src="URL_MP3" controls="controls">Your browser does not support the audio element.</audio>
Ejemplo:

5 plugins jQuery muy útiles


jQuery mejora notablemente un sitio web. Ya sea mediante la adición de efectos que le dan al sitio un factor sorpresa, o haciendo la navegación más fácil, jQuery puede tener un gran impacto en la manera en que se percibe un sitio web.

Apple-like Retina Effect


Supersized 3.0 Plugin


Flip!


jSlickmenu


jQuery Address


Overscroll

Consejos sobre el manejo de excepciones


En lenguajes de programación orientados a objetos (O-O) existe un mecanismo que permite que las aplicaciones manejen situaciones no esperadas de una forma apropiada; esto significa que la aplicación puede intentar recuperar el estado que tenía antes de darse dicha excepción en el mejor de los casos; en el peor, si la recuperación no es posible, abortar la operación o liberar recursos y cerrar la aplicación de forma ordenada. El manejo de excepciones constituye, pues, una potente herramienta para lograr robustez y estabilidad en nuestros programas.
Jeffrey Richter, en el libro que abajo menciono, incluye un completo capítulo sobre Excepciones y su tratamiento, incluyendo una serie de interesantes consejos que, de tenerlos en cuenta, nos permitirán un uso inteligente y apropiado de las excepciones, sacando el máximo partido de las mismas.
En primer lugar, una excepción no sirve solamente para manejar errores y/o situaciones inesperadas. Una excepción debe ser lanzada cuando se detecta una situación en la cual un método no puede realizar su función adecuadamente. Es decir, es una buena idea utilizar excepciones como sustitutas de aquello de retornar códigos de error, mucho menos mantenibles y entendibles por quien lee el código. Si la operación terminó es que fue bien; si no, se lanza una excepción con un mensaje adecuado que el receptor debe saber tratar.
Valida los argumentos de tus métodos; utiliza el manejo de excepciones para implementar programación bajo contrato: si no se cumplen las precondiciones del método, lanza una excepción. De este modo es más probable que el método termine correctamente, una vez satisfechas las precondiciones. Puedes utilizar una ArgumentException o cualquier tipo hijo de éste, o crear tu propia excepción como se indicó más arriba.
No captures todo siempre: un método debe capturar aquellas excepciones para las cuales esté preparado, no “tragarse” todo. Las excepciones deben tratarse en el nivel adecuado. Es decir: evita a toda costa utilizar bloques catch vacíos. Si el nivel actual no está preparado para manejar la excepción, relánzala con throw.
A tenor de lo indicado antes, intenta ser específico al capturar excepciones, distingue entre los tipos de excepciones que te puedan llegar y trátalos en consecuencia de forma específica, en distintos bloques catch.
Espero que hayáis encontrado útiles estos consejos. Os recomiendo el libro del que he extraido estas notas; tiene algunos capítulos realmente interesantes, como el mencionado de las excepciones y el del recolector de basura, del que es posible que dedique algunas líneas aquí próximamente. Además trata aspectos del CLR de .NET en profundidad, explicando cómo funcionan las cosas desde el núcleo del framework.

Montar servidor de SVN Casero


Un sistema de control de versiones nos permite guardar un historial de las modificaciones que van sufriendo los archivos de un proyecto. Cada vez que guardamos una modificación el sistema
crea marcas que nos permitirán volver a un estado anterior o ver los cambios que se han realizado entre dos marcas. Este tipo de sistema son imprescindibles en equipos donde trabajen dos o más personas en el mismo proyecto, ya que entre otras cosas, el sistema permite realizar mezclas de ficheros, o lo que es lo mismo juntar los cambios que dos personas han realizado sobre un mismo elemento.
Actualmente podemos encontrar muchos sistemas de control de versiones como por ejemplo:
Image Alt Text
Tras aceptar la condiciones, seleccionamos “VisualSVN Server and Management Console” ya que es la primera vez que instalamos el VisualSVN Server. En instalaciones posteriores podemos instalar la consola nada más. Si queremos administrar un servidor remoto, está es la opción
que debemos seleccionar.
Image Alt Text
Aquí podremos cambiar la ruta de instalación del VisualSVN Server y la ruta que se usará para almacenar los proyectos creados. En mi caso he dejado estos valores como vienen, aunque he desactivado la opción de “Use secure connectionhttps://) ” ya que no lo veo necesario para un servidor doméstico. También he cambiado el puerto a 8080 ya que el VisualSVN nos da una interfaz web para acceder a los repositorios, pero el 80 (valor por defecto) ya está siendo usado por el IIS. La autenticación la dejo en manos del subversion.
Image Alt Text
Una vez montado el sistema de control de versiones veamos como se usa. Lo primero que quiero comentar es que no he encontrado ningún cliente (que me guste) SVN que se integré con el Visual Studio así que siempre uso el TortoiseSVN que se integra perfectamente con el Explorador de Windows. Al igual que hicimos con el VisualSVN Server, lo primero que haremos será ir a la página de descargas y bajarnos la última versión. Una vez descargada la instalaremos.
Image Alt Text
En mi caso dejo todo como viene por defecto
Image Alt Text
Instalamos
Image Alt Text
Bien, con esto ya tenemos montado el sistema de control de versiones y el cliente que usaremos para “conectarnos”. Para la próxima entrega dejo como crear un repositorio y como subir (commit) y bajar (update) elementos del mismo.