<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Oscar Forner</title>
    <link>https://oscar.forner.es/projects/</link>
    <description>Recent content on Oscar Forner</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language><atom:link href="https://oscar.forner.es/projects/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>ARM C Compiler (ACC)</title>
      <link>https://oscar.forner.es/projects/acc/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://oscar.forner.es/projects/acc/</guid>
      <description>ACC is a pet project with the purpose of improving my knowledge of three topics. The C language, compilers and the ARM assembly. I think this is a good exercise to go deep into both topics.
The ACC is a LALR(1) parser, that means it is a Look-Ahead Left-to-Right parser.
The current Grammar of the ACC is the following:
S -&amp;gt; int main &amp;#34;(&amp;#34; &amp;#34;)&amp;#34; &amp;#34;{&amp;#34; E &amp;#34;}&amp;#34; E -&amp;gt; return I; | if &amp;#34;(&amp;#34; B &amp;#34;)&amp;#34; &amp;#34;{&amp;#34; E &amp;#34;}&amp;#34; | if &amp;#34;(&amp;#34; B &amp;#34;)&amp;#34; &amp;#34;{&amp;#34; E &amp;#34;}&amp;#34; else &amp;#34;{&amp;#34; E &amp;#34;}&amp;#34; I -&amp;gt; [0-9]+ B -&amp;gt; I &amp;lt; I | I &amp;lt;= I | I == I | I &amp;gt;= I | I &amp;gt; I | !</description>
    </item>
    
    <item>
      <title>Prefix Tree Comparison</title>
      <link>https://oscar.forner.es/projects/tries/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://oscar.forner.es/projects/tries/</guid>
      <description>Trie, Ternary Search Tree (TST) and Radix Tree is aimed to compare the performance of these three data structures. The three data structure are an implementation of the abstract data type dictionary, but they are enhanced with an extra method called &amp;ldquo;keys&amp;rdquo;. That method returns the keys with that share a provided prefix. This can useful to use it in tasks such as autocomplete searches.
The study performed was using std::map and std::unordered_map as baseline for the performance.</description>
    </item>
    
    <item>
      <title>Resume Application</title>
      <link>https://oscar.forner.es/projects/resume/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://oscar.forner.es/projects/resume/</guid>
      <description>This resume is an interactive application written in Go and using the Bubble Tea library it can be found in https://github.com/maitesin/tui-cv/.
The idea for this project was inspired by S0ulshake&amp;rsquo;s CV, however, I preferred to use other technologies, since I do not know JavaScript.
I have packaged the application inside a Docker image, so people can run it on their computers with the following command.
docker run -it --rm maitesin/resume </description>
    </item>
    
    <item>
      <title>Yaus, Yet Another URL Shortener</title>
      <link>https://oscar.forner.es/projects/yaus/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://oscar.forner.es/projects/yaus/</guid>
      <description>YAUS, Yet Another URL Shortener, was first written in Python3 using the Flask web framework, and deployed in Heroku: https://yaus.dev. The code of that version can be seen here: https://github.com/maitesin/yaus/tree/e938b0d218849f50df7ab5a4a46923faf235762b. However, the project has been rewritten in Go and I have applied some Domain Driven Design (DDD) and Command Query Segregation (CQS) patterns.
The purpose of this project is for me to tinker and practice some development methods or design I want to test.</description>
    </item>
    
  </channel>
</rss>
