<?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: Ulises Alexander Arguelles Monjaraz</title>
    <description>The latest articles on DEV Community by Ulises Alexander Arguelles Monjaraz (@ulisesaam).</description>
    <link>https://dev.to/ulisesaam</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%2F934881%2F795dca2c-2c44-45fc-b9a1-37e7cc5f80ea.jpg</url>
      <title>DEV Community: Ulises Alexander Arguelles Monjaraz</title>
      <link>https://dev.to/ulisesaam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ulisesaam"/>
    <language>en</language>
    <item>
      <title>Sets in Python part 1: What are sets?, how we create them?, and basic operations.</title>
      <dc:creator>Ulises Alexander Arguelles Monjaraz</dc:creator>
      <pubDate>Wed, 07 Jun 2023 17:35:03 +0000</pubDate>
      <link>https://dev.to/ulisesaam/sets-in-python-part-1-what-are-sets-how-we-create-them-and-basic-operations-5932</link>
      <guid>https://dev.to/ulisesaam/sets-in-python-part-1-what-are-sets-how-we-create-them-and-basic-operations-5932</guid>
      <description>&lt;h2&gt;
  
  
  What are sets?
&lt;/h2&gt;

&lt;p&gt;Sets are one of Python's 4 built-in data types used to store data collections.&lt;/p&gt;

&lt;p&gt;Sets in python are similar to sets in mathematics, so they share characteristics. For example, both stores unordered, and unindexed data. Sets can't store multiple instances of the same data.&lt;/p&gt;

&lt;p&gt;The python representation of sets also doesn't allow changing the value of the items, but we can remove and add items. Set items can be of any data type, and different data types can be contained in a set.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do we create a set?
&lt;/h2&gt;

&lt;p&gt;Similarly to how we create dictionaries in Python, we use curly brackets to create sets.&lt;/p&gt;

&lt;p&gt;To create an empty set, we use the &lt;code&gt;set()&lt;/code&gt; function. We can also use the &lt;code&gt;set(&amp;lt;iter&amp;gt;)&lt;/code&gt; function to create sets, passing an iterable as an argument.&lt;/p&gt;


&lt;div class="ltag__replit"&gt;
  &lt;iframe height="550px" src="https://repl.it/@UlisesAlexander/Setscreation?lite=true"&gt;&lt;/iframe&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Set operations
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Checking length
&lt;/h3&gt;

&lt;p&gt;We use the &lt;code&gt;len(&amp;lt;set&amp;gt;)&lt;/code&gt; function to the length, the number of elements, of the set.&lt;/p&gt;

&lt;h3&gt;
  
  
  Checking membership
&lt;/h3&gt;

&lt;p&gt;To test if an item forms part of the set, we use the &lt;code&gt;in&lt;/code&gt;, and &lt;code&gt;not in&lt;/code&gt; operators.&lt;/p&gt;


&lt;div class="ltag__replit"&gt;
  &lt;iframe height="550px" src="https://repl.it/@UlisesAlexander/Setslengthandmembership?lite=true"&gt;&lt;/iframe&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Adding
&lt;/h3&gt;

&lt;p&gt;To add items to a set, we can use the &lt;code&gt;add(&amp;lt;elem&amp;gt;)&lt;/code&gt; method, which only accepts one item at a time and can accept tuples as an item.&lt;/p&gt;

&lt;p&gt;We can also use the &lt;code&gt;update(&amp;lt;elem&amp;gt;)&lt;/code&gt; method, which can take lists, strings, tuples, and other sets as its arguments.&lt;/p&gt;


&lt;div class="ltag__replit"&gt;
  &lt;iframe height="550px" src="https://repl.it/@UlisesAlexander/Setsadding?lite=true"&gt;&lt;/iframe&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Removing
&lt;/h3&gt;

&lt;p&gt;We have 4 ways to remove elements from a set.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;remove(&amp;lt;elem&amp;gt;)&lt;/code&gt; method removes &lt;code&gt;&amp;lt;elem&amp;gt;&lt;/code&gt; from the set but raises a &lt;code&gt;KeyError&lt;/code&gt; exception if &lt;code&gt;&amp;lt;elem&amp;gt;&lt;/code&gt; doesn't exist in the set.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;discard(&amp;lt;elem&amp;gt;)&lt;/code&gt; method does the same as &lt;code&gt;remove(&amp;lt;elem&amp;gt;)&lt;/code&gt;, but instead of raising an exception does nothing if &lt;code&gt;&amp;lt;elem&amp;gt;&lt;/code&gt; doesn't exist in the set.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;pop()&lt;/code&gt; method removes an arbitrary element from the set. If the set is empty raises a &lt;code&gt;KeyError&lt;/code&gt; exception.&lt;/p&gt;

&lt;p&gt;At last, the &lt;code&gt;clear()&lt;/code&gt; method is used to remove all the elements from the set.&lt;/p&gt;


&lt;div class="ltag__replit"&gt;
  &lt;iframe height="550px" src="https://repl.it/@UlisesAlexander/Setsremoving?lite=true"&gt;&lt;/iframe&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Further reading
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://realpython.com/python-sets"&gt;Sets in python - Real Python&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.geeksforgeeks.org/python-sets/"&gt;Python Sets - GeeksforGeeks&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.w3schools.com/python/python_sets.asp"&gt;Python sets - W3Schools&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.w3schools.com/python/python_sets_methods.asp"&gt;Python - Set Methods - W3Schools&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.geeksforgeeks.org/set-operations/"&gt;Mathematics | Set Operations (Set theory) - GeeksforGeeks&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Format
&lt;/h2&gt;

&lt;p&gt;With this blog post, I'm experimenting with the format for the code block. Instead of using code block with Markdown, I use Replit embeds so that you can see and execute the code.&lt;/p&gt;

&lt;p&gt;What will you prefer in the future Markdown, GH Gists, Replits, or a combination of them?&lt;/p&gt;

</description>
      <category>python</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Solution of Collatz conjecture on Exercism with Haskell</title>
      <dc:creator>Ulises Alexander Arguelles Monjaraz</dc:creator>
      <pubDate>Fri, 25 Nov 2022 19:00:00 +0000</pubDate>
      <link>https://dev.to/ulisesaam/solution-of-collatz-conjecture-on-exercism-with-haskell-2cfj</link>
      <guid>https://dev.to/ulisesaam/solution-of-collatz-conjecture-on-exercism-with-haskell-2cfj</guid>
      <description>&lt;p&gt;I solved the Collatz conjecture exercise from the Haskell track on Exercism and would like feedback on my solution. But first, let's see what I did.&lt;/p&gt;

&lt;p&gt;Firstly, I made a function to take care of the operation if the number n given to the collatz function was an odd number.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight haskell"&gt;&lt;code&gt;&lt;span class="n"&gt;oddNumber&lt;/span&gt; &lt;span class="o"&gt;::&lt;/span&gt; &lt;span class="kt"&gt;Integer&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="kt"&gt;Integer&lt;/span&gt;
&lt;span class="n"&gt;oddNumber&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Then I did the same for the even numbers.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight haskell"&gt;&lt;code&gt;&lt;span class="n"&gt;evenNumber&lt;/span&gt; &lt;span class="o"&gt;::&lt;/span&gt; &lt;span class="kt"&gt;Integer&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="kt"&gt;Integer&lt;/span&gt;
&lt;span class="n"&gt;evenNumber&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="p"&gt;`&lt;/span&gt;&lt;span class="n"&gt;div&lt;/span&gt;&lt;span class="p"&gt;`&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;I stumbled to find a way to save the number of operations before getting to 1. But finally, I decided to use the original collatz function as an initializer for the collatz' function that would resolve the problem.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight haskell"&gt;&lt;code&gt;&lt;span class="n"&gt;collatz'&lt;/span&gt; &lt;span class="o"&gt;::&lt;/span&gt; &lt;span class="kt"&gt;Integer&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="kt"&gt;Integer&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="kt"&gt;Maybe&lt;/span&gt; &lt;span class="kt"&gt;Integer&lt;/span&gt;
&lt;span class="n"&gt;collatz'&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;
  &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;Nothing&lt;/span&gt;
  &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;Just&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;
  &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;odd&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;collatz'&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;oddNumber&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&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;otherwise&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;collatz'&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;evenNumber&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;The complete solution can be find in the following link:&lt;/p&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://exercism.org/tracks/haskell/exercises/collatz-conjecture/solutions/UlisesAlexanderAM" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--cyzLQac1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dg8krxphbh767.cloudfront.net/meta/og.png" height="460" class="m-0" width="880"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://exercism.org/tracks/haskell/exercises/collatz-conjecture/solutions/UlisesAlexanderAM" rel="noopener noreferrer" class="c-link"&gt;
          UlisesAlexanderAM's solution for Collatz Conjecture in Haskell on Exercism
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;p class="truncate-at-3"&gt;
          Learn from how UlisesAlexanderAM solved Collatz Conjecture in Haskell, and learn how others have solved the exercise.
        &lt;/p&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://res.cloudinary.com/practicaldev/image/fetch/s--0Fijc8eS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dg8krxphbh767.cloudfront.net/meta/favicon-32x32.png" width="32" height="32"&gt;
        exercism.org
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;



</description>
      <category>haskell</category>
      <category>exercism</category>
      <category>feedback</category>
    </item>
    <item>
      <title>Update book library: Slowing down development</title>
      <dc:creator>Ulises Alexander Arguelles Monjaraz</dc:creator>
      <pubDate>Tue, 22 Nov 2022 22:00:00 +0000</pubDate>
      <link>https://dev.to/ulisesaam/update-book-library-slowing-down-development-1mph</link>
      <guid>https://dev.to/ulisesaam/update-book-library-slowing-down-development-1mph</guid>
      <description>&lt;p&gt;This short post, as the title and subtitle, says is to inform you that I'll slow down the development of my book library and what I'll be doing. The past Saturday I pushed some commits that I didn't think were worth pushing into GH, but given that I will slow down the development, I want  anyone visiting the repository knows what I was doing with the code base, the last time I wrote it.&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--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/UlisesAlexanderAM"&gt;
        UlisesAlexanderAM
      &lt;/a&gt; / &lt;a href="https://github.com/UlisesAlexanderAM/book"&gt;
        book
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Library to develop books-related software
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
The book library&lt;/h1&gt;
&lt;h2&gt;
⚠️ This library is in a very early stage&lt;/h2&gt;
&lt;h2&gt;
What is this about?&lt;/h2&gt;
&lt;p&gt;This library is the first step in building my project "Reading Management System" if you want to know more about this project you can read about it in my &lt;a href="https://uaam.hashnode.dev/series/reading-management-system" rel="nofollow"&gt;blog post series&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I begin with a library because I think that more people and projects could benefit from this. Some use cases besides my project are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create CRUDs for libraries, books stores.&lt;/li&gt;
&lt;li&gt;Implement APIs to get info about books in existing bookstores.&lt;/li&gt;
&lt;li&gt;Create personal book inventories.&lt;/li&gt;
&lt;li&gt;And some more that probably I haven't thought about.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
Help Wanted&lt;/h2&gt;
&lt;p&gt;As a beginner in Haskell, I'm pretty sure there are things I have done wrong or could be improved, so I appreciate every help you can provide.&lt;/p&gt;
&lt;p&gt;Some ways you can help me are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mentorship&lt;/li&gt;
&lt;li&gt;Code contributions&lt;/li&gt;
&lt;li&gt;Domain-based knowledge (Librarians, Authors, Editorial staff, etc.)&lt;/li&gt;
&lt;li&gt;Software design&lt;/li&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/UlisesAlexanderAM/book"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Why
&lt;/h2&gt;

&lt;p&gt;After realizing I'm still need more experience to get a job, I switched the focus of my effords.&lt;/p&gt;

&lt;h2&gt;
  
  
  Now what
&lt;/h2&gt;

&lt;p&gt;Starting today, I'll resume solving exercises in &lt;a href="https://exercism.org/profiles/UlisesAlexanderAM"&gt;Exercism&lt;/a&gt;, focusing on my &lt;a href="https://exercism.org/tracks/python"&gt;Python&lt;/a&gt; and &lt;a href="https://exercism.org/tracks/haskell"&gt;Haskell&lt;/a&gt; tracks.&lt;/p&gt;

&lt;p&gt;I'm considering building small projects in Python and Haskell, but I'm not sure if I develop them in both languages in parallel or one for each project.&lt;/p&gt;

&lt;p&gt;The projects I'm considering doing are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Translating and expand my &lt;a href="https://fishshell.com/"&gt;fish shell&lt;/a&gt; script into either Python, Haskell or both. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Continue working on the project &lt;a href="https://uaam.hashnode.dev/a-cat-facts-list"&gt;"A cat facts list"&lt;/a&gt; which I talk in my original blog.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://uaam.hashnode.dev/a-cat-facts-list" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--2_GYiiLr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://hashnode.com/utility/r%3Furl%3Dhttps%253A%252F%252Fcdn.hashnode.com%252Fres%252Fhashnode%252Fimage%252Fupload%252Fv1668205539046%252F5vVbZ0U5H.png%253Fw%253D1200%2526h%253D630%2526fit%253Dcrop%2526crop%253Dentropy%2526auto%253Dcompress%252Cformat%2526format%253Dwebp%2526fm%253Dpng" height="462" class="m-0" width="880"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://uaam.hashnode.dev/a-cat-facts-list" rel="noopener noreferrer" class="c-link"&gt;
          A cat facts list
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;p class="truncate-at-3"&gt;
          This post was inspired by Blog your projects! of Laura Langdon.
The cat facts list project
This project comes from an exercise I did for a technical test for a Python developer job opening. The expected outcome of the exercise was to print to console...
        &lt;/p&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://res.cloudinary.com/practicaldev/image/fetch/s--yEfjAq6B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1665281738915/AhEs5fd_X.png%3Fauto%3Dcompress%2Cformat%26format%3Dwebp%26fm%3Dpng" width="500" height="500"&gt;
        uaam.hashnode.dev
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Create something with the wakatime API, probably to use in my GH profile&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://github.com/UlisesAlexanderAM/" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--cVx-nJ0E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars.githubusercontent.com/u/30351520%3Fv%3D4%3Fs%3D400" height="460" class="m-0" width="460"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://github.com/UlisesAlexanderAM/" rel="noopener noreferrer" class="c-link"&gt;
          UlisesAlexanderAM (Ulises Alexander Arguelles Monjaraz) · GitHub
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;p class="truncate-at-3"&gt;
          UlisesAlexanderAM has 33 repositories available. Follow their code on GitHub.
        &lt;/p&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://res.cloudinary.com/practicaldev/image/fetch/s--uPIa4SpL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.githubassets.com/favicons/favicon.svg" width="32" height="32"&gt;
        github.com
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;An API to get some of my favorites quotes from &lt;a href="https://readwise.io/i/ulises_alexander"&gt;readwise&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Other endeavors
&lt;/h2&gt;

&lt;p&gt;I'm also writing a newsletter about things I found in the week that I think are worth sharing. This newsletter is general, but I'm condering making one for topics related to software engineering, one like the current one but in spanish, my native language, and one related to my hobbies (music, anime, manga, webtoons, webcomics). &lt;/p&gt;

&lt;p&gt;Given that I created a medium account to sync my highlights to readwise, I'll post there, software unrelated content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note: the readwise link is a referral link&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The book library: Code organization</title>
      <dc:creator>Ulises Alexander Arguelles Monjaraz</dc:creator>
      <pubDate>Tue, 22 Nov 2022 18:53:08 +0000</pubDate>
      <link>https://dev.to/ulisesaam/the-book-library-code-organization-b4a</link>
      <guid>https://dev.to/ulisesaam/the-book-library-code-organization-b4a</guid>
      <description>&lt;p&gt;This little post would be about how I had, and I'm planning to organize the code inside my book library. This library is part of the reading management system that I'm working on. But, at the moment, this is where I'm focusing my efforts.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it is now
&lt;/h2&gt;

&lt;p&gt;Originally, I did'n have a structured way to organize the code of my library. Currently, my code is organized like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Type Classes&lt;/li&gt;
&lt;li&gt;Type declarations and newtype declarations with their functions next to them.&lt;/li&gt;
&lt;li&gt;Sum data type definitions.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--m3enSF_5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e45y5v08om8l9sw3dbee.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--m3enSF_5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e45y5v08om8l9sw3dbee.png" alt="Original organization" width="880" height="704"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The base of the new way
&lt;/h2&gt;

&lt;p&gt;Now, I'm planning to implement the following approach, described by &lt;a href="https://ericnormand.me/"&gt;Eric Normand&lt;/a&gt; :&lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;  Actions: Anything that depends on when it is run, or how many times it is run, or both [...].&lt;/li&gt;
&lt;li&gt;  Calculations: Computations from input to output. They always give the same output when you give the same input. [...].&lt;/li&gt;
&lt;li&gt;  Data: Recorded facts about events. [...]. [1, p10]&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How it would be
&lt;/h2&gt;

&lt;p&gt;How this would look without seeing the actual code:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First I would put the data or in this case what is a book. Type classes, type and newtype declarations; type aliases, and data types.&lt;/li&gt;
&lt;li&gt;Then the calculations in this case and by the moment the functions to wrap and unwrap around my defined types, and other operations that don't need to interact with the outside world.&lt;/li&gt;
&lt;li&gt;Finally, I would put the actions, right now the only type of functions that I think could go here are time-related functions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MKv8Kwnu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8pyhd2qa1b1qsd4u3gm0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MKv8Kwnu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8pyhd2qa1b1qsd4u3gm0.png" alt="New organization" width="880" height="588"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  References
&lt;/h3&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;[1] E. Normand, Grokking simplicity: taming complex software with functional thinking. Shelter Island, NY: Manning Publications Company, 2021.&lt;/p&gt;

</description>
      <category>haskell</category>
      <category>library</category>
    </item>
    <item>
      <title>A Reading Management System: Now onwards</title>
      <dc:creator>Ulises Alexander Arguelles Monjaraz</dc:creator>
      <pubDate>Mon, 07 Nov 2022 19:00:00 +0000</pubDate>
      <link>https://dev.to/ulisesaam/a-reading-management-system-now-onwards-303o</link>
      <guid>https://dev.to/ulisesaam/a-reading-management-system-now-onwards-303o</guid>
      <description>&lt;p&gt;I've been a little busy, and I forget to post the second part of this series. But as the saying goes, “Late is better than never”, so let's continue.&lt;/p&gt;

&lt;p&gt;It was the beginning of 2022, and the possibility of returning to on-site classes stood on the horizon. My reading pacing slowed down. Emotionally I was not at my best I felt sadness because of the failure of my project. I had considered dropping out of my college studies. Then, I started looking for ideas for a new project, one of them was the idea of building a library, not the computational one, but after feedback from some friends, I put that project on hold.&lt;/p&gt;

&lt;p&gt;Sometime later, I remembered the idea for the &lt;strong&gt;Reading Management System&lt;/strong&gt; and decided to give it another try.&lt;/p&gt;

&lt;p&gt;This time, I invested more time in the business idea. Thanks to some &lt;strong&gt;Platzi&lt;/strong&gt; courses, I made a &lt;strong&gt;Lean canvas model&lt;/strong&gt; for it. Here I share a tweet I made with the first iteration of the &lt;strong&gt;Lean canvas model&lt;/strong&gt; in Spanish because the course and my target speak Spanish.&lt;/p&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IKWKiKb---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FTArPkLUEAAkLTC.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--veUZGc3d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1253406634782658565/mPHwsLno_normal.jpg" alt="Ulises Alexander A. M. profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Ulises Alexander A. M.
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/ulisesaam"&gt;@ulisesaam&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Como parte del curso de **Modelos de Negocio** de &lt;a href="https://twitter.com/platzi"&gt;@platzi&lt;/a&gt;, impartido por &lt;a href="https://twitter.com/eperea"&gt;@eperea&lt;/a&gt;, hice los siguientes modelos de negocios. &lt;br&gt;&lt;br&gt;Se aceptan dudas, sugerencias y comentarios aquí o por MD. 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      03:34 AM - 18 May 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1526768263765454850" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1526768263765454850" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1526768263765454850" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
After that, I had conversations using the &lt;strong&gt;Mom test methodology&lt;/strong&gt; with possible users and friends to validate and reshape my idea.

&lt;p&gt;The idea is still evolving thanks to the feedback I got during the conversations using the &lt;strong&gt;Mom test methodology&lt;/strong&gt; and changes in how I read the content.&lt;/p&gt;

&lt;p&gt;So I decided to focus first on a library that eases the development of book-related software in Haskell. More on this in the next post of this series.&lt;/p&gt;

</description>
      <category>writing</category>
    </item>
    <item>
      <title>A reading management system: The beginning</title>
      <dc:creator>Ulises Alexander Arguelles Monjaraz</dc:creator>
      <pubDate>Wed, 19 Oct 2022 02:54:15 +0000</pubDate>
      <link>https://dev.to/ulisesaam/a-reading-management-system-the-beginning-1g3l</link>
      <guid>https://dev.to/ulisesaam/a-reading-management-system-the-beginning-1g3l</guid>
      <description>&lt;p&gt;In my first post, I mention that I'm working on a reading management system. So, in this post, I'll tell you why and how this begins.&lt;br&gt;
Glossary&lt;/p&gt;

&lt;p&gt;Before I start telling the project's story, I'd like to present a glossary of terms relevant to the story.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Webcomic: A comic created for the web.&lt;/li&gt;
&lt;li&gt;Webtoons: These are a subtype of webcomics that originated in Korea witch format is vertical, thinking and prioritizing their consumption on mobile devices.&lt;/li&gt;
&lt;li&gt;Light novel: a genre of Japanese literature.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The beginning
&lt;/h2&gt;

&lt;p&gt;My college paused classes momentarily at the start of the Covid-19 pandemic. Thanks to this, I got back into a past hobby, reading webtoons, then most of my reading tracking was on Goodreads.&lt;br&gt;
Webtoons, webcomics, and Goodreads&lt;/p&gt;

&lt;p&gt;I appreciated the UX of the website and Android app but found my experience tracking webtoons a little poor. At this point, I had already followed and dropped some webcomics out of frustration to not recalling where I had stopped reading after some days of not checking the webpage or app where I read them. The situation was better in Webtoon, but this was only better for their webtoons and if said webtoon updates frequently. I tried logging them on Goodreads but fail doing so. Nonetheless, I change to reading mostly only Webtoon's webtoons.&lt;/p&gt;

&lt;h2&gt;
  
  
  A new challenger approaches… Bookwalker and J-Novel Club
&lt;/h2&gt;

&lt;p&gt;Around April, I met Bookwalker as a user. I was avid to read more content, and thanks to a promotion from J-Novel Club, I started using Bookwalker.&lt;/p&gt;

&lt;p&gt;Furthermore, I read Invaders of the Rokujouma?!, one of my favorite light novels. I began reading the LN because I believed I enjoyed the anime version. Also, because of the promotion, I read Seirei Gensouki, Demon King Daimaou, and Otherside Picnic, another favorite light novel. Thankfully, these were in the database of Goodreads, so I tracked them there.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cPb-I2V3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rmztur3jufo0zlgksvtd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cPb-I2V3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rmztur3jufo0zlgksvtd.jpg" alt="Cover of Invaders of the Rokujouma?! Vol. 1" width="880" height="1250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Another semester, another objective
&lt;/h2&gt;

&lt;p&gt;After some time, the university decided to resume classes virtually, and the semester ended, but my passion for reading didn't waver.&lt;/p&gt;

&lt;p&gt;In the fall semester of 2021, I took two courses relevant to this story, one called Management of software projects and the other Technologies for building software. In the latter course, I tried to make the first iteration of what now is the Reading software system as the course project. For the former, I used it as experience since I was the team leader for the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  The failure and the beginning of the end
&lt;/h2&gt;

&lt;p&gt;This project, about which I was passionate, was my first experience as a team leader for a team of software engineers that were also my fellow college students. It was challenging because I was the user, stakeholder, team leader, and software engineer building it. Reflecting on it, my inability to separate my different roles in it was one of the reasons for the downfall of the project. Also, I lack the strictness and temple to make my teammates work timely and correctly on the project.&lt;/p&gt;

&lt;p&gt;There was no significant advance at the end of the semester. So we failed the course. I was sad and frustrated at my inability to make the project work, so I forgot about it.&lt;/p&gt;

&lt;p&gt;I'll leave the story here and continue in another post.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A little about me</title>
      <dc:creator>Ulises Alexander Arguelles Monjaraz</dc:creator>
      <pubDate>Sun, 09 Oct 2022 04:06:54 +0000</pubDate>
      <link>https://dev.to/ulisesaam/a-little-about-me-40mo</link>
      <guid>https://dev.to/ulisesaam/a-little-about-me-40mo</guid>
      <description>&lt;p&gt;My name is Ulises Alexander A.M. For a few years I studied &lt;strong&gt;Computer Engineering&lt;/strong&gt; at the &lt;strong&gt;School of Engineering&lt;/strong&gt; (FI) of the &lt;strong&gt;National Autonomous University of Mexico&lt;/strong&gt; (UNAM). That didn't go as expected, so I dropped out and return to my hometown. Then I started studying &lt;strong&gt;Software Engineering&lt;/strong&gt; at the &lt;strong&gt;School of Business and Technologies&lt;/strong&gt; of the &lt;strong&gt;Universidad Veracruzana&lt;/strong&gt; (UV). I also dropped out from this last program.&lt;/p&gt;

&lt;p&gt;Currently, I'm learning Haskell and functional programming. Furthermore, I know Python, a bit of SQL, Git, GitHub Actions, concepts of agile software development, continuous delivery, and other software development related concepts I've learned in college or by myself. If this paragraph seems like an extraction of a CV or cover letter, it's because that's part of the intention, given that I'm job hunting.&lt;/p&gt;

&lt;p&gt;I've been writing some functions in &lt;em&gt;fish shell&lt;/em&gt; to ease the management a use of my OS. As well, I'm working in a &lt;em&gt;&lt;strong&gt;Reading Management System&lt;/strong&gt;&lt;/em&gt; as well. About this project, I'll talk about it in a series of posts. But for the moment, I can say that I'm focusing first in the design and coding of a book related library. All in Haskell. If you want to help me with the design, code, uses cases, or simply want to check it out, the repository is here: &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--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/UlisesAlexanderAM"&gt;
        UlisesAlexanderAM
      &lt;/a&gt; / &lt;a href="https://github.com/UlisesAlexanderAM/book"&gt;
        book
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;My hobbies are: listening to music, watching anime and series; reading manga, webtoons, webcomics, and books; programming, traveling when possible, going to the movies, going out for a walk.&lt;/p&gt;

&lt;p&gt;I think that is a nice summary of myself. I hope you enjoy my content.&lt;/p&gt;

</description>
      <category>personal</category>
      <category>aboutme</category>
    </item>
  </channel>
</rss>
