Maquetar el texto

Alucinado me he quedado.

Yo siempre he sido un detractor de los ‘RichTextArea’, esos campos para escribir texto que llegan a ser un editor de HTML realmente completo. Entiendo su comodidad para el usuario, pero rechazo el código que generan porque está sucio y puede generar comportamientos imprevistos en la maquetación de la página final.

En su lugar, siempre he apostado por explicarle al usuario de nuestros gestores de contenidos las etiquetas básicas de HTML porque pienso que es realmente sencillo (por suerte mi trabajo consiste en algo más). O en su defecto, les dejo escribir texto plano acordando con ellos que todo lo introducido entre corchetes saldrá en negrita, por poner un ejemplo.

La actitud general de casi cualquier encargado de usabilidad consultado apuesta más por los RichTextArea aunque en algún foro (los usuarios de foros suelen ser personas con cierto nivel de informática) se aventuren a usar alternativas como el BBCode (pseudo HTML más orientado a evitar el riesgo de un ataque CrossSideScripting que a facilitar la maquetación del texto).

Bien, pues ¿cuál ha sido la apuesta de Facebook? Recordemos que tienen 250 millones de usuarios, entre los que habrá todo tipo de nivel de conocimientos de informática y habilidades con el ordenador. Facebook apuesta por explicar el HTML, tal como he podido observar al escribir una nota y seguir el enlace ‘Format your note‘.

August 25th, 2009 by admin

Pet Society

Hace tiempo que quería hablar sobre Pet Society.

Qué es

Pet Society es una aplicación para Facebook un juego estilo Tamagochi donde tienes que cuidar de una especie de gato con tres niveles vitales que son hambre, felicidad y limpieza además de propocionarle bienes materiales como ropa, muebles, alimentos y cuidar de su jardín.

El Pet vive en una casa que va creciendo conforme avanzas de nivel. Esta casa esta situada en un barrio donde tienes diferentes tiendas, un estadio deportivo, un lago y las casas de tus amigos.

En qué consiste

Maneras de ganar dinero (coins): jugar con tu mascota, visitar a tus amigos (20 coins/día/amigo por lo cual te interesa convencerles de que se lo instalen), apostar o participar en las carreras del estadio deportivo (si participas: 30 coins/carrera ganada), vender comida cultivada en tu jardín (el precio es variable según lo cosechado), vender objetos que has comprado previamente (debidamente devaluados).

Maneras de gastar dinero (coins): comprar objetos para la casa, comida o ropa.

Lo curioso

Ahora viene el comentar qué me llama poderosamente la atención. El juego es estúpidamente adictivo.

Al principio sonríes como un bobo ante los gestos de tu Pet, por ejemplo cuando sonríe alegremente agitando los brazos al entrar en casa, el suspiro de felicidad que emite después de comer, la risita que suelta después de jugar con él, … También disfrutas como un bobo al jugar con él a la pelota, al frisbi, a la comba, … todo para ganar unos coins que te permitan ir comprando sus primeros bienes materiales.

Después aprendes a participar en las carreras. El beneficio es superior a los juegos anteriormente mencionados y vas perdiendo el interés en estos. También pierdes el interés por ir ganando trofeos al mejor jugador de comba, de frisbi, … trofeos que solías colgar en alguna estantería de la habitación principal.

Más tarde te aburres de tanta carrera en el estadio olímpico pero sabes que no introducirán nuevas formas de ganar coins porque … ah! esto lo había contado … lógicamente prefieren que cubras tus necesidades de coins ¡comprandolos con euros! ahí está el negocio, además existe un tipo especial de coin (playfish cash) y existen objetos que solo puedes comprar con este dinero.

Me sorprendió, por lo tanto, que publicasen la novedad de poder plantar árboles en el jardín (compras la semilla y esperas que germine), primero porque eso te permite no comprar comida (de esto hablaremos luego) y segundo porque te permiten venderla y conseguir más coins evitando entrar en su modelo de negocio.

Quería comentar una reflexión respecto a la comida, o más bien respecto a los niveles vitales en general. El Pet no muere por inanición, simplemente camina cansado. El Pet, por alguna inexplicable razón, siempre está feliz. Y finalmente, salvo que te revolotea una mosca, no parece que existan consecuencias negativas a una falta de higiene. Esta claro que nadie quiere perder usuarios pero entonces llegas a la absurda situación de que el Pet no puede morir y el usuario llega a la conclusión de que no lo alimenta, con lo cual ahorra muchos coins y gana muchos más vendiendo la comida que cultiva.

Con todo esto, el tiempo pasa, la interacción con los objetos que has comprado es nula (no puedes abrir el frigorifico, ni jugar con el ordenador, …), la necesidad de nuevos objetos se va reduciendo, pero sigues jugando y ganando coins.

Los más adictos ganan y gastan coins a raudales, cambian la ropa del pet cada semana, renuevan mobiliario, … los desarrolladores del juego lo saben y nunca faltan novedades en las tiendas.

Playfish es la empresa que ha desarrollado este juego y otros tantos en los que también puedes usar el dinero de mismo nombre. Entiendo que este juego tiene mucha complejidad y que puntualmente tienen que tirar abajo el servicio para publicar y testear las novedades, pero la frecuencia es a veces tan alta que comienzo a sospechar que lo hacen para aprovechar el boom de este juego y promocionar otros.

Y creo que no olvido nada …

August 19th, 2009 by admin

Empezando el emporio

Una persona que tiene dos bares en un pueblo puede verse como un empresario con una cadena de bares. Yo llevaba mucho tiempo queriendo tener mi propio servidor, me detenían cosas como atreverme a ser el responsable de qué se instala y cómo se configura, pero en poco tiempo las circustancias me han llevado a tener tres máquinas bajo mi responsabilidad, así que puedo verme como propietario de mi modesta granja de servidores.

July 14th, 2009 by admin

Libros que cuentan cómo hacerlo bien

Hay una serie de libros que todo programador debería leer en su vida, y contra antes mejor. Conforme me hago más mayor, más lamento no haber encontrado el tiempo necesario para leerlos, sobre todo después de leer «La décima sinfonía» porque me gusta una violinista, en vez de leer «Design Patterns» porque mi vida es la programación. Pero existe otra razón, a parte de que me gusten las mujeres casi tanto como programar, por la que me cuesta leer esos libros. Y es que dibujan un mundo mejor, cuando la realidad de mi trabajo desvirtua cada día un poco más ese mundo mejor. Recuerdo que cuando comencé a leer “Peopleware”, un libro sobre dirección de equipos, no podía evitar contrastar la teoría con la realidad y no hace falta que cuente quién salía perdiendo, yo.
Hoy he leído en MasQueCodigo que los chicos de «The Pragmatic Programmer» editarán una revista llamada PragPub. La presentación es uno de esos textos escritos por apasionados de la tecnología y la programación que te trasmiten cierto cosquilleo en el estómago.
· PragPub comentado en MasQueCodigo
· PeopleWare en Amazon
· The Pragmatic Programmer en Amazon
· Design Patterns en Amazon

July 2nd, 2009 by admin

Porqué no funcionaba el correctamente configurado DNS (bind)

El problema de no tener ni puta idea de Linux es que vas siguiendo pistas sin saber realmente lo que estás haciendo, lo cual es algo que, dicho sea de paso, detesto.

Cuando alquilé mi primer servidor dedicado me apuntaba en un fichero de texto todas las acciones que hacía para configurarlo (dónde estaba cada fichero, qué cambiaba o añadía en él) para poderlo seguir a pies juntillas el día que tuviera que configurarlo de nuevo o configurar otro.

Así que, cuando reciéntemente alquilé mi segundo servidor dedicado, me fui diréctamente a mi fichero de texto a refrescar la memoria sobre cómo configurar un DNS. Repetí los pasos a pies juntillas, peeerooo … no salió bien. El DNS no estaba accesible.

Pero si al hacer “restart” no da error debe ser que al menos sintácticamente es correcto. Pero si aún no tengo reglas en iptables no puede ser un fallo de comunicación. Ay que no! amigo.

Leyendo me encuentro que a parte de named.conf y named.conf.local hay otro fichero que también participa en el juego (y he leido más cosas sobre unas key que no imagino qué serán) se trata de named.conf.options y por comparación entre servidores parece que, de Ubuntu 8.04 a Ubuntu 8.10 han decidido añadir “listen-on { 127.0.0.1; };” y que por lo visto así solo se escucha a si mismo, super útil para un servidor público, vamos.

Ya me podía haber roto un cuerno pensando qué leches pasaba.

June 14th, 2009 by admin

Soluciones extrañas (I)

He creado un newsletter en mi página de gramática alemana. La idea es que los usuarios que prefieren un e-mail o que no están familiarizados con otros medios (RSS, Twitter, etc.) puedan suscribirse para recibir información en sus correos. La cuestión es ¿qué información?

No tardé en darme cuenta que el número de secciones podía ir creciendo con el tiempo. Cada nueva sección susceptible de enviar algún tipo de resumen de actividad por mail (noticias, novedades, comentarios, participaciones, …) requeriría un nuevo campo lógico en la tabla (que al final acaban siendo Enum o Integer, todo un desperdicio).

Puede parecer una tontería pero poner un nuevo campo me da mucha pereza, porque al tener el proyecto en un hosting compartido, crear un campo requiere hacer un php únicamente para que lance esa consulta (en el caso más rápido) o hacer login en el panel general, bucar la opción de bases de datos, lanzar el phpMyAdmin, localizar la tabla, pulsar en ‘añadir campo’, rellenar sus características y finalmente crearlo … en resumen ¡2 tediosos minutos! :o )

Total, que como últimamente (ya os contaré otra) me da por probar soluciones extrañas (ni originales, ni extremas, ni retros, ni nada más que extrañas, porque si no puedo experimentar en mis propios proyectos dónde lo hago) pues se me ocurrió hacer un único campo numérico de 32 bits (para no quedarme corto) donde cada bit significará si estás o no estás suscrito a una posible sección. A fin de cuentas, no en vano cuenta con operadores a nivel de bit. De acuerdo en que no es así con MySQL. El día que quiera hacer algo tipo «actualiza todos los que estén en la lista Noticias» (es decir, que su primer bit esté a 1) será la hostia porque los usuarios pueden estar suscritos solo a esa sección o en esa y en cualquiera de las otras, lo cual supone que habiendo 4 posibles listas, ya tenemos 7 posibilidades que tienen el bit de noticias activado y los demás en cualquier estado posible. Esto lo comento para no parecer un atolondrado inconsciente. Pero eso es porque lo imaginais como un «WHERE Suscrito IN (1, 3, 5, 7, 9, 11, 13)» y no como un bucle en PHP que recorre todos los registros y para aquellos que cumplen la condición «FieldValue && nlNoticias» se hace una acción.

Entonces ¿he cambiado la posibilidad de necesitar 30 segundos haciendo un php que corra un alter por cada campo que quiera añadir en el futuro, por la posibilidad de necesitar en varios minutos en hacer un php que haga un bucle y corra alguna consulta o comando cuando se cumle una condición? SI, pero es que me apetecía mucho.

June 9th, 2009 by admin

Sobre Firefox y sus alternativas

He leido un post de una persona que prefiere antes Chrome u Opera que Firefox, aunque admite que la variedad de extensiones para Firefox es un gran punto a su favor, le resulta insoportable su lentitud.

De acuerdo en que Firefox se comporta como un monstruo pesado, pero es un monstruo simpático. Entiendo que Opera existe desde hace mucho tiempo y que no quieran perder la esperanza. Y entiendo que Google tenga intereses en tener su propio navegador para ir colando otras tecnologiás suyas relacionadas (Gears, O3D, …).

Yo he probado ambas alternativas, también Safari, y no acabo de verles ninguna ventaja. Pero me molesta de Firefox que sin razón aparente a veces me hace dos cosas extrañas, o bien no me acepta los saltos de línea en las cajas de texto (tengo que copiar uno de un editor de texto y pegarlo cuando lo necesite, o escribir el texto fuera como estoy haciendo ahora), o bien de pronto comienza a escribir de derecha a izquierda con los carácteres occidentales habituales.

¿Contentos con FF? ¿Alguna experiencia mejor con otro? ¿Alguna mala con él?

June 6th, 2009 by admin

Hasta los huevos de Idealista.

Llevo una eternidad sin postear pero en algún sitio tenía que reventar.

He tenido que hacer un fichero de exportación para el principal portal inmobiliario (en visitas) y después de haber hecho ficheros de exportación para un montón de portales puedo afirmar que son lo peor.

Para empezar, y conste que puedo admitir las ventajas retro cuando las veo, no importan de XML sino de un TXT separado por tuberias (el carácter “|”).

Utilizan los diferentes campos de una dirección como clave de registro, con lo cual no puedes tener dos vivienda en el mismo patio a menos que sepas en qué puerta están. En el nombre de la calle no permiten caracteres extraños, es decir, caracteres que no sean letras, así que olvídate de abreviar “Edif.” o “Sn.” o nombres en valenciano como “Nou D’Octubre” pero aceptan la “ñ” y los acentos, que es una suerte. El patio tiene que ser numérico, así que no puedes vender un piso en el “31 bis” de una calle. El campo escalera es obligatorio, me pregunto cuántas fincas tienen más de una escalera. También el piso es obligatorio, así que cuando no lo sabes te lo inventas. Y si estas intentando vender un estudio, este no puede tener habitaciones, obligatorio que sean cero. Tienen definidos un montón exagerado de tipos de vías (hasta una que se llama “pozo”), y sin embargo no tienen contemplado “urbanización” o “bloque”. Otros campos que me he tenido que inventar “Estado” (todos en buen estado, pues no lo sé y algo había que poner), si es exterior, si tiene calefacción y si tiene ascensor … vamos, que van a ser anuncios de lo más fidedignos.

Lo peor es que precisamente su argumento siempre es “en Idealista cuidamos mucho la calidad de los anuncios”. Claro, por eso mentimos en todos los datos que no sabemos o no podemos concretar porque no tienen sentido alguno.

Tienen bueno, que puedes volcar los datos y acto seguido obtener un listado de ‘fallos’ para revisar y corregir rápido. Pero es que me pongo enfermo con toda la basura que he tenido que hacer para pasar sus validaciones.

June 2nd, 2009 by admin

Sweetholidays, jóvenes emprendedores

En un mercado tan competido en internet como son las agencias de viajes, surge Sweetholidays, una joven empresa que ha apostado desde el primer momento por la venta en internet, invirtiendo en una web conectada con centros de reserva, y no reparando en esfuerzos a la hora de construir un boletín de ofertas, o un blog dónde ir comentando y recomendando destinos.

July 14th, 2008 by admin

Listado de posibles ataques XSS

Si os habeis sorprendido por todas las formas posibles de escribir Viagra, vais a alucinar con todas estas formas diferentes de hacer un ataque Cross Side Scripting.

July 2nd, 2008 by admin