Ni Zapata debe dimitir ni el problema son los [no] chistes negros

Etiquetas

, ,

No es el problema que alguien escriba unos «chistes» negros sin nada de gracia sobre el peor genocidio de la historia de la humanidad.

No es el problema que los mismos que hablan de empatía y pensar en el pueblo se tomen tan superficialmente a un tema que duele a muchos millones de personas. De hecho, a un pueblo entero, de 14 millones de personas.

Sigue leyendo

Las viñetas de «Principios y algoritmos de concurrencia»

Etiquetas

, ,

No sé cómo, pero conseguí que JRMora se enrolle para hacer las viñetas introductorias de cada capítulo del libro Principios y algoritmos de concurrencia. Quería darle un toque de humor sutil relacionado con el tema de cada capítulo . El pobre JRMora tuvo que escuchar explicaciones de temas muy técnicos. Creo que los dibujos, aunque muy simples (de concepto, no de trabajo),  son representativos.

Por las dudas: Copyright: JRMora Licencia, como el resto del libro: CC BY-NC-ND 4.0

Manifiesto

00-prefacio Sigue leyendo

Principios y algoritmos de concurrencia: Prefacio

Etiquetas

,

Este artículo es el primer manuscrito del Prefacio y concurrencia del libro que estoy escribiendo Principios y algoritmos de concurrencia. Todo el código de los ejemplos están en Github.

Nota: me gustaría leer opiniones.

Manifiesto

Hace más de veinte años que enseño Concurrencia en las asignaturas de Sistemas Operativos I y II y en Programación Concurrente y Distribuida de la carrera de informática en la Universitat de les Illes Balears. A pesar de la cantidad de notas y presentaciones que elaboré en todos estos años, nunca se me pasó por la cabeza escribir un libro. Ni siquiera el típico libro de apoyo a la asignatura. Es sumamente complicado transmitir las sutilezas y conflictos generados por ejecuciones que no cumplen con la secuencialidad de sus programas. Si ya me resultaba difícil en clases magistrales y prácticas en laboratorio, me parecía tarea imposible escribir un libro.

Pero eso cambió en diciembre de 2014.

Sigue leyendo

Miles de apps en los móviles: mitos, realidades y las preguntas claves

Etiquetas

, ,

Ayer hice una búsqueda y el primer resultado que me salió fue una página de Linkedin, al ir a ella un aviso en pantalla completa para que instale su app. ¡Cielos! yo sólo quería saber una información muy concreta y que no necesitaba más de unos pocos segundos de lectura. Además esa misma información está disponible en miles de sitios, que haya entrado a Linkedin fue puro accidente. Tengo cuenta en Linkedin desde hace años pero no la uso habitualmente ni tengo la intención de hacerlo: no soy un buscatalentos, no busco ni ofrezco trabajo habitualmente. No tengo intenciones ni ganas de instalar su app en mi teléfono, pero ¿por qué insisten?

Los mitos de las apps

No es nada nuevo ni soy original en lo que voy a comentar. Sin embargo me sigue sorprendiendo la molesta insistencia de muchos sitios web a que sus lectores esporádicos o accidentales instalen una nueva app en su móvil. Los que diseñan o deciden estas estrategias parecen asumir los varios de los siguientes supuestos falsos:

Sigue leyendo

Principios de concurrencia: Soluciones por hardware

Etiquetas

, , , ,

Este artículo es el primer manuscrito del capítulo Soluciones por hardware del libro que estoy escribiendo Principios de concurrencia para programadores. Todo el código de los ejemplos están en Github.

Soluciones por hardware

Hasta ahora hemos visto soluciones al problema de la exclusión mutua sin soporte de hardware y con solo registros de lectura-escritura atómicos, todos ellos son spinlocks pero muy ineficientes. Por un lado por el consumo de memoria, tanto para la solución de dos procesos (Dekker y Peterson) como para N procesos (Panadería) el número de registros necesarios es proporcional al número de procesos máximos que sincronizarán[31]. Esta necesidad de memoria impone una sobrecarga importante para mantener la consistencia de la memoria caché, además del consumo de CPU por la espera activa todos los procesos involucrados tienen que acceder al mismo rango de memoria que los demás. Es una penalización muy importante para sistemas con varios procesadores o núcleos. Por otro lado, si se tiene un único procesador el avance es tan lento que lo que tarda décimas en uno puede tomar horas en otros[32] en el caso de que exista mucha competencia (contention) porque varios procesos desean entrar a la sección crítica de forma casi simultánea.

Desde el inicio se buscaron soluciones por hardware que permitiesen implementar algoritmos de sincronización de forma mucho más eficiente.

Sigue leyendo

Nota rápida sobre el «no hackeo» del cifrado de Telegram

Etiquetas

, ,

Antes que nada, no tengo ni la mínima intención de defender a Telegram, tampoco sé si sus métodos de cifrado son los mejores o no. Se trata simplemente te aclarar unos temas básicos de cifrado para el «drama» que están montando (por ejemplo) a partir del artículo original How I Hacked Telegram’s “Encryption”. (también erróneo por sensacionalista y poor ignorar de dónde está el problema, pero vaya, es cuestión de negocios, supongo).

Sigue leyendo

PIB, gasto y aumento de la deuda

Etiquetas

, , ,

El Producto Interno Bruto son mediciones estadísticas de la actividad económica de los habitantes e instituciones de un país. No hay que olvidar que es un «invento» con diferentes modos de medirlo (producción, ingresos y gastos), que la medición no puede ser perfecta (no se pude medir todo, se usan aproximaciones estadísticas), que con los cambios sociales de las últimas décadas se dejan muchos aspectos sin medir (por ejemplo no se mide el valor que aporta todo el trabajo detrás de la Wikipedia y los beneficios que genera) y tiene sus limitaciones. Aún así es una de las mejoras formas conocidas de medir la «riqueza» o actividad económica de un país que sirve analizar su evolución comparando el resultado de un período a otro. Si los datos se obtienen siempre de la misma forma dan información muy valiosa, casi imprescindible (hasta los presupuestos generales se hacen basados en estimaciones del PIB para el año correspondiente).

Sigue leyendo

Software libre y GNU/Linux en la UIB

Etiquetas

, ,

1993

Me encargan que de la asignatura de sistemas operativas en la UIB. No teníamos ningún Unix accesible a los usuarios, tampoco teníamos PCs para instalar el novedoso GNU/Linux, todo era Macintosh. Encuentro MacMinix, un port de Minix a Mac mínimo, se ejecutaba como programa normal de Mac que abría tres consolas de shell.

Lo pruebo en los Macs del aula informática (unos 70 ordenadores) de nuestro edificio. No funcionaba el teclado español y se colgaba cada pocos segundos. Desesperación, la asignatura comenzaba en febrero de 1994, me quedaban pocos meses y no tenía una plataforma «seria» para darla.

Decido que no hay otra solución que intentar arreglar esos problemas. Pido un portátil Mac prestado al Dept. (un MacBook, me tomaba 45 minutos compilar el kernel) y me pasé unos tres meses modificando el núcleo del Minix. Descubro que el problema del teclado estaba ocasionado porque las tablas de E/S de caracteres del  Minix eran de 7 bits y se necesitaban 8 para el teclado español. Modifico todas esas funciones para trabajar con 8 bits, logro que funcione correctamente. Luego detecto que el culpable de los cuelgues era por la pila de red de Apple Talk, los ordenadores estaban conectados a una que cubría toda la universidad y claramente tenía muchas race conditions no solucionadas. Deshabilito todas esas funciones, el problema se soluciona, no tendríamos red pero tampoco era necesaria.

Así doy dos cursos, 93-94 y 94-95.

Sigue leyendo

Las cosas que no soporto que diga un programador

Etiquetas

,

…y quizás tampoco las soportan los demás programadores.

En mi ordenador funciona

Si el código no funciona en un ordenador con toda las dependencias adecuadas instaladas es un error de tu programa, sin dudas, no hay excusas. Nunca digas esta frase, sólo demuestra que todavía no estás preparado ni para asumir la responsabilidad de tu propio código. Si eres alumno demuestra que no te interesa aprender sólo aprobar con el menor esfuerzo posible… además de tomar como tonto al profesor, como si nunca hubiese oído esta excusa (la oímos decenas de veces cada vez que se presentan prácticas).

Sigue leyendo