Curso ADO.NET con Mono y MySQL – Rellenando un DataSet

Posiblemente, leer hacia delante sea una opción muy interesante en algunas ocasiones… pero en otras muchas no lo será y tendremos que recurrir a los versátiles DataSet. Haremos un uso básico de los mismos en este ejemplo, porque como os he dicho ya sus posibilidades son realmente amplias. Insertaremos un nuevo concepto, el de la clase MySqlAdapter que será quien se encargue de rellenar el DataSet a través del comando que ejecute el SELECT.

Previamente deberemos incluir la referencia a nuestro proyecto para el ensamblado System.Data que lo encontraréis dentro del menú de referencias en la pestaña “Paquetes”. En el comienzo del fichero también deberéis rellenar su respectivo using System.Data.

Una vez hecho esto, para rellenar el DataSet sólo tendremos que hacer:

Leer más » 1 Comentario

Mostrar comentarios recientes en un widget con WordPress

Una de las características fundamentales que definen a un blog como tal, es la existencia de comentarios. Los visitantes del sitios se comunican con el autor y con otros visitantes. Gracias a ello se multiplica la información y en ocasiones, podríamos llegar a decir que el comentario supera a la entrada que comenta.

Como podéis ver, los comentarios son una pieza básica de los blogs y hay que cuidarlos. El fomento del diálogo en un sitio de este tipo es básico. ¿Cómo podemos mejorar este diálogo? Hay diferentes formas, pero debemos empezar por:

Esto segundo es justo lo que explicaremos cómo hacer. ¿Qué mejor para fomentar el diálogo que estar al tanto de lo último que se ha comentado? Hay varias alternativas para hacerlo con WordPress pero la que más me ha gustado por aspecto, funcionalidad y facilidad de uso es ésta que os cuento basada en el plugin WP-RecentComments.

Leer más » 5 Comentarios

Quitar contraseña a sudo. El superusuario sin password en Debian

Simple y sencillo, a través de las siguientes instrucciones podremos usar el comando sudo sin necesidad de especificar una contraseña para un usuario determinado, de esta forma, evitamos realizar el engorro de introducir repetidamente lo mismo.

Bien, vamos a ver cómo hacerlo. Abrimos un terminal:

ahornero@6581-D:~$ sudo visudo

Para comprenderlo mejor, análogo a lo anterior sería editar el siguiente fichero como superusuario:

ahornero@6581-D:~$ sudo nano /etc/sudoers

Bien, haciendo cualquiera de las dos opciones propuestas la primera opción propuesta***, estaremos dentro del fichero de los sudoers. Ahora añadimos la siguiente línea al final de éste:

usuario ALL=(ALL) NOPASSWD: ALL

Leer más » 28 Comentarios

Extender el escritorio en XFCE desde el terminal

Muchos ya sabréis que dejé de usar Gnome con la llegada de la versión 3 y el “desastroso” Unity no tenía por donde cogerlo. Le di esa oportunidad de oro a XFCE, se ha comportado, aunque a veces tenga que buscar más de lo esperado la solución, que con otro escritorio solucionaría de una forma más directa.

Encuentro a XFCE muy liviano, rápido y sencillo, pero en ocasiones echo de menos algunos detalles. Este es el caso de extender el escritorio a otro monitor, desde el menú Display no se proporciona la opción, pero esto no deja de ser una GUI de XRandR, así que en dos líneas conseguiremos establecer nuestro escritorio extendindido.

Lanzamos este comando sin parámetros, de esta forma listaremos las salidas disponible y qué esta conectado, además de indicarnos lo que se encuentra habilitado y de qué manera:

ahornero@6581-D:~$ xrandr

Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 8192 x 8192
LVDS1 connected 1280×800+0+0 (normal left inverted right x axis y axis) 331mm x 207mm
1280×800 60.0*+
1024×768 60.0
800×600 60.3 56.2
640×480 59.9
VGA1 connected 1280×1024+0+0 (normal left inverted right x axis y axis) 340mm x 270mm
1280×1024 75.0*+ 75.0 60.0
1024×768 75.1 70.1 60.0
832×624 74.6
800×600 72.2 75.0 60.3 56.2
640×480 72.8 75.0 66.7 60.0
720×400 70.1

Leer más » 6 Comentarios

Curso ADO.NET con Mono y MySQL – Primeras consultas

La clase que utilizaremos ahora será MySqlCommand y nuestra primera consulta, será una inserción sobre la base de datos. Insertaremos un registro más. La secuencia de pasos a efectuar es la siguiente:

  1. Creamos la consulta y la asignamos a una cadena
  2. Creamos el comando con la consulta que acabamos de crear
  3. Asignamos la conexión pertinente al comando
  4. Lo ejecutamos

Ampliando nuestro ejemplo, quedaría así:

public static void Main(string[] args)
{
	MySqlConnection conexion = new MySqlConnection();
	conexion.ConnectionString = "database=linuxhispano;
server=localhost;user id=root; pwd=contraseña";
	conexion.Open(); 

	try
	{
		string consulta = "INSERT INTO ejemplo (numero , tema)
 VALUES ('27', 'Sonido')";
		MySqlCommand comando = new MySqlCommand(consulta);
		comando.Connection = conexion;
		int resultado = comando.ExecuteNonQuery();
		Console.WriteLine("Filas afectadas : "
 + resultado.ToString());
	}
	catch(MySqlException exc)
	{
		Console.WriteLine("Ocurrió un error : " + exc.Message);
	}
	finally
	{
		conexion.Close();
	}
}

Como se puede apreciar, hemos cuidado que se finalice la conexión aunque existan errores, con finally y hemos controlado los posibles errores que aparezcan. En nuestro caso debería decir: “Filas afectadas: 1”, puesto que la inserción sólo realiza una.

Leer más » 2 Comentarios

Redes sobre Linux. Herramientas útiles

A continuación os dejo un apunte a las herramientas que más útiles encuentro a la hora de administrar y controlar redes sobre Linux, más concrétamente en Debian:

  • ifconfig: configura una interfaz de red. Si no se pasan argumentos, ifconfig muestra el estado de las interfaces activas. Si se pasa un sólo argumento, muestra sólamente el estado de esa interfaz; si se usa el argumento -a, muestra el estado de todas las interfaces.
  • iwconfig: esta herramienta nos permite gestionar redes inalámbricas como poder asociarse a una red. Sin argumentos muestra el estado de las interfaces wireless.
  • /etc/init.d/networking restart: reinicia la red.
  • ifup <interface>: habilita (levanta) la interface especificada.
  • ifdown <interface>: deshabilita la interface especificada.
  • iwlist scan: Muesta las redes wireless a nuestro alcance incluyendo información sobre el método de encriptación.
  • lspci: muestra los dispositivos hardware conectados al bus PCI.
  • lsusb: muestra los dispositivos USB conectados.
  • lshw: muestra información detallada sobre la configuración de hardware de la máquina. Ideal para mochilas USB.
  • route -n: esta herramienta manipula la tabla de encaminamiento IP. Con el parámetro -n muestra direcciones numéricas en vez de tratar de determinar nombres simbólicos. Resulta útil si se pretende averiguar porqué la ruta a un servidor de nombres está caída.
  • dhclient: solicita una dirección IP a un servidor DNS, si se especifica la interfaz sólo lo hará sobre ésta.
  • /etc/udev/rules.d/70-persistent-net.rules: este fichero contiene la asignación de nombre lógicos (eth0, wlan0, …) a direcciones MAC.
  • /etc/resolv.conf: este fichero contiene el listado de servidores DNS asociados con las conexiones de red.
  • read more

    Leer más » 2 Comentarios

    Curso ADO.NET con Mono y MySQL – DataSet, DataTable, DataColumn y DataRow

    La potencia de ADO.NET es proporcional al número de conceptos que lo rodean, así que en esta entrada como hemos dicho haremos una visión introductoria, pero espero que suficiente para comenzar a profundizar más en el tema.

    Uno de los aspectos esenciales de ADO, como no podía ser de otra manera, es la interacción directa con los datos provenientes de las bases de datos. Para comenzar a operar con ello os presento estas cuatro clases: DataSet, DataTable, DataColumn y DataRow; conjunto de datos, tabla de datos, columna de datos y fila de datos, respectivamente.

    Un conjunto de datos, es un objeto que almacena datos, en forma de tablas por ejemplo, y que pueden provenir de distintos orígenes. Una tabla de datos, es el objeto que almacena los datos de, una consulta, por ejemplo, en forma de tabla en la memoria y a la que podremos acceder, básicamente, a través de sus filas y columnas. Todas estas clases suelen tener una representación física en la base de datos, pero no tiene que ser así siempre, y podemos trabajar de manera asíncrona con la base de datos o directamente con datos provenientes de otras fuentes como por ejemplo ficheros XML.

    Leer más » 1 Comentario

    PostgreSQL no arranca: “Fatal: bogus data in lock file ‘postmaster.pid'”

    A raíz de un problema en la consistencia del sistema de ficheros de un servidor virtual que ejecuta PostgreSQL, he tenido que ejecutar un fsck. Tras recuperar la consistencia todos los servicios han salido andando sin problema menos el de PostgreSQL.

    PostgreSQL logo

    Intentaba arrancarlo con:

    service postgresql start

    Y nada de nada, siempre aparecía el mensaje de “FALLÓ”. Me dirigí a los logs de arranque en mi caso se encuentran en: /var/lib/pgsql dentro del fichero pgstartup.log. Tras hacerle un tail compruebo que aparece el siguiente error en el arranque:

    Leer más » 4 Comentarios

    Configurar un servidor Samba de forma básica

    Hasta hace no mucho, usaba en mi centro de trabajo un servidor NAS doméstico que hacía sus funciones de forma algo lenta pero sin problemas de seguridad ni estabilidad. Sin embargo, a raíz de un problema de reinicio y pérdida de acceso al mismo, decidir dar el salto y poner en marcha un auténtico servidor NAS.

    Preparé una máquina virtual con Xen, preparé el almacenamiento en mis módulos SAS, configuré el direccionamiento del mismo y arranqué la máquina. ¿Qué me quedaba por instalar y configurar? Un servidor Samba. Veamos cómo hacerlo.

    Samba logo

    El siguiente procedimiento vale sobre cualquier distribución de GNU/Linux. Sólo deberéis cambiar ciertos detalles de sistemas de paquetes, pero el método es el mismo y es una solución genial. Multitud de empresas u organizaciones disponen de un servidor Linux y de clientes finales con Microsoft Windows. Tanto si el cliente final es Windows como si es Linux o Mac OS, esta solución provee un método sencillo, robusto y fiable para implantar algo tan necesario como almacenamiento en red (ya sea para copias de seguridad, para trabajo en equipo, para crear un repositorio central o para lo que se busque).

    He usado Scientific Linux, por lo que será el mismo procedimiento en Fedora, Red Hat, Cent OS y derivados. En Ubuntu, Debian y derivadas usaremos apt y el resto, sus propios paquetes (o compilaciones del fuente).

    Leer más » 3 Comentarios