<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.5">Jekyll</generator><link href="https://winnercrespo.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://winnercrespo.com/" rel="alternate" type="text/html" /><updated>2024-05-12T10:36:20+00:00</updated><id>https://winnercrespo.com/feed.xml</id><title type="html">Winner Crespo</title><subtitle>I'm a software engineer willing to learn more every day. Let's keep in touch so I can share with you my knowledge and I can learn from you as well.</subtitle><author><name>Winner Crespo</name><email>wistcc@gmail.com</email></author><entry><title type="html">Introducing gameflix.app - Wordle for Netflix</title><link href="https://winnercrespo.com/gameflix/" rel="alternate" type="text/html" title="Introducing gameflix.app - Wordle for Netflix" /><published>2024-05-12T00:00:00+00:00</published><updated>2024-05-12T00:00:00+00:00</updated><id>https://winnercrespo.com/gameflix</id><content type="html" xml:base="https://winnercrespo.com/gameflix/"><![CDATA[<p>If you’re anything like my wife and me, then you know the thrill of diving deep into the Netflix catalog, debating over the best shows and movies, and occasionally engaging in friendly competitions to prove who’s the true Netflix guru. It was during one of these heated debates that the idea for Gameflix was born – a game that combines our love for Netflix with a bit of friendly competition.</p>

<p><a href="gameglix.app">Guess Netflix Shows!</a></p>

<p>Picture this: You and your partner, cozying up on the couch, remote in hand, ready to embark on a journey of Netflix discovery. But this time, there’s a twist. Instead of mindlessly scrolling through titles, you’re about to test your Netflix knowledge in a whole new way – with Gameflix.</p>

<p>So, what exactly is Gameflix, you ask? Well, it’s like Wordle meets Netflix, but with a personal touch. Every day, you’re presented with a new challenge – guess the title of the featured Netflix show or movie using only a limited amount of information. It’s a game that’s as addictive as it is entertaining, and it’s been a labor of love for my wife and me.</p>

<p>Here’s how it works: You start by watching just two seconds of the trailer for the selected Netflix program. It’s a tantalizing glimpse that leaves you hungry for more. Then comes the crucial moment – do you make a guess or skip to the next phase of the game? Choose wisely, my friend, as each decision could bring you closer to victory or lead you further astray.</p>

<p>But fear not, because Gameflix has your back. With each incorrect guess or skip, you’ll receive additional seconds of the trailer and valuable hints about the program’s genre, director, and actors. It’s like your own personal Netflix treasure hunt, with plenty of twists and turns along the way.</p>

<p>And finally, after multiple attempts, you’ll have one last chance to make your final guess from a selection of options. It’s a nail-biting moment that will put your Netflix knowledge to the ultimate test.</p>

<p>But Gameflix isn’t just about winning – it’s about sharing unforgettable moments with the ones you love. Whether you’re playing with your partner, family, or friends, Gameflix brings people together in a shared love for Netflix and friendly competition.</p>

<p>So, what are you waiting for? Go and play <a href="https://gameflix.app">Gameflix</a>. Who knows, you might just discover your new favorite show along the way!</p>]]></content><author><name>Winner Crespo</name><email>wistcc@gmail.com</email></author><summary type="html"><![CDATA[If you’re anything like my wife and me, then you know the thrill of diving deep into the Netflix catalog, debating over the best shows and movies, and occasionally engaging in friendly competitions to prove who’s the true Netflix guru. It was during one of these heated debates that the idea for Gameflix was born – a game that combines our love for Netflix with a bit of friendly competition.]]></summary></entry><entry><title type="html">Learning JavaScript from Scratch: Mastering Functions and Arrays (Part 2)</title><link href="https://winnercrespo.com/js-part-2/" rel="alternate" type="text/html" title="Learning JavaScript from Scratch: Mastering Functions and Arrays (Part 2)" /><published>2024-04-12T00:00:00+00:00</published><updated>2024-04-12T00:00:00+00:00</updated><id>https://winnercrespo.com/js-part-2</id><content type="html" xml:base="https://winnercrespo.com/js-part-2/"><![CDATA[<p>Hey there! Welcome back to our ongoing journey into the wonderful world of coding. In our first post, we laid down the groundwork by covering the basics of JavaScript syntax and structure. Today, we’re diving deeper into the language’s core features, focusing on functions, arrays, and more.</p>

<h3 id="functions-the-building-blocks-of-javascript">Functions: The Building Blocks of JavaScript</h3>

<p>Functions are like little bundles of code that perform specific tasks. They’re incredibly versatile and can be used to encapsulate logic, promote code reusability, and maintain a modular codebase.</p>

<h4 id="declaring-functions">Declaring Functions</h4>

<p>In JavaScript, you can declare functions using the <code class="language-plaintext highlighter-rouge">function</code> keyword. Here’s a simple example:</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">function</span> <span class="nx">greet</span><span class="p">(</span><span class="nx">name</span><span class="p">)</span> <span class="p">{</span>
  <span class="k">return</span> <span class="dl">'</span><span class="s1">Hello, </span><span class="dl">'</span> <span class="o">+</span> <span class="nx">name</span> <span class="o">+</span> <span class="dl">'</span><span class="s1">!</span><span class="dl">'</span>
<span class="p">}</span>
</code></pre></div></div>

<h4 id="calling-functions">Calling Functions</h4>

<p>Once you’ve declared a function, you can call it whenever you need to execute its code. Here’s how you’d call our <code class="language-plaintext highlighter-rouge">greet</code> function from earlier:</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">let</span> <span class="nx">message</span> <span class="o">=</span> <span class="nx">greet</span><span class="p">(</span><span class="dl">'</span><span class="s1">Alice</span><span class="dl">'</span><span class="p">)</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">message</span><span class="p">)</span> <span class="c1">// Output: Hello, Alice!</span>
</code></pre></div></div>

<h4 id="function-expressions">Function Expressions</h4>

<p>In addition to function declarations, JavaScript also supports function expressions, which allow you to define anonymous functions on the fly. Here’s an example:</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">let</span> <span class="nx">add</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">)</span> <span class="p">{</span>
  <span class="k">return</span> <span class="nx">x</span> <span class="o">+</span> <span class="nx">y</span>
<span class="p">}</span>
</code></pre></div></div>

<h3 id="arrays-handling-collections-of-data">Arrays: Handling Collections of Data</h3>

<p>Arrays are a fundamental data structure in JavaScript, allowing you to store collections of data items. They’re incredibly versatile and can be used for everything from simple lists to more complex data structures.</p>

<h4 id="creating-arrays">Creating Arrays</h4>

<p>You can create an array in JavaScript by enclosing a list of values within square brackets. Here’s an example:</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">let</span> <span class="nx">fruits</span> <span class="o">=</span> <span class="p">[</span><span class="dl">'</span><span class="s1">apple</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">banana</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">orange</span><span class="dl">'</span><span class="p">]</span>
</code></pre></div></div>

<h4 id="accessing-array-elements">Accessing Array Elements</h4>

<p>You can access individual elements of an array using square bracket notation. Remember, array indices are zero-based, meaning the first element is at index 0. Here’s how you’d access the second element of our <code class="language-plaintext highlighter-rouge">fruits</code> array:</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">fruits</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="c1">// Output: banana</span>
</code></pre></div></div>

<h4 id="array-methods">Array Methods</h4>

<p>JavaScript provides a variety of built-in methods for working with arrays. From adding and removing elements to sorting and searching, these methods make manipulating arrays a breeze. Here are a few examples:</p>

<ul>
  <li><strong><code class="language-plaintext highlighter-rouge">push()</code> and <code class="language-plaintext highlighter-rouge">pop()</code>:</strong> Add and remove elements from the end of an array.</li>
  <li><strong><code class="language-plaintext highlighter-rouge">shift()</code> and <code class="language-plaintext highlighter-rouge">unshift()</code>:</strong> Add and remove elements from the beginning of an array.</li>
  <li><strong><code class="language-plaintext highlighter-rouge">splice()</code>:</strong> Add, remove, or replace elements at specific positions within an array.</li>
  <li><strong><code class="language-plaintext highlighter-rouge">concat()</code>:</strong> Concatenate two or more arrays.</li>
  <li><strong><code class="language-plaintext highlighter-rouge">indexOf()</code> and <code class="language-plaintext highlighter-rouge">lastIndexOf()</code>:</strong> Find the index of a specific element within an array.</li>
</ul>

<h3 id="putting-it-all-together-practical-examples">Putting It All Together: Practical Examples</h3>

<p>Now that we’ve covered functions and arrays, let’s put our newfound knowledge to the test with some practical examples. How about we write a function that calculates the average of an array of numbers?</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">function</span> <span class="nx">calculateAverage</span><span class="p">(</span><span class="nx">numbers</span><span class="p">)</span> <span class="p">{</span>
  <span class="kd">let</span> <span class="nx">sum</span> <span class="o">=</span> <span class="mi">0</span>
  <span class="k">for</span> <span class="p">(</span><span class="kd">let</span> <span class="nx">number</span> <span class="k">of</span> <span class="nx">numbers</span><span class="p">)</span> <span class="p">{</span>
    <span class="nx">sum</span> <span class="o">+=</span> <span class="nx">number</span>
  <span class="p">}</span>
  <span class="k">return</span> <span class="nx">sum</span> <span class="o">/</span> <span class="nx">numbers</span><span class="p">.</span><span class="nx">length</span>
<span class="p">}</span>

<span class="kd">let</span> <span class="nx">scores</span> <span class="o">=</span> <span class="p">[</span><span class="mi">85</span><span class="p">,</span> <span class="mi">90</span><span class="p">,</span> <span class="mi">75</span><span class="p">,</span> <span class="mi">95</span><span class="p">,</span> <span class="mi">80</span><span class="p">]</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="dl">'</span><span class="s1">Average score:</span><span class="dl">'</span><span class="p">,</span> <span class="nx">calculateAverage</span><span class="p">(</span><span class="nx">scores</span><span class="p">))</span>
</code></pre></div></div>

<h3 id="next-steps-where-to-go-from-here">Next Steps: Where to Go from Here</h3>

<p>Congratulations! You’ve made significant strides in your journey to JavaScript mastery. But our adventure is far from over. In the next post of our series, we’ll explore more advanced JavaScript concepts, including objects, loops, and more.</p>

<p>Until then, keep coding, stay curious, and never stop exploring the wonderful world of JavaScript.</p>

<p>Happy coding!</p>

<p>Stay tuned for Part 3 of our “Learning JavaScript from Scratch” series, coming soon to a browser near you.</p>]]></content><author><name>Winner Crespo</name><email>wistcc@gmail.com</email></author><summary type="html"><![CDATA[Hey there! Welcome back to our ongoing journey into the wonderful world of coding. In our first post, we laid down the groundwork by covering the basics of JavaScript syntax and structure. Today, we’re diving deeper into the language’s core features, focusing on functions, arrays, and more.]]></summary></entry><entry><title type="html">Learning JavaScript from Scratch: A Beginner’s Guide (Part 1)</title><link href="https://winnercrespo.com/js-part-1/" rel="alternate" type="text/html" title="Learning JavaScript from Scratch: A Beginner’s Guide (Part 1)" /><published>2024-04-08T00:00:00+00:00</published><updated>2024-04-08T00:00:00+00:00</updated><id>https://winnercrespo.com/js-part-1</id><content type="html" xml:base="https://winnercrespo.com/js-part-1/"><![CDATA[<p>Hey there! Welcome to the first post of our exciting journey into the world of JavaScript. Whether you’re a seasoned developer looking to expand your skill set or a curious newbie eager to dive into the realm of programming, you’ve come to the right place.</p>

<p>JavaScript, often hailed as the “language of the web,” is a versatile and powerful tool that forms the backbone of countless websites and applications. From dynamic user interfaces to interactive web experiences, mastering JavaScript opens up a world of possibilities.</p>

<p>But hey, let’s not get ahead of ourselves. Before we start building the next big thing, let’s lay down some solid foundations. Today, we’ll kick things off by covering the basics:</p>

<h3 id="getting-started-setting-up-your-environment">Getting Started: Setting Up Your Environment</h3>

<p>First things first, let’s ensure you have the necessary tools to code like a champ. You’ll need:</p>

<ol>
  <li>
    <p><strong>A Text Editor:</strong> Choose your weapon of choice—whether it’s Visual Studio Code, Sublime Text, or good old Notepad, make sure you have a reliable text editor at your disposal.</p>
  </li>
  <li>
    <p><strong>A Web Browser:</strong> JavaScript runs in the browser, so having a modern web browser like Chrome, Firefox, or Edge is essential for testing and debugging your code.</p>
  </li>
</ol>

<h3 id="understanding-the-basics-syntax-and-structure">Understanding the Basics: Syntax and Structure</h3>

<p>Now that we’re all set up, let’s dive into the nitty-gritty of JavaScript syntax. Don’t worry if you’re feeling a tad overwhelmed; we’ll take it slow and steady.</p>

<h4 id="variables-and-data-types">Variables and Data Types</h4>

<p>In JavaScript, variables are used to store data values. They can hold various types of data, including:</p>

<ul>
  <li><strong>Numbers:</strong> Used for numeric values (e.g., <code class="language-plaintext highlighter-rouge">let age = 25;</code>).</li>
  <li><strong>Strings:</strong> Used for textual data (e.g., <code class="language-plaintext highlighter-rouge">let name = 'John';</code>).</li>
  <li><strong>Booleans:</strong> Used for true/false values (e.g., <code class="language-plaintext highlighter-rouge">let isAdult = true;</code>).</li>
</ul>

<h4 id="operators-and-expressions">Operators and Expressions</h4>

<p>JavaScript supports a variety of operators for performing operations on variables and values. From arithmetic operators (+, -, *, /) to comparison operators (==, ===, !=, !==), mastering these tools is crucial for writing efficient code.</p>

<h4 id="control-flow-making-decisions-with-conditionals">Control Flow: Making Decisions with Conditionals</h4>

<p>Conditional statements allow your code to make decisions based on different conditions. From simple if-else statements to more complex switch statements, mastering control flow is key to writing dynamic and responsive code.</p>

<h3 id="putting-it-all-together-your-first-javascript-program">Putting It All Together: Your First JavaScript Program</h3>

<p>Now that we’ve covered the basics, let’s put our newfound knowledge to the test. How about we write a simple JavaScript program that greets the user? Here’s a sneak peek:</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// Welcome to JavaScript!</span>
<span class="kd">let</span> <span class="nx">name</span> <span class="o">=</span> <span class="nx">prompt</span><span class="p">(</span><span class="dl">"</span><span class="s2">What's your name?</span><span class="dl">"</span><span class="p">)</span>
<span class="nx">alert</span><span class="p">(</span><span class="dl">'</span><span class="s1">Hello, </span><span class="dl">'</span> <span class="o">+</span> <span class="nx">name</span> <span class="o">+</span> <span class="dl">'</span><span class="s1">! Welcome to the world of JavaScript!</span><span class="dl">'</span><span class="p">)</span>
</code></pre></div></div>

<h3 id="next-steps-where-to-go-from-here">Next Steps: Where to Go from Here</h3>

<p>Congratulations! You’ve taken your first steps into the exciting world of JavaScript. But our journey is far from over. In the next post of our series, we’ll explore functions, arrays, and more advanced JavaScript concepts.</p>

<p>Until then, keep coding, stay curious, and never stop learning. Remember, the road to JavaScript mastery may be long, but with dedication and perseverance, you’ll get there.</p>

<p>Happy coding!</p>

<p>Stay tuned for Part 2 of our “Learning JavaScript from Scratch” series, coming soon to a browser near you.</p>]]></content><author><name>Winner Crespo</name><email>wistcc@gmail.com</email></author><summary type="html"><![CDATA[Hey there! Welcome to the first post of our exciting journey into the world of JavaScript. Whether you’re a seasoned developer looking to expand your skill set or a curious newbie eager to dive into the realm of programming, you’ve come to the right place.]]></summary></entry><entry><title type="html">Consistency when working out is the key - More than 7 years working out</title><link href="https://winnercrespo.com/consistency-is-the-key-more-than-7-years-working-out/" rel="alternate" type="text/html" title="Consistency when working out is the key - More than 7 years working out" /><published>2021-06-27T00:00:00+00:00</published><updated>2021-06-27T00:00:00+00:00</updated><id>https://winnercrespo.com/consistency-is-the-key-more-than-7-years-working-out</id><content type="html" xml:base="https://winnercrespo.com/consistency-is-the-key-more-than-7-years-working-out/"><![CDATA[<p>If you would rather watch a video about it:</p>

<iframe width="560" height="315" src="https://www.youtube.com/embed/wZ2AB42hz9E" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
<p><br /></p>

<p>Nowadays if I spend a day without exercising, it just makes me think about the benefits that I am missing, things like the boosts in my creativity, the release of stress or the Increase of my energy levels, and don’t even get me started in how it has transformed my body, but honestly 7 years ago I would have never imagined that I would be here today talking to you about fitness.</p>

<p>Maybe because most of my life working out or having a healthy life, was not even a thing for me.</p>

<p>I’ve always been a chubby guy, so obviously, the first thing I tried when I started to think about fitness was to lose my belly fat and especially my chest fat. I remember I tried to go for a run from time to time, play basketball to make it fun, and of course do some abs workout. It didn’t last long.</p>

<p>Then I tried (many times) to lift some weights, since doing that I would be able to get a toner body and hopefully in the process also lose my chest and belly fat. I even did a 3 months program called “Operación cuadritos”/”Operation Abs” in preparation for the summer but again soon enough I got back to not do any workout at all.</p>

<p>I think the reason why I wasn’t able to make it stick was because I didn’t know about the things I’ll share with you today.</p>

<p>But first a disclaimer, I am not a fitness coach nor a professional athlete. I’m just a regular guy, doing regular stuff. Here, I am just sharing my experience about how working really hard, day in and day out, I am and have been able to reach my goals. Let’s continue.</p>

<p>Today I’ll share with you 4 steps I followed to finally make fitness part of my daily routine and the first one was to “discover the why”. As I told you before, at first my reason was specifically to look better. I found out the hard way that for me that was not enough. Looking better won’t make me run that extra mile, looking better won’t give me the motivation I need for the 2 extra repetitions and it wouldn’t either keep me from quitting when it is just super hard.</p>

<p>I remember when I first tried to do a push-up and I couldn’t do even one, but when l looked to my side, I saw my little sister doing several push-ups like it was just a natural thing to do and the feeling of being powerless to do what I wanted, stuck in the back of my head for many years.</p>

<p>In 2014, I decided to not feel powerless anymore and to take control of life in every sense including my body.</p>

<p>Nowadays, working out is just part of my routine just like eating, working, or spending time with family and friends, and it is just because now I don’t do it to get a toner body, I do it because I know it is super important to be able to live happier and hopefully longer and do all the things I love and plan to do.</p>

<p>The second step was to “Make it simple”. What I mean by this is that I needed to create a process that helps me come with the fewer excuses possible.</p>

<p>Something you may do to make it simple, is to choose something that you really like, it being basketball, football, volleyball, tennis, running, bicycle, cross country ski, dancing, chess boxing (yes, that is a sport, do not ask me) whatever it may be but something that you even do just for fun. For me, it was weight lifting.</p>

<p>Another thing is that I needed to plan ahead my workout. I started to decide before coming to the gym what exercises, sets, and repetitions I would do each day. I also started to get my workout clothes ready the night before and picked the nearest gym possible. Again, not giving me a chance to create excuses.</p>

<p>And lastly, start small. In the book The power of less, Leo Babauta says that 5-10 minutes a day is enough to start creating a habit, this way there’s a much lower possibility of making up excuses to not do it and I can assure you that after you create the habit you will feel the need of increasing this time.</p>

<p>The third step was “Set a time”. I’ve tried going to the gym early in the morning and this somewhat works but I am not always a morning person which means that I have skipped it many times just because I wanted to continue sleeping. I’ve tried it during my lunch breaks and also somewhat works but I always felt a bit stressed because I had to hurry back to work and sometimes I wasn’t able to do my workout as planned. I’ve also tried late in the evening and it does not work at all for me, at this time I am completely exhausted from the day and I am not able to do my best at the gym.</p>

<p>What has absolutely worked for me was something that I learned from the book Atomic Habits. There James Clear talks about habit stacking (he also has a blog post about it, that I will leave in the description). There a hire a lot of habits that we take for granted and do not think about them as habits. Let’s take me as an example, after I wake up the first thing I do is to brush my teeth, then I make coffee and then read a book. The way these habits are stacked makes it harder for me to forget to brush my teeth after waking up, for example.</p>

<p>I used this technique and started going to the gym right after work since getting out of the office gives me the perfect trigger to just automatically go to the gym, no excuses.</p>

<p>After you find the time that works best for you, you need to make sure to make it a priority and do not let anything come first. For me, it has been that my chosen time collides with social gatherings and my solution has always been to say “see you after the gym”.</p>

<p>And finally, the fourth step was “the two days rule”. I learned this a year ago from one of my favorite YouTubers Matt D’Avella and it was a game-changer, I’ll leave his video in the description. The two days rule basically says that I cannot skip my workout two days in a row, so if I miss working out today, that means that I must workout tomorrow.</p>

<p>Spending longer times without working out makes it more probable that we lose the habit, so sticking to the rule is crucial. I used to workout weekdays and get weekends off but sometimes I wasn’t able to work out on a Friday meaning that my next workout would be 3 days later and because of this I would lose my habit. With the two days rule is simple, I just need to remember “did I work out yesterday?” If no then I must work out tomorrow, no excuse.</p>

<p>These are the 4 steps that helped me stick to my fitness routine for more than 7 years and counting. Discover the why, make it easy, set a time, and follow the two days rule. Of course, this is not as easy as it sounds, very often life just happens (I get sick, I travel, coronavirus) but the best we can do is to just get back on track as soon as possible, at the end of the day this is a marathon, not a sprint so the important thing is to maintain the habit in the long run.</p>]]></content><author><name>Winner Crespo</name><email>wistcc@gmail.com</email></author><summary type="html"><![CDATA[If you would rather watch a video about it:]]></summary></entry><entry><title type="html">What is CORS?</title><link href="https://winnercrespo.com/what-is-cors/" rel="alternate" type="text/html" title="What is CORS?" /><published>2020-05-24T00:00:00+00:00</published><updated>2020-05-24T00:00:00+00:00</updated><id>https://winnercrespo.com/what-is-cors</id><content type="html" xml:base="https://winnercrespo.com/what-is-cors/"><![CDATA[<p>Have you ever seen this error?</p>

<div style="margin: 10px 50px; color: #e49199;">
Access to fetch at '<a>https://www.test1.com</a>' from origin '<a>https://www.test2.com</a>' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
</div>

<p>If you have, it probably means that you have faced this problem before or that you are facing it right now. Either way, don’t worry, we will learn what is this error about together.</p>

<p>First of all, CORS stands for Cross-Origin Resource Sharing and I think that with this alone we could already start to understand the idea behind CORS. It is a mechanism to allows (or not) different origins (different websites, domains) to have access to resources on a server.</p>

<p>Let’s say that I have a service called <code class="language-plaintext highlighter-rouge">musicinfo.com</code>. Here I have 2 endpoints: one that is public, meaning anyone can do requests from any origin and get information about a song, and another one that is private, meaning that only requests made from <code class="language-plaintext highlighter-rouge">https://www.musicinfo.com</code>.</p>

<p>This is how those request would look like:</p>

<p><strong>Request Headers</strong></p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>... Other headers
authority: www.musicinfo.com
method: GET
path: /song?name=one&amp;artist=u2
origin: https://winnercrespo.com
</code></pre></div></div>

<p><strong>Response Headers</strong></p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>... Other headers
Access-Control-Allow-Origin: *
</code></pre></div></div>

<p>As you can see, on the response we get <code class="language-plaintext highlighter-rouge">Access-Control-Allow-Origin: *</code> meaning that any origin is allowed to access this resource. Another way this could have worked is if we get <code class="language-plaintext highlighter-rouge">Access-Control-Allow-Origin: https://winnercrespo.com</code> meaning that this origin has access. What we get on the <code class="language-plaintext highlighter-rouge">Access-Control-Allow-Origin</code> is dictated by the server so it decides beforehand who has access to what resource.</p>

<p>On the other hand, if I try to do a request to the private endpoint from https://winnercrespo.com we would get a CORS error as we can see in the next example.</p>

<p>Using the Google Seach, I noticed that it does a <code class="language-plaintext highlighter-rouge">Get</code> request to this URL <code class="language-plaintext highlighter-rouge">https://www.google.com/complete/search?q=hola</code> in order to get the autocomplete options.</p>

<div style="text-align: center; margin-top: 10px;">
  <img src="/assets/images/google-search-request.png" />
  <div style="font-size: 0.5em; margin: 10px 0;">Google search request.</div>
</div>

<p>But if I try to do the same request from different website with a piece of code similar to this:</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nx">fetch</span><span class="p">(</span><span class="dl">'</span><span class="s1">https://www.google.com/complete/search?q=hola</span><span class="dl">'</span><span class="p">)</span>
  <span class="p">.</span><span class="nx">then</span><span class="p">(()</span> <span class="o">=&gt;</span> <span class="p">{</span>
    <span class="c1">// handle success</span>
  <span class="p">})</span>
  <span class="p">.</span><span class="k">catch</span><span class="p">(()</span> <span class="o">=&gt;</span> <span class="p">{</span>
    <span class="c1">// handle exception</span>
  <span class="p">});</span>
</code></pre></div></div>

<p>I get the same error we saw before:</p>

<div style="margin: 10px 50px; color: #e49199;">
Access to fetch at '<a>https://www.google.com/complete/search?q=hola</a>' from origin '<a>https://www.winnercrespo.com</a>' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
</div>

<p>To learn more about this topic I would recommend this great post <a>https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS</a> written by the MDN web docs.</p>]]></content><author><name>Winner Crespo</name><email>wistcc@gmail.com</email></author><summary type="html"><![CDATA[Have you ever seen this error? Access to fetch at 'https://www.test1.com' from origin 'https://www.test2.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.]]></summary></entry><entry><title type="html">What is camelCase, PascalCase, kebab-case and snake_case?</title><link href="https://winnercrespo.com/naming-conventions/" rel="alternate" type="text/html" title="What is camelCase, PascalCase, kebab-case and snake_case?" /><published>2020-05-13T00:00:00+00:00</published><updated>2020-05-13T00:00:00+00:00</updated><id>https://winnercrespo.com/naming-conventions</id><content type="html" xml:base="https://winnercrespo.com/naming-conventions/"><![CDATA[<p>Since we cannot define a variable like <code class="language-plaintext highlighter-rouge">fruits in basket</code> because many (or maybe all) programming languages will interpret the space character as the end of the identifier and the beginning of something else, we need to do something like <code class="language-plaintext highlighter-rouge">fruitsInBasket</code>.</p>

<p>Camel, pascal, kebab and snake case (and others) are all naming conventions that we use in computer programming to be able to create compound names for variables, types, functions, clases and other structures in source code.</p>

<h2 id="camelcase">camelCase</h2>
<p>The rules are that we capitalize all the words after the first one.</p>

<table>
  <thead>
    <tr>
      <th>Raw</th>
      <th>camelCase</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>fruits in basket</td>
      <td>fruitsInBasket</td>
    </tr>
    <tr>
      <td>has error</td>
      <td>hasError</td>
    </tr>
    <tr>
      <td>is visible</td>
      <td>isVisible</td>
    </tr>
  </tbody>
</table>

<p>Camel case is commonly used for variables and functions in JavaScript.</p>

<h2 id="pascalcase">PascalCase</h2>
<p>Here we need to capitalize all the words including the first one.</p>

<table>
  <thead>
    <tr>
      <th>Raw</th>
      <th>camelCase</th>
      <th>PascalCase</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>fruits in basket</td>
      <td>fruitsInBasket</td>
      <td>FruitsInBasket</td>
    </tr>
    <tr>
      <td>has error</td>
      <td>hasError</td>
      <td>HasError</td>
    </tr>
    <tr>
      <td>is visible</td>
      <td>isVisible</td>
      <td>IsVisible</td>
    </tr>
  </tbody>
</table>

<p>PascalCase is often preferred by C programmers.</p>

<h2 id="kebab-case">kebab-case</h2>
<p>For this one, we add a dash between each word and all of them are lowercase.</p>

<table>
  <thead>
    <tr>
      <th>Raw</th>
      <th>camelCase</th>
      <th>PascalCase</th>
      <th>kebab-case</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>fruits in basket</td>
      <td>fruitsInBasket</td>
      <td>FruitsInBasket</td>
      <td>fruits-in-basket</td>
    </tr>
    <tr>
      <td>has error</td>
      <td>hasError</td>
      <td>HasError</td>
      <td>has-error</td>
    </tr>
    <tr>
      <td>is visible</td>
      <td>isVisible</td>
      <td>IsVisible</td>
      <td>is-visible</td>
    </tr>
  </tbody>
</table>

<p>HTML5 attributes can start with <code class="language-plaintext highlighter-rouge">data-</code> like <code class="language-plaintext highlighter-rouge">data-name</code>. Also, CSS uses dashes in property-names like background-color.</p>

<h2 id="snake_case">snake_case</h2>
<p>In contrast to the kebab case, for the snake case we add an underscore instead.</p>

<table>
  <thead>
    <tr>
      <th>Raw</th>
      <th>camelCase</th>
      <th>PascalCase</th>
      <th>kebab-case</th>
      <th>snake_case</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>fruits in basket</td>
      <td>fruitsInBasket</td>
      <td>FruitsInBasket</td>
      <td>fruits-in-basket</td>
      <td>fruits_in_basket</td>
    </tr>
    <tr>
      <td>has error</td>
      <td>hasError</td>
      <td>HasError</td>
      <td>has-error</td>
      <td>has_error</td>
    </tr>
    <tr>
      <td>is visible</td>
      <td>isVisible</td>
      <td>IsVisible</td>
      <td>is-visible</td>
      <td>is_visible</td>
    </tr>
  </tbody>
</table>

<p>Many programmers use underscores especially in SQL databases for things like <code class="language-plaintext highlighter-rouge">creation_date</code>, <code class="language-plaintext highlighter-rouge">company_name</code>, etc.</p>

<p>Some <strong>benefits</strong> that naming conventions bring are:</p>
<ul>
  <li><strong>Consistency.</strong> Since naming something is one of the hardest jobs of a programmer, at least we can agree on a convention and be consistent about it.</li>
  <li><strong>Better understanding.</strong> Compound names explain a lot better than one word or one character the purpose of the structure.</li>
  <li><strong>Readability.</strong> Enhances the ability to read the code.</li>
  <li><strong>Automation.</strong> Enables the use of automated refactoring and search and replace tools.</li>
</ul>]]></content><author><name>Winner Crespo</name><email>wistcc@gmail.com</email></author><summary type="html"><![CDATA[Since we cannot define a variable like fruits in basket because many (or maybe all) programming languages will interpret the space character as the end of the identifier and the beginning of something else, we need to do something like fruitsInBasket.]]></summary></entry><entry><title type="html">Chart xkcd vue wrapper</title><link href="https://winnercrespo.com/chart-xkcd/" rel="alternate" type="text/html" title="Chart xkcd vue wrapper" /><published>2019-08-30T00:00:00+00:00</published><updated>2019-08-30T00:00:00+00:00</updated><id>https://winnercrespo.com/chart-xkcd</id><content type="html" xml:base="https://winnercrespo.com/chart-xkcd/"><![CDATA[<p>A friend shared <a href="https://github.com/timqian/chart.xkcd">this</a> great library the other day and I fell in love with it automatically. It’s very beautiful the way these charts look like they were hand-drawn.</p>

<p>It is also very easy to use, you only need to include the script tag on your page and add a <code class="language-plaintext highlighter-rouge">svg</code> element where the chart will be rendered. Learn more about it on the <a href="https://timqian.com/chart.xkcd/">documentation</a>.</p>

<p>I thought it would be cool to have a wrapper to use it very easy on my Vue projects but there were none at that moment so I decided to create my own <a href="https://github.com/wistcc/chart.xkcd-vue-wrapper">chart.xkcd-vue-wrapper</a>.</p>

<p>It’s also pretty easy to use, you just need to install it <code class="language-plaintext highlighter-rouge">yarn add chart.xkcd-vue-wrapper</code> or <code class="language-plaintext highlighter-rouge">npm i chart.xkcd-vue-wrapper</code> and then use the components like this:</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="o">&lt;</span><span class="nx">template</span><span class="o">&gt;</span>
  <span class="o">&lt;</span><span class="nx">div</span> <span class="nx">id</span><span class="o">=</span><span class="dl">"</span><span class="s2">app</span><span class="dl">"</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="nx">ChartLine</span> <span class="p">:</span><span class="nx">config</span><span class="o">=</span><span class="dl">"</span><span class="s2">line</span><span class="dl">"</span> <span class="o">/&gt;</span>
    <span class="o">&lt;</span><span class="nx">ChartBar</span> <span class="p">:</span><span class="nx">config</span><span class="o">=</span><span class="dl">"</span><span class="s2">bar</span><span class="dl">"</span> <span class="o">/&gt;</span>
    <span class="o">&lt;</span><span class="nx">ChartPie</span> <span class="p">:</span><span class="nx">config</span><span class="o">=</span><span class="dl">"</span><span class="s2">pie</span><span class="dl">"</span> <span class="o">/&gt;</span>
  <span class="o">&lt;</span><span class="sr">/div</span><span class="err">&gt;
</span><span class="o">&lt;</span><span class="sr">/template</span><span class="err">&gt;
</span>
<span class="o">&lt;</span><span class="nx">script</span><span class="o">&gt;</span>
<span class="k">import</span> <span class="p">{</span> <span class="nx">ChartLine</span><span class="p">,</span>  <span class="nx">ChartBar</span><span class="p">,</span> <span class="nx">ChartPie</span> <span class="p">}</span> <span class="k">from</span> <span class="dl">'</span><span class="s1">chart.xkcd-vue-wrapper</span><span class="dl">'</span><span class="p">;</span>

<span class="k">export</span> <span class="k">default</span> <span class="p">{</span>
  <span class="na">name</span><span class="p">:</span> <span class="dl">'</span><span class="s1">App</span><span class="dl">'</span><span class="p">,</span>
  <span class="na">components</span><span class="p">:</span> <span class="p">{</span>
    <span class="nx">ChartLine</span><span class="p">,</span>
    <span class="nx">ChartBar</span><span class="p">,</span>
    <span class="nx">ChartPie</span><span class="p">,</span>
  <span class="p">},</span>
  <span class="na">data</span><span class="p">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">return</span> <span class="p">{</span>
      <span class="na">line</span><span class="p">:</span> <span class="p">{</span>
        <span class="na">title</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Bugs to fix in a sprint</span><span class="dl">'</span><span class="p">,</span>
        <span class="na">xLabel</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Day</span><span class="dl">'</span><span class="p">,</span>
        <span class="na">yLabel</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Bugs</span><span class="dl">'</span><span class="p">,</span>
        <span class="na">data</span><span class="p">:</span> <span class="p">{</span>
          <span class="na">labels</span><span class="p">:[</span><span class="dl">'</span><span class="s1">1</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">2</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">3</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">4</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">5</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">6</span><span class="dl">'</span><span class="p">,</span><span class="dl">'</span><span class="s1">7</span><span class="dl">'</span><span class="p">],</span>
          <span class="na">datasets</span><span class="p">:</span> <span class="p">[{</span>
            <span class="na">label</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Plan</span><span class="dl">'</span><span class="p">,</span>
            <span class="na">data</span><span class="p">:</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">6</span> <span class="p">,</span><span class="mi">7</span><span class="p">],</span>
          <span class="p">},</span> <span class="p">{</span>
            <span class="na">label</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Reality</span><span class="dl">'</span><span class="p">,</span>
            <span class="na">data</span><span class="p">:</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">7</span><span class="p">],</span>
          <span class="p">}]</span>
        <span class="p">},</span>
      <span class="p">},</span>
      <span class="na">bar</span><span class="p">:</span> <span class="p">{</span>
        <span class="na">title</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Bugs your coworker fixes vs you</span><span class="dl">'</span><span class="p">,</span>
        <span class="na">data</span><span class="p">:</span> <span class="p">{</span>
          <span class="na">labels</span><span class="p">:[</span><span class="dl">'</span><span class="s1">your coworker</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">you</span><span class="dl">'</span><span class="p">],</span>
          <span class="na">datasets</span><span class="p">:</span> <span class="p">[{</span>
            <span class="na">data</span><span class="p">:</span> <span class="p">[</span><span class="mi">100</span><span class="p">,</span> <span class="mi">2</span><span class="p">],</span>
          <span class="p">}]</span>
        <span class="p">},</span>
      <span class="p">},</span>
      <span class="na">pie</span><span class="p">:</span> <span class="p">{</span>
        <span class="na">title</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Bugs you create vs your whole team</span><span class="dl">'</span><span class="p">,</span>
        <span class="na">data</span><span class="p">:</span> <span class="p">{</span>
          <span class="na">labels</span><span class="p">:[</span> <span class="dl">'</span><span class="s1">you</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">your team</span><span class="dl">'</span><span class="p">],</span>
          <span class="na">datasets</span><span class="p">:</span> <span class="p">[{</span>
            <span class="na">data</span><span class="p">:</span> <span class="p">[</span><span class="mi">100</span><span class="p">,</span> <span class="mi">2</span><span class="p">],</span>
          <span class="p">}]</span>
        <span class="p">}</span>
      <span class="p">},</span> 
    <span class="p">};</span>
  <span class="p">},</span>
<span class="p">}</span>
<span class="o">&lt;</span><span class="sr">/script</span><span class="err">&gt;
</span></code></pre></div></div>

<p>I hope that you like using beautiful and funny charts on your projects and that this wrapper is useful for you.</p>

<p>Happy coding!</p>]]></content><author><name>Winner Crespo</name><email>wistcc@gmail.com</email></author><summary type="html"><![CDATA[A friend shared this great library the other day and I fell in love with it automatically. It’s very beautiful the way these charts look like they were hand-drawn.]]></summary></entry><entry><title type="html">Books I have read: first semester 2018</title><link href="https://winnercrespo.com/books-i-have-read-first-semester-2018/" rel="alternate" type="text/html" title="Books I have read: first semester 2018" /><published>2018-07-24T00:00:00+00:00</published><updated>2018-07-24T00:00:00+00:00</updated><id>https://winnercrespo.com/books-i-have-read-first-semester-2018</id><content type="html" xml:base="https://winnercrespo.com/books-i-have-read-first-semester-2018/"><![CDATA[<p>Let’s be honest, I haven’t been a reader person my entire life. Sure, I’ve read tons of blog post, short stories, and a lot of tweets, but just the idea of start reading a book scared me. For some reason, I always found it a very boring activity.</p>

<p>However, I know the great benefits this could bring to me. This year I decided to make this a habit in my life. Today I want to share with you the books I read this first semester of the year.</p>

<h2 id="ready-player-one-by-ernest-cline"><a href="https://amzn.to/2NKIRrB" target="_blank">Ready Player One by Ernest Cline</a></h2>
<p>I love this book. Once I started reading it, I wasn’t able to stop until the end.</p>

<p>The world is a chaotic place in the year 2045 and people get to escape this reality using the OASIS, a virtual reality game. Some hidden puzzles can give someone massive power and fortune. This cannot end into the wrong hands or everyone could lose the freedom this new world provides.</p>

<h2 id="armada-by-ernest-cline"><a href="https://amzn.to/2JSyVK2" target="_blank">Armada by Ernest Cline</a></h2>
<p>After loving Ready Player One, I decided to read another book by the same author. Armada is a very engaging story where the Zack Lightman gets to use his knowledge in science fiction books, movies, and video games to try to save the world.</p>

<h2 id="the-power-of-less-the-fine-art-of-limiting-yourself-to-the-essential-by-leo-babauta"><a href="https://amzn.to/2uNjCxp" target="_blank">The Power Of Less: The Fine Art of Limiting Yourself to the Essential by Leo Babauta</a></h2>
<p>Thanks to this book I was able to create the habit of doing a to-do list starting the day, giving priority to the most important things and also to not forget others through the day. This helps me get more things done every day.</p>

<h2 id="the-10x-rule-the-only-difference-between-success-and-failure-by-grant-cardone"><a href="https://amzn.to/2A4i2MO" target="_blank">The 10X Rule: The Only Difference Between Success and Failure by Grant Cardone</a></h2>
<p>In order to achieve big goals, you need to start taking massive actions since operating in normal action won’t get you there. Discover the reasons why people fail and others succeed, among other things.</p>

<h2 id="think-and-grow-rich-by-napoleon-hill"><a href="https://amzn.to/2A9vzTt" target="_blank">Think and Grow Rich by Napoleon Hill</a></h2>
<p>Following the principles explained by the author, you could get richness in any aspect of your life that you want. These principles will help you to  convert your burning desire in its material form.</p>

<p>I would love to get some book recommendations in the comments. Also, if you have already read the books I mentioned, let me know what you think about them.</p>]]></content><author><name>Winner Crespo</name><email>wistcc@gmail.com</email></author><summary type="html"><![CDATA[Let’s be honest, I haven’t been a reader person my entire life. Sure, I’ve read tons of blog post, short stories, and a lot of tweets, but just the idea of start reading a book scared me. For some reason, I always found it a very boring activity.]]></summary></entry><entry><title type="html">How working remotely changed my life</title><link href="https://winnercrespo.com/how-working-remotely-changed-my-life/" rel="alternate" type="text/html" title="How working remotely changed my life" /><published>2018-07-19T00:00:00+00:00</published><updated>2018-07-19T00:00:00+00:00</updated><id>https://winnercrespo.com/how-working-remotely-changed-my-life</id><content type="html" xml:base="https://winnercrespo.com/how-working-remotely-changed-my-life/"><![CDATA[<p>When I started working remotely on my full-time job my life changed. I had worked remotely before but only on part-time jobs that I worked on at night and I actually wasn’t getting the benefits of it.</p>

<p>Working from home has made me happier and a lot more productive. Although, not everything is always good. Let’s review some advantages and disadvantages I have experienced myself working remotely.</p>

<h2 id="upsides">Upsides</h2>
<ul>
  <li>
    <p>:oncoming_automobile: <strong>No commute.</strong> I mention this one first because coming to the office was my bigger problem. I used to waste between an hour and an hour and a half to get to the office but on a bad day that could become MORE THAN TWO HOURS on a traffic jam. To be honest, I don’t really like to drive and taking this amount of traffic EVERYDAY to get to the office and the same struggle to get back home was making me sick. I always started my day with a grumpy face which doesn’t let me enjoy my day at all.</p>

    <p>If more people start working from home, maybe those traffic jams could even disappear.
:sparkles:We should always dream big!:sparkles:</p>
  </li>
  <li>
    <p>:apple: <strong>Better health.</strong> Frequently, I found myself eating fast food and most of the time the reason was that I didn’t find anything else, and I say <code class="language-plaintext highlighter-rouge">most of the time</code> because who doesn’t like fast food? :wink:</p>

    <p>Now I cook my own meal almost every day which let me eat healthier.</p>

    <p>Going to the gym has actually been harder since I have to get out to get there and usually get some traffic (did I already say I don’t like to drive?). Before I was subscribed to a gym which was less than 5 minutes from work and I used to go every day after work hours.</p>

    <p>However, I still go every day to the gym and sometimes I also wake up earlier and go for a run in the neighborhood.</p>
  </li>
  <li>
    <p>:computer: <strong>Improve productivity.</strong> Not being at the office reduces the possible distractions you could get from a coworker, hence I get to stay longer in the <code class="language-plaintext highlighter-rouge">zone</code>.</p>
  </li>
  <li>
    <p>:palm_tree: <strong>You can work anywhere.</strong> And for this, I mean <em>for any company and from any place in the world</em>. My current employer is based in the US which wasn’t an option for me before. Also, I’ve done some long trips to different countries and that hasn’t stopped me to keep getting things done.</p>
  </li>
  <li>
    <p>:moneybag: <strong>More money in the piggy bank.</strong> Since you don’t need to commute anymore you will save those expenses which usually tend to be pretty high. Also, you don’t have to spend money on office clothes, I really dislike this style.</p>
  </li>
</ul>

<h2 id="downsides">Downsides</h2>
<ul>
  <li>
    <p>:house: <strong>Sick of being at home.</strong> Since I am a home person, I don’t have this problem but I know many people that could go crazy.</p>

    <p>However, I practice some things to prevent this, like going from time to time to a cafe or a friend’s house who also works remotely.</p>
  </li>
  <li>
    <p>:video_game: <strong>Distractions.</strong> Even though you eliminate the office distractions, you get others which are even harder to prevent. At home, you have your family, your bed, the tv, the game console, among other things which could easily get you interrupted.</p>

    <p>I had to tell my family that when the door of my office is closed I shouldn’t be distracted too much and they learned it very fast. I also created specific schedules to use the amenities of the house so I don’t end up investing the whole day on them.</p>
  </li>
  <li>
    <p>:date: <strong>Lack of routine.</strong> On most of the remote works, you have the flexibility to choose when to work and not necessarily have a routine.</p>

    <p>This is fatal for me. I have to define a very specific schedule to get work done, if not I could procrastinate very easily. What works best for me is to dedicate 8 hours straight for work. Of course, if I have to go out in the middle of the day to run some errands I’ll do it and then complete my work-day after.</p>
  </li>
  <li>
    <p>:sunglasses: <strong>Work/life balance.</strong> There’s a very thin line that divides work from life and this could make you work more or work less. It could be hard to stop working since you don’t have to get your things at 5 pm to go home, or to start working since you don’t need to get prepared to go to the office.</p>

    <p>Having a specific time to do my job (as I explained before), has helped me not cross this line. I start and finish to work every day at the same time.</p>
  </li>
</ul>

<p>As everything in life, working remotely doesn’t work for everyone. I encourage you to try it out if you haven’t so you can feel the differences by yourself and then you have the needed experience to know what is best for you.</p>

<p>If you want to learn more about this, I would recommend you to read this book <a href="https://amzn.to/2LhGzmK" target="_blank">Remote: Office Not Required</a> by David Heinemeier Hansson aka <a href="https://twitter.com/dhh" target="_blank">DHH</a>. Please leave in the comments how working remotely has changed your life positively or negatively, I would love to read your story.</p>]]></content><author><name>Winner Crespo</name><email>wistcc@gmail.com</email></author><summary type="html"><![CDATA[When I started working remotely on my full-time job my life changed. I had worked remotely before but only on part-time jobs that I worked on at night and I actually wasn’t getting the benefits of it.]]></summary></entry><entry><title type="html">The power of saying thank you</title><link href="https://winnercrespo.com/the-power-of-saying-thank-you/" rel="alternate" type="text/html" title="The power of saying thank you" /><published>2018-07-13T00:00:00+00:00</published><updated>2018-07-13T00:00:00+00:00</updated><id>https://winnercrespo.com/the-power-of-saying-thank-you</id><content type="html" xml:base="https://winnercrespo.com/the-power-of-saying-thank-you/"><![CDATA[<p>We are always getting better in our hard skills so we can be a better professional or to be able to contribute more and in a more effective way to the project, but how much time do we invest improving our soft skills to accomplish the same goal?</p>

<p>One very important thing of the job is to feel good with the company’s culture, with how the team socializes with each other every day, with how collaborative everyone is, and we play a key role in making this a success.</p>

<p>Today I just want to encourage you to do a very simple and not time-consuming thing that could create better relationships between everyone in the company: <strong>Just say thank you</strong>.</p>

<p>Our parents have taught us since we even couldn’t speak to say thank you constantly, but we forgot to do it frequently or simply we find it hard to do and just ignore it.</p>

<p>Thanking another person has the effect of making him/her feel appreciated, feel that what he/she does is important to others. This could increase their desire to keep doing it and in many cases even to improve it.</p>

<p>It is very usual to happen when the relationship is <code class="language-plaintext highlighter-rouge">boss -&gt; team member</code> since the regular flow of work is that the boss asks for something and the team member creates a solution for it, so the boss says thanks for the obtained results. Is the same between coworkers, when someone helps another to understand something (for example) and after that he/she says thanks. However, even in those very straightforward situations we sometimes fail to thank the other person for his/her hard work.</p>

<p>In others kind of relationships seems a bit harder to do this, like <code class="language-plaintext highlighter-rouge">team member -&gt; boss</code> but I am very sure that most of the time there is always something to be grateful for. Maybe he/she is a good communicator, is very motivator, has a lot of confidence in you, is a good mentor to you, does a lot of things that benefit the team, is very organized, give you autonomy, has a good vision, among other characteristics. Say thank you for that.</p>

<p>I practice this myself and I can tell you it could have a positive impact. Once I found myself thinking about all the great things my boss does every day and how amazing he is, most of those things don’t affect me directly but still those are very important things that improve the company. Out of the blue, I sent him a very short and precise text saying thank you for his hard work, he was surprised to receive this message and told me that at this moment he was dealing with so much and that this makes him feel better and be more enthusiastic about his work.</p>

<p>Of course, this depends on everyone personality. When you do this two things could happen: you see the results immediately or nothing. When nothing happens don’t get discouraged, just keep doing it, you will get to see the results later.</p>

<p>So, just say thank you every now and then, be very honest while doing it and you will perceive how the company’s culture keeps getting better every day.</p>

<p>Let me know anything I didn’t mention here, and also if you have any experience yourself in the topic share it in the comments.</p>

<p>Cheers!</p>]]></content><author><name>Winner Crespo</name><email>wistcc@gmail.com</email></author><summary type="html"><![CDATA[We are always getting better in our hard skills so we can be a better professional or to be able to contribute more and in a more effective way to the project, but how much time do we invest improving our soft skills to accomplish the same goal?]]></summary></entry></feed>