<?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>DEV Community: Anton</title>
    <description>The latest articles on DEV Community by Anton (@antonrich).</description>
    <link>https://dev.to/antonrich</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%2F35861%2F1e1ca7a5-b93c-4e17-8720-7af7400e2edb.jpeg</url>
      <title>DEV Community: Anton</title>
      <link>https://dev.to/antonrich</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/antonrich"/>
    <language>en</language>
    <item>
      <title>Solving MakeArrayConsecutive2 on CodeSignal</title>
      <dc:creator>Anton</dc:creator>
      <pubDate>Wed, 09 Oct 2019 17:44:04 +0000</pubDate>
      <link>https://dev.to/antonrich/solving-makearrayconsecutive2-on-codesignal-3d7f</link>
      <guid>https://dev.to/antonrich/solving-makearrayconsecutive2-on-codesignal-3d7f</guid>
      <description>&lt;p&gt;The challenge:&lt;/p&gt;

&lt;p&gt;Input: [6, 2, 3, 8]&lt;br&gt;
Output: 3&lt;/p&gt;

&lt;p&gt;To explain better the input and output relationship I need to sort the numbers first&lt;br&gt;
[2,3,6,8]&lt;/p&gt;

&lt;p&gt;You see that the numbers that are missing are 4,5, and 7.&lt;br&gt;
How many numbers are missing? Exactly, 3. 3 is the answer.&lt;/p&gt;

&lt;p&gt;Input: [0, 3]&lt;br&gt;
Output: 2&lt;/p&gt;

&lt;p&gt;Input: [5, 4, 6]&lt;br&gt;
Output: 0&lt;/p&gt;

&lt;p&gt;Input: [2]&lt;br&gt;
Output: 0&lt;/p&gt;

&lt;p&gt;&lt;a href="https://app.codesignal.com/arcade/intro/level-2/bq2XnSr5kbHqpHGJC"&gt;The link to the challenge&lt;/a&gt;&lt;br&gt;
&lt;a href="https://app.codesignal.com/signup/z9AzBTkKZkpoWaR3s/main"&gt;An invite link to join CodeSignal&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My first attempt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight elixir"&gt;&lt;code&gt;&lt;span class="k"&gt;defmodule&lt;/span&gt; &lt;span class="no"&gt;MakeArrayConsecutive&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="c1"&gt;# statues = [6, 2, 3, 8]&lt;/span&gt;
  &lt;span class="c1"&gt;# makeArrayConsecutive2(statues) = 3&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="n"&gt;makeArrayConsecutive2&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;statues&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
    &lt;span class="n"&gt;statues&lt;/span&gt;
    &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;Enum&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; 
  &lt;span class="k"&gt;end&lt;/span&gt;


  &lt;span class="c1"&gt;# What am I trying to do here?&lt;/span&gt;
  &lt;span class="k"&gt;defp&lt;/span&gt; &lt;span class="n"&gt;number_of_holes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sorted_list&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
    &lt;span class="no"&gt;Enum&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;reduce&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;list&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;
      &lt;span class="k"&gt;fn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[])&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="k"&gt;end&lt;/span&gt;
      &lt;span class="k"&gt;fn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;tail&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;whole_list&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; 
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;head&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
      &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;My second attempt, still not the full solution, but very close. I didn't account the case [0,3].&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight elixir"&gt;&lt;code&gt;&lt;span class="k"&gt;defmodule&lt;/span&gt; &lt;span class="no"&gt;MakeArrayConsecutive&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="c1"&gt;# statues = [6, 2, 3, 8]&lt;/span&gt;
  &lt;span class="c1"&gt;# makeArrayConsecutive2(statues) = 3&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="n"&gt;makeArrayConsecutive2&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;statues&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="n"&gt;check_singleton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;statues&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
      &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;
        &lt;span class="mi"&gt;0&lt;/span&gt;
      &lt;span class="n"&gt;list&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;
        &lt;span class="n"&gt;list&lt;/span&gt;
        &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;Enum&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sort&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;number_of_holes&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;return_difference&lt;/span&gt;&lt;span class="p"&gt;()&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;defp&lt;/span&gt; &lt;span class="n"&gt;check_singleton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xs&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="n"&gt;xs&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
      &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
      &lt;span class="n"&gt;list&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;list&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;defp&lt;/span&gt; &lt;span class="n"&gt;return_difference&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
    &lt;span class="n"&gt;y&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="k"&gt;defp&lt;/span&gt; &lt;span class="n"&gt;number_of_holes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sorted_list&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
    &lt;span class="no"&gt;Enum&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;reduce&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sorted_list&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="k"&gt;fn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;acc&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;
      &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="n"&gt;acc&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;
          &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;difference&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;
          &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;difference&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
          &lt;span class="k"&gt;else&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;difference&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;number&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="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="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



</description>
      <category>elixir</category>
      <category>challenge</category>
    </item>
    <item>
      <title>An unexpected piece of art!</title>
      <dc:creator>Anton</dc:creator>
      <pubDate>Wed, 03 Jul 2019 12:04:56 +0000</pubDate>
      <link>https://dev.to/antonrich/an-unexpected-piece-of-art-5b6j</link>
      <guid>https://dev.to/antonrich/an-unexpected-piece-of-art-5b6j</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/kV8v2GKC8WA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Just marvel at this.&lt;/p&gt;

</description>
      <category>art</category>
    </item>
    <item>
      <title>Being at a crossroad again.</title>
      <dc:creator>Anton</dc:creator>
      <pubDate>Thu, 06 Jun 2019 13:12:58 +0000</pubDate>
      <link>https://dev.to/antonrich/being-at-a-crossroad-again-4k3b</link>
      <guid>https://dev.to/antonrich/being-at-a-crossroad-again-4k3b</guid>
      <description>&lt;p&gt;Opportunity screws me up.&lt;/p&gt;

&lt;p&gt;I become like a donkey that can't make a choice between two equal piles of food. Becomes hungry and dies.&lt;/p&gt;

&lt;p&gt;Well, if I was a donkey and was hungry I'd actually turn off my brain and just act.&lt;/p&gt;

&lt;p&gt;Hunger makes the decision.&lt;/p&gt;

&lt;p&gt;What am I hungry for?&lt;/p&gt;

&lt;p&gt;I know I'm hungry for likes and validation.&lt;/p&gt;

&lt;p&gt;So I'm not gonna check the bell button. It's even here on dev.to, that means I either learn not to pay attention to it or just learn to hack and block this thing on all the websites that I'm using.&lt;/p&gt;

&lt;p&gt;I know I'm hungry for self-sabotage.&lt;/p&gt;

&lt;p&gt;I know I'm hungry for discovery.&lt;/p&gt;

&lt;p&gt;I'm afraid to miss an opportunity.&lt;/p&gt;

&lt;p&gt;I'm afraid to not know how this will pan out.&lt;/p&gt;




&lt;p&gt;Listening to Gary Vaynerchurk doesn't help.&lt;/p&gt;

&lt;p&gt;Listening to Dan Pena doesn't help.&lt;/p&gt;

&lt;p&gt;I'm trying to wake up my intuition and get the EASY answer. It's like I want that responsibility off of me.&lt;/p&gt;

&lt;p&gt;But I bear the weight for all of my decisions in life.&lt;/p&gt;

&lt;p&gt;I do.&lt;/p&gt;




&lt;p&gt;One thing I've learned from Dan Pena. The most important one.&lt;/p&gt;

&lt;p&gt;We have two bank accounts in life. One is an emotional bank account and the other is financial.&lt;/p&gt;

&lt;p&gt;Just recently I watched Gary Vaynerchuck on "Hot Ones" which is a show I watch from time to time. People eat hot spicy wings there.&lt;/p&gt;

&lt;p&gt;He is the best guy so far in terms of handling the spice.&lt;/p&gt;

&lt;p&gt;The best one, period. He ate all chicken wings to the bone.&lt;/p&gt;

&lt;p&gt;He is emotionally strong dude.&lt;/p&gt;

&lt;p&gt;Let's return to the premise. A reader in mind. Does a reader should know the premise?&lt;/p&gt;

&lt;p&gt;To be honest, I'm writing this in hope that it will be therapeutic for me and that I will actually make a decision.&lt;/p&gt;

&lt;p&gt;A decision between becoming a programmer or an English teacher.&lt;/p&gt;

&lt;p&gt;Both of those decisions open doors for me.&lt;/p&gt;

&lt;p&gt;Programming is more lucrative to be honest. It's more challenging.&lt;/p&gt;

&lt;p&gt;If I was fearless what would my choice be?&lt;/p&gt;

&lt;p&gt;It's even hard to imagine. Because I'd had probably even more opportunities. Irony, ha?&lt;/p&gt;

&lt;p&gt;Why do I have a complicated mind? Why am I not stupid enough to do just one thing?&lt;/p&gt;

&lt;p&gt;Am I not passionate enough? Why the hell did I discover the works of Cal Newport?&lt;/p&gt;

&lt;p&gt;This all sounds like a complaint and I actually hate that. I want to change your perception of that.&lt;/p&gt;

&lt;p&gt;I'm becoming derailed.&lt;/p&gt;

&lt;p&gt;I just stopped writing and gave some thought to it. It's my mind trying to sabotage me away from making the decision.&lt;/p&gt;

&lt;p&gt;What is going to be playing to win here?&lt;/p&gt;

&lt;p&gt;This problem arose when I clicked an a post in vk. The post said that an English school was looking for a teacher and they provide learning, teaching, and traveling opportunities. &lt;/p&gt;

&lt;p&gt;It is a problem because I learned about myself one interesting thing. My eyes are bigger than my stomach and clicking on that post meant that I was looking for new information which I always do. And that's the problem. New opportunities will always come my way if I look for new information. Hmmm, that's not entirely true. They can also come from other people. So just stopping receiving new information won't be a final solution.&lt;/p&gt;

&lt;p&gt;What will be the final solution is becoming clear on what I want.&lt;/p&gt;

&lt;p&gt;What will be my regret when I die?&lt;/p&gt;

&lt;p&gt;I don't see the future to be honest.&lt;/p&gt;

&lt;p&gt;That's why visualization doesn't work for me. I just don't see it.&lt;/p&gt;




&lt;p&gt;I suddenly interrupted myself, I went into a viral spiral of watching youtube. Not that I watched some BS. I watched something really interesting.&lt;/p&gt;

&lt;p&gt;Anyway, what I'm saying is that I got away from making a decision yesterday.&lt;/p&gt;

&lt;p&gt;And today I have to make the decision.&lt;/p&gt;

&lt;p&gt;Opportunity screws me.&lt;/p&gt;

&lt;p&gt;It's the journey on becoming accountable and being true to my word.&lt;/p&gt;

&lt;p&gt;That's the most valuable thing ever.&lt;/p&gt;

&lt;p&gt;Saying and then doing.&lt;/p&gt;

&lt;p&gt;That's true power. I believe.&lt;/p&gt;

&lt;p&gt;Just thinking about it gives me chills.&lt;/p&gt;

&lt;p&gt;Well the "planet" wants me to make a choice between either this or that.&lt;/p&gt;

&lt;p&gt;The idea is that I cannot do both.&lt;/p&gt;

&lt;p&gt;The idea is that if you want to succeed you have to say no.&lt;/p&gt;

&lt;p&gt;I have have to say no to myself first.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://justinjackson.ca/money"&gt;https://justinjackson.ca/money&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have to pass on that opportunity with English and it would be best to give the answer to the owner of the school right now.&lt;/p&gt;

&lt;p&gt;I did. I said no.&lt;/p&gt;

&lt;p&gt;I'm taking a note that when I said no, after I felt more energy and my focus became stronger.&lt;/p&gt;




&lt;p&gt;A tale about the donkey.&lt;/p&gt;

&lt;p&gt;Once upon a time there lived an old man and he had an old donkey. The animal served him with devotion for many years, but one day it fell down into water well. The poor old man started crying in desperation, he tried to think of something how to help his beloved donkey. Although he mulled over many options and hours in search of a solution, he could not come up with anything wise. So he decided to bury the well. "Anyway, the donkey is too old and the well is dried up, so it's time to do it now", he said to himself.&lt;/p&gt;

&lt;p&gt;He asked his neighbours for help. Together with him they set about with shovels and began filling up the well with soil. But the old donkey quickly understood what was the matter and began to bray terribly. Then he suddenly became quiet. The old man peeped into the well and could see that the donkey - after every shower of soil that fell down - was doing something fantastic - shaking himself off from it, trampling the soil down, the donkey got, bit by bit, only higher. The old man and his neighbours kept throwing the soil into the well and every time the donkey shook the soil off and moved higher. When he finally got out of the well, he quietly moved away and overwhelmed all people around.&lt;/p&gt;




&lt;p&gt;P.S. Was looking for the tale about the donkey being paralized with choice and found this one instead.&lt;/p&gt;

</description>
      <category>meta</category>
    </item>
    <item>
      <title>Modeling exercise for 7 apps.</title>
      <dc:creator>Anton</dc:creator>
      <pubDate>Fri, 24 May 2019 16:27:09 +0000</pubDate>
      <link>https://dev.to/antonrich/modeling-exercise-for-7-apps-2324</link>
      <guid>https://dev.to/antonrich/modeling-exercise-for-7-apps-2324</guid>
      <description>&lt;p&gt;I came up with the idea that I can train my modeling skills just by modeling apps first. Sort of a form of an intensive deliberate practice.&lt;/p&gt;

&lt;p&gt;Let's get to it:&lt;/p&gt;

&lt;h3&gt;
  
  
  TH app
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Goal:

&lt;ul&gt;
&lt;li&gt;Train the ability to recognize if the word has voiced or voiceless TH sound.&lt;/li&gt;
&lt;/ul&gt;


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

&lt;h4&gt;
  
  
  MVP:
&lt;/h4&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Show one word out of a list of words iteratively.
- Ability to answer with key events. Left means voiceless, right means voiced.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4&gt;
  
  
  Full Blown App:
&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Show a list or results at the end.
- Randomize the list of words.
- The ability to get the words from a text from a website
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4&gt;
  
  
  Model for MVP:
&lt;/h4&gt;


&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Model


type TH
    = Soft
    | Hard


type Correctness
    = Correct
    | Incorrect


type alias Model =
    { words : List String
    , answer : Maybe TH
    , correctness : Maybe Correctness
    }

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h4&gt;
  
  
  Full Blown Model:
&lt;/h4&gt;

&lt;p&gt;To make it to the end I need to add the state of two pages Playing and Results. I also want to keep the results and show a table with them.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Model


type TH
    = Soft
    | Hard


type Correctness
    = Correct
    | Incorrect

type State
    = Playing
    | Results

type alias Result =
    ( TH, Correctness )


type alias Model =
    { words : List String
    , answer : Maybe TH
    , correctness : Maybe Correctness
    , state : State
    , results : List Result
    }
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Breathing app.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Goal:

&lt;ul&gt;
&lt;li&gt;I have a long list of different breathing exercises.&lt;/li&gt;
&lt;li&gt;They work best if you do them one after another.&lt;/li&gt;
&lt;li&gt;The problem the instructions are in Russion, so I need to translate it first. I'll put in on gist later. I think I maybe even have the translation somewhere already.&lt;/li&gt;
&lt;/ul&gt;


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

&lt;h4&gt;
  
  
  MVP:  Box breathing. &lt;a href="https://play.google.com/store/apps/details?id=pl.orbitemobile.breathair&amp;amp;hl=en&amp;amp;showAllReviews=true"&gt;This is going to be the mvp version. This app is great. Take a peak at it.&lt;/a&gt;
&lt;/h4&gt;

&lt;h4&gt;
  
  
  Model:
&lt;/h4&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Model

type State
    = TimingState
    | BreathingState
    | TheEndState

type alias Model =
    { inhale : Inhale
    , inhalePause : InhalePause
    , exhale : Exhale
    , exhalePause : ExhalePause
    , duration : Duration
    , state : Timings
    }

-- There is going to be three states:
-- 1) Choosing the timings
-- 2) The actuall breathing
--    - There is gotta be some pause button during that process
-- 3) The end state.

-- Four views:
-- 1) inhale    has a min 3 sec
-- 2) inhale pause
-- 3) exhale    has a min 3 sec
-- 4) exhale pause
-- 5) the overall duration. Min 2 min - max 60 min.

-- All of the fields can have different time length.

-- each of the above has a length in seconds
-- a checkbox for making the thing move synchroniously.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Note app. More on that app &lt;a href="https://dev.to/antonrich/note-app-practice-with-elm-some-struggles-as-well-1g8p"&gt;here&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Goal:

&lt;ul&gt;
&lt;li&gt;To experiment with taking notes.&lt;/li&gt;
&lt;/ul&gt;


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

&lt;h4&gt;
  
  
  MVP:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Two columns. The first one has an input filed the other shows the output.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Whack-a-mole game.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Goal:

&lt;ul&gt;
&lt;li&gt;Clone a &lt;a href="https://www.youtube.com/watch?v=toNFfAaWghU"&gt;whack-a-mole game&lt;/a&gt; from  Wes Bos's js 30 course.&lt;/li&gt;
&lt;/ul&gt;


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

&lt;h4&gt;
  
  
  MVP:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;The game itself.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Model
&lt;/h4&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Model

type alias Model =
    { holes : List Hole
    , random : Int -- for randomization.
    , points : Int -- for keeping score
    , numberOfAttempts : Int -- If the player is fast will he have more attemps.
    }

-- What will the duration be based on?
-- I think it should be based on time.
-- a fast player will have more attempts.

-- What about levels? For now I will ignore that aspect.

type Hole
    = Empty
    | Full -- the mole is in the hole
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;At first the model looked simple after I gave more thought to it I came up with this model. &lt;/p&gt;

&lt;h3&gt;
  
  
  Clock
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Goal:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=xu87YWbr4X0"&gt;Clone a clock from Wes Bos's js 30 course&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


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

&lt;h4&gt;
  
  
  MVP:
&lt;/h4&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- A cloock with a seconds hand.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4&gt;
  
  
  Finished version:
&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- The clock itself with hours, minutes and seconds hands.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4&gt;
  
  
  Model:
&lt;/h4&gt;


&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Model

type alias Model =
    { seconds : Seconds } -- the rest will be similar with just different timings

type alias Seconds =
    { seconds : Time.Posix
    , svgPosition : { x, y } -- x the center of the circle, and y will be the end
                             -- of the hand and will tell the angle.
    }
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Arabic English chatroom
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Goal:

&lt;ul&gt;
&lt;li&gt;A chatroom where messages are transformed into Arabic English. Arabic has vowel sounds, but actualy doesn't have vowel letters. Would you be able to read English without vowel letters?&lt;/li&gt;
&lt;/ul&gt;


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

&lt;h4&gt;
  
  
  MVP:
&lt;/h4&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- A chat window where you can communicate back and forth. The output is processed with an Arabic English algorithm.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4&gt;
  
  
  Model:
&lt;/h4&gt;

&lt;p&gt;I don't know how to model this app yet, because there's gotta be a backend to this app. When I figured what that backend would be I will model the app.&lt;/p&gt;
&lt;h3&gt;
  
  
  Penguin maze game.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Goal:

&lt;ul&gt;
&lt;li&gt;Clone Lumosity's Penguin Pursuit game. Really fun game. Play this a lot on my phone.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  MVP:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;A maze and a penguin that can walk through the maze.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Full app:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;A rotating maze&lt;/li&gt;
&lt;li&gt;AI pengiun that competes with you&lt;/li&gt;
&lt;li&gt;Levels&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Model:
&lt;/h4&gt;

&lt;p&gt;To be honest this is out of my ability that I don't even know how to approach this.&lt;br&gt;
Nevertheless, I'll try:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Model

type alias Model =
    { maze : Maze
    , entryPoint : EntryPoint -- penguin's start position
    , fishPoint : FishPonit -- The end point point. Where the penguin finally get's the fish.
    , penguin : Penguin
    }

type alias Penguin =
    { x : Int
    , y : Int
    }
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;This model is just me shooting in the dark. I have some resources to follow on how to build mazes. So after learning those I will change the model accordingly.&lt;/p&gt;

&lt;p&gt;That's it folks. What do you think of this kind of exercise? Do you think this is a good delibarate practice?&lt;/p&gt;

</description>
      <category>elm</category>
    </item>
    <item>
      <title>Note app practice with Elm + some struggles as well.</title>
      <dc:creator>Anton</dc:creator>
      <pubDate>Tue, 21 May 2019 21:41:19 +0000</pubDate>
      <link>https://dev.to/antonrich/note-app-practice-with-elm-some-struggles-as-well-1g8p</link>
      <guid>https://dev.to/antonrich/note-app-practice-with-elm-some-struggles-as-well-1g8p</guid>
      <description>&lt;p&gt;A mentor told me to write this app.&lt;/p&gt;

&lt;p&gt;I was hesitant because it is a simple note app.&lt;/p&gt;

&lt;p&gt;What the hell I protested inside and went with it anyway. It is a work in progress. My goal is to keep you posted about the progress and the struggles that I'm currently facing. Also keep you posted about the bugs I'm having which are really fun.&lt;/p&gt;

&lt;p&gt;The code to the app: &lt;a href="https://github.com/AntonRich/anton-joe-note-app"&gt;https://github.com/AntonRich/anton-joe-note-app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's go back in history and see what the first screenshot of the app looked like:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--a_mtDK9e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/y47qgfduryzqfwzu637b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--a_mtDK9e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/y47qgfduryzqfwzu637b.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The name of the screenshot says: "note mvp is working".&lt;/p&gt;

&lt;p&gt;You can see how it is working though. Right column is misaligned.&lt;/p&gt;

&lt;p&gt;I don't really know why it happened. First I have to tell you what I decided to use for css.&lt;/p&gt;

&lt;p&gt;I had three choices regarding the css part: basic elm css, rtfeldman/elm-css, or elm-ui.&lt;/p&gt;

&lt;p&gt;I went with elm-ui.&lt;/p&gt;

&lt;p&gt;I kind of fixed that bug with the second column where my content was in the middle. I aligned it to the top. You can see it looks better now.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YrohKxk5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/pxikitwi973cki0dbwhj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YrohKxk5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/pxikitwi973cki0dbwhj.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Later on I discovered another curios bug.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CgJRkAEJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/5ea0nrkufg7idc9gupxx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CgJRkAEJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/5ea0nrkufg7idc9gupxx.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The more notes I add the more space I have between the top of input field and the top of the browser.&lt;/p&gt;

&lt;p&gt;There is one more bug. Oh, gosh.&lt;/p&gt;

&lt;p&gt;When I add the note the field input does'n clear itself. I have to handle that.&lt;/p&gt;




&lt;p&gt;What my goals are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I have an Enter event. I want to be able to add a note with Ctrl + Enter&lt;/li&gt;
&lt;li&gt;Fix the bugs I have&lt;/li&gt;
&lt;li&gt;Add the ability to pin a not to the top of the list.&lt;/li&gt;
&lt;li&gt;Add the ability to edit only the last note.&lt;/li&gt;
&lt;li&gt;Add the ability to delete notes.&lt;/li&gt;
&lt;li&gt;Maybe something else, but later on.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Mental Patterns that I have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start from the beginning again and again. Even when I was a child if I made a mistake a would start a new notebook. Rethink from the beginning.&lt;/li&gt;
&lt;li&gt;Diving deep even when it's not necessary.&lt;/li&gt;
&lt;li&gt;Tendency to focus on psychology and meta stuff and not on the technical parts. I'm working on focusing more on technical parts.&lt;/li&gt;
&lt;li&gt;Not enough resources, I need more... lack of confidence and maybe lack of practice... but there could be another one... lack of connection.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A note an productivity:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I've noticed that even professional websites like stackoverflow and others have a lot of agenda for our focus. The sidebar in stackoverflow is very distracting. There are millions things to distract us from work. As Dan Pena says, "you'd think that having a computer would make humans more productive. But it's actually the opposite. We waste more time than ever".&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>elm</category>
    </item>
    <item>
      <title>Pack the same elements into a list inside a list.</title>
      <dc:creator>Anton</dc:creator>
      <pubDate>Wed, 15 May 2019 21:50:36 +0000</pubDate>
      <link>https://dev.to/antonrich/pack-the-same-elements-into-a-list-inside-a-list-2l66</link>
      <guid>https://dev.to/antonrich/pack-the-same-elements-into-a-list-inside-a-list-2l66</guid>
      <description>&lt;p&gt;Again a challenge from &lt;a href="https://legacy.gitbook.com/book/johncrane/ninety-nine-elm-problems/details"&gt;99 Elm problems&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Convert a list to a list of lists where repeated elements of the source list are packed into sublists. Elements that are not repeated should be placed in a one element sublist.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pack [1,1,1,2,3,3,3,4,4,4,4,5,6,6] ==
    [ [1,1,1]
    , [2]
    , [3, 3, 3]
    , [4, 4, 4, 4]
    , [5]
    , [6, 6]
    ]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



</description>
      <category>elm</category>
      <category>challenge</category>
    </item>
    <item>
      <title>The purpose of abstraction.</title>
      <dc:creator>Anton</dc:creator>
      <pubDate>Tue, 14 May 2019 20:02:42 +0000</pubDate>
      <link>https://dev.to/antonrich/the-purpose-of-abstraction-ed9</link>
      <guid>https://dev.to/antonrich/the-purpose-of-abstraction-ed9</guid>
      <description>&lt;p&gt;The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Edsger W. Dijkstra&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A reminder to my future self: If you always use jargon, always be willing to explain what it means.&lt;/p&gt;

</description>
      <category>abstraction</category>
    </item>
    <item>
      <title>Native, high-performance, cross-platform desktop apps - built with Reason! </title>
      <dc:creator>Anton</dc:creator>
      <pubDate>Tue, 14 May 2019 16:18:57 +0000</pubDate>
      <link>https://dev.to/antonrich/native-high-performance-cross-platform-desktop-apps-built-with-reason-3bem</link>
      <guid>https://dev.to/antonrich/native-high-performance-cross-platform-desktop-apps-built-with-reason-3bem</guid>
      <description>&lt;p&gt;I just discovered &lt;a href="https://github.com/revery-ui/revery"&gt;Revery&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Is this a game changer for building desktop apps?&lt;/p&gt;

</description>
      <category>ocaml</category>
      <category>reason</category>
      <category>electron</category>
      <category>discuss</category>
    </item>
    <item>
      <title>No duplicates challenge in Elm</title>
      <dc:creator>Anton</dc:creator>
      <pubDate>Wed, 08 May 2019 21:41:12 +0000</pubDate>
      <link>https://dev.to/antonrich/no-duplicates-challenge-in-elm-3kkl</link>
      <guid>https://dev.to/antonrich/no-duplicates-challenge-in-elm-3kkl</guid>
      <description>&lt;p&gt;&lt;a href="https://johncrane.gitbooks.io/ninety-nine-elm-problems/content/"&gt;There is a 99 Elm problems book&lt;/a&gt; (originally was for Prolog).&lt;/p&gt;

&lt;p&gt;Write a function to remove consecutive duplicates of list elements.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;noDupes [1, 1, 2, 2, 3, 3, 3, 4, 5, 4, 4, 4, 4]
    == [1, 2, 3, 4, 5, 4]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;I'm doing something wrong here. Am I on the track or completely off track?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;noDupes : List a -&amp;gt; List a
noDupes list =
    case list of
        [] -&amp;gt; []
        x::y::xs -&amp;gt;
            if x == y then
                x :: noDupes xs
            else
                x::y::xs
        x::xs -&amp;gt;
            if x == xs then
                x :: xs
            else
                x
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;The compiler already gave me a heads up that I'm comparing an element to a list:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;17|             if x == xs then
                   ^^^^^^^
The left side of (==) is:

    a

But the right side is:

    List a

Different types can never be equal though! Which side is messed up?

Hint: Did you forget to add [] around it?
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Interesting I just wrapped the x in [x]. But I now have the second the last case to deal with.&lt;/p&gt;

</description>
      <category>elm</category>
      <category>challenge</category>
    </item>
    <item>
      <title>A quick link: A vanilla JavaScript roadmap.</title>
      <dc:creator>Anton</dc:creator>
      <pubDate>Sun, 28 Apr 2019 22:28:51 +0000</pubDate>
      <link>https://dev.to/antonrich/a-quick-link-a-vanilla-javascript-roadmap-18m4</link>
      <guid>https://dev.to/antonrich/a-quick-link-a-vanilla-javascript-roadmap-18m4</guid>
      <description>&lt;p&gt;&lt;a href="https://learnvanillajs.com/roadmap/" rel="noopener noreferrer"&gt;One of the finest roadmaps I've seen to vanilla js.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's simplistic, well structured and on point. Each section has a link with additional resources and project ideas.&lt;/p&gt;

&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fycvght1z34twq1i0g3cy.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fycvght1z34twq1i0g3cy.png" alt="Vanilla js project ideas"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you follow that with some book like "You don't know js" or a free bootcamp like "freecodcamp" you can eliminate the superfluous friction you get when you try to figure things out on your own.&lt;/p&gt;

&lt;p&gt;Just learn to lay the bricks first.&lt;/p&gt;

&lt;p&gt;Prehistory to this. I was doing a challenge on &lt;a href="https://edabit.com" rel="noopener noreferrer"&gt;edabit&lt;/a&gt; and did a quick search no how to convert strings into numbers. That's how I stumbled on learnvanillajs. The author has a tutorial on the topic. Edabit gets a recommendation from me because of the simplicity it has specifically with javascript. You can start hacking there in no time.&lt;/p&gt;

</description>
      <category>quicklinks</category>
      <category>javascript</category>
      <category>roadmap</category>
      <category>beginners</category>
    </item>
    <item>
      <title>What tools do you use to prepare talks and presentations.</title>
      <dc:creator>Anton</dc:creator>
      <pubDate>Sat, 27 Apr 2019 01:45:22 +0000</pubDate>
      <link>https://dev.to/antonrich/what-tools-do-you-use-to-prepare-talks-and-presentations-43dp</link>
      <guid>https://dev.to/antonrich/what-tools-do-you-use-to-prepare-talks-and-presentations-43dp</guid>
      <description>&lt;p&gt;&lt;a href="https://dev.to/awwsmm"&gt;Andrew&lt;/a&gt; made a post about starting talks.&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/awwsmm" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Oj_t1Q27--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--15KZDeA3--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/101393/56bf0c89-b8ca-4157-9c3b-79031045a21f.png" alt="awwsmm image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/awwsmm/how-do-i-start-giving-talks-on-coding-4cpb" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How Do I Start Giving Talks on Coding?&lt;/h2&gt;
      &lt;h3&gt;Andrew (he/him) ・ Feb 13 '19 ・ 1 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#help&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#advice&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#discuss&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;I would like to know more about the tools that help you prepare talks and presentations.&lt;/p&gt;

&lt;p&gt;1) What have you used?&lt;br&gt;
2) What are the small details of these tools I have to pay attention to?&lt;br&gt;
3) What do you want to try in the future?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>talks</category>
      <category>presentations</category>
      <category>tools</category>
    </item>
    <item>
      <title>How to cut an mp3 file into multiple audios with bash and ffmpeg according to a timetable.</title>
      <dc:creator>Anton</dc:creator>
      <pubDate>Wed, 24 Apr 2019 06:13:30 +0000</pubDate>
      <link>https://dev.to/antonrich/how-to-cut-an-mp3-file-into-multiple-audios-with-bash-and-ffmpeg-according-to-a-timetable-e2f</link>
      <guid>https://dev.to/antonrich/how-to-cut-an-mp3-file-into-multiple-audios-with-bash-and-ffmpeg-according-to-a-timetable-e2f</guid>
      <description>&lt;p&gt;I have a timetable in a text file that looks like this:&lt;/p&gt;

&lt;p&gt;00:05 - 00:54 Dédicace, À léon werth&lt;/p&gt;

&lt;p&gt;00:54 - 01:37 Premier chapitre. Lorsque j'avais six ans&lt;/p&gt;

&lt;p&gt;01:36 - 02:06 J'ai montré mon chef-d'œuvre&lt;/p&gt;

&lt;p&gt;I'm trying to cut an mp3 file into multiple small ones according to this timetable, so the requirements are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I want to do it with bash. I have learned how to do one file. But a timetable is out of my current bash skills.&lt;/li&gt;
&lt;li&gt;The column with words serve as the names for files.&lt;/li&gt;
&lt;li&gt;I would like the files to be enumerated like this:
01.Dédicace_À_léon_werth.mp3
02.Premierchapitre_Lorsque_j'avais_six_ans.mp3&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And so on.&lt;/p&gt;

</description>
      <category>help</category>
      <category>bash</category>
    </item>
  </channel>
</rss>
