Mejorando mi blog WordPress

Hace aproximadamente un mes, inicie esta mejora del blog, motivado en un principio por la ley de cookies española, como les conte en mi última entrada, aunque el paso definitivo que me empujo a llevar a cabo estas mejoras fue el darme cuenta que todas las entradas que incluían segmentos de código se veian mal, sin estilo, en fin,  sencillamente horribles, puedo decirles que me avergüenza ya que ni siquiera tengo una idea de cuanto tiempo llevaban las entradas en dicho estado. Profundizando un poco mas en el asunto creo que tendría alrededor de 2 años o mas sin buscar algún plugin novedoso o revisar algún tema nuevo, pero al menos me contenta decirles que estoy satisfecho con el tiempo dedicado, el resultado obtenido y compartirlo con ustedes.

Antes de empezar y para no alargarme mucho quiero aclarar que no soy un experto ni mucho menos, pero pienso que puede haber personas que al igual que yo no sabrían por donde empezar a la hora de buscar que plugins agregar a su blog WordPress, ni siquiera con que objetivo empezar a buscar e igualmente siempre da un poco de confianza tener una referencia de un plugin antes de descargarlo aunque este tenga 4 estrellas de rating.

Les detallo a continuación que plugins instale:

Plugin para adecuar el blog a la ley de cookies española.

akismetPara evitar el spam en los comentarios, instale Akismet, el cual es un servicio que en el caso de ser utilizado para una web personal es gratis aunque siempre te agradecerán cualquier donación que puedas aportarles, entre otras cosas además de quitarte el dolor de cabeza de los spam te aporta estadísticas al respecto. No dejes de instalarla no te arrepentiras te lo aseguro. Para mejorar aun más la gestión de los comentarios de mis entradas active el plugin SI CAPTCHA Anti-Spam el cual añade un captcha que el usuario ha de ingresar correctamente para poder añadir un comentario.

Con respecto al resaltado de código y su visualización, instale el plugin Crayon Sintax Highlighter, lo cual me sorprendió muy gratamente ya que al activarlo una vez desactivado  el resaltador de sintaxis que tenia previamente, ya se visualizaba el código con un look & feel fantástico, ya que el plugin le aplica un estilo a todo lo contenido dentro de etiquetas <pre></pre>, el único trabajo que tuve que realizar adicionalmente para añadir atributos a la etiqueta como por ejemplo

<pre class=»lang:java»> indicando que el código a mostrar es Java

crayon

Sin lugar ha dudas este plugin ha de estar en este momento en el top 3 de resaltadores de sintaxis, además de la gran cantidad de lenguajes que soporta entre los que puedo nombrarles, C/C++, Java, HTML/XML, CSS …

Para mejorar las funciones de SEO, añadí Google Analytics for WordPress, el cual esta considerado ahora mismo el número 1 en la materia.

yoast seo

Mucho cuidado con tener otro plugin de características similares instalado y activado, ya que puede interferir y dar error al intentar visitar el sitemap.xml de la página.

Para dar características de Social Media, instale Juiz Social Post Sharer, el cual permite compartir en las principales redes sociales y posee un estilo sobrio y sencillo como pueden ver a continuación en la siguiente imagen.

social media

Para aportar esta característica al blog existen muchas otras opciones, yo también estuve probando Social Media Feather, el cual esta muy bien ya que cubre las principales redes sociales y a su vez da la opción de seguir además de la de compartir, aunque yo me decante por la primera por razones de estilo.

Además de las antes mencionadas, añadí el plugin que hasta el momento estaba siendo considerado como el plugin mas popular, el Contact Form 7, este permite de una forma muy sencilla crear formularios de contacto, los cuales recibiríamos por correo electrónico, este es un plugin simple pero que hace muy bien su trabajo.

Era necesario que también llevara a cabo mejoras en cuanto a rendimiento y carga de paginas, sobretodo en estos tiempos donde la navegación a través de dispositivos móviles representa un factor importante y para eso instale W3 Total Cache, el cual además de crear una cache, mejora de forma considerable la velocidad de carga haciendo una compresión de las CSS y el código javascript del blog.

Para finalizar yo siempre me pregunte como hacían los editores de blog related postpara en todos sus entradas hubieran referencias a otras entradas relacionadas entre si (dios que iluso fui), y para ello existen varios plugin aunque yo me decante por Yet Another Related Posts Plugin, que funciona de maravilla, con solo instalarlo ya me doto de esta característica a la mayoría de las entradas de mi blog.

Para aquellos que al igual que yo esten un poco desconectados en las novedades los plugins WordPress espero que esta entrada les haya sido de utilidad y para los que ya estén mas actualizados ¿Han hecho alguna mejora a su blog? ¿Que otro plugin podrían sugerirnos para tener nuestro blog actualizado a las nuevas tendencias?

Plugins WordPress para la ley de cookies española

Transcurría el mes de agosto del año pasado cuando por un tuit me entere de que existía una «ley de cookies», el tuit hacia referencia a una publicación donde indicaban que ya existía una demanda en contra de una empresa «grande» en España y todo porque alguien (entiendo que un astuto) había introducido la demanda ya que el sitio Web de la empresa no indicaba que introducía cookies en las computadoras de los usuarios que visitaban dicho sitio. Recuerdo también que dicho articulo comentaba que el ente jurídico español no multaría (según sus fuentes) con una cifra escandalosa a la empresa para la compensación del o los usuarios pero si estaban tomando ese caso para elaborar una especie de borrador para que a su vez bloggers y empresas tuviesen una referencia al momento de adaptar sus sitios Web así como también ellos tener una referencia a la cual apegarse a la hora de determinar si un sitio cumplía con la ley o no.

Esta ley de cookies fue aprobada en el año 2012, pero ciertamente creo que éramos pocos los que sabíamos o habíamos empezado a acatar dicha legislación que si no me equivoco es a nivel europeo. Yo particularmente no estoy muy de acuerdo que se diga con dicha ley, de hecho considero que antes de multar empresas y personas e invertir dinero en toda una legislación que vigile su cumplimiento, etc.., preferiría que tales recursos se dedicaran a la educación del internauta para que conozca acerca de las cookies, o sea, me parece bien que se informe al usuario pero no con el hecho de ser tan riguroso hasta llegar al punto de multar (y mas en estos tiempos que corren) a la persona (jurídica y natural) dueña del sitio Web que no informe acerca de las cookies que guarda la página Web en los navegadores de los internautas.

Ha sido hasta este momento que por fin me he dignado a adaptar el sitio y buscar al respecto, y bueno comparto brevemente con ustedes lo que encontré que me ha resuelto el problema. Hay realmente varios pulgins en el sitio Web de WordPress.org pero los dos que les listare a continuación fueron los que mas me gustaron:

  • Ley cookie: Esta muy bien y es sencillo, pero aun esta en etapa de desarrollo, pero lo bueno es la disposición que tiene su creador en mejorarlo con ayuda de la comunidad.
  • Asesor de cookies para normativa española: Muy sencillo y sinceramente (hasta donde llega mi conocimiento en la materia) cumple con lo necesario y realmente hace todo y en menos de 5 min tuve el sitio ya adaptado para el cumplimiento de la ley de cookies. En un principio he dejado todo lo generado por defecto para a su vez hacer algo de justicia a su desarrollador y referencia al plugin entre otras cosas.

Ahora cuéntanos ¿ya tienes tu sitio Web de empresa o blog preparado para el cumplimiento de la ley de cookies?

Algo de información valiosa al respecto

http://www.davidrabaez.com/ley-de-cookies-5-puntos-a-tener-en-cuenta/

Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=109, too big.

El día de hoy comienzo una nueva categoría llamada «exceptions«, donde compartiré (en medida de lo posible) como resolver o evitar que en nuestras aplicaciones salten excepciones o al menos indicar la razón por la cual es arrojada. En esta oportunidad les traigo la siguiente exception:

Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=109, too big.

Esta excepción, se obtiene en Java 6 al haber discrepancias entre el tipo de instancia del keystore y el tipo de almacén de claves, al intentar cargar el almacén de claves. Por ejemplo  si intentásemos cargar el almacén de claves desde un fichero .jks (jks es una implementación por defecto de Java  para el almacenamiento de claves, que por ejemplo puede ser creado con el comando keytool del jsdk), habiendo indicado que la instancia del keystore es «pkcs12» en vez de haber utilizado el valor de «jks». Como el ejemplo a continuación:

Como evitar entonces la excepción? Muy sencillo, hay 2 alternativas.

  1. Utilizar como tipo para obtener la instancia del keystore el valor de «jks» en vez de «pkcs12» (para este ejemplo específicamente), es decir utilizar el tipo adecuado para obtener la instancia del keystore.
  2. Cargar el almacén de claves adecuado, es decir, para este ejemplo sería indicar el path del certificado digital (por ejemplo de tipo .p12, .pfx) en vez de haber utilizado el path del fichero jks.

Espero pueda ser de utilidad y les quite al menos uno que otro dolor de cabeza. Cualquier información que consideres pueda ser de utilidad relacionada con esta excepción, no dudes en compartirla.

Decompilador Java

Hacia mucho tiempo que no me veía en la necesidad de utilizar este tipo de herramientas como lo son los decompiladores, para aquellos que desconocen que son, en palabras sencillas, son herramientas que permiten obtener el código fuente de una clase a partir del Bytecode de la misma. A continuación les dejo un decompilador que he utilizado y hasta ahora me ha ido bien con el, es bastante sencillo, posee versiones para los principales sistemas operativos (Mac Os X, Windows y Linux) y como puntos a resaltar decompila desde Bytecode de la versión 1.1 hasta la versión 1.7 de Java, es gratuito y además posee plugins para eclipse y IntelliJ.

Enlace al sitio web del decompilador. Comparte con la comunidad tus impresiones acerca de la herramienta y si conoces alguna otra que nos puedas sugerir te lo agradeceremos.

Algunos screenshots

Mi primera aplicación en iOS

Desde hace poco tiempo a causa de un nuevo proyecto al que fui asignado me toco empezar a buscar información para desarrollar en iOS, aunque únicamente consistió en una prueba de concepto y viabilidad del proyecto, empece por comprarme un libro y empezar a leerlo en la medida en la que el trabajo me lo permite, ahora quiero compartir con ustedes lo poco que hasta ahora he aprendido, que insisto es poco, pero me esta gustando bastante, no solo el framework (Cocoa Touch) sino también el entorno de trabajo (Xcode).

Intentare guiarles de la manera mas clara posible en la creación de una versión del hola mundo en Xcode para iOS.

Empezaremos ejecutando Xcode y seleccionando la opción de crear un nuevo proyecto. Inmediatamente después debemos seleccionar una plantilla (template), en la parte superior izquierda seleccionamos la opción Application en la sección iOS, seguido seleccionamos en el panel derecho la opción Single View Application y pulsamos el botón Next.

 Luego tenemos que rellenar el nombre del proyecto, el dispositivo para el que se elabora la App con los datos de la siguiente gráfica.

De los valores ingresados una muy breve descripción:

Product name: Nombre de la aplicación

Class Prefix: Prefijo dado a las clases para evitar conflictos de nombre.

Una vez realizados los pasos anteriores, Xcode nos habrá generado un conjunto de archivos, desplegar la carpeta de nombre HelloWorld para poder visualizarlos, entre ellos podrán ver un fichero de nombre BIDViewController.xib. Al seleccionarlo observarán como en el editor aparece lo que será la interfaz gráfica sin ningún componente.

En el panel inferior derecha del Xcode se encuentra ubicada la biblioteca de componentes, de allí arrastraremos a la interfaz los componentes necesarios para poder construir una GUI parecida a la imagen.

Empezaremos arrastrando una etiqueta (label) y la ubicaremos en la parte superior izquierda veremos como el editor tiene una especie de asistente que nos ayudara a la ubicación mostrando unas lineas azules para marcarnos los bordes, el centrado, alineación con otros componentes, etc. Una vez ubicada la etiqueta hacemos doble click en el componente y editamos el valor de la etiqueta y escribimos «Nombre:».

Seguido ahora arrastraremos un campo de texto (text field) y luego ajustaremos su longitud alargando el campo por los bordes y de igual manera apoyandonos de estas lineas azules que nos indican cuando estamos en el limite de los bordes de la pantalla.

Por ultimo arrastramos un botón y lo ubicamos centrado en la parte inferior. Hacemos doble clic en el botón y le asignamos el texto «Saludar».

Terminado el diseño de la GUI vamos a aprovechar alguna de las ventajas del IDE (Xcode) que de forma transparente realizando unos sencillos pasos nos generara el código necesario para nuestra aplicación.

  1. Ir al menu yView->Assistant Editor->Show Assistant Editor, podremos ver como la vista donde editábamos la GUI se ha dividido en 2.
  2. Hacemos clic en el campo de texto y pulsando la tecla ctrl lo arrastramos hacia el lado derecho donde se esta el código y soltar antes del @end. Nos aparecerá una pequeña ventana y deberemos rellenar los valores como lo indica la siguiente imagen. Al terminar presionar el botón connect.
    agregando outlet
  3. Seguido realizamos el mismo paso pero con el botón «Saludar» y rellenamos lo datos de la ventana con los datos que aparecen en la siguiente imagen.
    agregamos action

 

Ya casi hemos terminado con la interfaz gráfica (como pueden ver uso de forma intercambiable GUI e interfaz gráfica) pero antes deberemos seleccionar el archivo BIDViewController.m (veremos como en el editor principal se carga el archivo). Agregaremos un método y editaríamos otro antes del @end, como aparece en la siguiente imagen. Siendo más explícito editaremos el action saludar que Xcode nos ha dejado ya el esqueleto del método (lo hizo justo cuando arrastramos el botón saludar al lado derecho del código y nos apareció la ventana a la que le ingresamos información) y agregaremos el action textFieldDoneEditing.

metodos action

El primer action (saludar) que hemos editado será el que llevará a cabo la funcionalidad cuando pulsemos el botón saludar (que aunque no conozcamos el lenguaje podemos interpretar que es lo que hace). La funcionalidad consistirá en arrojar una alerta (especie de ventana modal) concatenando la cadena «Hola » el contenido que hayamos ingresado en el campo de texto. El segundo action (textFieldDoneEditing) sencillamente hace que se oculte el teclado al pulsar enter, sino agregamos este método y lo enlazamos con la vista al poner el cursor sobre el campo de texto aparecería el teclado y este no se ocultaría.

Seleccionamos de nuevo el archivo BIDViewController.xib, luego en el editor en la parte izquierda veremos 3 iconos, File’s Owner,  First Responder y View, seleccionamos la vista (View) y luego presionamos las teclas cmd+alt+6 y en la parte derecha de nuestra ventana se mostrara el connections inspector. Seleccionamos el botón «Saludar», nos aparecerán todos los eventos del botón debajo del titulo Send Event, luego seleccionamos el circulo correspondiente al evento Touch Up Inside y lo conectamos (arrastrando) al File’s Owner, nos deberá aparecer el método saludar y lo seleccionamos.

Para terminar seleccionamos el campo de texto y aun mostrandose el panel connections inspector (en caso que no este repetimos los pasos para que aparezca) seleccionamos el circulo correspondiente al evento Did End On Exit y lo conectamos con el File’s Owner y seleccionamos el action textFieldDoneEditing e inmediatamente después guardamos (cmd+s).

Finalmente ya hemos terminado, ahora de haber podido seguir todos las indicaciones antes señaladas en el post podremos ejecutar nuestra primera App para Iphone, que esperas!!! vamos a probarla, pulsemos cmd+r.

simulador iphone

¿Qué tal? yo si les soy sincero a mi lo que me asombro la primera vez fue el entorno, es muy amigable ya desearía yo que algún editor Java me generara un código legible y de forma tan sencilla para generar y darle funcionalidad a una GUI, se que a mucho les gusta quizás el modo mas largo, codificando todo y así ya luego al usar estos asistentes saber donde, cuando y como se genera el código, pero bueno mi intención en un principio es hacer un Hola Mundo, Hola Pedro u Hola María que se desarrollase de forma sencilla, rápida y así tener un primer acercamiento con esta tecnología. Espero que les haya parecido interesante, ¿conoces algún recurso que quieras compartir con nosotros?, a que esperas, la información es poder, compartela y así todos podemos beneficiarnos.