Tatai from the trenches

Otro de mis pequeños proyectos

Página 5 de 26

XHP: una extensión para escribir PHP de forma distinta

Una de las noticias de esta semana en el mundo PHP es sin duda toda la información acerca de HipHop for PHP por parte del equipo de desarrollo de Facebook. Una de las extensiones que ha salido a la luz por parte del equipo de front-end es la que han llamado XHP y, como ellos mismos rezan, «a new way to write PHP» (una nueva forma de escribir PHP).

La explicación de cómo funciona es muy sencilla. Intentan evitar que al desarrollar la parte de frontal, cuando nos «pegamos» con el XHTML, tengamos que unir código XHTML y PHP. En el ejemplo que muestran se ve más claramente.

De un código como:


 Hello, .

 
What is your name?

Nos da como opción generar este otro:

Hello, {$_POST['name']};
} else {
 echo
 
What is your name?
; }

No voy a negar que, de primeras, XHP parece más sencillo de seguir y de generar. Eliminar los tags de apertura y cierra de PHP aligera el código en gran medida. Además, eliminamos problemas con el XSS así­ como detectar problemas por malformación de XHTML en tiempo de parsing.

A mi personalmente me sigue gustando bastante más usar un motor de plantillas. Un motor real como XTemplates (sí­, he dicho XTemplates, no smarty o similares). Separar el código PHP del HTML me parece bastante importante y necesito verlo con más claridad.

No obstante, hay que seguir el tema de cerca. Si es algo que la gente de Facebook ha visto que es necesario ya que aumenta el rendimiento, es evidente que en este tipo de entornos será uno de los puntos de referencia. Sin embargo, XHP como técnica para el resto de las webs donde no se reciban tantas peticiones como Facebook (si no recuerdo mal, sirven más doscientas mil millones de páginas al mes, sí­, sí­, 200.000.000.000), es posible que un objetivo que cumpla a primera vista es juntar el PHP con el HTML, algo que, repito, me parece bastante "sucio" si no hay una justificación clara. Pos supuesto, un motor de plantillas tiene sus desventajas, no vamos a negarlo 🙂

Lo dicho, XHP de momento me parece algo que puede provocar que el código sea más rápido pero a costa de hacerlo más guarro. Habrá que seguirle la pista para ver por dónde avanza, no lo descarto de primeras porque el objetivo de aumentar el rendimiento es muy importante, pero analizando el coste (ni monetario ni de recursos en este caso, jeje).

Enlaces:

Update: Muy muy muy interesante lo que comenta Rasmus en su web. Importante verlo.

Montaje Velleman k8061

Algunos que se quedaron un poco mosca por algunos twitts que estuve haciendo sobre soldaduras el 6 de enero. Bien, aunque un poco tarde, voy a explicar a qué vení­an esos twitts y como invertimos una parte del Dia de Reyes. Lo que pasó fue que @miritxu y yo estuvimos un buen rato (creo que fueron en total algo más de 4 horas) montando el kit Velleman k8061.

Este kit te permite montar una placa interfaz que tiene 33 entradas/salidas (8 entradas analógicas, 8 salidas analógicas de colector abierto, 8 entradas digitales, 8 salidas digitales y 1 salida PWM a 15,6 kHz) y que se pueden leer en el ordenador mediante USB. Además, la gran ventaja que tiene esta placa es que tiene drivers para entorno Linux, algo que era totalmente necesario para nosotros. Además es extensible ya que se pueden conectar hasta 8 de estas tarjetas simultáneamente al mismo ordenador, multiplicando así­ su capacidad.

Es un kit que montas de cero ya que tienes todos los componentes por separado como se puede ver en las siguientes fotos. Algo que me gustó mucho de este kit es que los componentes vení­an ordenados, así­ no era necesario ir mirando o midiendo cada una de las resistencias, diodos y condensadores, haciendo la tarea algo más fácil.

¡Todo preparado!

Algunos de los componentes

Tení­amos por delante 578 soldadura así­ que… adelante! Algunas fotos del proceso.

Primeras resistencias (avance: 15%)

Así­ queda por detrás (antes de cortar los sobrantes)

Avanzamos con las resistencias

¡Avanzamos! Ya tiene mejor pinta 😉

¡Y por fin, el resultado final!

Así­ queda la placa finalmente

Tras conectarla al ordenador y con el programa de prueba que trae (sólo para Windows desgraciadamente), comprobamos como funcionaban todas las entradas y salidas 🙂 ¡Buen trabajo, todo 100% funcional a la primera!

Ahora toca investigar como hacerlo funcionar en Linux y programarla para nuestras necesidades.

Update: parece que las primeras pruebas con Linux están dando buenos resultados!

Mis promesas/objetivos para el 2010

La verdad es que ya iba siendo hora que los pusiese. Los tengo apuntados y nos los toco desde el 6 de enero, pero en fin (deberí­a añadir no procastinar a la lista? jeje)

Bueno, ahí­ van:

  • Twittear más y de más calidad. Dar más enlaces interesantes.
    • Llegar a los 4750 twitts
  • Postear al menos una vez cada 3 dí­as
    • Esto hace unas 2 veces por semana, 10 veces al mes y 122 al año
  • Aumentar en un 25% el número de visitas y de páginas vistas (según Google Analytics)
    • Comparando el perí­odo 01/01 – 31/12
  • Llevar al dí­a las clases y la corrección de prácticas
    • Nunca más de dos semanas en corregir una sesión de prácticas
  • Leer 5 libros de lectura (no valen temas técnicos)
  • Sigue habiendo kilos de sobra. ¡Más deporte!
  • Jugar a un juego y pasarmelo (¡que es bueno jugar, leñe!)
  • Aprender Android (se valorará positivamente iPhone/iPod, pero como segundo objetivo 😉 )
  • Montar definitivamente mi emisora, bien en el coche (con las antenas móviles) o en casa (por ejemplo con una vertical)
  • Desconectar de todo: internet, móvil, etc durante al menos 7 dí­as seguidos

Yo creo que la lista es buena… ¡a ver en qué queda!

UBA DX Contest SSB 2010 desde la URDE

Como cada finales de enero, es hora del UBA contest, uno de los grandes de 24 horas de duración llevado a cabo desde la Belgium Amateur Radio Society.

Como todas las veces que la URDE se reune para realizar concursos hubo mucha gente, mucha radio y un gran ambiente, todo lo que nos permití­a La Romaleta, jeje.

Yo hice mi aportación de contactos nada más llegar, más de 40 contactos en 40 metros con Roxana que se portó de maravilla, ayudado por Félix EA2PLN al teclado. Dos o tres belgas y mucho italiano.

Félix EA2PLN y Fran EA2DJM al aparato

En ese momento me añadí­ a uno de los varios corrillos de buenos amigos disponibles, Roberto EA2DHA como siempre contando los chistes y las anecdotas acompañado por Amaia EA2OSA, Miriam EA2CWX, Tito EA2HGG y Ana. Por otro lado Felipe EA2MQ y Evaristo EA2BSR preparando las migas para la cena acompañados por los José Mari EA2DDG y EA2ATU.

Contamos además con la presencia de compañeros que se acercaron desde Ejea con los que compartimos una velada muy agradable

La tarde-noche dio para mucho. Vimos como Joaquí­n EA2CCG se pegaba el gustazo gracias a Roxana de contactar en 40 metros con Indonesia y Japón, todo un hito.

La cena, unas excelentes migas de Felipe EA2MQ que habí­a mucho tiempo ya que no cataba y tortilla de patata casera de Ana. Para finalizar, todos pensando que eso era todo, llegaros LOS POSTRES. Sí­, con mayúsculas: bizcocho de nueces casero y las tartas aportadas por la URDE y por los compañeros de Ejea especialmente dedicada como se puede ver en la siguiente foto:

Tarta del UBA Contest 2010

La cena fue muy animada y la radio sólo paró durante ese rato.

Parte de la mesa

La radio tuvo poco descanso

Hasta pudimos contar con la presencia, algo tardí­a de David EA2CTM y la tan esperada XYL Rebeca, ¡presentación que se estaba haciendo de rogar ya! Yo creo que se lo pasó en grande, como no puede ser menos.

En fin, gran tarde-noche en buena compañí­a que dejó muchas risas y buenos momentos. Y algo más de 400 contactos a las 2 de la mañana que seguro que en estos momentos en los que el concurso está finalizando ha crecido. Con ganas de que llegue el próximo concurso para repetir experiencia.

Y aunque algunos se empeñen en cambiar y tergiversar, aquí­ se vive la radio y gozamos de gente amigable y compañera. Nada más lejano de la realidad, nos desvivimos por la radio y no por intereses personales como hacen otros, sacudiendo hacia fuera para que manche a los demás. Todos los presentes lo disfrutaron y así­ será, aunque otros se empeñen en intentar evitarlo. Nos gusta la radio, nos gusta hacer bien las cosas, no podéis evitarlo a pesar de vuestros tongos, ansias de poder, dinero y manipulación. Ahí­ queda.

UPDATE: ya hay más resumenes de la jornada. Blog de Miriam EA2CWX, blog de Joaquí­n EA2CCG, blog de la URDE y unas cuantas fotos!

Trabajar con ficheros a partir de una fecha y hora

Al hilo del post de ayer sobre date, hace poco tuve que realizar un sencillo script que borrase todos aquellos ficheros más viejos que una determinada fecha (en particular, ayer a las 6.30h).

Seguramente habrás pensado que la mejor opción es un find con -atime (o -mtime o -amin o -cmin, etc) y posteriormente con un -exec. Bien, es una buena idea aunque yo querí­a que fuese a partir de un determinado momento exactamente, sin calcular. Para esto, también usé find, pero me apoyé en date y en touch y quedó algo así­:

#!/bin/bash
# La fecha y hora de ayer a las 6.30h
FECHA=$( date +-d "06:30 yesterday" +"%Y/%m/%d %H:%M:%S" )
# Fichero temporal
POINT=$( tempfile -p "point" )
# Cambiamos la fecha del fichero temporal
touch -d "${FECHA}" ${POINT}
# Buscamos ficheros más viejos que ${POINT} y los borramos
find /path/al/destino -not -newer ${POINT} -exec rm {} \;
# Borramos basura
rm ${POINT}

Es posible que sea algo más lioso, pero sin tener que calcular nada (por ejemplo la diferencia de tiempo entre cuando ejecutemos el fichero y nuestra hora objetivo), hacemos el trabajo rápidamente. Y también podemos cambiar la hora de una forma muy cómoda.

Más info

Este «más info» va a ser un claro RTFM 😉

  • man find
  • man date
  • man touch

Ir a una fecha mediante texto

Seguramente os habrá pasado alguna vez que os interesa cierta fecha, digamos por ejemplo «ahora mismo pero hace 3 dí­as» y queréis usarlo en un comando de consola. Pues bien, esto es realmente sencillo gracias a date.

Antes de entrar en detalle, un par de comentarios sobre el comando date. Lo primero es que si escribimos directamente date tendremos algo parecido a esto:
$> date
Sat Jan 2 22:47:41 CET 2010

Ahora bien, si queremos que muestre la fecha y hora en formato numérico (con guiones y dos puntos), tenemos:

$> date +"%Y-%m-%d %H:%M:%S"
2010-01-02 22:50:06

La otra opción interesante, que es la central de este post, es la opción -d. Con esta opción podemos definir el momento que queremos que date muestre y que sea distinto de ‘ahora’. Lo que seguramente no sabí­as es que se puede definir este momento en «modo texto» (en inglés, claro está).

Por ejemplo, si queremos la hora actual, pero hace tres dí­as usaremos:

$> date -d "3 days ago"
Wed Dec 30 22:54:44 CET 2009

¿Y si queremos las 6.30h de la mañana de hace 5 dí­as? Fácil:

$> date -d "06:00:00 3 days ago"
Wed Dec 30 06:00:00 CET 2009

Venga, juguemos un poco más!

¿Qué dí­a de la semana fue hace 1 año, 2 meses y 23 dí­as?

$> date +%a -d "1 year ago 2 months ago 23 days ago"
Fri

¿Es el mismo que hace 449 dí­as?

$> date -d "449 days ago"
Fri

Pues sí­ xDD

¿Las 7.30h de la mañana del pasado lunes?

$> date -d "07:30:00 last monday"
Mon Dec 28 07:30:00 CET 2009

También funciona para fechas futuras.Las 8.00h de la mañana de dentro de dos lunes (cuando se acaban las vacaciones :p):

$> date -d "08:00:00 2 monday"
Mon Jan 11 08:00:00 CET 2010

¿Qué dí­a de la semana será hoy el año que viene?

$> date +%a -d "year 2011"
Sun

En fin, ahora es sólo cuestión de echarle imaginación y tirar de manual y de timespec. ¡ínimo y suerte!

Repaso del 2009

Como es mejorar empezar las cosas por el principio, he decidido hacer el repaso a los pequeños objetivos que me puse para el 2009 como primer post de este nuevo año 2010.

Fueron cuatro y los cito literalmente:

  • Postear al menos una vez cada 3 dí­as (esto hace unas 2 veces por semana, 10 veces al mes y 122 al año).
  • Leer al menos 4 libros (lo sé, deberí­a leer más, pero hay que empezar por algo)
  • Llevar las clases y las prácticas al dí­a (que si no luego es una paliza corregir todo junto)
  • Hacer más deporte sobran unos cuantos kilos que no hay forma de hacer que se emancipen 🙂

Vayamos uno por uno comparando con el resultado final y el repaso que hice a mitad de año.

Primero los datos. El resultado ha sido este:

  • Durante 2009 he escrito 89 posts. Cumplido un 73% del objetivo
  • He leí­do 3 libros completos. Cumplido el 75% del objetivo
  • He llevado las clases al dí­a, aunque no del todo. Digamos que un 75% del objetivo está cumplido.
  • He hecho más deporte, menos del que me gustarí­a, pero ahora mismo estoy en el objetivo de peso que me propuse. Objetivo al 100%

Repasemos ahora cada uno de ellos.

Aunque no he podido cumplir el escribir un post cada 3 dí­as, lo que hecho cada 4. Además, según Google Analytics, durante el año 2009, este blog, Nos pasa algo lo mismo ha tenido el siguiente crecimiento:

  • Visitas: 71,90% más que durante 2008
  • Páginas vistas: 51,58% más que durante 2008

Sinceramente, estoy encantado con estas cifras y no será fácil superarlas este nuevo año. No me dedico al blog y por eso creo que son grandes cifras.

La lectura no ha sido mi fuerte este año. El problema del tiempo ha sido crucial para mi. Aún y todo, he podí­do leer completamente 3 libros:

Lo peor de todo es que contabilizo 5 libros que he empezado a leer y que no he terminado.

El juego de ender, tí­tulo mí­tico que estaba en mi lista y todaví­a no habí­a leí­do, con el que me lo pasé realmente bien aunque quizás los juegos psicológicos de Scott Card no son totalmente de mi agrado, pero sin lugar a dudas, un gran libro muy recomendable.

Camelot 30k es un libro interesante, sobre todo si te gusta la fí­sica y la quí­mica donde irás descubriendo cómo vive y trabaja una nueva raza encontrada en el Sistema Solar que vive a temperaturas cercanas al cero absoluto (-273 ºC).

Manual top secret de gestión empresarial de Dogbert, si te gusta la tira Dilbert, te lo pasarás en grande leyendo este libro orientado a todas aquellas personas que dirigen y gestionan una empresa. En clave de humor irónico, tal y como nos tiene acostumbrados Dogbert, nos explicará paso a paso qué tenemos que hacer y cómo para ser lí­deres en nuestro trabajo.

Sobre el tema de llevar al dí­a las clases, ya quedó todo explicado en el repaso.

Y por último, hacer más deporte. Sinceramente, he hecho menos de lo que esperaba, pero tampoco ha ido tan mal. De nuevo el tiempo ha sido mi gran enemigo. Y no, no vale decir que con más organización se podrí­a, este año ha sido realmente imposible llevar algo de orden y de vida normal. Otros años sí­ que se habrí­a solucionado con organización, pero este era imposible. No obstante, mi gran objetivo era quitarme unos cuantos kilos que me sobraban (me habí­a establecido la meta en quitarme la mitad de esos kilos no emancipados, sin ningún tipo de dieta) y lo he conseguido, por eso este objetivo lo doy por cumplido.

Como resumen, este año ha sido un año muy complicado para mi. Tanto en lo profesional como en lo personal. He tenido mucho contratiempos que han hecho tambalear muchas veces y han sido varias veces (demasiadas) las que he estado a punto de tirarlo todo por tierra y abandonar. Me queda la esperanza de haber sido fuerte y de que la experiencia ganada ha sido importante. No obstante, no quisiera ni creo que pudiera, aguantar otro año como este con tanta tensión, trabajo realizado y malos ratos. Hay que ser fuertes, pero ya he sabido lo que es tocar fondo y esta vez lo he rozado muchas veces.

Es bueno tener muchas cosas para poder hacer, pero es necesario már orden y que una de ellas no te absorba tanto. Ha sido muy importante para mi tener el apoyo personal que necesitaba, aunque sus malos momentos también los ha pasado.

Este año tiene que ser mejor. Lo será y haré el esfuerzo porque lo sea. Peor podrí­a ser muy malo y no estoy dispuesto a ello.

Probando Wibiya

Por recomendación de Mario, estoy probando un toolbar llamado Wibiya. Podéis verlo ya funcionar en esta página, abajo del todo. Acaban de abrir el servicio (hasta hoy era invitacional).

La verdad es que su instalación es muy sencilla en wordpress (tan sólo completar la configuración en su web y añadir un plugin en tu wordpress) y el resultado es bastante bueno. Además, te permite que elijas el diseño que más se asemeje a tu web, algo que es bastante de agradecer y puedes elegir qué opciones quieres que tenga la barra: Twitter, Facebook, traducir, compartir, etc, etc. Hasta puedes ver las visitas que tienes en tiempo real.

El servicio funciona mediante un javascript remoto con lo que tiene la ventaja de que no gasta de nuestro ancho de banda, pero con la pega de que si cae el servicio, la barra no se mostrará.

Una forma muy sencilla de añadir muchos enlaces a redes sociales. A ver qué os parece.

Eliminar entradas en el autocompletado de formularios en Firefox

Seguro que os ha pasado alguna vez que por error habéis metido un texto en un campo de un formulario web que no debí­a estar ahí­. Por ejemplo, la contraseña (o parte de ella) en el campo destinado para el nombre del usuario. Y luego es un problema porque cada vez que escribimos algo en ese campo, aparece ese texto que no queremos como posibilidad (ayuda de autocompletado).

Pues bien, en Firefox es muy fácil de solucionar.

Tan sólo tienes que estar en ese formulario y hacer que aparezcan las opciones, incluí­da la que no quieres. Entonces te pones encima de la opción que quieres borrar con el ratón (sin hacer click) y pulsas la combinación de teclas Shift + Supr (suprimir, tecla que generalmente está encima de los cursores, a la izquierda del teclado numérico).

Por ejemplo, aquí­ vemos el login de Twitter y queremos eliminar la segunda entrada, que está mal.

Debemos ponernos encima con el ratón, pero sin hacer click y entonces pulsar Shift + Supr

Debemos ponernos encima con el ratón, pero sin hacer click y entonces pulsar Shift + Supr

Tras esto, la opción desaparecerá y no tendrás que preocuparte más (hasta que metamos la pata de nuevo, jeje)

Alfabetización tradicional vs. alfabetización internacional

Seguro que alguna vez os habéis preguntado cuál es la diferencia entre alfabetización tradicional o alfabetización internacional. Pues la diferencia es muy sencilla, tan sólo se trata de cómo va a considerar el sistema operativo nuestro lenguaje a la hora de decidir cuál es su orden. En general, la alfabetización internacional intenta hacer justamente eso, internacionalizar el lenguaje siempre que sea posible.

En nuestro caso, en el español, se diferencia entre la ch (como letra) y c + h y también entre la ll y l + l.

Es decir, para la alfabetización tradicional, la ch se considera una letra que va entre la c y la d, lo mismo con la ll, que es otra letra entre la l y la m. En la alfabetización internacional no ocurre esto y las letras no se agrupan. Por ejemplo, si tenemos las siguientes palabras: casa, chapa, cuerpo, largo, llama y lozano, se ordenará distinto:

Con la alfabetización tradicional (la ch y ll como letra):

  • casa
  • cuerpo
  • chapa
  • largo
  • lozano
  • llama

Con alfabetización internacional (cada letra es independiente):

  • casa
  • chapa
  • cuerpo
  • largo
  • llama
  • lozano
« Entradas anteriores Entradas siguientes »