<rss version="2.0"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:dc="http://purl.org/dc/elements/1.1/">
        <channel>
        <title>Magazine - programacion</title>
        <link>https://www.xatakaciencia.com</link>
        <description>Publicación de noticias sobre gadgets y tecnología. Últimas tecnologías en electrónica de consumo y novedades tecnológicas en móviles, tablets, informática, etc</description>
        <pubDate>Fri, 12 Jun 2026 23:16:22 +0000</pubDate>
        <generator>https://www.xatakaciencia.com</generator>
        <atom:link href="https://www.xatakaciencia.com/tag/programacion/rss2.xml" rel="self" type="application/rss+xml" />
                                        <item>
                <title><![CDATA[Al leer lenguaje de programación no se activan las mismas regiones del cerebro que al leer un lenguaje corriente]]></title>
                <link>https://www.xatakaciencia.com/psicologia/al-leer-lenguaje-programacion-no-se-activan-mismas-regiones-cerebro-que-al-leer-lenguaje-corriente</link>
                <guid>https://www.xatakaciencia.com/psicologia/al-leer-lenguaje-programacion-no-se-activan-mismas-regiones-cerebro-que-al-leer-lenguaje-corriente</guid>
                <pubDate>Mon, 04 Jan 2021 09:37:04 +0000</pubDate>
                                <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/fdb062/programacion-2-e1551291144973/1024_2000.jpg" alt="Al&#x20;leer&#x20;lenguaje&#x20;de&#x20;programaci&#x00F3;n&#x20;no&#x20;se&#x20;activan&#x20;las&#x20;mismas&#x20;regiones&#x20;del&#x20;cerebro&#x20;que&#x20;al&#x20;leer&#x20;un&#x20;lenguaje&#x20;corriente">
    </p>
    <p>La lectura de código activa una red cerebral de propósito general, pero no centros de procesamiento del lenguaje, lo que pone en evidencia que el lenguaje de programación no se asimila como si fuera un lenguaje corriente que usamos para comunicarnos. </p>
<!-- BREAK 1 -->
<p>Así pues, aunque el código informático tiene las características de un lenguaje, <strong>al leerlo activa una red distribuida llamada red de demanda múltiple</strong>, que también se usa para tareas cognitivas complejas como resolver problemas matemáticos o crucigramas.</p>
<!-- BREAK 2 --><!--more--><h2>Ni lenguaje ni matemáticas</h2>

<p>Un <strong>lenguaje de programación</strong> es un lenguaje formal (o artificial, es decir, un lenguaje con reglas gramaticales bien definidas) que le proporciona a una persona, en este caso el programador, la capacidad de escribir (o programar) una serie de instrucciones o secuencias de órdenes en forma de algoritmos con el fin de controlar el comportamiento físico o lógico de un ordenador. Pero activa regiones diferentes en nuestro cerebro cuando leemos. </p>
<!-- BREAK 3 --><div class="article-asset-image article-asset-normal article-asset-center">
 <div class="asset-content">
     <div class="caption-img ">
                   <img class="centro_sinmarco" height=162 width=342 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/f94268/classes_and_methods/450_1000.webp 450w, https://i.blogs.es/f94268/classes_and_methods/650_1200.webp 681w,https://i.blogs.es/f94268/classes_and_methods/1024_2000.webp 1024w, https://i.blogs.es/f94268/classes_and_methods/1366_2000.webp 1366w" src="https://i.blogs.es/f94268/classes_and_methods/450_1000.webp" alt="Classes And Methods" onerror="this.src='https://i.blogs.es/f94268/classes_and_methods/450_1000.png';this.srcset='https://i.blogs.es/f94268/classes_and_methods/450_1000.png 450w, https://i.blogs.es/f94268/classes_and_methods/650_1200.png 681w,https://i.blogs.es/f94268/classes_and_methods/1024_2000.png 1024w, https://i.blogs.es/f94268/classes_and_methods/1366_2000.png 1366w';return false;">
   <img alt="Classes And Methods" class="centro_sinmarco" src="https://i.blogs.es/f94268/classes_and_methods/450_1000.webp">
   
        <span>Un ejemplo de código fuente escrito en el lenguaje de programación Java, que imprimirá el mensaje "Hello World!" a la salida estándar cuando es compilado y ejecutado</span>
   </div>
   </div>
</div>
<p>Sin embargo, aunque la lectura de código activa la red de demanda múltiple, parece depender más de diferentes partes de la red que los problemas matemáticos o lógicos, <strong>lo que sugiere que la codificación tampoco replica con precisión las demandas cognitivas de las matemáticas</strong>. Es decir, que el código no es procesado como lenguaje, pero tampoco como matemáticas. </p>
<!-- BREAK 4 -->
<p><strong>Hay dos escuelas de pensamiento con respecto a cómo el cerebro aprende a escribir código</strong>. Una sostiene que para ser bueno en programación, debes ser bueno en matemáticas. La otra sugiere que, debido a los paralelismos entre codificación y lenguaje, las habilidades lingüísticas podrían ser más relevantes. Por ello, para arrojar luz sobre este tema, los investigadores se propusieron estudiar si los patrones de actividad cerebral al leer el código se superpondrían con la actividad cerebral relacionada con el lenguaje. </p>
<!-- BREAK 5 --><div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.xatakaciencia.com/computacion/avanza-tortuga-retrocede-tortuga-lo-que-fue-el-logo" class="pivot-outboundlink" data-vars-post-title="Avanza Tortuga, Retrocede Tortuga: lo que fue el LOGO">
     <img alt="Avanza&#x20;Tortuga,&#x20;Retrocede&#x20;Tortuga&#x3A;&#x20;lo&#x20;que&#x20;fue&#x20;el&#x20;LOGO" width="375" height="142" src="https://i.blogs.es/e80b44/650_1000_logo_turtle/375_142.webp" onerror='this.src="https://i.blogs.es/e80b44/650_1000_logo_turtle/375_142.jpg"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.xatakaciencia.com/computacion/avanza-tortuga-retrocede-tortuga-lo-que-fue-el-logo" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="Avanza Tortuga, Retrocede Tortuga: lo que fue el LOGO">En Xataka Ciencia</a>
    </div>
    <a href="https://www.xatakaciencia.com/computacion/avanza-tortuga-retrocede-tortuga-lo-que-fue-el-logo" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="Avanza Tortuga, Retrocede Tortuga: lo que fue el LOGO">Avanza Tortuga, Retrocede Tortuga: lo que fue el LOGO</a>
   </div>
  </div>
 </div>
</div>
<p>Los investigadores dicen que si bien no identificaron ninguna región que pareciera estar dedicada exclusivamente a la programación, tal actividad cerebral especializada podría desarrollarse en personas que tienen mucha más experiencia en codificación. Los hallazgos sugieren que no hay una respuesta definitiva a si la codificación debe enseñarse como una habilidad basada en matemáticas o una habilidad basada en el lenguaje.</p>
<!-- BREAK 6 -->
<p>Los dos lenguajes de programación en los que se centraron los investigadores en este estudio son conocidos por su legibilidad: <strong>Python</strong> y <strong>ScratchJr</strong>, un lenguaje de programación visual diseñado para niños de 5 años en adelante. </p>
<!-- BREAK 7 --><div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.xatakaciencia.com/tecnologia/11-cifras-de-la-ley-de-moore-que-te-haran-estallar-la-cabeza" class="pivot-outboundlink" data-vars-post-title="11 cifras de la ley de Moore que te harán estallar la cabeza ">
     <img alt="11&#x20;cifras&#x20;de&#x20;la&#x20;ley&#x20;de&#x20;Moore&#x20;que&#x20;te&#x20;har&#x00E1;n&#x20;estallar&#x20;la&#x20;cabeza&#x20;" width="375" height="142" src="https://i.blogs.es/e0b9d3/wiring-diagram-8141_960_720/375_142.webp" onerror='this.src="https://i.blogs.es/e0b9d3/wiring-diagram-8141_960_720/375_142.jpg"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.xatakaciencia.com/tecnologia/11-cifras-de-la-ley-de-moore-que-te-haran-estallar-la-cabeza" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="11 cifras de la ley de Moore que te harán estallar la cabeza ">En Xataka Ciencia</a>
    </div>
    <a href="https://www.xatakaciencia.com/tecnologia/11-cifras-de-la-ley-de-moore-que-te-haran-estallar-la-cabeza" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="11 cifras de la ley de Moore que te harán estallar la cabeza ">11 cifras de la ley de Moore que te harán estallar la cabeza </a>
   </div>
  </div>
 </div>
</div>
<p>Evelina Fedorenko, profesora asociada de neurociencia de desarrollo profesional Frederick A. y Carole J. Middleton y miembro del Instituto McGovern para la investigación del cerebro, es la autora principal de <a rel="noopener, noreferrer" href="https://elifesciences.org/articles/58906">este estudio</a>, que ha sido publicado en <em>eLife</em>. Investigadores del Laboratorio de Ciencias de la Computación e Inteligencia Artificial del MIT y de la Universidad de Tufts también participaron en el estudio.</p>
<!-- BREAK 8 --><script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[Este es el primer lenguaje de programación en chino clásico]]></title>
                <link>https://www.xatakaciencia.com/programacion/este-primer-lenguaje-programacion-chino-clasico</link>
                <guid>https://www.xatakaciencia.com/programacion/este-primer-lenguaje-programacion-chino-clasico</guid>
                <pubDate>Mon, 02 Nov 2020 07:01:01 +0000</pubDate>
                                <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/726ba5/mzu2mjmwnw/1024_2000.jpeg" alt="Este&#x20;es&#x20;el&#x20;primer&#x20;lenguaje&#x20;de&#x20;programaci&#x00F3;n&#x20;en&#x20;chino&#x20;cl&#x00E1;sico">
    </p>
    <p><strong>Wenyan-lang</strong> es <a rel="noopener, noreferrer" href="https://github.com/wenyan-lang">un lenguaje de programación</a> de propósito general desarrollado en diciembre de 2019 por el estudiante de Lingdong Huang (China) en Pittsburgh, Estados Unidos.</p>
<!-- BREAK 1 -->
<p>Está escrito en chino clásico gramaticalmente correcto y permite que las máquinas puedan leer código en el idioma de Confucio. </p>
<!--more--><h2>Wenyan-lang</h2>

<p>Wenyan-lang utiliza tanto caracteres chinos tradicionales como gramática china clásica. Un desafío en el desarrollo del idioma fue cómo el chino clásico <strong>no usa espacios para dividir oraciones en palabras</strong>. </p>
<!-- BREAK 2 -->
<p>Para superar este desafío, Huang señala que los lenguajes de programación solo poseen una cantidad determinada de palabras clave. Como tal, wenyan-lang va de la palabra clave más larga a la más corta en cada programa para descifrar lo que quiere el programador.</p>
<!-- BREAK 3 --><div class="article-asset-image article-asset-normal article-asset-center">
 <div class="asset-content">
                   <img class="centro_sinmarco" height=856 width=1240 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/df8279/mzu2mjm1oa/450_1000.webp 450w, https://i.blogs.es/df8279/mzu2mjm1oa/650_1200.webp 681w,https://i.blogs.es/df8279/mzu2mjm1oa/1024_2000.webp 1024w, https://i.blogs.es/df8279/mzu2mjm1oa/1366_2000.webp 1366w" src="https://i.blogs.es/df8279/mzu2mjm1oa/450_1000.webp" alt="Mzu2mjm1oa" onerror="this.src='https://i.blogs.es/df8279/mzu2mjm1oa/450_1000.jpeg';this.srcset='https://i.blogs.es/df8279/mzu2mjm1oa/450_1000.jpeg 450w, https://i.blogs.es/df8279/mzu2mjm1oa/650_1200.jpeg 681w,https://i.blogs.es/df8279/mzu2mjm1oa/1024_2000.jpeg 1024w, https://i.blogs.es/df8279/mzu2mjm1oa/1366_2000.jpeg 1366w';return false;">
   <img alt="Mzu2mjm1oa" class="centro_sinmarco" src="https://i.blogs.es/df8279/mzu2mjm1oa/450_1000.webp">
   
      </div>
</div>
<p>Ya hay docenas de programas escritos en wenyan-lang. Muchos de ellos son implementaciones de algoritmos matemáticos que se encuentran en los antiguos libros de matemáticas chinos. Por ejemplo, pi_liuhui.wy recrea cómo el matemático del siglo III d.C. Liu Hui calculó pi. Crt.wy es el teorema chino del resto. Pascal_triangle.wy calcula el triángulo de Pascal, <strong>que se describió en los libros chinos antes del descubrimiento de Pascal</strong>.</p>
<!-- BREAK 4 -->
<p>Adivination.wy es un algoritmo de adivinación descrito en el I-Ching, el más antiguo de los clásicos chinos. </p>
<div class="article-asset-video">
 <div class="asset-content">
  <div class="base-asset-video">
   <iframe width="560" height="315" src="https://www.youtube.com/embed/QPdb28h4qjc" allowfullscreen></iframe>
  </div>
 </div>
</div>
<p>Al crecer en Shanghai, Huang aprendió chino clásico básico en la escuela. 'Me fascinó bastante el idioma y leí más libros en chino clásico por mi cuenta cuando era adolescente', recuerda. 'Actualmente estoy leyendo el Huainanzi', una antigua exploración china de la filosofía y el arte de gobernar compilada en la corte del rey de Huainan en el siglo II a. C.</p>
<!-- BREAK 5 -->
<p>El desarrollador del nuevo idioma, Lingdong Huang, diseñó previamente una pintura de paisaje chino infinita <a rel="noopener, noreferrer" href="http://shan-shui-inf.lingdong.works/">generada por ordenador</a>. También ayudó a crear la primera y hasta ahora <a rel="noopener, noreferrer" href="https://www.youtube.com/watch?v=QPdb28h4qjc">única ópera china generada por IA</a>. Se graduó con un título en ciencias de la computación y arte de la Universidad Carnegie Mellon en diciembre.</p>
<!-- BREAK 6 --><script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[Se crea el "ordenador" más pequeño del mundo y un grano de arroz parece gigante a su lado ]]></title>
                <link>https://www.xatakaciencia.com/computacion/se-crea-ordenador-pequeno-mundo-grano-arroz-parece-gigante-su-lado</link>
                <guid>https://www.xatakaciencia.com/computacion/se-crea-ordenador-pequeno-mundo-grano-arroz-parece-gigante-su-lado</guid>
                <pubDate>Mon, 25 Jun 2018 11:26:35 +0000</pubDate>
                                <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/f70b3e/48-researchersc/1024_2000.jpg" alt="Se&#x20;crea&#x20;el&#x20;&quot;ordenador&quot;&#x20;m&#x00E1;s&#x20;peque&#x00F1;o&#x20;del&#x20;mundo&#x20;y&#x20;un&#x20;grano&#x20;de&#x20;arroz&#x20;parece&#x20;gigante&#x20;a&#x20;su&#x20;lado&#x20;">
    </p>
    <p>Lo que veis aquí arriba es un grano de arroz, y a su lado el "ordenador" más pequeño del mundo. Desarrollado con investigadores de la Universidad de Michigan, <strong>mide solo 0.3 mm de lado</strong>.</p>
<!-- BREAK 1 --><!--more--><h2>¿Un ordenador?</h2>

<p>Además de RAM y energía fotovoltaica, los nuevos dispositivos informáticos tienen procesadores y transmisores y receptores inalámbricos. Debido a que son demasiado pequeños para tener antenas de radio convencionales, reciben y transmiten datos con luz visible. Una estación base proporciona luz para la potencia y la programación, y recibe los datos.</p>
<!-- BREAK 2 -->
<p>Sin embargo, estos nuevos microdispositivos pierden toda la programación y los datos anteriores tan pronto como pierden potencia. "No estamos seguros de si deberían llamarse computadoras o no. Es más una cuestión de opinión si tienen la funcionalidad mínima requerida", ha señalado <strong>David Blaauw</strong>, profesor de ingeniería eléctrica e informática, quien dirigió el desarrollo del nuevo sistema.</p>
<!-- BREAK 3 -->
<p>Diseñado como un sensor de temperatura de precisión, el nuevo dispositivo convierte las temperaturas en intervalos de tiempo, definidos con pulsos electrónicos. </p>
<!-- BREAK 4 -->
<p>Como resultado, el ordenador puede informar de temperaturas en regiones minúsculas con un error de aproximadamente 0.1 grados Celsius. El sistema es muy flexible y podría ser adaptado para una gran diversidad de propósitos, pero el equipo se ha decantado por <strong>las mediciones de temperatura de precisión en el ámbito de la oncología</strong>: algunos estudios sugieren que los tumores están más calientes que el tejido normal, pero los datos no tienen la suficiente solidez.</p>
<!-- BREAK 5 --><script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[El siguiente paso de la Inteligencia Arficial es que dude de sí misma]]></title>
                <link>https://www.xatakaciencia.com/computacion/el-siguiente-paso-de-la-inteligencia-arficial-es-que-dude-de-si-misma</link>
                <guid>https://www.xatakaciencia.com/computacion/el-siguiente-paso-de-la-inteligencia-arficial-es-que-dude-de-si-misma</guid>
                <pubDate>Tue, 09 Jan 2018 10:39:31 +0000</pubDate>
                                <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/c39eef/book-3021535_960_720/1024_2000.jpg" alt="El&#x20;siguiente&#x20;paso&#x20;de&#x20;la&#x20;Inteligencia&#x20;Arficial&#x20;es&#x20;que&#x20;dude&#x20;de&#x20;s&#x00ED;&#x20;misma">
    </p>
    <p>Investigadores de <strong>Uber</strong> y <strong>Google</strong> están trabajando en modificaciones del enfoque del <a class="text-outboundlink" href="https://www.xatakaciencia.com/computacion/realmente-estamos-viviendo-una-revolucion-en-la-ia-o-no-es-para-tanto" data-vars-post-title="¿Realmente estamos viviendo una revolución en la IA o no es para tanto?" data-vars-post-url="https://www.xatakaciencia.com/computacion/realmente-estamos-viviendo-una-revolucion-en-la-ia-o-no-es-para-tanto">aprendizaje profundo</a> (deep learning) para gestionar la probabilidad. </p>
<!-- BREAK 1 -->
<p>Este grado de incertidumbre permitirá a los programas de Imteligencia Arfitifial más potentes midan su confianza en una predicción o una decisión, <strong>esencialmente para saber cuándo deberían dudar de sí mismos</strong>.</p>
<!-- BREAK 2 --><!--more--><h2>Incertidumbre</h2>

<p>El <strong>aprendizaje profundo</strong>, que consiste en proporcionar datos de ejemplo a una red neuronal, ha sido un enorme éxito en los últimos años, permitiendo que las máquinas reconozcan objetos en imágenes o transcriban el habla casi a la perfección. Pero éste requiere de una gran cantidad de datos de entrenamiento y poder de cómputo, y puede ser sorprendentemente frágil.</p>
<!-- BREAK 3 -->
<p>Dudar de uno mismo, sin embargo, ofrece una alternativa. </p>
<div class="article-asset-image article-asset-normal article-asset-center">
 <div class="asset-content">
                   <img class="centro_sinmarco" height=528 width=938 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/1c7ee4/imagen-del-coche-autonomo-que-desarrollan-volvo-y-uber/450_1000.webp 450w, https://i.blogs.es/1c7ee4/imagen-del-coche-autonomo-que-desarrollan-volvo-y-uber/650_1200.webp 681w,https://i.blogs.es/1c7ee4/imagen-del-coche-autonomo-que-desarrollan-volvo-y-uber/1024_2000.webp 1024w, https://i.blogs.es/1c7ee4/imagen-del-coche-autonomo-que-desarrollan-volvo-y-uber/1366_2000.webp 1366w" src="https://i.blogs.es/1c7ee4/imagen-del-coche-autonomo-que-desarrollan-volvo-y-uber/450_1000.webp" alt="Imagen Del Coche Autonomo Que Desarrollan Volvo Y Uber" onerror="this.src='https://i.blogs.es/1c7ee4/imagen-del-coche-autonomo-que-desarrollan-volvo-y-uber/450_1000.jpg';this.srcset='https://i.blogs.es/1c7ee4/imagen-del-coche-autonomo-que-desarrollan-volvo-y-uber/450_1000.jpg 450w, https://i.blogs.es/1c7ee4/imagen-del-coche-autonomo-que-desarrollan-volvo-y-uber/650_1200.jpg 681w,https://i.blogs.es/1c7ee4/imagen-del-coche-autonomo-que-desarrollan-volvo-y-uber/1024_2000.jpg 1024w, https://i.blogs.es/1c7ee4/imagen-del-coche-autonomo-que-desarrollan-volvo-y-uber/1366_2000.jpg 1366w';return false;">
   <img alt="Imagen Del Coche Autonomo Que Desarrollan Volvo Y Uber" class="centro_sinmarco" src="https://i.blogs.es/1c7ee4/imagen-del-coche-autonomo-que-desarrollan-volvo-y-uber/450_1000.webp">
   
      </div>
</div>
<p>En el campo de la conducción autónoma, por ejemplo, donde los errores pueden ser fatales, la IA debería conocer el grado de certidumbre de sus conocimientos. De hecho, la incertidumbre es un aspecto clave del razonamiento humano y la inteligencia. Agregarlo a los programas de IA podría hacerlos más inteligentes y menos propensos a cometer errores, según explica <strong>Zoubin Ghahramani</strong>, profesor en la Universidad de Cambridge y científico en jefe de Uber.</p>
<!-- BREAK 4 -->
<p><a rel="noopener, noreferrer" href="https://eng.uber.com/pyro/">Pyro</a>, por ejemplo, es un nuevo lenguaje de programación lanzado por Uber que combina el aprendizaje profundo con la programación probabilística. Un sistema convencional de aprendizaje profundo solo aprende de los datos que recibe. Sin embargo, Pyro también se puede usarse para construir un sistema preprogramado de conocimiento. </p>
<!-- BREAK 5 -->
<p><strong>Edward</strong> es otro lenguaje de programación que abarca la incertidumbre, desarrollado en la Universidad de Columbia con fondos de DARPA. </p>

<p>Tanto Pyro como Edward están todavía en las primeras etapas de desarrollo, pero no es difícil ver por qué Uber y Google están interesados en ellos.</p>

<p><strong>Uber utiliza el aprendizaje automático en innumerables áreas</strong>, desde el enrutamiento de los conductores hasta el establecimiento de precios y, por supuesto, en sus coches autónomos. La compañía ha invertido mucho en IA, contratando a varios expertos <a rel="noopener, noreferrer" href="https://www.technologyreview.com/s/603016/uber-launches-an-ai-lab/">que trabajan en nuevas ideas</a>. Google <a rel="noopener, noreferrer" href="https://www.technologyreview.com/s/608094/google-stakes-its-future-on-a-piece-of-software/">basa todo su negocio en el aprendizaje profundo</a>.</p>
<!-- BREAK 6 -->
<p>Todavía es prematuro afirmar que este nuevo enfoque dará frutos más interesantes que los ofrecidos hasta ahora, pero cabe la posibilidad de que la IA basada en la incertidumbre <strong>acabe por constituir una pequeña revolución</strong>.</p>
<!-- BREAK 7 --><script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[La realidad estará hecha de cátomos, no de átomos ]]></title>
                <link>https://www.xatakaciencia.com/materiales/la-realidad-estara-hecha-de-catomos-no-de-atomos</link>
                <guid>https://www.xatakaciencia.com/materiales/la-realidad-estara-hecha-de-catomos-no-de-atomos</guid>
                <pubDate>Wed, 20 Apr 2016 16:29:52 +0000</pubDate>
                                <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/ea2834/0926_idf_2/1024_2000.jpg" alt="La&#x20;realidad&#x20;estar&#x00E1;&#x20;hecha&#x20;de&#x20;c&#x00E1;tomos,&#x20;no&#x20;de&#x20;&#x00E1;tomos&#x20;">
    </p>
    <p>El <a rel="noopener, noreferrer" href="https://es.wikipedia.org/wiki/Imagen_generada_por_computadora">CGI</a> nos ha permitido construir realidad sintéticas dentro del ordenador. El siguiente paso es hacer lo mismo en el mundo real, en vez de manipulando bits, manipulando átomos. O más bien, <strong>cátomos</strong>.</p>
<!-- BREAK 1 -->
<p>De este modo, las cosas que nos rodean podrán transformarse en otras, en función de nuestras necesidades. Por ejemplo, un sillón convirtiéndose en un sofá, como si fuera un <strong>Transformer</strong>.</p>
<!-- BREAK 2 --><!--more--><h2>¿Qué es un cátomo?</h2>
<div class="article-asset-video">
 <div class="asset-content">
  <div class="base-asset-video">
   <iframe width="650" height="395" src="https://www.youtube.com/embed/HyAS0G26du4" allowfullscreen></iframe>
  </div>
 </div>
</div>
<p>Si la radio ha hecho posible la transmitió de audio, y la televisión, de imágenes, los materiales programables transmitirán al objeto en sí mismo. Por ejemplo, las próximas videoconferencias podrán c<strong>rear una versión tridimensional de nuestro interlocutor allá donde estemos</strong>. </p>
<!-- BREAK 3 -->
<p><strong>Seth Goldstein</strong>, investigador del Instituto Carnegie Mellon, es uno de los responsables de <a rel="noopener, noreferrer" href="http://www.cs.cmu.edu/~claytronics/">esta investigación</a> que emplea una nueva clase de materiales basados en la claytrónica. El término procede del inglés claytronics, que es la mezcla de electronics y clay (arcilla o plastilina, es decir, maleabilidad). Tal y como explica <strong>Michio Kaku</strong> en su libro <em>La física del futuro</em>:</p>
<!-- BREAK 4 -->
<blockquote>
  <p>Con las mismas técnicas que se usan para grabar millones de transistores en obleas de silicio, él podía grabar cátomos microscópicos de tan solo unos milímetros de diámetro. De hecho, eran tan pequeños que tuve que mirarlos con un microscopio para verlos claramente. La intención de Goldstein es conseguir, mediante el control de sus fuerzas eléctricas, que esos cátomos se dispongan adoptando cualquier forma solo con pulsar un botón</p>
</blockquote>
<div class="article-asset-image article-asset-normal article-asset-center">
 <div class="asset-content">
                   <img class="centro_sinmarco" height=433 width=650 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/38bad8/633374789081565528/450_1000.webp 450w, https://i.blogs.es/38bad8/633374789081565528/650_1200.webp 681w,https://i.blogs.es/38bad8/633374789081565528/1024_2000.webp 1024w, https://i.blogs.es/38bad8/633374789081565528/1366_2000.webp 1366w" src="https://i.blogs.es/38bad8/633374789081565528/450_1000.webp" alt="633374789081565528" onerror="this.src='https://i.blogs.es/38bad8/633374789081565528/450_1000.jpg';this.srcset='https://i.blogs.es/38bad8/633374789081565528/450_1000.jpg 450w, https://i.blogs.es/38bad8/633374789081565528/650_1200.jpg 681w,https://i.blogs.es/38bad8/633374789081565528/1024_2000.jpg 1024w, https://i.blogs.es/38bad8/633374789081565528/1366_2000.jpg 1366w';return false;">
   <img alt="633374789081565528" class="centro_sinmarco" src="https://i.blogs.es/38bad8/633374789081565528/450_1000.webp">
   
      </div>
</div>
<p>La claytrónica trabajo con cátomos, y cada uno de ellos representa un ordenador de tamaño inferior a un milímetro que contendrá en sí mismo su propia CPU, una batería, una conexión inalámbrica a internet y un mecanismo que propine el agarre versátil para permanecer unido al resto de cátomos <strong>sin perder su libertad de movimiento</strong>.</p>
<!-- BREAK 5 -->
<p>Por el momento, se está trabajando en hacer cada vez más pequeños los cátodos, y en ampliar a las tres dimensiones su capacidad de reconfiguración. Así, no sólo su forma, sino también su color y sus funciones podrían ser reprogramadas. A la vez, como cada cátomo carga su propio procesador y memoria, sería posible incluir una programación general.</p>
<!-- BREAK 6 -->
<p>Con todo, la idea más ambiciosa para este tipo de sistemas sería la creación de líneas de producción metamorfoseables en el sector indutrial. El transporte, clasificación, manipulación y montaje de objetos podría ser llevado cabo por <strong>una manada de robots</strong> capaz de adaptar su forma y configuración a las demandas cambiantes de la línea de producción. </p>
<!-- BREAK 7 -->
<p>Tal y como <a rel="noopener, noreferrer" href="http://science.sciencemag.org/content/345/6197/647.abstract#aff-1">asegura</a> <strong>Jesse L. Silverberg</strong>, de la Universidad de Cornell, mediante la combinación de técnicas de origami, metamateriales, cristalografía y programación de materiales se diseñarán dispositivos más versátiles y fáciles de construir que nunca antes en la historia. ¿Alguien ha pensado en el metal líquido polimórfico que constituye el <em>T-1000</em> de <em>Terminator 2</em>.</p>
<!-- BREAK 8 --><script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[Briko, robótica mexicana al alcance de todos]]></title>
                <link>https://www.xatakaciencia.com/robotica/briko-robotica-mexicana-al-alcance-de-todos</link>
                <guid>https://www.xatakaciencia.com/robotica/briko-robotica-mexicana-al-alcance-de-todos</guid>
                <pubDate>Thu, 14 Jan 2016 22:36:58 +0000</pubDate>
                                <description>
                    <![CDATA[
                              <div><iframe width="650" height="395" src="https://www.youtube.com/embed/QYVLQERtYLo" frameborder="0" allowfullscreen></iframe></div>
    <div class="article-asset-video">
 <div class="asset-content">
  <div class="base-asset-video">
   <iframe width="650" height="395" src="https://www.youtube.com/embed/QYVLQERtYLo" allowfullscreen></iframe>
  </div>
 </div>
</div>
<p><strong>Briko</strong> es un startup mexicano que desarrolla un kit de modulos programables para aprender electrónica, robótica y programación para usuarios a partir de los ocho años de edad, así como para facilitar el desarrollo de futuros creadores que cambien el rumbo en México y Latinoamérica, como podéis ver en el vídeo que encabeza esta entrada. Con <strong>los kits de briko</strong>, cualquiera puede crear robots o “hackear” (modificar para mejorar) objetos comunes. Los módulos tienen diferentes funciones, se conectan a un “cerebro” y se programan de forma sencilla en un ordenador o tablet.</p>
<!-- BREAK 1 -->
<p>Briko ha sido fundada en febrero de 2015 en San Luis Potosí por cuatro jóvenes ingenieros menores a 24 años. Organismos como la <a rel="noopener, noreferrer" href="http://redrobotica.org/">Red Robótica Latinoamericana</a> congregan a diferentes proyectos en la región y en México hay quienes buscan impulsar la robótica y la programación como factores de cambio para el desarrollo del país.</p>
<!-- BREAK 2 --><!--more-->
<p>Según <a rel="noopener, noreferrer" href="http://geekpunto.com/robotica-y-programacion-para-impulsar-a-mexico-entrevista-con-david-bustos-cofundador-de-briko/">explica</a> <strong>David Bustos</strong>, uno de los fundadores:</p>

<blockquote>
  <p>Dentro de poco esperamos que Briko se venda en retail, es decir, que un papá le pueda comprar un Briko a su hijo en tiendas o supermercados. El objetivo es tener este tipo de herramientas para la creación de tecnología a la mano en cualquier momento.</p>
</blockquote>

<p>Mientras tanto, los brikos se adquieren en su página web con un precio base de 1,500 pesos.</p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[Star Wars: The Force Awakens enseña a programar a los más pequeños de la casa]]></title>
                <link>https://www.xatakaciencia.com/programacion/star-wars-the-force-awakens-ensena-a-programar-a-los-mas-pequenos-de-la-casa</link>
                <guid>https://www.xatakaciencia.com/programacion/star-wars-the-force-awakens-ensena-a-programar-a-los-mas-pequenos-de-la-casa</guid>
                <pubDate>Thu, 26 Nov 2015 13:35:54 +0000</pubDate>
                                <description>
                    <![CDATA[
                              <div><iframe width="650" height="395" src="https://www.youtube.com/embed/vNjiHkQQl6A" frameborder="0" allowfullscreen></iframe></div>
    <div class="article-asset-video">
 <div class="asset-content">
  <div class="base-asset-video">
   <iframe width="650" height="395" src="https://www.youtube.com/embed/vNjiHkQQl6A" allowfullscreen></iframe>
  </div>
 </div>
</div>
<p>Además de saber inglés (o chino), las nuevas generaciones deberán dominar otro lenguaje: <strong>la programación</strong>. Por eso son cada vez más pequeños los que se inician en su aprendizaje. Para facilitar las cosas y hacerlas más amenas, este curso online enseña a programar usando personajes de <em>Star Wars: The Force Awakens</em>. Concretamente el droide BB-8, que se encarga de enseñar los comandos más básicos del lenguaje.</p>
<!-- BREAK 1 -->
<p>La responsable es la organización sin fines de lucro <a rel="noopener, noreferrer" href="https://code.org/starwars">Code.org</a>, que en general buscan impulsar el interés en la programación y la computación, como podéis ver en el vídeo que encabeza esta entrada. </p>
<!-- BREAK 2 --><!--more--><p>El curso consiste en superar retos basados en mover a <strong>BB-8</strong> usando líneas de código, y recolectar la chatarra que encontrará en cada uno de los pequeños mapas mientras nos guía <strong>Rey</strong>, la que parece la protagonista de la nueva trilogía.</p>
<!-- BREAK 3 -->
<p>Por ahora solo existe un nivel del curso de programación, el de JavaScript, y está diseñado para niños de a partir de 11 años. La mayor parte de lenguajes de programación populares como C, Java, C#, Perl, Ruby, o Python, sirven para hacer más o menos las mismas cosas. Pero con independencia del lenguaje que queráis aprender, lo mejor para empezar es familiarizarse con los fundamentos de programación, y <strong>aprender a 'pensar como un programador'</strong>.</p>
<!-- BREAK 4 --><script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[Las seis mujeres que revolucionaron la programación ]]></title>
                <link>https://www.xatakaciencia.com/programacion/las-seis-mujeres-que-revolucionaron-la-programacion</link>
                <guid>https://www.xatakaciencia.com/programacion/las-seis-mujeres-que-revolucionaron-la-programacion</guid>
                <pubDate>Tue, 08 Sep 2015 07:01:55 +0000</pubDate>
                                <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/02fc97/first_four-red/1024_2000.jpg" alt="Las&#x20;seis&#x20;mujeres&#x20;que&#x20;revolucionaron&#x20;la&#x20;programaci&#x00F3;n&#x20;">
    </p>
    <p>El mundo de la programación siempre ha tenido una veta femenina, desde sus inicios con la poeta y aficionada a la ciencia <strong>Ada Lovelace</strong>, hija de <strong>Lord Byron</strong>, cuando <strong>Charles Babbage</strong> trajinaba con los primeros diseños de su máquina analítica en el siglo XIX.</p>
<!-- BREAK 1 -->
<p>En el caso del ENIAC, la primera computadora con propósitos generales que inicialmente fue diseñada para calcular tablas de tiro de artillería para el Ejército de los Estados Unidos, los ingenieros que la construyeron fueron hombres, pero su programación (y el desarrollo de la computación moderna) <strong>fue posible gracias al esfuerzo de seis mujeres</strong>.</p>
<!-- BREAK 2 --><!--more--><p>Cuando se estaba construyendo ENIAC en 1945, se tuvo la idea de que la máquina sirviera para muchas cosas diferentes. Realizar distintos tipos de cálculos implicaba, pues, reconectar su amasijo de cables y reconfigurar sus conmutadores. </p>
<!-- BREAK 3 -->
<p>Como la tarea parecía rutinaria y fácil, fue adjudicada a un conjunto de mujeres que habían estudiado ingeniería. Sin embargo, al poco tiempo, esas mujeres demostraron que <strong>la programación de un ordenador puede ser tan importante como el diseño de su hardware</strong>.</p>
<!-- BREAK 4 -->
<h2>Las 6</h2>
<div class="article-asset-image article-asset-normal article-asset-center">
 <div class="asset-content">
                   <img class="centro_sinmarco" height=470 width=650 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/370de4/eniac-2/450_1000.webp 450w, https://i.blogs.es/370de4/eniac-2/650_1200.webp 681w,https://i.blogs.es/370de4/eniac-2/1024_2000.webp 1024w, https://i.blogs.es/370de4/eniac-2/1366_2000.webp 1366w" src="https://i.blogs.es/370de4/eniac-2/450_1000.webp" alt="Eniac 2" onerror="this.src='https://i.blogs.es/370de4/eniac-2/450_1000.jpg';this.srcset='https://i.blogs.es/370de4/eniac-2/450_1000.jpg 450w, https://i.blogs.es/370de4/eniac-2/650_1200.jpg 681w,https://i.blogs.es/370de4/eniac-2/1024_2000.jpg 1024w, https://i.blogs.es/370de4/eniac-2/1366_2000.jpg 1366w';return false;">
   <img alt="Eniac 2" class="centro_sinmarco" src="https://i.blogs.es/370de4/eniac-2/450_1000.webp">
   
      </div>
</div>
<p><strong>Jean Jennings</strong> nació en una granja a las afueras de Alanthus Grove, en Missouri, en el seno de una familia de clase baja que daba mucha importancia a la educación. Empezó estudiando Periodismo pero, como se enemistó con su tutor, al final estudió Matemáticas. En 1945, llegó a su poder un folleto de la Universidad de Pennsylvania que buscaba mujeres, tal y como transcribe <strong>Walter Issacson</strong> en su libro <em>Los innovadores</em>:</p>
<!-- BREAK 5 -->
<blockquote>
  <p>Se necesitan mujeres licenciadas en matemáticas (…) Se ofrecen trabajos científicos y de ingeniería para mujeres, para los que anteriormente se prefería contratar a hombres. Este es el momento de plantearse trabajar en ciencia e ingeniería. (…) Descubrirá que la consigna, aquí como en todas partes, es “¡SE NECESITAN MUJERES!”</p>
</blockquote>

<p>Cuando Jennings fue admitida, tenía solo 22 años. Al llegar a Penn, allí había alrededor de 60 mujeres trabajando con máquinas sumadoras de sobremesa. Le recibió <strong>Adele</strong>, la encargada de la contratación, tal y como recuerda Jennings:</p>
<!-- BREAK 6 -->
<blockquote>
  <p>Nunca olvidaré la primera vez que vi a Adele. Entró tranquilamente en el aula con un cigarrillo colgando de la comisura de los labios, llegó hasta una mesa, pasó una pierna por una de sus esquinas y comenzó a hablar con su acento de Brooklyn ligeramente suavizado (…) Supe que estaba muy lejos de Maryville, donde las mujeres tenían que escabullirse al invernadero para poder fumarse un cigarrillo.</p>
</blockquote>

<p><strong>Jean Jennings</strong> fue seleccionada, junto a <strong>Marlyn Wescoff</strong> (mas tarde, Meltzer), <strong>Ruth Lichterman</strong> (de casada, Teitelbaum), <strong>Betty Snyder</strong> (posteriormente, Holberton), <strong>Frances Bilas</strong> (de casada, Spence) y <strong>Kay McNulty</strong>. </p>
<!-- BREAK 7 -->
<blockquote>
  <p>Ello sucedió porque en aquella época muchas mujeres estudiaban matemáticas, y existía una gran demanda de sus conocimientos. Pero también se daba un hecho irónico: los chicos, con sus juguetitos, pensaban que la tarea más importante era el ensamblaje del hardware, y que ese era por tanto un trabajo de hombres.</p>
</blockquote>
<div class="article-asset-image article-asset-normal article-asset-center">
 <div class="asset-content">
                   <img class="centro_sinmarco" height=177 width=640 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/cac164/eniac_womens/450_1000.webp 450w, https://i.blogs.es/cac164/eniac_womens/650_1200.webp 681w,https://i.blogs.es/cac164/eniac_womens/1024_2000.webp 1024w, https://i.blogs.es/cac164/eniac_womens/1366_2000.webp 1366w" src="https://i.blogs.es/cac164/eniac_womens/450_1000.webp" alt="Eniac Womens" onerror="this.src='https://i.blogs.es/cac164/eniac_womens/450_1000.jpg';this.srcset='https://i.blogs.es/cac164/eniac_womens/450_1000.jpg 450w, https://i.blogs.es/cac164/eniac_womens/650_1200.jpg 681w,https://i.blogs.es/cac164/eniac_womens/1024_2000.jpg 1024w, https://i.blogs.es/cac164/eniac_womens/1366_2000.jpg 1366w';return false;">
   <img alt="Eniac Womens" class="centro_sinmarco" src="https://i.blogs.es/cac164/eniac_womens/450_1000.webp">
   
      </div>
</div>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[Un robot que puede ser construido por niños y que dibuja el resultado de su programación]]></title>
                <link>https://www.xatakaciencia.com/robotica/un-robot-que-puede-ser-construido-por-ninos-y-que-dibuja-el-resultado-de-su-programacion</link>
                <guid>https://www.xatakaciencia.com/robotica/un-robot-que-puede-ser-construido-por-ninos-y-que-dibuja-el-resultado-de-su-programacion</guid>
                <pubDate>Tue, 19 May 2015 19:12:58 +0000</pubDate>
                                <description>
                    <![CDATA[
                              <div><iframe width="650" height="395" src="https://www.youtube.com/embed/NisbltxUqPU" frameborder="0" allowfullscreen></iframe></div>
    <div class="article-asset-video">
 <div class="asset-content">
  <div class="base-asset-video">
   <iframe width="650" height="395" src="https://www.youtube.com/embed/NisbltxUqPU" allowfullscreen></iframe>
  </div>
 </div>
</div>
<p><a rel="noopener, noreferrer" href="http://mirobot.io/">Mirobot</a> puede ser construido por un niño, y toda la información cómo construirlo y programarlo está disponible en la página web <a rel="noopener, noreferrer" href="http://learn.mirobot.io/">LearnMirobot</a>. El robot se comercializa en forma de kit, y los paneles vienen ya cortados con láser y <strong>se ensambla sin necesidad de tornillos o adhesivos</strong>. </p>
<!-- BREAK 1 -->
<p>También tiene conexión wifi, y la programación del robot se puede llevar a cabo desde el navegador web mediante una aplicación que se adapta según la edad y los conocimientos del usuario. Se puede visualizar el resultado de la programación en la forma de los trazos que deja el robot a su paso, <strong>dibujando unas u otras formas geométricas con el rotulador</strong>, como podéis ver en el vídeo que encabeza esta entrada.</p>
<!-- BREAK 2 -->
<p>Vía | <a rel="noopener, noreferrer" href="http://www.microsiervos.com/archivo/tecnologia/mirobot-robot-programable-para-ninos-dibuja.html">Microsiervos</a></p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[Parseando XML con Java (II)]]></title>
                <link>https://www.xatakaciencia.com/programacion/parseando-xml-con-java-ii</link>
                <guid>https://www.xatakaciencia.com/programacion/parseando-xml-con-java-ii</guid>
                <pubDate>Fri, 27 Oct 2006 13:58:28 +0000</pubDate>
                                <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/48e34d/javaxml/1024_2000.png" alt="Parseando&#x20;XML&#x20;con&#x20;Java&#x20;&#x28;II&#x29;">
    </p>
    <p>Seguimos con el <a href="https://www.xatakaciencia.com/2006/10/26-parseando-xml-con-java-i">post de ayer</a>, donde estábamos implementando en Java una aplicación que leyese un documento XML usando SAX. La aplicación de ejemplo la he dividido en 5 clases: <strong>Index</strong>, <strong>Acciones</strong>, <strong>Parseador</strong>, <strong>Interfaz</strong> y <strong>Conclusión</strong>.</p>
<!-- BREAK 1 --><!--more-->
<ul>
   <li>
   <p><strong>Parseador:</strong> Es la clase que se encarga de leer el documento XML. Esta clase contiene varios métodos por defecto: inicioElemento(Avisa que se ha encontrado una etiqueta registro, y de paso almacenamos el atributo definido en ella), finElemento (Tratamos los datos, en nuestro caso almacenamos en el objeto Vector) y characters (recibe la ubicación de los caracteres del elemento y los extraemos almacenándolos en una cadena). En realidad inicioElemento y finalElemento son una versión simplificada de los métodos startElement y endElement. De aquí sacaremos una colección con los datos que hayamos leído durante el proceso de lectura. En la variable valor se irá guardando una cadena que contiene los datos extraídos, es decir, los datos que tendremos que almacenar en la colección. El código es el siguiente:&#xD;
<pre>&#xD;
import org.xml.sax.helpers.DefaultHandler;&#xD;
import org.xml.sax.Attributes;&#xD;
import java.util.Vector;&#xD;
import org.xml.sax.<em>;&#xD;
import org.xml.sax.helpers.</em>;&#xD;
&#xD;
public class Parseador extends DefaultHandler  {&#xD;
  private Vector coleccion; &#xD;
  private Acciones actual; &#xD;
  private String valor; &#xD;
&#xD;
  public Parseador (Vector coleccion) {&#xD;
     this.coleccion = coleccion; &#xD;
  }&#xD;
&#xD;
  /*&#xD;
  localName: contiene el nombre de la etiqueta.&#xD;
  att: de la clase "org.xml.sax.Attributes",&#xD;
  es una tabla que contiene los atributos&#xD;
  contenidos en la etiqueta.&#xD;
  */&#xD;
  public void startElement( String namespaceURI,&#xD;
           String localName, String qName,&#xD;
           Attributes attr ) throws SAXException {&#xD;
            &#xD;
     inicioElemento(localName, attr);&#xD;
  }&#xD;
&#xD;
  public void endElement (String namespaceURI,&#xD;
           String localName, String rawName)&#xD;
           throws SAXException {&#xD;
      finElemento(localName);&#xD;
  }&#xD;
&#xD;
   public void inicioElemento(String nombreElemento,&#xD;
            Attributes atributo) throws SAXException {&#xD;
            &#xD;
      if (nombreElemento.equals("entrada")) {&#xD;
        actual = new Acciones (); &#xD;
        coleccion.addElement(actual); &#xD;
        actual.setID(&#xD;
             Integer.parseInt(atributo.getValue("id"))); &#xD;
      }&#xD;
    }&#xD;
&#xD;
    public void finElemento(String nombreElemento)&#xD;
             throws SAXException {&#xD;
&#xD;
        if (nombreElemento.equals("nombre")){ &#xD;
          actual.setNombre (valor);&#xD;
        } else if (nombreElemento.equals("telefono")) {&#xD;
          actual.setTelefono (Integer.parseInt(valor)); &#xD;
        }&#xD;
    }&#xD;
&#xD;
    public void characters (char[] ch, int start, int end)&#xD;
    {&#xD;
 &#xD;
       valor = new String (ch, start, end);&#xD;
       valor = valor.trim();&#xD;
    }&#xD;
}&#xD;
</pre>&#xD;</p>
<!-- BREAK 2 -->
  </li>
   <li>
   <p><strong>Acciones:</strong> La clase Acciones contiene sencillos métodos get y set utilizando en la aplicación. Viene dada por el siguiente código:&#xD;
<pre>&#xD;
public class Acciones {&#xD;
     &#xD;
   private String documento;&#xD;
   private String nombre;&#xD;
   private int telefono;&#xD;
   private int id;&#xD;
&#xD;
   public void setNombre (String nombre) {&#xD;
      this.nombre = nombre;&#xD;
   }&#xD;
&#xD;
   public void setTelefono (int telefono) {&#xD;
      this.telefono = telefono;&#xD;
   }&#xD;
&#xD;
   public void setID (int id) {&#xD;
      this.id = id;&#xD;
   }&#xD;
&#xD;
   public void setDocumento(String documento) {&#xD;
      this.documento = documento;&#xD;
   }&#xD;
&#xD;
    public String getNombre() {&#xD;
       return nombre;&#xD;
    }&#xD;
&#xD;
    public int getTelefono()  {&#xD;
       return telefono;&#xD;
    }&#xD;
&#xD;
     public int getID() {&#xD;
       return id;&#xD;
     }&#xD;
&#xD;
     public String getDocumento() {&#xD;
       return documento;&#xD;
     }&#xD;
}&#xD;
</pre>&#xD;</p>
<!-- BREAK 3 -->
  </li>
   <li>
   <p><strong>Index:</strong> Es la clase que contiene el main e invoca a las demás clases. Su código es el que se muestra a continuación:&#xD;
<pre>&#xD;
import java.util.Vector;&#xD;
import org.xml.sax.XMLReader;&#xD;
import org.xml.sax.SAXException;&#xD;
import org.apache.xerces.parsers.SAXParser;&#xD;
import org.xml.sax.*;&#xD;
&#xD;
public class Index {&#xD;
     &#xD;
  Vector coleccion = new Vector ();&#xD;
  Acciones acciones = new Acciones ();&#xD;
  XMLReader parser = new SAXParser();&#xD;
&#xD;
 public void ParsearDocumento () throws Exception {&#xD;
&#xD;
      String nombre_de_archivo;&#xD;
      acciones.setDocumento("index.xml"); &#xD;
      nombre_de_archivo=acciones.getDocumento(); &#xD;
      parser.setContentHandler(new Parseador(coleccion));&#xD;
      parser.parse(nombre_de_archivo); &#xD;
      Interfaz contenedor = new Interfaz(coleccion);&#xD;
 }&#xD;
&#xD;
 public static void main(String[] args) throws Exception {&#xD;
&#xD;
      Index ejecutar = new Index();&#xD;
      ejecutar.ParsearDocumento();&#xD;
 }&#xD;
&#xD;
}&#xD;
</pre>&#xD;</p>
<!-- BREAK 4 -->
  </li>
   <li>
   <p><strong>Interfaz y Conclusión:</strong> La clase Interfaz es la que se encarga de crear la interfaz gráfica dónde se mostrarán los datos en pantalla. La clase Conclusión es una clase auxiliar de Interfaz.&#xD;</p>
<!-- BREAK 5 -->
<pre>&#xD;
import java.util.Vector;&#xD;
import java.awt.FlowLayout;&#xD;
import java.awt.Frame;&#xD;
import java.awt.List;&#xD;
import java.awt.MenuBar;&#xD;
import java.awt.Menu;&#xD;
import java.awt.MenuItem;&#xD;
import java.awt.Event;&#xD;
import java.awt.*;&#xD;
import java.awt.image.ImageObserver;&#xD;
&#xD;
public class Interfaz {&#xD;
&#xD;
   public Interfaz(Vector datos) {&#xD;
&#xD;
      int i;&#xD;
      Acciones[] inserta=new Acciones[datos.size()]; &#xD;
      List miLista = new List(15,false);&#xD;
&#xD;
      for(i=0;i<datos .size="" conclusion="" electr="" flowlayout="" frame="" inserta="" miframe="new" miframe.add="" miframe.addwindowlistener="" miframe.setlayout="" miframe.setsize="" miframe.setvisible="" milista.add="" xml="">&#xD;
<pre>&#xD;
import java.awt.*;&#xD;
import java.awt.event.*;&#xD;
&#xD;
public class Conclusion extends WindowAdapter {&#xD;
    public void windowClosing( WindowEvent evt ) {&#xD;
         System.exit(0);&#xD;
    }&#xD;
}&#xD;
</pre>&#xD;
</datos></pre>

  </li>
 </ul>
<p>Referencias | <a rel="noopener, noreferrer" href="http://es.wikipedia.org/wiki/XML">Wikipedia.org</a>
Referencias | <a rel="noopener, noreferrer" href="http://xerces.apache.org">Xerces</a></p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
            </channel>
</rss>
