<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Daniel Primo on Medium]]></title>
        <description><![CDATA[Stories by Daniel Primo on Medium]]></description>
        <link>https://medium.com/@delineas?source=rss-65f6b81f26f------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*fiosGTOsI3cG1RglM9k-vA.jpeg</url>
            <title>Stories by Daniel Primo on Medium</title>
            <link>https://medium.com/@delineas?source=rss-65f6b81f26f------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 07:39:08 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@delineas/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Viajar 20 años atrás en el software]]></title>
            <link>https://medium.com/@delineas/viajar-20-a%C3%B1os-atr%C3%A1s-en-el-software-328cf0213a3f?source=rss-65f6b81f26f------2</link>
            <guid isPermaLink="false">https://medium.com/p/328cf0213a3f</guid>
            <dc:creator><![CDATA[Daniel Primo]]></dc:creator>
            <pubDate>Thu, 23 Sep 2021 09:30:07 GMT</pubDate>
            <atom:updated>2021-09-23T09:30:07.601Z</atom:updated>
            <content:encoded><![CDATA[<p>Decir 2001 es hablar de un año en el que sabemos que algo pasó.</p><p>Puede que tú 2002 o 2015 hayan sido más importantes a nivel personal, pero en el 2001 pasaron cosas que han afectado durante todo el milenio a la humanidad entera.</p><p>Un oyente me pregunta qué haría en 2001 con los conocimientos que tengo ahora y respondo a lo largo del episodio 208.</p><p>(Ojo, también tengo un sorteo en marcha, mira más abajo)</p><p>Quizás inventara una red social. O incluso una herramienta de seguridad. Esa fue una época donde nos sentimos inseguros.</p><p>Precisamente en el episodio premium de esta semana repaso algunos consejos sobre seguridad en el desarrollo de frontend.</p><p><strong>El software más seguro es el que no existe.</strong></p><p>Cómo sabemos que eso no sería bueno para nosotros, ¿por qué invertir un poco de tiempo en hacer nuestras webapps más seguras?</p><p>¡Nos leemos la próxima semana!</p><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/0*2VbmCeoYoRwyInwm" /></figure><p><a href="https://premium.danielprimo.io/podcast/premium/algunos-consejos-seguridad-frontend?utm_campaign=Web%20Reactiva%20por%20email&amp;utm_medium=email&amp;utm_source=Revue%20newsletter"><strong>WRP 151. Algunos consejos sobre seguridad en el frontend</strong></a><strong> — </strong><a href="https://premium.danielprimo.io/podcast/premium/algunos-consejos-seguridad-frontend"><strong>premium.danielprimo.io</strong></a></p><p>El episodio de hoy era una prueba de fuego.</p><p>Hablo poco de seguridad, en el podcast te cuento el motivo y por qué debemos tener siempre presente la seguridad en el desarrollo.</p><p>Me lanzo a hablar de este tema a petición de un malandriner.</p><p>Si quieres escuchar el episodio completo y acceder al contenido completo, <a href="https://www.danielprimo.io/nivel">suscríbete</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/0*AxLL_XfhYp1UD4tT" /></figure><p><a href="https://www.danielprimo.io/blog/el-software-que-pudo-haberme-hecho-un-zuckerberg-en-2001?utm_campaign=Web%20Reactiva%20por%20email&amp;utm_medium=email&amp;utm_source=Revue%20newsletter"><strong>WR 208: El software que pudo haberme hecho un Zuckerberg en 2001</strong></a><strong> — </strong><a href="https://www.danielprimo.io/blog/el-software-que-pudo-haberme-hecho-un-zuckerberg-en-2001"><strong>www.danielprimo.io</strong></a></p><p>Una pregunta de un oyente nos lleva 20 años atrás.</p><p>Haz como TheBoomerDev y envía tus preguntas a Federica a través de <a href="https://forms.gle/yn7wB7sBMpTAzgMG9">este formulario</a>.</p><p>El ranking de los PetaLibros</p><p>No son mega, giga ni tera. Son los libros de programación y desarrollo que lo petan. Los mejores.</p><p>Sortearé <a href="https://www.amazon.es/dp/B098KPFBH1?customId=B07537YDZ2&amp;th=1&amp;psc=1">camisetas</a> de Web Reactiva entre los participantes.</p><p>Basta con recomendar un libro que te haya ayudado a crecer en conocimientos o profesionalmente.</p><p><a href="https://tally.so/r/wzejk3">Participa</a>.</p><p>¡Nos escuchamos el próximo martes!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=328cf0213a3f" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Web Reactiva por email: La gente quiere verdad]]></title>
            <link>https://medium.com/@delineas/web-reactiva-por-email-la-gente-quiere-verdad-f10dcfd38d75?source=rss-65f6b81f26f------2</link>
            <guid isPermaLink="false">https://medium.com/p/f10dcfd38d75</guid>
            <dc:creator><![CDATA[Daniel Primo]]></dc:creator>
            <pubDate>Wed, 15 Sep 2021 18:10:13 GMT</pubDate>
            <atom:updated>2021-09-15T18:10:13.583Z</atom:updated>
            <content:encoded><![CDATA[<p>En todo este tiempo creando contenido en varios formatos (audio, texto, vídeo) me he dado cuenta que hay una cosa que la gente no quiere: aburrirse.</p><p>Esto añade un extra de dificultad y de presión a la generación de esos formatos, pero, ¿sabes qué?</p><p><strong>Es mejor así.</strong></p><p>Porque yo tampoco quiero aburrirme creándolo.</p><p>Además vosotros queréis que las cosas pasen de verdad. Los “entornos de laboratorio” como los cursos con cientos de cortes están muy bien, van al grano.</p><p>Pero hay una verdad indiscutible: son irreales.</p><p>La gente quiere verdad, quiere verte sudar. También se alegran, y mucho, cuando las cosas salen bien.</p><p>De la magia de los Live Coding te hablo en el episodio 207 de Web Reactiva.</p><p>Y en el premium traslado una experiencia real, para que veas que implementar testing en tus aplicaciones no es una cosa de otro planeta.</p><p>¡Tus dudas sobre programación y desarrollo pueden quedar respondida en Web Reactiva! <a href="https://forms.gle/yn7wB7sBMpTAzgMG9">Añade tu pregunta anónima</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/0*g8PgT5uOOu_4LYff" /></figure><p><a href="https://premium.danielprimo.io/podcast/premium/mi-primer-test-e2e-de-verdad?utm_campaign=Web%20Reactiva%20por%20email&amp;utm_medium=email&amp;utm_source=Revue%20newsletter"><strong>WRP 150. Mi primer test “end to end” de verdad en producción</strong></a><strong> — </strong><a href="https://premium.danielprimo.io/podcast/premium/mi-primer-test-e2e-de-verdad"><strong>premium.danielprimo.io</strong></a></p><p>Hablamos de Cypress, un sistema para probar la interfaz de tus aplicaciones. (También tendremos una visita inesperada…) He ido más allá de la formación…</p><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/0*nNlZjTVMt5Cih2gd" /></figure><p><a href="https://www.danielprimo.io/blog/como-hacer-un-live-coding-de-exito-aunque-seas-programador?utm_campaign=Web%20Reactiva%20por%20email&amp;utm_medium=email&amp;utm_source=Revue%20newsletter"><strong>WR 207: Cómo hacer un live coding de éxito aunque seas programador</strong></a><strong> — </strong><a href="https://www.danielprimo.io/blog/como-hacer-un-live-coding-de-exito-aunque-seas-programador"><strong>www.danielprimo.io</strong></a></p><p>Hoy quiero responder a los integrantes del magnífico podcast <a href="https://programarfacil.com/podcast/podcast-la-tecnologia-para-todos/">La tecnología para todos</a> donde hace poco se preguntaban: “¿Cómo se hace un live coding?”</p><p>Algo puedo contar después de más de 70 directos, muchos de ellos en formato live coding, que no te creas que son tantos para atesorar grandísima experiencia.</p><p>Pero hoy me he venido arriba….</p><p>El artículo <a href="https://www.danielprimo.io/entries/como-hacer-un-live-coding-de-exito-aunque-seas-programador">WR 207: Cómo hacer un live coding de éxito aunque seas programador</a> aparece publicado primero en danielprimo.io.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f10dcfd38d75" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Hola mundo con Kotlin para JavaScript]]></title>
            <link>https://medium.com/@delineas/hola-mundo-con-kotlin-para-javascript-1b19776ee6c5?source=rss-65f6b81f26f------2</link>
            <guid isPermaLink="false">https://medium.com/p/1b19776ee6c5</guid>
            <dc:creator><![CDATA[Daniel Primo]]></dc:creator>
            <pubDate>Tue, 09 Jan 2018 10:56:32 GMT</pubDate>
            <atom:updated>2018-01-09T10:56:32.026Z</atom:updated>
            <content:encoded><![CDATA[<p><strong>Kotlin</strong> es uno de los <strong>lenguajes de programación</strong> que más novedades aporta. Explotamos su visión <strong>multiplataforma</strong> generando un sencillo “hola mundo” con <strong>JavaScript</strong> sin instalar ningún software.</p><h3>¿Qué es Kotlin?</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*j6NgbicpvXXbEDxd0-KX4A.png" /></figure><p><strong>Kotlin</strong> es un <strong>lenguaje de programación de tipado estático</strong> que funciona sobre la <strong>máquina virtual de Java</strong>. También puede ser compilado para Android (con soporte oficial de Google) y transpilado a JavaScript.</p><p>Esto será lo que vemos en este tutorial con vídeo.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*9YrkuTku6SoDQ0O1.png" /></figure><p>Esta pequeña guía está pensada sobre todo para un perfil como el mío: <strong>desarrollador con experiencia en lenguajes de programación interpretados</strong> (PHP, JavaScript, python) que si ha visto alguna vez la compilación fue en sus años de estudiante con C.</p><p>Creado por JetBrains a principios de la década, respondía a la necesidad de la empresa de escribir menos código y poder avanzar más rápido en sus productos de software, tales como IntelliJ o PhpStorm.</p><p>Si quieres saber más sobre <a href="http://kotlinglang.org/">Kotlin</a>, no dejes de escuchar <a href="http://www.danielprimo.io/podcast/17">nuestra entrevista con un profesional especializado en Kotlin.</a></p><h3>Vídeotutorial Hola Mundo con Kotlin Javascript</h3><p>Puedes ver el vídeo de la demostración de código a continuación.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FHZqGh4z3m9c%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DHZqGh4z3m9c&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FHZqGh4z3m9c%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/fae4796ca1d377a1aeb45f36349c1c50/href">https://medium.com/media/fae4796ca1d377a1aeb45f36349c1c50/href</a></iframe><h3>El compilador</h3><p>Podemos desarrollar en kotlin con cualquier editor de código, pero lo más razonable es utilizar el soporte del fabricante a través de IntelliJ IDEA. Cuentas con el soporte de Android Studio o Eclipse.</p><p>Cómo queremos hacer este ejemplo de la <strong>forma más sencilla posible</strong>, no vamos a utilizar ningún IDE, precisamente para que no tengamos que depender de un software que quizás no tengas instalado y que siempre tiene un tamaño considerable.</p><p>Seguiremos las recomendaciones de Kotlin, aquí tenéis las opciones de descarga del compilador: <a href="https://kotlinlang.org/docs/tutorials/command-line.html">Working with the Command Line Compiler</a>.</p><p>Si bien puedes utilizar <em>Sdkman</em> o <em>homebrew</em> si estás en MacOS, seguiremos con este afán de sencillez y vamos al recurso más básico. El compilador de instalación manual.</p><p>Realmente no hay que instalar nada, solo <strong>descomprimir</strong> <a href="https://github.com/JetBrains/kotlin/releases/download/v1.2.10/kotlin-compiler-1.2.10.zip">este fichero</a> en una carpeta de tu disco duro.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/187/0*lBNtNZpeY8A-k4df.png" /></figure><p>Encontrarás una estructura como la de la imagen. Ahora mismo nos interesa la carpeta “bin” que es donde están los binarios del compilador.</p><p>Necesitaremos también extraer un fichero con toda la librería de JavaScript que necesita Kotlin para guardar la compatibilidad de su estructura en el navegador. En el vídeo lo explico con detalle y también lo puedes encontrar si <a href="https://www.danielprimo.io/blog/hola-mundo-con-kotlin-para-javascript#">descargas el código fuente de la práctica</a>.</p><h3>Primer script de Hola mundo por consola</h3><p>Antes de crear nuestro “Hola mundo” con Kotlin para JavaScript vamos a crear el mismo script para ver el resultado en nuestra consola.</p><p>La estructura de carpetas que tengo es la que puedes ver en la imagen.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/264/0*7ofMNzooaRat5lz_.png" /></figure><p>Creamos un fichero y lo llamamos helloworld.kt con este contenido. La extensión “kt” es la de Kotlin.</p><pre>#src/helloworld.kt fun main(args: Array&lt;String&gt;) {     println(&quot;Hola mundo&quot;) }</pre><p>La ejecución de Kotlin comienza en la función “main”. Y como puedes ver vamos a utilizar la función que imprime en pantalla un texto.</p><p>Tan sólo nos falta <strong>compilar y ejecutar.</strong> Ten muy encuenta que las rutas del ejecutable en el terminal están en relación a la carpeta “helloworld” que puedes ver en mi estructura de carpetas.</p><p>Con esto conseguimos crear el fichero ejecutable en Java con extensión “jar”.</p><pre>../kotlinc/bin/kotlinc src/helloworld.kt -include-runtime -d helloworld.jar</pre><p>A continuación lanzamos la ejecución de este fichero</p><pre>java -jar helloworld.jar</pre><p>Y el resultado en tu consola será como el que ves en el vídeo, aparecerá un “Hola mundo”.</p><p>¡Muy bien!</p><p>Ya tenemos nuestro primer script en Kotlin, pero queremos más y verlo en el navegador.</p><h3>Kotlin para Javascript</h3><p>Lo primero es generar nuestro fichero JavaScript con el saludo visible en pantalla. Introducimos este código en nuestro “helloworld.kt”, sustituyendo al anterior.</p><pre>#src/helloworld.kt import kotlin.browser.document; fun main(args: Array&lt;String&gt;) {     val msg = document.getElementById(&quot;msg&quot;)     msg!!.innerHTML = &quot;&lt;h1&gt;Hola mundo&lt;/h1&gt;&quot; }</pre><p>Varias cosas interesantes</p><ul><li><strong>Librería</strong> de kotlin para entender lo que aparece en el navegador. La importamos con el primer “import”</li><li>Uso de <strong>métodos conocidos de JavaScript</strong>, que son más sencillos de entender. El “getElementById” nos carga del DOM el elemento con el identificador “msg”. Vas a ver este HTML en el fichero que crearemos un poco más adelante.</li><li><strong>Control de nulos</strong>. El compilador entenderá que la variable “msg” puede ser nula (porque el elemento del HMTL con el identificador “msg” puede no existir). Por eso utilizamos la doble admiración “!!”.</li><li><strong>Insertar HTML</strong> al modo de Javascript con “innerHTML”.</li><li>No es necesario colocar un carácter de fin de línea tal y como el punto y coma. El compilador entenderá que es el final de la sentencia.</li></ul><p>Nuestro fichero HTML será tal que así:</p><pre>&lt;!--helloworld.html--&gt; &lt;!DOCTYPE html&gt; &lt;html lang=&quot;es&quot;&gt; &lt;head&gt;     &lt;meta charset=&quot;UTF-8&quot;&gt;     &lt;title&gt;Kotlin JS Hola mundo&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;div id=&quot;msg&quot;&gt;&lt;/div&gt; &lt;script src=&quot;js/kotlin.js&quot;&gt;&lt;/script&gt; &lt;script src=&quot;js/helloworld.js&quot;&gt;&lt;/script&gt; &lt;/body&gt; &lt;/html&gt;</pre><p>Como ves cargamos dos ficheros que aún no existen: kotlin.js y helloworld.js</p><p>El primero puedes encontrarlo en el código o ver el vídeo para conseguirlo. Si transpilas el código a través de IntelliJ el software te generará la libreria de JS.</p><p>El segundo fichero es el que vamos a generar ahora.</p><p>Decirte que el concepto de transpilar es equivalente a compilar. Se entiende que al transpilar convertimos un código de un lenguaje de alto nivel (Kotlin) a otro de alto nivel (JavaScript).</p><p>Generamos ahora nuestro fichero JS</p><pre>../kotlinc/bin/kotlinc-js -output js/helloworld.js -meta-info src/helloworld.kt</pre><p>El binario en este caso es “kotlinc-js”. Tenemos que indicarle dónde queremos generar el fichero JS a través del “-output” y el origen con el nombre al final del comando.</p><p>El compilador genera más ficheros que ahora no nos interesan.</p><p>Carga finalmente <em>helloworld.html</em> en tu navegador y por fin tendrás el “Hola mundo”. Échale un ojo a <em>helloworld.js </em>para ver en detalle lo que genera el compilador.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/362/0*BCh0V2N-Bk5OD61u.png" /></figure><p>Espero que esta pequeña guía te sea de utilidad :)</p><p><em>Originally published at </em><a href="https://www.danielprimo.io/blog/hola-mundo-con-kotlin-para-javascript"><em>www.danielprimo.io</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1b19776ee6c5" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Así creamos nuestro primer chatbot]]></title>
            <link>https://medium.com/@delineas/asi-creamos-nuestro-primer-chatbot-97a77d70a151?source=rss-65f6b81f26f------2</link>
            <guid isPermaLink="false">https://medium.com/p/97a77d70a151</guid>
            <category><![CDATA[proyectos]]></category>
            <category><![CDATA[bots]]></category>
            <category><![CDATA[chatbots]]></category>
            <category><![CDATA[tutorial]]></category>
            <category><![CDATA[programación]]></category>
            <dc:creator><![CDATA[Daniel Primo]]></dc:creator>
            <pubDate>Wed, 20 Dec 2017 09:01:02 GMT</pubDate>
            <atom:updated>2017-12-20T09:01:02.106Z</atom:updated>
            <content:encoded><![CDATA[<iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fw.soundcloud.com%2Fplayer%2F%3Furl%3Dhttp%253A%252F%252Fapi.soundcloud.com%252Ftracks%252F368884358%26show_artwork%3Dtrue&amp;url=https%3A%2F%2Fsoundcloud.com%2Fdaniel-primo-5%2Fwr-13-asi-creamos-nuestro&amp;image=http%3A%2F%2Fi1.sndcdn.com%2Fartworks-000269122025-ze0m6s-t500x500.jpg&amp;key=d04bfffea46d4aeda930ec88cc64b87c&amp;type=text%2Fhtml&amp;schema=soundcloud" width="800" height="166" frameborder="0" scrolling="no"><a href="https://medium.com/media/ad11af555666f96763d9fed5d0a25396/href">https://medium.com/media/ad11af555666f96763d9fed5d0a25396/href</a></iframe><p><a href="https://itunes.apple.com/es/podcast/web-reactiva/id1285264897">Apple Podcast (iTunes)</a> | <a href="https://www.ivoox.com/podcast-web-reactiva_sq_f1454279_1.html">iVoox</a> | <a href="https://www.danielprimo.io/podcast">Suscríbete al podcast</a></p><p>Esta es la historia de la <strong>creación de un chatbot desde cero</strong>. De como una <strong>experiencia</strong> de fin de semana fructifica en un <strong>proyecto de aprendizaje</strong> que quiero compartir contigo.</p><p>Una exageración para empezar: Un bot es como una persona, pero programada.</p><p>Pulsa en el <strong>play</strong> que ves arriba o en los enlaces para escuchar el episodio. Aquí te dejo las notas del programa.</p><h3>Motivación</h3><p>En el podcast de Betabeers<a href="https://betabeers.com/blog/betapod-02002-chatbots-fernando-cerezal-fcerezal-336/"> entrevistaron a Fernando Cerezal</a> y hablaron sobre chatbots, un tema al que ya tenía echado el ojo desde hace algún tiempo. Y lanzaron el guante de quién se atrevía a hacer un bot de <a href="https://es.wikipedia.org/wiki/Chiquito_de_la_Calzada">Chiquito de la Calzada</a>. Un genio del humor recientemente fallecido, que construyó un lenguaje propio y nos hizo reír a todos, incluso ahora que se ha marchado.</p><p>Ya <a href="http://dreamingechoes.github.io/bot/ruby/rails/conversational-bot-ruby-on-rails/%C2%A0">existe un artículo</a>, al menos donde explican como hacerlo en Ruby, de Iván González, al que le he robado, al menos, la foto :)</p><p>Quería crear mi versión. Se juntan varios días libres, el tiempo parece no acompañar y quieres aprender cosas nuevas.</p><p>Además los bots están de moda y en plena expansión. El último que he utilizado es <a href="https://politibot.io/">politibot</a>. Pero seguro que tu conoces más, sobre todo si eres usuario de Slack o de Telegram, plataformas que permiten bots desde hace tiempo.</p><p>Haciendo gala del eslogan del podcast, “la tecnología es necesaria, pero las personas somos lo importante,” aproveché unos ratos libres para humanizar internet a través de un robot.</p><p>Toda una contradicción ;)</p><p>Aquí está el resultado: <a href="https://fistrobot.glitch.me/"><strong>FistroBot</strong></a>.</p><p>Si escribes “ayuda” en el bot, podrás ver el enlace al código en github.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/687/0*6O9KrN3ovKZpQStn.png" /></figure><p>La excusa y el tiempo estaban definidos, veamos a qué más cosas nos enfrentamos.</p><h3>Condiciones de ejecución</h3><ul><li>Sencillo, nada de complicarse mucho la vida</li><li>Tiempo: durante ratos muertos de unos días libres</li><li>Poder contar la historia de su ejecución</li><li>Ni tener que empezar de cero ni una plataforma con todo hecho</li><li>Nada de CMS y gestores de contenido por esta vez (Drupal, WordPress…)</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/581/0*PvgD3KYp_NQoboP2.png" /></figure><h3>Elección de la plataforma</h3><p>Hay múltiples alternativas, casi tantas que marea. Aquí tenéis una lista “awesómica” con montones de información: <a href="https://github.com/BotCube/awesome-bots">Awesome Bots</a>.</p><p>Dos caminos básicos para implementar el chatbot: con y sin programación. Veamos ambos.</p><h4>Sin programar: plataformas visuales</h4><p>Son plataformas donde vas colocando cajas y conexiones entre cajas para ir definiendo el comportamiento del chatbot. Unas cajas son acciones y las otras son reacciones. Entre las acciones puede haber saludos iniciales, preguntas… En las reacciones estarán las respuestas que damos, la opción que elegimos…</p><p>Es muy intuitivo y permiten múltiples combinaciones, también de llamadas a servicios externos. Suelen tener una versión gratuita y otra de pago para sostener el producto y dar más opciones.</p><p>De entras las muchas que existen destaco aquí las siguientes</p><ul><li><a href="https://chatfuel.com/">Chatfuel</a></li><li><a href="https://manychat.com/%20%C2%A0">ManyChat</a></li><li><a href="https://talkbot.io/">TalkBot</a></li></ul><p>Si quieres puedes ver este <a href="https://www.danielprimo.io/blog/monta-tu-primer-chatbot-facebook-messenger%C2%A0"><strong>videotutorial</strong></a> sobre cómo <strong>crear un chatbot para facebook en cuestión de minutos</strong>.</p><p>¿Recomendarías alguna más? En los comentarios tu propuesta será bienvenida</p><h4>Con programación: frameworks</h4><p>Mi opción preferida, evidente, ¿verdad? :)</p><p>Existe la opción de hacerlo desde cero. A fin de cuentas un chatbot es un reflejo de lo mismo que hace la web Tu pides algo a una web y te devuelve lo que esperas (casi todas las veces). Si es un enlace a un post de un blog, recibirás el contenido en el navegador. Si pulsas play en un podcast esperas que se ejecuta.</p><p>Pero quedamos en hacer algo sencillo y si tenía que ponerme desde cero las cosas seguro que se complican, así que busqué un framework</p><p>Lista interminable, para todos los lenguajes de programación y conectados con todo tipo de servicios de mensajería.</p><p>Algunos nombres:</p><ul><li><a href="http://botkit.ai/">Botkit</a></li><li><a href="http://botman.io/">Botman</a></li><li><a href="http://botpress.io/">Botpress</a></li><li><a href="https://dev.botframework.com/">Bot Framework</a> de Microsoft</li><li><a href="https://bottender.js.org/">Bottender</a></li><li><a href="http://http//botmasterai.com/">BormasterAI</a></li></ul><p>Quedaron dos en la criba final. Botman (PHP) y (BotKit) en JavaScript. Aunque el primero es bueno y su creador le pone muchas ganas en hacerlo entender, ganó BotKit este último por varios motivos</p><ul><li>Es gratuito y software libre</li><li>Es amigable porque se programa en JavaScript</li><li>Puedo utilizar un hosting gratis para publicarlo (glitch.com)</li><li>Está bien documentado</li><li>Tiene mantenimiento, una comunidad y una empresa detrás: howdyai</li><li>Plataforma de gestión visual <a href="http://studio.botkit.ai/">studio.botkit.ai</a>. Ahí puedes crear hilos de interacción visualmente, medir los mensajes de tu bot, gestionar la publicación, etc</li><li>Cubre varias plataformas de mensajería.</li><li>Permite arrancar con una versión web, sin depender de Facebook, Skype, Telegram…</li><li>No tenía cobertura para <a href="http://www.alicebot.org/aiml.html">AIML</a> (Artificial Intelligence Markup Language). Esto no es un factor positivo, pero quería añadirlo :)</li></ul><p>En este vídeo puedes ver cómo crear un chatbot como el de nuestro, desde cero y sin tener que instalar nada.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FUFSREod1X2U%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DUFSREod1X2U&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FUFSREod1X2U%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/8df8c51e764d425f3f1d23275b58fa23/href">https://medium.com/media/8df8c51e764d425f3f1d23275b58fa23/href</a></iframe><p><a href="https://www.danielprimo.io/youtube">Suscríbete a mi canal de YouTube</a></p><h3>Diferencias con el desarrollo web</h3><p>Aunque sea online, la interfaz es completamente distinta. El usuario va dirigido por palabras. No tiene donde hacer clic salvo que se lo ofrezca la propia conversación</p><p>Lo importante ahora si es el mensaje, hasta ahora nos daba un poco igual el discurso del usuario, queríamos llevarle hacia un camino donde controlamos las reacciones de otra forma (formularios, botones, enlaces)</p><p>Es evidente la integración con lenguaje natural, se interpreta la frase: “quiero comer pizza en londres” ahora tiene un valor. En web aunque preguntes al usuario siempre es un listado de opciones, un desplegable, un selector..</p><p>Esto Implica por tanto analizar la lógica de otra forma, quizás más compleja, aunque han surgido multitud de plataformas. Google con dialogflow, Amazon con Lex, LUIS de Microsoft, IBM Watson, incluso RASA que es de código libre.</p><p>Y por último algo que para mi es una ventaja, está pensado para móviles, porque la interfaz de por si está adaptada y es lo que estamos acostumbrados a utilizar en nuestras aplicaciones.</p><h3>Diseño del bot</h3><p>Aquí tenéis el diseño del diagrama de flujo que he “perpetrado”. Artesanal y parco a partes iguales:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/852/0*ksGysPgiQA5_R3oz.jpg" /></figure><p>No hablamos aquí tanto del diseño gráfico, sino de la interacción del usuario con el bot y, de esta forma, poder atrapar al usuario y que no se pierda.</p><p>Cuestiones que he descubierto en este proceso de diseño y posterior ejecución. Esta es la <strong>retrospectiva</strong>:</p><ul><li>El chatbot debe empezar siempre por un sitio, en nuestro caso podemos distinguir si ya nos conoce o somos nuevos</li><li>Hay que ofrecer una lista de opciones o hacer una pregunta muy clara para empezar, mas dificil esto segundo, pero más natural. Por ejemplo: “¿qué ingredientes quieres para la pizza?”</li><li>En el fistrobot siempre vamos a un menu con las tres opciones principales, chiste, cita o ayuda. Si fuera de pedir pizza podríamos preguntar “donde vives” para analizar la dirección.</li><li>Cada interacción debe ser un hilo, con su propia vida y estructura, donde hay un camino para entrar y uno para salir. O varios, pero que estén definidos.</li><li>Cuidado con los hilos huérfanos o dejar colgado al usuario. Preguntar si quiere repetir o preparar respuestas a textos concretos: “ayuda”, “inicio”, “hola”, “quiero (x) cosa”…</li><li>Simular la humanidad con efectos de que el bot está tecleando, tiempos de respuesta rápido pero no inminentes, cómo si estuviera pensando.</li><li>Intentar sorprender y aprovechar los recursos disponibles: elementos multimedia como emojis, videos, gif animados, sonidos…</li></ul><h3>Conclusiones, ¿qué hacer a partir de aquí?</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4aPzwSxp42iG-RKydYGQDQ.jpeg" /></figure><p>Quizás la opción de Chiquito no fuera la mejor, digamos que pierde toda la gracia “convertir” a este genial humorista en un robot. Mis próximos pasos irán por otro camino, sino intentar un objetivo algo más lógico y cercano a los deseos del usuario.</p><p>Eso si, doy por bueno todo lo aprendido, ¡faltaría más!</p><p><strong>Las pruebas y tests del sistema deben ser automatizados</strong>. Es una tarea fatigosa probar una y otra vez lo mismo y cubrir todas las opciones del usuario</p><p>Un bot que cubra una necesidad que puedas tener. Algunas ideas aparecen aquí:</p><ul><li>Pedir pizza con ingredientes. Un clásico de los ejemplos de chatbots.</li><li>Bot para un evento. Necesitamos respuestas rápidas a preguntas concretas: dónde tengo que ir, qué pasa a las 11, dónde da la charla Manuel…</li><li>Navegación por un catálogo. El bot puede preguntarte si eres hombre o mujer y la edad. A partir de ahí podrías elegir colores por fotografías, o el tipo de complemento, hasta llevarte a lo que necesitas comprar. Algo similar a lo que pasaría en una tienda física.</li><li>Recomendaciones de ocio en una ciudad. Preguntar por tus gustos y ofrecer resultados cercanos, que en el móvil podemos geolocalizar con más facilidad.</li></ul><p>Es necesario también darle la mano al NLP (Procesamiento de Lenguaje Natural) a través de herramientas que ofrezcan resultados en el contexto de lo que pida el usuario. Es cierto que estos sistemas necesitan entrenamiento, pero estoy convencido de que merece la pena.</p><p>Volveremos sobre esto seguro, porque es una de las tecnologías de futuro.</p><p>Si te gustó el podcast <strong>recomiéndalo</strong> donde quieras ¡Gracias por darlo a conocer! Puedes seguir el podcast en <strong>twitter</strong> en <a href="http://twitter.com/webreactiva">@webreactiva </a>o ver mis vídeos en el <a href="http://danielprimo.io/youtube">canal de youtube</a>.</p><p>Espero que este episodio te sea útil. ¡Nos escuchamos el próximo! :-)</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fupscri.be%2Fde58d5%3Fas_embed%3Dtrue&amp;url=https%3A%2F%2Fupscri.be%2Fde58d5&amp;image=https%3A%2F%2Fe.enpose.co%2F%3Fkey%3DdRXnS9Gplk%26w%3D700%26h%3D425%26url%3Dhttps%253A%252F%252Fupscri.be%252Fde58d5%252F%253Fenpose&amp;key=d04bfffea46d4aeda930ec88cc64b87c&amp;type=text%2Fhtml&amp;schema=upscri" width="800" height="400" frameborder="0" scrolling="no"><a href="https://medium.com/media/f1342d9242d958b58363dfe521f61b02/href">https://medium.com/media/f1342d9242d958b58363dfe521f61b02/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*MMX82VX3T3Ts2Sae6-toyw.gif" /></figure><p><em>Originally published at </em><a href="https://www.danielprimo.io/blog/asi-creamos-nuestro-primer-chatbot"><em>www.danielprimo.io</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=97a77d70a151" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Cómo crear un chatbot con BotKit]]></title>
            <link>https://medium.com/@delineas/c%C3%B3mo-crear-un-chatbot-con-botkit-4bab8df755e7?source=rss-65f6b81f26f------2</link>
            <guid isPermaLink="false">https://medium.com/p/4bab8df755e7</guid>
            <category><![CDATA[botkit]]></category>
            <category><![CDATA[chatbots]]></category>
            <category><![CDATA[programación]]></category>
            <category><![CDATA[tutorial]]></category>
            <category><![CDATA[spanish]]></category>
            <dc:creator><![CDATA[Daniel Primo]]></dc:creator>
            <pubDate>Thu, 14 Dec 2017 07:54:14 GMT</pubDate>
            <atom:updated>2018-01-19T12:57:52.165Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/903/1*Z3621vvI7PE1b9TrVSmHcg.png" /></figure><p>Seguro que has oído hablar de los <strong>bots</strong>, <strong>chatbots</strong> o bots conversacionales.</p><p>Yo, desde hace unos meses, a todas horas.</p><p>Con toda probabilidad <strong>ya has hablado con uno de ellos</strong>, ¿a qué si?</p><p>El del tiempo, el que te da las noticias, el que te ofrece recetas de cocina…</p><p>Si estás aquí además es que tienes interés por saber como construir el tuyo.</p><p>Te voy a contar mi <strong>método</strong> para <strong>programar un chatbot</strong>.</p><p><strong>Sin que tengas que instalar nada</strong> y con un <strong>resultado inmediato</strong>.</p><p>Sigue leyendo y verás que unir las piezas es sencillo.</p><h3>¿Qué pasa con los bots?</h3><p>Los <strong>chatbots o bots</strong> (encontrarás que lo llaman de las dos maneras) no son un invento reciente, pero si están empezando a crecer desde que las principales redes sociales (Facebook), servicios de mensajería (Skype, Slack, Telegram) o grandes empresas (Google, Amazon) han empezado a apostar por ellos. Y Siri (Apple) o Allo (Google) van más allá, porque son asistentes personales.</p><p><strong>El bot trata de hacer más humano el contacto con la tecnología</strong> porque simula la conversación humana. Nos entiende a través de preguntas o peticiones que hacemos a través del chat. Analiza nuestras respuestas y nos ofrece algo acorde con lo que buscamos.</p><p>Aparte los bots, tal y como los vemos ahora en Facebook o Telegram, nos ayudan a conseguir un objetivo concreto: conocer el tiempo, buscar referencias de restaurantes, pedir una pizza, ofrecernos noticias de politica…</p><p>Es una tecnología en pleno crecimiento y si <strong>desarrollas o programas web</strong> es el siguiente paso a la interfaz que conoces.</p><p>Es el germen de algo muy grande que cambiará mucho en poco tiempo.</p><p>La cresta de la ola.</p><h3>¿Qué es BotKit?</h3><p><a href="https://www.botkit.ai/">BotKit</a> es una plataforma para la creación y gestión de bots. Tiene dos partes fundamentales:</p><ol><li>Un framework para la programación de los bots</li><li>Una plataforma online para educar, configurar y monitorizar el bot (studio.botkit.ai)</li></ol><p>Si es que hasta en el lenguaje ya parece que estamos hablando de un humano. Me ha faltado decir que lo vamos a amaestrar :)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*p8caB966FpttgIWnZJ6s7w.png" /></figure><p>El framework se basa en programación con JavaScript ejecutada en servidor con node. En el vídeo puedes ver que no es necesario instalar nada para hacer las primeras pruebas con BotKit.</p><p>Utilizamos <a href="http://glitch.com/">glitch.com</a>, un alojamiento gratuito con capacidad de ejecutar JavaScript en servidor.</p><h3>Un chatbot en web</h3><p>Para esta primera parte del manual he decidido no conectar el bot con redes sociales o servicios de mensajería. No es por un tema de dificultad, es que quiero ir paso a paso.</p><p><strong>Quiero ayudarte a que entiendas como funciona un chatbot primero</strong>, para luego ir creciendo. Construiremos un clásico: ¡el bot para pedir pizza!</p><p>Además esta versión nos ofrece la posibilidad de incrustar el bot en nuestras páginas. Lo veremos más adelante, pero conseguiremos tener esa ventanita en la parte derecha del navegador cuando alguien visite nuestr web. Nada mejor que ofrecer conversación para que la gente se quede.</p><p>Las versiones para mensajería se pueden construir todas desde esta misma plataforma. Así con una programación podrías estar presente dando respuestas en Facebook, Slack y otras muchas.</p><p>¿Por qué BotKit?</p><p>He investigado bastantes opciones y me he quedado con BotKit por varias razones. Te las detallo en este episodio del <a href="https://www.danielprimo.io/podcast/13">podcast</a> dónde cuento mis experiencias en la creación de los bots. Principalmente hay tres motivos:</p><ul><li>Es <strong>gratuito</strong> y software libre</li><li>Es <strong>amigable</strong> porque se programa en JavaScript</li><li>Cubre <strong>varias plataformas</strong> de mensajería.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*AUUs9fArybxDyoXl.png" /></figure><p>Podrías pensar que otras plataformas como Chatfuel o Manychat son mejores porque no necesitan programar. Pero aquí siempre apostamos por ser creativos y el aprendizaje.</p><p>BotKit ofrece soporte para todas estas plataformas. Se pueden crear por tanto bots para todas ellas:</p><ul><li>Slack Real Time Messaging (RTM)</li><li>Slack Incoming Webhooks</li><li>Slack Slash Commands</li><li>Cisco Spark Webhooks</li><li>Microsoft Teams</li><li>Facebook Messenger Webhooks</li><li>Twilio SMS</li><li>Twilio IP Messaging</li><li>Microsoft Bot Framework</li></ul><p>La última de todas abre la puerta a varias más: Skype, Group.me, Telegram y Kik.</p><p>Y ya nos gustaría a todos que <strong>WhatsApp</strong> estuviera en esta lista, pero en este momento no tiene soporte para chatbots de este estilo.</p><h3>Vídeotutorial</h3><p>Aquí puedes ver el vídeo de todo el proceso. También puedes seguir leyendo la ejecución del mismo.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FUFSREod1X2U%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DUFSREod1X2U&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FUFSREod1X2U%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/8df8c51e764d425f3f1d23275b58fa23/href">https://medium.com/media/8df8c51e764d425f3f1d23275b58fa23/href</a></iframe><p><a href="https://www.danielprimo.io/youtube">Suscríbete a mi canal de YouTube</a></p><h3>Proceso de creación del bot-eco</h3><p>Cuando somos niños todos hemos jugado a molestar a hermanos y familiares repitiendo lo que dicen. Incluso los movimientos. Da bastante fastidio, pero nosotros lo usamos en ventaja para construir nuestro primer bot.</p><p>Es el <strong>bot-eco</strong></p><h4>0. Consideraciones iniciales</h4><ul><li><strong>No necesitas instalar nada</strong> en tu ordenador, lo vamos a hacer todo a través del navegador Chrome.</li><li>Tampoco hay que tener una cuenta o darse de alta. Ni pagar por ello, el <strong>alojamiento es gratis</strong> (y con <strong>certificado SSL</strong>).</li><li>Si es bueno si tienes conocimientos de JavaScript para exprimir todo el potencial del tutorial, pero he intentado hacerlo de la <strong>forma más sencilla</strong> posible para que me puedas seguir.</li></ul><h4>1. Crear el bot</h4><p>Todo lo vamos a realizar desde <strong>glitch</strong>, una plataforma divertida y original donde todos podemos aprender, publicar y compartir código. Está pensada para publicar webs y aplciaciones basadas en JavaScript de servidor (node). Así que nos viene de perlas.</p><p>Accedemos a la copia original del código a través de <a href="https://goo.gl/xaTBFS">este enlace</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*czzlvZnEZC4So2S0.png" /></figure><p>Clic en <strong>“Remix your own”</strong>.</p><p>Arrancará una <strong>nueva pantalla</strong> con un nombre aleatorio para tu proyecto.</p><p>Todo esto puedes hacerlo dándote de alta como usuario en glitch, pero para este tutorial no es necesario. Eso sí, ten en cuenta que si utilizas el entorno de forma anónima el trabajo se perderá en unos días.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*cYNu4hhPAErpgAOe.png" /></figure><p>A la izquierda tenemos todos los ficheros que ha copiado y a la derecha está el editor.</p><p>Cada vez que hagas un <strong>cambio</strong> el sistema regenera toda la instalación y <strong>recarga el resultado automáticamente</strong>.</p><p>No nos vamos a detener de momento en todo el código que tenemos para nuestro bot. Lo importante es que funciona.</p><h4>2. Primera prueba del chatbot</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/553/0*vl756jpxMvihDbLE.png" /></figure><p>Puedes ver el primer vistazo de tu bot si haces clic en “Show”. Se abre una ventana nueva con una línea para escribir, como en cualquier chat.</p><p>Si escribes la palabra “test” verás que el <strong>chatbot funciona correctamente</strong>, porque te contestará con un mensaje en inglés que dice algo así como “yo escucho tu test”. Más humano, ¡imposible!</p><h4>3. Crear el bot-eco</h4><p>No lo llamamos <em>ecobot</em> porque aún cuando sea un sistema de bajo consumo, no es solo la ecología lo que nos preocupa, aunque sea muy importante.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/446/0*_OS_cJ7Dz145gGgN.png" /></figure><p>En esta carpeta tenemos todas las habilidades de nuestro bot. Hay varias prepradas de ejemplo.</p><p>Sin más hacemos clic en el fichero “skills/sample_hears.js”.</p><p>A la derecha se nos abre el editor donde podemos programar esas habilidades.</p><p>Copiamos y pegamos las siguientes líneas bajo la primera línea.</p><pre>controller.on(&#39;message_received&#39;,function(bot,message){     bot.reply(message,message.text);   });</pre><p>Un poco de explicación aquí, aunque no es necesario que comprendas todo.</p><ul><li>“controller” es el controlador del bot, donde le dotamos de vida.</li><li>“on” es que nos vamos a fijar en un evento, en algo que ocurre en el bot.</li><li>“message_received” es el evento, en cualquier mensaje que recibamos.</li><li>“bot.reply” es lo que le mandamos hacer al bot, en este caso responder (con muy poca educación, todo hay que decirlo).</li><li>“message.text” es el texto que nosotros hemos escrito.</li></ul><p>Así todo junto lo que le decimos al bot es que cada vez que alguien escriba algo en la caja de texto le responda con lo mismo que ha escrito. Por eso es el bot-respondón, más finamente llamado bot-eco</p><h4>4. Prueba final</h4><p>Hacemos clic en “Show” o abrimos la ventana del navegador donde tenemos nuestro bot abierto.</p><p>Escribimos lo que sea y, <strong>¡ya tenemos nuestro bot-eco!</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*YK05lj-PeNObHj5l.png" /></figure><p>También puedes lanzarlo en el móvil, aunque parece que algunos navegadores no los soporta muy bien. Prueba y me dices.</p><h3>¿Qué más podemos hacer con nuestro bot?</h3><p>Seguro que se te ocurren montones de cosas:</p><ul><li>Pedir pizza</li><li>Que te diga los mejores restaurantes italianos</li><li>Noticias de deportes del equipo que le digas</li><li>Poder comprar en tu tienda online con este método</li><li>El tiempo en mi ciudad</li><li>A qué hora sale el siguiente tren</li><li>Cuánto falta para que llegue el autobús</li><li>Un bot que nos cuente chistes, este <a href="http://fistrobot.glitch.me/">ya existe</a></li><li>Pedir pizza (¿ya lo dije?)</li></ul><p>Se te ocurren más cosas, <a href="https://www.danielprimo.io/contacto">escríbeme</a> y me las cuentas, seguro que entre todos sale algo muy bueno.</p><h3>Extra bonus</h3><p>¿Tenéis ganas de más?</p><p>Pues podéis ver la segunda lección de este minicurso, donde hacemos que el chatbot nos salude y nos recuerde. Además lo convertimos más humano porque teclea y todo para contestarnos…</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FhfPrYayyhuY%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DhfPrYayyhuY&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FhfPrYayyhuY%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/159fced8d3558a673abc7660484c9acb/href">https://medium.com/media/159fced8d3558a673abc7660484c9acb/href</a></iframe><p><a href="https://www.danielprimo.io/youtube">Suscríbete a mi canal de YouTube</a></p><p>Espero que esta guía te haya resultado útil. Sigue en YouTube los nuevos capítulos del tutorial.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fupscri.be%2Fde58d5%3Fas_embed%3Dtrue&amp;url=https%3A%2F%2Fupscri.be%2Fde58d5&amp;image=https%3A%2F%2Fe.enpose.co%2F%3Fkey%3DdRXnS9Gplk%26w%3D700%26h%3D425%26url%3Dhttps%253A%252F%252Fupscri.be%252Fde58d5%252F%253Fenpose&amp;key=d04bfffea46d4aeda930ec88cc64b87c&amp;type=text%2Fhtml&amp;schema=upscri" width="800" height="400" frameborder="0" scrolling="no"><a href="https://medium.com/media/f1342d9242d958b58363dfe521f61b02/href">https://medium.com/media/f1342d9242d958b58363dfe521f61b02/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*MMX82VX3T3Ts2Sae6-toyw.gif" /></figure><p><em>Originally published at </em><a href="https://www.danielprimo.io/blog/como-crear-un-chatbot-con-botkit"><em>www.danielprimo.io</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4bab8df755e7" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Cómo explicar proyectos tecnológicos a tu jefe o cliente]]></title>
            <link>https://medium.com/@delineas/c%C3%B3mo-explicar-proyectos-tecnol%C3%B3gicos-a-tu-jefe-o-cliente-5aa96de01fed?source=rss-65f6b81f26f------2</link>
            <guid isPermaLink="false">https://medium.com/p/5aa96de01fed</guid>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[webreactiva]]></category>
            <category><![CDATA[proyectos]]></category>
            <category><![CDATA[programador]]></category>
            <category><![CDATA[emprender]]></category>
            <dc:creator><![CDATA[Daniel Primo]]></dc:creator>
            <pubDate>Wed, 13 Dec 2017 08:47:52 GMT</pubDate>
            <atom:updated>2017-12-13T10:10:20.004Z</atom:updated>
            <content:encoded><![CDATA[<p>Escucha el Podcast de este capítulo en <a href="https://www.danielprimo.io/blog/como-explicar-proyectos-tecnologicos-a-tu-jefe-o-cliente"><strong>este enlace</strong></a>.</p><p>En este episodio os cuento algunos de los <strong>trucos</strong> que utilizo y <strong>pautas</strong> que sigo para <strong>explicar</strong> un <strong>proyecto tecnológico</strong> a un cliente o a un compañero con <strong>éxito</strong>. No siempre es tan fácil <strong>convertir lo difícil en fácil</strong>, pero aquí lanzo algunas ideas.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ftemAZMO_2rvdiLxEqaq9A.jpeg" /></figure><p>No seré muy académico ni formal, ni os voy a hablar de como gestionar grandes proyectos. El cometido del episodio es hablaros de lo que me funciona y lo que es importante para mi cuando presento un proyecto, cuando explico un proceso que implica tecnología.</p><p>En mi caso basado en web y para clientes, pero esto es aplicable también si trabajas en equipo, ya sea en empresa grande o pequeña. Porque al final, <strong>¿quién no tiene que explicar un proceso complicado en público alguna vez?</strong></p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fw.soundcloud.com%2Fplayer%2F%3Furl%3Dhttp%253A%252F%252Fapi.soundcloud.com%252Ftracks%252F368886743%26show_artwork%3Dtrue&amp;url=https%3A%2F%2Fsoundcloud.com%2Fdaniel-primo-5%2Fwr-6-como-explicar-proyectos&amp;image=http%3A%2F%2Fi1.sndcdn.com%2Fartworks-000269123987-rkg567-t500x500.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=soundcloud" width="800" height="166" frameborder="0" scrolling="no"><a href="https://medium.com/media/6ea6653978fc4add1015dbd5d7dd8f2a/href">https://medium.com/media/6ea6653978fc4add1015dbd5d7dd8f2a/href</a></iframe><p>Lo primero de todo: ¿cuál es el problema que vas a resolver con tu proyecto o proceso tecnológico? Hay que tenerlo claro, porque es lo que apunta a la médula, a las neuronas de quién va a recibir esta explicación. Si no resuelves un problema, entonces repasa lo que quieres explicar.</p><p>La parte emocional juega un factor fundamental: ¿quién es el interlocutor? ¿es técnico o no lo es? Y sobre todo, algo que va a interactuar directamente con sus gustos: ¿disfruta de la tecnología o lo considera un mal por el que hay que pasar? Fíjate en sus usos y costumbres para tenerlo más claro.</p><h3>Trucos y consejos para explicar proyectos tecnológicos</h3><p>Los puedes escuchar con más detalle en el podcast, pero estos son algunos</p><ul><li>Divide el proyecto o el proceso en partes más pequeñas</li><li>Utiliza el storytelling: a la gente le encanta que le cuenten historias</li><li>User journey o “viaje de usuario”: es un método que he probado poco, pero que tiene mucha relación con contar historias, os dejo un enlace interesante sobre este tema de <a href="https://blog.interactius.com/metodolog%C3%ADas-de-ux-user-journey-map-c38da9046160">Interactius</a>.</li><li>Historias de usuario: aunque son de más bajo nivel, son las partes de un proceso.</li><li>Comparaciones y metáforas: útiles, pero sólo de forma puntual.</li><li>Dibuja, aunque no se te de bien, para trasmitir ideas</li><li>Apóyate en gráficos, wireframes…</li><li>Si grabas en vídeo parte de la explicación o te apoyas en ello ganarás la posibilidad de que puedan volver a verlo cuando quieras.</li><li>¿Por qué no un podcast? Víctor Correal así lo hizo en el suyo, <a href="https://www.ivoox.com/podcast-no-es-asunto-vuestro_sq_f1270293_1.html">No es asunto vuestro</a>, dónde documentó su proceso de creación de startup.</li></ul><p>Os dejo aquí una imagen que ilustra un <em>user journey</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/0*aGG65qr8zTK8WtoK.png" /></figure><p>Recuerda siempre no alargarte demasiado e intentar resumir o rescatar la información dada para que nadie se pierda.</p><p>¿Ideas, sugerencias, correcciones, nuevos proyectos…? <strong>Escríbeme</strong> a través del <a href="https://www.danielprimo.io/contacto?utm_source=blog&amp;utm_medium=inline_cta&amp;utm_campaign=entry-17">formulario de contacto</a>. ¡Siempre respondo!.</p><p>Si te gustó el podcast <strong>recomiéndalo</strong> donde quieras. Puedes seguirnos en twitter en <a href="http://twitter.com/webreactiva">@webreactiva </a>o ver mis tutoriales en el <a href="http://danielprimo.io/youtube">canal de youtube</a>.</p><p><em>Originally published at </em><a href="https://www.danielprimo.io/blog/como-explicar-proyectos-tecnologicos-a-tu-jefe-o-cliente"><em>www.danielprimo.io</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5aa96de01fed" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Elogio a una oficina sin papel y a la servilleta de bar]]></title>
            <link>https://medium.com/@delineas/elogio-a-una-oficina-sin-papel-y-a-la-servilleta-de-bar-cd7545551cde?source=rss-65f6b81f26f------2</link>
            <guid isPermaLink="false">https://medium.com/p/cd7545551cde</guid>
            <category><![CDATA[lifestyle]]></category>
            <category><![CDATA[spanish]]></category>
            <category><![CDATA[ecologia]]></category>
            <dc:creator><![CDATA[Daniel Primo]]></dc:creator>
            <pubDate>Mon, 21 Mar 2016 16:34:07 GMT</pubDate>
            <atom:updated>2016-03-21T17:12:29.195Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*oVRi6MFhZYYsi2lwIyu__g.jpeg" /></figure><p>Hace unos años la impresora de casa empezó a imprimir con unas marcas blancas a lo largo del folio. Al principio eran estrechas, casi un detalle, pero luego se convirtieron en un borrón más grande y las impresiones se volvieron ilegibles. Revisando el manual del aparato el diagnóstico estaba claro, era necesario cambiar el tóner.</p><p>Ese hecho nunca se produjo. Una combinación de factores mundanos, y probablemente estelares, hacía que nunca hubiera oportunidad de renovarlo: otro asunto más importante, la tienda cerrada, internet va lento, el perro se come los apuntes…</p><p>Pasaron semanas e incluso varios meses y un día, al abrir el cuaderno de notas (el de anillas de toda la vida) tu vida hace <em>click</em> y descubres uno de sus secretos: <strong>no te hace falta imprimir todo, para sobrevivir basta tan sólo con dibujar y escribir.</strong></p><p>No he gastado en una impresora por una cuestión de racanería, a fin de cuentas es un producto de <em>hardware</em> muy asequible, sino simplemente de falta de necesidad. Si en algún momento lo necesito, bajo a la fotocopiadora de José y muy gentilmente consigo dos cosas: mi impresión y una buena charla.</p><p>Lejos quedaba la etapa de estudiante, cuando uno amanecía y se acostaba <strong>enterrado entre apuntes</strong>, fotocopias de los compañeros que eran más aplicados y <em>trasparencias</em> que los profesores repartían. Casi sin quererlo, igual que aparecieron las redes sociales, una mayoría adaptó las nuevas tecnologías y pasamos del papel a la pantalla.</p><p>Pero algunos se resistían y pensando en que lo publicado en internet podría borrarse en cualquier momento, imprimían todo en papel a modo de copia de seguridad, de <em>backup</em> de tareas, manuales o pensamientos.</p><p>Es cierto que cualquiera no puede permitirse este lujo de no posar en el papel su trabajo o sus quehaceres diarios. Pero los que si tenemos esa fortuna deberíamos comprometernos con esta tarea de conservación. A fin de cuentas unos dicen que <strong>50 kilos de papel salvan un árbol</strong>, otros que 75, el caso es sumar.</p><p>Pero no nos quedemos en la ecología, sino también en la <strong>libertad</strong>. El papel es el elemento más básico para plasmar ideas, conceptos y proyectos con la ayuda de un bolígrafo. <strong>Alejémonos por un momento de esta pantalla</strong> y volvamos a tomarnos la <strong>libertad de escribir sin renglones</strong>, sin tipos de letras, de dibujar sin necesidad de utilizar las autoformas de flechas, de recortar papel, de arrancar hojas, doblarlas, tirarlas a la basura.</p><p>Lo reconozco, yo también tengo una moleskine pensando que en ella todas hojas que paso están repletas de trabajo bien hecho, de grandes proyectos. Y utilizo post-it en un tablón para refozar conceptos y hasta pensé en comprarme una pizarra de las de toda la vida para ser un tío molón.</p><p>Pero al final descubrí que <strong>no hay mejor idea que la apuntada en una servilleta de un bar</strong>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=cd7545551cde" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>