Brad Abrams ha publicado en su blog una magnífica serie de entradas que a todos nos pueden interesar sobre Silverlight 3 y los nuevos .NET RIA Services. Se trata de una transcripción y ampliación de su charla impartida en el Mix09 llamada “Building Business Applications with Silverlight 3 and .NET RIA Services“. Podéis ver el video completo de la sesión accediendo a este enlace.

Os paso el índice de entradas:

Sin duda un fantástico y completo tutorial práctico de Silverlight 3 y .NET RIA Services.

, , , , ,

Hoy he descubierto por casualidad un blog que puede interesar a todos aquellos que estén empezando a aprender cositas sobre Windows Presentation Foundation (WPF). Se trata del blog de Oskar Alvarez, que desde que empezó a escribir artículos hace escasamente un mes, lleva ya publicadas más de una treintena de entradas, a modo de tutorial de introducción a WPF.

Tras leer algunas de ellas, os puedo decir que merece la pena echarles un vistazo, no por su exhaustividad, sino precisamente por todo lo contrario. Son entradas cortitas hablando sobre los temas más destacados de WPF, e intercalando ejemplos que ayudan a comprender mejor los conceptos. Y todo en español, que siempre es de agradecer.

Encontraréis por ejemplo una introducción a la arquitectura básica de WPF, algunas notas iniciales sobre XAML, layouts y contenedores en WPF (Canvas, StackPanel, DockPanel, WrapPanel …), uso de distintos controles en WPF como el Ribbon o el Grid, shapes, transformaciones, animaciones, data binding, integración y relación de WPF con otras tecnologías como WCF o Silverlight, y todo lo que se os pase por la cabeza.

Y esto parece sólo el principio, porque Oskar está imparable y seguro que nos tiene preparadas más entradas interesantes sobre esta tecnología. Os animo a visitar su blog.

De paso, os recuerdo también uno de los recursos de referencia a la hora de buscar información sobre Windows Forms y WPF en general (noticias, tutoriales, manuales, ejemplos…): http://windowsclient.net

, , ,

Estos últimos días, aprovechando que no he tenido demasiado tiempo suficientemente tranquilo como para escribir nuevas entradas en el blog, he estado realizando algunas modificaciones para arreglar uno de esos problemas que aparecen de pronto sin motivo aparente y algunas otras para hacerlo un poco más social.

Según he podido leer el problema lo han sufrido más usuarios de WordPress, y se resume en que de un día para otro, y sin tocar la configuración del blog, dejan de funcionar las notificaciones por correo que avisan de nuevos comentarios o comentarios pendientes de moderar (en caso de tener activadas dichas opciones). Al parecer, se trata de algún problema con la función de envío de correo de WordPress wp_mail(). Esto tiene como efecto colateral que todos los plugins en los que intervenga de una u otra forma el envío de correo dejan también de funcionar correctamente (por ejemplo el popular Contact Form 7). Las soluciones que se pueden encontrar por los foros son de lo más variopintas, y no todas parecen funcionar en todas las plataformas, pero la más extendida, y la que he utilizado en mi caso, es modificar las funciones de correo de WordPress de forma que los envíos se realicen vía SMTP. Para esto existen varios plugins, pero recomiendo Cimy Swift SMTP, dada su facilidad de instalación y configuración. Podéis encontrar una guía paso a paso de cómo instalarlo y configurarlo correctamente en el siguiente artículo [Guía configuración Cimy Swift SMTP].

En cuanto a las funciones sociales destaco dos: por un lado la posibilidad de traducir al inglés algunas entradas y páginas del blog, y por otro los accesos directos para compartir una entrada del blog en los sitios sociales más populares, como por ejemplo del.icio.us y digg.com en inglés, o bitacoras.com y meneame.net en español, además de algunos agregadores de noticias sobre desarrollo como dzone.com o dotnetkicks.com.

En cuanto a la traducción de las noticias y páginas del blog he de decir que no serán traducciones automáticas, sino traducciones realizadas a mano, y no estarán disponibles para todos los artículos sino tan solo para los que considere interesante su traducción. La forma de saber si está disponible la traducción de una entrada determinada del blog es buscar bajo el título de la entrada el enlace a los idiomas alternativos. Si existe la traducción bastará con pulsar en la bandera correspondiente para ver la versión en inglés de la entrada. Sirva de ejemplo la siguiente imagen:

Enlace a la traducción de una entrada

Enlace a la traducción de una entrada

Por otro lado, los enlaces para compartir la noticia en webs sociales más populares aparecerán al final de cada artículo, justo antes de la lista de Entradas Relacionadas, y bastará con pulsar sobre el icono del servicio deseado para añadir directamente el artículo a dicho servicio. Adjunto una imagen de esta novedad:

Compartir artículo en sitios sociales

Compartir artículo en sitios sociales

Para quien pueda interesar, la traducción de las entradas la he implementado utilizando el plugin Polyglot, que aunque algo laborioso de instalar da muy buen resultado sin recargar nada la administración del blog, y para la adición de los enlaces a redes sociales tras cada entrada he instalado el plugin Sociable, efectivo y cómodo de utilizar.

Espero que todos estos cambios ayuden a mejorar un poco más el blog.

, , ,

Con la llegada de Internet Explorer 8 (IE8) algunos desarrolladores o administradores de aplicaciones web se han visto obligados a retocar sus diseños (HTML, CSS, …) para adaptarse a los últimos cambios en este navegador, sobre todo los relacionados con el soporte de estándares. Una vez más, como ocurre con la llegada de cualquier nueva versión de un navegador, algunos detalles de una página web dejan de verse correctamente o, aún visualizándose de forma correcta, su aspecto no es el mismo en todos los navegadores.

Esto último es lo que ha pasado con mi blog, aunque afortunadamente las diferencias eran mínimas. Aún así, buscando una solución sencilla y rápida por internet, he encontrado este artículo de Mike Ormond’s donde se comentan algunos detalles relacionados con la compatibilidad del nuevo IE8. Y entre estas posibilidades hay una especialmente interesante para los desarrolladores que no puedan o quieran modificar el código de su aplicación para adaptarse a la última versión del explorador.

La solución pasa por añadir una etiqueta META al principio de la cabecera de cada página que queramos hacer compatible con versiones anteriores de Internet Explorer. Así, por ejemplo, si queremos que nuestra web se visualice en IE8 tal y como se hacía en IE7 tan sólo debemos añadir la siguiente etiqueta:

<meta http-equiv=”X-UA-Compatible” content=”IE=7″/>

Este pequeño cambio hará que al acceder a nuestra web con IE8, Internet Explorer la renderice en modo de compatibilidad con IE7, desapareciendo los problemas mencionados.

Espero que este sencillo truco os sea tan útil como a mí.

, , , , , , , ,

Estos días he realizado algunas actualizaciones en el blog que aún tenía pendientes. Para que todos quedéis informados ahí van:

  • Nuevo formulario de contacto a través del cual podéis poneros en contacto conmigo, como alternativa al correo electrónico tradicional.
  • Nueva página sobre las políticas de privacidad relativas a los servicios de estadísticas y publicidad utilizados en sgoliver.net
  • Mis últimos mensajes de twitter en la barra lateral. Podéis seguirme en la siguiente dirección de twitter [http://twitter.com/sgolivernet] Aquí publicaré los comentarios y novedades que por su brevedad no tienen cabida en el blog.

Espero que esto sirva para aclarar algunas dudas que me habéis planteado, facilitar la comunicación entre todos y ampliar la información del blog.

, , , ,

Los que hayáis actualizado en los últimos días vuestro WordPress a la versión 2.7.1 probáblemente os hayáis dado cuenta ya del problema que se produce al incluir código fuente en vuestras entradas. Seguramente os sonarán algunos errores como éste:

Warning: htmlspecialchars_decode() expects parameter 1 to be string, NULL given in …\blog\wp-includes\compat.php on line 105

Warning: Cannot modify header information – headers already sent by (output started at …\blog\wp-includes\compat.php:105) in …\blog\wp-includes\pluggable.php on line 846

Pues bien, este problema se reportó al equipo de desarrollo de WordPress y ya tiene solución. La corrección es sencilla, aunque obviamente implica editar uno de los ficheros php de WordPress. Concretamente el error se encuentra en el fichero /wp-includes/compat.php

Para solucionar el problema basta con sustituir en la función htmlspecialchars_decode() la variable $str por la variable $string. Esta variable aparece dos veces en la función, en las líneas 102 y 114.

Con esto ya no deberíais tener más problemas a la hora de publicar código fuente en vuestro blog.

,

Dado que en próximas entradas tengo previsto hablar sobre métodos estadísticos de minería de datos, aprendizaje automático o tratamiento de lenguaje natural he estado buscando alguna solución sencilla para publicar fórmulas en las entradas del blog  de modo que éstas queden lo más legible posible.

Y buscando he dado con esta solución presentada en el blog Gaussianos (fantástico blog por cierto, si os interesan los temas matemáticos), un plugin de WordPress para representar código escrito en LaTeX, una solución fantástica para mis intereses.

De esta forma ya puedo incluir fórmulas como éstas en el blog:

\displaystyle{\sum_{n=1}^\infty{\frac{1}{n^2}}=\frac{\pi^2}{6}}

Espero que nadie se asuste. Todo es más sencillo de lo que parece.

, , ,

Otra de las decisiones que he tomado este año con respecto al blog ha sido ampliar su temática introduciendo algunos temas más específicos que los tratados hasta el momento.

Así, a partir de ahora ire publicando en este blog algunos artículos sobre uno de los temas que más me interesan dentro del campo de la informática actual: la Inteligencia Artificial. Y en principio no me pongo límites, pretendo tratar desde conceptos básicos hasta temas complejos, intentando llegar [siempre que sea posible] a la implementación de cada sistema o técnica y no quedándonos en una mera descripción teórica [algo muy común en las páginas con documentación sobre este tema].

A modo de introducción, enumero a continuación algunos de los campos y técnicas de la Inteligencia Artificial que iran apareciendo por este blog en próximas entradas:

  • Aprendizaje Automático [Machine Learning]
  • Procesamiento de Lenguaje Natural [Natural Language Processing (NLP)]
  • Minería de Datos [Data Mining]
  • Videojuegos [Game IA]
  • Búsqueda Avanzada de Soluciones [AI Search Techniques]
  • Ingeniería del Conocimiento [Knowledge Engineering]
  • Lógica Difusa [Fuzzy Logic]
  • Sistemas Expertos [Expert Systems]
  • Algoritmos Genéticos [Genetic Algorithms]
  • Redes Neuronales [Artificial Neural Networks (ANN)]
  • Árboles de decisión [Decision Trees]
  • Etc…

En breve, publicaré las primeras entradas sobre Inteligencia Artificial.

, , ,

Como ya comenté en la primera entrada de este año, una de las novedades más importantes en cuanto al blog es la migración a WordPress. ¿Por qué el cambio, y por qué a WordPress?

Pues la respuesta a la primera pregunta la tengo clara. Mi antiguo blog no era más que una aplicación ASP.NET hecha a medida desde cero que utilizaba a modo de sistema de publicación sencillo para mis artículos y proyectos personales. Esta aplicación, aunque funcional no resultaba nada práctica ni cómoda para postear frecuentemente, y añadir nuevas funcionalidades y plugins me quitaba aún más tiempo, algo que me dejaba poco margen para lo realmente importante, escribir. Por tanto, con el cambio de software mi intención es dirigir el tiempo que tenga a publicar entradas, y no a modificar el blog en sí.

La segunda pregunta no la tengo tan clara. Aunque WordPress es sin duda uno de los sistemas de publicación de blogs más populares a día de hoy no es por supuesto el único. WordPress ha sido simplemente una apuesta personal que espero me dé el resultado esperado, algo que al menos por ahora está superando con creces.

Mi transición a WordPress ha sido algo laboriosa debido a que mi sistema anterior y éste eran demasiado diferentes, tanto en su estructura interna como en el origen de los datos, por lo que han sido necesarios un par de días de trabajos manuales intensos. La transición transcurrió tal como sigue:

  1. Descarga e instalación de WordPress 2.7 en mi dominio [para quien pueda interesar, la descarga se puede realizar desde la Web oficial de WordPress en español, donde también puede encontrarse las instrucciones de instalación en 8 sencillos pasos].
  2. Elección del tema para el blog. En mi caso el elegido fue Coogee, un tema sencillo y que cumple al 100% con los estandares XHTML y CSS [podéis validar vuestro tema con los validadores de HTML y CSS de la W3C].
  3. Importación de las entradas del blog anterior en el nuevo bajo WordPress. Para hacer esto, WordPress proporciona en la sección de Opciones de su panel de control una serie de importadores para los orígenes de datos más habituales, como por ejemplo otros sistemas de blogs o un canal RSS.
  4. Instalación de plugins para añadir funcionalidades extra al blog, tanto a nivel de usuario como de administrador.

Sobre este último punto me gustaría hablar un poco más. Si consultáis la sección Extend de la página web de WordPress veréis que existen infinidad de plugins, de todos los tipos y colores, para añadir todo tipo de funcionalidades a un blog. Si buscáis en internet encontraréis también cientos de listas sobre los mejores plugins para WordPress y dado que cada blog y cada usuario tienen unas necesidades distintas estas listas suelen ser de lo más heterogéneo. Sin embargo, existen una serie de plugins que parecen haberse ganado los primeros puestos en todas las listas y que paso a comentaros, aquí va mi lista de los mejores plugins para WordPress:

  • Akismet. Un plugin imprescindible para evitar el spam en los comentarios de nuestros blogs.
  • All in One SEO Pack. Añade muchas opciones interesantes para optimizar tu blog de cara a su visibilidad en los buscadores de internet.
  • Google Analytics for WordPress. Añade la funcionalidad necesaria al panel de administración de WordPress para poder registrar las estadísticas de acceso a tu blog mediante Google Analytics.
  • Google XML Sitemaps. Genera automáticamente un sitemap para tu blog, que puede ser utilizado para gestionar las páginas indexadas de tu blog en Google mediante el servicio Google Sitemaps.
  • Simple Tags. Añade a WordPress funciones avanzadas de etiquetado de entradas y páginas, como por ejemplo autoetiquetado de entradas, etiquetado masivo, nubes de etiquetas personalizables, etc.
  • WordPress Related Posts. Añade automáticamente a tus entradas una lista de entradas relacionadas de tu propio blog.
  • TinyMCE Advanced. Añade funciones extra al editor de texto de WordPress (TinyMCE).
  • SyntaxHighlighter Plus. Colorea automáticamente los fragmentos de código fuente publicados en nuestro blog.

Por último, como opinión personal, tan sólo decir que WordPress me ha parecido, al menos por el momento, un software de publicación de blogs bastante completo, fácil de instalar y configurar, sencillo de administrar y con multitud de posibilidades al alcance de un click. Recomendado para todos los que andéis buscando plataforma para vuestro blog.

, , , , , ,