Si la última vez que hablamos de C#, estuvimos comentando la herencia, hoy hablaremos de las interfaces.
Interfaces en lenguajes de programación orientados a objetos
Todos conoceréis las interfaces gráficas de usuario. Son el mecanismo software que nos permite interactuar de manera más o menos intuitiva con unas funcionalidades que nos provee el programa. Es decir, es un mecanismo de comunicar distintos niveles, ocultando los detalles de la implementación.
Eso mismo son las interfaces en lenguajes de programación orientados a objetos como son C# o Java. Se trata de un conjunto de métodos, delegados o eventos, que no tienen implementación. El desarrollo de la funcionalidad de los mismos, se hace en la clase que implementa la interfaz. Es un concepto similar a los prototipos de funciones en lenguajes como C.
Declaración
Siguiendo con el ejemplo de los motores, comentado en la entrega anterior dedicada a la herencia, vamos a crear un interfaz IMotor, a la que luego haremos referencia desde la implementación de la clase. He incluido un método más para que se vean más claras las posibilidades.
interface IMotor { // declaración de propiedades int Potencia { get; set; } decimal Par { get; set; } // declaración de métodos void printInfo(); // declaración de eventos } public class Motor : IMotor { int potencia; decimal par; public int Potencia { get { return this.potencia; } set { potencia = value; } } public decimal Par { get { return this.par; } set { par = value; } } public void printInfo() { Console.WriteLine("La potencia es " + Potencia.ToString() + " y el par: " + Par.ToString()); } }
Table PC, que no Tablet PC. Algo así como un Microsoft Surface elevado a la enésima potencia, y disculpad por la comparación, es para entendernos, ellos fueron los pioneros.
En la CES de este año han aparecido multitud de dispositivos Linux, la mayoría de ellos impresionantes y corriendo la distribución Ubuntu, pero ninguno como este. Una imagen vale más que mil palabras, y un vídeo 3/4 de lo mismo. Aquí tenéis:
Vía Chris Kenyon desde Twitter.
No a los estándares dobles: apoyando el empuje de Google por WebM – Free Software Foundation (inglés)
Si hace poco hablábamos de cómo incluir Google Analytics en WordPress, hoy le toca el turno a su plataforma hermana dedicada al mercado de la publicidad en línea, Google AdSense.
Aunque en este mundo de la publicidad las posibilidades son mayores que en el de las estadísticas para sitios web, es innegable que AdSense tiene un peso muy grande en el mercado y es una plataforma conocida por muchos bloggers y webmasters.
Quick AdSense
Al igual que en el caso anterior con Analytics, la forma más simple de integrar AdSense en WordPress es mediante un plugin que nos facilite todo el proceso. Aunque he probado otros complementos como AdSense Manager que cumplen muy bien su cometido, el más completo de todos para mi gusto es Quick AdSense.
La organización W3C ha creado el logo oficial de HTML5. A partir de ahora los desarrolladores web tienen otra forma de mostrar al público que su página aprovecha las novedades del estándar HTML5. Esto no significa que dicha página esté validada en HTML5; W3C publicará más adelante el logotipo que permita demostrar dicha validez.
Recordad que HTML5 es la nueva versión del lenguaje HTML que conforma la estructura de las páginas web. HTML5 junto con CSS3 y las nuevas API de Javascript hacen que el futuro de la web sea abierto y libre para todo el mundo.
De todas las plataformas en línea para estadísticas de sitios web, la más famosa de todas es Google Analytics. Además de la plataforma en sí, con su propia aplicación web para visualizar datos, existe la posibilidad de acceder a los mismos a través de la API, además de crear criterios de seguimiento y relacionar los datos con otras plataformas de Google como AdSense.
Tenemos diferentes maneras de incluir Analytics en WordPress pero la más cómoda y completa de todas es a través de un plugin, Google Analyticator. Recordad que debéis tener previamente, una cuenta de Google Analytics creada.

Más info en barrapunto
En algunos casos, debido principalmente, a que nuestro proveedor de Internet puede entender que una conexión que no produce ninguna comunicación en un tiempo debe de ser cerrada, nuestra conexión con un equipo remoto es finalizada inesperadamente.

Existe una solución bastante sencilla para evitar este problema. Desde el blog de nuestro colega LoPsT, leo el resultado a este problema.
Bastará con modificar el fichero ssh_config y añadir la siguiente línea, que nos indica que cada 60 segundos se envía un AYA (are you alive?) evitando que el proveedor piense que la conexión se encuentra inactiva, así:
Si el otro día comentábamos cómo Reemplazar OpenOffice e instalar LibreOffice en Ubuntu, hoy os presento una modificación muy cool sobre la suite ofimática LibreOffice.
¿Os gusta el aspecto? Personalmente, pienso que es muy profesional.

Desafortunadamente no se trata de una nueva característica, es sólo un montaje realizado por ~usrnametaken. A mi me ha gustado bastante, no le sienta nada mal.