
Probablemente en más de una ocasión habréis necesitado comparar dos ficheros de texto para encontrar, por ejemplo, pequeñas diferencias entre dos códigos en el que uno funciona y otro no. Como los IDE cada día están más extendidos y cada vez traen más funcionalidades, los programas que se dedican sólo a comparar dos ficheros son cada vez más bien partes o complementos de entornos o editores.
Sin embargo, sigue existiendo software específico de calidad como Meld. Meld es un comparador de ficheros para Gnome, implementado en Python, que nos permite compara de manera muy intuitiva gracias a la sintaxis coloreada, el resaltado de las diferencias o la posibilidad de comparar no dos, sino tres ficheros o incluso directorios completos (comparando pares de ficheros).
Otras alternativas para esta misma tarea (interesantes sobre todo si no utilizáis Gnome) son:
- diff: El programa de consola en que se basan en el fondo los demás.
- Kompare: El comparador para KDE
Para instalarlo podéis descargaros el código fuente o buscar el paquete meld en vuestro repositorio.


A mi personalmente me gusta usar la consola a menudo. Pienso que si algo se puede hacer mediante comando siempre será más rápido y más controlado que mediante una interfaz gráfica (GUI), pero no todos piensan así, ¿cuál es tu caso?
La notificación de eventos en Ubuntu es una de las novedades en las últimas versiones de este sistema, pero yo personalmente no la encajo muy bien. Estás trabajando concentrado, y de repente se cae la red WiFi (muy común en algunas ocasiones), lo cual te genera dos cosas: 1) la insatisfacción de haberte quedado sin Internet y 2) Ubuntu, no contento con ello, te lo recuerda (y en reiteradas ocasiones).
Pues bien, para desahilitarlo tenemos varias opciones, yo os planteo dos, y para ambas abrimos el terminal y con permisos de superusuario:
ahornero@6581-D:~$ sudo mv /usr/share/dbus-1/services/org.freedesktop.Notifications.service /usr/share/dbus-1/services/org.freedesktop.Notifications.service.disabled
Y la otra es eliminar los permisos de ejecución del demonio, en lugar de cambiar el nombre del servicio en las X:
ahornero@6581-D:~$ sudo chmod -x /usr/lib/notification-daemon/notification-daemon
Una de las cosas que más curiosas me ha resultado es el efecto sobre el control de volumen, ya que el resultado es inmejorable y quedaría tal que así:

Control de volumen sin notificaciones
Uno de los datos más curiosos de esta encuesta:
La encuesta de la semana #9. Tu música, ha sido la cantidad de respuestas redactadas por nuestros usuarios. De entre las que me gustaría destacar las siguientes:
Y a mi gusto a destacar las marcados en negrita, algunos de ellos los olvidé, como Songbird o VLC, y otros como Decibel Audio Player, que po cierto desconocía, me ha encantado, probadlo porque merece la pena, yo seguiré con mi Spotify.
Aquí, los resultados de la encuesta:

La encuesta de la semana #9. Tu música

Hasta ahora, había aguantado sin arreglar el problema que Flash da en las instalaciones de Karmic de 64 bits. La verdad que no me era muy necesario, pero dado que incluso Google Analytics utiliza esta tecnología, me he visto obligado a meterme en el tema. Hasta ahora confiaba en que los repositorios lo solucionaran solos.
Había leído algún manual de cómo arreglar este problema pero siempre hablaban de Firefox y de Chromium. Yo utilizo Chrome (los más puristas me criticaran por esto, pero me resulta más rápido que Firefox y me da menos problemas, sobre todo en los bancos) y nunca venía la explicación para este navegador. Como es hermano de Chromium los pasos a seguir los mismo que los indicados en otras guías pero cambiando la ruta del navegador.
- Desinstalar Flash: sudo apt-get purge flashplugin-installer flashplugin-nonfree
- Descargamos la última versión de Flash del sitio de Adobe
- Descomprimir el fichero
- Copiar la librería a la dirección de los plugins de Chrome: /opt/google/chrome/plugins
- En el siguiente inicio ya podréis utilizarlo.

Introducción
Ya que no hay demasiado documentación de Mono en la red y creo que es una alternativa muy válida para muchos proyectos, voy a seguir publicando más tutoriales y tips sobre este tema.
Mi intención hoy es comentar cómo referenciar el conector de MySQL dentro de un proyecto de Mono con MonoDevelop, de forma que podamos utilizarlo con la arquitectura y las funcionalidades de ADO.NET para manejar datos con un servidor de base de datos MySQL. El conector os valdrá tanto para aplicaciones web como locales.
Si no conocéis ADO.NET os recomiendo que os leáis el artículo al que os referencio de la Wikipedia porque realmente es una arquitectura muy útil para el manejo de datos, aunque los más puristas la rechazarán por venir de Microsoft.
Instalación
Lo primero será estar seguros de que tenemos instalados Mono, MonoDevelop y que tenemos a nuestro alcance un servidor de MySQL al que conectarnos. Si no lo tenéis instalados podéis instarlo prácticamente seguro desde vuestro gestor de paquetes y en todo caso, desde la web oficial del Proyecto Mono. Una vez hecho esto descargaremos el conector desde este enlace en la web de MySQL. Elegimos la plataforma: “.NET & Mono”. Se os descargará un fichero dll con los ensamblados correspondientes.

Referencia dentro de un proyecto
Ahora nos dirigimos a Mono Develop y creamos una solución nueva (da igual si de consola o GTK#). Al crearse la solución nos dirigimos a las Referencias del proyecto y desde allí importamos el ensamblado. Para ello seleccionáis “Editar referencias…”. De las tres opciones que aparecen en el diálogo entramos en “Ensamblado .NET”, elegimos el fichero dll que acabamos de descargar y lo añadimos.
Prueba
Para terminar vamos a probar que todo está bien. En el Main.cs vamos a implementar el típico ¡Hola Mundo!, añadiéndole al comienzo una referencia al conector. Si compila correctamente hemos llegado a nuestro objetivo.
using System;
using MySql.Data.MySqlClient;
namespace ejemplo_mono_ado
{
class MainClass
{
public static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
En un futuro post explicaré más sobre el uso y la potencia de esta herramienta.
