<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Shiny on Bastián Olea</title>
    <link>https://bastianolea.rbind.io/tags/shiny/</link>
    <description>Recent content in Shiny on Bastián Olea</description>
    <generator>Hugo</generator>
    <language>es-ES</language>
    <lastBuildDate>Mon, 01 Jun 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://bastianolea.rbind.io/tags/shiny/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Tutorial: introducción al desarrollo de apps con Shiny</title>
      <link>https://bastianolea.rbind.io/blog/r_introduccion/tutorial_shiny_1/</link>
      <pubDate>Fri, 08 Nov 2024 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/r_introduccion/tutorial_shiny_1/</guid>
      <description>&lt;div style=&#34;display: flex; align-items: center; gap: 15px; padding: 14px; &#xA;            background-color: #493365;&#xA;            border-radius: 6px;&#xA;            margin: 20px 40px 20px 40px;&#34;&gt;&#xA;  &#xA;  &lt;div style=&#34;flex-shrink: 0;&#34;&gt;&#xA;    &lt;i class=&#34;fas fa-triangle-exclamation&#34; style=&#34;font-size: 130%; margin-left: 2px; opacity: 1; color: #EAD2FA;&#34;&gt;&lt;/i&gt;&#xA;  &lt;/div&gt;&#xA;  &#xA;  &lt;aside style = &#34;font-size: 90%; color: #EAD2FA;&#34;&gt;&#xA;    Existe una &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/blog/shiny/&#34;&gt;versión mucho más completa&lt;/a&gt; de este tutorial! &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/blog/shiny/&#34;&gt;Revísala aquí.&lt;/a&gt;&#xA;  &lt;/aside&gt;&#xA;  &#xA;&lt;/div&gt;&#xA;&lt;p&gt;Shiny es un paquete de R que permite crear aplicaciones web interactivas usando sólo código de R. Es muy fácil de aprender, puedes crear cosas interesantes en muy poco tiempo, y tiene la capacidad de &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/apps/&#34;&gt;crear complejas y atractivas aplicaciones.&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tutorial: publicar una app Shiny en shinyapps.io</title>
      <link>https://bastianolea.rbind.io/blog/r_introduccion/tutorial_shinyapps/</link>
      <pubDate>Thu, 07 Nov 2024 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/r_introduccion/tutorial_shinyapps/</guid>
      <description>&lt;p&gt;¿Desarrollaste una aplicación con Shiny, y quieres compartirla con el mundo? &#xA;&lt;a href=&#34;https://www.shinyapps.io&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;shinyapps.io&lt;/a&gt; es, en mi experiencia, el servicio más sencillo de usar para poder hacer públicas tus aplicaciones Shiny.&lt;/p&gt;&#xA;&lt;p&gt;El primer paso es, lógicamente, tener una app Shiny funcionando. Para asegurarte que tu app funcione sin problemas, acá van soluciones a los errores más frecuentes de las apps Shiny:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Asegúrate de que tus scripts (&lt;code&gt;app.R&lt;/code&gt;, o bien, &lt;code&gt;ui.R&lt;/code&gt; y &lt;code&gt;server.R&lt;/code&gt;) estén todos dentro de una misma carpeta&lt;/li&gt;&#xA;&lt;li&gt;Confirma que los datos que cargue tu app estén en la misma carpeta que tu script, o bien, entro de carpetas que estén al mismo nivel que tus scripts. En otras palabras, si tu app carga datos, las rutas &lt;code&gt;deberían/ser/así.csv&lt;/code&gt; o &lt;code&gt;así.rds&lt;/code&gt;, y no &lt;code&gt;~/users/tu/documents/cosas/app/datos.xlsx&lt;/code&gt; ni tampoco &lt;code&gt;C:\Users\Desktop\app\datos\data.csv&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Reinicia tu sesión de R (Session &amp;gt; Restart R) y confirma que tu aplicación funciona correctamente. Así confirmas que tu app carga todos los paquetes necesarios, y que no depende de algo que estaba en tu entorno de R pero que no era reproducible desde su código.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Luego, debes crearte una cuenta en &#xA;&lt;a href=&#34;https://www.shinyapps.io&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;shinyapps.io&lt;/a&gt;. Las cuentas gratuitas permiten tener hasta 5 aplicaciones, con 25 horas de uso mensual (en total, entre todos tus usuarios). Ésto es más que suficiente para apps de pruebas y con pocos usuarios, considerando que al superar el límite de horas no te interrumpen imnediatamente el acceso a tu aplicación. El plan inicial (13USD) permite 25 aplicaciones y 1000 horas de uso mensual.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Crea un chatbot de inteligencia artificial con R</title>
      <link>https://bastianolea.rbind.io/blog/shinychat/</link>
      <pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/shinychat/</guid>
      <description>&lt;p&gt;Con R y los paquetes apropiados, en pocos minutos podrás crear un chat interactivo de inteligencia artificial dentro de una aplicación Shiny, para poder chatear con un modelo de lenguaje (LLM) de tu elección.&lt;/p&gt;&#xA;&lt;a href=&#34;chatbot_r_featured.png&#34; target=&#34;_blank&#34;&gt;&#xA;&#xA;  &lt;img src=&#34;chatbot_r_featured.png&#34; style=&#34;border-radius: 5px; width: 80%; max-width: 400px; display: block; margin: auto; margin-bottom: 8px; margin-top: 8px;&#34;&gt;&#xA;  &#xA;&lt;/a&gt;&#xA;&lt;p&gt;El objetivo es poder crear un chat interactivo e ir mejorándolo con la capacidad de &lt;strong&gt;consultar datos&lt;/strong&gt;, &lt;strong&gt;realizar cálculos&lt;/strong&gt; y otras capacidades propias de R, y además aumentar su conocimiento y la precisión de sus respuestas al permitirle &lt;strong&gt;consultar documentos y textos&lt;/strong&gt; para responder.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tutorial: Crea aplicaciones web interactivas en R con Shiny</title>
      <link>https://bastianolea.rbind.io/blog/shiny/</link>
      <pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/shiny/</guid>
      <description>&lt;p&gt;&#xA;&lt;a href=&#34;https://shiny.posit.co&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Shiny&lt;/a&gt; es un paquete de R para &lt;strong&gt;desarrollar aplicaciones web interactivas&lt;/strong&gt;. Con Shiny puedes crear apps que tus usuarios/as podrán ver desde su navegador, y pueden contener todo tipo de contenido: gráficos, tablas, botones, textos dinámicos, mapas, etc. Es una forma de usar R para &lt;strong&gt;crear aplicaciones web centradas en datos&lt;/strong&gt; que simplifica muchos aspectos complejos del desarrollo web.&lt;/p&gt;&#xA;&lt;a href=&#34;shiny-apps-featured.jpg&#34; target=&#34;_blank&#34;&gt;&#xA;&#xA;  &lt;img src=&#34;shiny-apps-featured.jpg&#34; style=&#34;border-radius: 5px; width: 80%; max-width: 700px; display: block; margin: auto; margin-bottom: 8px; margin-top: 8px;&#34;&gt;&#xA;  &#xA;&lt;/a&gt;&#xA;&lt;p&gt;Shiny le da vida a todo lo que hayas desarrollado con R &lt;strong&gt;sin cambiarte a otro lenguaje ni aprender uno distinto&lt;/strong&gt;. Esto significa que &lt;strong&gt;la distancia se acorta&lt;/strong&gt; entre el gráfico que hiciste o el resultado de tus estudios y el tener un producto presentable para tu público o clientes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Usando tipografías personalizadas en aplicaciones Shiny</title>
      <link>https://bastianolea.rbind.io/blog/shiny_tipografias/</link>
      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/shiny_tipografias/</guid>
      <description>&lt;p&gt;Las tipografías son el aspecto principal de la apariencia de una aplicación, &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/blog/shiny_temas/&#34;&gt;junto a su paleta de colores.&lt;/a&gt;. Elegir bien la tipografía de tu app puede hacer que tu app se vea más profesional y atractiva, y que se diferencie del resto.&lt;/p&gt;&#xA;&lt;div style=&#34;margin: 28px 0;&#34;&gt;&#xA;    &lt;p class=&#34;titulo-panel&#34;&gt;&#xA;      Publicaciones relacionadas&#xA;    &lt;/p&gt;&#xA;&#xA;  &lt;a href=&#34;https://bastianolea.rbind.io/blog/shiny/&#34;&#xA;     style=&#34;display: flex;&#xA;            flex-direction: row;&#xA;            align-items: stretch;&#xA;            text-decoration: none;&#xA;            color: inherit;&#xA;            /*border: 1px solid #9069C035;*/&#xA;            border: solid 2px #A885C6AA;&#xA;            border-radius: 8px;&#xA;            overflow: hidden;&#xA;            /*background-color: #9069C00d;*/&#xA;            background-color: #9069C020;&#xA;            &#34;&gt;&#xA;&#xA;    &#xA;    &lt;figure style=&#34;flex-shrink: 0;&#xA;                   position: relative;&#xA;                   width: 140px;&#xA;                   min-height: 80px;&#xA;                   margin: 10px 0 10px 10px;&#xA;                   overflow: hidden;&#xA;                   border-radius: 5px;&#34;&gt;&#xA;      &lt;img src=&#34;https://bastianolea.rbind.io/blog/shiny/shiny-apps-featured.jpg&#34;&#xA;           alt=&#34;Tutorial: Crea aplicaciones web interactivas en R con Shiny&#34;&#xA;           style=&#34;position: absolute;&#xA;                  inset: 0;&#xA;                  width: 100%;&#xA;                  height: 100%;&#xA;                  object-fit: cover;&#xA;                  object-position: center top;&#xA;                  margin: 0;&#34;&gt;&#xA;    &lt;/figure&gt;&#xA;    &#xA;&#xA;    &lt;div style=&#34;padding: 15px 20px;&#xA;                flex: 1;&#xA;                display: flex;&#xA;                flex-direction: column;&#xA;                justify-content: center;&#xA;                gap: 6px;&#34;&gt;&#xA;&#xA;      &lt;p style=&#34;margin: 0;&#xA;                font-size: 95%;&#xA;                color: #9069C0;&#xA;                font-weight: bold;&#xA;                line-height: 1.35;&#34;&gt;&#xA;        Tutorial: Crea aplicaciones web interactivas en R con Shiny&#xA;      &lt;/p&gt;</description>
    </item>
    <item>
      <title>Medir el ancho de una aplicación Shiny como una variable reactiva y usarla para adaptar los contenidos de la app</title>
      <link>https://bastianolea.rbind.io/blog/shiny_ancho/</link>
      <pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/shiny_ancho/</guid>
      <description>&lt;p&gt;Al desarrollar aplicaciones web &#xA;&lt;a href=&#34;../../../blog/shiny&#34;&gt;Shiny&lt;/a&gt;, tenemos que considerar que van a ser visitadas desde distintos dispositivos: celulares, tablets, computadores grandes, computadores pequeños&amp;hellip; Por eso es importante diseñarlas pensando en la &lt;strong&gt;reactividad&lt;/strong&gt;; es decir, que la aplicación se adapte a distintos tamaños de ventana o pantalla. Si bien Shiny hace gran parte de eso por sí sólo, puede ser útil usar el &lt;strong&gt;ancho de la ventana&lt;/strong&gt; para adaptar los contenidos de la app: mostrar u ocultar elementos, ajustar los gráficos, cambiar un layout, o elegir qué visualización presentar según si el usuario está en un computador de escritorio o en un dispositivo móvil.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Galería de libros de _Goodreads_ para tu blog o sitio web con R y Quarto</title>
      <link>https://bastianolea.rbind.io/blog/2026-03-26/</link>
      <pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/2026-03-26/</guid>
      <description>&lt;p&gt;Para mi &#xA;&lt;a href=&#34;https://bastimapache.cl&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;blog personal, bastimapache.cl&lt;/a&gt; quise crear &#xA;&lt;a href=&#34;https://bastimapache.cl/blog.html#category=libros&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;publicaciones que muestren los libros que he leído cada año&lt;/a&gt;, los cuales registro en mi cuenta de &#xA;&lt;a href=&#34;https://www.goodreads.com/user/show/53224910-basti-n-olea-herrera&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Goodreads&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;a href=&#34;galeria_libros.jpg&#34; target=&#34;_blank&#34;&gt;&#xA;&#xA;  &lt;img src=&#34;galeria_libros.jpg&#34; style=&#34;border-radius: 5px; width: 80%; max-width: 700px; display: block; margin: auto; margin-bottom: 8px; margin-top: 8px;&#34;&gt;&#xA;  &#xA;&lt;/a&gt;&#xA;&lt;p&gt;Para esto, usé R para cargar el archivo de &#xA;&lt;a href=&#34;https://help.goodreads.com/s/article/How-do-I-import-or-export-my-books-1553870934590&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;exportación&lt;/a&gt; de datos de Goodreads, que te entrega un archivo &lt;code&gt;.csv&lt;/code&gt; con tus libros leídos, puntuación, fecha de lectura, etc.&lt;/p&gt;&#xA;&lt;div style=&#34;display: flex; align-items: center; gap: 15px; padding: 14px; &#xA;            /*background-color: #A985C650;*/&#xA;            background-color: #DEC4F2;&#xA;            border-radius: 6px;&#xA;            margin: 20px 40px 20px 40px;&#34;&gt;&#xA;  &#xA;  &lt;div style=&#34;flex-shrink: 0;&#34;&gt;&#xA;    &lt;i class=&#34;fas fa-info-circle&#34; style=&#34;font-size: 130%; margin-left: 2px; opacity: 1; color: #9069C0;&#34;&gt;&lt;/i&gt;&#xA;  &lt;/div&gt;&#xA;  &#xA;  &lt;aside style = &#34;font-size: 90%;&#34;&gt;&#xA;    Si quieres crear tu propio sitio web o blog con Quarto + R y subirlo a internet &lt;strong&gt;gratis&lt;/strong&gt;, &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/blog/tutorial_quarto_github_pages/&#34;&gt;sigue este tutorial que hice!&lt;/a&gt;&#xA;  &lt;/aside&gt;&#xA;  &#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;h2 id=&#34;cargar-datos-de-goodreads&#34;&gt;Cargar datos de &lt;em&gt;Goodreads&lt;/em&gt;&#xA;  &lt;a href=&#34;#cargar-datos-de-goodreads&#34;&gt;&lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;&#xA;      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;&#xA;      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;&#xA;    &lt;/svg&gt;&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Carguemos los datos que obtenemos de la exportación de &lt;em&gt;Goodreads:&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Plataforma de análisis: Índice de Brechas de Género</title>
      <link>https://bastianolea.rbind.io/blog/indice_brechas_genero/</link>
      <pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/indice_brechas_genero/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;ibg_0.jpg&#34; target=&#34;_blank&#34;&gt;&#xA;&#xA;  &lt;img src=&#34;ibg_0.jpg&#34; style=&#39;border-radius: 5px; width: 400px; display: block; margin: auto; margin-bottom: 8px; margin-top: 8px;&#39;&gt;&#xA;  &#xA;&lt;/a&gt;&#xA;&lt;figcaption style=&#34;max-width: 380px; margin:auto; text-align: center; font-size:80%; opacity:60%; margin-top:-8px; margin-bottom: 24px;&#34;&gt;&#xA;  Inicio de la plataforma del IBG&#xA;&lt;/figcaption&gt;&lt;/p&gt;&#xA;&lt;p&gt;El &lt;strong&gt;&#xA;&lt;a href=&#34;https://www.descentralizachile.cl/ibg&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Índice de Brechas de Género&lt;/a&gt;&lt;/strong&gt; es un nuevo instrumento estadístico desarrollado por la Subsecretaría de Desarrollo Regional y Administrativo (Subdere), diseñado para medir brechas de género a nivel comunal y regional en el país. El IBG se basa en &lt;strong&gt;52 indicadores de nivel comunal y regional&lt;/strong&gt;, que abarcan las dimensiones de cultura, educación, salud,&#xA;laboral, participación y social.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Plataforma de visualización de resultados del Estudio de Brechas Comunales</title>
      <link>https://bastianolea.rbind.io/blog/estudio_brechas_comunales/</link>
      <pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/estudio_brechas_comunales/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;ebc_0.jpeg&#34; target=&#34;_blank&#34;&gt;&#xA;&#xA;  &lt;img src=&#34;ebc_0.jpeg&#34; style=&#39;border-radius: 5px; width: 300px; display: block; margin: auto; margin-bottom: 8px; margin-top: 8px;&#39;&gt;&#xA;  &#xA;&lt;/a&gt;&#xA;&lt;figcaption style=&#34;max-width: 380px; margin:auto; text-align: center; font-size:80%; opacity:60%; margin-top:-8px; margin-bottom: 24px;&#34;&gt;&#xA;  Inicio de la plataforma del EBC&#xA;&lt;/figcaption&gt;&lt;/p&gt;&#xA;&lt;a href=&#34;ebc_1.jpeg&#34; target=&#34;_blank&#34;&gt;&#xA;&#xA;  &lt;img src=&#34;ebc_1.jpeg&#34; style=&#39;float: right; border-radius: 5px; max-width: 160px; margin-left: 24px; margin-bottom: 24px;&#39;&gt;&#xA;  &#xA;&lt;/a&gt;&#xA;&lt;p&gt;Ya está disponible la &#xA;&lt;a href=&#34;https://www.descentralizachile.cl/ebc/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;plataforma de visualización&lt;/a&gt; de los resultados del &lt;strong&gt;Estudio de Brechas Comunales&lt;/strong&gt; de la Subsecretaría de Desarrollo Regional y Administrativo (Subdere).&lt;/p&gt;&#xA;&lt;p&gt;Este estudio mide &lt;strong&gt;brechas en infraestructura y servicios&lt;/strong&gt; a través de &lt;strong&gt;59 indicadores&lt;/strong&gt; de nivel &lt;strong&gt;comunal&lt;/strong&gt;, tomando en consideración las &lt;strong&gt;diferencias territoriales&lt;/strong&gt; de comunas urbanas, mixtas y rurales.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Testeo automatizado de aplicaciones Shiny con `{shinytest2}`</title>
      <link>https://bastianolea.rbind.io/blog/shiny_validacion/</link>
      <pubDate>Fri, 23 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/shiny_validacion/</guid>
      <description>&lt;div style=&#34;margin:auto; max-width:70%;&#34;&gt;&#xA;  &#xA;  &lt;video src=&#34;apps.mov&#34; style=&#34;border-radius:7px; max-width: 100%; display: block; margin: auto;&#34; autoplay loop&gt;&#xA;  &lt;/video&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;div style = &#34;margin-left: -16px;&#34;&gt;&#xA;  &#xA;  &lt;details closed id=&#34;PageTableOfContents&#34;&gt;&#xA;    &lt;summary&gt;&#xA;      &lt;h2 class=&#34;mv0 f5 fw7 ttu tracked dib&#34; style = &#34;margin-left: 6px; font-size: 120%;&#34;&gt;Índice&lt;/h2&gt;&#xA;      &lt;/summary&gt;&#xA;    &lt;div class=&#34;pl2 pr0 mh0&#34; style = &#34;font-size: 90%; margin-top: -8px; margin-left: 16px; margin-bottom: 32px;&#34;&gt;&#xA;    &lt;nav id=&#34;TableOfContents&#34;&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#empezar-a-usar-shinytest2&#34;&gt;Empezar a usar &lt;code&gt;{shinytest2}&lt;/code&gt;&lt;/a&gt;&#xA;      &lt;ul&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#grabar-el-primer-test&#34;&gt;Grabar el primer test&lt;/a&gt;&lt;/li&gt;&#xA;      &lt;/ul&gt;&#xA;    &lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#estructura-de-carpetas-de-tests&#34;&gt;Estructura de carpetas de tests&lt;/a&gt;&#xA;      &lt;ul&gt;&#xA;        &lt;li&gt;&lt;/li&gt;&#xA;      &lt;/ul&gt;&#xA;    &lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#creando-una-prueba&#34;&gt;Creando una prueba&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#ejecutar-un-test&#34;&gt;Ejecutar un test&lt;/a&gt;&#xA;      &lt;ul&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#expectativas-del-test&#34;&gt;Expectativas del test&lt;/a&gt;&lt;/li&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#debugging&#34;&gt;Debugging&lt;/a&gt;&lt;/li&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#resultados&#34;&gt;Resultados&lt;/a&gt;&lt;/li&gt;&#xA;      &lt;/ul&gt;&#xA;    &lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#automatizar-tests-repetitivos&#34;&gt;Automatizar tests repetitivos&lt;/a&gt;&#xA;      &lt;ul&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#ejemplo-de-test-automatizado&#34;&gt;Ejemplo de test automatizado&lt;/a&gt;&lt;/li&gt;&#xA;      &lt;/ul&gt;&#xA;    &lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#conclusión&#34;&gt;Conclusión&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/nav&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/details&gt;&#xA;  &#xA;&lt;/div&gt;&#xA;&lt;p&gt;Al igual que la &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/blog/validacion_avanzada/&#34;&gt;validación de datos&lt;/a&gt;, validar &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/tags/shiny/&#34;&gt;aplicaciones Shiny&lt;/a&gt; te permite crear un conjunto de pruebas para &lt;strong&gt;confirmar que tus aplicaciones funcionan bien sin tener que probarlas manualmente&lt;/strong&gt;. En la práctica, significa programar un &lt;em&gt;bot&lt;/em&gt; que apriete todos los botones de tu aplicación y obtenga capturas de pantalla que te confirmen que todo se ve bien, o realizar otros tipos de pruebas más complejas.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Desplegar aplicaciones Shiny a producción en contenedores Docker</title>
      <link>https://bastianolea.rbind.io/blog/shiny_docker/</link>
      <pubDate>Tue, 20 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/shiny_docker/</guid>
      <description>&lt;p&gt;Docker es una plataforma que permite empaquetar aplicaciones y sus dependencias en &lt;strong&gt;contenedores&lt;/strong&gt;, lo que simplifica el proceso de despliegue (&lt;em&gt;deployment&lt;/em&gt;) y gestión de aplicaciones.&lt;/p&gt;&#xA;&#xA;&#xA;&lt;div style=&#34;display: flex; align-items: center; gap: 15px; padding: 14px; &#xA;            background-color: #493365;&#xA;            border-radius: 6px;&#xA;            margin: 20px 40px 20px 40px;&#34;&gt;&#xA;  &#xA;  &lt;div style=&#34;flex-shrink: 0;&#34;&gt;&#xA;    &lt;i class=&#34;fas fa-triangle-exclamation&#34; style=&#34;font-size: 130%; margin-left: 2px; opacity: 1; color: #EAD2FA;&#34;&gt;&lt;/i&gt;&#xA;  &lt;/div&gt;&#xA;  &#xA;  &lt;aside style = &#34;font-size: 90%; color: #EAD2FA;&#34;&gt;&#xA;    Post en construcción! A medida que voy aprendiendo iré complementando la publicación.&#xA;  &lt;/aside&gt;&#xA;  &#xA;&lt;/div&gt;&#xA;&lt;div style=&#34;display: flex; align-items: center; gap: 15px; padding: 14px; &#xA;            /*background-color: #A985C650;*/&#xA;            background-color: #DEC4F2;&#xA;            border-radius: 6px;&#xA;            margin: 20px 40px 20px 40px;&#34;&gt;&#xA;  &#xA;  &lt;div style=&#34;flex-shrink: 0;&#34;&gt;&#xA;    &lt;i class=&#34;fas fa-info-circle&#34; style=&#34;font-size: 130%; margin-left: 2px; opacity: 1; color: #9069C0;&#34;&gt;&lt;/i&gt;&#xA;  &lt;/div&gt;&#xA;  &#xA;  &lt;aside style = &#34;font-size: 90%;&#34;&gt;&#xA;    Este es un post para usuarios avanzados de Shiny que necesiten desplegar sus apps contextos de empresas o producción. Si eres un usuario casual de Shiny, probablemente sea mejor usar &#xA;&lt;a href=&#34;https://connect.posit.cloud&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Posit Connect Cloud&lt;/a&gt; para publicar tus apps.&#xA;  &lt;/aside&gt;&#xA;  &#xA;&lt;/div&gt;&#xA;&lt;div style=&#34;margin: 28px 0;&#34;&gt;&#xA;    &lt;p class=&#34;titulo-panel&#34;&gt;&#xA;      Publicaciones relacionadas&#xA;    &lt;/p&gt;</description>
    </item>
    <item>
      <title>App: visualizador de mapas comunales del Censo 2024 por manzanas</title>
      <link>https://bastianolea.rbind.io/blog/app_censo_mapas/</link>
      <pubDate>Fri, 19 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/app_censo_mapas/</guid>
      <description>&lt;p&gt;Continuando con la exploración de los datos georeferenciados del Censo 2024 por manzanas, en vez de ponerme a hacer mapas interesantes, hice una &lt;strong&gt;&#xA;&lt;a href=&#34;https://bastianoleah.shinyapps.io/censo_2024_mapas/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;aplicación&lt;/a&gt; para visualizar mapas&lt;/strong&gt; de cualquier variable del Censo en cualquier comuna del país, a nivel de manzana.&lt;/p&gt;&#xA;&lt;a href=&#34;app_censo_mapas.jpg&#34; target=&#34;_blank&#34;&gt;&#xA;&#xA;  &lt;img src=&#34;app_censo_mapas.jpg&#34; style=&#39;border-radius: 5px; width: 400px; display: block; margin: auto; margin-bottom: 8px; margin-top: 8px;&#39;&gt;&#xA;  &#xA;&lt;/a&gt;&#xA;&lt;div style=&#34;margin: 28px 0;&#34;&gt;&#xA;    &lt;p class=&#34;titulo-panel&#34;&gt;&#xA;      Publicaciones relacionadas&#xA;    &lt;/p&gt;&#xA;&#xA;  &lt;a href=&#34;https://bastianolea.rbind.io/blog/censo_2024/&#34;&#xA;     style=&#34;display: flex;&#xA;            flex-direction: row;&#xA;            align-items: stretch;&#xA;            text-decoration: none;&#xA;            color: inherit;&#xA;            /*border: 1px solid #9069C035;*/&#xA;            border: solid 2px #A885C6AA;&#xA;            border-radius: 8px;&#xA;            overflow: hidden;&#xA;            /*background-color: #9069C00d;*/&#xA;            background-color: #9069C020;&#xA;            &#34;&gt;&#xA;&#xA;    &#xA;    &lt;figure style=&#34;flex-shrink: 0;&#xA;                   position: relative;&#xA;                   width: 140px;&#xA;                   min-height: 80px;&#xA;                   margin: 10px 0 10px 10px;&#xA;                   overflow: hidden;&#xA;                   border-radius: 5px;&#34;&gt;&#xA;      &lt;img src=&#34;https://bastianolea.rbind.io/blog/censo_2024/censo-featured.jpg&#34;&#xA;           alt=&#34;Explorar datos del Censo de Población y Vivienda 2024 con R&#34;&#xA;           style=&#34;position: absolute;&#xA;                  inset: 0;&#xA;                  width: 100%;&#xA;                  height: 100%;&#xA;                  object-fit: cover;&#xA;                  object-position: center top;&#xA;                  margin: 0;&#34;&gt;&#xA;    &lt;/figure&gt;&#xA;    &#xA;&#xA;    &lt;div style=&#34;padding: 15px 20px;&#xA;                flex: 1;&#xA;                display: flex;&#xA;                flex-direction: column;&#xA;                justify-content: center;&#xA;                gap: 6px;&#34;&gt;&#xA;&#xA;      &lt;p style=&#34;margin: 0;&#xA;                font-size: 95%;&#xA;                color: #9069C0;&#xA;                font-weight: bold;&#xA;                line-height: 1.35;&#34;&gt;&#xA;        Explorar datos del Censo de Población y Vivienda 2024 con R&#xA;      &lt;/p&gt;</description>
    </item>
    <item>
      <title>Crea encuestas online gratis en R con {surveydown}</title>
      <link>https://bastianolea.rbind.io/blog/surveydown_encuestas/</link>
      <pubDate>Wed, 26 Nov 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/surveydown_encuestas/</guid>
      <description>&lt;p&gt;Con el paquete &#xA;&lt;a href=&#34;https://surveydown.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;{surveydown}&lt;/code&gt;&lt;/a&gt; podemos crear encuestas desde R gratis, cuyas respuestas se almacenan en una base de datos también gratuita.&lt;/p&gt;&#xA;&lt;p&gt;La gracia de crear tu propia encuesta es que puedes personalizarla según tus necesidades, pero también es que no necesitas depender de un servicio para generar la encuesta, ni tampoco tener que pagar para poder crearla o publicarla. Por el contrario, podemos utilizar &lt;strong&gt;tecnologías gratuitas y de código abierto&lt;/strong&gt; para crear nuestras encuestas, almacenar sus resultados y analizarlos.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mensajes de desconexión personalizados en Shiny</title>
      <link>https://bastianolea.rbind.io/blog/shiny_desconexion/</link>
      <pubDate>Sun, 16 Nov 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/shiny_desconexion/</guid>
      <description>&lt;p&gt;Las aplicaciones Shiny funcionan con un servidor detrás, que es el proceso de R que realiza los cálculos necesarios para mostrar tus contenidos. Por lo mismo, estas aplicaciones &lt;strong&gt;no pueden estar conectadas por siempre&lt;/strong&gt;, porque el proceso no puede estar esperando que la o el usuario hagan algo por siempre, así que y &lt;strong&gt;luego de un tiempo de inactividad se desconectan&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;div style=&#34;margin: 28px 0;&#34;&gt;&#xA;    &lt;p class=&#34;titulo-panel&#34;&gt;&#xA;      Publicaciones relacionadas&#xA;    &lt;/p&gt;&#xA;&#xA;  &lt;a href=&#34;https://bastianolea.rbind.io/blog/shiny/&#34;&#xA;     style=&#34;display: flex;&#xA;            flex-direction: row;&#xA;            align-items: stretch;&#xA;            text-decoration: none;&#xA;            color: inherit;&#xA;            /*border: 1px solid #9069C035;*/&#xA;            border: solid 2px #A885C6AA;&#xA;            border-radius: 8px;&#xA;            overflow: hidden;&#xA;            /*background-color: #9069C00d;*/&#xA;            background-color: #9069C020;&#xA;            &#34;&gt;&#xA;&#xA;    &#xA;    &lt;figure style=&#34;flex-shrink: 0;&#xA;                   position: relative;&#xA;                   width: 140px;&#xA;                   min-height: 80px;&#xA;                   margin: 10px 0 10px 10px;&#xA;                   overflow: hidden;&#xA;                   border-radius: 5px;&#34;&gt;&#xA;      &lt;img src=&#34;https://bastianolea.rbind.io/blog/shiny/shiny-apps-featured.jpg&#34;&#xA;           alt=&#34;Tutorial: Crea aplicaciones web interactivas en R con Shiny&#34;&#xA;           style=&#34;position: absolute;&#xA;                  inset: 0;&#xA;                  width: 100%;&#xA;                  height: 100%;&#xA;                  object-fit: cover;&#xA;                  object-position: center top;&#xA;                  margin: 0;&#34;&gt;&#xA;    &lt;/figure&gt;&#xA;    &#xA;&#xA;    &lt;div style=&#34;padding: 15px 20px;&#xA;                flex: 1;&#xA;                display: flex;&#xA;                flex-direction: column;&#xA;                justify-content: center;&#xA;                gap: 6px;&#34;&gt;&#xA;&#xA;      &lt;p style=&#34;margin: 0;&#xA;                font-size: 95%;&#xA;                color: #9069C0;&#xA;                font-weight: bold;&#xA;                line-height: 1.35;&#34;&gt;&#xA;        Tutorial: Crea aplicaciones web interactivas en R con Shiny&#xA;      &lt;/p&gt;</description>
    </item>
    <item>
      <title>Analiza el funcionamiento de tus aplicaciones Shiny con `{reactlog}`</title>
      <link>https://bastianolea.rbind.io/blog/shiny_reactlog/</link>
      <pubDate>Fri, 14 Nov 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/shiny_reactlog/</guid>
      <description>&lt;p&gt;Las aplicaciones Shiny funcionan con &lt;strong&gt;&#xA;&lt;a href=&#34;https://shiny.posit.co/r/articles/build/reactivity-overview/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;reactividad&lt;/a&gt;&lt;/strong&gt;: una cadena de causalidad que va desde los &lt;em&gt;inputs&lt;/em&gt; de tu app, pasando por las expresiones reactivas (objetos de R que se actualizan automáticamente cuando cambian sus dependencias), hasta los &lt;em&gt;outputs&lt;/em&gt; que se muestran en la interfaz de usuario.&lt;/p&gt;&#xA;&lt;a href=&#34;shiny_esquema.png&#34; target=&#34;_blank&#34;&gt;&#xA;&#xA;  &lt;img src=&#34;shiny_esquema.png&#34; style=&#34;border-radius: 5px; width: 80%; max-width: 700px; display: block; margin: auto; margin-bottom: 8px; margin-top: 8px;&#34;&gt;&#xA;  &#xA;&lt;/a&gt;&#xA;&lt;p&gt;Cuando programamos una app Shiny vamos haciendo éste tipo de &lt;strong&gt;conexiones&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;estos dos &lt;em&gt;inputs&lt;/em&gt; van a hacer que en este &lt;code&gt;reactive()&lt;/code&gt; se filtren los datos, y el resultado del &lt;code&gt;reactive()&lt;/code&gt; va a usarse para generar un &lt;em&gt;output&lt;/em&gt; en forma de gráfico.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Desarrollando un buscador para mi blog con Shiny</title>
      <link>https://bastianolea.rbind.io/blog/buscador/</link>
      <pubDate>Tue, 11 Nov 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/buscador/</guid>
      <description>&lt;a href=&#34;buscador-featured.png&#34; target=&#34;_blank&#34;&gt;&#xA;&#xA;  &lt;img src=&#34;buscador-featured.png&#34; style=&#34;border-radius: 5px; width: 80%; max-width: 700px; display: block; margin: auto; margin-bottom: 8px; margin-top: 8px;&#34;&gt;&#xA;  &#xA;&lt;/a&gt;&#xA;&lt;div style = &#34;margin-left: -16px;&#34;&gt;&#xA;  &#xA;  &lt;details closed id=&#34;PageTableOfContents&#34;&gt;&#xA;    &lt;summary&gt;&#xA;      &lt;h2 class=&#34;mv0 f5 fw7 ttu tracked dib&#34; style = &#34;margin-left: 6px; font-size: 120%;&#34;&gt;Índice&lt;/h2&gt;&#xA;      &lt;/summary&gt;&#xA;    &lt;div class=&#34;pl2 pr0 mh0&#34; style = &#34;font-size: 90%; margin-top: -8px; margin-left: 16px; margin-bottom: 32px;&#34;&gt;&#xA;    &lt;nav id=&#34;TableOfContents&#34;&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#generando-el-índice-de-búsqueda&#34;&gt;Generando el índice de búsqueda&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#obteniendo-los-datos-del-sitio&#34;&gt;Obteniendo los datos del sitio&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#implementando-la-búsqueda&#34;&gt;Implementando la búsqueda&lt;/a&gt;&#xA;      &lt;ul&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#actualización-de-algoritmo-de-búsqueda&#34;&gt;Actualización de algoritmo de búsqueda&lt;/a&gt;&lt;/li&gt;&#xA;      &lt;/ul&gt;&#xA;    &lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#desarrollando-la-aplicación&#34;&gt;Desarrollando la aplicación&lt;/a&gt;&#xA;      &lt;ul&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#obtener-datos-desde-la-app&#34;&gt;Obtener datos desde la app&lt;/a&gt;&lt;/li&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#búsqueda-desde-la-app&#34;&gt;Búsqueda desde la app&lt;/a&gt;&lt;/li&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#salida-de-los-resultados-de-búsqueda&#34;&gt;Salida de los resultados de búsqueda&lt;/a&gt;&lt;/li&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#apariencia-de-la-app&#34;&gt;Apariencia de la app&lt;/a&gt;&lt;/li&gt;&#xA;      &lt;/ul&gt;&#xA;    &lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#conclusión&#34;&gt;Conclusión&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/nav&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/details&gt;&#xA;  &#xA;&lt;/div&gt;&#xA;&lt;p&gt;Este blog ya lleva más de 100 publicaciones! 🎉 y si bien &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/tags/&#34;&gt;uso las etiquetas&lt;/a&gt; para mantener todo organizado y ayudar a descubrir nuevos posts, a veces hasta a mi me cuesta encontrar publicaciones entre tanta cosa 😅&lt;/p&gt;</description>
    </item>
    <item>
      <title>Optimiza la velocidad de tus aplicaciones Shiny con `bindCache()`</title>
      <link>https://bastianolea.rbind.io/blog/shiny_optimizar/</link>
      <pubDate>Tue, 04 Nov 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/shiny_optimizar/</guid>
      <description>&lt;a href=&#34;shiny_esquema_3.png&#34; target=&#34;_blank&#34;&gt;&#xA;&#xA;  &lt;img src=&#34;shiny_esquema_3.png&#34; style=&#34;border-radius: 5px; width: 80%; max-width: 700px; display: block; margin: auto; margin-bottom: 8px; margin-top: 8px;&#34;&gt;&#xA;  &#xA;&lt;/a&gt;&#xA;&lt;p&gt;En una aplicación Shiny, cada interacción que la/el usuario hace suele conllevar un &lt;strong&gt;cálculo&lt;/strong&gt; de R que se ejecuta para producir un &lt;em&gt;output&lt;/em&gt;, como una tabla o un gráfico. Dependiendo de la cantidad de datos, de la complejidad del cálculo o del &lt;em&gt;output&lt;/em&gt;, estas interacciones pueden tomar más tiempo del esperado.&lt;/p&gt;&#xA;&lt;div style=&#34;margin: 28px 0;&#34;&gt;&#xA;    &lt;p class=&#34;titulo-panel&#34;&gt;&#xA;      Publicaciones relacionadas&#xA;    &lt;/p&gt;&#xA;&#xA;  &lt;a href=&#34;https://bastianolea.rbind.io/blog/shiny/&#34;&#xA;     style=&#34;display: flex;&#xA;            flex-direction: row;&#xA;            align-items: stretch;&#xA;            text-decoration: none;&#xA;            color: inherit;&#xA;            /*border: 1px solid #9069C035;*/&#xA;            border: solid 2px #A885C6AA;&#xA;            border-radius: 8px;&#xA;            overflow: hidden;&#xA;            /*background-color: #9069C00d;*/&#xA;            background-color: #9069C020;&#xA;            &#34;&gt;&#xA;&#xA;    &#xA;    &lt;figure style=&#34;flex-shrink: 0;&#xA;                   position: relative;&#xA;                   width: 140px;&#xA;                   min-height: 80px;&#xA;                   margin: 10px 0 10px 10px;&#xA;                   overflow: hidden;&#xA;                   border-radius: 5px;&#34;&gt;&#xA;      &lt;img src=&#34;https://bastianolea.rbind.io/blog/shiny/shiny-apps-featured.jpg&#34;&#xA;           alt=&#34;Tutorial: Crea aplicaciones web interactivas en R con Shiny&#34;&#xA;           style=&#34;position: absolute;&#xA;                  inset: 0;&#xA;                  width: 100%;&#xA;                  height: 100%;&#xA;                  object-fit: cover;&#xA;                  object-position: center top;&#xA;                  margin: 0;&#34;&gt;&#xA;    &lt;/figure&gt;&#xA;    &#xA;&#xA;    &lt;div style=&#34;padding: 15px 20px;&#xA;                flex: 1;&#xA;                display: flex;&#xA;                flex-direction: column;&#xA;                justify-content: center;&#xA;                gap: 6px;&#34;&gt;&#xA;&#xA;      &lt;p style=&#34;margin: 0;&#xA;                font-size: 95%;&#xA;                color: #9069C0;&#xA;                font-weight: bold;&#xA;                line-height: 1.35;&#34;&gt;&#xA;        Tutorial: Crea aplicaciones web interactivas en R con Shiny&#xA;      &lt;/p&gt;</description>
    </item>
    <item>
      <title>Mostrar y ocultar elementos de una app Shiny a partir de datos o inputs</title>
      <link>https://bastianolea.rbind.io/blog/shiny_ocultar/</link>
      <pubDate>Fri, 10 Oct 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/shiny_ocultar/</guid>
      <description>&lt;p&gt;Gracias &#xA;&lt;a href=&#34;https://deanattali.com/shinyjs/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;al paquete &lt;code&gt;{shinyjs}&lt;/code&gt;&lt;/a&gt; podemos hacer que una app Shiny muestre u oculte elementos según los datos que correspondan o los inputs que haya seleccionado el usuario.&lt;/p&gt;&#xA;&lt;div style=&#34;margin: 28px 0;&#34;&gt;&#xA;    &lt;p class=&#34;titulo-panel&#34;&gt;&#xA;      Publicaciones relacionadas&#xA;    &lt;/p&gt;&#xA;&#xA;  &lt;a href=&#34;https://bastianolea.rbind.io/blog/shiny/&#34;&#xA;     style=&#34;display: flex;&#xA;            flex-direction: row;&#xA;            align-items: stretch;&#xA;            text-decoration: none;&#xA;            color: inherit;&#xA;            /*border: 1px solid #9069C035;*/&#xA;            border: solid 2px #A885C6AA;&#xA;            border-radius: 8px;&#xA;            overflow: hidden;&#xA;            /*background-color: #9069C00d;*/&#xA;            background-color: #9069C020;&#xA;            &#34;&gt;&#xA;&#xA;    &#xA;    &lt;figure style=&#34;flex-shrink: 0;&#xA;                   position: relative;&#xA;                   width: 140px;&#xA;                   min-height: 80px;&#xA;                   margin: 10px 0 10px 10px;&#xA;                   overflow: hidden;&#xA;                   border-radius: 5px;&#34;&gt;&#xA;      &lt;img src=&#34;https://bastianolea.rbind.io/blog/shiny/shiny-apps-featured.jpg&#34;&#xA;           alt=&#34;Tutorial: Crea aplicaciones web interactivas en R con Shiny&#34;&#xA;           style=&#34;position: absolute;&#xA;                  inset: 0;&#xA;                  width: 100%;&#xA;                  height: 100%;&#xA;                  object-fit: cover;&#xA;                  object-position: center top;&#xA;                  margin: 0;&#34;&gt;&#xA;    &lt;/figure&gt;&#xA;    &#xA;&#xA;    &lt;div style=&#34;padding: 15px 20px;&#xA;                flex: 1;&#xA;                display: flex;&#xA;                flex-direction: column;&#xA;                justify-content: center;&#xA;                gap: 6px;&#34;&gt;&#xA;&#xA;      &lt;p style=&#34;margin: 0;&#xA;                font-size: 95%;&#xA;                color: #9069C0;&#xA;                font-weight: bold;&#xA;                line-height: 1.35;&#34;&gt;&#xA;        Tutorial: Crea aplicaciones web interactivas en R con Shiny&#xA;      &lt;/p&gt;</description>
    </item>
    <item>
      <title>Temas de colores personalizados en apps Shiny</title>
      <link>https://bastianolea.rbind.io/blog/shiny_temas/</link>
      <pubDate>Thu, 09 Oct 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/shiny_temas/</guid>
      <description>&lt;p&gt;Elevar tus aplicaciones Shiny al siguiente nivel es muy fácil! Una app con un diseño atractivo y profesional puede marcar la diferencia entre que alguien la use o no, o bien, que alguien la recuerde o no!&lt;/p&gt;&#xA;&lt;div style=&#34;margin: 28px 0;&#34;&gt;&#xA;    &lt;p class=&#34;titulo-panel&#34;&gt;&#xA;      Publicaciones relacionadas&#xA;    &lt;/p&gt;&#xA;&#xA;  &lt;a href=&#34;https://bastianolea.rbind.io/blog/shiny/&#34;&#xA;     style=&#34;display: flex;&#xA;            flex-direction: row;&#xA;            align-items: stretch;&#xA;            text-decoration: none;&#xA;            color: inherit;&#xA;            /*border: 1px solid #9069C035;*/&#xA;            border: solid 2px #A885C6AA;&#xA;            border-radius: 8px;&#xA;            overflow: hidden;&#xA;            /*background-color: #9069C00d;*/&#xA;            background-color: #9069C020;&#xA;            &#34;&gt;&#xA;&#xA;    &#xA;    &lt;figure style=&#34;flex-shrink: 0;&#xA;                   position: relative;&#xA;                   width: 140px;&#xA;                   min-height: 80px;&#xA;                   margin: 10px 0 10px 10px;&#xA;                   overflow: hidden;&#xA;                   border-radius: 5px;&#34;&gt;&#xA;      &lt;img src=&#34;https://bastianolea.rbind.io/blog/shiny/shiny-apps-featured.jpg&#34;&#xA;           alt=&#34;Tutorial: Crea aplicaciones web interactivas en R con Shiny&#34;&#xA;           style=&#34;position: absolute;&#xA;                  inset: 0;&#xA;                  width: 100%;&#xA;                  height: 100%;&#xA;                  object-fit: cover;&#xA;                  object-position: center top;&#xA;                  margin: 0;&#34;&gt;&#xA;    &lt;/figure&gt;&#xA;    &#xA;&#xA;    &lt;div style=&#34;padding: 15px 20px;&#xA;                flex: 1;&#xA;                display: flex;&#xA;                flex-direction: column;&#xA;                justify-content: center;&#xA;                gap: 6px;&#34;&gt;&#xA;&#xA;      &lt;p style=&#34;margin: 0;&#xA;                font-size: 95%;&#xA;                color: #9069C0;&#xA;                font-weight: bold;&#xA;                line-height: 1.35;&#34;&gt;&#xA;        Tutorial: Crea aplicaciones web interactivas en R con Shiny&#xA;      &lt;/p&gt;</description>
    </item>
    <item>
      <title>Tutorial: crea páginas web y blogs con R&#43;Quarto, y publícalos online con GitHub Pages</title>
      <link>https://bastianolea.rbind.io/blog/tutorial_quarto_github_pages/</link>
      <pubDate>Thu, 27 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/tutorial_quarto_github_pages/</guid>
      <description>&lt;div style = &#34;margin-left: -16px;&#34;&gt;&#xA;  &#xA;  &lt;details closed id=&#34;PageTableOfContents&#34;&gt;&#xA;    &lt;summary&gt;&#xA;      &lt;h2 class=&#34;mv0 f5 fw7 ttu tracked dib&#34; style = &#34;margin-left: 6px; font-size: 120%;&#34;&gt;Índice&lt;/h2&gt;&#xA;      &lt;/summary&gt;&#xA;    &lt;div class=&#34;pl2 pr0 mh0&#34; style = &#34;font-size: 90%; margin-top: -8px; margin-left: 16px; margin-bottom: 32px;&#34;&gt;&#xA;    &lt;nav id=&#34;TableOfContents&#34;&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#crear-un-repositorio-en-github-para-compartir-código-yo-datos&#34;&gt;Crear un repositorio en GitHub para compartir código y/o datos&lt;/a&gt;&#xA;      &lt;ul&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#conectar-r-a-github&#34;&gt;Conectar R a GitHub&lt;/a&gt;&lt;/li&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#crear-un-repositorio-local&#34;&gt;Crear un repositorio local&lt;/a&gt;&lt;/li&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#subir-el-repositorio-local-a-github&#34;&gt;Subir el repositorio local a GitHub&lt;/a&gt;&lt;/li&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#crear-un-archivo-readmemd&#34;&gt;Crear un archivo &lt;code&gt;readme.md&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;      &lt;/ul&gt;&#xA;    &lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#documentos-quarto&#34;&gt;Documentos Quarto&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#documento-quarto-en-github-pages&#34;&gt;Documento Quarto en GitHub Pages&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#sitios-web-quarto-en-github-pages&#34;&gt;Sitios web Quarto en GitHub Pages&lt;/a&gt;&#xA;      &lt;ul&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#crear-el-sitio-web-quarto&#34;&gt;Crear el sitio web Quarto&lt;/a&gt;&lt;/li&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#agregar-páginas-a-tu-sitio&#34;&gt;Agregar páginas a tu sitio&lt;/a&gt;&lt;/li&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#cambiar-temas&#34;&gt;Cambiar temas&lt;/a&gt;&lt;/li&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#publicar-el-sitio-en-github-pages&#34;&gt;Publicar el sitio en GitHub Pages&lt;/a&gt;&lt;/li&gt;&#xA;      &lt;/ul&gt;&#xA;    &lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#blogs-quarto-en-github-pages&#34;&gt;Blogs Quarto en GitHub Pages&lt;/a&gt;&#xA;      &lt;ul&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#crear-un-blog-quarto&#34;&gt;Crear un blog Quarto&lt;/a&gt;&lt;/li&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#agregar-posts-al-blog-quarto&#34;&gt;Agregar posts al blog Quarto&lt;/a&gt;&lt;/li&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#subir-el-blog-quarto-a-github-pages&#34;&gt;Subir el blog Quarto a GitHub Pages&lt;/a&gt;&lt;/li&gt;&#xA;      &lt;/ul&gt;&#xA;    &lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#blog-hugo&#34;&gt;Blog Hugo&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#apps-shiny&#34;&gt;Apps Shiny&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#recursos&#34;&gt;Recursos:&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/nav&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/details&gt;&#xA;  &#xA;&lt;/div&gt;&#xA;&lt;p&gt;En este tutorial veremos cuatro formas relativamente sencillas, y ordenadas de menor a mayor dificultad, para crear nuestros propios espacios en internet para compartir nuestras creaciones, aprendizajes y quiénes somos usando R, y de forma completamente gratuita.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Protege el acceso a tus aplicaciones Shiny con contraseña</title>
      <link>https://bastianolea.rbind.io/blog/shiny_usuarios/</link>
      <pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/shiny_usuarios/</guid>
      <description>&lt;p&gt;Si &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/blog/shiny/&#34;&gt;creaste una aplicación Shiny&lt;/a&gt; y quieres &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/blog/shiny/#publicar-la-aplicaci%c3%b3n-en-internet&#34;&gt;compartirla con otros/as&lt;/a&gt;, pero tu app contiene información que no puede ser vista por cualquiera, ¡entonces sigue estos pasos! En unos minutos tendrás una aplicación que requiere de usuario y contraseña para poder usarla.&lt;/p&gt;&#xA;&lt;div style=&#34;margin: 28px 0;&#34;&gt;&#xA;    &lt;p class=&#34;titulo-panel&#34;&gt;&#xA;      Publicaciones relacionadas&#xA;    &lt;/p&gt;&#xA;&#xA;  &lt;a href=&#34;https://bastianolea.rbind.io/blog/shiny/&#34;&#xA;     style=&#34;display: flex;&#xA;            flex-direction: row;&#xA;            align-items: stretch;&#xA;            text-decoration: none;&#xA;            color: inherit;&#xA;            /*border: 1px solid #9069C035;*/&#xA;            border: solid 2px #A885C6AA;&#xA;            border-radius: 8px;&#xA;            overflow: hidden;&#xA;            /*background-color: #9069C00d;*/&#xA;            background-color: #9069C020;&#xA;            &#34;&gt;&#xA;&#xA;    &#xA;    &lt;figure style=&#34;flex-shrink: 0;&#xA;                   position: relative;&#xA;                   width: 140px;&#xA;                   min-height: 80px;&#xA;                   margin: 10px 0 10px 10px;&#xA;                   overflow: hidden;&#xA;                   border-radius: 5px;&#34;&gt;&#xA;      &lt;img src=&#34;https://bastianolea.rbind.io/blog/shiny/shiny-apps-featured.jpg&#34;&#xA;           alt=&#34;Tutorial: Crea aplicaciones web interactivas en R con Shiny&#34;&#xA;           style=&#34;position: absolute;&#xA;                  inset: 0;&#xA;                  width: 100%;&#xA;                  height: 100%;&#xA;                  object-fit: cover;&#xA;                  object-position: center top;&#xA;                  margin: 0;&#34;&gt;&#xA;    &lt;/figure&gt;&#xA;    &#xA;&#xA;    &lt;div style=&#34;padding: 15px 20px;&#xA;                flex: 1;&#xA;                display: flex;&#xA;                flex-direction: column;&#xA;                justify-content: center;&#xA;                gap: 6px;&#34;&gt;&#xA;&#xA;      &lt;p style=&#34;margin: 0;&#xA;                font-size: 95%;&#xA;                color: #9069C0;&#xA;                font-weight: bold;&#xA;                line-height: 1.35;&#34;&gt;&#xA;        Tutorial: Crea aplicaciones web interactivas en R con Shiny&#xA;      &lt;/p&gt;</description>
    </item>
    <item>
      <title>Video: Presentación de Visualizador de datos de Corrupción en Chile</title>
      <link>https://bastianolea.rbind.io/blog/unim/presentacion_visualizador_datos_corrupcion/</link>
      <pubDate>Fri, 24 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/unim/presentacion_visualizador_datos_corrupcion/</guid>
      <description>&lt;p&gt;Exposición en la &lt;strong&gt;Universidad Internacional de la Municipalidad de Rancagua&lt;/strong&gt;, instancia organizada por el &lt;strong&gt;Programa de Gobierno Local Abierto&lt;/strong&gt; (GOBLA) de la Municipalidad de Rancagua.&lt;/p&gt;&#xA;&lt;p&gt;En esta presentación doy a conocer el &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/apps/corrupcion_chile&#34;&gt;visualizador de datos de Corrupción&lt;/a&gt;, explicando cómo fue el proceso de inspirarme a hacerlo, los desafíos que tuve durante su desarrollo, y la experiencia de colaboración y discusión en torno a un proyecto de datos que pueden ser polémicos.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Actualización de app Análisis de prensa: visualización de análisis de sentimiento de noticias recientes</title>
      <link>https://bastianolea.rbind.io/blog/2025-01-14/</link>
      <pubDate>Tue, 14 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/2025-01-14/</guid>
      <description>&lt;h3 id=&#34;actualización-de-app-análisis-de-prensa-&#34;&gt;Actualización de app análisis de prensa 🗞️&#xA;  &lt;a href=&#34;#actualizaci%c3%b3n-de-app-an%c3%a1lisis-de-prensa-&#34;&gt;&lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;&#xA;      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;&#xA;      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;&#xA;    &lt;/svg&gt;&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;strong&gt;Nuevo:&lt;/strong&gt; gráfico de análisis de sentimiento: elige un tema y revisa si las noticias recientes fueron mayormente positivas o negativas. Compara cómo distintos medios abordan las temáticas. ¡Pronto más detalle!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img style = &#34;border-radius: 7px; width: 100%; max-width: 400px; display: block; margin: auto;&#34;&#xA;src = analisis_sentimiento_1.png&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Portafolio de aplicaciones en R</title>
      <link>https://bastianolea.rbind.io/blog/portafolio_apps/</link>
      <pubDate>Mon, 06 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/portafolio_apps/</guid>
      <description>&lt;p&gt;Portafolio de una selección de las aplicaciones públicas de visualización de datos que he desarrollado. Se trata de pequeñas aplicaciones web diseñadas para hacer más accesibles y comprensibles ciertos conjuntos de datos sobre temáticas sociales, políticas y socioeconómicas. Todas estas aplicaciones web fueron desarrolladas con R, y tanto el código de fuente como sus datos están disponibles de manera pública y abierta.&lt;/p&gt;&#xA;&lt;p&gt;Otra versión más detallada de este portafolio está disponible en este enlace: &#xA;&lt;a href=&#34;https://bastianolea.github.io/shiny_apps/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://bastianolea.github.io/shiny_apps/&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Portafolio de trabajos previos en R</title>
      <link>https://bastianolea.rbind.io/blog/portafolio_trabajos_r/</link>
      <pubDate>Tue, 26 Nov 2024 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/portafolio_trabajos_r/</guid>
      <description>&lt;p&gt;En esta página mantengo muestras de algunos proyectos que he realizado como analista de datos y desarrollador de R, y que consisten principalmente en aplicaciones web para la visualización y exploración de datos usando el &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/blog/r_introduccion/&#34;&gt;lenguaje de programación R&lt;/a&gt;, la &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/tags/dplyr/&#34;&gt;suite de paquetes para ciencia de datos Tidyverse&lt;/a&gt;, y el paquete de &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/tags/shiny/&#34;&gt;desarrollo de aplicaciones web Shiny&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Todo lo descrito ha sido programado íntegramente por mi, como parte de distintos equipos de trabajo.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tutorial: publicar una app Shiny en Digital Ocean</title>
      <link>https://bastianolea.rbind.io/blog/tutorial_digitalocean/</link>
      <pubDate>Wed, 06 Nov 2024 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/tutorial_digitalocean/</guid>
      <description>&lt;div style=&#34;display: flex; align-items: center; gap: 15px; padding: 14px; &#xA;            background-color: #493365;&#xA;            border-radius: 6px;&#xA;            margin: 20px 40px 20px 40px;&#34;&gt;&#xA;  &#xA;  &lt;div style=&#34;flex-shrink: 0;&#34;&gt;&#xA;    &lt;i class=&#34;fas fa-triangle-exclamation&#34; style=&#34;font-size: 130%; margin-left: 2px; opacity: 1; color: #EAD2FA;&#34;&gt;&lt;/i&gt;&#xA;  &lt;/div&gt;&#xA;  &#xA;  &lt;aside style = &#34;font-size: 90%; color: #EAD2FA;&#34;&gt;&#xA;    ⚠️ Este post está en construcción ⚠️&#xA;  &lt;/aside&gt;&#xA;  &#xA;&lt;/div&gt;&#xA;&lt;p&gt;En este tutorial encuentras instrucciones paso a paso para crear un droplet (servidor privado) en Digital Ocean, en el cual puedes subir aplicaciones Shiny, ejecutar RStudio, dejar automatizados procesos recurrentes de análisis de datos o web scraping, y más.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
