CopySourceAsHTML: formatea tu código como HTML

¿Alguna vez os habéis encontrado redactando un artículo o tutorial, y al tener que insertar código fuente sólo habéis conseguido copiar un amasijo de caracteres sin tabulación y con los retornos de línea a su libre albedrío? Seguramente habéis acabado sacando una captura de pantalla e insertando el susodicho como una imagen estática. Pues esto se va a acabar, gracias al add-in CopySourceAsHTML disponible para Visual Studio.

Éste add-in ha pasado casi desapercibido a pesar de tener unas cuantas versiones a su espalda, siendo la primera de ellas para VS .NET 2003 (aún disponible para descargar por si alguien sigue usándolo 😉 ). Su uso es tán fácil como descargarlo, ejecutar el instalador, y la próxima vez que abramos el Visual Studio dispondremos de una nueva opción en el menú Edición (y en el emergente también) llamada Copy As HTML…

image

Cuando pinchemos en ella, accederemos a un diálogo con distintas opciones sobre el formato final:

image

Las pestañas File Style, Line Style y Block Style sirven para definir estilos personalizados para cada uno de los elementos nombrados, pero las opciones interesantes están en la pestaña General. En ella podemos seleccionar si queremos numerar las líneas y en qué número empezarían (Number lines from), limitar la longitud de la línea (Wrap lines), quitar la tabulación (Remove line indentation) o cambiar el tamaño de tabulación y fuente. También es recomendado desactivar Embed styles para evitar que incluya los estilos como propiedades de los tags HTML, porque puede resultar en un código bastante largo y redundante. Es más bonito y práctico que los agrupe dentro de un <style> en forma de clases 😀

Y por último, incluyo un trozo de código de ejemplo formateado usando CopySourceAsHTML, para que podáis comprobar lo efectivo que es:

1 using System;

2 using System.Collections.Generic;

3 using System.Linq;

4 using System.Text;

5

6 namespace ColoreoSintaxis

7 {

8 /// <summary>

9 /// También colorea comentarios y summary

10 /// </summary>

11 class Program

12 {

13 static void Main(string[] args)

14 {

15 System.Console.Out.Write(«Hola, mundo!»);

16 }

17 }

18 }

No sé vosotros, pero yo pienso sacarle bastante provecho a partir de ahora 😉

XNA Demos (I) – Bloom

Tras un período de semi-abandono del blog (¿alguien me puede vender algo de tiempo libre?), he terminado y documentado de una vez por todas la primera de una serie de demos en la que llevo trabajando unas semanas.

Uno de los aspectos que más me gusta de XNA que al incorporar una capa de abstracción a bajo nivel, evita perder tiempo en tareas tediosas como la programación de cargadores, gestores de recursos y demás parafernalia, permitiendo centrar el proceso de desarrollo adecuadamente.

Aprovechando este potencial, y con cierta curiosidad por conocer las diferencias entre HLSL y GLSL, me he decidido a dejar de lado OpenGL una temporada (¡y eso que soy un fan acérrimo!) y continuar empleando XNA para la programación de shaders. El primer resultado os lo traigo hoy, en forma de un shader de bloom basado en los métodos descritos en la sección “Making Your Whites Whiter and Your Brights Brighter” del libro OpenGL SuperBible, 4ª edición, páginas 630-638.

El proceso para obtener este efecto consiste en renderizar la escena a un RenderTarget2D, y a partir de esta copia realizar sucesivas acciones. En primer lugar se reescala hasta obtener una textura de 2×2 píxeles de la que se extrae la luminancia media de la escena; este valor se emplea para descartar los píxeles demasiado oscuros, y mediante sucesivas operaciones de reescalado y desenfoque gaussiano, se obtienen cuatro imágenes que superpuestas dan el resultado final. A continuación hay un diagrama que explica el proceso con más claridad (porque una imagen vale más que mil palabras 😉 ).

diagrama_bloom

El código fuente del proyecto lo podéis descargar de este enlace. En el archivo comprimido se incluye una explicación de los controles para manejar el programa y una copia de la licencia: GPL v3 para el código y Creative Commons by-sa para el contenido (modelo de la esfera y textura).

¡Espero que os sea útil!

Migración completa

Casi me había olvidado que el año de alojamiento y dominio gratuito del plan Jóvenes en Red estaba a punto de caducar, así que en estos últimos días me he dedicado a migrar todo el contenido del host antiguo (proporcionado por Hostinet) a la nueva cuenta que he abierto en 1&1. No es que haya tenido ninguna queja en todo este tiempo, pero la tarifa de renovación me parece un poco cara teniendo en cuenta el uso que le doy al espacio web.

Bueno, lo he revisado todo varias veces y creo que la mayoría de cosas siguen en su sitio, no obstante si encontráis algún enlace roto o archivo adjunto ausente, agradecería me lo notificarais 🙂