El título de esta entrada es ambiguo, ya que puede interpretarse como que "hacer páginas web es algo que está al alcance de todo el mundo" o como que "hasta al más inútil le dejan hacer una web".
Esta ambigüedad es intencionada, ya que la experiencia me ha demostrado que ambas interpretaciones son correctas, de hecho a menudo la primera implica la segunda.
Y es que claro, aunque cualquiera puede hacer una página web, no cualquiera puede hacer cualquier página web. No es lo mismo hacer un blog en Blogger que programar la web de Facebook.
Por eso, como ya he comentado alguna vez, he visto cosas que jamás creeríais, pero hace poco he visto una de las más impresionantes (en PHP):
Intenté explicar brevemente lo que hacía ese código PHP pero lo dejaré en manos de la habilidad del lector el intentar comprenderlo, que es más sencillo que explicarlo de tan enrevesado que es ese código en tan sólo dos líneas. Innecesariamente enrevesado ya que se podría hacer exactamente lo mismo con:
$quux=$_POST['foo'.$_POST['foo']];
Pero eso no es lo peor. Mientras la segunda opción es perfectamente segura, la primera permite fácilmente inyectar código sin necesidad de muchos conocimientos de programación gracias a ese maravilloso e innecesario eval sin filtrar, bastaría con crear un formulario o modificar el existente (cualquier navegador medio decente ofrece herramientas para modificar el DOM dinámicamente) para que, por ejemplo, el valor de foobar sea éste y la liamos:
Yo era cliente de Vodafone. Y era feliz. Hasta que empezó el acoso.
Empezaron con llamadas perdidas desde un número fijo. Un tono y colgaban. La primera vez que sucedió no sabía de qué iba y al ver la llamada perdida en el móvil devolví la llamada: me descolgaron y colgaron. Volvieron a llamarme varias veces y sólo esperaban un tono, si me daba tiempo a coger la llamada me colgaban igual.
Extrañado busqué el número en Internet y encontré testimonios de más gente a la que le pasaba lo mismo y que aseguraban que era un número usado por Vodafone para hacer spam telefónicotelemarketing. Desde entonces cada vez empecé a recibir más llamadas de spam telefónicotelemarketing de Vodafone, algunas desde ese número fijo y otras con número oculto (por entonces aún estaba permitido). Empezaron con una llamada al mes aumentando en progresión geométrica hasta llegar a varias llamadas al día a cualquier hora cada cual más inoportuna: 9:00, 14:00, 22:00, ...
El caso más curioso fue cuando todavía estaban con las llamadas mensuales y yo todavía les contestaba y tuve una conversación tan curiosa como esta:
Operador: Le llamamos de Vodfone para ofrecerle blablabla...
Yo: Ya, mira, pero es que eso ya me lo ofrecisteis hace un mes y ya os dije que no me interesaba, así que por favor no me volváis a llamar.
Operador: OK, pues ya le llamaremos más tarde.
Yo: No, no, mira, ¡es que lo que quiero es que no me volváis a llamar!
Operador: Ah, vale, vale.
[Fin de la llamada]
No me llaméis iluso, con Movistar funcionó. Pero Vodafone me volvió a llamar al mes siguiente.
Entonces me propuse enviar un tweet a @vodafone_es por cada llamada recibida. A ver qué pasaba, si me respondían o algo. Nada. Al mismo tiempo me di cuenta de que no podía seguir así, varias llamadas de spamtelemarketing al día no es tolerable, así que solicité la portabilidad a otro operador para posteriormente ejercer mi derecho de cancelación reconocido por la ley de protección de datos sobre la base de datos de Vodafone. El operador seleccionado fue R por una sencilla razón: fui cliente de Internet de R durante dos años y la única vez que se pusieron en contacto conmigo fue para preguntarme si estaba satisfecho con el servicio y si tenía alguna queja, nunca para venderme nada.
Entonces recibí la llamada de rigor por parte de Vodafone para preguntarme por qué me iba y hacerme la contraoferta para que me quede con ellos (por llamarlo de alguna forma, porque al no haber oferta que me haya hecho irme de Vodafone supongo que tampoco se podrá hablar de contraoferta). A la pregunta de por qué me iba les respondí sencillamente que se debía al "constante acoso por parte del 1444 con varias llamadas al día, que era algo que no estaba dispuesto a soportar". Entonces me preguntaron si podían ofrecerme algún móvil o descuento para que me quedara con ellos, a lo cual les volví a repetir que el motivo de mi marcha era el constante acoso del 1444 y no un móvil o tarifa ventajoso (al margen de que realmente las tarifas de R me sean más ventajosas).
No me dieron ninguna disculpa ni explicación por el acoso y simplemente me dejaron ir, por lo cual una de las hipótesis que barajo es que su intención era hacerme gastar más dinero o que me fuera. Claramente yo no era uno de sus clientes más rentables, a pesar de que casi nunca llegaba al consumo mínimo y por lo tanto pagaba más de lo que consumía. Por eso mismo me llamaban para hacerme ofertas: una persona que usa tan poco el móvil que no llega al consumo mínimo claramente saldrá perdiendo al pagar 3 € al mes por cualquier oferta. Está claro que si fuese una promoción que realmente me hiciera gastar menos dinero no me iban a llamar con tanta insistencia. Así les va.
Y, ¿a que no sabéis qué? Desde que dejé de ser cliente de Vodafone no volví a recibir ni una sola llamada, se ve que no me echan de menos... ni yo a ellos. Ni siquiera hizo falta solicitar la baja de su base de datos. Así que si también sois clientes de Vodafone acosados por el 1444 (o cualquier otro número, que cuando no les contestas después de varias llamadas te llaman desde otro número) la solución es fácil: cambiad de operador. Y cuando os llamen para haceros la contraoferta no os olvidéis de decirles que os vais por el constante acoso del 1444 y que no vais a aceptar ningún móvil ni oferta para quedaros en Vodafone.
Y ya para finalizar, esta es la lista de llamadas recibidas desde que empecé a anotarlas, antes hubo muchas más:
Bueno, pues con esto inicio lo que espero que sea una pequeña tradición de esta humilde página que dure más del par de entradas que ya tengo en el horno.
Se trata de los debates. Me gusta debatir, discutir, intercambiar opiniones. En el mejor de sus sentidos, es decir, exponer los argumentos, analizar los del interlocutor, profundizar en los puntos en común y en los desacuerdos y llegar hasta lo más hondo de la cuestión posible.
Es decir, todo lo contario de lo que suelen ser las discusiones de bar. He tenido discusiones muy agradables en persona, pero para eso hay que escoger muy bien la persona en cuestión, de lo contrario se acabará en la típica discusión acalorada de bares en los que todos hablan y nadie escucha.
Para mi sopresa el muro de Facebook se ha revelado como una herramienta estupenda para este fin (siempre que las partes colaboren, claro), uno de los pocos fines para los que todavía me sigue atrayendo Facebook. Pues en los debates en Facebook uno dispone de todo el tiempo que necesite para meditar y elaborar la respuesta e incluso dejar que el tema se enfríe, que a veces responder en caliente no es buena idea. Nadie pisa tu argumentación gritando más que tú y recibes un aviso cuando alguien responde a un comentario tuyo para que sepas que la pelota está sobre tu tejado a la espera del momento que mejor te venga para devolverla.
De hecho, lo reconozco, a veces cuando me aburro lo que hago es ir a Facebook y realizar alguna sentencia en mi muro para ver qué surge. Unas veces funcionó y otras no. Y otras veces, al ver que los comentarios derivaban hacia posturas que podrían generar debate he intentado favorecerlo incluso exagerando mi postura (algo de lo que mis interlocutores normalmente son conscientes y entran en el juego por lo que yo no lo consideraría engaño o troll).
Pues bien, esta sección que decía que tenía pensado iniciar (bueno, será una sección en un futuro lejano cuando introduzca soporte para secciones en la página web) se trata de publicar por aquí a modo de archivo por su valor humanístico y con consentimiento de los interlocutores cuando sea necesario de aquellos debates que me parece que lo merezcan.
Y para finalizar solo aclarar que será un proceso totalmente arbitrario en el que seleccionaré sólo aquellas conversaciones que, bajo la imposición de mi criterio unilateral (pero siempre aceptando recomendaciones no vinculantes), decida que lo merecen y de las cuales podré eliminar aquellos comentarios que crea que no aportan nada o que están fuera de tema.
Ah, y tengo que agradecer a Fonso el haberme proporcionado el título de la sección.
El caso es que en un intercambio de tweeets con @dsubies revelé que soy usuario de Opera y él
me preguntó por qué usaba Opera. Como 140 caracteres no dan para muchas explicaciones le dije que le
respondería por aquí. Así que, mucho tiempo después, aquí esta la respuesta.
En los tiempos en los que empecé en esto las únicas alternativas serias que había eran
Internet Explorer (perdón, he dicho serias) y
Netscape Navigator. Poco después descubrí Opera, que incluía interesantes innovaciones como las pestañas, el bloqueador de pop-ups y un gestor de
descargas. Casi al mismo tiempo
empecé a adentrarme en Linux y una de las cosas que más me desesperaban eran el
horrible aspecto,
el incómodo toolkit, que creo recordar que era alguna variante de Athena (esto no lo puedo explicar,
los que lo hayan vivido lo entenderán)
y la inestabilidad del Netscape de Linux. Poco después, al mismo tiempo que Netscape iba muriendo lentamente a manos de AOL, aparecía Firefox que se
caracterizaba por su voracidad de recursos y su lentitud, reforzando mi apuesta por Opera. Si a todo eso añadimos que hasta hace poco yo solía tener
ordenadores que iban varias generaciones por detrás de los actuales, la elección de un navegador ligero no era trivial.
Su capacidad de innovación. ¿Os suenan de algo las pestañas,
el bloqueador de ventanas emergentes,
las sesiones,
el zoom real (y no sólo aumentar el tamaño de letra como hacían otros hasta hace poco)
la sincronización de marcadores (Opera
Link), Opera Turbo,
Opera Unite,
los scripts de usuario, los widgets, los gestos del ratón,
Speed Dial,
los comandos de voz y el texto leído,
las búsquedas personalizadas,
pestañas visuales, ...? Seguro que algunos sí ya que la mayoría ya
han sido incorporados a otros navegadores, ya sea de serie o a través de extensiones, y los que no seguro que los incorporarán en breve. Pero el primer
navegador en el que existieron todas esas características fue en Opera y ¿para qué esperar a que lo copien otros navegadores si en Opera ya lo tienes
disponible?
Aún siendo un navegador muy sencillo para el usuario novato (como me ha demostrado mi experiencia con los usuarios menos entendidos) puede ser un
navegador muy potente para el usuario avanzado
permitiendo modificar de manera sencilla las barras de botones y los menús incorporando incluso
botones y opciones de menú con código JavaScript.
Opciones de sitio, que nos permite personalizar las opciones del navegador
para cada sitio web: hojas de estilo personalizadas (CSS),
identificación del navegador (Opera, Internet Explorer o Firefox).
activar y desactivar para cada sitio característias como
imágenes, sonidos, plugins, popups, bloqueador de contenido, JavaScript y opciones de JavaScript, referers, ...
Y todo esto es lo que trae de serie sin
necesidad de extensiones. Aunque si con esto no nos llega, como ya se ha dicho, se puede ampliar a base de scripts de usuario, widgets y Unite.
Hace algún tiempo compré un libro en PDF. Sí, lo pagué. Se ve que como era un libro que había que pagar les pareció oportuno que yo no pudiera abrir el fichero con cualquier lector de PDFs y que no pudiera seleccionar, copiar o imprimir texto de ese libro, así que lo protegieron con un plug-in propietario de Adobe Acrobar.
Se da la circunstancia de que hoy necesitaba leer ese PDF, así que pensé que tendría que instalar el dichoso plug-in, pero cual es mi sorpresa cuando compruebo que el plug-in ha dejado de desarrollarse (al menos para Linux) y no funciona en versiones actuales de Acrobat y por lo tanto no puedo leer el PDF que pagué.
Al final tuve que crackear el PDF y lo mejor de todo es que tuve que usar una versión antigua de Advanced PDF Password Recovery porque Elcomsoft tuvo que eliminar características de su software debido a presiones de FileOpen. Y no me extraña, viendo lo fácil que fue eliminar la prmtección con APDFPR, queda en evidencia que "soluciones" como FileOpen son inútiles y sólo provocan molestias a los usuarios y pocas ventajas al distribuidor.
La situación es la siguiente: una página web en la que tras acceder con un
nombre de usuario y una contraseña se puede dar de alta a nuevos usuarios y un
usuario que usa Mozilla Firefox con la opción de recordar contraseñas.
El caso: el usuario crea una nueva cuenta o bien accede con una cuenta y luego
edita esa misma cuenta desde otra cuenta
El problema: Al crear la nueva cuenta el Firefox le rellenará los campos con el
nombre y contraseña de la cuenta actual. Al editar la cuenta el Firefox le
rellenará los campos con el nombre y contraseña que se están editando que
también están en el recordador de contraseñas, si el usuario no edita con la
intención de cambiar la contraseña no se fija en que sólo el primero de los dos
campos "Contraseña" y "Repetir contraseña" tiene contenido por lo que al darle a
guardar le dará el error de "Las dos contraseñas no coinciden".
La solución:
Primer intento: cambiar el nombre del campo de contraseña en el formulario de
edición y creación de usuarios para que no coincida con el nombre del formulario
de login:
Problema: mismo resultado, el nombre del campo no era el motivo por el que el
Firefox sólo rellenaba el primer password y no el segundo, parece que sólo busca
el primer campo tipo password que encuentre.
Segundo intento: ocultar los campos de contraseña y en su lugar mostrar la
opción de cambiar las contraseñas que al seleccionarla despliegue los campos de
contraseña.
Problema: parece que Firefox no renderiza correctamente las tablas generadas con
innerHTML ya que el resultado es el siguiente:
Cuarto y último intento: no incluir los inputs de la contraseña en el
formulario, generarlos por JavaScript añadiéndolos a la tabla con
element.insertBefore()
<scripttype="text/javascript;"><!--
function show_pass()
{document.getElementById("tr_chpass").style.display = "none";
var tr_pass = document.createElement('tr');
var tr_pass2 = document.createElement('tr');
var td_label_pass = document.createElement('td');
td_label_pass.innerHTML = "<label for='pass'>Password:<\/label>";
var td_input_pass = document.createElement('td');
td_input_pass.innerHTML = "<input type='password' name='pass' id='pass'>";
var td_label_pass2 = document.createElement('td');
td_label_pass2.innerHTML = "<label for='pass2'>Repeat Password:<\/label>";
var td_label_pass2 = document.createElement('td');
tr2td2.innerHTML = "<input type='password' name='pass2' id='pass2'>";
tr_pass.insertBefore(td_label_pass, null);
tr_pass.insertBefore(td_input_pass, null);
tr_pass2.insertBefore(td_label_pass2, null);
tr_pass2.insertBefore(td_input_pass2, null);
var tr_chpass = document.getElementById("chpass_row");
var parent_table = tr_chpass.parentNode;
parent_table.insertBefore(tr_pass, tr_chpass);
parent_table.insertBefore(tr_pass2, tr_chpass);
}
//--></script><!-- ... --><tr><td><labelfor="user">Username:</label></td><td><inputname="user"id="user"type="text"></td></tr><trid="tr_chpass"><td><labelfor="chpass">Password:</label></td><td><spanid="chpass"style="cursor: pointer; color: blue; border-bottom: 1px dotted blue;"onclick="show_pass();">
Change password</span></td></tr>
A modo de prueba del uso de kprobes para la asignatura de Ampliación de Sistemas Operativos he programado este módulo para Linux que permite ejecutar un comando para cada tecla pulsada así como ver cada tecla pulsada.
Incluye unos scripts de demostración que se pueden usar como el comando que se ejecutará con cada tecla pulsada, estos scripts son:
keylogger
Registra cada tecla pulsada en un fichero.
printscr
Si framebuffer está activado permite hacer una captura de pantalla en consola usando la tecla imprimir pantalla (PrtSc).
typewriter
Reproduce un sonido cada vez que se pulsa una tecla, los sonidos de muestra imitan a los de una máquina de escribir.
El fichero comprimido incluye más instrucciones y ejemplos de uso.
Acabo de poner en marcha un servidor dedicado para el juego Rune: Halls of Valhalla con Arenas, tipos de juego especiales como boxeo y lucha callejera y mods anti cheat. Haz clic aquí para más información.