Ir al contenido principal

Entradas

¿Sueñan los androides con ovejas eléctricas?

Siempre he pensado que el concepto de humanidad, para los seres humanos puede llegar a ser un misterio de manera muy cotidiana. A lo largo de la historia, el protagonista Rick Deckard cuestiona, la caracterización del “humano”, pues aún cuando es un género que recurre en gran medida a la fantasía, el “Cyberpunk” nos ayuda a que estas cuestiones tengan un verdadero sentido, especialmente en el mundo actual, donde lo cibernético puede quedar más a la vista como algo cotidiano. En el mundo donde la novela toma lugar, los robots son parte de la vida cotidiana, androides y animales cibernéticos conviven y ayudan a los seres humanos a realizar sus labores diarias. Dichos robots son descritos con un aspecto muy apegado a la naturaleza de lo que pretenden ser, razón por la que muchas veces suelen ser confundidos con sus contrapartes naturales; sin embargo, a pesar de que los a los androides tienen un aspecto y comportamiento humano no logran desarrollar lo que se define c
Entradas recientes

MapReduce

Sabemos que en la industria del cómputo existe una carrera por ver quién puede encontrar un mejor algoritmo, o “una mejor manera”, lo cual como ya hemos destacado anteriormente, no es una tarea nada sencilla, pues no solo implica imaginación, sino ingenio e inventiva, todo respondiendo a las necesidades que van surgiendo a lo largo del un exhaustivo ejercicio de prueba y error que ejercemos a lo largo de (probablemente) toda nuestra vida. El caso de corporaciones gigantes que invierten grandes cantidades de presupuesto y recurso humano en la mejora sus servicios o productos, es prácticamente el ejemplo más contundente (y único) que hay. Google es una empresa que tuvo la necesidad de crecer a lo largo de décadas de inmenso trabajo e inventiva, buscando cumplir una cantidad tremenda de solicitudes a través de internet, todo haciendo el ejercicio que mencionamos anteriormente. Durante parte de este proceso desarrollaron el algoritmo de MapReduce, que permite dividir una i

Teaching Concurrency with Erlang

Como presentamos anteriormente en la entrada correspondiente a Erlang, nos queda claro que el Paralelismo aunque es diferente a la concurrencia, ambos nos ayudan a alcanzar nuestro deseado objetivo de tener un paradigma de desarrollo de software más enfocado al aprovechamiento de recursos listos para multiproceso. A medida que la tecnología avanza, el interés por hacer programas Concurency-Oriented incrementa debido a que cada vez se integra tecnología más compleja y completa que satisface diversas necesidades que han surgido con el tiempo, así como la miniaturización, la eficiencia y por supuesto la potencia. Actualmente tenemos procesadores que tienen al menos dos núcleos, y gracias a un poco de astucia mercantil e ingenieril, podemos decir que ambos núcleos se pueden sentir como cuatro. Así mismo contamos con teléfonos móviles que cuentan con hasta 8 núcleos y tienen arquitecturas interesantes como BIGlittle; sin embargo esta necesidad por “tirar más núcleos al problema”

Joe Armstrong on Erlang

Erlang es un lenguaje de programación semifuncional que posee una estructura dinámica, permite dar asignaciones únicas a variables, y de acuerdo a su definición, es tolerante a fallas, así como posee una característica que es de suma importancia para este blog, es que tiene incorporado el soporte para trabajos concurrentes. En entradas anteriores hablábamos del cambio de paradigma, que es algo que de hecho hemos insistido hasta el cansancio en casi todas las entradas, pues el reto ya no es conseguir el hardware capaz de trabajar con multiprocesamiento, o en el caso de Erlang, concurrencia, y este lenguaje de programación es un acercamiento bastante acertado al mundo del paralelismo; sin embargo, paralelismo y concurrencia no son inherentemente lo mismo. A pesar de que hablamos de conceptos algo distintos, el interés es muy similar pues la concurrencia nos ha ayudado a alcanzar algo así como “un paralelismo falso”. Podemos explicarlo de la manera más sencilla retomando un

El código enigma

Muchas veces la ciencia ficción está más cerca de lo que creemos, y a veces terminamos ignorando las maravillosas hazañas que personas increíbles han logrado desde tiempos inmemoriables, todo porque damos por sentadas muchas de las cosas que poseemos y hemos logrado a través de décadas de acumular conocimiento y experimentando con nuestras posibilidades. Especialmente cuando vemos películas documentales que tratan de narrarnos una forma en la que sucedieron eventos que dieron lugar a cosas que pueden no verse muy importantes hoy en día. En este blog discutimos en gran medida las posibilidades y retos que implica el paralelismo en el software ya que el hardware lo tenemos normalizado; sin embargo cabe destacar que no siempre fue así, y que hemos pensado en el potencial de mucha de la tecnología que manejamos hoy, probablemente desde que la concebimos o incluso desde que imaginábamos qué sería bueno alcanzar para lograr solucionar ciertos problemas que hemos tenido a lo lar

The State of Parallel Programming

Anteriormente hemos hablado del gran reto de cambiar el paradigma del desarrollo del software, pues este ha logrado mantenerse al grado de que la misma comunidad que lo mantiene fue poco a poco integrando algunos elementos del paralelismo, y a pesar de esto el “mindset” que se requiere para paralelizar procesos durante el desarrollo no se encuentra normalizado. Tal como el caso de los lenguajes de programación más populares, buscando la forma de ofrecer las funciones más actuales. No obstante, al paralelizar con estas herramientas no soluciona el principal problema, de lo que el cambio de paradigma refiere. Según UBM TechWeb, necesitamos más y mejores herramientas para paralelizar tareas en especial cuando nos involucramos con código lo suficientemente complejo como para necesitar debuggeo intensivo, pues muchas veces podemos recaer en paralelización incorrecta, incluso aunque las estadísticas nos digan que un buen número de programadores están familiarizados con

Welcome to the Jungle

“Welcome to the jungle we've got fun and games ♪♫♬” El ser humano siempre ha buscado alternativas para todo lo que le aqueja, si lo que estaba usando antes ya no satisface sus necesidas. Puede que las condiciones cambien o que las necesidades lo hagan. Así como hablamos en “The Free Lunch is Over”, tenemos que la problemática del proceso de miniaturización de las computadoras, está alcanzando un límite, este límite en realidad tiene un nombre y es conocido como “La ley de Moore”, la única alternativa obvia a no poder miniaturizar más es hacer chips más grandes. Anteriormente los chips que encontrábamos en muchas computadoras era ya de por sí muy grande y con especificaciones de energía que llegaban a ser exorbitantes si el rendimiento que buscábamos también era considerable, esta opción no parece ser tan mala para los fabricantes que rápidamente se aproximan a escalas subatómicas de medición, donde todo se vuelve un misterio de acuerdo a la física. Sin embargo la le