Cómo saber cuando ha sido la última vez que Google visitó tu sitio web

Hoy explicaremos cómo podemos saber cuando Google a través de su spider Google Bot ha visitado por última vez nuestro sitio web.

Podemos utilizar dos caminos:

El método automático

Simplemente hay que ir a esta página (link) y poner la url que quieres comprobar.

Forma de ver cuando ha pasado Google Bot por tu sitio

El método manual

Simplemente hay que seguir los siguientes pasos:

  • Ir a Google y hacer una búsqueda de la url del sitio.
  • Seleccionar la opción “En caché”.

Ver tu página en la caché de Google

  • Fijarse en la fecha que pone en la parte superior.

Ver fecha de cuando google pasó por tu página

 

En mi caso, justo hoy (me encanta que los planes salgan bien 😉 )

¡Espero haberos ayudado!

Qué es la gamificación y cómo lo hacían mis padres

Hoy hablaré acerca de lo que es la gamificación de una forma muy concisa y después explicaré cómo es un concepto que realmente se ha llevado haciendo a lo largo de muchos años de diferentes formas (sí, tus padres seguramente utilizaron estas mecánicas a lo largo del tiempo, lo que pasa que antes no se le llamaba gamificación).

Gamificación

¿Qué es la gamificación o ludificación?

Básicamente la gamificación es la utilización de mecánicas de juego para tareas de la vida real (así de simple, no hay más).

Ejemplos rápidos podrían ser asignar puntos a los empleados de una empresa por cada tarea que realizaran correctamente y darle un premio al que al final del año tenga más puntos, hacer una competición de preguntas/respuestas creando un ranking de los mejores y más rápidos jugadores,…

Ejemplos de cómo mis padres aplicaban gamificación a las cosas

Y la pregunta que todos os haréis y por la que habéis venido a este post es… ¿y seguro que tus padres aplicaban la gamificación? Pondré ejemplos:

Ejemplo 1 – Lectura vs Ordenador

En mis años mozos era un fanático de los juegos de ordenador y estaba enganchado a ellos. Pues bien, mis padres decidieron que para fomentar la lectura y que no estuviera todo el día en el ordenador (objetivo) por cada hora que yo la dedicara leyendo tendría derecho a una hora de ordenador (Recompensa). Pero no se quedó ahí la cosa, puesto que logró que hubiera (esto era algo no planificado) una competición entre mi hermano y yo a ver quien tenía más horas acumuladas. ¿El resultado cual fue? Pues que tuve un superhabit de horas de lectura que nunca en ese verano acabé gastando.

Ejemplo 2 – El flautista pintor.

Típico momento en el que había que pintar la casa… se necesita mano de obra barata y ahí encajo yo… la decisión que toma mi madre es ir desbloqueando partes de una flauta que quería tener para aprender a tocarla (ya tocaba el piano, pero quería probar otro instrumento). Por cada x tiempo que estuviera ahí pintando pues más trozos de la flauta tenía (recompensa después de haber obtenido un logro). Lo gracioso fue que después de haber hecho la tarea ya me olvidé del instrumento y nunca lo canjeé. Vamos, que le salió demasiado bien la cosa.

Otros ejemplos

Otros ejemplos que otros padres que conozco han implementado (no digo que sea bueno hacerlo así o no, simplemente digo que son ejemplos de tareas gamificadas)

Si apruebas todas las asignaturas te compro eso que tanto te gusta.

  • Objetivo: que tu hijo apruebe todas las asignaturas.
  • Mecánica de juego: Logro y recompensa.
  • Dinámica de juego: Recompensa, logro, competición.

Si ordenas tu habitación puedes salir con tus amigos

  • Objetivo: mantener orden en casa.
  • Mecánica de juego: Logro y recompensa.
  • Dinámica de juego: Recompensa.

¿Se os ocurren más ejemplos?

Permitir que un cliente responda a las reseñas de usuarios en las apps

Hoy hablaremos de un problema que me he encontrado en el trabajo, y es el de saber cómo un cliente puede responder a las reseñas que los usuarios le realizan de las apps que hemos realizado para ellos.

Permisos a la cuenta en android

En android la verdad es que ha sido muy sencillo. Adjunto dos pantallazos en donde se verá muy fácilmente los pasos a seguir para poder hacerlo desde el panel de administración de play.google.com/apps/publish.

Android, dar acceso a responder comentarios

Android, dar acceso a responder comentarios 2

Ios

Olvídate de que sea como en Android, aquí no se pueden responder reseñas por muy injustas que sean o por muy inexactas que parezcan. Aquí pongo una serie de links de páginas de desarrolladores preguntando exactamente lo mismo que yo:

Y eso es todo por hoy

Problemas de ficheros corruptos con storyline

Hoy toca hablar de un problema que nos ha estado consumiendo las fuerzas… y es que, después de mucho trabajo invertido en un proyecto en Storyline, ha decidido que el ficherito no vuelve a abrir y nos dice que está corrupto.

Storyline, el proyecto está corrupto

Las soluciones que proponen son las siguientes:

  • Trabajar en el disco local (En el C:/). Trabajar en un dico de red o en un USB puede causar un comportamiento erróneo, incluido que los ficheros se corrompan, se pierda el audio,…
  • Asegurarse que la ruta a los ficheros del proyecto y a la salida para publicar tiene menos de 260 caracteres.
  • Evitar utilizar caracteres especiales, como acentos o símbolos en los nombres de los ficheros.

En caso de que nada de eso funcionen proponen seguir los siguientes pasos:

  • Crear un nuevo proyecto.
  • Importar el proyecto antiguo desde ese.

Importar fichero en Storyline

Y en caso de que nada de esto funcione (como ha sido mi caso) proponen enviarles el fichero para ver qué problema puede haber a la siguiente dirección: https://www.articulate.com/support/contact/submit.php .

Aprovechar para recordar este otro post con problemas que puede haber en storyline: link

HTML Foundation – Cómo hacer validaciones

Hoy os presentaré el cómo hacer validaciones de formularios con Foundation así como las más típicas reglas que puedes utilizar.

Primeramente, y como sabréis, en la página en la que estáis maquetando con Foundation lo primero que tendréis que tener es incluido el jquery así como la versión de foundation con la que queréis trabajar:


<script src="js/vendor/jquery-1.9.1.min.js"></script>
<script src="js/foundation.min.js"></script>
<script>
	$(document).foundation();
</script>

Para hacer una validación, simplemente tendréis que seguir estos pasos en el formulario:

  • Añadir la etiqueta data-abide.
  • Introducir cada campo dentro de un div diferente.
  • Poner en el input en cuestión los valores que se quieran (en este ejemplo veréis un required y un pattern que indican que es obligatorio rellenarlo y cómo hay que hacerlo correctawente).
  • Crear un elemento con la clase error que sólo se mostrará en el caso de que no cumpla la validación.
<div>
	<label>Email</label>
	<input id="email" name="email" pattern="email" required type="text" />
	<small class="error">El email es un campo requerido</small>
</div>

Tipos de patrones pueden ser: alpha, alpha_numeric, integer, number, email, url, date, time,…
Otra opción también muy útil es la de indicar que un valor tiene que ser similar a otro mediante el data-equalto, por ejemplo:

<div>
	<label>Password</label>
	<input id="password" name="password" required type="password" />
	<small class="error">El password es un campo requerido</small>
</div>
<div>
	<label>Repetir Password</label>
	<input id="repetir_password" name="repetir_password" required data-equalto="password" type="password" />
	<small class="error">Es un campo requerido y tiene que ser similar a password</small>
</div>

Podéis ver más información en este link (Tened en cuenta que aquí se indica que es necesario hacer una llamada a abide pero para todo lo que hemos hecho no ha sido necesario).

Yii2 vs Laravel 5

La eterna lucha entre diferentes frameworks… hoy la llevaremos al terreno de yii vs Laravel. Dejar claro que simplemente expondremos los puntos fuertes y débiles de cada uno, para ciertos aspectos de la programación puede que no sea importante o puede que sea vital que uno permita ciertas cosas y el otro no, pero eso ya es cosa de cada uno 😉

yii2-vs-laravel5

Laravel 5

Ventajas

  • Tiene un core muy sencillo, con componentes muy intuitivos.
  • Mucha gente escribe acerca ello (tiene una comunidad mayor a Yii2).
  • Utiliza componentes de frameworks muy tradicionales, como Symphony
  • Las últimas prácticas de programación en PHP son incorporadas en nuevas versiones.
  • Muy buena velocidad de procesamiento sin necesidad de instalar extensiones externas

Debilidades

  • No hay continuidad entre versiones. Si tenéis algo en Laravel 4 y lo queréis pasar al 5 todo cascará y tendréis que reprogramar (para mi esto es un handicap muy MUY grande).
  • Los generadores automáticos de código son demasiado básicos. Es más rápido el copia pega de otros sitios.
  • No hay generación estandar de vistas. Puedes dedicar horas de crear código antes de poder probarlo.
  • El sistema de autenticación está un poco incompleto (faltan roles, hay que definir cosas manualmente)
  • Al no utilizar las extensiones componentes nativos de Laravel eso significará que habrá redundancia de código.

Yii 2

Fortalezas

  • Se puede instalar descargándote un zip. Ni composer ni otros gestores de paquetes.
  • Tiene una generación CRUD con vistas, controladores, funciones de búsqueda, modelos,…
  • Tiene una autenticación montada con roles y permisos.
  • Permite crear widgets específicos y propios para PHP/HTML snippets.
  • Widgets internos que permiten hacer renders de tablas con HTML plano o usando vistas dinámicas en AJAX
  • Barra de debug donde te dice estadísticas e información a lo largo de la ejecución de código.
  • Tiene una gran documentación oficial.
  • En su web están centralizados muchos recursos.

Debilidades

  • Hay menos contribuciones de usuarios que en laravel (y también menos extensiones a la venta).
  • La versión 2 es todavía bastante nueva y le faltan para mi gusto bastantes manuales.
  • Yii2 es más o menos similar a Yii1 pero aun así hay que modificar varias cosas para que una aplicación de la primera versión de Yii funcione en la segunda.
  • El código de PHP parecerá más contaminado por el uso siempre de arrays en vez de objetos con sus propiedades.

Y eso es todo amigos, ¿cuál de los dos prefieres?

Reload Editor

Hoy hablaremos del reload editor, que es una herramienta gratuita que nos permitirá facilitar la creación de paquetes scorm en la versión que queramos.

Puedes descargarlo en este link (ver justo el primer enlace que pone SCORM 2004 4th Edition). Ni siquiera es necesaria la instalación, simplemente deszipeandolo en cualquier carpeta te permite ejecutarlo. (En ese mismo enlace tendréis muchos más recursos que os pueden resultar muy útiles).

¿Cómo crear un Scorm en el Reload Editor?

Simplemente tendréis que abrir el programa, seleccionar archivo->crear y clicar en la versión que queráis de Scorm. Os pedirá que escojáis la carpeta y una vez que lo hayáis hecho añadirá los archivos específicos de esa versión. Posteriormente, tendréis que crear la organización, la lección(o lecciones) y los recursos.

Aquí os dejo una imagen de lo que es el reload editor con unas explicaciones.

Adl Scorm 2004 Reload Editor Explicación

¡Ya me contaréis que tal la experiencia!

Linux vs Windows (recordatorio de un post)

Hoy he recuperado una joya del 2007 (del 14 de diciembre de 2007 para ser más exactos). Un artículo en el que comentaba mis impresiones después de ir a una charla de Linux y en la cual comparaba Linux con Windows. Aquí os la dejo. ¡Qué recuerdos!

Hoy he ido a una charla de Linux (para principiantes) impartida por unos amigos míos que están en la asociación Asturlinux. Pues bien, casi salí convencido de que debía cambiarme a Linux, ya que toooodo son ventajas.

Pero después pensé:

  • ¿Y esas pantallas azules tan famosas en el Windows que nos traen tanta nostalgia con unos numeritos que sólo unos pocos consideramos arte?…. Esas no las tiene.
  • Pero podré meterle el gran y potente Internet Explorer, el cuál se me peta en un puñado de páginas web (en especial en la de vídeos del msn), para de esta forma recordar los momentos en los que tenía que reiniciar el Explorer… No, tampoco podía.
  • Pero al menos ¿podré meterle el Windows Media para que me actualice cada dos días y tenga que validarlo todo? No, tampoco,…..
  • Pero al fin y al cabo, pensé, siempre nos quedarán las actualizaciones de Linux, que supongo que serán como las de Windows, que acaban ocupando en “agregar o quitar programas” varias pantallas. (En ese momento, en el que me dijeron que no sería así renegué totalmente de Linux)

Si es que sólo los aventureros como yo usamos Windows…

(Ahora en serio, Linux tiene muchas ventajas, pero tb bastantes desventajas, como en el caso de que a veces la instalaciones de los paquetes dan problemillas, no hay juegos decentes para este sistema operativo,…)

CSS3 y las etiquetas propias de cada navegador

Logotipo CSS3
En CSS3 hay una serie de nuevas etiquetas que cada navegador interpreta de forma diferente. Es debido a ello que, a la hora de hacer un degradado, o con algunas etiquetas nuevas, sea necesario usar diferentes prefijos, del tipo:

  • Firefox 3.6+: -moz (-moz-linear-gradient)
  • Chrome, Safari 4: -webkit (-webkit-gradient)
  • Chrome 10+, Safari 5.1+(-webkit-linear-gradient)
  • Opera 11.10+: -o (-o-linear-gradient)
  • Internet Explorer 6-9: filter (filter)
  • Internet Explorer 10+: -ms (-ms-linear-gradient)
  • Estándar W3C: No tiene (linear-gradient)
  • Navegadores antiguos: No soportan etiquetas CSS3.

Un ejemplo para realizar mediante código CSS3 gradientes podría ser:

.degradado {
    background: #1e5799; /* Navegador antiguo */
    background: -moz-linear-gradient(top, #1e5799 0%, #2989d8 50%, #207cca 51%, #7db9e8 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#1e5799), color-stop(50%,#2989d8), color-stop(51%,#207cca), color-stop(100%,#7db9e8)); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(top, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* IE10+ */
    background: linear-gradient(to bottom, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 ); /* IE6-9 */
}

require vs include vs require_once vs include_once

Es muy normal el ir separando código PHP en varios ficheros y, dependiendo de qué necesites ir llamándolos a unos o a otros. Y esto, ¿cómo se hace? Pues muy fácil, puedes utilizar las siguientes funciones

require(“ruta_al_archivo/archivo.php”)
include(“ruta_al_archivo/archivo.php”)
require_once(“ruta_al_archivo/archivo.php”)
include_once(“ruta_al_archivo/archivo.php”)

Todas nos importarán el código de ese archivo PHP, pero ¿qué diferencia hay entre ellas?

require() vs include()

php include vs require

Las dos funciones insertan el contenido, pero require() establece que el código del archivo invocado es requerido, es decir, es totalmente obligatorio para que funcione. Si no se encuentra dicho fichero nos mostrará un “PHP Fatal error” y parará de funcionar. Por el contrario, lo que pasará con include() si no se encuentra dicho código es que saltará un error tipo “Warning” y el programa seguirá ejecutándose.

Lo normal es utilizar require(), puesto que si introducimos algo es porque queremos usarlo.

require_once()/include_once() vs require()/include()

require_once() e include_once() funcionan de la misma forma que sus respectivos (sin el _once). La diferencia está en que sólo te permite la carga del mismo archivo una única vez.

Este código cargará dos veces archivo1.php

require(archivo1.php);
require(archivo1.php);

Mientras que este otro carga una única vez el archivo1.php

require_once(archivo1.php);
require_once(archivo1.php);

Es conveniente usar las funciones con _once para evitar redeclarar variables, funciones o clases, aunque consumen más recursos.