Linus Torvalds y el lado humano del desarrollo de software

Recientemente, una noticia impactante ha sacudido el ámbito tecnológico: Linus Torvalds se retira temporalmente del desarrollo del kernel de Linux. El “dictador benévolo” que coordinaba el proyecto desde sus orígenes deja el trono. Y algo más: pide disculpas por el tono de sus críticas. Las diatribas de Torvalds son míticas, legendarias (aquí algunos ejemplos). El tono de sus mensajes era ácido clorhídrico mezclado con dinamita. ¿Por qué decir “no me parece una buena idea” cuando puede decirse “tu código es una basura”? La lista de damnificados por Torvalds parece no tener fin, desde desarrolladores a grandes empresas del sector tecnológico. La situación recuerda a un personaje de una famosa serie televisiva: House. El protagonista, el Dr. Gregory House es un médico brillante marcado por un problema de salud que le causa un dolor crónico en la pierna. Este dolor ha afectado a su carácter, convirtiéndole en una persona cínica y amargada. A causa de ello, en sus relaciones con sus colegas y pacientes, el Dr. House muestra una sinceridad brutal y una absoluta falta de tacto o preocupación por si ofende a los demás. Sin embargo, gracias a su inteligencia, conocimientos y experiencia consigue resolver casos irresolubles para el resto de médicos. Por eso, muchos colegas y pacientes toleran y excusan su forma de ser y sus modales. “¡Está salvando vidas!” es el mantra habitual usado para pasar por alto la enésima salida de tono de House.   House es el arquetipo de lo que en inglés podríamos denominar “brilliant jerk”, un tipo de personaje que también aparece en otras series como “Sherlock”. En esa serie, la policía no soporta al detective, pero se...

Por qué reiniciar el ordenador es la solución a (casi) todos los problemas

Cuando estamos atascados con un problema, una estrategia habitual es “volver empezar desde cero”. Hacer tabula rasa y retomar el problema nos permite evitar posibles errores previos que nos hayan pasado desapercibidos y nos ofrece una mejor perspectiva sobre cómo se produce el problema. En el campo de la informática, esta estrategia también se aplica. ¿Tu ordenador va lento o no responde? Prueba a reiniciar el ordenador. ¿El programa no funciona? Mátalo y vuelve a ejecutarlo. De hecho, esta solución se utiliza con tanta frecuencia y con tanta efectividad que ha adquirido la categoría de un chiste de la profesión. Como muestra, tenemos el gag por excelencia de la serie IT Crowd: Roy, un administrador de sistemas responde todas las consultas telefónicas de sus usuarios con un “Have you tried turning it off and on again?“. Al final se cansa de hacerlo y graba esta respuesta en su contestador automático para responder así a todas sus llamadas. Hablemos de por qué reiniciar el ordenador es una solución tan efectiva. En primer lugar, un ordenador tiene dos tipos diferentes de memoria: La memoria no volátil permite almacenar los datos a largo plazo incluso cuando apagamos el ordenador. Como desventaja, este tipo de memoria es (comparativamente) lenta. Algunos ejemplos pueden ser un disco duro, un disco óptico (CD, DVD o Bluray) o un lápiz USB. La memoria volátil es muy rápida pero requiere energía continuamente para mantener sus contenidos. Por su velocidad, la memoria volátil se utiliza como memoria de trabajo del ordenador. Esta memoria de trabajo es gestionada por el sistema operativo, que controla qué procesos se están ejecutando y asigna...

Nuevas acreditaciones de Másters Universitarios de la UOC

Hoy tenemos buenas noticias para los estudiantes de la UOC, especialmente para aquellos que están estudiando alguno de los Másters oficiales de nuestros Estudios. En una entrada previa os explicamos qué significa que un título de Grado o Máster sea “oficial”: una agencia de calidad universitaria (como ANECA a nivel estatal o AQU a nivel autonómico) ha evaluado el programa y certifica su calidad. Esta evaluación se realiza principalmente en dos momentos a lo largo de la vida del programa: Verificación: En el momento de la definición del título, la Universidad presenta una memoria describiendo en detalle la propuesta de programa: los objetivos y competencias, las salidas profesionales, el plan de estudios, la metodología docente y de evaluación, el equipo docente y los recursos disponibles. Evaluación y acreditación: Periódicamente, un comité externo evalúa los resultados obtenidos y comprueba si el programa se desarrolla según lo previsto en la memoria de verificación. Por ejemplo se evalúa si el perfil de los egresados es el demandado por las empresas, si la metodología es adecuada o si los estudiantes están satisfechos con el programa. En caso de que las evaluaciones periódicas sean favorables, se concede la acreditación a dicho programa. Que un Grado o un Máster consiga la acreditación es una noticia excelente para los estudiantes, ya que demuestra que es un programa de calidad, que se está desarrollando de forma adecuada y que sus contenidos son útiles para el mundo profesional. A finales de 2015 pasaron por el proceso de evaluación externa y acreditación diversas titulaciones de Grado y Máster de nuestros Estudios: el Grado de Ingeniería Informática, el Grado de Tecnologías...

Computación cuántica (I): el fin de los ordenadores clásicos

Los ordenadores actuales son descendientes de la Máquina de Turing. Este modelo matemático fue creado por Alan Turing para dar respuesta al Entscheidungsproblem (en alemán, “problema de decisión”), una de las cuestiones centrales de la informática teórica. Las Máquinas de Turing utilizan como memoria una cinta con un número infinito de posiciones y un cursor que puede leer una posición de la cinta, modificar su contenido o desplazarse una posición a la izquierda o a la derecha. El “código” de la máquina de Turing es el conjunto de reglas predefinidas que indican qué acciones debe realizar el cursor según el contenido de la cinta, mientras que los “datos de entrada” sería el contenido inicial de la cinta. También es posible definir una Máquina de Turing Universal que recibe como entrada el código de una máquina de Turing y unos datos de entrada y simula la ejecución de dicha máquina de Turing. Esta Máquina de Turing Universal es uno de los antecesores del concepto de “programa almacenado”: pensar en el programa como un dato más que puede leerse (para ejecutarse) o incluso modificarse. Puede parecer un concepto evidente, pero hasta ese momento la mayoría de máquinas tenían un propósito específico (un problema, una herramienta). Esta idea de máquina “programable y de propósito general” se había utilizado en el campo de las máquinas de tejer (para coser patrones complejos definidos mediante una tarjeta perforada), pero aquí se aplicaba a la realización de cálculos. Aunque excelente como modelo teórico, la Máquina de Turing tiene una arquitectura poco útil desde un punto de vista práctico y existen formas de diseñar una máquina más...

El Congreso Español de Informática (CEDI)

Este septiembre de 2016 se ha celebrado en Salamanca el Congreso Español de Informática (CEDI), uno de los eventos científicos más importantes en el campo de la ingeniería informática en España. Se trata de un multi-congreso organizado por la Sociedad Científica de Informática de España (SCIE) que agrupa a los principales congresos, jornadas y simposios del ámbito informático que se celebran en España. CEDI pretende ser un punto de encuentro para toda la comunidad que desarrolla su actividad en el ámbito de la ingeniería informática, ya sea en investigación, desarrollo, innovación o enseñanza universitaria. Es fácil de imaginar que reunir en un mismo lugar a empresas e investigadores con tanta diversidad de ámbitos de especialidad puede dar lugar a muchas sinergias y oportunidades de colaboración. Muchos artículos, proyectos e iniciativas científicas relevantes han “nacido” o “crecido” durante las CEDI… Los antecedentes del CEDI se remontan a los Congresos Nacionales de Informática y Automática (1970-1985), organizados por la Asociación Española de Informática y Automática (AEIA). En su formato actual, CEDI se inicia en 2005 (Granada), y desde entonces se ha celebrado en 2007 (Zaragoza), 2010 (Valencia) y 2014 (Madrid). Algunos congresos de CEDI tienen una trayectoria muy prolongada, con más de 15 ediciones, y son un referente de la comunidad científica de su ámbito. Podemos citar como ejemplos los congresos sobre Inteligencia Artificial (CAEPIA), Computación Paralela (JP), Informática Gráfica (CEIG), Ingeniería del Software y Bases de Datos (JISBD), Informática Educativa (SIIE), Programación y Lenguajes (PROLE) e Interacción Persona-Ordenador (INTERACCIÓN). También hay otros eventos de temática más específica o bien con menor trayectoria, sobre áreas como lógica difusa (LODISCO), ingeniería de servicios (JCIS), minería de datos (TAMIDA) o sistemas de tiempo real (STR). Además...