Tips

PowerMenu – Como hacer que una aplicacion se mantenga siempre visible

PowerMenu

PowerMenu

Hoy que estaba viendo por Internet el partido de Rayados vs Atlas, por medio de RojaDirecta, me vi en la necesidad de hacer que la ventana de Firefox en la que se estaba viendo el partido, pudiera estar encima de las demás aunque no estuviera activa, para poder seguir trabajando en otras cosas mientras veía el partido.

Después de Googlear un rato, encontré que PowerMenu es una aplicación que permite, entre otras cosas, el hacer que cualquier ventana permanezca siempre visible aunque no esté activa, es decir, Always on Top.

Además, PowerMenu permite asignar niveles de transparencia a cualquier ventana, y hasta minimizar cualquier ventana a la Systray (Barra de Iconos hasta abajo a la derecha).

Por ser compactible con Windows Vista, también funciona con Windows 7, sin ningun problema.

Página de PowerMenu

Instalador de PowerMenu

Visual Studio: Temas con colores oscuros

Ragnarok Grey - Visual Studio

Ragnarok Grey - Visual Studio

Los últimos meses he estado pasando aproximadamente 15 horas enfrente del monitor, generalmente programando en Visual Studio.

Nunca me había molestado en personalizar el esquema de colores y fonts de ningun programa, pero siendo tantas las horas de uso de Visual Studio, me topé con un par de posts que hablaban de la enorme diferencia que puede hacer para los ojos el usar un “theme” de alto contraste.

No fue hasta que me puse a ver los screenshots de varios Visual Studio usando colores oscuros que me di cuenta de lo mala que es la font por default que usa Visual Studio, al igual que el esquema de colores default.

Bien dijo Scott Hanselman que un cambio como éste, aunque es muy sencillo y pareciera sin tanta importancia, puede darle a uno energías y motivarlo a trabajar más.

Después de probar unos 8 diferentes themes hechos por diferentes programadores, y que fueron tan amables para compartirlos, me decidí a usar Ragnarok Grey, hecho por Tomas Restrepo, y que utiliza la font Consolas (me agradó mucho) en un tamaño muy grande, 15. No me gusta mucho el color rosa que se usa para los Strings, pero bueno.

Los pasos para importar cualquier theme en Visual Studio (archivos con terminacion .vssettings) son muy sencillos:

  1. Ir al menu Tools -> Import and Export Settings
  2. Import Selected Environment Settings
  3. Guarda tus settings actuales, y hacer click en Next
  4. Elegir el archivo .vssettings que quieras
  5. Hacer click en “Next”
  6. Seleccionar “All Settings” (de todas maneras, estos themes solo traen los settings de Fonts y Colores, así que nada de tus otros settings se sobre-escribirá.

Aquí hay un post de Charlie Calvert, con impresiones de pantalla del proceso, sobre cómo cambiar settings de Fonts y Colores en Visual Studio.

También me gustó mucho un theme llamado Oren Ellenbogen’s Dark Scheme, pero terminó gustándome más la combinación de colores usados en Ragnarok Grey.

Obviamente también uso mucho el SQL Server Management Studio, que como no tiene la posibilidad que tiene Visual Studio para importar y exportar las configuraciones de colores, tuve que usar esta herramienta para poder copiar y usar los mismos settings de colores oscuros en el SQL Server Management Studio. Así se ve mi SSMS ahora

Ragnarok Grey SQL Server Management Studio

Ragnarok Grey SQL Server Management Studio

Les dejo también los links que me parecieron interesantes al estar leyendo sobre este tema.

Visual Studio Programmer Themes Gallery – El primer post que lei sobre esto, de Scott Hanselman, y con varias imagenes y links.

Commonality – VS Color Schemes – varios temas muy buenos para bajar, para VStudio 2005 y 2008

Custom Visual Studio Color Schemes – este blogger puso varios de los themes mas populares en un archivo rar, disponible para bajarse.

Cómo usar los themes (archivos .vssettings) en Visual Studio

Gmail: como ver todos los mensajes no leidos juntos

Logo de Gmail

Logo de Gmail

Logré conseguir una cuenta de Gmail durante el primer mes que lo liberaron y desde entonces no he vuelto a usar Outlook.

Lo único que si extrañaba de Outlook, hasta hace unos días, era la opción de poder ver todos los mensajes “no leídos” juntos. En Gmail, te muestran sólamente la cuenta de mensajes no leídos en la etiqueta del Inbox, pero no hay una vista personalizada.

Como ver los mensajes No Leidos de Gmail todos juntos

Como ver los mensajes No Leidos de Gmail todos juntos

Pero si en el filtro de búsqueda tecleamos las palabras is:unread, GMail nos mostrara todos juntos los mensajes de correo no leídos, y nos ahorramos el problema de tener que estar navegando entre paginas para encontrar los no leídos. O peor, cuando algun mensaje de SPAM se llegaba a colar en el Inbox, y lo mandaban alterado con fecha muy anterior a la actual, teniamos que buscar demasiado.

Espero les sea util este tip.

Debuggeando con Breakpoints condicionales y Tracepoints en Visual Studio

Los breakpoints con condiciones y los Tracepoints son dos features de Visual Studio que mucha gente no conoce y que facilmente pueden ahorrar horas a la hora de estar analizando un problema en código.

Empecemos con los breakpoints condicionales. Supongamos que tenemos el siguiente codigo:

private void button1_Click(object sender, RoutedEventArgs e)
{
int sum = 0;

for (int i = 0; i <= 1000; i++)
{
sum += i;
}

MessageBox.Show(sum.ToString());
}

&#91;/code&#93;

Si quisiéramos evaluar el valor de la variable sum cuando el valor de la variable i sea 200 o 400 o 600, tendríamos 2 opciones:

1. Editar nuestro codigo para agregar un bloque IF, y poner un breakpoint adentro del código
2. Poner un breakpoint en la linea sum += i y presionar la tecla F5 200 veces, 400 veces o 600 veces. Lo peor es que he visto que varios desarrolladores lo hacen, por no conocer estas dos features de Visual Studio.

Con <strong>breakpoints condicionales</strong>, podemos hacer que <strong>el debugger de Visual Studio solo detenga la ejecucion cuando una condicion que nosotros asignemos sea verdadera</strong>. En este caso, usariamos la expresión

i == 200 || i == 400 || i == 600

Para crear un breakpoint condicional, los pasos son los siguientes:

1. Crear un breakpoint en la linea que queremos
2. Hacer click derecho sobre el breakpoint y seleccionar la opcion Condition

Visual Studio Menu de opciones para breakpoints

Visual Studio Menu de opciones para breakpoints

3. Se desplegara el dialogo de Breakpoint Condition

4. Teclear la condicion(es) que queremos y hacer click en OK.

Visual Studio Condicion de Breakpoint

Visual Studio Condicion de Breakpoint

Con esto, el debugger solo va a entrar cuando la condición o condiciones que hayamos asignado se cumplan. Cuando un breakpoint tiene una condición, se despliega un simbolo de + (más) en el círculo rojo, como se ve en la siguiente imagen.

Visual Studio breakpoint condicional

Visual Studio breakpoint condicional

Ahora vamos con los Tracepoints. Es logico usar breakpoints cuando queremos evaluar y analizar algun objeto que tiene muchas propiedades, pero cuando lo único que queremos es saber el valor de una o dos variables, como en este caso, tal vez nos convenga más usar Tracepoints.

Los tracepoints permiten escribir mensajes que incluyan valores de variables, de aspectos del ambiente (como el id del thread en el cual se está ejecutando el código, la fecha/hora actual, etc), y más cosas.

Y esto lo hacen sin siquiera detener la ejecucion del programa. Es decir, podemos crear los tracepoints que queramos, ejecutar el bloque de código que los tiene, y simplemente ir directamente a la ventana de Output para analizar la información que el Tracepoint emitió.

Otra ventaja de usar Tracepoints es que no es necesario modificar nuestro código para imprimir mensajes de debugging.

Para crear un Tracepoint los pasos son los siguientes:

1. Crear un breakpoint en la línea que queremos.

2. Hacer click derecho sobre el breakpoint, y seleccionar la opción de "When Hit".

Tracepoint menu en Visual Studio

Tracepoint menu en Visual Studio

3. Personalizar el mensaje que queremos que el Tracepoint escriba. Para incluir el valor de una variable, simplemente ponemos el nombre de la variable encerrado por un par de llaves {}.

Ventana de Tracepoint - When breakpoint is hit

Ventana de Tracepoint - When breakpoint is hit

4. Aquí tambien podemos especificar si queremos que el debugger se detenga o no. Si el checkbox de la opción "Continue Execution" está seleccionado (está seleccionado por default), el debugger no detendrá la ejecucion y el Tracepoint simplemente emitirá su mensaje a la ventana de Output. De lo contrario, el Tracepoint tambien actuará como un breakpoint normal.

4. Hacer click en OK.

El Breakpoint se convierte en Tracepoint y la tradicional forma circular se vuelve un rombo, como se puede ver.

Forma del tracepoint en Visual Studio

Forma del tracepoint en Visual Studio

Aún mejor, podemos combinar un breakpoint condicional y un tracepoint para solo emitir los mensajes del tracepoint asignándole una condicion. La combinación de ambos se ve de la siguiente manera, y podemos ver que en la ventana de Output, el mensaje que configuré para el Tracepoint solo se emite tres veces: cuando el valor de i es 200, 400 o 600.

Tracepoint y Breakpoint condicional juntos

Tracepoint y Breakpoint condicional juntos

Output de un Tracepoint en Visual Studio

Output de un Tracepoint en Visual Studio

Espero que les haya sido útil.

1 4 5 6 7 8  Scroll to top