Regla DRY – Don’t repeat yourself

En el artículo sobre reglas para escribir software simple y robusto hablamos de 5 reglas para mantener la simplicidad. Una de estas cinco reglas y la más fácil de entender es la regla DRY cuyo acrónimo significa Don’t repeat yourself (No te repitas a ti mismo). Esta regla aparece por primera vez en el libro The pragmatic programmer.

Esta regla implica que cada pieza de conocimiento debe tener una representación única dentro del proyecto. Esto implica que no se deben repetir partes como la lógica de negocio en distintas partes del proyecto.

Esto reduce el código repetido en el proyecto y hace que nuestras clases y módulos sean más reutilizables.

Si no seguimos esta regla y tenemos elementos repetidos para hacer algún proceso del modelo de negocio, el día que tengamos que actualizar esa función o proceso deberemos invertir tiempo en localizar todas las partes donde se repite dicho proceso y actualizar el código.

Reglas para crear software simple y robusto

Se considera que una aplicación software es robusta cuando puede seguir funcionando en condiciones adversas e impredecibles.

A la hora de crear un software robusto una de sus primeras reglas es hazlo simple. Desde su código, escribiendo limpio y legible, hasta su arquitectura utilizando patrones de diseño. Todo esto nos lleva a seguir un estilo de diseño simple a la hora de definir nuestro proyecto software.

La navaja de Ockham

La simplicidad en el software mejora nuestro proyecto en su ejecución y en su mantenimiento. Gracias a que su código es simple de leer podemos entender mejor su estructura y su funcionalidad y gracias a que la relación entre módulos, clases y funciones es simple la detección de errores o la incorporación de nuevas características es menos estresante.

Muchas ramas de la ingeniería buscan esta simplicidad debido a la idea del principio de economía o el principio de la navaja de Ockham.

Este principio dice que en igualdad de condiciones, la explicación más simple suele ser la más probable». Esto implica que, cuando dos teorías en igualdad de condiciones tienen las mismas consecuencias, la teoría más simple tiene más probabilidades de ser correcta que la compleja.

Las cinco reglas para mantener la simplicidad

Con la evolución y la historia de la creación de software han ido apareciendo una serie de reglas que nos ayudan a mantener la simplicidad dentro del diseño de nuestro software. En futuros artículos iremos viendo cada una de estas cinco reglas.

Cómo convertir una extensión de Chrome a Safari

Las extensiones de un navegador web es un pequeño programa que permite ampliar la funcionalidad de nuestro navegador para mejorar nuestra experiencia cuando utilizamos la World Wide Web.

Aunque actualmente todas las extensiones de navegador se crean utilizando HTML, CSS y Javascript si es cierto que no hay una compatibilidad completa entre los navegadores y sus extensiones ya que cada navegador ofrece librerías internas distintas para sus extensiones.

Por suerte para nosotros Apple ha proporcionado herramientas para convertir extensiones de Google Chrome para hacerlas compatibles con Safari, el navegador de Apple.

Primeros pasos

En primer lugar esta conversión de extensiones de navegador sólo se puede realizar en equipos que estén ejecutando MacOS 10.15 Catalina o superior. Además debemos tener instalado en nuestro equipo Mac el entorno de desarrollo XCode en su versión 12 o superior. Podemos encontrar XCode en la MacAppStore.

Obteniendo el código de la extensión de Chrome

Una vez tengamos nuestro equipo con MacOS preparado debemos obtener el código fuente de la extensión que queramos convertir. Para obtener el código de una extensión debemos descargarla en formato zip. Podemos seguir las instrucciones de este artículo sobre cómo descargar extensiones de Chrome.

Preparando el proyecto para XCode

Una vez tengamos el fichero ZIP con el código de la extensión debemos descomprimirlo en una carpeta con ruta conocida ya que necesitaremos esa ruta para preparar el proyecto para XCode.

Una vez conocida la ruta debemos abrir la Terminal de Mac y ejecutar el siguiente comando de Terminal indicando la ruta a la carpeta descomprimida previamente:

xcrun safari-web-extension-converter ruta_a_la_carpeta_descomprimida_de_la_extensión

Tras introducir el comando y esperar unos segundos debemos pulsar la tecla ENTER para continuar el proceso.

Tras terminar el proceso se abrirá Xcode con el proyecto para compilar la extensión para Safari. Pulsando el botón de Run se procederá a su compilación.

Una vez compilado y ejecutado el sistema nos pedirá permisos para poder configurar Safari con la extensión.

Si no poseemos un perfil de desarrollador de Apple deberemos activar la opción de Permitir extensiones no firmadas del menú de Desarrollo de Safari para poder ejecutar la extensión sin problemas.

Cómo descargar extensiones de Chrome

El navegador web Chrome, al igual que hace Firefox, utiliza extensiones para ampliar la funcionalidad que nos ofrece este navegador web a los usuarios.

Estas extensiones están programadas con tecnologías propias de aplicaciones Web como son HTML, CSS y Javascript.

Dentro de las distintas posibilidades que nos ofrecen las extensiones de Chrome son las de utilizar Chat GPT, gestionar mejor las descargas, realizar evaluaciones automáticas de accesibilidad o descargar elementos que no se pueden descargar de forma sencilla.

La extensión CRX Extractor

Una de estas tareas de descargar que no se pueden hacer de forma sencilla es la de descargar extensiones de Chrome desde su tienda de extensiones y la solución pasa por utilizar una utilidad en forma de extensión para poder descargarla.

Lo primero que debemos hacer es desde Chrome instalar la extensión CRX Extractor desde la Store de extensiones de Chrome.

Una vez instalada la utilidad y tras haberla activado podemos utilizarla mientras examinamos otra extensión en la Store de Chrome.

Esta utilidad nos permite descargar una extensión en formato CRX (propio de Chrome) o en formato ZIP para poder examinar cómo está construida la extensión.

Reconocimiento a toda una vida Tecnológico Social

El 22 de mayo de 2023 la Fundación Tecnología social (FUNTESO) realizó un evento en el Campus Sur de la Universidad Politécnica de Madrid donde se entregaron varios premios y reconocimientos. Entre ellos me entregaron el premio a toda una vida Tecnológico Social reconociendo mi labor y mi dedicación por un trabajo continuo a favor de la tecnología responsable como herramienta para alcanzar una sociedad realmente inclusiva.

Jonathan dando un discurso agradeciendo el premio

Aunque todavía quedan años para mi jubilación e incluso cuando llegue a esa etapa dudo que desaparezca mi interés por la tecnología responsable si he de confesar que este reconocimiento me ha permitido hacer un ejercicio de retrospección personal y observar estos casi 30 años de mi vida como persona con discapacidad visual y como persona implicada en el mundo de la accesibilidad. Una vida en la que he estado investigando, desarrollando y diseñando productos y servicios buscando siempre el máximo nivel de inclusión y accesibilidad y también divulgando hechos evidentes pero que aún siguen siendo desconocidos para muchas personas como el hecho de que la discapacidad afecta a todo el mundo y que la tecnología debe adaptarse a las personas y no obligar a las personas a tener que adaptarse a la tecnología.

Toda mi carrera profesional, desde mis comienzos como desarrollador freelance o como consultor de accesibilidad en ILUNION hasta mi actual labor como accessibility lead en Cabify, siempre ha estado relacionada por alcanzar la accesibilidad universal rompiendo los límites de la tecnología para ayudar a las personas a superar barreras físicas, sensoriales, cognitivas y sociales. 

Incluso antes de experimentar mi proceso de ceguera ya hice algunas incursiones en el mundo de los productos de apoyo con ordenadores de 8 y 16 bits jugando con síntesis de voz o esquemas de personalización para personalizar tamaños y colores de pantallas en aquellas primeras interfaces gráficas de usuario de finales de los 80 y principios de los 90 del siglo pasado. Por lo que al final creo que son más de treinta años dedicados a la tecnología social.

Gracias por este reconocimiento y gracias por ayudarme a entender que aunque este camino largo que emprendí hace muchos años y que muchas veces es frustrante debido a que siempre hay barreras de accesibilidad tecnológicas, sociales, físicas y económicas si he comprendido que la tecnología cada vez es más social y la accesibilidad progresa poco a poco pero no se estanca.

Jonathan junto a Celia y Rafa en el evento de FUNTESO

¿Quién es FUNTESO?

FUNTESO, Fundación Tecnología Social, Tecnología para la Vida tiene dentro de sus objetivos el Informar, divulgar y proyectar el uso de la tecnología centrada en la persona y el uso y el diseño de productos tecnológicos de forma responsable.

FUNTESO nace en 2008 como la primera Fundación de Tecnología Social en el mundo (no existen registros al menos conocidos o acreditados por la propia fundación) cuya finalidad es informar, divulgar y proyectar el uso de la tecnología, entendida como el conjunto de técnicas, habilidades, métodos y procesos utilizados en el desarrollo y/o la producción de bienes o servicios, o logros de objetivos de investigación destinados a solucionar, prever o mejorar distintos escenarios de impacto social.

Día Mundial para Promover la Concienciación sobre la Accesibilidad Web

Hoy, 18 de mayo, es el Día Mundial para Promover la Concienciación sobre la Accesibilidad Web.

A lo largo del día se realizarán multitud de eventos onLine como en el que participo de la Expo+Accesible.

En la web oficial del Global Accessibility Awareness Day se recoge más información sobre estos eventos.

En la web en castellano del Global Accessibility Awareness Day se recoge información en español.