<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Spencer Sharp</title>
        <link>https://nicovega.dev</link>
        <description>Your blog description</description>
        <lastBuildDate>Sat, 28 Mar 2026 15:54:36 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>Spencer Sharp</title>
            <url>https://nicovega.dev/favicon.ico</url>
            <link>https://nicovega.dev</link>
        </image>
        <copyright>All rights reserved 2026</copyright>
        <item>
            <title><![CDATA[¿Qué pasa por la mente de un computín cuando le proponen ser CTO de una startup?]]></title>
            <link>https://nicovega.dev/articles/que-pasa-por-la-mente-de-un-computin-cuando-le-proponen-ser-CTO-de-una-startup</link>
            <guid>https://nicovega.dev/articles/que-pasa-por-la-mente-de-un-computin-cuando-le-proponen-ser-CTO-de-una-startup</guid>
            <pubDate>Wed, 22 Jun 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Hoy en día se habla mucho de la escasez de computines, situación que efectivamente se da en empresas gigantes y en startups pequeñas.]]></description>
            <content:encoded><![CDATA[<p>Hoy en día se habla mucho de la escasez de computines, situación que efectivamente se da en empresas gigantes y en startups pequeñas.</p>
<p>Pero también es frecuente que las personas técnicas reciban propuestas de personas con background no técnico para fundar una startup como CTO.</p>
<p>Probablemente si eres computín lo has vivido, o lo vivirás, así que tienes que estar preparado por si te decides a emprender algún día.</p>
<p>Y en mi caso personal, siempre me provocó un poco de anticuerpos que me pitchearan el Uber de (inserte infinitos conceptos aquí) 😅.</p>
<p>Aprender a hacer las preguntas correctas fue clave para darme cuenta que en general esas personas llegaban con sólo una idea, y planeaban construir algo hermoso que sólo estaba en su cabeza, y luego salir a venderlo (🚩🚩🚩👀).</p>
<p>Me llegaron varias propuestas de amigos, jefes y gerentes de grandes empresas. Todos muy inteligentes. Pero ninguno logró convencerme de que eran los indicados.</p>
<ul>
<li>
<p>Ya, ¿y tienes clientes que te la compren?</p>
</li>
<li>
<p>No, porque cuando tenga la app completa se darán cuenta que…</p>
</li>
<li>
<p>Ya, ¿y si tratas de venderlo sin tener la app?</p>
</li>
</ul>
<p><img src="https://media.giphy.com/media/1oJLpejP9jEvWQlZj4/giphy.gif" alt="Alt Text"/></p>
<h2>⚠️ Se busca un CTO ⚠️</h2>
<p>Érase diciembre del 2020, y por cosas de la vida llegué a trabajar a una fintech que vi crecer desde 30 personas, a 400 al momento de mi renuncia. Vi con mis propios ojos cómo una startup exitosa se armó desde sus comienzos.</p>
<p>Vi y participé proactivamente de ese crecimiento, y luego de un año y medio desarrollando productos digitales, me empezó a entrar el bichito del emprendimiento nuevamente…</p>
<p>En ese entonces, también trabajaba como freelancer esporádicamente. Era entretenido, asumía desafíos súper particulares y tenía que lidiar con clientes muy difíciles (por no decir otra palabra 👀).</p>
<p>Un día un amigo no técnico de la universidad me pidió ayuda con una tarea que le dieron en su práctica. Estaba trabajando en la empresa logística más grande de Chile y necesitaban hacer un scrapper. Yo había hecho varios proyectos just for fun sobre eso, entonces nos juntamos y salió en un par de horas.</p>
<p>Todo bien, le comenté a mi amigo que le dijera a su jefe que para la próxima me contratan como consultor externo para ganarme unas pesetas🤷‍♂.️</p>
<p>Pasaron dos meses aproximadamente hasta que me llegó un WhatsApp del jefe de mi amigo, Diego. Yo pensé: “buena! Ahora sí seré freelancer para un cliente connotado, pal’ CV 🔥”.</p>
<p>Me acuerdo que en esa conversación de WhatsApp no hablamos mucho. Supuse que me querían contratar porque me contó mi amigo que habían contratado a una empresa externa para hacer el scrapper. Les pagaron una cantidad de plata considerable y no pudieron hacerlo. Acordamos un meet para conocernos con Diego.</p>
<p>Nos juntamos por meet, me habló de muchos problemas de la industria, su visión, hacia dónde iba y muchos conceptos que no cachaba tanto la verdad… ¿logística? yo ni pedo sabía tanto. Pero independiente de eso varias cosas me llamaron la atención: era muy bueno para vender y además tenía un background técnico, se dedicaba al área comercial y en su tiempo libre enseñaba programación básica en colegios.</p>
<p>Es raro encontrar un TI y que sea extraordinario vendiendo, lo que me dejó pensativo. Finalmente, Diego cerró comentando que tenía una idea, la tenía funcionando en la calle con otro socio hace unos meses, ese socio estaba dedicando al 100% y había renunciado a su pega para eso (wow!, pensé).</p>
<p>Le dije que lo pensaría y que tuviéramos otra reunión para conversar más en detalle de la idea.</p>
<p>Hice la pega. Vine con preguntas preparadas con mucho más conocimiento de la industria que antes: tamaño de mercado, ¿cómo pretendes hacer $?, ¿quién es tu cliente?, ¿cómo sabes que es un problema?, ¿por qué esto necesita tecnología? y un millón de preguntas que quise hacer esta vez. Eso me daría una visión más completa en qué parada estaban.</p>
<p>No me surgió ningún red flag, tampoco esperaba que tuvieran todo resuelto, eso sería extraño. Seguimos avanzando, ahora conocería a José, su socio. Nos reunimos por meet, nos presentaron y me contó su historia. Ahí fue cuando salí convencido de que podíamos ser un equipazo.</p>
<p>José me contó cómo se tiró el verdadero piscinazo del emprendedor sin importar si había agua o no. Renunció a su pega después de estar dos años en el banco para emprender, ¿en qué? no sabía, ¿cómo? con convicción y humildad.</p>
<p>Con Diego querían construir una empresa logística, en ese entonces con otro nombre, pero ahondar en eso da para otra historia 😜.</p>
<p>Jose se inscribió en más de 20 plataformas de delivery y logística, desde entregar paquetes para Chilexpress 📦 hasta hacerlas de Rappi y Uber 🛵. Las hizo todas para conocer cómo es la cosa en la calle. Era admirable.</p>
<p>Ahora estaba actualmente a cargo de hacer andar la idea: se levantaba todos los días a las 5 am, iba a la periferia de la ciudad, se traía paquetes de los centros de distribución y coordinaba gente que para los fuera a entregar.</p>
<p>Todo lo contaba con una humildad tremenda, que realmente me sorprendió.</p>
<p>Terminamos la reunión y todo pintaba para bien, decidimos juntarnos a conocernos en persona.</p>
<p>Nos juntamos en el Hard Rock Cafe del Costanera Center, hablamos de un millón de temas de startups, se habían juntado con muchos expertos y founders. Estaban avanzando. Saliendo de esa junta, no teníamos duda: nos íbamos a caer bien, había alguien con un tremendo corazón y garra, un vendedor extraordinario, sólo faltaba alguien para crear el producto. Ya teníamos un equipo que la podía romper.</p>
<p><img src="https://media.giphy.com/media/3og0IG0vkIQpuJoLvO/giphy.gif" alt="Alt Text"/></p>
<p>Buscar tus co-founders no tiene por qué ser forzado, ni apresurado. Es estar preparado para emprender, hacer las preguntas correctas y admirar a las personas con las que trabajarás. Pero también son elementos emocionales que te hacen arriesgar lo que tienes por cumplir una visión.</p>]]></content:encoded>
            <author>spencer@planetaria.tech (Spencer Sharp)</author>
        </item>
        <item>
            <title><![CDATA[Cómo el Metaverso me hizo reencontrarme con el Nicolás de 10 años]]></title>
            <link>https://nicovega.dev/articles/como-el-metaverso-me-hizo-reencontrarme-con-el-nicolas-de-10-aos</link>
            <guid>https://nicovega.dev/articles/como-el-metaverso-me-hizo-reencontrarme-con-el-nicolas-de-10-aos</guid>
            <pubDate>Sat, 29 Jan 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Cuando tenía 10 años pasaba mucho tiempo en el computador, tanto como ahora, pero con otro propósito: jugar.]]></description>
            <content:encoded><![CDATA[<p>Cuando tenía 10 años pasaba mucho tiempo en el computador, tanto como ahora, pero con otro propósito: jugar.</p>
<p>En esos tiempos lo que más jugaba era Habbo Hotel. Para los que no conocen Habbo Hotel, es un hotel virtual donde tienes un avatar y salas de chat donde puedes interactuar con los avatars de otros usuarios. Además, también puedes comprar cosas dentro del juego: sofás, plantas, televisores, alfombras, bailes, peinados, entre otros. Obviamente, todas esas cosas las tenías que pagar con dinero real.</p>
<p><img src="https://miro.medium.com/max/4800/1*-FTMi8pRmPWyFKiwic42hg.webp" alt="Alt Text"/></p>
<p>En ese entonces no creía que valiera la pena invertir dinero en el juego, pensaba que no tenía “valor” porque no era físico, por ende, nunca pedí a mis papás dinero para meterle al juego.</p>
<p>Gastaba muchas horas jugando y sinceramente si no tenías cosas dentro del juego, Habbo Hotel era bastante aburrido (pero adictivo). Por otra parte, veía que otros usuarios tenían miles de cosas y mi mente pensaba: “cómo hay gente que gasta tanto dinero en el juego… mmmmm bueno, yo también quiero tener algo para jugar 🤔”. Me tenía que buscar otra manera.</p>
<p><img src="https://miro.medium.com/max/4800/1*Q9rtJ4Cj5iJtqkOJylSSGQ.webp" alt="Alt Text"/></p>
<p>Todo cambió cuando un día googlié “foros habbo hotel” y me encontré con un foro de retros. Se preguntarán qué #&amp;%$@%! es un retro.</p>
<p>En el mundillo de Habbo Hotel, los retros eran copias idénticas del juego donde el dueño o administrador eras tú, y además, tenías dinero infinito! Tremendo descubrimiento 🤑.</p>
<p>Convenientemente, habían tutoriales dentro del foro que te enseñaban cómo hacer tu propio retro. Ese fue el momento donde tuve mi primer acercamiento a la programación (sin saberlo).</p>
<p>El tutorial era básico. Tenías que crear una página web simple, pegabas un código HTML (que en esos días no tenía la menor idea qué significaba) y cambiabas un par de variables. En resumen, seguí el tutorial y en 15 minutos ya tenía mi propio hotel y más dinero que el mismísimo Connor McGregor.</p>
<p>Lo mejor vino después, cuando me di cuenta que existía un mercado donde personas se dedicaban a hacer retros para otras personas a cambio de cosas reales en el juego, sí el mismo juego donde no tenía nada.</p>
<p>Dije: “ésta es la mía🧑🏻‍💻!”, y empecé a promocionar mis servicios como freelancer a los 10 años coordinando con mis clientes por messenger (el chat de los zumbidos).</p>
<p><img src="https://media.giphy.com/media/C472HbXY8FO9i/giphy.gif" alt="Alt Text"/></p>
<p>Lo hice por dos años y acumulé una buena fortuna virtual que pude disfrutar por un largo tiempo.</p>
<p><img src="https://miro.medium.com/max/4800/1*ttWZkKARcGqoTQOXrSZplg.webp" alt="Alt Text"/></p>
<p>Esto fue hace más de 14 años, y por mucho tiempo tuve ahí mi avatar acumulando polvo. Sin embargo, hace unas semanas un video me hizo conectar dos puntos y momentos de mi vida muy lejanos.</p>
<p>Soy un gran apasionado del mundo crypto y pienso que la tecnología de Blockchain será algo que revolucionará (para bien) nuestras vidas en formas que aún no podemos dimensionar. Ese convencimiento y la volatilidad asociada me hace estar muy informado ya sea viendo precios, videos o leyendo. La industria se mueve muy rápido!</p>
<p>Bueno, como dije antes, hace unas semanas estaba viendo un video de uno de mis youtubers favoritos (ojo con los que te vende humo en redes sociales), que analizaba el reporte de Messari sobre las próximas tendencias en crypto para el 2022.</p>
<p>El reporte señalaba (en forma hiper resumida) que este año serían full tendencia los NFTs. Los NFTs se le conocen a los non-fungible-tokens, que es código en la blockchain que representa un activo digital único.</p>
<p>Estos NFTs también poseen metadata única que funciona como un certificado de autenticidad, es decir, sabes con seguridad que ese NFT es el “original” y no una copia. Y en la práctica un NFT puede representar una obra de arte, una imagen, una canción, una membresía u otros usos que le pueden dar “valor”.</p>
<p>El reporte de Messari concluía que en el largo plazo la mayoría de las colecciones de NFTs no lograrían generar valor real a su comunidad, y por lo tanto, no sobrevivirían. No obstante, lo que sí crecerían serían las blockchains que dan la infraestructura para los NFTs (not financial advice 👀❌).</p>
<p>Inmediatamente después de ver ese video y desobedeciendo la tesis de Messari, me puse a buzzear en OpenSea, un marketplace de NFTs, para ver si algo me parecía una buena oportunidad de inversión.</p>
<p>Navegando me topé con esto:</p>
<p><img src="https://miro.medium.com/max/4800/1*7ZvE0XWjEeGjz42F-yXiHw.webp" alt="Alt Text"/></p>
<p>Sulake, la empresa creadora de Habbo Hotel, tenía un colección de NFTs que se integraba al juego real!</p>
<p>Con esta integración se me pasaron muchas escenarios por la mente, en particular aquellos donde podría aprovechar todos los beneficios que tiene un metaverso (un juego que imita la realidad) montado en una blockchain, como por ejemplo:</p>
<p>Ganar créditos (in-game tokens) dentro del juego que luego podría canjear por pesos chilenos. Ganar intereses sobre las cosas que tengo en el juego en forma de créditos o NFTs. Poseer y vender mi avatar que tiene un cierto nivel y antiguedad.</p>
<p>Y en particular, podría llegar a vender todas las cosas que tengo en el juego por cryptomonedas, desde los sofás más comunes hasta aquellos trofeos de edición limitada. Es decir, eventualmente podría monetizar todo el tiempo que había invertido desde los 10 hasta los 14 años, lo que encuentro una locura!</p>
<p>La industria gaming está proyectada para crecer a doble dígito durante los próximos años. Y al día de hoy está atrayendo colaboraciones con artistas de talla mundial. Ya lo hemos visto en Fortnite con Travis Scott que en un sólo evento (que no fue en vivo) generó 20 millones de dólares, una suma considerable si se toma en cuenta que en su gira Astroworld Tour durante todo 2019 generó 55 millones de dólares.</p>
<p>A Travis Scott se le suman Justin Bieber, Ariana Grande y Post Malone. De la misma forma, ya estamos viendo un fenómeno similar en crypto con la colaboración con Snoop Dog en el metaverso de SandBox.</p>
<p><img src="https://miro.medium.com/max/4800/1*kF7Fghq0N6YnUSbdi7nhVw.webp" alt="Alt Text"/></p>
<p>Ciertamente a la industria gaming aún le queda mucho por explotar en este sentido, y no me sorprendería que fuera la próxima gran cosa del 2022.</p>
<p>Las posibilidades y beneficios para la industria gaming de usar la tecnología blockchain son muchas y las compañías ya están explorando cómo esto les puede beneficiar, siendo Habbo un ejemplo de esto.</p>
<p>Lamentablemente (para mí) hasta el momento Habbo Hotel esta conectado parcialmente a la blockchain, puedes comprar skins o uno que otro sofá especial. Pero no está completamente sincronizado con los activos que ya existen en el juego lo que no me permite al menos monetizar, por lo tanto, mi cuenta seguirá ahí juntando más polvo.</p>
<p>No queda mucho para mirar con otros ojos el “Cryptogaming” y las economías que pueden generan. Tampoco estamos lejos de que un niño de 10 años tenga la posibilidad entretenerse y generar ingresos mientras juega. Y menos loco sería pensar en muchas más personas dedicando su vida a jugar en los próximos años.</p>]]></content:encoded>
            <author>spencer@planetaria.tech (Spencer Sharp)</author>
        </item>
        <item>
            <title><![CDATA[Automatiza y Controla la Rentabilidad de tus Cryptomonedas con Google Script]]></title>
            <link>https://nicovega.dev/articles/automatiza-y-controla-la-rentabilidad-de-tus-cryptomonedas-con-google-script</link>
            <guid>https://nicovega.dev/articles/automatiza-y-controla-la-rentabilidad-de-tus-cryptomonedas-con-google-script</guid>
            <pubDate>Mon, 03 May 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[Si eres de los que siempre tienen andan calculando cuanto rentabilizan sus cryptomonedas o tu cartera (el conjunto de monedas) como yo, creo que esta solución te servirá.]]></description>
            <content:encoded><![CDATA[<p>Si eres de los que siempre tienen andan calculando cuanto rentabilizan sus cryptomonedas o tu cartera (el conjunto de monedas) como yo, creo que esta solución te servirá.</p>
<p>Básicamente, me he visto en la necesidad de saber cuánto dinero estoy metiendo en crypto y cómo me ha ido rentando en todo este tiempo que he mantenido mi posición.</p>
<p>En este artículo veremos cómo consultar el valor de nuestras cryptomonedas automáticamente cada 5 minutos. Usaremos Google Script para conectarnos a la API de CoinmarketCap que nos dará el valor actual de nuestras monedas, y estos valores serán enviados a un spreadsheet en Google Sheet.</p>
<h2>1. API</h2>
<p>Primero, debemos saber dónde consultar los valores de nuestras crypto. Muchas plataformas de compra y venta de crypto ofrecen servicios programáticos como las APIs para automatizar tareas relacionadas con las cryptomonedas.</p>
<p>En este caso, nosotros usaremos CoinmarketCap, y en particular accederemos a su API, por ende, nos crearemos una cuenta aquí. Luego de activar nuestra cuenta, e ingresar a la plataforma veremos este dashboard:</p>
<p><img src="https://miro.medium.com/max/4800/1*E9j1FjrC84gieGAGeNRpIQ.webp" alt="Alt Text"/></p>
<p>A la izquierda del dashboard tenemos el API Key, que será nuestra llave asociado a nuestro usuario que nos permitirá (i) acceder al servicio y consultar y (ii) monitorear la cantidad de request que estamos haciendo al servicio.</p>
<p>Para esta ocasión usaremos la capa gratuita del servicio que al día de hoy nos permite hacer 333 requests diarios al servicio, es decir, podremos consultar nuestras monedas cada 5 minutos.</p>
<p>Ahora cuando nuestra API Key creada, procedemos a crear el script en Google Script y el Google Sheet para consultar y guardar respectivamente.</p>
<h2>2. Google Sheet y Script</h2>
<p>El primero paso será crear un spreadsheet de la siguiente manera:</p>
<p><img src="https://miro.medium.com/max/4800/1*kSxlkbpp4RhoQ6jWi1gxaQ.webp" alt="Alt Text"/></p>
<p>Digamos que compramos en Buda.com un mix de las cuatro cryptomonedas que nos ofrecen, para este ejemplo simularemos que compramos: $430.000 CLP en Bitcoin, $750.000 CLP en Ethereum, $170.000 CLP en Bitcoin Cash y $50.000 en Litecoin. Eso nos otorga una cantidad de cada moneda que se refleja en la columna “B”. Ambos montos (columna “B” y “C”) los puedes sacar directamente desde Buda.com o la plataforma que estés usando para comprar cryptomonedas.</p>
<p>Luego, vamos a crear una segunda hoja para hacer el seguimiento de los valores a través del tiempo. Haremos la segunda hoja con las siguientes columnas:</p>
<p><img src="https://miro.medium.com/max/4800/1*JqtIAMRhsaxGC4_2RtPHTg.webp" alt="Alt Text"/></p>
<p>Ahora que tenemos nuestra cantidad de monedas y el precio de compra vamos a programar en Google Script. Vamos a “editor de secuencias de comandos” en la sección Herramientas. Eso creará un script asociado a nuestro spreadsheet.</p>
<p><img src="https://miro.medium.com/max/4800/1*qBgbSfUvk-pI-bDM1aBIkQ.webp" alt="Alt Text"/></p>
<p>Vamos a crear una función llamada getCryptoValues que tomará los códigos de nuestras monedas (BTC, ETH, BCH, LTC) para generar el request a la API según su documentación.</p>
<pre><code class="language-js">/*Ahora comenzaremos a programar la función que traerá lo valores */
function getCryptoValues() {
/* Referenciamos nuestro archivo asociado */
var spreadsheet = SpreadsheetApp.getActive()
/* Referenciamos la hoja en la que trabajaremos */
var sheet = spreadsheet.getSheetByName(&#x27;AQUI VA EL NOMBRE DE LA HOJA 1&#x27;)
/* Luego vamos a obtener el código de nuestras monedas */
var coins = sheet.getRange(&#x27;A2:A&#x27;).getValues();
var coins = coins.filter(function (row) {
  return row[0] != &#x27;&#x27; ;});
}
</code></pre>
<p>Según la documentación de CoinMarketCap, para consultar los valores de estas cryptomonedas debemos usar el endpoint:</p>
<p>https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest?symbol=BTC,ETH,BCH,LTC&amp;convert=CLP</p>
<p>Por ende, debemos primero definir la moneda a la que queremos evaluarla, en este caso CLP (como en el ejemplo), pero podría ser MX, USD u otra. Luego, se debe definir las cryptomonedas a consultar en este caso: BTC,ETH,BCH,LTC.</p>
<p>Para realizar esto, debemos agregar el siguiente código dentro de la función y abajo del código señalado anteriormente:</p>
<pre><code class="language-js">/* Dentro de la función y abajo del código anterior */
var fiat = &#x27;CLP&#x27; //Se define la moneda
var coins_text = &#x27;&#x27;
/* Generamos el string &quot;BTC,ETH,BCH,LTC&quot; a partir de los datos de nuestra hoja */
for (var j = 0; j &lt; coins.length; j++){
  coins_text += coins[j]
  if (j != coins.length - 1) {coins_text += &#x27;,&#x27;}
}
</code></pre>
<p>Ahora tenemos el string para consultar y la moneda, vale decir, ya podemos consultar la API de CoinMarketCap:</p>
<pre><code class="language-js">/* Dentro de la función y abajo del código anterior */
var options = {
headers: { &#x27;X-CMC_PRO_API_KEY&#x27;: &#x27;AQUI VA EL API TOKEN DEL PASO 1&#x27; }
}
var url = `https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest?symbol=${coins_text}&amp;convert=${fiat}`
var response = UrlFetchApp.fetch(url, options);
/* Aquí parseamos la data que nos envía la API */
var res = JSON.parse(response);
</code></pre>
<p>Ahora que tenemos la respuesta de la API, que a partir de su documentación sabemos su estructura para sacar los datos relevantes, en este caso rescataremos: los valores de cada moneda en CLP, y el timestamp.</p>
<pre><code class="language-js">/* Dentro de la función y abajo del código anterior */
var timestamp = res.status.timestamp
var rows = [[timestamp]]

for (var i = 0; i &lt; coins.length; i++){
  var coin = coins[i]
  var clp_price = res.data[coin].quote.CLP.price
  var pos = i + 2
  sheet.getRange(&#x27;D&#x27;+ pos).setValue(clp_price);
  sheet.getRange(&#x27;E&#x27;+ pos).setValue(&#x27;=D&#x27;+pos+&#x27;*B&#x27;+pos);
  sheet.getRange(&#x27;F&#x27;+ pos).setValue(&#x27;=E&#x27;+pos+&#x27;-C&#x27;+pos);
  sheet.getRange(&#x27;G&#x27;+ pos).setValue(&#x27;=F&#x27;+pos+&#x27;/C&#x27;+pos);
  rows[0].push(clp_price)
}
</code></pre>
<p>Si ejecutamos el código que llevamos hasta ahora deberíamos tener algo así:</p>
<p><img src="https://miro.medium.com/max/4800/1*T1eK1IN9P__D1UouyIcCAg.webp" alt="Alt Text"/></p>
<p>Finalmente, queremos generar guardar cada respuesta de la API para ver cómo estos valores van variando en el tiempo:</p>
<pre><code class="language-js">/* Dentro de la función y abajo del código anterior */
var sheetHistorical = spreadsheet.getSheetByName(&#x27;AQUI VA EL NOMBRE DE LA HOJA 2&#x27;)
var lastRow = sheetHistorical.getLastRow()
var nextRow = lastRow + 1
rows[0].push(&#x27;&#x27;)
rows[0].push(&#x27;=NOMBRE HOJA 1!$B$2*B&#x27;+nextRow)
rows[0].push(&#x27;=NOMBRE HOJA 1!$B$3*C&#x27;+nextRow)
rows[0].push(&#x27;=NOMBRE HOJA 1!$B$4*D&#x27;+nextRow)
rows[0].push(&#x27;=NOMBRE HOJA 1!$B$5*E&#x27;+nextRow)
rows[0].push(&#x27;=G&#x27;+nextRow+&#x27;+H&#x27;+nextRow+&#x27;+I&#x27;+nextRow+&#x27;+J&#x27;+nextRow)
rows[0].push(&#x27;&#x27;)
rows[0].push(&#x27;=NOMBRE HOJA 1!$K$2&#x27;)
rows[0].push(&#x27;=(K&#x27;+nextRow+&#x27;-M&#x27;+nextRow+&#x27;)/M&#x27;+nextRow)
if (rows.length){
  sheetHistorical.getRange(lastRow + 1, 1, rows.length, rows[0].length).setValues(rows);
  SpreadsheetApp.flush();
}
</code></pre>
<p>Al ejecutar la función nos debería quedar algo así:</p>
<p><img src="https://miro.medium.com/max/4800/1*DmePFKn2YKDLzLEvdbLFxg.webp" alt="Alt Text"/></p>
<h2>3. Triggers</h2>
<p>Hasta este momento ya tenemos toda la información que necesitamos, pero falta que esta función getCryptoValues se ejecute automáticamente cada cierto tiempo. Para ello nos apoyamos en los triggers de Google Script. Vamos al menú de App script, en “Activadores”.</p>
<p><img src="https://miro.medium.com/max/4800/1*O2fesBp4nQNCYCVih6nYQA.webp" alt="Alt Text"/></p>
<p>Luego, vamos a crear un activador de tiempo (cada 5 minutos) para nuestra función de la siguiente manera:</p>
<p><img src="https://miro.medium.com/max/4800/1*OV0nFF_M2gUDZ1I1HVrWEA.webp" alt="Alt Text"/></p>
<p>Y eso es todo! Ahora debes esperar a que se ejecute y tus hojas se vayan poblando con información. Finalmente, cuando ya tengas datos después de un tiempo, puedes realizar los gráficos que sientas necesarios, como por ejemplo este:</p>
<p><img src="https://miro.medium.com/max/4800/1*SKoUbOZxmsBXoOiS43npkg.webp" alt="Alt Text"/></p>
<h2>Código completo</h2>
<p>Recuerda reemplazar los valores (en negrita), y seguir el formato del spreadsheet</p>
<pre><code class="language-js">function getCryptoValues() {

var spreadsheet = SpreadsheetApp.getActive()
var sheet = spreadsheet.getSheetByName(&#x27;AQUI VA EL NOMBRE DE LA HOJA 1&#x27;)
var coins = sheet.getRange(&#x27;A2:A&#x27;).getValues();
var coins = coins.filter(function (row) { return row[0] != &#x27;&#x27; ; });

var fiat = &#x27;CLP&#x27; //Se define la moneda
var coins_text = &#x27;&#x27;

for (var j = 0; j &lt; coins.length; j++){
  coins_text += coins[j]
  if (j != coins.length - 1) {coins_text += &#x27;,&#x27;}
}

var options = {
headers: { &#x27;X-CMC_PRO_API_KEY&#x27;: &#x27;INSERTA TU API KEY AQUÍ&#x27; }
}

var url = `https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest?symbol=${coins_text}&amp;convert=${fiat}`
var response = UrlFetchApp.fetch(url, options);

var res = JSON.parse(response);
var timestamp = res.status.timestamp
var rows = [[timestamp]]
for (var i = 0; i &lt; coins.length; i++){
  var coin = coins[i]
  var clp_price = res.data[coin].quote.CLP.price
  var pos = i + 2
  sheet.getRange(&#x27;D&#x27;+ pos).setValue(clp_price);
  sheet.getRange(&#x27;E&#x27;+ pos).setValue(&#x27;=D&#x27;+pos+&#x27;*B&#x27;+pos);
  sheet.getRange(&#x27;F&#x27;+ pos).setValue(&#x27;=E&#x27;+pos+&#x27;-C&#x27;+pos);
  sheet.getRange(&#x27;G&#x27;+ pos).setValue(&#x27;=F&#x27;+pos+&#x27;/C&#x27;+pos);
  rows[0].push(clp_price)
}

var sheetHistorical = spreadsheet.getSheetByName(&#x27;AQUI VA EL NOMBRE DE LA HOJA 2&#x27;)
var lastRow = sheetHistorical.getLastRow()
var nextRow = lastRow + 1
rows[0].push(&#x27;&#x27;)
rows[0].push(&#x27;=NOMBRE HOJA 1!$B$2*B&#x27;+nextRow)
rows[0].push(&#x27;=NOMBRE HOJA 1!$B$3*C&#x27;+nextRow)
rows[0].push(&#x27;=NOMBRE HOJA 1!$B$4*D&#x27;+nextRow)
rows[0].push(&#x27;=NOMBRE HOJA 1!$B$5*E&#x27;+nextRow)
rows[0].push(&#x27;=G&#x27;+nextRow+&#x27;+H&#x27;+nextRow+&#x27;+I&#x27;+nextRow+&#x27;+J&#x27;+nextRow)
rows[0].push(&#x27;&#x27;)
rows[0].push(&#x27;=NOMBRE HOJA 1!$K$2&#x27;)
rows[0].push(&#x27;=(K&#x27;+nextRow+&#x27;-M&#x27;+nextRow+&#x27;)/M&#x27;+nextRow)
if (rows.length){
  sheetHistorical.getRange(lastRow + 1, 1, rows.length, rows[0].length).setValues(rows);
  SpreadsheetApp.flush();
}

}
</code></pre>]]></content:encoded>
            <author>spencer@planetaria.tech (Spencer Sharp)</author>
        </item>
    </channel>
</rss>