La Naturaleza del SoftwareLa Naturaleza del SoftwareTecnologias de Informacion y Desarrollo de Software Articles
El poder de la máquina
2012-02-10 17:29:00 Aunque la máquina recolectora de algodón fue inventada alrededor de 1850, no fue hasta 1943 que alcanzó un grado de utilidad como para ser utilizada en las granjas. Recién para principios de la década de 1950 la máquina empezó a ser introducida en el sur de los Estados Unidos, rápidamente esta máquina destruyó el mercado para la única cosa que vastas cantidades de trabajadores negros del sur tenían para ofrecer: su esfuerzo. Todo esto generó una migración de miles de afroamericanos a las ciudades más industrializadas del norte, como Detroit, Chicago y Nueva York, pero también hacia otros centros que requerían mano de obra para sus fábricas en el sur como Atlanta y Birghminghan. Probablemente la introducción de este artefacto tecnológico, la máquina cosechadora de algodón, explique el movimiento por los derechos civiles de principios de la década de 1960. ¿Acaso la tecnología moldea al hombre? Artículos relacionados Álbum conceptual Desde siempre… La fuente de energía perf... More About: Cultura
Resistance Is Futile
2012-02-09 20:52:00 Finalmente me compré un macbook, desde el cual estoy escribiendo esta nota. Esto puede sorprender a varios, y seguramente alguno me enrrostrará algún post de hace algunos años, pero como dice Unamuno, sólo el que no dice nada no se contradice. Somos seres irracionales, finalmente estos aparatos terminan seduciéndote, y cuando ves en las conferencias y a tus amigos que todos están usando macbooks empiezas a dudar de tu cordura. Hay un truco en todo eso, es un efecto viral, estudiado, planificado por ese gran diseñador que fue Steve Jobs. Se ríe de nosotros en su tumba, finalmente pudo controlar nuestras cabezas. A mi me atrajo el ambiente operativo, es Unix finalmente, con todas las ventajas que significa contar con un Unix que funciona, sigue siendo el mejor ambiente de trabajo para un desarrollador de software. Pero hay que reconocer que el factor de estilo es muy importante. Esas manzanita que brilla, o el teclado retroiluminado es muy cool, y el producto apunta a nuestro ego, fin... More About: Humor
Álbum conceptual
2012-01-14 23:54:00 Intro Time is a gypsy caravan Steals away in the night En 1997 Rush era una banda exitosa, su baterista, Neil Peart era considerado el mejor del mundo, tanto por sus pares como por la crítica. Pero en ese año, su única hija, de 19 años, muere en un accidente automovilístico, diez meses después su mujer, quien nunca superó la pérdida, fallece afectada de cáncer. Un dolido Neil comunica a sus compañeros que ha decidido tomarse una pausa, para reflexionar, no sabe por cuanto tiempo, toma su motocicleta y parte a recorrer la carretera. El futuro de la banda es incierto. Estrofa We will pay the price, But we will not count the cost Nicholas Taleb nos diría que lo sucedido a Neil Peart es uno de esos eventos desastrosos que impacta profundamente nuestro entorno, algo totalmente impredecible, para lo cual no estamos preparados. Un ?Cisne Negro?, tanto para el músico como para la banda, que a partir de este evento sufre un hiato de casi ocho años. La imagen del cisne negro, introducid...
Frustración
2012-01-08 18:22:00 La frustración es ese sentimiento que surge cuando no logramos nuestro deseos, cuando no cumplimos nuestras expectativas. No es un problema tener este sentimiento, el problema no surge del dolor ni de la frustración que vivimos, el problema es nuestra actitud frente a estos sentimientos. Baja tolerancia a la frustración, el gran problema de nuestro tiempo de búsqueda del “éxito” permanente. Tolerar la frustración significa enfrentar nuestros problemas y limitaciones, a pesar de las molestias, e incomodidades que nos provocan. La baja tolerancia a la frustración proviene de que tenemos una percepción equivocada, o exagerada de la situación que estamos viviendo, y de la creencia de que lo que experimentamos es horrible, y no lo queremos vivir ni aguantar. La frustración es parte de la vida, es imposible evitarla, pero debemos aprender a manejarla y superarla. Hay gente que tolera poco la frustración, y terminan desmotivados, abandonando metas y proyectos. Lo que cor...
Fin de Año
2011-12-31 17:47:00 El 2011 fue un año duro. Pero en lo personal tuve algunas satisfacciones, y logros que me permiten hacer un balance positivo. Que un año sea duro no significa que sea un mal año. Vivimos una época en que la gente no medita mucho, y es importante hacer la aclaración. La era digital tiene el problema que ha llevado a la gente a pensar en binario, 0 ó 1. El año es bueno o malo. En parte los informáticos somos culpables de eso, en facebook, las personas son amigas o no, me gusta o no, +1 o nada. Los invito a ver la vida como es en realidad, una realidad continua, no discreta, no digital. Con altos y bajos, con estados, con variables, con contradicciones y pocas certezas. Es hora de finalizar el año, de iniciar el nuevo, del que ya hablaremos. Es tiempo de re iniciar. Pero este post es de cierre, de recuento. Les dejo con mi selección personal de los artículos que me parecen los mejor logrados este año, y nos seguimos viendo el próximo. El Rey del Azúcar: dedicado a mis amigos que ...
Simplejizando?
2011-12-20 04:02:00 Una de las ventajas de publicar Ogu en esta etapa es que me permite confrontar mi diseño con los lectores y potenciales usuarios. He recibido comentarios en el blog y en privado que me han permitido enriquecer y determinar algunos problemas en la sintáxis. El principal problema reside en la ambigüedad de las declaraciones, la gramática hasta ahora permitía el uso opcional de las palabras reservadas ‘def’, ‘var’ y ‘val’. De este modo la siguiente declaración x := 1 era equivalente a esta otra: val x := 1 y obligaba al uso de var para las variables mutables: var x:= 1 Por otra parte la declaración de funciones era de la siguiente manera factorial : Int -> Int factorial 0 = 1 factorial n = n * factorial (n-1) El problema es que una de las características de Ogu es que las funciones son first class, de este modo la siguiente declaración f : Int -> Int es ambigua, puede ser la variable inmutable f de tipo función Int->Int, o la función f. L...
El sistema de tipos de Ogu (1)
2011-12-17 22:24:00 Es momento de analizar más detalles del lenguaje de programación Ogu, vamos a partir por su sistema de tipos, este artículo es una introducción al tema. Ogu es un lenguaje con declaración de tipos estáticos, aunque implementa inferencia de tipos. Veamos algunos ejemplos: i : Int = 0 j := i // j es de tipo Int s : String = ?un string? t := s Ogu tiene ?sacarina sintáctica? para soportar tuplas naipe : (Int,String) = (10, ?espadas?) // naipe es una tupla as := (1,?espadas?) Naipe = (Int,String) // Introduce el tipo Naipe como alias de la tupla (Int,String) Tambien hay sacarina para listas y hashes: vocales : [String] = [?a?, ?e?, ?i?, ?o?, ?u?] ListaDeStrings = [String] mapa : [String : Int] = [?Chile?:56, ?Usa?:1] Las clases pueden ser genéricas: Stack{T} : () = { var _data : [T] = [] push : (x:T) = _data = x :: _data pop : ()->(r:T) = { r = head _data _data = tail _data } } Las tuplas, listas y mapas se implementan en basa tipos genéricos. En realidad al d... More About: Opensource , Sistema
Compiladores
2011-12-15 03:51:00 Compiladores ahora es un ramo electivo para ingeniería en computación, en la facultad en que estudié[1]. Al menos cuando yo estudié me parece que era obligatorio, y creo que debería ser un ramo obligatorio. Ignoro por que la Universidad de Chile decidió hacer este ramo optativo, ignoro también cuanta gente toma esta materia cada semestre,también he escuchado que la matrícula en computación ha bajado, espero que algún académico me confirme esa información. Como sea, creo que la la no obligatoriedad del curso de compiladores es un error, porque es uno de los ramos que mejor sintetiza todo lo aprendido en la carrera. Cuando haces un compilador aplicas: Estructuras de Datos (AST, Grafos de Colores) Algoritmos, Teorías de Autómatas, Teorías de Lenguajes Formales Fundamentos de Lenguajes de Programación (en el diseño del lenguaje) Optimización Programación en código de máquina (real o virtual) Modularidad, Integración, bajo acoplamiento (la estructura del analizador léxico, sintáctico, se... More About: Opensource
Java debe morir
2011-12-08 14:56:00 ?De todas las formas de adquirir libros se considera la más gloriosa el escribirlos uno mismo? ? Walter Benjamin ??Ta muy malo el corralero, y allá en el potrero como viejo está. Hay que ayudarlo a que muera para que no sufra más.? ? Sergio Sauvalle Esa pareces ser la consigna desde hace unos dos o tres años, java, como lenguaje de programación, debe dar el paso a lenguajes más modernos. Cuando uno ocupa durante mucho tiempo una herramienta empieza a descubrir sus limitaciones, y trata de hacer cambios para mejorarla, adaptaciones, o derechamente vas a adquirir otra. Es natural, somos seres tecnológicos, y uno de los elementos que nos diferencia es nuestro uso de las herramientas. Somos expertos en la mejora continua de nuestras herramientas, nuestra historia es, en cierto sentido, la historia de nuestras herramientas. De todas las herramientas disponibles para un programador el lenguaje es la más importante. Y vaya que ha evolucionado, aunque no siempre para mejor En 1973 el lengua... More About: Java , Ruby
Carta de Derecho para los Usuarios de Redes Sociales
2011-11-28 01:46:00 En marzo de este año, y a raíz de los incidentes de Google y Facebook a fines del año pasado, que mostraban como estas compañías, y probablemente muchas más, no respetan la privacidad de sus usuarios, un grupo de panelistas de la conferencia SXSW en Estados Unidos redactaron un documento que denominaron Social Network Users? Bill of Rights. Por cierto, esta carta no ha tenido mucha difusión, que yo sepa, pero es interesante, e importante. Creo que los usuarios de redes sociales deberíamos fomentar la creación de un documento como este, que tenga un real peso legal, ¿no les parece?, les dejo la traducción de este documento y espero sus opiniones. Nosotros los usuarios esperamos que los sitios de redes sociales nos provean de los siguientes derecho en sus Términos de Servicio, Políticas de Privacidad, y en la implementación de sus sistemas: Honestidad: Honren su política de privacidad y términos de servicio. Claridad: Aseguren que sus políticas, términos de servicio, y configuraciones... More About: Para
Gödel
2011-11-24 02:35:00 por Igor Kramer: Gödel from Igor Kramer on Vimeo. Artículos relacionados La respuesta La Paradoja de Pinocho y el Origen de la Computación Prioridades
Vint Cerf
2011-11-23 00:34:00 En 1963 Joseph Licklider escribió su famoso memorandum, ¿lo recuerdan? ¿no? bueno, la historia la conté en este post. Su idea era crear la ?red intergaláctica de computadoras?, el era el hombre del sueño. Leonard Kleinrock, el chico que quería un condensador para construir la radio que salía en la contratapa del comic Superman (la historia está aquí), nos dió la teoría matemática para poder construir una red basada en packet switching, el fue el hombre de la teoría. Después Lawrence Roberts dirigió al equipo que construyó ARPANET, la red predecesora de internet. Se llama Internet, porque es una red de redes: inter-net, ?entre redes?. Alrededor de 1973 habían varias redes que se estaban interconectando entre ellas y con ARPANET. En ese tiempo se hizo evidente que se necesitaba un mecanismo que permitiera unificar las redes. Para resolver este problema Robert E. Khan reclutó a Vinton Cerf, un joven estudiante de doctorado, para trabajar en la especificación de un nuevo protocolo. El f... More About: Cultura
Charla: Web Semántica y Linked Data con Alvaro Graves
2011-11-21 23:25:00 Watch live streaming video from eltestacido at livestream.com Artículos relacionados No se encontraron artículos relacionados More About: Data
La respuesta
2011-11-17 02:47:00 Dicen que al final de sus días Kurt Gödel trataba de demostrar la existencia de Dios mediante un razonamiento ontológico. En 1960 escribió en sus apuntes sus puntos de vista filosóficos, para él el mundo debía ser racional. Supongo que no habría aceptado los resultados actuales de las ciencias cognitivas. También se dice que era un hombre tímido que vivía un tanto angustiado? Me pregunto ¿Cuál habría sido la respuesta de Gödel al problema que planteamos el domingo? Acá está de nuevo: ¿En qué estaría pensando el profesor que escribió esto en la pizarra? Este es un verdadero ataque de denegación de servicio (DOS) al cerebro, ¿no creen? Vamos con la respuesta, o al menos la respuesta que supongo espera el profesor que escribió esto. La respuesta no es 25%, ni 50%, la respuesta es B, claro, ¡estamos hablando de la respuesta que esperaría un profesor de matemáticas! El razonamiento es el siguiente: Primero hay que considerar que esta es una ?meta pregunta?, una pregunta sobre una pregunt... More About: Humor
Desafío
2011-11-14 01:39:00 Para los que no hablan inglés, la pizarra dice: “Si usted escoge una respuesta al azar para esta pregunta, ¿cual es la probablidad de que sea correcta? A) 25% B) 50% C) 60% D) 25%” A ver como les va, sin hacer trampas, ni buscar en google. Artículos relacionados Matemáticas y Verdad Entender Entre la Tierra y la Luna More About: Cultura
Comprensión de lectura
2011-11-13 00:03:00 Resulta que el modelo de cascada es quizás uno de los mayores errores de comprensión de lectura en toda la historia de la ingeniería de software. En 1970 Winston Royce escribe un paper donde, desafortunadamente, usa las palabras ?grandiosa aproximación? para referirse a la siguiente figura: En realidad Winston Royce escribió este paper para criticar este modelo, pero terminó siendo citado una y otra vez por la comunidad ?científica? como un modelo clásico y establecido. Es típico encontrar referencias del tipo: ?el modelo de cascada es un modelo probado (Royce, 1970)?. Pero en realidad Royce inventa este diagrama en su artículo para ilustrar como se han manejado proyectos en los que él participaba y para posteriormente proponer su propio modelo de desarrollo iterativo. El modelo de Royce, no sólo es iterativo incremental, sino que propone 5 elementos fundamentales para el éxito de un proyecto. Diseñar primero. Documentar el diseño. Construir dos veces: una primera versión que es rev...
Charla: El Tao de NoSQL
2011-11-10 21:02:00 Esta tarde a las 19:00 horas estaremos con mi amigo Ubaldo Taladriz dando una charla sobre NoSQL, desde el Colegio de Ingenieros. El streaming de video de la charla estará disponible en este sitio a esa hora. Stay Tuned. Artículos relacionados No se encontraron artículos relacionados
StartechConf 2011
2011-11-06 16:16:00 Quedé muy contento por asistir a la StartechConf 2011. Tengo que felicitar a su equipo organizador. Fueron 2 jornadas muy intensas con charlas de gran calidad, los invitados eran de primer nivel. Estamos hablando de expositores conocidisimos en el ámbito de las conferencias de desarrollo a nivel mundial. Creo que todos los asistentes aprendimos mucho. Algunos de ustedes queridos lectores (los que estén usando browsers modernos), notarán que algo de CSS3 aprendí, después de las excelentes charlas de la pareja formada por Stephanie Sullivan Rewis (@stefsull en twitter) y su esposo Greg Rewis (@garazi en twitter). Es cierto que la mayoría de las charlas estuvieron cargadas al desarrollo de front end (HTML5, CSS3, jQUery, etc). Pero también hubo algo para el backend, y tuvimos una muy buena charla conceptual sobre bases de datos relacionales y no relacionales dictada por Mark Ramm (@markramm), una charla a la que le puse especial interés, pues es uno de los temas que me mantiene ...
Sobre cómo rascarse una oreja
2011-11-03 15:36:00 Hay veces que nos encanta rascarnos la oreja izquierda con la mano derecha, por puro complicar las cosas Eso se da mucho en las etapas de diseño y modelamiento de datos. Un problema simple después de pasar por la etapa de análisis y diseño puede quedar así: ¡Ah!, que hermosos son estos modelos genéricos, con trazabilidad, controles de accesos, y perfiles, una orgía de tablas y relaciones (¿será que eso de las ?relaciones foráneas? despierta alguna inconfesable fantasía en los analistas de sistemas?) A veces esto se convierte en puro onanismo, originado por un axioma que fue imbuido en nuestros cerebros por un grupo de investigadores de IBM en 1969[1], la idea de que todo debe ser modelado en una base de datos relacional hasta la ?vigésima quinta forma normal? [2]. No hay que desconocer que el modelo relacional tiene sus ventajas, después de todo es el corazón de la mayoría de los sistemas transaccionales en la actualidad. A saber las bases de datos relacionales, cuando se usan...
Más magia con Kinect
2011-11-02 03:16:00 Artículos relacionados HoloDesk Los problemas de un plebiscito Red Hat JBoss Summit 2011 More About: Magia
HoloDesk
2011-10-30 17:41:00 Interesante proyecto de Microsoft Research, usando la tecnología de kinect: Artículos relacionados No se encontraron artículos relacionados
El Espejismo de la Seguridad
2011-10-22 16:37:00 Mi amigo Marco Zúñiga me comentó sobre este video con la charla de Bruce Schneier sobre el espejismo de la seguridad, es muy recomendable. Fíjense que habla de muchos de los sesgos cognitivos de los que hemos hablado antes (abajo del video les dejo los enlaces a los artículos donde hemos hablado de estos sesgos). Bruce Schneier y el espejismo de la seguridad, charla TED, octubre 2010: Algunos artículos donde hemos hablado de los sesgos cognitivos que menciona Bruce Schneier en su charla: Causas Imaginadas Condiciones Necesarias Encuadres Decisiones Irracionales Artículos relacionados El problema con la Razón La hora como un parámetro Radiación
Desde siempre?
2011-10-18 16:11:00 “On two occasions I have been asked [by members of Parliament], ‘Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?’ I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.” (En dos ocasiones he sido consultado [por miembros del parlamento], ‘Diganos por favor, Mr. Babbage, si coloca en la máquina las cifras incorrectas, ¿obtendremos la respuesta correcta? ‘ No soy capaz de comprender el tipo de confusión de ideas que pueda provocar semejante pregunta). – Charles Babbage, 1792-1871 Artículos relacionados Perspectiva Encuadres Un mundo controlado por algoritmos More About: Humor , Cultura
Ensaladas y algoritmos
2011-10-16 17:55:00 Hace unos de años, probablemente inspirado por Ratatouille, me dió por cocinar. Mi mujer dice que no cocino mal, pero resulto un tanto caro como ?chef?, aparte de desordenado (algo para mejorar). Pero he aprendido a preparar algunos platos, y he experimentado con otros, es una actividad que resulta bastante grata y relajante, quizás porque hay una relación con programar un algoritmo eficiente. Una de los platos mas sencillos y entretenidos para aprender a cocinar son las ensaladas, mejor si van acompañadas de alguna salsa. Ayer sábado en la tarde improvisamos con mi hija mayor y mi esposa una deliciosa ensalada de manzanas verdes con atún. La receta va al final de este post, lo interesante fue el proceso aplicado para armar esta ensalada en particular. Teníamos una restricción de cinco minutos para ejecutar la tarea, así que dividimos el trabajo, alguien picaba las manzanas, mientras otra persona preparaba la lechuga, y un tercero mezclaba manzanas y lechugas con el atún. Al f...
DMR
2011-10-13 04:54:00 “C is quirky, flawed, and an enormous success.” – Dennis Ritche C es el lenguaje madre de todos los lenguajes de programación que importan hoy en día.Si fueramos linguistas C sería como el protoindoeuropeo, la teorica lengua que dio origen al sanscrito, el griego antiguo, el germánico, el latín, y de ahí las lenguas romances… Conozco muchos lenguajes de programación, y he escrito miles de lineas de código desde assembler hasta Groovy, pero mi lenguaje matriz es C, a pesar de que aprendí Ratfor, y Pascal antes. Hace poco escribí en mi trabajo un programita en C que convirtió un proceso de 4 horas en una tarea de segundos. No es que C sea rápido en si mismo, lo que pasa es que C me enseño a programar en forma disciplinada, porque debes ser muy ordenado para escribir bien en este lenguaje, porque estás muy cerca de la plataforma, de ahí proviene su poder. C fue escrito por Dennis Ritchie, quien junto a Ken Thompson construyeron el sistema operativo Unix, a prin...
Creadores de Universos
2011-10-11 14:36:00 The computer programmer is a creator of universes for which he alone is responsible. Universes of virtually unlimited complexity can be created in the form of computer programs. (El programador de computadoras es un creador de universos para los cuales es el único responsable. Universos de complejidad virtualmente ilimitada pueden ser creados en la forma de programas de computadora.) – Joseph Weizenbaum, Computer Power and Human Reason Artículos relacionados Como contratar malabaristas DMR El mejor proceso de desarrollo de software
Los problemas de un plebiscito
2011-10-08 17:20:00 Nunca atribuyas a la malicia lo que puede explicarse por la incompetencia ? Napoleón Bonaparte Enzo Abbagliati (@cadaunante) tiene mucha razón en su crítica ?el plebiscito que no fue?. El entusiasmo no es excusa para hacer mal las cosas, menos si se quiere lograr un grado de legitimada para un movimiento ciudadano. Hace años participé en una de los procesos de conteo oficial, durante la que fue la elección presidencial donde resultó Eduardo Frei, y ahí pude palpar las dificultades tecnológicas y logísticas de realizar un proceso de votación, y eso que mi equipo era liderado por amigos que ya eran expertos en este tipo de actividades. Por ese tiempo también exploramos las posibilidades del voto electrónico. Personalmente creo que no hay manera técnica de hacer el voto electrónico bien, menos por internet. Hay gente que piensa distinto, sobretodo los que venden soluciones de voto electrónico. Después de leer la reflexión de @cadaunante decidí echar un vistazo superficial al sitio www.... More About: Sociedad
Steve Jobs
2011-10-06 15:37:00 You can’t just ask customers what they want and then try to give that to them. By the time you get it built, they’ll want something new. “No puedes simplemente preguntarle a tus clientes lo que quieren y tratar de dárselo. Para cuando lo hayas construido, ellos van a quere algo nuevo” — Steve Jobs Artículos relacionados No se encontraron artículos relacionados More About: Steve Jobs
Datos, datos, datos?
2011-10-03 14:30:00 En 1980 IBM introdujo estos dispositivos de almacenamiento de aproximadamente 2.5 Gigabytes: Si mal no recuerdo vi algún "refrigerador" parecido a estos en la sala de servidores del CEC en la Escuela de Ingeniería cuando estudiaba. Ya para 1987 este modelito más compacto tenía la asombrosa capacidad de almacenar 7.5 Gigabytes: Hoy en día, tan solo 24 años después, contamos con dispositivos como este: Con una capacidad de 1 Terabyte, unas 134 veces más capacidad que , en la palma de la mano. Asombroso ¿verdad? Dado que tenemos esta capacidad de almacenamiento de información, a costos cada vez menores, es lógico que lo que queremos hacer es mejorar nuestra capacidad de realizar análisis de datos. ¿Qué pasa si queremos hacer análisis de series de tiempo, predicciones, que agrupan información de manera secuencial, donde el orden es importante? El tipo de análisis que responde preguntas del tipo ¿qué pasó?, ¿por qué pasó?, ¿que pasará después? El almacenamiento no r...
El mejor proceso de desarrollo de software
More articles from this author:2011-09-29 18:48:00 Olviden el agilismo y los manifiestos, el mejor proceso para desarrollar software es muy simple. 1. Entender el problema, en este punto es buen conversar con el usuario, escucharlo. 2. Anotar en alguna parte lo que se debe hacer. 3. Sentarse a programar la solución. 4. Pasar a producción. 5. Corregir los bugs rapidamente y volver al punto 4. 6. Si funciona, buscar otro problema a resolver. Este proceso mejora si no se le piden muchas opiniones a los usuarios y se cuenta con programadores capaces de programar. Artículos relacionados Una breve y disparatada historia de los lenguajes de programación DMR Creadores de Universos More About: Software , Humor 1, 2, 3, 4, 5, 6, 7 |



