<?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: Miguel</title>
    <description>The latest articles on DEV Community by Miguel (@mccabiles).</description>
    <link>https://dev.to/mccabiles</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%2F57121%2F77a1c74c-57d3-4ea2-9cf0-ac0fc89383c7.jpg</url>
      <title>DEV Community: Miguel</title>
      <link>https://dev.to/mccabiles</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mccabiles"/>
    <language>en</language>
    <item>
      <title>I am publicly committing to the #100DaysOfCode!</title>
      <dc:creator>Miguel</dc:creator>
      <pubDate>Sat, 04 Apr 2020 17:13:57 +0000</pubDate>
      <link>https://dev.to/mccabiles/i-am-publicly-committing-to-the-100daysofcode-m4n</link>
      <guid>https://dev.to/mccabiles/i-am-publicly-committing-to-the-100daysofcode-m4n</guid>
      <description>&lt;h2&gt;
  
  
  Commitment
&lt;/h2&gt;

&lt;p&gt;April 5, 2020: I am committing to the #100DaysOfCode challenge!&lt;/p&gt;

&lt;p&gt;My reason for taking part in this challenge is to sharpen my skills in tech that I know and love. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I want to create flow between the day-to-day and build momentum towards making coding a habit outside of work.&lt;/li&gt;
&lt;li&gt;I want to use this time to develop my portfolio and showcase my work.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Plan
&lt;/h2&gt;

&lt;p&gt;For the challenge, I want to see a project from start to finish. I will build a &lt;strong&gt;mobile app using Vue and Quasar&lt;/strong&gt; to solidify my skills as a Vue developer while also learning a new framework at the same time. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The app I will work on would be &lt;strong&gt;Budgetier&lt;/strong&gt;, an expense tracking app.&lt;/li&gt;
&lt;li&gt;I will track the time I spend on the challenge.&lt;/li&gt;
&lt;li&gt;I will use Notion as my project management tool.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Goal
&lt;/h2&gt;

&lt;p&gt;By the end of the challenge:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I will have finished Budgetier and deployed it to the Play Store.&lt;/li&gt;
&lt;li&gt;I will not have skipped a day.&lt;/li&gt;
&lt;li&gt;I will have a portfolio up.&lt;/li&gt;
&lt;li&gt;I will work on the challenge without compromising my health and relationships!&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>100daysofcode</category>
      <category>vue</category>
    </item>
    <item>
      <title>Tips on interviewing junior devs?</title>
      <dc:creator>Miguel</dc:creator>
      <pubDate>Tue, 14 Jan 2020 16:41:45 +0000</pubDate>
      <link>https://dev.to/mccabiles/tips-on-interviewing-junior-devs-3i8p</link>
      <guid>https://dev.to/mccabiles/tips-on-interviewing-junior-devs-3i8p</guid>
      <description>&lt;p&gt;Hey guys,&lt;/p&gt;

&lt;p&gt;Our company will be hiring new devs in the coming days, and I volunteered to be involved in the hiring process, specifically with face-to-face interviews.&lt;br&gt;
For background, I am also a software engineer and am taking on additional responsibilities for the growth of both our company as well as myself.&lt;/p&gt;

&lt;p&gt;Do you have any tips on what to look for when interviewing junior devs?&lt;br&gt;
Are there any red flags that I should be wary of? How about green flags?&lt;br&gt;
What questions can I ask that would tell me a lot about a developer? We do have an extensive list of questions prepared but I would like to see if we might have missed any good ones.&lt;/p&gt;

&lt;p&gt;Thanks!&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>career</category>
      <category>help</category>
    </item>
    <item>
      <title>A House is not a Home: Vue Slots Explained</title>
      <dc:creator>Miguel</dc:creator>
      <pubDate>Wed, 03 Jul 2019 17:15:32 +0000</pubDate>
      <link>https://dev.to/mccabiles/a-house-is-not-a-home-vue-slots-explained-1747</link>
      <guid>https://dev.to/mccabiles/a-house-is-not-a-home-vue-slots-explained-1747</guid>
      <description>&lt;p&gt;&lt;em&gt;Cover from &lt;a href="https://www.freepik.com/free-photos-vectors/design"&gt;Design vector created by freepik - &lt;/a&gt;&lt;a href="http://www.freepik.com"&gt;www.freepik.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Vue slots are a way of telling Vue where to place any content we write within a component's body. Today, we will be building houses to learn about Vue slots!&lt;/p&gt;

&lt;p&gt;Before we begin, let's imagine Vue components as houses. For us to be able to enter a house, we would need to use a door; In our component, our &lt;code&gt;&amp;lt;slot&amp;gt;&lt;/code&gt; tags would serve as a door for our other components to enter. Let's make our first house!&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;
 

&lt;p&gt;We use the &lt;code&gt;slot&lt;/code&gt; element to tell our component where to display content. If we were to include our &lt;code&gt;HouseComponent&lt;/code&gt; into a village component like so:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;We see that our component placed all its child elements into the living room. Vue does this through the &lt;strong&gt;default slot&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adding Rooms with Named Slots
&lt;/h2&gt;

&lt;p&gt;Having a house with just a living room isn't a comfortable place to live in; let's introduce more rooms into our house component using &lt;strong&gt;named slots&lt;/strong&gt;!&lt;/p&gt;

&lt;p&gt;We can add the &lt;code&gt;name&lt;/code&gt; attribute to our &lt;code&gt;slots&lt;/code&gt; to, you guessed it, name them. This gives us the freedom to position parts of the content within our template.&lt;br&gt;
Let's refactor our &lt;code&gt;HouseComponent&lt;/code&gt; by adding more rooms and placing other elements within those rooms:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Let us notice two things about our new &lt;code&gt;House&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;First, we added a &lt;strong&gt;named slot&lt;/strong&gt; called &lt;code&gt;dining-room&lt;/code&gt; at line 8. To put content into this slot, we use the &lt;code&gt;v-slot&lt;/code&gt; syntax in line 22. From here, we can see that &lt;code&gt;chubbs&lt;/code&gt; and &lt;code&gt;food&lt;/code&gt; are both placed between the two &lt;code&gt;chairs&lt;/code&gt; in the &lt;code&gt;dining-room&lt;/code&gt;: exactly where we placed our &lt;code&gt;slot&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Second, everything else between the &lt;code&gt;&amp;lt;house-component&amp;gt;&lt;/code&gt; tags that are not part of the named slots were rendered at the &lt;strong&gt;default slot&lt;/strong&gt;, ie. within the &lt;code&gt;living-room&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;When this is rendered onto our page, it will look like this:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;As we can see, we can use named slots to define layout for our markup. This makes components easy to compose and reuse. However, let's take it a notch higher, and introduce the concept of &lt;strong&gt;scoped slots&lt;/strong&gt; to further improve our humble home.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adding Furniture with Scoped Slots
&lt;/h2&gt;

&lt;p&gt;Rooms in a house are not only defined by their position within the building, but also the activities that can be done within them! In the same way, Vue slots are not only a means of composing your components visually, but may also be used to expose interactions and data. This is done through &lt;strong&gt;scoped slots&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Components can bind data or methods to slots, like how they would with props. This allows the parent to interact with the component through the scoped slot. Let's add interactions to our &lt;code&gt;HouseComponent&lt;/code&gt; to really call it a "home".&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;There are a few things we should dissect before moving on.&lt;br&gt;
First, notice that we added &lt;code&gt;v-bind&lt;/code&gt; directives to our named slots. These will allow the parent component to access anything bound to the slot as &lt;strong&gt;slot props&lt;/strong&gt;. We added the &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; portion of the component to define our methods and data. Let's now add furnishings to our new home!&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;As we can see, we still use the &lt;code&gt;v-slot&lt;/code&gt; syntax; however we appended a value to it. Each of our &lt;code&gt;v-slots&lt;/code&gt; have access to different slot props, each containing the methods we bound to them in our &lt;code&gt;HomeComponent&lt;/code&gt;. This means we can have different houses with different layouts, elements, contents, even components! Yet they all still have access to the functions of our &lt;code&gt;HomeComponent&lt;/code&gt;; in our case, switching the channel, watching TV, and eating together.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;h2&gt;
  
  
  Way Back Home
&lt;/h2&gt;

&lt;p&gt;To conclude, we learned about Vue slots: how we can use named slots to lay out and compose our components (define our rooms), and how we can use scoped slots to expose functionality (add furniture). &lt;/p&gt;

&lt;p&gt;I hope you found this article informative and easy to understand. Please do let me know if I have any errors in grammar or lapses in information that the reader would find helpful.&lt;/p&gt;

&lt;p&gt;Thank you for reading, and good luck in building those houses!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>vue</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Quick Vue Tip: Cleaner Data Fetching</title>
      <dc:creator>Miguel</dc:creator>
      <pubDate>Tue, 07 May 2019 10:43:45 +0000</pubDate>
      <link>https://dev.to/mccabiles/quick-vue-tip-cleaner-data-fetching-12ao</link>
      <guid>https://dev.to/mccabiles/quick-vue-tip-cleaner-data-fetching-12ao</guid>
      <description>&lt;h1&gt;
  
  
  Quick Vue Tip: Fetching Data
&lt;/h1&gt;

&lt;p&gt;A common use-case we encounter is needing to show data fetched from an API using a Vue component.&lt;/p&gt;

&lt;p&gt;For example, say we have a Vue component called &lt;code&gt;ViewAvenger.vue&lt;/code&gt; which shows the information of an Avenger based on its id. A common way of doing this is by passing an &lt;code&gt;id&lt;/code&gt; prop to our component. The actual API call is then handled by the component itself via a method call &lt;code&gt;getData&lt;/code&gt;.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;h2&gt;
  
  
  Loading data upon mount
&lt;/h2&gt;

&lt;p&gt;Say we want to get our data immediately when the component mounts. We then add the &lt;code&gt;mounted&lt;/code&gt; lifecycle method into our component.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;h2&gt;
  
  
  Re-load data if the &lt;code&gt;id&lt;/code&gt; changes
&lt;/h2&gt;

&lt;p&gt;This works fine, but what if our &lt;code&gt;id&lt;/code&gt; prop changes? There would be no way for us to call &lt;code&gt;getData&lt;/code&gt;. To do that, we would need to &lt;code&gt;watch&lt;/code&gt; the &lt;code&gt;id&lt;/code&gt; prop for changes.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;By defining a &lt;code&gt;watcher&lt;/code&gt;, we tell our component to call the &lt;code&gt;getData&lt;/code&gt; method whenever the &lt;code&gt;id&lt;/code&gt; prop is changed. &lt;/p&gt;

&lt;h2&gt;
  
  
  Refactoring for simplification!
&lt;/h2&gt;

&lt;p&gt;Our component works just fine as it is right now. However, how can we rewrite it to be more concise?&lt;br&gt;
We use &lt;code&gt;watch&lt;/code&gt; props!&lt;/p&gt;

&lt;p&gt;Watchers can have the &lt;code&gt;immediate&lt;/code&gt; prop, which tells the component to fire the handler method immediately. This means that we can get rid of the &lt;code&gt;mounted&lt;/code&gt; method, saving us some lines of code.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Finally, we can simplify this even further! We can move our whole &lt;code&gt;getData&lt;/code&gt; function into the watch handler. As an added bonus to readability, we can remove the &lt;code&gt;this.&lt;/code&gt; prefix from the API call since we can simply use the &lt;code&gt;id&lt;/code&gt; argument of the handler function!&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;And just like that, we effectively saved ourselves some more lines of code.&lt;br&gt;
I hope you found this tip useful, and thanks for reading!&lt;/p&gt;

</description>
      <category>vue</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Music vs Podcasts while coding? Any recommendations?</title>
      <dc:creator>Miguel</dc:creator>
      <pubDate>Wed, 13 Mar 2019 05:04:45 +0000</pubDate>
      <link>https://dev.to/mccabiles/music-vs-podcasts-while-coding-any-recommendations-3gmd</link>
      <guid>https://dev.to/mccabiles/music-vs-podcasts-while-coding-any-recommendations-3gmd</guid>
      <description>&lt;p&gt;I understand that developers listen to different things while coding. I want to expand my audio palette for my code sessions, and would like to get your opinions!&lt;/p&gt;

&lt;p&gt;So, do you listen to music or podcasts when you code?&lt;/p&gt;

&lt;p&gt;What specific genres / playlists / artists / shows do you recommend?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>productivity</category>
    </item>
    <item>
      <title>3 Changes that Helped Me Become A More Productive Developer</title>
      <dc:creator>Miguel</dc:creator>
      <pubDate>Sun, 10 Mar 2019 18:47:20 +0000</pubDate>
      <link>https://dev.to/mccabiles/3-changes-i-made-that-helped-me-become-more-productive-d3p</link>
      <guid>https://dev.to/mccabiles/3-changes-i-made-that-helped-me-become-more-productive-d3p</guid>
      <description>&lt;h2&gt;
  
  
  Short Introduction
&lt;/h2&gt;

&lt;p&gt;Hello and welcome to my first post on Dev.to!&lt;/p&gt;

&lt;p&gt;I've been freelancing for two years, and when I first started out, I really enjoyed the freedom of having almost complete control over my own time. I can basically work whenever and however long I want!&lt;/p&gt;

&lt;p&gt;However, as any former young, wide-eyed, free-spirited professional can attest, not having any sort of routine for your work would only lead to the cake hitting the fan. I had really slow days when I just could not code, and would churn out really sloppy work.&lt;br&gt;
On the other extreme, I also had 13-hour days where I was sitting at my desk programming from 10am to 1am. This quickly and predictably led to burnout which not only harmed my mental health, but also affected by relationships with other people.&lt;/p&gt;

&lt;p&gt;It was then I decided that things had to change.&lt;/p&gt;

&lt;p&gt;Today, I would like to share the 3 changes I made in my work day that not only helped me break out of burnout hell, but also continues to boost my productivity.&lt;br&gt;
Let us begin!&lt;/p&gt;

&lt;h2&gt;
  
  
  Kick off: Perform a simple task first.
&lt;/h2&gt;

&lt;p&gt;I heard this tip from a lot of blogs and podcasts; The idea is that being able to achieve even a simple task at the beginning of your day would get the ball rolling for more complex tasks later on. This may not be necessarily related to coding. Personally, I begin every day by first making my own bed. Not only will this act get me out of bed, but it would also eliminate the stress from having a disorganized room.&lt;/p&gt;

&lt;p&gt;Whatever you decide to do, the important thing is to perform the simple task mindfully; you are getting into the mindset of preparing for your day, and not just going through the motions of doing a chore.&lt;/p&gt;

&lt;h2&gt;
  
  
  Clock in: Choose a productivity technique and commit to it.
&lt;/h2&gt;

&lt;p&gt;Once you've had your morning coffee and warmed up, its time to actually churn out code. During this stage, I find it very helpful to follow any sort of productivity technique. There are many methods that work for a variety of folk; what is common among them though is that your work flow is not a single 8-hour stretch of hacking at a keyboard. These methods usually involve a period of focused work, wherein you shut out everything else and work on whichever task is at hand, but then a period of short rest follows. I personally follow the &lt;a href="https://play.google.com/store/apps/details?id=com.devwispy.pomeapp&amp;amp;hl=en"&gt;pomodoro technique using an app&lt;/a&gt; with 35-minute work / 5-minute rest intervals. Whichever method you choose, what matters is that we have a plan for doing work, and that we &lt;strong&gt;commit&lt;/strong&gt; to it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wind down: Respect your down time.
&lt;/h2&gt;

&lt;p&gt;Finally, one of the hardest parts of development is knowing when to stop. As I mentioned in the introduction, we programmers have a tendency to spend long periods of time working on our code because we become so attached to our creations; It is by our hands that these things have come to be, after all! We are solving an ever-growing puzzle, and sometimes we have a difficult time knowing when the time for our work day to end has come. &lt;/p&gt;

&lt;p&gt;I used to stress out about the time I spend &lt;em&gt;not&lt;/em&gt; doing work because I felt I was &lt;em&gt;wasting&lt;/em&gt; my time. There will &lt;strong&gt;always&lt;/strong&gt; be another bug to fix. There will &lt;strong&gt;always&lt;/strong&gt; be that small styling for that button that &lt;em&gt;just&lt;/em&gt; seems a bit off. There is always &lt;em&gt;something&lt;/em&gt; that needs to be done. &lt;/p&gt;

&lt;p&gt;However, we must remember that there is more to us than just our code. We still have relationships, hobbies, and our own physical and mental health to care about. We must not take these things for granted because these are what ultimately ground us and make us holistic and productive developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Words
&lt;/h2&gt;

&lt;p&gt;To summarize, the three changes I mentioned all boil down to &lt;strong&gt;discipline&lt;/strong&gt;. Development is a tough and mentally-challenging work, and yes, we will need to put in the occasional all-nighter sometimes. However, we don't need to break our backs over our work on a daily basis. What matters is to have the willingness to do so, and the discipline to take control of our day. &lt;/p&gt;

&lt;p&gt;Kick off, clock in, and wind down.&lt;br&gt;
Thank you for reading!&lt;/p&gt;

</description>
      <category>career</category>
      <category>productivity</category>
      <category>freelance</category>
    </item>
  </channel>
</rss>
