<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-11818694</id><updated>2009-11-26T21:55:22.975+01:00</updated><title type='text'>Yet Another Programming Weblog</title><subtitle type='html'>Como su propio nombre indica, aún otro weblog de programación más</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default?start-index=26&amp;max-results=25'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>142</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11818694.post-687331825973261502</id><published>2009-09-12T00:16:00.004+02:00</published><updated>2009-09-12T08:27:58.548+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FriendFeed'/><category scheme='http://www.blogger.com/atom/ns#' term='Facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='software libre'/><category scheme='http://www.blogger.com/atom/ns#' term='no bloqueante'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='servidor web'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Facebook publica Tornado, servidor web usado en FriendFeed</title><content type='html'>Como cuentan en &lt;a href="http://lwn.net/Articles/352056/"&gt;LWN&lt;/a&gt;, &lt;a href="http://developers.facebook.com/news.php?blog=1&amp;story=301&amp;_fb_noscript=1"&gt;Facebook ha anunciado el lanzamiento de su servidor web Tornado bajo la licencia Apache&lt;/a&gt;. &lt;a href="http://www.tornadoweb.org/"&gt;Tornado&lt;/a&gt; es un servidor Web &lt;a href="http://en.wikipedia.org/wiki/Non-blocking_I/O"&gt;no bloqueante&lt;/a&gt; escrito en Python, diseñado para gestionar miles de conexiones simultáneas, lo que lo hace ideal para servicios Web de "tiempo real". Tornado es la pieza central de la infraestructura de "tiempo real" de &lt;a href="http://friendfeed.com/"&gt;FriendFeed&lt;/a&gt;, que tienen previsto mantener activamente. Tornado es similar a "frameworks" Web ya existentes (&lt;a href="http://www.djangoproject.com/"&gt;Django&lt;/a&gt;, &lt;a href="http://code.google.com/appengine/"&gt;webapp de Google&lt;/a&gt;, &lt;a href="http://webpy.org/"&gt;web.py&lt;/a&gt;) pero se centra en &lt;a href="http://bret.appspot.com/entry/tornado-web-server"&gt;la velocidad y en manejar grandes cantidades de tráfico simultáneo&lt;/a&gt;. El código se puede obtener de &lt;a href="http://www.tornadoweb.org/"&gt;tornadoweb.org&lt;/a&gt;. Lo comentan también en &lt;a href="http://www.reddit.com/r/programming/comments/9j8yp/facebook_opensources_friendfeeds_python_web/"&gt;reddit&lt;/a&gt;, &lt;a href="http://developers.slashdot.org/story/09/09/11/0256233/Facebook-Releases-Open-Source-Web-Server?from=rss"&gt;Slashdot&lt;/a&gt; y &lt;a href="http://news.ycombinator.com/item?id=815665"&gt;Hacker News&lt;/a&gt; entre otros.&lt;br /&gt;&lt;br /&gt;Hay que recordar además que &lt;a href="http://yapw.blogspot.com/2008/12/facebook-publica-su-versin-modificada.html"&gt;Facebook publicó su versión modificada de memcached&lt;/a&gt;, después de haber &lt;a href="http://barrapunto.com/article.pl?sid=08/06/03/0015205"&gt;publicado parte de su código&lt;/a&gt;. También recordar que &lt;a href="http://barrapunto.com/article.pl?sid=09/08/10/2017235"&gt;hace poco más de un mes que Facebook ha adquirido Friendfeed&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://softlibre.barrapunto.com/article.pl?sid=09/09/11/2157220"&gt;Más comentarios en &lt;em&gt;Facebook publica Tornado, servidor web usado en FriendFeed&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-687331825973261502?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/687331825973261502/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=687331825973261502' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/687331825973261502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/687331825973261502'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2009/09/facebook-publica-tornado-servidor-web.html' title='Facebook publica Tornado, servidor web usado en FriendFeed'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-316990514998847811</id><published>2009-07-27T23:31:00.002+02:00</published><updated>2009-07-27T23:35:07.672+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='concurrencia'/><category scheme='http://www.blogger.com/atom/ns#' term='C++0x'/><category scheme='http://www.blogger.com/atom/ns#' term='conceptos'/><category scheme='http://www.blogger.com/atom/ns#' term='ISO C++'/><category scheme='http://www.blogger.com/atom/ns#' term='excepciones'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='diff'/><category scheme='http://www.blogger.com/atom/ns#' term='ANSI C++'/><category scheme='http://www.blogger.com/atom/ns#' term='bindiff'/><title type='text'>Enlaces varios (VI)</title><content type='html'>Hace muchos días que no he podido escribir por aquí, así que quizás a alguien le pueda parecer interesante el &lt;em&gt;dump&lt;/em&gt; de cosas que tenía &lt;a href="http://www.google.com/reader/shared/08374875025225505515"&gt;semi-guardadas&lt;/a&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Sobre el lío de la eliminación de los conceptos en el borrador C++0x y su retraso en general: &lt;ul&gt;&lt;li&gt;&lt;a  href="http://herbsutter.wordpress.com/2009/07/21/trip-report/"&gt;'Trip Report: Exit Concepts, Final ISO C++ Draft in ~18 Months' de Herb Sutter&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ddj.com/architect/218600111"&gt;'The C++0x "Remove Concepts" Decision' de Bjarne Stroustrup&lt;/a&gt;&lt;/li&gt;&lt;li&gt;También en &lt;a href="http://tech.slashdot.org/story/09/07/23/1817225/Stroustrup-Says-New-C-Standard-Delayed-Until-2010-Or-Later"&gt;Slashdot&lt;/a&gt; y &lt;a href="http://www.reddit.com/r/programming/comments/92tnd/concepts_removed_from_c0x/"&gt;reddit&lt;/a&gt;&lt;/ul&gt;&lt;li&gt;&lt;a href="http://blog.chromium.org/2009/07/smaller-is-faster-and-safer-too.html"&gt;Smaller is Faster (and Safer Too)&lt;/a&gt;. De cómo chromium se auto-parchea con diferencias binarias.&lt;/li&gt;&lt;li&gt;&lt;a href="http://rss.slashdot.org/~r/Slashdot/slashdotDevelopers/to/~3/5GHlbSt87cU/Tech-Or-Management-Beyond-Age-39"&gt;Tech Or Management Beyond Age 39?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Dos sobre concurrencia y excepciones: &lt;a href="http://herbsutter.wordpress.com/2009/06/23/answering-email-about-error-handling-in-concurrent-code/"&gt;'Answering email about error handling in concurrent code' de Herb Sutter&lt;/a&gt; y &lt;a href="http://www.bluebytesoftware.com/blog/PermaLink,guid,652962f1-5073-49a4-b233-9ca24b494742.aspx"&gt;'Concurrency and exceptions' de Joe Duffy&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/~mig21/journal/32802"&gt;La misma noticia y más comentarios en &lt;em&gt;Enlaces varios (VI)&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-316990514998847811?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/316990514998847811/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=316990514998847811' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/316990514998847811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/316990514998847811'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2009/07/enlaces-varios-vi.html' title='Enlaces varios (VI)'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-2406545680858133939</id><published>2009-06-25T23:25:00.006+02:00</published><updated>2009-06-26T09:18:41.932+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='win32'/><category scheme='http://www.blogger.com/atom/ns#' term='gcc'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='gcc4.4'/><category scheme='http://www.blogger.com/atom/ns#' term='excepciones'/><title type='text'>MinGW publica GCC 4.4.0</title><content type='html'>El equipo de &lt;a href="http://www.mingw.org/"&gt;MinGW&lt;/a&gt; ha publicado &lt;a href="http://sourceforge.net/project/shownotes.php?release_id=691876"&gt;los binarios de GCC 4.4.0 para Windows&lt;/a&gt;. De entre las novedades destacan un mejor tratamiento de excepciones, una versión de libstdc++ en forma de librería compartida, y soporte para &lt;a href="http://en.wikipedia.org/wiki/Thread-local_storage"&gt;TLS (thread-local storage)&lt;/a&gt;, además de todas las novedades de &lt;a href="http://gcc.gnu.org/gcc-4.4/"&gt;la versión 4.4.0&lt;/a&gt;. Hay que recordar que la anterior versión soportada oficialmente era GCC 3.4.5. Más en &lt;a href="http://www.reddit.com/r/programming/comments/8v5dz/mingw_updates_to_gcc_440/"&gt;reddit&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;El manejo de las excepciones ha mejorado drásticamente debido a que se ha usado una implementación basada en &lt;a href="http://en.wikipedia.org/wiki/DWARF"&gt;DWARF&lt;/a&gt;, dejando de lado el viejo modelo &lt;a href="http://en.wikipedia.org/wiki/Setjmp.h"&gt;SJLJ&lt;/a&gt;, que ya no estará disponible. Además con esta versión las excepciones ya pueden atravesar las fronteras de las DLL sin problemas.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/article.pl?sid=09/06/25/2121226"&gt;La misma noticia y más comentarios en &lt;em&gt;MinGW publica GCC 4.4.0&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-2406545680858133939?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/2406545680858133939/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=2406545680858133939' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/2406545680858133939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/2406545680858133939'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2009/06/mingw-publica-gcc-440.html' title='MinGW publica GCC 4.4.0'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-1909560237886703182</id><published>2009-05-26T22:40:00.003+02:00</published><updated>2009-05-26T23:51:23.511+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='concurrencia'/><category scheme='http://www.blogger.com/atom/ns#' term='memcpy'/><category scheme='http://www.blogger.com/atom/ns#' term='abstracción no perfecta'/><category scheme='http://www.blogger.com/atom/ns#' term='capas'/><category scheme='http://www.blogger.com/atom/ns#' term='programadores'/><category scheme='http://www.blogger.com/atom/ns#' term='programación'/><category scheme='http://www.blogger.com/atom/ns#' term='memoria'/><category scheme='http://www.blogger.com/atom/ns#' term='abstracción'/><title type='text'>memcpy y la concurrencia</title><content type='html'>Si el otro día comentaban en barrapunto que &lt;a href="http://barrapunto.com/article.pl?sid=09/05/15/2146205"&gt;en MS marcaban como peligroso el uso de &lt;tt&gt;memcpy&lt;/tt&gt;&lt;/a&gt; hoy podemos encontrar otra razón para usarlo con precaución. En &lt;a href="http://blogs.sun.com/dave/entry/memcpy_concurrency_curiosities"&gt;memcpy() concurrency curiosities&lt;/a&gt; David Dice habla de un comportamiento antiintuitivo de dicha función que sale a la luz en entornos fuertemente concurrentes: sobreescribir la misma secuencia constante en memoria puede tener valores no válidos temporalmente durante su llamada, leídos por otros threads con resultado catastrófico si no se tiene cuidado. Otro caso más en el que &lt;a href="http://yapw.blogspot.com/2008/05/demasiadas-capas-de-abstraccin.html"&gt;las abstracciones que usamos evolucionan a su manera&lt;/a&gt;, quizás con explicación pero con resultados que contradicen la intuición y exigen, a veces, conocer que se cuece allá abajo. (No mucho) más en &lt;a href="http://www.reddit.com/r/programming/comments/8n8we/memcpy_concurrency_curiosities/"&gt;reddit&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/~mig21/journal/32465"&gt;La misma entrada y más comentarios en &lt;em&gt;memcpy y la concurrencia&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-1909560237886703182?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/1909560237886703182/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=1909560237886703182' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/1909560237886703182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/1909560237886703182'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2009/05/memcpy-y-la-concurrencia.html' title='memcpy y la concurrencia'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-3846353203461199018</id><published>2009-05-05T19:48:00.002+02:00</published><updated>2009-05-05T21:48:14.392+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C++0x'/><category scheme='http://www.blogger.com/atom/ns#' term='C++09'/><category scheme='http://www.blogger.com/atom/ns#' term='gcc'/><category scheme='http://www.blogger.com/atom/ns#' term='gcc4.4'/><category scheme='http://www.blogger.com/atom/ns#' term='ISO C++'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='ANSI C++'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual C++'/><category scheme='http://www.blogger.com/atom/ns#' term='VC10'/><category scheme='http://www.blogger.com/atom/ns#' term='VC++'/><title type='text'>Avances en las implementaciones de C++0x</title><content type='html'>Por lo que he leído hace un tiempo y ahora puedo comentar aquí, tanto gcc como VC++ se están &lt;em&gt;poniendo las pilas&lt;/em&gt; en la implementación de &lt;a href="http://en.wikipedia.org/wiki/C++0x"&gt;C++0x&lt;/a&gt;.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Vía &lt;a href="http://icewinddale.blogspot.com/2009/04/qt-451-y-gcc-44.html"&gt;Drizzt, Qt 4.5.1 y gcc 4.4&lt;/a&gt; leo que &lt;a href="http://gcc.gnu.org/gcc-4.4/changes.html"&gt;entre las más notables novedades de gcc4.4 se incluyen muchas características del C++0x&lt;/a&gt;, entre las cuales están declaraciones con &lt;tt&gt;auto&lt;/tt&gt; y la inicialización de objetos con listas. Bien :) Se puede saber más en la página de status de la implementación de &lt;a href="http://gcc.gnu.org/gcc-4.4/cxx0x_status.html"&gt;c++0x en gcc 4.4&lt;/a&gt; donde se puede ver que la concurrencia no es una de las características más adelantadas, empezando por el modelo de memoria. Tiempo al tiempo...&lt;/li&gt;&lt;li&gt;En VC++ también van a buen ritmo, lo cual es bueno para el estándar, no como pasó con el VC++6 de infausto recuerdo y larga duración :). En &lt;a href="http://blogs.msdn.com/vcblog/archive/2009/04/22/decltype-c-0x-features-in-vc10-part-3.aspx"&gt; el blog oficial de &lt;em&gt;VisualC&lt;/em&gt; hablan de decltype (C++0x Features in VC10, Part 3)&lt;/a&gt; repasando &lt;a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf"&gt;esa característica de C++0x&lt;/a&gt; que por cierto ya está implementada también en gcc. Además apuntan a las dos entradas anteriores, que también resultan instructivas &lt;a href="http://blogs.msdn.com/vcblog/archive/2008/10/28/lambdas-auto-and-static-assert-c-0x-features-in-vc10-part-1.aspx"&gt;Lambdas, auto, and static_assert: C++0x Features in VC10, Part 1&lt;/a&gt; y &lt;a href="http://blogs.msdn.com/vcblog/archive/2009/02/03/rvalue-references-c-0x-features-in-vc10-part-2.aspx"&gt;Rvalue References: C++0x Features in VC10, Part 2&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Y ya que estamos en el tema dos enlaces de propina: &lt;a href="http://www.justsoftwaresolutions.co.uk/files/designing_mt_programs.pdf"&gt;Designing Multithreaded Programs in C++0x de Anthony Williams&lt;/a&gt; y &lt;a href="http://blog.cplusplus-soup.com/2009/03/gcc-c0x-features-exploration.html"&gt;GCC C++0x Features Exploration en C++ Soup!&lt;/a&gt; y por supuesto la imprescindible wikipedia que tiene un estupendo punto de entrada: &lt;a href="http://en.wikipedia.org/wiki/C++0x"&gt;C++0x&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/~mig21/journal/32316"&gt;La misma entrada y más comentarios en &lt;em&gt;Avances en las implementaciones de C++0x&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-3846353203461199018?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/3846353203461199018/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=3846353203461199018' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/3846353203461199018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/3846353203461199018'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2009/05/avances-en-las-implementaciones-de-c0x.html' title='Avances en las implementaciones de C++0x'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-5654573397901275010</id><published>2009-04-20T23:04:00.006+02:00</published><updated>2009-04-21T09:56:20.379+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bloggers'/><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='bitácoras'/><category scheme='http://www.blogger.com/atom/ns#' term='blogstar'/><category scheme='http://www.blogger.com/atom/ns#' term='programadores'/><category scheme='http://www.blogger.com/atom/ns#' term='programación'/><title type='text'>Bitácoras de Programación: selección personal</title><content type='html'>Llego tarde a la discusión generada con &lt;a href="http://barrapunto.com/~leonidas/journal/32205"&gt; la entrada en la bitácora de leonidas en barrapunto&lt;/a&gt; que &lt;a href="http://preguntas.barrapunto.com/article.pl?sid=09/04/17/121245"&gt;rvr pasó a portada&lt;/a&gt; acerca de blogs y feeds en general relacionados con la programación. Salen por supuesto muchos de los agregadores y planetas que consumo, como &lt;a href="http://www.reddit.com/r/programming/"&gt;reddit&lt;/a&gt;, &lt;a href="http://news.ycombinator.com/news"&gt;hacker news&lt;/a&gt; (uhmm, éste no sale), &lt;a href="http://www.dzone.com"&gt;dzone&lt;/a&gt; o &lt;a href="http://www.planetacodigo.com/"&gt;planeta código&lt;/a&gt;. Pero después de leer todas las respuestas me ha entrado la "necesidad" de hacer mi propia selección personal basada únicamente en gustos. Son bloggers que creo que son un poco distintos y, en su mayor parte combinan &lt;em&gt;el bloguerío&lt;/em&gt; con un alto nivel técnico que dejan ver el sus posts. Allá van:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://mbpfernand0.wordpress.com/"&gt;Mbpfernand0's Blog&lt;/a&gt;, el nuevo blog técnico de "nuestro" &lt;a href="http://barrapunto.com/~fernand0/"&gt;fernand0&lt;/a&gt;. El tema fundamental es la programación y la seguridad, aunque creo que no hace ningún asco a temas relacionados. Por cierto, que &lt;a href="http://mbpfernand0.wordpress.com/2009/04/20/bitacoras-interesantes-de-programacion-i/"&gt;promete su propia selección de blogs sobre programación&lt;/a&gt;. Habrá que estar atento.&lt;/li&gt;&lt;li&gt;&lt;a href="http://icewinddale.blogspot.com/"&gt;El valle del Viento Helado  de Drizzt&lt;/a&gt;, el &lt;a href="http://barrapunto.com/~Drizzt/journal/"&gt;Drizzt de barrapunto&lt;/a&gt; también. Sistemas operativos, compiladores, administración y seguridad. Muy interesante.&lt;/li&gt;&lt;li&gt;&lt;a href="http://geeks.ms/blogs/rfog/default.aspx"&gt;.NET o no .NET, esa es la cuestión&lt;/a&gt;. Puedes no compartir sus preferencias tecnológicas, pero para mi es uno de los que mejor escribe y destila conocimiento y experiencia por todos los bits.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;En inglés:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://intertwingly.net/blog/"&gt;intertwingly de Sam Ruby&lt;/a&gt;. La web y sus estándares. Para mí, imprescindible.&lt;/li&gt;&lt;li&gt;&lt;a href="http://jeffr-tech.livejournal.com/"&gt;jeffr_tech's Journal&lt;/a&gt;. Detalles internos del desarrollo de FreeBSD. No actualiza mucho pero merece la pena estar suscrito.&lt;/li&gt;&lt;li&gt;&lt;a href="http://daniel.haxx.se/blog/"&gt;daniel.haxx.se de Daniel Stenberg&lt;/a&gt;. Del autor de &lt;a href="http://curl.haxx.se/"&gt;curl&lt;/a&gt; y &lt;a href="http://www.rockbox.org/"&gt;Rockbox&lt;/a&gt; &lt;a href="http://daniel.haxx.se/projects/"&gt;entre otros&lt;/a&gt;, el blog de un desarrollador prolífico.&lt;/li&gt;&lt;li&gt;&lt;a href="http://codingrelic.geekhold.com/"&gt;Coding Relic de Denton Gentry&lt;/a&gt;. Normalmente sobre Software embebido, pero toca otros palos.&lt;/li&gt;&lt;li&gt;&lt;a href="http://udrepper.livejournal.com/"&gt;Ulrich Drepper&lt;/a&gt;. El blog del mantenedor de la glib. Poco prolífico, pero para no perderse ni una sola entrada.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.nynaeve.net/"&gt;Nynaeve: Adventures in Windows debugging and reverse engineering.&lt;/a&gt; No se me ocurriría un mejor título nunca&lt;/li&gt;&lt;li&gt;Y por fin el imprescindible &lt;a href="http://herbsutter.wordpress.com/"&gt;Sutter’s Mill: Herb Sutter on software, hardware, and concurrency&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Ahora no se me ocurre ninguno más, pero pueden ser las prisas...&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Actualización:&lt;/strong&gt; He publicado este texto más o menos &lt;a href="http://barrapunto.com/comments.pl?sid=80704&amp;cid=1140371"&gt;en un comentario&lt;/a&gt; por aquello de completar la información en su sitio. También lo pongo aquí y lo replicaré &lt;a href="http://barrapunto.com/~mig21/journal/32224"&gt;en mi bitácora en barrapunto&lt;/a&gt;, que a su vez se copiará en &lt;a href="http://planetacodigo.com/"&gt;planeta código&lt;/a&gt;, &lt;a href="http://fernand0.blogalia.com/historias/62592"&gt;por aquello de que lo que se replica queda y de que hay URLs que desaparecen&lt;/a&gt;...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-5654573397901275010?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/5654573397901275010/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=5654573397901275010' title='6 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/5654573397901275010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/5654573397901275010'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2009/04/bitacoras-de-programacion-seleccion.html' title='Bitácoras de Programación: selección personal'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-7684842718889024043</id><published>2009-03-17T22:42:00.003+01:00</published><updated>2009-03-17T23:47:50.888+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSL'/><category scheme='http://www.blogger.com/atom/ns#' term='SMP'/><category scheme='http://www.blogger.com/atom/ns#' term='multicore'/><category scheme='http://www.blogger.com/atom/ns#' term='TLS'/><category scheme='http://www.blogger.com/atom/ns#' term='OTP'/><category scheme='http://www.blogger.com/atom/ns#' term='noticias'/><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><category scheme='http://www.blogger.com/atom/ns#' term='rendimiento'/><category scheme='http://www.blogger.com/atom/ns#' term='Erlang'/><category scheme='http://www.blogger.com/atom/ns#' term='WxWidgets'/><title type='text'>Erlang 5.7/OTP R13A: soporte para Unicode, mejoras en multicore y SSL</title><content type='html'>Acaba de salir la nueva versión del conjunto &lt;a href="http://erlang.org/"&gt;Erlang/OTP&lt;/a&gt;, en concreto la versión &lt;a href="http://www.erlang.org/doc/highlights.html"&gt;Erlang 5.7/OTP R13A&lt;/a&gt;. La nueva versión de un lenguaje y sus librerías no tiene por qué ser gran noticia, pero en este caso las novedades son tan notables que creo que merece una mención. Entre ellas se encuentran importantes mejoras de rendimiento en entornos multicore y SMP, que es especialmente importante teniendo en cuenta que una de las grandes bazas del lenguaje es su tratamiento de la concurrencia. Además destacan también el soporte para &lt;a href="http://es.wikipedia.org/wiki/Unicode"&gt;Unicode&lt;/a&gt;, posibilidad de usar &lt;a href="http://www.wxwidgets.org/"&gt;WxWidgets&lt;/a&gt; a través del WxErlang (de momento en beta) y reescritura del soporte para &lt;a href="http://es.wikipedia.org/wiki/Transport_Layer_Security"&gt;SSL&lt;/a&gt;. Muchas de estas características eran necesarias para la introducción de este lenguaje más allá del entorno de las telecomunicaciones que históricamente ha sido su nicho natural. Más comentarios en &lt;a href="http://www.reddit.com/r/programming/comments/85djx/erlangotp_r13a_released_unicode_multicore_and_ssl/"&gt;reddit&lt;/a&gt; y &lt;a href="http://news.ycombinator.com/item?id=520061"&gt;Hacker News&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/%7Emig21/journal/32026"&gt;La misma entrada y más comentarios en &lt;em&gt;Erlang 5.7/OTP R13A: soporte para Unicode, mejoras en multicore y SSL&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-7684842718889024043?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/7684842718889024043/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=7684842718889024043' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/7684842718889024043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/7684842718889024043'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2009/03/erlang-57otp-r13a-soporte-para-unicode.html' title='Erlang 5.7/OTP R13A: soporte para Unicode, mejoras en multicore y SSL'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-3959567982515342872</id><published>2009-03-11T23:44:00.008+01:00</published><updated>2009-03-12T00:06:42.411+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='djb'/><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='humildad'/><category scheme='http://www.blogger.com/atom/ns#' term='simplicidad'/><category scheme='http://www.blogger.com/atom/ns#' term='morarejas'/><category scheme='http://www.blogger.com/atom/ns#' term='dnsdjb'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><category scheme='http://www.blogger.com/atom/ns#' term='mantras'/><title type='text'>Aprendiendo de los errores (II)</title><content type='html'>&lt;a href="http://barrapunto.com/article.pl?sid=09/03/05/0653213"&gt;Dan J. Berstein reconoció una vulnerabilidad en djbdns y la recompensó con mil dólares&lt;/a&gt; y por supuesto no se han hecho esperar reflexiones acerca de la seguridad informática, su (im)posibilidad y su relación con lo disponible del código.&lt;br /&gt;&lt;br /&gt;Entonces leo con interés, vía &lt;a href="http://mbpfernand0.wordpress.com/2009/03/10/%c2%bfexisten-programas-sin-fallos-de-seguridad/"&gt;el nuevo &lt;em&gt;subarrapunto&lt;/em&gt; de fernand0&lt;/a&gt;, un &lt;a href="http://www.hispasec.com/unaaldia/3785"&gt;comentario en hispasec que no por evidente debe dejar de repetirse&lt;/a&gt;: no existe software sin fallos de seguridad, pero los que menos tienen son aquellos que han sido diseñados y programados desde su inicio con la seguridad y la simplicidad como guía.&lt;br /&gt;&lt;br /&gt;Y ello descarta a casi todo el software y probablemente más al comercial, que tiene más presiones para añadir más y más cosas. Recordemos, que como decía &lt;a href="http://yapw.blogspot.com/2009/02/epigramas-sobre-programacion.html"&gt;Alan J. Perlis &lt;em&gt;A la larga cualquier programa se vuelve rococó. Después escombros.&lt;/em&gt;&lt;/a&gt; Lo de siempre, funcionalidad contra robustez y simplicidad :)&lt;br /&gt;&lt;br /&gt;De todos modos el caso de djbdns es también interesante por el tipo de fallo encontrado. En &lt;a href="http://news.ycombinator.com/item?id=502651"&gt;Hacker News comentaban que el problema era en la implementación de la compresión que usa en el protocolo DNS para sus paquetes, para eliminar redundancias&lt;/a&gt;. Y precisamente &lt;a href="http://cr.yp.to/djbdns/notes.html"&gt;Bernstein había hablado negativamente del método de compresión&lt;/a&gt; (descrito, claro, en el &lt;a href="http://www.ietf.org/rfc/rfc1035.txt"&gt;RFC 1035, 4.1.4, página 30&lt;/a&gt;) Extractando de la crítica de Bernstein:&lt;blockquote&gt; &lt;br /&gt;Un problema con la compresión DNS es la cantidad de código necesario para analizarla. Localizar de modo fiable los nombres lleva un trabajo que habría sido evitable para una caché DNS. La compresión LZ77 habría sido mucho más fácil de implementar.&lt;br /&gt;&lt;br /&gt;Otro problema con la  compresión DNS es la cantidad de código necesario para generarlo correctamente. [...] &lt;br /&gt;&lt;br /&gt;Otro problema con la compresión DNS es que no es particularmente efectiva. LZ77 habría funcionado mejor en esos tipos de datos y funcionaría mejor con los tipos de registros que se popularizarían en el futuro [...]&lt;em&gt;(Y aquí habla de incompatibilidades de algunas versiones de BIND con el RFC)&lt;/em&gt;&lt;/blockquote&gt;Muy interesante todo el texto original, incluidas las elipsis ;) anque bastante específicas del caso DNS. Lo que no me ha quedado claro es la razón de no usar LZ77, si fue un caso de &lt;a href="http://en.wikipedia.org/wiki/Not_Invented_Here"&gt;Síndrome NIH&lt;/a&gt;, de &lt;em&gt;hackerismo&lt;/em&gt; o tenía algo que ver con las &lt;a href="http://en.wikipedia.org/wiki/LZW#Patents_and_accreditation"&gt;patentes sobre estos tipos de compresión que llevaban haciéndose desde 1984&lt;/a&gt; como la del &lt;a href="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&amp;Sect2=HITOFF&amp;d=PALL&amp;p=1&amp;u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&amp;r=1&amp;f=G&amp;l=50&amp;s1=4464650.PN.&amp;OS=PN/4464650&amp;RS=PN/4464650"&gt;LZ78&lt;/a&gt;. Pero vamos como regla general parece mucho mejor usar un algoritmo conocido que inventar uno nuevo, a no ser que trabajes en eso, en innovar...&lt;br /&gt;&lt;br /&gt;Creo que la moraleja es clara, como se dice a veces exagerando &lt;a href="http://yapw.blogspot.com/2007/06/el-mejor-cdigo-es-el-que-no-existe.html"&gt;el mejor código es el que no existe&lt;/a&gt; sobre todo desde el punto de vista de la reducción de bugs y aún más si se trata de seguridad.&lt;br /&gt;&lt;br /&gt;(Esto se llama &lt;em&gt;Aprendiendo de los errores (II)&lt;/em&gt; porque ya escribí en su día &lt;a href="http://yapw.blogspot.com/2008/07/bugs-antiguos-y-moralejas.html"&gt;Bugs antiguos y moralejas &lt;/a&gt;, que iba sobre lo mismo, también salía DJB y el DNS, en aquel caso con el bug/error de diseño que explotó Kaminsky)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/~mig21/journal/31994"&gt;La misma entrada y más comentarios en &lt;em&gt;Aprendiendo de los errores (II)&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-3959567982515342872?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/3959567982515342872/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=3959567982515342872' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/3959567982515342872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/3959567982515342872'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2009/03/aprendiendo-de-los-errores-ii.html' title='Aprendiendo de los errores (II)'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-6778170496151641339</id><published>2009-02-26T20:24:00.007+01:00</published><updated>2009-02-27T11:12:33.513+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='menéame'/><category scheme='http://www.blogger.com/atom/ns#' term='reddit'/><category scheme='http://www.blogger.com/atom/ns#' term='noticias'/><category scheme='http://www.blogger.com/atom/ns#' term='Paul Graham Facts'/><category scheme='http://www.blogger.com/atom/ns#' term='promoción'/><category scheme='http://www.blogger.com/atom/ns#' term='promoción social'/><category scheme='http://www.blogger.com/atom/ns#' term='Paul Graham'/><category scheme='http://www.blogger.com/atom/ns#' term='digg'/><title type='text'>Lo que Paul Graham ha aprendido con Hacker News</title><content type='html'>&lt;a href="http://news.ycombinator.com/news"&gt;Hacker news&lt;/a&gt; es un sitio de envío y comentario de noticias muy al modo de &lt;a href="http://www.reddit.com/"&gt;reddit&lt;/a&gt; (o &lt;a href="http://digg.com/"&gt;digg&lt;/a&gt; o &lt;a href="http://meneame.net/"&gt;menéame&lt;/a&gt;), pero con temática muy definida (temática técnica, &lt;a href="http://en.wikipedia.org/wiki/Hacker_(programmer_subculture)"&gt;hacker en el sentido MIT&lt;/a&gt; ), con editores estrictos y con políticas severas de &lt;em&gt;ontopic&lt;/em&gt;. Pues Paul Graham, su creador ha escrito &lt;a href="http://www.paulgraham.com/hackernews.html"&gt;What I've Learned from Hacker News&lt;/a&gt;, o sea, lo que ha aprendido con el sitio. Se puede estar de acuerdo o en desacuerdo en algunas cosas, pero es sin duda interesante. Extracto, lo que me ha llamado la atención:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Recuerda, la motivación original pata Hacker News fue testear un lenguaje nuevo, uno centrado en experimentar con el diseño de lenguajes, no en el rendimiento. Cada vez que el sitio se vuelve lento, me refuerzo a mi mismo recordando la famosa cita de McIlroy y Bentley:&lt;blockquote&gt;La clave del rendimiento es la elegancia, no un batallón de casos especiales.&lt;/blockquote&gt;&lt;br /&gt;Y busco los cuellos de botella que puedo eliminar con menos código. Así he sido capaz de mantener un rendimiento mediocre a pesar de que el crecimiento se ha multiplicado por catorce.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Probablemente lo más importante que he aprendido acerca de la "disolución" es que se mide más por comportamiento que por usuarios. Es el mal comportamiento lo que hay que mantener alejado más que a las malas personas. El comportamiento de los usuarios es sorprendentemente maleable. Si se espera de la gente que se comporte bien tiende a hacerlo. Y viceversa.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Lo más peligroso de la portada son las que es demasiado fácil votar positivo. Si alguien prueba un nuevo teorema, le lleva tiempo al lector decidir si vota positivo o no.Un cómic divertido cuesta menos. Una crítica con un &lt;em&gt;slogan&lt;/em&gt; como título cuesta cero, porque la gente lo vota sin ni siquiera visitar el enlace.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;La forma más peligrosa de de comentario estúpido no es el argumento largo pero equivocado sino el chiste tonto. Los argumentos largos pero equivocados son bastante raros. Hay una gran correlación entre la calidad y la longitud del comentario.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;[...]Visitar un foro &lt;em&gt;online&lt;/em&gt; sólo cuesta un clic y se parece mucho superficialmente a trabajar. Puedes estar gastando tu tiempo, pero no estás parado. &lt;a href="http://xkcd.com/386/"&gt;Alguien esta equivocado en Internet&lt;/a&gt;, y tú estás arreglando el problema.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Digg es conocido por su falta de trasparencia. La raíz del problema no son los tipos que llevan Digg sean especialmente furtivos, sino que usan un algoritmo equivocado para generar la portada. En lugar de subir conforme van teniendo más votos, como en Reddit, las historias empiezan arriba y las nuevas que van llegando las van empujando hacia abajo.&lt;br /&gt;&lt;br /&gt;La razón de la diferencia es que Digg deriva de Slashdot mientras que Reddit de delicious/popular. Digg es Slashdot con votos en lugar de editores y Reddit es delicious/popular con votos en lugar de &lt;em&gt;agregar a favoritos&lt;/em&gt; (Aún se pueden ver los fósiles de sus orígenes en sus diseños gráficos.)&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Otra cosa que he aprendido de este experimento es que si vas a distinguir a las personas, hazlo bien. Este es uno de esos problemas en los que no funciona al prototipado rápido.&lt;br /&gt;&lt;br /&gt;De hecho este es el argumento intelectualmente honrado para no discriminar a varios tipos de personas. La razón no es que todo el mundo es igual, sino que es malo hacerlo de modo incorrecto y es difícil hacerlo bien.&lt;/blockquote&gt;Yo particularmente estoy de acuerdo en casi todo. Sólo puntualizaría que hay honrosas excepciones en la correlación entre longitud y calidad. Un enlace relevante, una cita, a veces es breve pero muy relevante en la discusión. De todos modos por eso habla de correlación :)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/~mig21/journal/31900"&gt;La misma entrada y más comentarios en &lt;em&gt;Lo que Paul Graham ha aprendido con Hacker News&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-6778170496151641339?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/6778170496151641339/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=6778170496151641339' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/6778170496151641339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/6778170496151641339'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2009/02/lo-que-paul-graham-ha-aprendido-con.html' title='Lo que Paul Graham ha aprendido con Hacker News'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-6076183250743052259</id><published>2009-02-17T13:01:00.003+01:00</published><updated>2009-02-17T22:31:22.153+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diseño'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML5'/><category scheme='http://www.blogger.com/atom/ns#' term='principio de responsábilidad única'/><category scheme='http://www.blogger.com/atom/ns#' term='programadores'/><category scheme='http://www.blogger.com/atom/ns#' term='principios'/><category scheme='http://www.blogger.com/atom/ns#' term='W3C'/><category scheme='http://www.blogger.com/atom/ns#' term='Sam Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='programación'/><title type='text'>¿Varios pájaros de un tiro?</title><content type='html'>Vía &lt;a href="http://intertwingly.net/blog/2009/02/14/RDFa-in-HTML5"&gt;intertwingly, el blog de Sam Ruby&lt;/a&gt;, me encuentro con una &lt;a href="http://lists.w3.org/Archives/Public/public-rdf-in-xhtml-tf/2009Feb/0070.html"&gt;cita extraída de una de las listas del W3C&lt;/a&gt; que traduzco sin más:&lt;br /&gt;&lt;blockquote&gt;Un error muy común que los ingenieros de software cometen al diseñar una arquitectura es fijarse en cinco problemas, ver lo que tienen en común e intentar resolver los cinco a la vez. El resultado es casi siempre una solución por debajo de lo estándar para todos ellos.&lt;/blockquote&gt;&lt;br /&gt;Sí, una tendencia común, más acusada curiosamente en los desarrolladores que se intentan preocupar por la calidad de su trabajo. Para no caer inercialmente en ella habría que evaluar lo económico del desarrollo con lo limitado de las soluciones, algo que demasiadas veces no se hace.&lt;br /&gt;&lt;br /&gt;Me ha recordado además a un &lt;a href="http://www.lostechies.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/derickbailey/SingleResponsibilityPrinciple2_5F00_71060858.jpg"&gt;"cartel motivador"&lt;/a&gt; sobre el &lt;a href="http://en.wikipedia.org/wiki/Single_responsibility_principle"&gt;principio de responsabilidad única&lt;/a&gt; que vi hace poco en &lt;a href="http://www.reddit.com/r/programming/comments/7ws12/motivational_posters_for_programmers/"&gt;reddit&lt;/a&gt; (&lt;a href="http://www.lostechies.com/blogs/derickbailey/archive/2009/02/11/solid-development-principles-in-motivational-pictures.aspx"&gt;Aquí se pueden ver todos los carteles&lt;/a&gt;, por si a alguien le son de utilidad &lt;a href="http://xkcd.com/541/"&gt;:)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ah, ya que estoy aquí, recomiendo la lectura del blog de Sam y de las listas relativas al &lt;a href="http://en.wikipedia.org/wiki/HTML_5"&gt;HTML5&lt;/a&gt; para ver &lt;em&gt;flames&lt;/em&gt; de altura :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Actualización &lt;a href="http://fernand0.blogalia.com/historias/3033"&gt;egórica&lt;/a&gt;:&lt;/strong&gt; A través de una detección automática de referencias Sam se ha enterado de mi enlace y le ha gustado mi referencia al "cartel motivador", que le da más argumentos en el flame. &lt;a href="http://intertwingly.net/blog/2009/02/14/RDFa-in-HTML5#c1234898405"&gt;Y me ha enlazado en un comentario&lt;/a&gt;. Nunca lo hubiera pensado :)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/~mig21/journal/31824"&gt;La misma entrada y más comentarios en &lt;em&gt;¿Varios pájaros de un tiro?&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-6076183250743052259?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/6076183250743052259/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=6076183250743052259' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/6076183250743052259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/6076183250743052259'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2009/02/varios-pajaros-de-un-tiro.html' title='¿Varios pájaros de un tiro?'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-9097789141117137753</id><published>2009-02-05T23:02:00.004+01:00</published><updated>2009-02-06T09:08:09.542+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programadores'/><category scheme='http://www.blogger.com/atom/ns#' term='Epigramas'/><category scheme='http://www.blogger.com/atom/ns#' term='programación'/><category scheme='http://www.blogger.com/atom/ns#' term='frases'/><title type='text'>Epigramas sobre programación</title><content type='html'>Siguiendo un enlace en &lt;a href="http://www.technovelty.org/code/complexity.html"&gt; technovelty&lt;/a&gt; he llegado a &lt;a href="http://www-pu.informatik.uni-tuebingen.de/users/klaeren/epigrams.html"&gt;un artículo de Alan J. Perlis&lt;/a&gt; en el que a través de ciento treinta &lt;a href="http://es.wikipedia.org/wiki/Epigrama"&gt;epigramas&lt;/a&gt; trató, en 1982, de capturar algunos de los aspectos más curiosos, desconcertantes y antiintuitivos de la computación en general y la programación en particular. Han pasado más de veintiséis años, pero mucha de su naturaleza creo que sigue intacta. Algunos creo haberlos leído en otra parte y supongo que al que lea esto le pueden sonar, pero me gustan, así que aquí van. Traduzco los que me han parecido mejores:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;strong&gt;Epigramas:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;7. Es más fácil escribir un programa incorrecto que entender uno correcto.&lt;br /&gt;&lt;br /&gt;8. Un lenguaje de programación es de bajo nivel cuando sus programas requieren atención sobre lo irrelevante.&lt;br /&gt;&lt;br /&gt;9. Es mejor tener 100 funciones operando sobre una estructura de datos que 10 funciones sobre 10 estructuras de datos.&lt;br /&gt;&lt;br /&gt;14. A la larga cualquier programa se vuelve rococó. Después escombros.&lt;br /&gt;&lt;br /&gt;15. Todo debería desarrollarse &lt;a href="http://es.wikipedia.org/wiki/Top-down_y_Bottom-up"&gt;de arriba a abajo&lt;/a&gt;, excepto la primera vez.&lt;br /&gt;&lt;br /&gt;17. Si alguien parece que está asintiendo cuando le explicas tu programa, despiértale.&lt;br /&gt;&lt;br /&gt;19. Si un lenguaje no cambia el modo en el que ves la programación es que no merece la pena.&lt;br /&gt;&lt;br /&gt;21. La optimización dificulta la evolución.&lt;br /&gt;&lt;br /&gt;31. La simplicidad no precede a la complejidad, la sigue.&lt;br /&gt;&lt;br /&gt;40. Hay dos modos de escribir programas sin errores. Sólo la tercera funciona.&lt;br /&gt;&lt;br /&gt;57. Es más fácil cambiar la especificación para que se ajuste al programa que al contrario.&lt;br /&gt;&lt;br /&gt;58. Los locos ignoran la complejidad. Los pragmáticos la sufren. Algunos pueden evitarla. Los genios la eliminan.&lt;br /&gt;&lt;br /&gt;63. En computación, los invariantes son efímeros.&lt;br /&gt;&lt;br /&gt;65. No te equivoques: los ordenadores procesan números, no símbolos. Medimos nuestro conocimiento (y control) de una actividad en la medida en la que podemos &lt;em&gt;arimetizar&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;75. Debido a su vitalidad la informática está a la busca desesperada de nuevos clichés: la banalidad calma nuestros nervios.&lt;br /&gt;&lt;br /&gt;93. Cuando alguien diga "Quiero un lenguaje de programación en el que sólo tenga que decir lo que deseo hacer", regálale una piruleta.&lt;br /&gt;&lt;br /&gt;95. No tengas buenas ideas si no eres capaz de responsabilizarte de ellas.&lt;br /&gt;&lt;br /&gt;104. La prueba del valor de un sistema es su existencia.&lt;br /&gt;&lt;br /&gt;115. Mucha gente encuentra el concepto de programar obvio, pero hacerlo les resulta imposible.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;MetaEpigramas:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;124. Los epigramas son macros, porque son ejecutados en tiempo de lectura.&lt;br /&gt;&lt;br /&gt;125. Los epigramas cristalizan incongruencias.&lt;br /&gt;&lt;br /&gt;127. Los epigramas desdeñan los detalles y lo hacen con intención: son una documentación de alto nivel excelente.&lt;br /&gt;&lt;/blockquote&gt;El lector atento verá que si se juntan la 8 y la 93 no existen lenguajes de alto nivel. Pero si se mezcla con la 125 ya no está tan claro. Bueno, para pensar un rato. Pero no demasiado, que luego hay que codificar :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/~mig21/journal/31729"&gt;La misma entrada y más comentarios en &lt;em&gt;Epigramas sobre programación&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-9097789141117137753?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/9097789141117137753/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=9097789141117137753' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/9097789141117137753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/9097789141117137753'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2009/02/epigramas-sobre-programacion.html' title='Epigramas sobre programación'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-2268099880630430095</id><published>2009-02-04T10:14:00.002+01:00</published><updated>2009-02-04T10:18:11.426+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bloggers'/><category scheme='http://www.blogger.com/atom/ns#' term='¿programación?'/><category scheme='http://www.blogger.com/atom/ns#' term='blogueros'/><category scheme='http://www.blogger.com/atom/ns#' term='¿humor?'/><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><category scheme='http://www.blogger.com/atom/ns#' term='blogstar'/><category scheme='http://www.blogger.com/atom/ns#' term='¿programadores?'/><category scheme='http://www.blogger.com/atom/ns#' term='parodia'/><category scheme='http://www.blogger.com/atom/ns#' term='programadores'/><category scheme='http://www.blogger.com/atom/ns#' term='autorreferencia'/><category scheme='http://www.blogger.com/atom/ns#' term='programación'/><title type='text'>5 Secrets To Ninja Writing</title><content type='html'>&lt;a href="http://blog.wekeroad.com/blog/nothing-to-say/"&gt;5 Secrets To Ninja Writing&lt;/a&gt;. (&lt;a href="http://www.reddit.com/r/programming/comments/7un0f/5_secrets_to_ninja_writing_a_satire_of/"&gt;Vía reddit&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Es mucho más recomendable pinchar en el enlace anterior si conoces &lt;a href="http://www.codinghorror.com/blog/"&gt;el blog de Jeff Atwood, Coding Horror&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Está muy logrado, sobre todo la parodia del abuso de la autorreferencia, un vicio muy de &lt;em&gt;blogstar&lt;/em&gt;, muy feo :)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/~mig21/journal/31710"&gt;La misma entrada y más comentarios en &lt;em&gt;5 Secrets To Ninja Writing&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-2268099880630430095?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/2268099880630430095/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=2268099880630430095' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/2268099880630430095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/2268099880630430095'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2009/02/5-secrets-to-ninja-writing.html' title='5 Secrets To Ninja Writing'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-2064799349435358426</id><published>2009-01-28T22:47:00.003+01:00</published><updated>2009-01-29T10:52:35.351+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plug-in'/><category scheme='http://www.blogger.com/atom/ns#' term='FSF'/><category scheme='http://www.blogger.com/atom/ns#' term='licencias'/><category scheme='http://www.blogger.com/atom/ns#' term='gcc'/><category scheme='http://www.blogger.com/atom/ns#' term='plugin'/><category scheme='http://www.blogger.com/atom/ns#' term='GPL'/><category scheme='http://www.blogger.com/atom/ns#' term='licencia'/><category scheme='http://www.blogger.com/atom/ns#' term='compilador'/><title type='text'>El sistema de plugins cada vez más cerca de GCC</title><content type='html'>Hace bastante tiempo que se viene discutiendo el porqué &lt;a href="http://lwn.net/Articles/301135/"&gt;de la falta de sistema de plugins en el compilador libre por excelencia, GCC&lt;/a&gt;. Al parecer el principal problema era &lt;i&gt;legal&lt;/i&gt;, es decir, el miedo fomentar la proliferación de &lt;i&gt;plugins&lt;/i&gt; propietarios. Pues bien, ya se ha establecido el marco de licencias que pueden regir ese sistema, que es &lt;a href="http://gcc.gnu.org/ml/gcc-announce/2009/msg00000.html"&gt;la nueva versión de la GCC Runtime Library Exception&lt;/a&gt; y con ello su desarrollo está cada vez más cerca. Además esta nueva versión de la licencia permitirá la actualización a la licencia &lt;a href="http://gplv3.fsf.org/"&gt;GPLv3&lt;/a&gt; de algunas librerías del propio GCC. &lt;a href="http://www.gnu.org/licenses/gcc-exception-faq.html"&gt;La FSF ha proporcionado un documento con las razones para esta licencia y las preguntas más frecuentes sobre ella&lt;/a&gt;. Más comentarios en &lt;a href="http://slashdot.org/article.pl?sid=09/01/27/223230"&gt;Slashdot: Plug-In Architecture On the Way For GCC&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Actualización:&lt;/strong&gt; &lt;a href="http://icewinddale.blogspot.com/"&gt;Drizzt&lt;/a&gt; se ha puesto de acuerdo, otra vez casualmente, para hablar del mismo tema, con algunos comentarios sobre el cambio de la licencia: &lt;a href="http://icewinddale.blogspot.com/2009/01/la-arquitectura-de-plugins-del-gcc-y.html"&gt;El valle del Viento Helado: La arquitectura de plugins del GCC y las licencias&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/~mig21/journal/31658"&gt;La misma entrada y más comentarios en &lt;em&gt;El sistema de plugins cada vez más cerca de GCC&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-2064799349435358426?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/2064799349435358426/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=2064799349435358426' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/2064799349435358426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/2064799349435358426'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2009/01/el-sistema-de-plugins-cada-vez-mas.html' title='El sistema de plugins cada vez más cerca de GCC'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-8000926882373455409</id><published>2009-01-14T22:13:00.003+01:00</published><updated>2009-01-15T18:12:15.511+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='extensiones'/><category scheme='http://www.blogger.com/atom/ns#' term='estándares'/><category scheme='http://www.blogger.com/atom/ns#' term='gcc'/><category scheme='http://www.blogger.com/atom/ns#' term='estándar'/><category scheme='http://www.blogger.com/atom/ns#' term='programadores'/><category scheme='http://www.blogger.com/atom/ns#' term='Postel'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='compilador'/><category scheme='http://www.blogger.com/atom/ns#' term='programación'/><title type='text'>Trucos gcc-céntricos y porqué no usarlos</title><content type='html'>En el estupendo blog &lt;a href="http://codingrelic.geekhold.com/"&gt;Coding Relic&lt;/a&gt; el autor, Denton Gentry, ha publicado recientemente dos trucos muy espectaculares pero &lt;tt&gt;gcc&lt;/tt&gt;céntricos. Bueno en realidad uno es específico de la &lt;a href="http://www.gnu.org/software/libc/"&gt;&lt;tt&gt;glibc&lt;/tt&gt;&lt;/a&gt; y el otro sí es &lt;a href="http://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html"&gt;una extensión de &lt;tt&gt;gcc&lt;/tt&gt;&lt;/a&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://codingrelic.geekhold.com/2008/12/printf-acular.html"&gt;printf-acular&lt;/a&gt; en el que se describe cómo personalizar &lt;tt&gt;printf&lt;/tt&gt; para que admita más tipos de datos que los que normalmente admite, en el ejemplo sacar direcciones MAC formateadas.&lt;/li&gt;&lt;li&gt;&lt;a href="http://codingrelic.geekhold.com/2009/01/variable-scoping-with-gcc.html"&gt;Variable Scoping with gcc&lt;/a&gt;, en el que se explica el (espectacular) funcionamiento de &lt;tt&gt;__attribute__(cleanup)&lt;/tt&gt;, que permite funcionalidades del tipo &lt;a href="http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization"&gt;RAII&lt;/a&gt; de C++&lt;/li&gt;&lt;/ul&gt;Y ahora, después de ver un par de extensiones tan útiles, potentes y elegantes es cuando me toca &lt;em&gt;desrecomendarlas&lt;/em&gt; :) Creo firmemente en el valor de los estándares y en desarrollar siempre en el nivel más estricto de estándar o visto de otro modo en el nivel más amplio de disponibilidad, siempre y cuando las soluciones sean comparables. Además, es bueno pensar en la gente que retocará el código y cabe la posibilidad de que si no se documenta resulte de sólo escritura. Yo sólo lo vería admisible en un &lt;em&gt;hack&lt;/em&gt; puntual documentado como mínimo con neones. No obstante, hay gente que no opina lo mismo como se puede leer en &lt;a href="http://icewinddale.blogspot.com/2008/11/uso-de-extensiones-del-gcc-en-linux.html"&gt;Uso de extensiones del GCC en (el kernel) Linux&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/~mig21/journal/31526"&gt;La misma entrada y más comentarios en &lt;em&gt;Trucos gcc-céntricos y porqué no usarlos&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-8000926882373455409?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/8000926882373455409/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=8000926882373455409' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/8000926882373455409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/8000926882373455409'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2009/01/trucos-gcc-cntricos-y-porqu-no-usarlos.html' title='Trucos gcc-céntricos y porqué no usarlos'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-8246541395775223124</id><published>2009-01-07T10:34:00.003+01:00</published><updated>2009-01-07T11:50:53.497+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Robustez'/><category scheme='http://www.blogger.com/atom/ns#' term='estándares'/><category scheme='http://www.blogger.com/atom/ns#' term='estándar'/><category scheme='http://www.blogger.com/atom/ns#' term='programadores'/><category scheme='http://www.blogger.com/atom/ns#' term='Postel'/><category scheme='http://www.blogger.com/atom/ns#' term='Dracón'/><category scheme='http://www.blogger.com/atom/ns#' term='programación'/><title type='text'>La ley de Postel y los programadores</title><content type='html'>El otro día leí un comentario acerca de las diferencias en la admisión de parámetros entre los comandos en BSD y GNU. Según se comentaba, los segundos son menos estrictos y se tragan más cosas. El comentarista añadía sobre el comportamiento de la &lt;em&gt;GNU userland&lt;/em&gt;: &lt;em&gt;"me gusta a pesar del programador que hay en mi"&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Y, por lo que sea, me ha parecido muy revelador: a los programadores no nos gusta, desde un punto de vista egoísta, lo que nos supone &lt;a href="http://en.wikipedia.org/wiki/Robustness_Principle"&gt;la ley de Postel, el principio de robustez&lt;/a&gt;. Aquello de ser liberal con lo que se admite como válido da repelús. Y creo que hay más de un motivo:&lt;ul&gt;&lt;li&gt;Nos gusta la precisión. Si somos estrictos en lo que generamos ¿No vamos a exigir lo mismo?&lt;/li&gt;&lt;li&gt;Se suele generar más código para tener el cuenta el &lt;em&gt;ser liberal&lt;/em&gt;: más trabajo y más testeo&lt;/li&gt;&lt;li&gt;El comportamiento de nuestro soft no es tan rígido lo que choca con nuestro gusto por las especificaciones precisas, sencillas y breves.&lt;/li&gt;&lt;/ul&gt;Lo que a veces no vemos es que ser menos estricto mejora la robustez y eso al usuario final, como es normal, le encanta aunque le de igual si se es estricto, &lt;a href="http://yapw.blogspot.com/2007/05/postel-o-dracn.html"&gt;si Postel o Dracón&lt;/a&gt;, los estándares y todo lo demás.&lt;br /&gt;&lt;br /&gt;Este efecto se nota más en &lt;em&gt;ecosistemas&lt;/em&gt; heterogéneos con lo que la integración de ese software puede ser más fácil en entornos menos controlados. Así que otra cosa más a pensar antes de desarrollar ¿Nos compensará a la larga el esfuerzo de ser menos estrictos?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/~mig21/journal/31462"&gt;La misma entrada y más comentarios en &lt;em&gt;La ley de Postel y los programadores&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-8246541395775223124?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/8246541395775223124/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=8246541395775223124' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/8246541395775223124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/8246541395775223124'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2009/01/la-ley-de-postel-y-los-programadores.html' title='La ley de Postel y los programadores'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-1959268574443647493</id><published>2008-12-13T22:53:00.003+01:00</published><updated>2008-12-15T12:42:50.388+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TCP'/><category scheme='http://www.blogger.com/atom/ns#' term='Facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='caché'/><category scheme='http://www.blogger.com/atom/ns#' term='memcached'/><category scheme='http://www.blogger.com/atom/ns#' term='memcache'/><category scheme='http://www.blogger.com/atom/ns#' term='rendimiento'/><category scheme='http://www.blogger.com/atom/ns#' term='escalabilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='cache'/><category scheme='http://www.blogger.com/atom/ns#' term='UDP'/><category scheme='http://www.blogger.com/atom/ns#' term='programación'/><title type='text'>Facebook publica su versión modificada de memcached</title><content type='html'>[Vía &lt;a href="http://www.reddit.com/r/programming/comments/7j6po/facebooks_memcached_on_github/"&gt;reddit&lt;/a&gt;] &lt;a href="http://www.facebook.com/note.php?note_id=39391378919"&gt;Facebook acaba de publicar su versión de memcached&lt;/a&gt;, el &lt;a href="http://www.danga.com/memcached/"&gt;sistema de cachés genéricas más usado en aplicaciones web&lt;/a&gt;, tras hacer modificaciones para afrontar sus necesidades de rendimiento y escalabilidad. Las modificaciones principales han sido entre otras la eliminación de un &lt;em&gt;buffer&lt;/em&gt; por conexión en favor de un &lt;em&gt;pool&lt;/em&gt;, reducción de bloqueos innecesarios para un mejor rendimiento en máquinas &lt;em&gt;multicore&lt;/em&gt; y el uso intensivo de UDP. El resultado final ha sido la posibilidad de gestionar 200.000 peticiones UDP por segundo con una latencia media de 173 microsegundos. Han subido los cambios a &lt;a href="http://github.com/fbmarc/facebook-memcached/tree/master"&gt;GitHub: facebook-memcached&lt;/a&gt; y esperan que los cambios sean incorporados al memcached oficial. Curiosamente hemos hablado recientemente por aquí de memcached en &lt;a href="http://yapw.blogspot.com/2008/11/un-vistazo-al-interior-de-memcached.html"&gt;Un vistazo al interior de memcached&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Actualización:&lt;/strong&gt; Olvidé mencionar que habían toqueteado el kernel :/ &lt;a href="http://barrapunto.com/comments.pl?sid=79328&amp;cid=1108206"&gt;JAM hace muy bien resumen de esos &lt;em&gt;apaños&lt;/em&gt;&lt;/a&gt;&lt;br /&gt;Parece relevante también comentar lo que dicen en &lt;a href="http://highscalability.com/strategy-facebook-tweaks-handle-6-time-many-memcached-requests"&gt;High Scalability sobre el memcached de Facebook y las conclusiones que se pueden sacar&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;A summary of potential strategies:&lt;ul&gt;&lt;li&gt;Profile everything. Problems are always specific. The understanding of the problem must be specific. The fix must be specific.&lt;/li&gt;&lt;li&gt;Burn profiling into your regression tests. Detect when and where performance tanks as a regular part of your build.&lt;/li&gt;&lt;li&gt;Use resources in proportion to what grows slowest. This requires multiplexing, but at least your resource usage is more predictable and bounded.&lt;/li&gt;&lt;li&gt;Batch work. When you have the CPU do all the work you possibly can in the quantum or the whole system grinds to a halt in processing overhead.&lt;/li&gt;&lt;li&gt;Do work and maintain resources per task. Otherwise locking for shared resources takes more and more time when there's less and less time to do the work that needs to be done.&lt;/li&gt;&lt;li&gt;Change algorithms. Sometimes you simply need to do things differently. Tweaking will only get you so far.&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/~mig21/journal/31329"&gt;La misma entrada y más comentarios en &lt;em&gt;Facebook publica su versión modificada de memcached&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-1959268574443647493?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/1959268574443647493/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=1959268574443647493' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/1959268574443647493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/1959268574443647493'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2008/12/facebook-publica-su-versin-modificada.html' title='Facebook publica su versión modificada de memcached'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-9053605651261537159</id><published>2008-12-09T12:31:00.003+01:00</published><updated>2008-12-09T18:45:38.589+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='código como diseño'/><category scheme='http://www.blogger.com/atom/ns#' term='Jack Reeves'/><category scheme='http://www.blogger.com/atom/ns#' term='diseño'/><category scheme='http://www.blogger.com/atom/ns#' term='Code as Design'/><category scheme='http://www.blogger.com/atom/ns#' term='Reeves'/><category scheme='http://www.blogger.com/atom/ns#' term='código'/><category scheme='http://www.blogger.com/atom/ns#' term='programadores'/><category scheme='http://www.blogger.com/atom/ns#' term='programación'/><title type='text'>El código fuente como documento definitivo del diseño</title><content type='html'>Se trata, cómo no, de &lt;a href="http://www.developerdotstar.com/mag/articles/reeves_design_main.html"&gt;Code as Design: Three Essays by Jack W. Reeves&lt;/a&gt;. Son unos ensayos muy ilustrativos de la naturaleza particular del desarrollo de software, que por usar la palabra diseño de un modo no usual acaban resultando muy polémicos, pero a mi me parecen más bien esclarecedores. Se recomienda leer enteros antes de opinar :P&lt;br /&gt;&lt;br /&gt;Suelo aprovechar cualquier mención para volver a enlazarlo y esta vez ha sido &lt;a href="http://gallir.wordpress.com/2008/12/08/los-problemas-derivados-del-abuso-de-las-analogias/"&gt;Ricardo Galli en "Los problemas derivados del abuso de las analogías"&lt;/a&gt; quien me da la oportunidad de volver a hacerlo :)&lt;br /&gt;&lt;br /&gt;Se ha hablado de ellos por aquí en &lt;a href="http://barrapunto.com/~mig21/journal/11259"&gt;El código fuente visto como diseño &lt;/a&gt; y &lt;a href="http://yapw.blogspot.com/2007/03/poo-el-cdigo-como-diseo-y-ms-cosas.html"&gt;POO, el código como diseño y más cosas&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/~mig21/journal/31298"&gt;La misma entrada y más comentarios en &lt;em&gt;El código fuente como documento definitivo del diseño&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-9053605651261537159?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/9053605651261537159/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=9053605651261537159' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/9053605651261537159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/9053605651261537159'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2008/12/el-cdigo-fuente-como-documento.html' title='El código fuente como documento definitivo del diseño'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-2255894356215904350</id><published>2008-11-27T11:36:00.005+01:00</published><updated>2008-11-27T15:15:06.358+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='concurrencia'/><category scheme='http://www.blogger.com/atom/ns#' term='programación concurrente'/><category scheme='http://www.blogger.com/atom/ns#' term='memoria transaccional'/><category scheme='http://www.blogger.com/atom/ns#' term='investigación'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='paralelismo'/><category scheme='http://www.blogger.com/atom/ns#' term='STM'/><category scheme='http://www.blogger.com/atom/ns#' term='programación'/><title type='text'>Memoria transaccional ¿Sólo un juguete para investigadores?</title><content type='html'>En &lt;a href="http://acmqueue.com/modules.php?name=Content&amp;pa=showpage&amp;pid=558&amp;page=1"&gt;Software Transactional Memory: why is it only a research toy? de Calin Cascaval &lt;em&gt;et al.&lt;/em&gt;&lt;/a&gt; se repasan algunas de las razones por las que, tras unos años de investigación, la memoria transaccional no ha dado el salto para ser usada en otros entornos. Se nombran sobre todo razones de rendimiento, de usabilidad (semántica confusa) y de interacción con sistemas que no la usan. No obstante no todo el mundo se da por vencido y por ejemplo Larry O'Brien escribe en &lt;a href="http://www.knowing.net/PermaLink,guid,147fd2fc-591c-42e2-9dac-9be5caac252c.aspx"&gt;Cascaval et al.'s skepticism on transaction memory&lt;/a&gt; una visión un poco más optimista indicando que aún queda espacio para la investigación y la optimización. ¿Acabaremos usando &lt;a href="http://en.wikipedia.org/wiki/Software_transactional_memory"&gt;STM&lt;/a&gt; o morirá antes de nacer?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/~mig21/journal/31224"&gt;La misma entrada y más comentarios en &lt;em&gt;Memoria transaccional ¿Sólo un juguete para investigadores?&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-2255894356215904350?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/2255894356215904350/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=2255894356215904350' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/2255894356215904350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/2255894356215904350'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2008/11/memoria-transacional-slo-un-juguete.html' title='Memoria transaccional ¿Sólo un juguete para investigadores?'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-3162931488134255399</id><published>2008-11-21T09:28:00.008+01:00</published><updated>2008-11-21T13:17:20.186+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='método científico'/><category scheme='http://www.blogger.com/atom/ns#' term='escepticismo'/><category scheme='http://www.blogger.com/atom/ns#' term='cuántica'/><category scheme='http://www.blogger.com/atom/ns#' term='divulgación'/><category scheme='http://www.blogger.com/atom/ns#' term='mecánica cuántica'/><category scheme='http://www.blogger.com/atom/ns#' term='reproducibilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='falsabilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='cuerdas'/><category scheme='http://www.blogger.com/atom/ns#' term='ciencia'/><category scheme='http://www.blogger.com/atom/ns#' term='universos paralelos'/><title type='text'>Universos paralelos, cuerdas y divulgación científica</title><content type='html'>Hay un debate, apasionante y por supuesto no resuelto acerca de cómo divulgar la ciencia, de cómo equilibrar la precisión de lo que se cuenta con lo entretenido de la forma.&lt;br /&gt;&lt;br /&gt;Pues bueno, a mi me parece que esto en la divulgación de la ciencia más básica es especialmente importante. Suele uno leer en periódicos, revistas y últimamente en blogs artículos sobre la teoría de cuerdas y sobre universos paralelos sin hacer la menor mención acerca de lo especulativo del asunto. Por eso me ha gustado mucho &lt;a href="http://asymptotia.com/2008/11/18/tales-from-the-industry-xxv-parallel-universes/"&gt;un apunte de Clifford Johnson en el que lo explica estupendamente&lt;/a&gt; (vía &lt;a href="http://www.math.columbia.edu/~woit/wordpress/?p=1208"&gt;Not Even Wrong de Peter Woit&lt;/a&gt;)  Habla de su participación en un programa de divulgación sobre &lt;em&gt;universos paralelos&lt;/em&gt;. Cito y "traduzco":&lt;br /&gt;&lt;blockquote&gt;Para ser sincero estoy un poco preocupado porque es un tema que puede ser aprovechado muy fácilmente por chiflados por personas sensatas por igual, y es, de diversos modos, alimento para mucha charlatanería y sinsentido místico. Cualquier programa de ciencia sobre este tipo de material tiene que ser doblemente -triplemente- cuidadoso, para no dar a la gente una excusa para decir que "los científicos han comprobado esto".&lt;br /&gt;&lt;br /&gt;¿Por qué estoy un poco preocupado? Bueno, yo no he visto un montaje final del espectáculo y y no me quiero exceder, pero un primer montaje en bruto que he podido ver sufre de un problema que estos programas pueden tener a veces: un conjunto de  científicos en activo muy cuidadosos al hacer comentarios acerca de lo que se conoce, de lo desconocido, de lo que es probable y de lo que es poco probable, y así sucesivamente, y después mucha de esa cautela puede ser socavada por la intercalación de sus observaciones con fragmentos del favorito de cualquier cineasta de la física documental, del tipo que puede ser invocado para decir cosas salvajes y maravillosas - Michio Kaku.&lt;br /&gt;&lt;br /&gt;Por favor, no me malinterpreten. No tengo nada en contra de Kaku, me parece un muy buen tipo, y creo que ha realizado un excelente y divertido trabajo para este tipo de programas (tales como el &lt;a href="http://asymptotia.com/2008/11/15/einstein-on-monday/"&gt;documental sobre Einstein de la otra noche&lt;/a&gt; ), pero hay momentos en que sus observaciones más, ermmm, emocionadas e imprudentes pueden ser colocadas en un lugar en el programa que no ayuda en nada a ser prudente con la ciencia. A menudo (quizás siempre?) no es su culpa, un director que no se da cuenta de cómo un detalle puede ser crucial llega a un punto en el que debe elegir entre la inserción de:&lt;br /&gt;&lt;br /&gt;     * (a) un fragmento de alguno de nosotros que tratamos de ser cuidadosos y no hacer declaraciones equivocadas y/o  sensacionalistas, y&lt;br /&gt;     * (b) un fragmento un distinguido caballero con un entusiasmo contagioso, agitando sus brazos y diciendo cosas que suenan maravillosas&lt;br/&gt;&lt;br/&gt; ...Y 99 veces de cada 100 va a elegir la opción (b) si ninguna de las personas de (a) están ahí para orientarle. Esta es, por supuesto, la razón por la que siempre espero [...] que estos espectáculos se realicen de un modo colaborativo entre científicos y cineastas[...]&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Hace ya unos días, bastante relacionado con esto, &lt;a href="http://rvr.blogalia.com/"&gt;rvr&lt;/a&gt; en un par de entradas, &lt;a href="http://rvr.blogalia.com//historias/58678"&gt;El nivel de la divulgación científica (I)&lt;/a&gt; y &lt;a href="http://rvr.blogalia.com/historias/59838"&gt;El nivel de la divulgación científica (II)&lt;/a&gt; repasaba el mismo problema a la inversa, con la tesis de que debe haber sitio también para la divulgación más superficial.&lt;br /&gt;&lt;br /&gt;Sin estar en desacuerdo con esta tesis si debo reconocer que me gustaría que hubiese menos confusión entre ciencia aceptada y especulación. Creo que la diferencia debería ser subrayada por todo el mundo y que conceptos como &lt;a href="http://es.wikipedia.org/wiki/M%C3%A9todo_cient%C3%ADfico"&gt;Método Científico&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/wiki/Reproducibilidad"&gt;Reproducibilidad&lt;/a&gt; y &lt;a href="http://es.wikipedia.org/wiki/Falsabilidad"&gt;Falsabilidad&lt;/a&gt; tuviesen mayor eco. Cuestión de educación, supongo.&lt;br /&gt;&lt;br /&gt;Y bueno, por acabar y por ser algo constructivo recomendar una entrada sobre el tema en &lt;a href="http://ecos.blogalia.com/"&gt;Ecos del futuro&lt;/a&gt; (que he conocido hace poco, muy bueno): &lt;a href="http://ecos.blogalia.com/historias/58355"&gt;La interpretación de los universos múltiples&lt;/a&gt;, en la que sí queda claro lo que es especulativo y lo que no, y porqué.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/~mig21/journal/31186"&gt;La misma entrada y más comentarios en &lt;em&gt;Universos paralelos, cuerdas y divulgación científica&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-3162931488134255399?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/3162931488134255399/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=3162931488134255399' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/3162931488134255399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/3162931488134255399'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2008/11/universos-paralelos-cuerdas-y.html' title='Universos paralelos, cuerdas y divulgación científica'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-5934130642796508102</id><published>2008-11-17T18:38:00.005+01:00</published><updated>2008-11-17T18:59:29.505+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='cilk++'/><category scheme='http://www.blogger.com/atom/ns#' term='gcc'/><category scheme='http://www.blogger.com/atom/ns#' term='memoria transaccional'/><category scheme='http://www.blogger.com/atom/ns#' term='cilk'/><category scheme='http://www.blogger.com/atom/ns#' term='LLVM'/><category scheme='http://www.blogger.com/atom/ns#' term='paralelismo'/><category scheme='http://www.blogger.com/atom/ns#' term='bazar'/><category scheme='http://www.blogger.com/atom/ns#' term='concurrencia'/><category scheme='http://www.blogger.com/atom/ns#' term='software libre'/><category scheme='http://www.blogger.com/atom/ns#' term='pcc'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='Erlang'/><category scheme='http://www.blogger.com/atom/ns#' term='Clojure'/><category scheme='http://www.blogger.com/atom/ns#' term='compilador'/><title type='text'>Varios sobre concurrencia y rivales de GCC</title><content type='html'>Ración de varios variados:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://acmqueue.com/modules.php?name=Content&amp;pa=showpage&amp;pid=557"&gt;Parallel Programming with Transactional Memory de Ulrich Drepper&lt;/a&gt; en el que hace una buena introducción de la memoria transaccional y de su estado actual, que es más bien de investigación, de su posible futuro y de sus posibles problemas, sobre todo de rendimiento. Por cierto, que &lt;a href="http://clojure.org/"&gt;Clojure&lt;/a&gt; usa STM, a ver si algún día le puedo hincar algún diente... (Se ha tratado el tema de la &lt;a href="http://yapw.blogspot.com/search/label/memoria transaccional"&gt;memoria transaccional&lt;/a&gt; más veces por aquí)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Otro artículo introductorio de ACM Queue: &lt;a href="http://acmqueue.com/modules.php?name=Content&amp;pa=showpage&amp;pid=556"&gt;Erlang for Concurrent Programming de Jim Larson&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.cilk.com/multicore-blog/bid/7191/The-Case-for-a-New-Open-Source-License"&gt;Cilk++ 1.0 se liberará con una licencia dual, una &lt;em&gt;open source&lt;/em&gt; y otra &lt;em&gt;comercial&lt;/em&gt;&lt;/a&gt;. &lt;a href="http://www.cilk.com/Default.aspx?app=LeadgenDownload&amp;shortpath=docs%2FCilk_datasheet_8.5x11.pdf"&gt;Cilk++ es un sistema que promete &lt;em&gt;acercar el paralelismo a las masas&lt;/em&gt;&lt;/a&gt;. Ya veremos, pero una herramienta libre más no está mal.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://arstechnica.com/news.ars/post/20081113-things-that-go-clang-in-the-night-llvm-2-4-released.html"&gt;Things that go Clang in the night: LLVM 2.4 released en Ars Technica&lt;/a&gt;. Un poquito más profundo que las notas de prensa que se apuntaban por aquí en &lt;a href="hhttp://yapw.blogspot.com/2008/11/publicado-llvm-24.html"&gt;Publicado LLVM 2.4&lt;/a&gt; pero tampoco para tirar cohetes.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Y por último &lt;a href="http://pcc.ludd.ltu.se/"&gt;pcc, the Portable C Compiler&lt;/a&gt;,  busca, con el apoyo de &lt;a href="http://www.bsdfund.org/"&gt;BSD Fund&lt;/a&gt; &lt;a href="http://undeadly.org/cgi?action=article&amp;sid=20081108135831"&gt;financiación para alcanzar una versión de ppc 1.0 usable&lt;/a&gt; y poder tener un entorno de desarrollo BSD completo (y puro :) )&lt;/li&gt; &lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Movidillo parece el micromundo de los compiladores libres, veremos si la competición les sirve para mejorar a todos ellos.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/~mig21/journal/31155"&gt;La misma entrada y más comentarios en &lt;em&gt;Varios sobre concurrencia y rivales de GCC&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-5934130642796508102?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/5934130642796508102/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=5934130642796508102' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/5934130642796508102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/5934130642796508102'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2008/11/varios-sobre-concurrencia-y-rivales-de.html' title='Varios sobre concurrencia y rivales de GCC'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-4268981743655283644</id><published>2008-11-11T14:02:00.000+01:00</published><updated>2008-11-11T14:04:36.520+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='Ada'/><category scheme='http://www.blogger.com/atom/ns#' term='optimización'/><category scheme='http://www.blogger.com/atom/ns#' term='gcc'/><category scheme='http://www.blogger.com/atom/ns#' term='GPL'/><category scheme='http://www.blogger.com/atom/ns#' term='versionitis'/><category scheme='http://www.blogger.com/atom/ns#' term='BSD'/><category scheme='http://www.blogger.com/atom/ns#' term='LLVM'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='compilador'/><title type='text'>Publicado LLVM 2.4</title><content type='html'>Acaba de ser &lt;a href="http://lists.cs.uiuc.edu/pipermail/llvm-announce/2008-November/000030.html"&gt;anunciada la versión 2.4 de LLVM (Low Level Virtual Machine)&lt;/a&gt;. A &lt;a href="http://llvm.org/"&gt;LLVM&lt;/a&gt; y su compilador asociado &lt;a href="http://clang.llvm.org/"&gt;clang&lt;/a&gt; se les ha querido ver como un competidor de &lt;a href="http://gcc.gnu.org/"&gt;GCC&lt;/a&gt;, en parte por su licencia BSD, por su diseño más modular, por su novedoso enfoque de las optimizaciones y por el apoyo de Apple. &lt;a href="http://llvm.org/releases/2.4/docs/ReleaseNotes.html"&gt;La versión 2.4 trae una buena cantidad de novedades&lt;/a&gt; entre las que destacan la mejora en la generación de código, compilación más rápida y soporte para la arquitectura &lt;a href="http://en.wikipedia.org/wiki/PIC_microcontroller"&gt;PIC16&lt;/a&gt;. En el propio anuncio se apunta a &lt;a href="http://llvm.org/devmtg/2008-08/"&gt;una serie de presentaciones y vídeos para saber más&lt;/a&gt;. [Vía &lt;a href="http://www.reddit.com/r/programming/comments/7cfh9/llvm_24_released/"&gt;reddit&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/~mig21/journal/31116"&gt;La misma entrada y más comentarios en &lt;em&gt;Publicado LLVM 2.4&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-4268981743655283644?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/4268981743655283644/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=4268981743655283644' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/4268981743655283644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/4268981743655283644'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2008/11/publicado-llvm-24.html' title='Publicado LLVM 2.4'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-8152291553614535276</id><published>2008-11-10T17:07:00.002+01:00</published><updated>2008-11-10T17:10:49.673+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='caché'/><category scheme='http://www.blogger.com/atom/ns#' term='memcached'/><category scheme='http://www.blogger.com/atom/ns#' term='memcache'/><category scheme='http://www.blogger.com/atom/ns#' term='portabilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='escalabilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='cache'/><category scheme='http://www.blogger.com/atom/ns#' term='sistemas operativos'/><category scheme='http://www.blogger.com/atom/ns#' term='programación'/><category scheme='http://www.blogger.com/atom/ns#' term='memoria'/><title type='text'>Un vistazo al interior de memcached</title><content type='html'>Leo en &lt;a href="http://icewinddale.blogspot.com/2008/11/memcached-arquitectura-interna.html"&gt;El valle del Viento Helado un artículo acerca de la arquitectura interna de &lt;tt&gt;memcached&lt;/tt&gt;&lt;/a&gt;. &lt;a href="http://www.danga.com/memcached/"&gt;&lt;tt&gt;memcached&lt;/tt&gt;&lt;/a&gt; es un sistema de cachés genéricas muy usado en aplicaciones web. En el artículo se repasa tanto la elección de &lt;a href="http://monkey.org/~provos/libevent/"&gt;libevent&lt;/a&gt; como sistema de gestión de eventos sobre descriptores de fichero, el uso de funciones de entrada/salida no bloqueantes y sobre todo una gestión de memoria basada en un &lt;a href="http://es.wikipedia.org/wiki/Slab"&gt;&lt;em&gt;slab allocator&lt;/em&gt;&lt;/a&gt;. Contiene además enlaces con más información sobre el tema aunque como siempre &lt;a href="http://code.sixapart.com/svn/memcached/trunk/server/"&gt;la información última está en el código fuente&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/~mig21/journal/31107"&gt;La misma entrada y más comentarios en &lt;em&gt;Un vistazo al interior de memcached&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-8152291553614535276?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/8152291553614535276/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=8152291553614535276' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/8152291553614535276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/8152291553614535276'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2008/11/un-vistazo-al-interior-de-memcached.html' title='Un vistazo al interior de memcached'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-5501552221110843468</id><published>2008-10-29T13:05:00.003+01:00</published><updated>2008-10-29T13:19:19.338+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Herb Sutter'/><category scheme='http://www.blogger.com/atom/ns#' term='C++0x'/><category scheme='http://www.blogger.com/atom/ns#' term='C++09'/><category scheme='http://www.blogger.com/atom/ns#' term='borrador'/><category scheme='http://www.blogger.com/atom/ns#' term='ISO C++'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='ANSI C++'/><category scheme='http://www.blogger.com/atom/ns#' term='programación'/><title type='text'>Completado el borrador de C++0x</title><content type='html'>Como comenta &lt;a href="http://herbsutter.wordpress.com/2008/10/28/september-2008-iso-c-standards-meeting-the-draft-has-landed-and-a-new-convener/"&gt;Herb Sutter en su blog&lt;/a&gt;, se ha publicado &lt;a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2798.pdf"&gt;el borrador (pdf) de C++0x que se pasará a la votación internacional&lt;/a&gt;. Creo que es una buen noticia para todos los usuarios de C++, porque como dicen en reddit, &lt;em&gt;&lt;a href="http://www.reddit.com/r/programming/comments/79xf8/lambdas_auto_and_static_assert_c0x_features_in/c062s3l"&gt;map&amp;lt;string, string&amp;gt;::iterator, tu larga década de terror se ha acabado&lt;/a&gt;&lt;/em&gt; :) Además, y no menos importante, toda una serie de características como &lt;tt&gt;rvalue&lt;/tt&gt;s, lambdas, conceptos, librería de operaciones atómicas, librería de threads, soporte para expresiones regulares...&lt;br /&gt;&lt;br /&gt;Y uno de los &lt;em&gt;arreglos&lt;/em&gt; más importantes, el modelo de memoria. Del borrador:&lt;blockquote&gt;The fundamental storage unit in the C++ memory model is the &lt;em&gt;byte&lt;/em&gt;. A byte is at least large enough to contain any member of the basic execution character set and the eight-bit code units of the Unicode UTF-8 encoding form and is composed of a contiguous sequence of bits, the number of which is implementationdefined.&lt;br /&gt;The least significant bit is called the &lt;em&gt;low-order&lt;/em&gt; bit; the most significant bit is called the &lt;em&gt;high-order&lt;/em&gt; bit. The memory available to a C++ program consists of one or more sequences of contiguous bytes. Every byte has a unique address.&lt;br /&gt;[...]&lt;br /&gt;A memory location is either an object of scalar type or a maximal sequence of adjacent bit-fields all having non-zero width. [...] Two threads of execution can update and access separate memory locations without interfering with each other.&lt;/blockquote&gt;&lt;br /&gt;Enhorabuena a los premiados. Ahora falta que los implementadores hagan su trabajo. &lt;a href="http://blogs.msdn.com/vcblog/archive/2008/10/28/lambdas-auto-and-static-assert-c-0x-features-in-vc10-part-1.aspx"&gt;MS VC++ parece que va avanzando para llegar a VC++2010&lt;/a&gt;. (Estoy seguro que la coincidencia del borrador de C++0x y la publicación este post en el blog de VC++ no es casual...) &lt;a href="http://gcc.gnu.org/projects/cxx0x.html"&gt;&lt;tt&gt;gcc&lt;/tt&gt;, aunque más lento, también va avanzando&lt;/a&gt; y ya se pueden probar algunas características.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/~mig21/journal/31021"&gt;La misma entrada y más comentarios en &lt;em&gt;Completado el borrador de C++0x&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-5501552221110843468?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/5501552221110843468/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=5501552221110843468' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/5501552221110843468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/5501552221110843468'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2008/10/completado-el-borrador-de-c0x.html' title='Completado el borrador de C++0x'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-6160998693206912538</id><published>2008-10-23T09:48:00.003+02:00</published><updated>2008-10-23T11:02:54.553+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='concurrencia'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='programación concurrente'/><category scheme='http://www.blogger.com/atom/ns#' term='arquitectos'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='programación paralela'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='programación'/><title type='text'>Varios sobre concurrencia y el rol de los 'arquitectos'</title><content type='html'>Comenzando por &lt;a href="http://tirania.org/blog/archive/2008/Oct-19.html"&gt;el minipost de Miguel de Icaza en el que habla de programación paralela&lt;/a&gt; y siguiendo enlaces:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc872852.aspx"&gt;Design Considerations For Parallel Programming de David Callahan&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc817398.aspx"&gt;Solving 11 Likely Problems In Your Multithreaded Code de Joe Duffy&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Repasando el blog de este último también apunta a &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc872851.aspx"&gt;.NET Matters: False Sharing&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Y también del blog de &lt;a href="http://www.bluebytesoftware.com/"&gt;Joe Duffy&lt;/a&gt;, y aunque no es sobre concurrencia y probablemente sean obviedades, me ha gustado &lt;a href="http://www.bluebytesoftware.com/blog/2008/10/02/AFewThoughtsOnTheRoleOfSoftwareArchitects.aspx"&gt;A few thoughts on the role of software architects&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://barrapunto.com/~mig21/journal/30989"&gt;La misma entrada y más comentarios en &lt;em&gt;Varios sobre concurrencia y el rol de los 'arquitectos'&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-6160998693206912538?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/6160998693206912538/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=6160998693206912538' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/6160998693206912538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/6160998693206912538'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2008/10/varios-sobre-concurrencia-y-el-rol-de.html' title='Varios sobre concurrencia y el rol de los &apos;arquitectos&apos;'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11818694.post-7270502777833150299</id><published>2008-10-14T23:21:00.003+02:00</published><updated>2008-10-15T12:25:28.596+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='matemática'/><category scheme='http://www.blogger.com/atom/ns#' term='humano'/><category scheme='http://www.blogger.com/atom/ns#' term='programadores'/><category scheme='http://www.blogger.com/atom/ns#' term='ser humano'/><category scheme='http://www.blogger.com/atom/ns#' term='ciencia'/><title type='text'>Las matemáticas 'innatas' en el ser humano</title><content type='html'>&lt;strong&gt;Nota:&lt;/strong&gt; Para los lectores de PlanetaCódigo. Esta es una entrada sobre ciencia y matemática y no sobre programación. Si no te interesa no tienes más que saltártela :)&lt;br /&gt;&lt;br /&gt;Ayer en la cola de pendientes de menéame leí una noticia demasiado escueta que hablaba de &lt;a href="http://meneame.net/story/ninos-aborigenes-australianos-capaces-contar-sin-numeros"&gt;niños aborígenes australianos capaces de contar sin números&lt;/a&gt;. Rebuscando un poquito encontré &lt;a href="http://www.ucl.ac.uk/media/library/aboriginal"&gt;la nota de prensa original&lt;/a&gt;, que por lo menos es un poco más explicativa.&lt;br /&gt;&lt;br /&gt;Y es que este tipo de estudios sacan resultados que al menos a primera vista pueden resultar antiintuitivos: nuestra capacidad matemática parece estar más allá de nuestra capacidad verbal. O dicho de otro modo, parece que la evolución nos ha hecho más viables con un pequeño &lt;em&gt;coprocesador matemático&lt;/em&gt;, aparentemente no específica a nuestra especie porque, como decía otro estudio de hace un tiempo, &lt;a href="http://www.newscientist.com/article/dn12849-monkeys-reveal-brain-is-hardwired-for-counting.html"&gt;los monos tienen células dedicadas a contar&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;También acerca del equipamiento matemático del ser humano se oyó hace un tiempo (quizás &lt;a href="http://www.sciencemag.org/cgi/content/abstract/320/5880/1217"&gt;Log or Linear? Distinct Intuitions of the Number Scale in Western and Amazonian Indigene Cultures&lt;/a&gt;)  que las escalas logarítmicas pueden resultar más intuitivas que las lineales a un humano sin formación cultural y/o matemática.&lt;br /&gt;&lt;br /&gt;Me parecen muy reveladoras este tipo de investigaciones ¿Conocéis más publicaciones y/o artículos de este estilo? ¿Qué opináis de la relación entre el ser humano y la matemática?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barrapunto.com/~mig21/journal/30912"&gt;La misma entrada y más comentarios en &lt;em&gt;Las matemáticas 'innatas' en el ser humano&lt;/em&gt; en barrapunto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11818694-7270502777833150299?l=yapw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yapw.blogspot.com/feeds/7270502777833150299/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=11818694&amp;postID=7270502777833150299' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/7270502777833150299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11818694/posts/default/7270502777833150299'/><link rel='alternate' type='text/html' href='http://yapw.blogspot.com/2008/10/las-matemticas-innatas-en-el-ser-humano.html' title='Las matemáticas &apos;innatas&apos; en el ser humano'/><author><name>mig21</name><uri>http://www.blogger.com/profile/11084202300080200239</uri><email>mig21bp@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03768136760210569996'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>