<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Wilson Tovar</title>
    <description>The latest articles on Forem by Wilson Tovar (@krthr).</description>
    <link>https://forem.com/krthr</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F27836%2F10b093ab-f3e2-4064-986d-baac6390b99b.jpg</url>
      <title>Forem: Wilson Tovar</title>
      <link>https://forem.com/krthr</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/krthr"/>
    <language>en</language>
    <item>
      <title>Learning about Deno building Gusano 🐍</title>
      <dc:creator>Wilson Tovar</dc:creator>
      <pubDate>Mon, 18 May 2020 14:49:25 +0000</pubDate>
      <link>https://forem.com/krthr/learning-about-deno-building-gusano-1f3k</link>
      <guid>https://forem.com/krthr/learning-about-deno-building-gusano-1f3k</guid>
      <description>&lt;p&gt;A few days ago I started to follow Deno more closely. Although I have more than 3 years of experience in Node JS the proposals that Deno makes seem very interesting to me.&lt;/p&gt;

&lt;p&gt;So, a couple of days ago I decided to try it out 🤷.  So I made a little library called "Gusano" (Worm) that allows you to create simple pipelines. &lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9-wwsHG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/krthr"&gt;
        krthr
      &lt;/a&gt; / &lt;a href="https://github.com/krthr/gusano"&gt;
        gusano
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A minimal workflows lib for Deno 🦖
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Gusano 🐍&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;A minimal workflows lib for Deno 🦖&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;&lt;a href="https://deno.land/x/gusano" rel="nofollow"&gt;API&lt;/a&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Simple example&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="highlight highlight-source-ts notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-k"&gt;import&lt;/span&gt; &lt;span class="pl-kos"&gt;{&lt;/span&gt; &lt;span class="pl-smi"&gt;Block&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt; &lt;span class="pl-smi"&gt;Engine&lt;/span&gt; &lt;span class="pl-kos"&gt;}&lt;/span&gt; &lt;span class="pl-k"&gt;from&lt;/span&gt; &lt;span class="pl-s"&gt;'https://raw.githubusercontent.com/krthr/gusano/master/index.ts'&lt;/span&gt;

&lt;span class="pl-k"&gt;const&lt;/span&gt; &lt;span class="pl-s1"&gt;sum&lt;/span&gt; : &lt;span class="pl-smi"&gt;Block&lt;/span&gt; &lt;span class="pl-kos"&gt;{&lt;/span&gt;

    &lt;span class="pl-c1"&gt;id&lt;/span&gt;: &lt;span class="pl-s"&gt;'sum'&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt;
    &lt;span class="pl-c1"&gt;name&lt;/span&gt;: &lt;span class="pl-s"&gt;'Sum block'&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt;

    &lt;span class="pl-en"&gt;run&lt;/span&gt;: &lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s1"&gt;a&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt; &lt;span class="pl-s1"&gt;b&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt; &lt;span class="pl-c1"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="pl-smi"&gt;Number&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s1"&gt;a&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt; &lt;span class="pl-c1"&gt;+&lt;/span&gt; &lt;span class="pl-smi"&gt;Number&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s1"&gt;b&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt;

    &lt;span class="pl-c1"&gt;version&lt;/span&gt;: &lt;span class="pl-s"&gt;'0.1.0'&lt;/span&gt;

&lt;span class="pl-kos"&gt;}&lt;/span&gt;

&lt;span class="pl-k"&gt;const&lt;/span&gt; &lt;span class="pl-s1"&gt;engine&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-k"&gt;new&lt;/span&gt; &lt;span class="pl-smi"&gt;Engine&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-kos"&gt;{&lt;/span&gt; sum &lt;span class="pl-kos"&gt;}&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;

&lt;span class="pl-s1"&gt;engine&lt;/span&gt;&lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-en"&gt;on&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s"&gt;'end'&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt; &lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-kos"&gt;{&lt;/span&gt; result&lt;span class="pl-kos"&gt;,&lt;/span&gt; time &lt;span class="pl-kos"&gt;}&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt; &lt;span class="pl-c1"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="pl-kos"&gt;{&lt;/span&gt;
    &lt;span class="pl-smi"&gt;console&lt;/span&gt;&lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-en"&gt;log&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s1"&gt;result&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt; &lt;span class="pl-c"&gt;// [3]&lt;/span&gt;
    &lt;span class="pl-smi"&gt;console&lt;/span&gt;&lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-en"&gt;log&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s1"&gt;time&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;   &lt;span class="pl-c"&gt;// 2&lt;/span&gt;
&lt;span class="pl-kos"&gt;}&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;

&lt;span class="pl-s1"&gt;engine&lt;/span&gt;&lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-en"&gt;start&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s"&gt;'sum'&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt; &lt;span class="pl-c1"&gt;1&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt; &lt;span class="pl-c1"&gt;2&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;A more complex example / Prime generator&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-ts notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;/**&lt;/span&gt;
&lt;span class="pl-c"&gt; * This block generates `n + 1`.&lt;/span&gt;
&lt;span class="pl-c"&gt; */&lt;/span&gt;
&lt;span class="pl-k"&gt;export&lt;/span&gt; &lt;span class="pl-k"&gt;const&lt;/span&gt; &lt;span class="pl-s1"&gt;generator&lt;/span&gt;: &lt;span class="pl-smi"&gt;Block&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-kos"&gt;{&lt;/span&gt;
  &lt;span class="pl-c1"&gt;id&lt;/span&gt;: &lt;span class="pl-s"&gt;"generator"&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt;
  &lt;span class="pl-c1"&gt;name&lt;/span&gt;: &lt;span class="pl-s"&gt;"Generator Block"&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt;
  &lt;span class="pl-c1"&gt;version&lt;/span&gt;: &lt;span class="pl-s"&gt;"0.1.0"&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt;
  &lt;span class="pl-en"&gt;run&lt;/span&gt;: &lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s1"&gt;n&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt;&lt;/pre&gt;…
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/krthr/gusano"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;I want to share my entire learning journey with you in the future. &lt;/p&gt;

&lt;p&gt;PS: I also receive suggestions and PR's ;) hahaa&lt;/p&gt;

</description>
      <category>deno</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Memmo: Don't leave home without having it installed!</title>
      <dc:creator>Wilson Tovar</dc:creator>
      <pubDate>Sat, 04 Apr 2020 18:52:53 +0000</pubDate>
      <link>https://forem.com/krthr/memmo-don-t-leave-home-without-having-it-installed-2fjn</link>
      <guid>https://forem.com/krthr/memmo-don-t-leave-home-without-having-it-installed-2fjn</guid>
      <description>&lt;p&gt;Hello, everybody! We're Juan (&lt;a class="mentioned-user" href="https://dev.to/sjdonado"&gt;@sjdonado&lt;/a&gt;), Roberto and Wilson. We are  Systems and Computational Engineering students from Colombia.&lt;/p&gt;

&lt;p&gt;We are very excited to participate and create something that will help others.&lt;/p&gt;

&lt;p&gt;So, this is our first publication about #twiliohackathon. Every week we'll be posting 2 or 1 updates of the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We built
&lt;/h2&gt;

&lt;p&gt;We are building a mobile application called Memmo to generate alerts in case any user has been too close to a person who now has covid-19.&lt;/p&gt;

&lt;p&gt;We will collect the geolocation of each user (4am - 10pm). When new cases of COVID-19 are reported we will search for each new patient on our platform. If we find one, we will notify other users who have been within 2 meters of the patient in the last 14 days.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does it work?
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Demo Link
&lt;/h2&gt;

&lt;p&gt;Soon&lt;/p&gt;

&lt;h2&gt;
  
  
  Link to Code
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Backend: &lt;a href="https://github.com/sjdonado/memmo_back"&gt;https://github.com/sjdonado/memmo_back&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;App: &lt;a href="https://github.com/krthr/memmo_app"&gt;https://github.com/krthr/memmo_app&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How We built it (what's the stack? did we run into issues or discover something new along the way?)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Backend&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;NodeJS&lt;/li&gt;
&lt;li&gt;Firebase&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;

&lt;p&gt;App:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flutter&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Twilio =&amp;gt; SMS Auth, SMS Messages, Calls&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Additional Resources/Info
&lt;/h2&gt;

</description>
      <category>twiliohackathon</category>
      <category>covid19</category>
      <category>flutter</category>
      <category>node</category>
    </item>
    <item>
      <title>Haye.cr: Expressive string syntax to Array/Hash and Vice-Versa parser for Crystal. Based on the javascript version.</title>
      <dc:creator>Wilson Tovar</dc:creator>
      <pubDate>Thu, 12 Dec 2019 15:29:12 +0000</pubDate>
      <link>https://forem.com/krthr/haye-cr-expressive-string-syntax-to-array-hash-and-vice-versa-parser-for-crystal-based-on-the-javascript-version-3hn7</link>
      <guid>https://forem.com/krthr/haye-cr-expressive-string-syntax-to-array-hash-and-vice-versa-parser-for-crystal-based-on-the-javascript-version-3hn7</guid>
      <description>&lt;p&gt;I have published the Crystal version of Haye: An expressive string syntax to Array/Hash and Vice-Versa parser for Crystal. Based on the &lt;a href="https://github.com/poppinss/haye"&gt;javascript&lt;/a&gt; version.&lt;/p&gt;

&lt;p&gt;GitHub repo: &lt;a href="https://github.com/krthr/haye.cr"&gt;https://github.com/krthr/haye.cr&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is an example:&lt;/p&gt;

&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight crystal"&gt;&lt;code&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s2"&gt;"haye.cr"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Pipe -&amp;gt; Array
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight crystal"&gt;&lt;code&gt;&lt;span class="n"&gt;expression&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'s'&lt;/span&gt;
&lt;span class="n"&gt;parsed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Haye&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fromPipe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;expression&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# Haye.fromPipe(expression, Haye::PresenterTypes::Array)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output (&lt;code&gt;Haye::Presenters::Node[]&lt;/code&gt;)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[
  #&amp;lt;Haye::Presenters::Node:0x7f11fd891e40 
    @name="required", 
    @args=[]
  &amp;gt;, 
  #&amp;lt;Haye::Presenters::Node:0x7f11fd891de0 
    @name="email", 
    @args=["unique", "users"]
  &amp;gt;
]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Pipe -&amp;gt; Hash
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight crystal"&gt;&lt;code&gt;&lt;span class="n"&gt;expression&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'s'&lt;/span&gt;
&lt;span class="n"&gt;parsed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Haye&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fromPipe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;expression&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;Haye&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;PresenterTypes&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Hash&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output (&lt;code&gt;Hash&lt;/code&gt;)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight crystal"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="s2"&gt;"required"&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt; 
  &lt;span class="s2"&gt;"email"&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"unique"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"users"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I hope you enjoy!&lt;/p&gt;

</description>
      <category>crystal</category>
      <category>javascript</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Pope.cr: Micro templating engine for strings only. (Crystal version of Pope.js)</title>
      <dc:creator>Wilson Tovar</dc:creator>
      <pubDate>Wed, 11 Dec 2019 04:06:21 +0000</pubDate>
      <link>https://forem.com/krthr/pope-cr-micro-templating-engine-for-strings-only-crystal-version-of-pope-js-8nn</link>
      <guid>https://forem.com/krthr/pope-cr-micro-templating-engine-for-strings-only-crystal-version-of-pope-js-8nn</guid>
      <description>&lt;p&gt;I have published the Crystal version of &lt;a href="https://github.com/poppinss/pope"&gt;Pope&lt;/a&gt;: A fast, minimal and micro template engine for strings only, it plays well where you want to embed micro templates inside your module.&lt;/p&gt;

&lt;p&gt;GitHub repo: &lt;a href="https://github.com/krthr/pope.cr"&gt;https://github.com/krthr/pope.cr&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight crystal"&gt;&lt;code&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s2"&gt;"pope.cr"&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="ss"&gt;user: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="ss"&gt;id:       &lt;/span&gt;&lt;span class="mi"&gt;123&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="ss"&gt;username: &lt;/span&gt;&lt;span class="s2"&gt;"krthr"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="ss"&gt;admin:    &lt;/span&gt;&lt;span class="kp"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="ss"&gt;config:   &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="ss"&gt;email: &lt;/span&gt;&lt;span class="s2"&gt;"test@test.com"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="no"&gt;Pope&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pope&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="s2"&gt;"The user {{user.username}} with id {{user.id}} is cool"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;data&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# "The user krthr with id 123 is cool"&lt;/span&gt;

&lt;span class="no"&gt;Pope&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;prop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"user.id"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;           &lt;span class="c1"&gt;#  123&lt;/span&gt;
&lt;span class="no"&gt;Pope&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;prop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"user.config.email"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# test@test.com&lt;/span&gt;
&lt;span class="no"&gt;Pope&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;prop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"nananana"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;          &lt;span class="c1"&gt;# nil&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I hope you enjoy!&lt;/p&gt;

</description>
      <category>crystal</category>
      <category>opensource</category>
      <category>strings</category>
      <category>github</category>
    </item>
    <item>
      <title>Spotty: Spotify web clone build with Vue.js and Vuetify</title>
      <dc:creator>Wilson Tovar</dc:creator>
      <pubDate>Wed, 20 Nov 2019 18:29:38 +0000</pubDate>
      <link>https://forem.com/krthr/spotty-spotify-web-clone-build-with-vue-js-and-vuetify-36l9</link>
      <guid>https://forem.com/krthr/spotty-spotify-web-clone-build-with-vue-js-and-vuetify-36l9</guid>
      <description>&lt;p&gt;I just published a small project that I worked on last week. &lt;/p&gt;

&lt;p&gt;Spotty: Spotify web clone build with vuejs and vuetify &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/krthr/spotty"&gt;https://github.com/krthr/spotty&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vue</category>
      <category>vuetify</category>
      <category>javascript</category>
      <category>design</category>
    </item>
    <item>
      <title>Make a Dataflow Editor with Vue</title>
      <dc:creator>Wilson Tovar</dc:creator>
      <pubDate>Tue, 11 Jun 2019 03:00:40 +0000</pubDate>
      <link>https://forem.com/krthr/make-a-dataflow-editor-with-vue-76i</link>
      <guid>https://forem.com/krthr/make-a-dataflow-editor-with-vue-76i</guid>
      <description>&lt;p&gt;Hello, folks! I’ve published a dataflow graph editor made with Vue. It’s based on &lt;a href="https://dev.toghostiam/Vue-blocks-Vue-blocks"&gt;ghostiam/Vue-blocks-Vue-blocks&lt;/a&gt; project.&lt;/p&gt;

&lt;p&gt;I receive opinions, questions and PR. ;)&lt;/p&gt;

&lt;p&gt;github: &lt;a href="https://github.com/krthr/vue-dataflow-editor"&gt;https://github.com/krthr/vue-dataflow-editor&lt;/a&gt;&lt;br&gt;
npm: &lt;a href="https://npmjs.com/package/@krthr/vue-dataflow-editor"&gt;https://npmjs.com/package/@krthr/vue-dataflow-editor&lt;/a&gt;&lt;br&gt;
docs: &lt;a href="https://krthr.github.io/vue-dataflow-editor/"&gt;https://krthr.github.io/vue-dataflow-editor/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vue</category>
      <category>opensource</category>
      <category>javascript</category>
      <category>contributorswanted</category>
    </item>
    <item>
      <title>Why do people use JSX?</title>
      <dc:creator>Wilson Tovar</dc:creator>
      <pubDate>Sat, 10 Nov 2018 17:34:29 +0000</pubDate>
      <link>https://forem.com/krthr/why-do-people-use-jsx---4f</link>
      <guid>https://forem.com/krthr/why-do-people-use-jsx---4f</guid>
      <description></description>
      <category>discuss</category>
    </item>
    <item>
      <title>Best option to start a new big project - NodeJS</title>
      <dc:creator>Wilson Tovar</dc:creator>
      <pubDate>Sun, 01 Oct 2017 03:55:03 +0000</pubDate>
      <link>https://forem.com/krthr/best-option-to-start-a-new-big-project---nodejs-366</link>
      <guid>https://forem.com/krthr/best-option-to-start-a-new-big-project---nodejs-366</guid>
      <description>&lt;p&gt;Hey! I will begin a moderately big project together with a friend, but still we do not define the technology that we will use. We begin with "Sails", but... yet it is very young and the bugs abound. We have searched a lot about new technologies. What do you recommend to us? Thank you!&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>node</category>
      <category>mongodb</category>
    </item>
    <item>
      <title>Bubble Sort in Ruby</title>
      <dc:creator>Wilson Tovar</dc:creator>
      <pubDate>Fri, 28 Jul 2017 18:00:36 +0000</pubDate>
      <link>https://forem.com/krthr/bubble-sort-in-ruby</link>
      <guid>https://forem.com/krthr/bubble-sort-in-ruby</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F800%2F1%2Am7BLDQIGM7QZNJLJWk-PoA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F800%2F1%2Am7BLDQIGM7QZNJLJWk-PoA.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Original publication: &lt;a href="https://medium.com/@kinduff/seis-algoritmos-fundamentales-en-ruby-520bbef8a6f3" rel="noopener noreferrer"&gt;Seis Algoritmos en Ruby&lt;/a&gt; - &lt;a href="https://medium.com/@kinduff" rel="noopener noreferrer"&gt;@Kinduff&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It is the most basic way of arranging a collection. It iterate on every value and it compares with the following one, they are exchanged of being necessary, the iteration repeats itself until all the values are not exchangeable.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;values&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="n"&gt;length&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;values&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;size&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
  &lt;span class="n"&gt;swapped&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;

  &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;swapped&lt;/span&gt;
    &lt;span class="n"&gt;swapped&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;

    &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;upto&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
      &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;values&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;values&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="n"&gt;values&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;values&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;values&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;values&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="n"&gt;swapped&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;
      &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;values&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="n"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;span class="c1"&gt;# =&amp;gt;&lt;/span&gt;
&lt;span class="c1"&gt;# 7, 4, 5, 2, 9, 1&lt;/span&gt;
&lt;span class="c1"&gt;# 4, 5, 2, 7, 1, 9&lt;/span&gt;
&lt;span class="c1"&gt;# 4, 2, 5, 1, 7, 9&lt;/span&gt;
&lt;span class="c1"&gt;# 2, 4, 1, 5, 7, 9&lt;/span&gt;
&lt;span class="c1"&gt;# 2, 1, 4, 5, 7, 9&lt;/span&gt;
&lt;span class="c1"&gt;# 1, 2, 4, 5, 7, 9&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ;)
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/lyZQPjUT5B4"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>ruby</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
