Para mí el diseño es

Para mí el diseño es el arte de cuidar de los detalles. Y un buen diseño web es el que cuida de esos detalles, minimizando la cantidad de ruido al máximo, dando importancia siempre a la usabilidad y a la funcionalidad.

Aquí van otras opiniones:

To me, design is… from Vostok on Vimeo.

Publicado en Desarrollo Web, Diseño | 1 Comment

Doloroso

“Probablemente crea que no puedo meter esta toalla por su garganta pero confíe en mí, puedo hacerlo. Hasta el fondo, salvo este pequeño extremo.

Cuando su estómago empiece a digerirla, la sacaré.. y junto a ella saldrán sus vísceras.

La mayoría de la gente tarda una semana en morir, es muy doloroso“.

Jack Bauer, 24

Sigue leyendo

Publicado en Citas, Personal | Dejar un comentario

Más que objetivos

Suele ser tradición hacer un repaso en tu blog de los objetivos que te planteaste el año pasado y los que te propones para el que empieza. Este año yo no lo voy a hacer.

Nos encontramos en un momento apasionante en la historia de nuestro país. No es la única crisis que se ha sufrido en España en las últimas décadas, pero si ha ocurrido en un momento en el que nuestra sociedad, bajo mi punto de vista, está bastante poco preparada para afrontarla y los intereses de las personas en general distan mucho de ser los que puedan hacernos remontar de una forma rápida.

Mientras espabilamos, creo que lo importante no es plantear objetivos o deseos sino empezar a ejecutar de forma visible. Quizá eso sirva de motivación al resto y se cambien ciertas cosas. Y si no se cambian siempre tendremos lo que hemos conseguido al no quedarnos esperando a que nuestros sueños se vuelvan realidad.

Por eso este año no necesito plantearme objetivos, necesito ejecutar cada necesidad o idea que ya tengo en la bandeja de entrada de mi cabeza. Y es algo que ya he empezado a hacer.

Feliz año nuevo a tod[ao]s

Publicado en Diario, Personal | 1 Comment

Symfony, wordpress o php desde 0

Este post es una reflexión sobre si realmente utilizar un framework es el camino para desarrollar aplicaciones web o es mejor utilizar un cms como WordPress o quizá una estructura de clases propia que reutilicemos en los futuros proyectos que afrontemos.

Utilizar un framework como Symfony

Para mí, adoptar Symfony como framework ha sido una de las mejores decisiones que he tomado en mi historia como desarrollador web.

Symfony es un framework excelente, muy personalizable, extendible y automatizado que además, te enseña a programar bien.

¿Qué es programar bien? Para empezar, usar patrones de diseño, aprovechar todas las ventajas que ofrece la POO al máximo posible ademas de, por encima de todo, evitar repetirte.

Symfony no es el único framework que permite esto, también Zend es otra opción excelente.

Sin embargo, en los últimos meses he tenido la oportunidad de participar en proyectos fuera de las necesidades comunes. Ya sea por rendimiento o por la naturaleza de la aplicación, teníamos que especializar bastante funcionalidad del core de symfony, aprender casi de memoria los parámetros de los archivos .yml de configuración o incluso, extender el framework para que cumpliese con los requisitos de la arquitectura de sistemas.

Esto supone en algunos casos muchas horas más que en un proyecto de php digamos “sin framework”, pero una vez conseguido el tiempo se reduce en la próxima ocasión que te encuentras con el mismo problema, si lo haces.

Hay pequeñas situaciones en las que debemos invertir tiempo para desarrollar pensando en el framework para obtener funcionalidad que sería trivial en un entorno sin framework. Sin embargo en general compensa porque nuestro código queda totalmente integrado con una arquitectura que tiene un nivel muy alto de calidad.

Pero otro problema aparece cuando de repente se anuncia una nueva versión del framework y empiezas a ver que todo lo que has aprendido en la versión 1, es completamente distinto en la versión 2. Esto es algo bastante costoso de asumir para los desarrolladores ya que algunas de las ventajas más importantes de utilizar un framework son precisamente las que en este caso, se ha puesto en contra de todos nosotros:

  1. Todos habíamos aprendido a programar en nuestro día a día pensando en symfony, con sus configuraciones y la nomenclatura de sus clases.
  2. Todos conocíamos perfectamente los nombres de los directorios, archivos de configuración y comportamientos de los métodos que se usan en las clases más importantes del framework, así como dónde teníamos que encontrar los recursos de documentación necesarios para nuestro día a día.
  3. Habíamos desarrollado código reutilizable como plugins, concepto que desaparece en la próxima versión.

Estos puntos son los más negros que quizá se puedan encontrar a la hora de decidirse por un framework que no sea uno nuestro propio. Sin embargo y a pesar de los mismos, creo que en general es una decisión muy buena el optar por un framework de desarrollo.

Utilizar un CMS como WordPress

Otra opción que existe es optar por un cms como WordPress. Hablo de WordPress porque es el que más conozco a “bajo nivel”. Si estás acostumbrado a utilizar un framework como Symfony, tienes la sensación al desarrollar bajo una plataforma para nada óptima (en cuanto a rendimiento se refiere) y que se salta a la torera cientos de recomendaciones sobre cómo desarrollar en un entorno POO.

Sin embargo el sistema funciona para la mayoría de proyectos medios o básicos, los diseñadores están encantados con él y ya lo conocen debido a la facilidad de uso de su sistema de themes, funciona sin tener que tocar prácticamente nada en la mayoría de plataformas de hosting y cubre con la necesidad funcional de todo sitio medio que no tenga necesidad de un desarrollo continuado.

Aunque sea una opción poco óptima fuera de la caja, en Blackslot tenemos corriendo varios sitios con decenas de miles de visitas al día basados en esta plataforma, con ayuda de soluciones de caché internas, teniendo aún margen para escalar a bastante más tráfico sin demandar grandes cantidades de recursos de servidor.

El problema reside más bien en el tipo de funcionalidad que quieres afrontar con el cms y la calidad que esperas obtener con el mismo. Yo no desarrollaría una intranet en WordPress por ejemplo, ni una plataforma de tienda electrónica para un negocio que dependa exclusivamente de esta plataforma para funcionar.

Utilizar PHP desde 0

Aunque durante muchos años he defendido el utilizar php sin frameworks hoy en día lo desaconsejo por completo.

Hace años no existía ninguna opción seria para php equiparable a un entorno .net por ejemplo. Hoy en día hay tantos que cuesta elegir.

No digo que debas elegir una de las opciones más maduras disponibles (que para mí sólo hay dos: Zend o Symfony). Lo que digo es que a menos que tu negocio sea una sola web y tengas el foco y todo tu tiempo puesta en ella, necesitas un framework para conseguir sobre todo estos puntos:

  1. Desarrollar con más programadores en el mismo proyecto sin que sea un caos.
  2. Trabajar con más gente en el mismo proyecto. A diferencia del punto 1, tienes que tener en cuenta a diseñadores, maquetadores, analistas, gente de sistemas..
  3. Tener una base reutilizable que os ahorre, a medida que desarrolléis con la misma, más y más tiempo.
  4. Conseguir automatizar las tareas más repetitivas y centrarte en el código específico de la aplicación que te ocupe en ese momento.

Aunque creas que lo mejor es ponerte a desarrollar un framework propio desde el principio, merece la pena conocer los frameworks que existen para aprender de miles de desarrolladores que han tenido muchos más problemas y por lo tanto tienen más experiencia que tú.

Desarrollar un framework sin haber utilizado otro antes como Symfony o asp.net mvc es una tarea muy compleja que puede hacerte perder mucho tiempo. Actualmente no es casualidad que Ruby On Rails, Symfony, asp.net mvc y otras opciones para desarrollo web escritas en diferentes lenguajes se parezcan entre sí. Esto es porque los problemas que nos solemos encontrar en el día a día son los mismos y es muy bueno conocer alguno de estos frameworks al detalle para orientarte sobre cómo debes organizar la arquitectura de una aplicación web seria.

En mi caso, incentivado por el cambio de versión de Symfony y por algunas de las cosas que no me han gustado o que he visto demasiado complejas en el mismo para solucionar determinados problemas, he empezado a diseñar y desarrollar en mis tiempos muertos un framework mucho más ligero y simple que Symfony pero pensado tanto para entornos tanto de hosting compartido como para arquitecturas más complejas.

Sin embargo no voy a dejar de utilizar ni Symfony ni WordPress. Me encanta Symfony y muchas de las cosas que he aprendido con este framework las estoy aplicando en este proyecto e incluso utilizo alguno de sus componentes. WordPress por su parte es la mejor opción para reducir costes en determinados proyectos que no requieran ni complejidad ni funcionalidad fuera de lo que se espera de un sistema de publicación.

Publicado en Desarrollo Web, Mis Proyectos, PHP, Personal | 17 Comments

El lado no técnico

Hoy hace unos dos años desde que elegimos el logotipo de Blackslot y sobre un año y medio desde que montamos las mesas sobre las que hoy trabajamos.

En este año y medio he aprendido muchas cosas, he sentido emociones de todo tipo y he experimentado en áreas que nunca pensé que me interesarían hasta el punto que actualmente lo hacen.

Este último punto me llevó hace unos días a comentar en mi twitter que en 2011 empezaría a enfocar mi formación hacia áreas no técnicas. En realidad ya he empezado a hacerlo de forma autodidacta desde hace unos cuatro años.

No voy a abandonar el terreno técnico, para mí investigar sobre desarrollo/arquitectura web o sistemas para internet no es formación, es una droga. Creo que tengo cuatro pasiones que sobresalen con diferencia al resto de cosas que me gustan en esta vida: plantear o programar cosas que funcionen en internet, la cultura geek, mezclar música electrónica y el sexo.

Sin embargo, por mucho que me apasione crear cosas para internet, es realmente interesante hacerlas funcionar. Esto es algo que los geeks no solemos entender hasta que nos damos de bruces contra la misma experiencia: por muy profundos que sean nuestros conocimientos y por muy exquisito que sea nuestro dominio de la tecnología, hay que saber cómo hacer conocido lo que hagamos, seducir a los clientes que nos interesen, una vez seducidos gestionar su experiencia e invitarlos a formar parte de nuestra comunidad, alimentar nuestra marca, cultivar una buena cartera de contactos, crear un equipo y delegar en él, incrementar la productividad de nuestro equipo, saber diferenciar y automatizar los procesos (no técnicos) que sean vitales para llegar al camino que buscamos y sobre todo, saber cómo buscar el camino adecuado y la gente adecuada para compartirlo. Todo ello durmiendo más de 4 horas al día. Y se puede hacer, ya lo creo. Pero si se hace, debe hacerse de forma natural porque de lo contrario podríamos cansarnos o cansar a otras personas.

Otro fallo importante que cometemos los que tenemos perfiles geek vuelve a ser provocado por dar demasiada importancia a los aspectos técnicos y a la perfección de los mismos. A veces no logramos comunicar correctamente la importancia que tienen algunos aspectos tecnológicos, la gente no técnica sencillamente no entiende lo que decimos aunque a nosotros nos parezca básico. Luego escuchamos a otra gente hablar sobre estos temas, y en lugar de aprender cómo comunican al resto de personas criticamos los errores técnicos que cometen al hacerlo.

Lo considero grave, ya que hay muchas personas con un tremendo potencial tecnológico que se ven eclipsadas por personas que comunican mejor, saben gestionarse mejor, ofrecer resultados a corto plazo aparentemente mejores o se venden mejor, siendo sus conocimientos mucho menores o carentes de tanto valor.

Estas cosas que se me pasan por la cabeza unidas a mi trabajo diario en Blackslot (que en más de un 50% no es técnico) han hecho que desde hace tiempo busque ciertos pilares que me faltan. Me están empezando a interesar áreas como marketing, publicidad, gestión de personal, análisis de mercado y otras areas que ni siquiera se si acertaría a llamarlas por su nombre correcto.

Me he fijado en algunos cursos o masters que me parecen muy interesantes. Entre ellos están el MIB, Master en Internet Business de la universidad computense de Madrid, el máster en Marketing online y comercio electrónico de la Online Business School o el Master de Dirección de marketing y comunicación en la UOC.

También he barajado la posibilidad de realizar un curso de interpretación o para mejorar mi comunicación en público. Pero de momento creo que tengo otras áreas más prioritarias, aunque nunca se sabe.

De momento sigo autoformándome, experimentando y leyendo sobre estos temas, que creo son de mucha importancia y complementan mi lado técnico.

Publicado en Emprendedores, Personal, [Pe]n[sa]n[do] | 8 Comments

Phaedra

“Háblanos de lo que piensa hacer Phaedra para joder este supercolisionador de mierda”

Odyssey 5

Publicado en Citas, Personal | Dejar un comentario

Esto es importante: Manifiesto por una Red Neutral

Los ciudadanos y las empresas usuarias de Internet adheridas a este texto manifestamos:

  1. Que Internet es una Red Neutral por diseño, desde su creación hasta su actual implementación, en la que la información fluye de manera libre, sin discriminación alguna en función de origen, destino, protocolo o contenido.
  2. Que las empresas, emprendedores y usuarios de Internet han podido crear servicios y productos en esa Red Neutral sin necesidad de autorizaciones ni acuerdos previos, dando lugar a una barrera de entrada prácticamente inexistente que ha permitido la explosión creativa, de innovación y de servicios que define el estado de la red actual.
  3. Que todos los usuarios, emprendedores y empresas de Internet han podido definir y ofrecer sus servicios en condiciones de igualdad llevando el concepto de la libre competencia hasta extremos nunca antes conocidos.
  4. Que Internet es el vehículo de libre expresión, libre información y desarrollo social más importante con el que cuentan ciudadanos y empresas. Su naturaleza no debe ser puesta en riesgo bajo ningún concepto.
  5. Que para posibilitar esa Red Neutral las operadoras deben transportar paquetes de datos de manera neutral sin erigirse en “aduaneros” del tráfico y sin favorecer o perjudicar a unos contenidos por encima de otros.
  6. Que la gestión del tráfico en situaciones puntuales y excepcionales de saturación de las redes debe acometerse de forma transparente, de acuerdo a criterios homogéneos de interés público y no discriminatorios ni comerciales.
  7. Que dicha restricción excepcional del tráfico por parte de las operadoras no puede convertirse en una alternativa sostenida a la inversión en redes.
  8. Que dicha Red Neutral se ve amenazada por operadoras interesadas en llegar a acuerdos comerciales por los que se privilegie o degrade el contenido según su relación comercial con la operadora.
  9. Que algunos operadores del mercado quieren “redefinir” la Red Neutral para manejarla de acuerdo con sus intereses, y esa pretensión debe ser evitada; la definición de las reglas fundamentales del funcionamiento de Internet debe basarse en el interés de quienes la usan, no de quienes la proveen.
  10. Que la respuesta ante esta amenaza para la red no puede ser la inacción: no hacer nada equivale a permitir que intereses privados puedan de facto llevar a cabo prácticas que afectan a las libertades fundamentales de los ciudadanos y la capacidad de las empresas para competir en igualdad de condiciones.
  11. Que es preciso y urgente instar al Gobierno a proteger de manera clara e inequívoca la Red Neutral, con el fin de proteger el valor de Internet de cara al desarrollo de una economía más productiva, moderna, eficiente y libre de injerencias e intromisiones indebidas. Para ello es preciso que cualquier moción que se apruebe vincule de manera indisoluble la definición de Red Neutral en el contenido de la futura ley que se promueve, y no condicione su aplicación a cuestiones que poco tienen que ver con ésta.

La Red Neutral es un concepto claro y definido en el ámbito académico, donde no suscita debate: los ciudadanos y las empresas tienen derecho a que el tráfico de datos recibido o generado no sea manipulado, tergiversado, impedido, desviado, priorizado o retrasado en función del tipo de contenido, del protocolo o aplicación utilizado, del origen o destino de la comunicación ni de cualquier otra consideración ajena a la de su propia voluntad. Ese tráfico se tratará como una comunicación privada y exclusivamente bajo mandato judicial podrá ser espiado, trazado, archivado o analizado en su contenido, como correspondencia privada que es en realidad.

Europa, y España en particular, se encuentran en medio de una crisis económica tan importante que obligará al cambio radical de su modelo productivo, y a un mejor aprovechamiento de la creatividad de sus ciudadanos. La Red Neutral es crucial a la hora de preservar un ecosistema que favorezca la competencia e innovación para la creación de los innumerables productos y servicios que quedan por inventar y descubrir. La capacidad de trabajar en red, de manera colaborativa, y en mercados conectados, afectará a todos los sectores y todas las empresas de nuestro país, lo que convierte a Internet en un factor clave actual y futuro en nuestro desarrollo económico y social, determinando en gran medida el nivel de competitividad del país. De ahí nuestra profunda preocupación por la preservación de la Red Neutral. Por eso instamos con urgencia al Gobierno español a ser proactivo en el contexto europeo y a legislar de manera clara e inequívoca en ese sentido.

Publicado en Internet, Personal | Dejar un comentario

Cansado

Forzar algo es siempre cansado. Con el tiempo valoras las cosas que consigues de forma natural, sin forzarlas, independientemente de que tus ganas de que esas cosas funcionen de la forma que tienes en la cabeza te hagan ver que conseguirlo sea más importante que tu propia vida, salud o la gente cercana a ti. Esto es especialmente cierto cuando eres un cabezón o un orgulloso, como es mi caso.

Sin embargo, siempre se aprende cuando quieres hacerlo. Y aprendes que las cosas que mejor funcionan son las cosas que se han conseguido de forma natural.

Con otras podrías conseguir mucho, mucho más. De hecho puedes conseguirlo en poco tiempo, como otros lo han conseguido. A medida que entras en ese juego, te vas dando cuenta de lo cansado que puede llegar a ser.

De igual forma ocurre con las relaciones. He de decir que no soy el mejor para hablar de este tema pero me atrevo a decir que las personas con las que mejor trabajo, comparto conversaciones apasionantes, me divierto, amo y consigo metas, son con las que de forma natural estoy conectado. Cuando conectas de esta forma con las personas todo funciona muy bien y de forma muy sencilla, con otras es más cansado.

Y es que intentar convencer a alguien que espera con escepticismo cualquier cosa que salga de ti es cansado.  Puede que se trate del compañero perfecto para emprender un camino para el que crees que su ayuda sería más que valiosa pero para que funcione bien, esa persona necesita tener confianza y demostrarla, de otra forma el viaje puede resultar muy cansado.

Resulta también cansado tratar de conseguir el éxito en algo que no entiendes, simplemente imitando o replicando lo que has visto que otros hacen sin sentirlo. Como he oído alguna vez a Punset: “la felicidad está en la sala de espera de la felicidad”, es decir, se es feliz con la ilusión de conseguir algo que te haga feliz. Pero creo que ese “algo” debes sentirlo, desearlo realmente y sobre todo entenderlo ya que de no ser así, será muy cansado pelearlo y no conseguirlo. No se disfruta de la vida cuando no deseas realmente lo que deseas.

He aprendido que pocas cosas son las que realmente merecen la pena e irónicamente, suelen ser las más sencillas y las que menos problemas dan. En algunas ocasiones son cosas que no son perfectas, pero es que a veces lo perfecto, resulta cansado.

Publicado en Personal, [Pe]n[sa]n[do] | 1 Comment

Pensar en conceptos

Soy un adicto a pensar en nuevos conceptos, o darle vueltas a otros existentes, para generar ideas ejecutables en áreas que me apasionan y mayormente en el contexto de internet.

Un concepto a diferencia de una idea no es algo concreto, es algo que tenemos en la cabeza y que podemos expresar de muchas formas y puede ser asimilado o comprendido por otros de una forma muy distinta a cómo lo imaginamos nosotros. Esto hace que de un concepto puedan surgir muchas ideas que pueden ser ejecutadas de forma distinta. No hay ideas sin conceptos y los conceptos se basan en experiencias.

Me apasiona escuchar experiencias, creo que las experiencias cultivan los conceptos. No creo que para cultivar un concepto necesitemos haber sentido una experiencia, creo que podemos crear un concepto desde nuestra imaginación acerca de lo que podría suponer la experiencia de otro.

Puede llegar incluso a sonar irónico, pero creo que podríamos forjar conceptos mucho más interesantes, o al menos distintos, a los que podríamos llegar sin haber vivido la experiencia. Podemos equivocarnos, llegando a una serendipia que nos oriente hacia una innovación o un concepto mucho más apasionante del que buscábamos.

Sin embargo, también puede ser cierto que nuestras ideas puedan ser ejecutadas de una forma menos óptima que si hubiésemos aprendido de esa experiencia (siempre defiendo que se aprende lo que se siente) pero a pesar de ello, el concepto creo que podría ser bueno.

Me gusta escuchar a personas que no trabajan en mi mismo campo pero que les gusta pensar y discutir sobre conceptos. En sus expresiones encuentro palabras nuevas que puedo utilizar a la hora de describir los míos propios y sus conceptos son siempre inspiradores para mis momentos de locura creativa.

Publicado en Personal, [Pe]n[sa]n[do] | Dejar un comentario

Wifi en Amilo M7440 con Ubuntu10.10

Ayer se me fastidiaron el adaptador de corriente de mi portátil HP y el disco duro de mi Mac Book Pro, lo que me ha obligado a resucitar mi primer equipo portátil: un Fujitsu Siemens Amilo M7440.

Aunque era un buen cacharro en el año en que lo compré, Windows 7 se le queda algo grande y además tiene un problema muy grave de diseño:  la tarjeta wifi se activa con un botón controlado por software mediante un driver sólo disponible de forma oficial para XP. Encima dicho driver requiere privilegios de Administrador y no funciona con las opciones de compatibilidad de Windows Vista y 7.

Por suerte, existe un invento creado para Linux por unos desarrolladores españoles que servía muy bien en versiones anteriores a la 10 de Ubuntu, pero para que funcione en versiones actuales hay que hacer unos retoques en el código fuente.

El archivo que hay que modificar es el fsam7440.c, lo cambios son los siguientes:


//línea 40: cambiar  #include <linux/autoconf.h> por

#include <generated/autoconf.h>

//línea 168, cambiar remove_proc_entry(DRV_NAME, &proc_root); por

remove_proc_entry(DRV_NAME, NULL);

//línea 179, cambiar dir_base = create_proc_entry(DRV_NAME, S_IFDIR, &proc_root); por

dir_base = create_proc_entry(DRV_NAME, S_IFDIR, NULL);

Una vez hemos estos cambios, se compila con un make y make install.

Para encender el “botón” del wifi basta ahora con llamar a este comando


sudo modprobe fsam7440
Publicado en Sistemas, Trucos, UNIX / Linux | 1 Comment