Novedades en HTML5

By , 19/04/2012 11:49

Tras varios días recopilando información y haciendo pruebas sobre lo que está por venir en HTML5 solo puedo decir que ¡Me gusta!, me gusta mucho el rumbo que va tomando, me gusta que vaya encaminada a hacer la web mucho más semántica y que permita a los buscadores indexar la información mucho mejor, me gusta mucho la integración de vídeo y audio y sobre todo todas las mejoras que se meten con CSS3. En esta entrada y sucesivas trataré de hacer un resumen de las mejoras que se han añadido.

Nuevas etiquetas

Se han añadido nuevas etiquetas que pretenden ayudar a mejorar la estructuración del código HTML.

  • <!DOCTYPE HTML>. La nueva declaración del tipo de documento, mucho más simple, mucho más clara y actualmente ya soportada por los navegadores más usados.
  • <section>. Representa una sección genérica, Puede ser usada junto a <h1>-<h6> para indicar la estructura del documento.
  • <article>. Representa un fragmento de contenido, como una entrada de blog o un artículo de periódico.
  • <header>. Representa la cabecera de la página. La parte típica donde colocamos un logotipo, un banner…
  • <footer>. Igualmente han creado una etiqueta para la parte inferior de la página donde se suelen mostrar, créditos, copyright, el about, los enlaces a redes sociales…
  • <nav>. Sección de la página en la que se integra la navegación.
  • <dialog>. Puede ser usada para marcar la existencia de un diálogo.
  • <video>. ¡Podemos insertar vídeos!. Permite añadir un elemento de vídeo con su barra básica de navegación.
  • <audio>. Igual que el vídeo pero para elementos de audio.
  • <canvas>. Crea un elemento mediante el cual por medio de javascript podremos dibujar sobre el documento. Por ahora solo en 2d.
  • <wbr>. Marca el lugar en el que una palabra puede ser cortada o dividida en caso de que el navegador lo crea necesario.
  • <section contenteditable=”true”>. Permite que un contenido sea editable directamente por el usuario.
  • <svg>. Inserta un elemento svg, para integrar imágenes de tipo vectoriales con código svg (xml).
  • <time>. Indicará a cualquier indexador que el contenido de la etiqueta es una fecha.
  • <time datetime=”2012-04-18″>. Indicará al indexador que el contenido de la etiqueta corresponde a la fecha indicada en el atributo. podemos escribir algo así… <time datetime=”2012-04-18″>Hoy</time> es mi cumpleaños.
  • <### itemscope itemtype=”*”>. Permite integrar tipos de datos reconocibles por indexadores. Podremos por tanto indicar que estamos tratando con un tipo de dato “persona” y marcar en cada uno de los textos varios valores como <span itemprop=”name”>Eduardo</span>, <span itemprop=”nickname”>Ikito</span>
  • <input type=”text” required/>. Marca un input como requerido en un formulario. Podremos darle un estilo y que por ejemplo se remarque en rojo.
  • <input type=”***”>. Se crean nutos tipos, tales como “email”, “date”, “number”, “url”, “range”. Son validados en el cliente sin necesidad de javascript y en muchos casos el elemento input tiene un diseño especial, por ejemplo, el “date” despliega un calendario.
  • <**** draggable>. Marca un elemento como “arrastrable”, una nueva API que tendremos que estudiar.
Hay mucho, mucho más y la explicación de cada uno de los elementos podría ser mucho mas extensa. Por ahora lo dejo aquí, dando paso a una nueva serie de entradas en las que iré tratando cada uno de los elementos por separado si alguno resulta interesante.
Enlaces de interés:
Diferencias entre HTML4 y HTML5

Sumar días a una fecha en PHP

By , 13/04/2012 11:27

Las fechas… ese gran problema. El último problema consistía en sumar días a una fecha dada… Seguramente tengamos veinte maneras de conseguirlo de una forma más o menos cómoda. Para mi esta es la mejor:

$fecha_final= date("Y-m-d", strtotime("$fecha_inicio + 1 days"));

Tenemos la fecha de inicio, la pasamos a formato Año/mes/día y le sumamos un día. Simple y rápido.

Problema con el feed de wordpress

By , 31/03/2012 10:38

Llevaba meses con un problema en el feed del blog. Parece que por algún, desconocido por ahora motivo, ciertos plugins o temas tocan algunos archivos importantes que se utilizan en la generación del rss. En concreto mi problema era que tenía algunos saltos de líneas por medio y eso hace que el XML no este bien formado y por tanto sea totalmente inútil.

En primer lugar vamos a este sitio. http://feedvalidator.org/, podremos validar nuestro XML y ver que tipo de problema tenemos con él. Aporta algunas soluciones entre ellas la más común… Mirar en multitud de archivos del blog para ver si se ha insertado algún salto de línea.

En mi caso fue algo más que sencillo… Simplemente editar el archivo wp-includes/feed-rss2.php y quitar un par de saltos de línea… Dos meses dándole vueltas y al final era una chorrada… Es lo que tiene no tener tiempo jeje.

Redes sociales en la educación on-line

By , 28/03/2012 17:40

A través de @soniconp llego a este magnífico artículo  de PuroMarketing.

Os cito algunos fragementos:

“Tanto profesores como alumnos se pueden beneficiar de las posibilidades de las Redes Sociales, a unos facilitándoles la labor docente, y a los otros, facilitándole el proceso de aprendizaje al tener, entre otras cosas, acceso directo a su profesor para poder preguntarle dudas.

El uso de Facebook, por ejemplo, puede ser muy beneficioso para alumnos y docentes. Los profesores pueden colgar en la red social las tareas a realizar, y los alumnos, además de acceder a ellas en cualquier momento, tienen una vía abierta con el profesor, sin contar también con que de esta manera pueden compartir con los compañeros cualquier recurso que necesiten.”

“Por otro lado, gracias a las Redes Sociales los profesores también pueden compartir entre ellos recursos educativos, experiencias, ideas e incluso materiales, ya que existen plataformas especialmente dirigidas a ellos…”

Llevo casi un año trabajando precisamente en tratar de incorporar y asemejar una plataforma de e-learning en la medida de sus posibilidades a la estructura de una red social. Partiendo de una base original como Dokeos y con muchísimos añadidos, mejoras, correcciones… fruto del aprendizaje y del trabajo continuo en grandes planes de formación hemos finalizado un producto propio.. y ¡Opensource!.

La nueva plataforma Didakos 2.0 incorpora además de, como ya he dicho multitud de mejoras, una nueva estructura que permite a formadores y alumnos interactuar entre ellos en un formato similiar a Twitter o Facebook con un Timeline en el que se pueden ver las acciones  e interacciones de todos los participantes. A esto se le añade la posibilidad de integrar el Timeline de Twitter y Facebook (mediante app’s Oauth) , publicar desde la misma plataforma o enviar mensajes a las redes sociales cuando obtienes, por ejemplo, un 10 en un examen.

Por tanto mi respuesta es SI, no solo las redes sociales son válidas en procesos de formación sino que creo deben estar siempre presentes ya que aunque muchos son reacios a ellas y solo ven un elemento de distracción a mi entender constituyen una fuente inagotable de conocimientos, recursos, noticias y sobre todo RELACIONES alumno-tutor, alumno-alumno y por qué no en un futuro quizás amigo-amigo.

Montar un servidor de Minecraft en casa Parte 3

By , 12/03/2012 12:07

Venimos de aquí… Montar un servidor de Minecraft en casa Parte 2

Hemos terminado de preparar una máquina linux y tenemos el sistema funcionando perfectamente. Tenemos el router preparado para que redirecione los puertos. ¿A qué esperamos?. Vamos a empezar con el juego.

Tenemos dos opciones, utilizar directamente el servidor original de Minecraft o en nuestro caso utilizar bukkit. Bukkit es una extensión de Minecraft, una comunidad de desarrolladores que ha generado una “api” que permite implementar modificaciones sobre el juego original y que cuenta con montones de plugins que hacen mil y una maravillas.

Caso 1. Servidor de Minecraft Normal.

Descargamos el servidor desde la página de Minecraft, y lanzamos (¡Así de fácil!):

:~$ java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui

Caso 2. Servidor Minecraft con Bukkit.

Descargamos la última versión del Bukkit, descomprimimos y metemos en una carpeta para no mezclar archivos. Dentro de la carpeta creamos el archivo craftbukkit.sh e insertamos el siguiente código:

cat > craftbukkit.sh << EOF
#!/bin/sh
BINDIR=$(dirname "$(readlink -fn "$0")")
cd "$BINDIR"
java -Xmx1024M -Xms1024M -jar craftbukkit.jar
EOF

Nos aseguramos de que el archivo sea ejecutable y lanzamos:

:~$ chmod +x craftbukkit.sh
:~$ . craftbukkit.sh

En cualquiera de los dos casos recomiendo para el servidor, con la instrucción “STOP” y modificar el archivo de propiedades con los valores deseados

Montar un servidor de Minecraft en Amazon EC2

By , 10/03/2012 00:26

El puñetero juego Minecraft. (¿No sabes que es?… Rápido… ¡Sal de aquí!. ). Después de jugar mucho en partidas locales pensamos que sería algo interesante tratar de montar un servidor en el que pudiéramos jugar en conjunto, esto añadiría un plus de diversión seguro. Así que me puse manos a la obra. Mientras trato de montar algo más complejo en mi propia casa con un pc antiguo (ver: Post) decidí mirar por encima como funciona todo el tinglado que tiene montado Amazon (Amazon Elastic Compute Cloud Amazon EC2) ¿De que se trata?. En resumidas cuentas es un servicio web que proporciona capacidad informática con tamaño modificable en la nube. Puedes levantar máquinas para cualquier tipo de tarea imaginable en minutos, modificar el uso de recursos, el sistema operativo, el uso de micro… Todo desde un panel de administración.

Como añadido, Amazon tiene un detalle con sus nuevas altas. Descuentan 12 meses completos de ciertos servicios muy básicos… Más que suficientes para pruebas o pequeñas aplicaciones web. En nuestro caso Minecraft.

La capa de uso gratuito de AmazonEC2 incluye para los nuevos cada mes y durante un año los siguientes servicios de EC2:

  • 750 horas de uso para la ejecución de instancias Linux/Unix Micro en EC2
  • 750 horas de uso para la ejecución de microinstancias Microsoft Windows Server en EC2
  • 750 horas de Elastic Load Balancing más 15 GB de procesamiento de datos
  • 30 GB de Amazon Elastic Block Storage (EBS) más 2 millón de E/S y almacenamiento de instantáneas de 1 GB
  • Se añaden 15 GB de ancho de banda saliente en todos los servicios de AWS
  • 1 GB de transferencia de datos regional

El proceso para darse de alta es muy sencillo y aviso… Es necesario dar los datos de una tarjeta de crédito. Entramos en la página de inscripción y seguimos todos los pasos indicados. Llegado el momento tras pedirnos la tarjeta de crédito Amazon hace un test para verificar la tarjeta. según me han comentado te retienen 1$ unos dias.

Si todo ha ido bien tendremos acceso al panel de control insertando nuestro correo y el password, en el menu de usuario vamos a “AWS Management Console” y lanzamos la aplicación.

Temas de dinero… Mucho cuidado con esto. Amazon no crea una cuenta gratuita capada, Amazon te da acceso a TODOS sus servicios y luego te descuenta lo que te regala. Si somos muy manazas y no prestamos atención podemos lanzar una máquinón que gasta 1500€ al mes. Por tanto, ¡Mucha precaución!.

Una vez logados en la consola nos vamos a la pestañita “Amazon EC2″. Elegimos la región que mejor nos vena por cercanía… En teoría la más cercana y más rápida debe ser la de “EU WEST Ireland”. Y vamos a crear la instancia.  Pulsamos sobre el botón de “launch instance”. Insertamos nombre de la instancia, creamos un juego nuevo de Key pair (llaves de acceso) y seleccionamos la Ami que queremos levantar. En nuestro caso hemos optado por una Ubuntu Server 11.10. Deberemos descargar el archivo del “Key Pair” Guardadlo como Oro en paño, si lo perdemos perdemos las instancia.

Posteriormente pasamos a una página de configuración en la que no tendremos que configurar nada, tan solo asegurarnos de que el tipo es Micro.

Una vez terminado le damos a “Launch”. La máquina tarda unos 10 minutos en estar operativa, una vez esté lista podremos verla en el listado de nuestras instancias. Podemos ver su estado “running” signo inequívoco de que ya está lista.

Ahora tenemos que configurar un par de aspectos extras, en primer lugar tenemos que añadirle un grupo de seguridad. Viene a ser como cuando tocamos los puertos del Router, pero en este caso lo que hacemos es abrirle puertos y decirle desde que IP’s nos vamos a conectar. Abrimos el puerto 22 y el 25565. Yo he puesto el 80 por si en algún momento monto algo en el Apache.

Finalmente tenemos que asignarle una “Elastic IP”, mucho cuidado que no debemos olvidar que si creamos una IP pero no la asignamos a niguna Instancia Amazon nos cobra un suplemento por tener IP sin usar… No es mucho pero si se nos olvida un mes entero… Puede ser una gracia. Así que una vez creada asignarla inmediatamente.

Bien, ya tenemos la máquina andando y configurada, ahora tenemos que conectarnos por SSH. Amazon nos da varias opciones, bien con Putty desde Windows (Un coñazo), bien por SSh desde linux o bien desde una consolita java que inorporan.  Para conectarnos por SSH a nuestra recién levantada máquina hacemos una conexión por ssh indicando el archivo .pem (previamente descargado desde el panel de Amazon  EC2), usuario y la IP.
ssh -i rutahastael.pem ubuntu@IP

Instalamos Java, ya que la Ami que hemos seleccionado y por lo que he visto prácticamente todas vienen sin Java por defecto.

~$ sudo apt-get install openjdk-6-jre

Una vez instalado Java procedemos a instalar y preparar el servidor de Minecraft, creamos una carpeta y descargamos el servidor en formato jar.

~$ cd /home/ubuntu
~$ mkdir minecraft-server
~$ cd minecraft-server
~$ wget https://s3.amazonaws.com/MinecraftDownload/launcher/minecraft_server.jar

Lanzamos el servidor por primera vez para que genere todos los archivos necesarios. Recordad que estamos en una máquina que solo cuenta con 613Mb por lo que lanzaremos la aplicación con un límite de 512Mb. Una vez termine de iniciarse la detenemos.

~$ sudo java -Xmx512M -Xms512M -jar minecraft_server.jar nogui
stop

** Atención! (Actualización). Con 512Mb la máquina parece que no tira bien con más de un jugador. Hemos probado a bajarlo a 256Mb y parece que hasta con 4 o 5 jugadores tira bastante bien.

Editemos el archivo de preferencias… Hay muchas posibilidades aquí así cada uno puede lo configurar a su gusto.

Para vigilar el gasto en ancho de banda, procesador y demás aspectos podemos utilizar las estadísticas que nos genera casi en tiempo real el panel de Amazon EC2, recordad que hay ciertos límites que si son sobrepasados nos serán cargados en la tarjeta.

No he realizado aun una prueba de uso real, lo más que hemos hecho ha sido conectarnos dos al mismo tiempo. Pude ver que el micro se ponía al 50% con el primer jugador y al 100% con el segundo y que el consumo de datos podría ser de unos 4 o 5 mb por hora. No son datos muy fiables pero… Trataré de hacer una prueba más seria.

Montar un servidor de Minecraft en casa Parte 2

By , 08/03/2012 12:44

Venimos de aquí… Montar un servidor de Minecraft en casa Parte 1

Comenzamos con nuestro pequeño proyecto. Tenemos una máquina preparada (AMD 3100 2Gb Ram) y un DVD con una Debian 64Bits, en concreto una Debian 64 Bits 6.04 Stable . Comenzamos con la instalación siguiendo todos los pasos, bastante bien explicados durante todo el proceso. En mi caso una vez finalizada la instalación me encontré con un problema ya conocido que me parece tiene algo que ver con mi viejete PC… Que no anda muy bien ya el pobre. El caso es que el sistema de arranque no me funciona y cada vez que hago una instalación tengo que recuperarlo. Misterios de la Informática. Durante la instalación hay un momento en el que te pregunta por ciertos servicios, en mi caso activé la instalación de MYSQL, APACHE, SSH-SERVER. No es necesario hacerlo aquí, pero mejor esto a tener que instalarlos después a mano. Una vez finalizada la instalación entramos en la nueva máquina y configuramos el acceso a internet, en mi caso mediante wifi.

Esta misma madrugada he estado peleando con el SSH-SERVER, para poder acceder a la máquina desde fuera de mi red. Internamente no he tenido problemas, simplemente editamos el archivo de configuración.

Nos logamos como root

yo@server:su

Por si no lo tenemos instalado…

yo@server: apt-get install openssh-server

Editamos el fichero de configuración…

yo@server: nano /etc/ssh/sshd_config 

Nos aseguramos de que el puerto sea el 22, de que tengamos el acceso abierto a todas las IP’S (ListenAddress 0.0.0.0) y poco más. No voy a entrar en temas de seguridad, si alguien es un mijita de la seguridad sabrá como configurar esto para que sea mucho más seguro.

Nos peleamos ahora un poco con nuestro router, en primer lugar la IP de la máquina recién intalada es fija. En mi caso le he asignado la 192.168.1.130 para no tener que andar reconfigurando nada en el futuro, por lo que nos vamos al router y tenemos que ir a la parte de NAT. Allí le diremos que todas las peticiones que vengan al puerto 22 las redirija al puerto 22 de la IP 192.168.1.130. En mi caso tuve una gran pelea a muerte con el router (COMTREND) porque parece ser que utiliza dicho puerto para comunicaciones propias, al añadirlo al NAT saltaba un mensaje diciendo que cambiaba sus comunicaciones al puerto 2222… Pero no… No era cierto. tras varias horas haciendo mil y una pruebas lo dejé por imposible. Esta mañana ha comenzado a funcionar de forma mágica. Me imagino que se habrá reiniciado solo esta noche. algo que no hice ayer por agotamiento extremo.

Paralelamente a esto estoy probando con Amazon, solucionado el problema con mi tarjeta de débito. Parece que voy a tener que documentarlo todo en próximas entregas.

Fechas en texto con PHP y primera letra en mayúscula.

By , 07/03/2012 12:37

Puede parecer una tontería pero PHP no ofrece a primera vista (al menos) una forma cómoda de obtener fechas en modo texto.

Este código devuelve el formato de fecha en texto:

echo (strftime('%B de %Y')) 

Devolvería:  marzo de 2012

Poner la primera letra en mayúscula es muy simple

echo (ucfirst(strftime('%B de %Y'))) 

Recordaremos que en Español los días de la semana y los meses van en minúscula… No como en otros idiomas, de ahí que a veces tengamos confusiones. En este caso concreto el mes inicia la frase, de ahí que la “capitalicemos”. Si tuvieramos el mismo problema en inglés, donde si que se capitalizan los días de la semana y los meses podría hacerse algo así:

echo (ucfirst(date('l')) . ucfirst(date(' F \of Y'))) 

Devolviendo algo como esto: Wednesday March of 2012

Montar un servidor de Minecraft en casa Parte 1

By , 06/03/2012 10:36

Este post y los que le siguen nacen del profundo vicio en el que se ha convertido para mi y algunos amigos el puñetero juego Minecraft. (¿No sabes que es?Rápido¡Sal de aquí!. ). Después de jugar mucho en partidas locales pensamos que sería algo interesante tratar de montar un servidor en el que pudiéramos jugar en conjunto, esto añadiría un plus de diversión seguro. Así que me puse manos a la obra. Iremos por partes:

- En primer lugar necesitamos un ordenador... Lo ideal es un PC que no estemos usando, ya que el servidor de Minecraft en versión java exige bastante y no queremos que la partida se vea ralentizada o entorpecida por factores externos. En mi caso se trata de un Pc de sobremesa fruto de la unión de todas las piezas que han ido sobrando de anteriores PC’s. Un AMD 3100+, 2 Gb de Ram, Tarjeta gráfica Ati de 128 Mb, 160 Gb de disco y tarjeta Wifi. En principio pienso que será más que suficiente.

- Evidentemente necesitamos una conexión a internet, en mi caso JAZZTEL de 6 Mb. Y unos pequeños ajustes en nuestro router para redirigir y permitir ciertas entradas/salidas a algunos puertos. – Sistema operativo… Linux sin dudar (It’s free!). Más complejo, más complicado, pero mucho más eficiente en todos los aspectos que cualquier Windows que pueda meterle a esta máquina. Con windows Xp en todo caso… No he probado, pero dudo que se acerque al rendimiento de una máquina Linux dedicada. En mi caso por facilitar un poco la tarea me he decantado por una Debian de 64Bits, aunque lo realmente ideal hubiera sido una versión server… Pero como no me manejo a nivel experto en este tema he optado por una versión de escritorio que facilita mucho ciertas tareas y además permite que en un momento dado pueda darle algún otro uso a la máquina.

- Extras… Para que nos vamos a engañar, a uno le gusta liarse por naturaleza así que pretendo complicarlo todo lo posible y más allá.

  1. Pretendo añadirle algún servicio tipo dyndns, para no tener que andar avisando a todo el mundo cada vez que me cambien la IP. Por lo que optaremos por crear algo del estilo nombre.dyndns-home.com que redirija a la IP que mi router tenga en cada momento. Dyndns tiene un cliente que actualiza la IP continuamente por lo que haciendo referencia a este Hostname iremos siempre a nuestro Router.
  2. Añadiremos algún tipo de extra a Minecraft, por sencillez hemos pensado en Bukkit, que genera un entorno sencillo y una enorme comunidad que ofrece cientos de plugins para mil y una chorradas en el juego.
  3. Una web ligera. En la misma máquina que permita obtener información detallada del estado del servidor de Minecraft y si fuera posible que permita algo de administración remota.
  4. Acceso al servidor por SSH que mediante el uso de SCREEN permita administración remota del servidor y del juego. En nuestro caso somos más de un informático por lo que puede ser necesario que varias personas puedan andar trasteando en la máquina.
  5. Una base de datos MYSQL. No es imprescindible pero creo recordar que algunos de los plugins de Bukkit se pueden apoyar en una BBDD.

Esto es todo por ahora. Iré actualizando mis avances.

Yo soy tu padre…

By , 01/03/2012 13:16

Por eso pase el tiempo que pase esta saga será siempre mítica.

Panorama Theme by Themocracy