Números

Si te has fijado, la edición actual de mi libro sobre PHP y MySQL no incluye ningún número de versión en el título, y no es por casualidad. Sin embargo, cuando este libro vivía en árboles muertos sí que aparecían, tanto para PHP como para MySQL.

Los números de versión suelen estar presentes en las portadas por varias razones. La primera de ellas, para que el lector sepa qué esperar del contenido, para que esté seguro de que lo que encontrará en el interior será aplicable al software con el que va a trabajar. No es frecuente que busques un libro de PHP 5 cuando necesitas trabajar con la versión 7.

Sin embargo, la mayoría de las veces no es más que una excusa para que el libro quede totalmente obsoleto en cuando aparezca una nueva versión del software sobre el que versa. Si en el mismo estante hay un libro sobre PHP 5 y otro sobre PHP 6, te compras este último, ¿no? Incluso aunque PHP 6 no exista. En realidad, si existiese, es muy posible que ambos libros tuviesen prácticamente el mismo contenido.

En cuando aparece una nueva versión de un software las editoriales necesitan actualizar también los libros, aunque sólo haya que cambiar un número por otro. Se trata de algo muy frecuente en los manuales de introducción, donde sólo se cubren las bases del software en cuestión. Raramente un cambio de versión implica uno drástico de contenidos, aunque algo es cierto: los lectores somos muy caprichosos y, obviamente, no vamos a interesarnos por un libro desfasado. Las editoriales hacen lo que necesitan para sobrevivir.

Es uno de los lastres del mundo analógico que no tiene sentido en el digital y que, aún así, se está intentando mantener de forma artificial.

La principal razón por la que mi libro sobre PHP y MySQL no incluye esos números de versión en el título es porque no te quiero vender el mismo libro una y otra vez. Éste es el que necesitas. Y cuando haya cambios lo suficientemente importantes actualizaré los contenidos en cuanto me sea posible. Y si la plataforma en la que lo publico lo permite recibirás una actualización, porque ya compraste ese libro.

Y si no lo permite tendré que pensar cómo solucionarlo…

Hagamos un trato

Leyendo la versión actual de mi libro sobre PHP y MySQL hay algo que me llama mucho la atención: trato al lector de usted. Sólo con eso ya estoy poniendo una barrera artificial entre él y yo, y no tiendo muy bien con qué objetivo.

Se trata un lastre que arrastro desde las primeras ediciones de este libro, una imposición de la editorial con la que comencé a publicar. Creo que tratar al lector de tú, trataros con un poco más de cercanía, no hace mal a nadie: todo lo contrario. La lectura del libro podría resultar mucho más sencilla y amena con un lenguaje más natural. Así que no se hable más, os voy a tratar de tú.

Por otra parte, me he fijado en otro detalle relacionado: la manera en la que me trato a mí mismo, usando el plural mayestático. No es una cuestión de falsa modestia, siempre he preferido hacerlo así porque mis libros eran el resultado de un esfuerzo de equipo, aunque yo lo escribía había editores, revisores, maquetadores y muchos más responsables de que el libro se imprimiese y llegase a las manos de los lectores.

Esto ya no es así ahora que me encargo yo de todo… bueno, de casi todo, lo que no puedo hacer lo dejo en manos de Apple y Amazon. Así que voy a dejar de repartir culpas y tomar la responsabilidad del libro, donde éramos nosotros pasaré a ser yo.

Lo sé, se trata de cambios relativamente nimios: lo que importa es actualizar el contenido para que sea totalmente vigente, pero también tengo que estar contento con el resultado final, y creo sinceramente que estos pequeños detalles cuentan.

Actualizando PHP y MySQL

A finales de 2012 publiqué mi primer libro autoeditado. Aunque ha pasado algún tiempo desde entonces, la mayoría de su contenido sigue siendo útil. Por desgracia, hay algunas partes que necesitan una revisión.

Así que voy a ponerme manos a la obra. No sólo actualizaré aquello de lo que algunos se han quejado (con o sin motivo), aprovecharé para realizar algunos cambios sobre aspectos que me incomodan enormemente. A medida que me ocupe de ellos os lo iré contando.

Además, me gustaría dejar atrás algunos lastres que venimos arrastrando, herencia de publicar en papel. A veces hacemos las cosas porque sí, porque se han hecho siempre así y “por algo será“. Quizá sea el momento de intentar cambiar algunas de ellas.

Es inevitable que, a medida que vaya trabajando en la nueva versión, surjan ideas. De hecho, ya he tenido alguna bastante descabellada. Trataré de compartirlas desde aquí.

Las tres leyes de Lozano sobre las mudanzas

Primera ley de Lozano:
En una mudanza las cosas a empaquetar siempre superan a las cajas de cartón que has comprado. Por muchas que sean.

Segunda ley de Lozano:
En una mudanza el contenido de una habitación siempre supera a los metros cúbicos de esa habitación.

Tercera ley de Lozano:
En una mudanza, a igualdad de tamaño, el contenido de la habitación de origen no cabe en la habitación de destino.

Corolario: Incluso si la de destino es más grande que la de origen.

El color de XML

Hay quien se pregunta “¿A qué huelen las nubes?”. A mí me gustaría saber de qué color es XML.

Primero he mirado en los iconos que se suelen utilizar para representar este tipo de documentos y no he encontrado ninguna respuesta contundente. Para algunos es verde, para otros naranja, otros creen que es rojo.

Y como este camino, las búsquedas en Google, no me llevaba a ninguna parte, he tratado de ser un poco más creativo.

Seguro que ya sabrás que una de las formas de representar un color en un sistema informático consiste en descomponerlo en tres valores, uno para el rojo (red), otro para el verde (green) y un tercero para el azul (blue). En esta representación, que se conoce como RGB (de Red, Green, and Blue), cada componente puede tomar valores entre 0 (negro) y 255 (blanco).

Por otra parte, los caracteres se pueden representar utilizando el código ASCII que, casualmente, va del 0 al 255. Así, la X toma el valor 88, la M el 77 y la L el 76.

El color del XML podría ser el que se forme al combinar el valor 88 como rojo, el 77 como verde y el 76 como azul. Y el resultado es…

…bastante anodino. Está muy cerca del gris porque los tres valores (88, 77 y 76) están próximos. No me convence, pero creo que éste es el camino. Mientras no separe estos valores entre sí, cualquier alteración que haga va a dar un gris, más o menos claro. Así que voy a intentar distribuirlos entre el 0 y el 255 para que no estén tan próximos y el color resultante no sea tan monótono.

Volvamos a la tabla ASCII. De entre todos los caracteres representables vamos a centrarnos en las letras mayúsculas, que van del 65 (la A) al 90 (la Z). Quiero que la A se corresponda con el negro (0) y la Z con el blanco (255). Con estas premisas, se tiene que dar que:

  • Para la A: (65 - 65) * x = 0
  • Para la Z: (90 - 65) * x = 255

Por lo tanto:

x = 255 / (90 - 65) = 255 / 25 = 10,2

Así que:

  • X: (88 - 65) * 10,2 = 234,6
  • M: (77 - 65) * 10,2 = 122,4
  • L: (76 - 65) * 10,2 = 112,2

Aproximando a los valores enteros, el color resultante sería:

No es que sea mi favorito, pero la conclusión a la que llego es que el color del XML es el #EB7A70. Y por eso es el color de fondo de la portada de mi nuevo libro, que puedes encontrar en iBookstore y en Amazon:

La legitimidad de los Óscar

Dear Academy: Please Do Not Give Eddie Redmayne An Oscar Nomination:

Not that that makes the Golden Globes so much less legit than the Oscars. Which are voted on by the 5,000 members of the Academy, many of whom were famously too old to figure out online voting, and whose organization was itself actually founded by cynical studio heads on the idea that you could distract filmmakers from unionizing by feting them with trinkets and baubles. “If I got them cups and awards they’d kill themselves to produce what I wanted,” Machiavellian genius Louis B. Mayer famously remarked.

Vía @eduo.

El sueño

– El sueño se repite insistentemente, martillea mi cabeza sin piedad. Llego a pensar en él como en un percutor que busca mi cerebro como si de una bala se tratase, con la única intención de hacerlo estallar – los finos labios que pronunciaban estas palabras pertenecían a un rostro con una frente perlada por el sudor con los ojos enormemente abiertos.

Tal rostro reposaba sobre el diván de un doctor con un curioso parecido con Freud, que fumaba una pipa cuyo denso humo inundaba la consulta, dándole un (viciado) aire de misterio. Desde su asiento el doctor vigilaba al paciente, las piernas cruzadas, sujetando con su mano izquierda la pipa, mientras la derecha reposaba en el brazo de la silla.

– ¿Estallar?

– El sueño me deja agotado. Ese sueño… – una pausa. El doctor aprovechó la oportunidad.

– Cuénteme el sueño.

– Aparezco de la nada. Me encuentro en un lugar muy extraño, resulta imposible diferenciar cielo y tierra. Es como si caminara dentro de de una nube, pero pudiera ver un infinito espacio a mi alrededor. Me siento tranquilo, y como no tengo nada que hacer, me pongo a caminar – su tono de voz dejaba notar su tranquilidad. No sé cuánto tiempo transcurre hasta mi encuentro con ella.

– ¿Ella?

– La mujer. La única mujer. Mi única compañera.

– ¿Cómo es su encuentro con ella?

– Aparece por detrás de mí. Está totalmente desnuda. Tiene los párpados cerrados. Me sonríe. Yo sonrío también. Pero me doy cuenta de que está dormida, así que intento despertarla. La llamo, pero mi voz es callada por un rugido como de olas que surge de todas partes. Impotente, la agarro por los hombros y la agito, primero con suavidad, luego con violencia. Al ver que no reacciona, desisto, y la suelto. Es entonces cuando me doy cuenta de que yo también estoy desnudo. Vuelvo a pronunciar su nombre. Esta vez nada molesta mi llamada, y ella comienza a abrir sus párpados muy lentamente. Pero algo no va bien. De sus vacías cuencas la sangre comienza a brotar, deslizándose espesamente por sus mejillas. Caigo de rodillas ante ella, y al tiempo que alzo los brazos al cielo GRITO, y mi grito la atraviesa, rompiendo su cuerpo en mil pedazos. Sus restos son trozos de un espejo. En ese momento me invaden a la vez – y mientras el paciente lo decía se reflejaba en sus facciones – el miedo, la desesperación, la pena, el dolor. No puedo evitar salir corriendo. Mientras corro me repito a mí mismo: “Esto no es cierto, no es más que un sueño, no puede ser verdad”.

– ¿Por qué piensa que es un sueño en ese momento?

– Porque mientras estoy despierto nunca la he encontrado. Sé cómo es, pero no sé dónde está. Y cuando por fin la encuentro la dicha que siento no la puedo expresar con palabras, al igual que no hay modo de decir lo que siento cuando me la arrebatan de las manos. En ese momento, al pensar que todo es falso, sé que no puede tratarse más que de un sueño, de una pesadilla. Así que, cuando mi carrera me lleva al borde un acantilado, a mi mente acude la idea de tirarme, quizá recordando que siempre que en un sueño caigo desde mucha altura despierto antes de golpear el suelo.

– Quizá porque no es capaz de soportar tanto dolor como le causa el haberla perdido y quiere buscar la muerte. ¿Se decide a saltar?

– Sin dudarlo. El vuelo no dura mucho porque la velocidad a la que me precipito contra el pie del acantilado es mayor de lo que yo pensaba que sería. Y justo cuando voy a romperme en las rocas del fondo del acantilado, cuando creo que voy a despertar sudando en mi cama, aparezco vestido con una extraña chaqueta blanca, en el interior de un corredor blanco, alicatado por todas partes. El más absoluto silencio reina en él. El corredor parece no tener final. Me doy la vuelta y tras de mí hay una enorme puerta de madera entreabierta. Me dirijo a ella, la abro…

– Y esa es la puerta por la que usted entra en mi consulta.

– Así es.

La verdad

Los dulces siempre fueron un problema para mí. Desde joven mi enfermiza pasión por ellos me llevaba a un sinfín de problemas (cuya narración, lo siento, no tendrá lugar en este día), e incluso llegué a pensar en seguir algún tipo de tratamiento para apartarme de su maldito influjo. ¡Qué poco sospechaba yo que su poder sobre mí me conduciría al mayor de mis descubrimientos! Ese es el motivo por el que hoy estamos aquí, charlando. Pero antes de comenzar, pónganse cómodos, caballeros. Esta historia no puede ser digerida de cualquier modo. ¿Ya? Bien. Hace un mes…

Andaba yo por las calles de Cáceres en desesperada búsqueda de una pastelería abierta. Mis fuerzas comenzaban a flaquear tras (no lo podía creer) doce horas sin nada que endulzara mi existencia. No, no me refiero a eso. Hablo de pasteles, dulces, ambrosía para mí. Creía perder la vida, pero cuando ésta parecía abandonarme, allí estaba ella, como una diosa: La Madrila-Pastelería. “¡Salvado!”, dije para mis adentros. Abrí como pude la puerta y con un esfuerzo sobrehumano supliqué a la dependienta (una muchacha deliciosa, la verdad sea dicha) me diera el precio de las palmeras. No tengo que decir que la dependienta ya me conocía debido a mis múltiples visitas a su establecimiento. Me sirvió la palmera y, tan pronto como me vio recuperar fuerzas, me dijo: “No sé cómo es usted capaz de comer tantos dulces, la verdad”. Yo, en un ataque irreprimible de ironía, repliqué: “¿Quién conoce, en el fondo, la verdad?”. Fue entonces cuando empezó este misterioso asunto del que les quiero hablar.

Tan pronto hube pronunciado estas palabras, sus demasiado abiertos ojos llamaron mi atención. Denotaban una sorpresa similar a la que se tiene cuando alguien a quien crees semejante a ti, de repente dice no conocer algo a lo que tú estás acostumbrado desde que naciste. “¿Cómo? ¿No conoce la verdad?”. Su mirada me taladraba. “No”. Intenté dar a mi voz un tono suave, pero su pregunta me había desarmado. Ese sorprendido rostro dejó asomar, ahora para mi sorpresa, una desafiante sonrisa, aún más aterradora que su anterior gesto. “¿Te gustaría conocerla?”. Mis labios dejaron escapar un sí mientras intentaba pensar de qué psiquiátrico habían dejado escapar a aquella hermosa jovencita. Porque estaba claro como el agua que esta buena mujer no me estaba proponiendo una lucha dialéctica. Lo que pretendía era presentarme algo que la humanidad intentaba encontrar desde el día de su nacimiento.

Y mientras mis pensamientos se movían por estos caminos, mis piernas y mis brazos intentaban coordinarse para seguir los pasos de esa demente que me indicaba con el índice que la siguiera a la trastienda. Cuando por fin mis torturados miembros se pusieron de acuerdo, entré donde ella me indicaba. El lugar al que me condujo estaba oculto tras una cortina, que ella apartó con su mano izquierda, mientras con la derecha me mostraba el interior del cuarto. A medida que me aproximaba a la habitación la iluminación de ésta aumentaba, hasta que su interior se hizo totalmente visible. ¿Sería posible? Parecía que en el centro de la habitación hubiera un pedestal con la curiosa inscripción “La verdad absoluta”, y sobre éste… Como todos ustedes sabrán, mi vista no es una de mis virtudes, así que hube de acercarme más para poder ver con detalle lo que mi querida pastelera me mostraba. Pero, ¿qué ven mis ojos? Creí desmayarme. Sobre ese pedestal…

No, todavía no. Antes he de hacerles una matización. Todos hemos pensado alguna vez, medio en broma, medio en serio, sobre la existencia de la verdad, sobre si la verdad absoluta existía. Nunca hallé respuesta. Pero hete aquí que mi corazón me decía que hoy la iba a encontrar. No se rían, por favor. No juzguen a un anciano simplemente porque parece decir algo que no son capaces de entender, hijos míos. Esto es de una trascendencia mayor que la que creen. ¿Por dónde iba? Ah, sí. Gracias por recordármelo.

Ejem… sobre ese pedestal se encontraba, flotando, una masa informe de algo que parecía gelatina gris, con un par de ojos negros que miraban al infinito. No había dado más de dos pasos dentro del cuarto cuando se giró sobre sí misma para poder mirarme. Posó sus ojos sobre mí. Dejaban escapar un cierto aire de intranquilidad como cuando un “amigo” se me acerca en un bar para charlar, pero en su mente sólo está el poder llenarse el gaznate a mi costa. Esa cosa (¿la verdad?) me dejó clavado en el sitio. Eso de lo que la verdad estaba hecha comenzó a deformarse bajo sus ojos para mostrar algo similar a una boca. Y tras unos segundos que me parecieron una vida entera, esa boca improvisada comenzó a mover sus toscos labios, como para hablarme. No puedo expresar con palabras lo que sentí cuando “eso” que se suponía era la verdad absoluta inició un intento para comunicase con mi humilde persona. Reconozco que tuve mis dudas sobre la autenticidad de su identidad, pero lo que me hizo me confirmó que me encontraba ante la única, la inimitable, insuperable e inalcanzable verdad absoluta. Esos labios, que con dificultad trataban de formar sonidos, por fin lo lograron. De su boca salió una inmensa pedorreta dirigida a mí. La pedorreta se prolongó por espacio de tres minutos y quince segundos, tiempo tras el cual su boca desapareció y, con media vuelta, volviose de espaldas a mí. Inmediatamente entendí el mensaje que me comunicaba esa generosa entidad.

Me encaminé hacia la salida de la pastelería cabizbajo, pensativo, mientras la pastelera me contaba cientos de anécdotas que no encontraba en absoluto interesantes. Me despedí de ella con la esperanza de que el próximo día que buscara pasteles hubiera otra pastelería que me acogiera en sus brazos. Pero en ese mismo momento una duda sobrecogió mi cuerpo: en esa pastelería me habían mostrado la verdad, y no había sido muy gratificante que digamos. ¿Qué me esperaba en las demás: el bien, el amor, la justicia, o quizá dios? Por si acaso, desde hace un mes no como dulces. Y estoy soportándolo bastante bien. Por cierto, ¿alguien tiene Lacasitos? ¿No? ¿Y un pepito? ¿Tampoco? ¿Donuts? ¿Bolly…

De Orange a Pepephone

Cómo configurar el router SMC7908a-ISP de Orange (antes yacom) para que funcione con Pepephone.

Era naranja. Ahora soy rojo con topitos blancos.Ayer dejé de tener el ADSL con Orange y pasé a tenerlo con Pepephone. Es curioso, porque nunca he contratado nada con Orange, mi línea de teléfono era de yacom pero claro, Orange se la compró, y a mi línea con ella. Más curioso aún es que mi línea de móvil fuese de Simyo y ahora sean (línea y empresa) también de Orange.

El router SMC7908A-ISP de yacom

Podría decir que ha sido el cambio de operadora ADSL menos traumático que he experimentado si no fuese por la jugarreta que Orange me había preparado con el router.

Creo que llevaba 7 años en Orange. Cada cierto tiempo me llamaban para decirme lo buen cliente que era y que por ello querían premiarme con un descuento del 10% sobre la tarifa mensual. Claro que tenía truco: comprometerme a quedarme con ellos un año más. ¡Pues si tan buen cliente soy, si tanto tiempo llevo con vosotros, ¿por qué no me aplicáis el descuento sin condiciones?!

Bueno, pues por esto no quería aceptar esa oferta: para tener libertad de cambiar de operadora cuando llegase una mejor oferta. Y por eso me la hacían: para evitarlo.

Parece ser que eso no era suficiente, también tenían que modificar el firmware del router que me proporcionaron hace ya tanto tiempo, el SMC7908a-ISP, para que no pudiese utilizarlo con ningún proveedor de ADSL fuera de la red de Orange. Por suerte existe un sistema no demasiado complicado para devolver el router a sus ajustes originales.

Advertencia: No me hago responsable de cualquier desastre que pueda ocurrirle a tu router si algo falla. A mí me ha funcionado, pero ése no tiene por qué ser tu caso. Estás avisado.

Así que, sin más dilación, estos son los pasos que debes seguir para poder usar el router SMC7908a-ISP en Orange (antes yacom) con Pepephone:

  1. Lo primero es asegurarte de que tu router sea precisamente ése. Echa un vistazo bajo él, verás algo parecido a esto:Cómo identificar el SMC7908A-ISP
  2. Descarga el firmware original: ya.com-fw-1.00.001-danube-annexa-isdnx-fxox-usb.bin.
  3. Activa el modo de recuperación del router:Los botones necesarios para entrar en el modo de recuperación
    3.1. Apaga el router.3.2. Presiona el botón de reset.

    3.3. Sin dejar de presionar el botón de reset vuelve a encender el router.

    3.4. Pasados unos dos segundos las luces del panel frontal se pondrán como puedes ver a continuación, momento en el que podrás soltar el botón de reset:

    El router, en modo de recuperación

  4. Ahora, el router estará en la IP 192.168.2.1. Conecta tu ordenador al router con un cable ethernet y configura la red de tu ordenador así:Configuración de red
  5. Abre tu cliente web favorito e introduce http://192.168.2.1/ en la barra de direcciones. Verás algo así:Panel de control en el modo de recuperación
  6. Haz clic en el botón Seleccionar archivo y escoge el firmware del router que descargaste anteriormente.
  7. Haz clic en APPLY para instalar el firmware y sigue las instrucciones. Básicamente, que tengas paciencia.
  8. Cuando el proceso de instalación del firmware termine se te informará de ello. En ese momento, haz clic en el enlace Reboot que aparece en la parte izquierda de la página, así reiniciarás el router.
  9. Cuando el router vuelva a estar disponible, tras el proceso de reincio, podrás conectarte a través de la dirección http://192.168.2.1/. La contraseña por defecto es admin.
  10. Haz clic en WAN, luego en VC1 y, por ultimo, introduce los parámetros que te ha proporcionado Pepephone:Configuración con los parámetros de Pepephone

¡Y listo! Espero que estas instrucciones te hayan sido útiles. A mí me hubiese venido bien tenerlas, sin duda.

Este router tiene muchas posibilidades. Lo mismo un día de estos me animo y le pongo OpenWrt.