<?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>Forem: Danny de Vries</title>
    <description>The latest articles on Forem by Danny de Vries (@dandevri).</description>
    <link>https://forem.com/dandevri</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%2F5044%2F22084444.jpeg</url>
      <title>Forem: Danny de Vries</title>
      <link>https://forem.com/dandevri</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/dandevri"/>
    <language>en</language>
    <item>
      <title>I'm Danny de Vries, Web development lecturer at the Amsterdam University, Ask Me Anything!</title>
      <dc:creator>Danny de Vries</dc:creator>
      <pubDate>Tue, 12 Feb 2019 16:44:08 +0000</pubDate>
      <link>https://forem.com/dandevri/im-danny-de-vries-web-development-lecturer-at-the-amsterdam-university-ask-me-anything-1b48</link>
      <guid>https://forem.com/dandevri/im-danny-de-vries-web-development-lecturer-at-the-amsterdam-university-ask-me-anything-1b48</guid>
      <description>&lt;p&gt;I'm a lecturer and researcher &lt;a href="https://www.cmd-amsterdam.nl/english/"&gt;Communication and Multimedia design&lt;/a&gt; at the &lt;a href="https://www.amsterdamuas.com/"&gt;Amsterdam University of Applied Sciences&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I mostly lecture about web development in the technical courses of our program such as &lt;a href="https://github.com/cmda-bt/be-course-18-19"&gt;Back-end&lt;/a&gt; or &lt;a href="https://github.com/cmda-bt/pt-course-18-19"&gt;Project Tech&lt;/a&gt; which are courses focussed on HTML, CSS, JavaScript &amp;amp; Node.js. Besides that I teach people about Web Animation during the Minor Visual Interface Design which focusses on keyframing, transitions, processing &amp;amp; SVG.&lt;/p&gt;

&lt;p&gt;Apart from teaching in front of a classroom I've coached lots of students helping them navigate the design and agency field: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I've helped them with their portfolio's to land internships.&lt;/li&gt;
&lt;li&gt;I've improved their soft skills like presenting and communicaton.&lt;/li&gt;
&lt;li&gt;I've helped them to choose what skills to focus on during their studies.&lt;/li&gt;
&lt;li&gt;I've had 1-on-1 sessions to set goals and actually reaching them.&lt;/li&gt;
&lt;li&gt;I've given constructive feedback and design critique on work students handed in.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'd love to chat about these topics or give any feedback!&lt;/p&gt;

</description>
      <category>ama</category>
    </item>
    <item>
      <title>Challenge: CSS Navigation</title>
      <dc:creator>Danny de Vries</dc:creator>
      <pubDate>Thu, 11 Oct 2018 13:30:38 +0000</pubDate>
      <link>https://forem.com/dandevri/challenge-css-navigation-2c2j</link>
      <guid>https://forem.com/dandevri/challenge-css-navigation-2c2j</guid>
      <description>&lt;p&gt;Here's a quick challenge I came up with the other day. A very common navigational pattern is to put the logo on the left side and the list items on the right.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fe74vongtncaaalpfi33t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fe74vongtncaaalpfi33t.png" alt="Navigation pattern screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Recreate the layout of this navigation with as little &lt;code&gt;html&lt;/code&gt; and &lt;code&gt;css&lt;/code&gt; as possible.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;My personal solution uses flexbox with &lt;code&gt;7 lines of html&lt;/code&gt; and &lt;code&gt;13 lines of css&lt;/code&gt;. Is it possible with less?&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; This is wat I came up with: &lt;a href="https://codepen.io/anon/pen/wYebQg" rel="noopener noreferrer"&gt;https://codepen.io/anon/pen/wYebQg&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>challenge</category>
      <category>beginners</category>
      <category>fun</category>
    </item>
    <item>
      <title>Best advice for a junior software developer? </title>
      <dc:creator>Danny de Vries</dc:creator>
      <pubDate>Mon, 08 Oct 2018 16:08:51 +0000</pubDate>
      <link>https://forem.com/dandevri/best-advice-for-a-junior-software-developer--1a4c</link>
      <guid>https://forem.com/dandevri/best-advice-for-a-junior-software-developer--1a4c</guid>
      <description>&lt;p&gt;Based on the posts of &lt;a href="https://dev.to/tedhagos/if-i-knew-then-what-i-know-now-55pb"&gt;Ted Hagos&lt;/a&gt; and &lt;a href="https://dev.to/sergiotapia/what-is-your-best-advice-for-a-junior-software-developer-32gn"&gt;Sergio Tapai&lt;/a&gt; I wanted to share my two cents  (literally) on the topic. There are a lot of small little things that can help you get further. Instead of a long 143 items list with small things I wanted to point out two general principles I apply every single day, even outside of coding.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Find a balance.
&lt;/h2&gt;

&lt;p&gt;You won't learn how to code by just reading books and watching courses. With actually writing and putting it into practice comes extra obstacles you can solve. These can help you in future similar situations. The opposite is also true, building things is great but always question your own workflow and see if there are any other ways (&lt;a href="https://en.wikipedia.org/wiki/Shoshin"&gt;Shoshin&lt;/a&gt;) for solving the same problem. &lt;/p&gt;

&lt;h2&gt;
  
  
  2. Don't ride the bandwagon.
&lt;/h2&gt;

&lt;p&gt;Learn the fundamentals first. HTML, CSS and JavaScript aren't going away any time soon. That doesn't mean learning frameworks and libraries is a bad thing but dive into one to broaden your skill set and if it seems relevant to you, not because it's what all the job listings tell you.&lt;/p&gt;




&lt;p&gt;On a last note, I highly recommend you watch &lt;a href="https://vimeo.com/85040589"&gt;this video&lt;/a&gt; about 'The Gap' by Ira Glass. It fundamentally changed the way I look at other people that try to code for the first time.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Thanks for reading! You can follow me on &lt;a class="comment-mentioned-user" href="https://dev.to/dandevri"&gt;@dandevri&lt;/a&gt;
 and feel free to reach out to me if you have something to say!&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>dev</category>
    </item>
    <item>
      <title>100 Days of Code Takeaways</title>
      <dc:creator>Danny de Vries</dc:creator>
      <pubDate>Mon, 01 Oct 2018 15:27:27 +0000</pubDate>
      <link>https://forem.com/dandevri/100-days-of-code-takeaways-4b5k</link>
      <guid>https://forem.com/dandevri/100-days-of-code-takeaways-4b5k</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;About a year ago I made a promise to myself: spend an hour every day learning new stuff. In the weekends I would watch a course or read some articles but the time devoted on 'learning' was really inconsistent. That's when a couple of months later I started my 100 days of code challenge.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What is 100 Days of Code?
&lt;/h2&gt;

&lt;p&gt;You've probably seen this hashtag a couple of times but here's a quick primer.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Code for at least an hour every day for the next 100 days. Make this a public commitment and track your progress.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Some personal extra rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Aside from the code I will create a &lt;code&gt;log&lt;/code&gt; and update it each day.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;code examples&lt;/code&gt; and &lt;code&gt;log&lt;/code&gt; are pushed &lt;a href="https://github.com/dandevri/cod.es"&gt;to GitHub&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;I code at work but that time doesn't count towards this challenge.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Goals
&lt;/h2&gt;

&lt;p&gt;The 100 days were focused on improving my &lt;strong&gt;core JavaScript&lt;/strong&gt; knowledge. My first thought was: &lt;em&gt;I don't have the discipline to keep it up for a 100 days&lt;/em&gt; and &lt;em&gt;why should I even bother?&lt;/em&gt; After finishing the &lt;a href="https://everythingweb.org/"&gt;Minor web Development&lt;/a&gt; at AUAS I started noticing that I was still struggling with even basic JS concepts. From not knowing enough to not knowing at all.&lt;/p&gt;

&lt;p&gt;It was this moment that I realized that these 100 days might be useful to force me to actually learn these concepts and start taking action.&lt;/p&gt;

&lt;p&gt;That coding for an hour evolved around three main pillars: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Refresh my basic JavaScript knowledge (e.g &lt;a href="https://www.freecodecamp.org/"&gt;FreeCodeCamp&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Learning new syntax (e.g &lt;a href="https://es6.io/"&gt;ES6 for Everyone&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Solving real world problems (e.g &lt;a href="https://javascript30.com/"&gt;JavaScript 30&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Takeaways
&lt;/h2&gt;

&lt;p&gt;After coding for about 100+ hours I wanted to share some takeaways and the upsides this challenge can have.&lt;/p&gt;

&lt;h3&gt;
  
  
  You form a habit
&lt;/h3&gt;

&lt;p&gt;This one is a bit obvious but I really felt it. You just have this solid goal at the end of each day that you have to complete this. I used Trello for daily tasks and just made a reminder task everyday.&lt;/p&gt;

&lt;h3&gt;
  
  
  You can do more than you think
&lt;/h3&gt;

&lt;p&gt;When I first started I put some resources in the readme and thought that those kept me busy for at least 100 days. In the end I worked my way trough far more resources than originally thought. After almost 30 days I did all the resources I wanted to do when I started.&lt;/p&gt;

&lt;h3&gt;
  
  
  The form of the resourcedoes matter
&lt;/h3&gt;

&lt;p&gt;I couldn't just read for a whole hour in a book I had to switch from time to time. Use different types of resources: read a book one week and watch a video course the other week. Switch it up.&lt;/p&gt;

&lt;h3&gt;
  
  
  Split up time
&lt;/h3&gt;

&lt;p&gt;The first week or two I just sat down for an hour straight but after I started noticing that I was more focussed by splitting up the time throughout the day. Maybe two sessions of 30 minutes or even three of 20 minutes. Mornings were pretty good for reading while the evening was more suited for video's. &lt;/p&gt;

&lt;h3&gt;
  
  
  Track your time
&lt;/h3&gt;

&lt;p&gt;Look at your tracked time to get a grasp of how you're progressing. Maybe the mornings you finish more resources than in the afternoon. It also gives you credibility, you can make the logged time public if you want to.&lt;/p&gt;

&lt;h3&gt;
  
  
  Repetition isn't bad
&lt;/h3&gt;

&lt;p&gt;Covering the same topic or same concept multiple times isn't bad. It's a nice refresher and most of the time the person handling the topic has a different way of explaining so you get multiple views on one specific topic.&lt;/p&gt;

&lt;p&gt;It was worth it. You feel more confident while writing JavaScript, you become better at explaining concepts to other people and the code you write becomes more explicit because you make thoughtful decisions based on the knowledge you gained.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Thanks for reading! You can follow me on &lt;a class="mentioned-user" href="https://dev.to/dandevri"&gt;@dandevri&lt;/a&gt;
 and feel free to reach out to me if you have something to say!&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>beginners</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>coding</category>
    </item>
    <item>
      <title>Why is HTML linting not a common practice?</title>
      <dc:creator>Danny de Vries</dc:creator>
      <pubDate>Wed, 26 Sep 2018 17:55:39 +0000</pubDate>
      <link>https://forem.com/dandevri/why-is-html-linting-not-a-common-practice-4gme</link>
      <guid>https://forem.com/dandevri/why-is-html-linting-not-a-common-practice-4gme</guid>
      <description>&lt;p&gt;We use linters such as &lt;a href="https://eslint.org/"&gt;ESLint&lt;/a&gt; and &lt;a href="https://stylelint.io/"&gt;Stylelint&lt;/a&gt; all the time but why is linting HTML not a common practice?&lt;/p&gt;

&lt;p&gt;I occasionally see people use the &lt;a href="https://validator.w3.org/"&gt;W3C Validator&lt;/a&gt; but never see specific HTML linters in a build process / pipeline.&lt;/p&gt;

&lt;p&gt;Why is that?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>html</category>
      <category>linting</category>
      <category>healthydebate</category>
    </item>
    <item>
      <title>The definition of APIs</title>
      <dc:creator>Danny de Vries</dc:creator>
      <pubDate>Mon, 24 Sep 2018 16:29:24 +0000</pubDate>
      <link>https://forem.com/dandevri/the-definition-of-apis-116l</link>
      <guid>https://forem.com/dandevri/the-definition-of-apis-116l</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;You can’t have a conversation with a developer without the person mentioning the word &lt;strong&gt;API&lt;/strong&gt; at least 50 times. In this post I want to explore what the definition of a API is and what types of APIs there are.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Definition
&lt;/h2&gt;

&lt;p&gt;Connectivity is an amazing thing. How do different applications and devices connect to each other? It’s the Application Programming Interface.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;APIs create connectivity between applications and devices.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Most computer programs provide data for humans in the form of a &lt;strong&gt;User Interface&lt;/strong&gt;, to make the consumption of the data as enjoyable as possible. Operating Systems all provide GUI’s (graphical user interface) to interact with the system. The user doesn’t really care about the technical stuff. Similarly an API provides a simpler way for developers to interact with other kinds of software. The data needs to be consumed by another program instead of a ‘user’.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://www.programmableweb.com/news/apis-are-user-interfaces-just-different-users-mind/analysis/2015/12/03" rel="noopener noreferrer"&gt;As with a UI tailored to humans, software needs an interface that makes it easy to consume data and/or functionality.&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;The API is the messenger&lt;/strong&gt; that takes requests and tells the system what to do and returns the response. You can for example access the database of another company. The API has an interface and can ask for information about other systems. You can say that the API is the &lt;strong&gt;middleman&lt;/strong&gt; to communicate between different programs.&lt;/p&gt;

&lt;p&gt;The API layer help &lt;strong&gt;standardize the coding process&lt;/strong&gt;. On the web that might be a JavaScript based API, it’s an abstraction of the underlying process.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Wall Socket Analogy
&lt;/h2&gt;

&lt;p&gt;The programmable web published a great series; &lt;a href="https://www.programmableweb.com/api-university/what-are-apis-and-how-do-they-work" rel="noopener noreferrer"&gt;what are APIs and How Do They Work?&lt;/a&gt; They have a great little analogy that I want to refer to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You can think of an API in the context of a wall socket. The electricity is the service and the device is the consumer of that service. The consumer in this case is outsourcing its power requirement to the provider of a service. Electrical sockets have predictable patterns. The plug is standard and the power it delivers (volt) is consistent and mostly the same value. Likewise, an API specifies how software components should interact with each other.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Imagine how you would get power without such a standard.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Benefits
&lt;/h2&gt;

&lt;p&gt;APIs can not only help developers to write better programs, it can help the community around the program as a whole because of the API infrastructure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If the API is public everybody can plug into it and start working on projects.&lt;/li&gt;
&lt;li&gt;Other programs can easily be moved, the data remains the same.&lt;/li&gt;
&lt;li&gt;It adds a layer of abstraction to the underlying service.&lt;/li&gt;
&lt;li&gt;APIs make developers more productive (they don’t have to start from scratch)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On the web this means you can outsource functionality to the browser and add data from other services. Browsers offer a standard way for web applications to access, cameras, audio &amp;amp; Bluetooth for example. This is the same for services / apps such as Slack or Twitter. You can use the Real Time slack API to send messages without the Slack interface with just a few lines of code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Types of APIs
&lt;/h2&gt;

&lt;p&gt;You can ask for specific information by calling &lt;code&gt;endpoints&lt;/code&gt; with specific &lt;code&gt;parameters&lt;/code&gt;. You basically ask for subsets of the large database from the service. There are no rules of how developers should connect their own applications to an API but several standards have rised.&lt;/p&gt;

&lt;p&gt;The first distinction to make is if the API is &lt;strong&gt;public&lt;/strong&gt; or &lt;strong&gt;private&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If the API is &lt;em&gt;fully public&lt;/em&gt; you can request data without any additional information.&lt;/li&gt;
&lt;li&gt;If the API is &lt;em&gt;public&lt;/em&gt; you can request data with a &lt;code&gt;public key&lt;/code&gt; provided by the service. By adding the key when you make the request you are allowed to make API calls. Be aware that with a public key most APIs will have limitations.
If the API is &lt;em&gt;private&lt;/em&gt; you will need a key as stated above but the key isn’t publicly available. The service will personally need to provide you with a key.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Authentication
&lt;/h2&gt;

&lt;p&gt;If you want to manipulate data from a specific user (the user has to sign in) most APIs use the OAuth open protocol.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;An open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It allows you to interact with protected data from a specific data of a user. For example; add playlists to a specific Spotify account without using a Spotify interface.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rest API
&lt;/h2&gt;

&lt;p&gt;Most interfaces on the web make connections using the &lt;code&gt;HTTP protocol&lt;/code&gt;. You can ask for data using the API endpoint addressable over the web with the HTTP protocol. (GET, PUT, POST &amp;amp; DELETE) You can make a request to a specific endpoint and because an HTTP request is always a round trip you get back the response for use in your own application. On the web most of the time this response is in &lt;code&gt;.json&lt;/code&gt; format.&lt;/p&gt;

&lt;h2&gt;
  
  
  RTM API
&lt;/h2&gt;

&lt;p&gt;Some services take a slightly different approach and instead of using the &lt;code&gt;HTTP protocol&lt;/code&gt; they use a WebSocket-based API which allows you to receive events in real time. Instead of asking for information the API can push information to you.&lt;/p&gt;

&lt;p&gt;You can achieve a kind of similar result with a Res API by &lt;strong&gt;Polling&lt;/strong&gt;. (Simply calling the endpoint very frequently) Polling is kind off the same as a refresh button. It works but it isn’t the best solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Web API
&lt;/h2&gt;

&lt;p&gt;To be clear; most of this post cover APIs from other services to request data. There are also specific Web APIs. They are used for manipulating the DOM and can be accessed using JavaScript with object types. The Web APIs extend the functionality of a web browser and thus are browser specific.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Standard JavaScript APIs. These are the same core JavaScript and DOM APIs that you can use in standard web apps.&lt;/li&gt;
&lt;li&gt;HTML features and other emerging APIs which are browser specific.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2A9fecMqxHY30miR9hSt2XZw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2A9fecMqxHY30miR9hSt2XZw.png" alt="Mozilla keeps a nice list of all the cool Web APIs"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Hope this post clarifies some of the concepts around APIs, why should you use them and why they are awesome⚡️ in general!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Thanks for reading! You can follow me on &lt;a class="mentioned-user" href="https://dev.to/dandevri"&gt;@dandevri&lt;/a&gt; and feel free to reach out to me if you have something to say!&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>api</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Using GitHub as a team</title>
      <dc:creator>Danny de Vries</dc:creator>
      <pubDate>Mon, 17 Sep 2018 14:53:01 +0000</pubDate>
      <link>https://forem.com/dandevri/using-github-as-a-team-44m0</link>
      <guid>https://forem.com/dandevri/using-github-as-a-team-44m0</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Using GitHub for the first time has a steep learning curve. To use GitHub with a team is a whole different ball game. Here are some best practices I’ve come to know during my team projects.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Throughout the various OSS projects that I contributed to one thing always takes up more time than I expect. &lt;strong&gt;Setting a Git(Hub) standard&lt;/strong&gt; for working on a repository (or repo as the cool kids say it). Below are some best practices that really helped me along the way.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fws0bwu66es7n8kg0kefv.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fws0bwu66es7n8kg0kefv.jpeg" alt="O really"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Protect your branches
&lt;/h2&gt;

&lt;p&gt;The first thing that prevents headaches in the future is to protect the &lt;code&gt;master&lt;/code&gt; branch and make a &lt;code&gt;develop&lt;/code&gt; one right away. It disables &lt;strong&gt;force pushing&lt;/strong&gt; and prevents branches from being &lt;strong&gt;deleted&lt;/strong&gt;. A great way to protect you’re project and make sure that you don’t have to 🚑 hotfix anything if you use continuous integration for example.&lt;/p&gt;

&lt;h2&gt;
  
  
  Consistent branch naming
&lt;/h2&gt;

&lt;p&gt;With the &lt;code&gt;master&lt;/code&gt; branch protected contributors can’t push straight into &lt;code&gt;master&lt;/code&gt;. They have to use branches and make &lt;code&gt;pull requests&lt;/code&gt;. Coming up with a naming convention for the branches is very helpful. One of the things is to use prefixes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;fix/...&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;feature/...&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;enhancement/...&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In a quick overview you can see what each branch is for and they have consistent naming.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pull requests
&lt;/h2&gt;

&lt;p&gt;Make sure PR’s can’t be merged without a required review. If you protect a branch you can also enable &lt;code&gt;Require pull request reviews before merging&lt;/code&gt;. Every PR that comes in has to be reviewed by another contributor.&lt;/p&gt;

&lt;p&gt;So, merging is blocked by default. A contributor has to manually navigate to the PR and hit &lt;code&gt;review changes&lt;/code&gt;. You then can either:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make &lt;strong&gt;comments&lt;/strong&gt; for general feedback. (No explicit approval)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Approve&lt;/strong&gt; the changes and the PR can be merged&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Request changes&lt;/strong&gt;, things that have to be fixed before merging.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A great way to get a quick quality check before the code get merged.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It keeps the overall quality of the code on point.&lt;/li&gt;
&lt;li&gt;More eyes 👀 are better. Somebody else can spot a mistake you might have missed.&lt;/li&gt;
&lt;li&gt;And personally, I think it’s a good way to learn by looking at somebody else’s code.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Commit messages
&lt;/h2&gt;

&lt;p&gt;Oh god, commit messages. Always a painful topic to talk about. Everyone has a personal / preferred way to do it. &lt;strong&gt;Chris Beam&lt;/strong&gt; has written a great post about this in 2014. It are some general rules but most people find them acceptable.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You should definitely read the &lt;a href="https://chris.beams.io/posts/git-commit/" rel="noopener noreferrer"&gt;full post&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ideally your commit title would look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Add styling for navigation bar
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Usually these rules are outlined in the &lt;code&gt;contributing.md&lt;/code&gt; and examples are given.&lt;/p&gt;

&lt;h2&gt;
  
  
  Plan your commits
&lt;/h2&gt;

&lt;p&gt;Guilty as charge of commiting a large blob of code. But, planning your commits is also a good strategy to keep yourself in check. Before you go straight into building that feature try to break the feature down into small steps. Each step then represents a commit. &lt;a href="https://dev.to/rpalo/plan-your-commits"&gt;Here&lt;/a&gt; is a quick little post on dev.to about this.&lt;/p&gt;




&lt;p&gt;Coming up with a consistent GitHub standard and flow may take some time but it’s worth it in the long run. It makes the repo far more maintainable and has saved me from panic situations.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Thanks for reading! You can follow me on &lt;a class="mentioned-user" href="https://dev.to/dandevri"&gt;@dandevri&lt;/a&gt; and feel free to reach out to me if you have something to say!&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>github</category>
      <category>opensource</category>
      <category>beginners</category>
      <category>git</category>
    </item>
    <item>
      <title>What do you think of static design tools?</title>
      <dc:creator>Danny de Vries</dc:creator>
      <pubDate>Thu, 13 Sep 2018 18:29:16 +0000</pubDate>
      <link>https://forem.com/dandevri/what-do-you-think-of-static-design-tools-1ecp</link>
      <guid>https://forem.com/dandevri/what-do-you-think-of-static-design-tools-1ecp</guid>
      <description>&lt;p&gt;Designing in the browser is all the rage. '&lt;a href="https://twitter.com/designersshould?lang=en"&gt;Should designers code&lt;/a&gt;' is a long running meme. What do you think of the static design workflow that is very common in the agency world from a development perspective?&lt;/p&gt;

&lt;p&gt;Especially the last couple of years the landscape for design tooling got pretty scattered. We have at least 5 major tools: &lt;a href="https://www.sketchapp.com/"&gt;Sketch&lt;/a&gt;, &lt;a href="https://www.figma.com"&gt;Figma&lt;/a&gt;, &lt;a href="https://www.adobe.com/products/xd.html"&gt;Adobe XD&lt;/a&gt;, &lt;a href="https://www.invisionapp.com/studio"&gt;InVision Studio&lt;/a&gt; and just recently &lt;a href="https://framer.com/x/"&gt;Framer X&lt;/a&gt; launched. &lt;/p&gt;

&lt;p&gt;If you design something for yourself, you go straight into the browser or first explore some options in &lt;em&gt;static design tools&lt;/em&gt;? It's not really about which tools is the best but is there still a place for these tools in the design workflow?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>design</category>
      <category>tooling</category>
      <category>workflow</category>
    </item>
    <item>
      <title>Back to JS Basics</title>
      <dc:creator>Danny de Vries</dc:creator>
      <pubDate>Mon, 10 Sep 2018 18:38:04 +0000</pubDate>
      <link>https://forem.com/dandevri/back-to-js-basics-3f6f</link>
      <guid>https://forem.com/dandevri/back-to-js-basics-3f6f</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Back_to_Basics_%28Christina_Aguilera_album%29"&gt;JS is here to stay, without you I got trouble.&lt;/a&gt; To understand you here is a quick refresher on the basics of JavaScript.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;We all read &lt;a href="https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f"&gt;this article&lt;/a&gt; from a couple of years ago.  (NO!? you've been living under a rock or something?) It's easy to get caught up in a JavaScript library and never get out. I've seen people know more about React and jQuery than pure vanilla JS.&lt;/p&gt;

&lt;p&gt;When I started the &lt;a href="https://cmda.github.io/minor-everything-web/"&gt;Minor Web Development&lt;/a&gt; at the University of Applied Sciences Amsterdam I had (what Buddhist call) a beginner's mind.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It refers to having an attitude of openness, eagerness, and lack of preconceptions when studying a subject, even when studying at an advanced level, just as a beginner in that subject would.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;People around me would sit behind their keyboard and start writing line after line of complex JS code. I would come in, and curious as I was, would ask 'simple' questions like;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Where does this function gets invoked?
What are the initial arguments of this function?
Where do you declare this variable?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And what bothered me is that some people couldn't give me straight up answers so I could learn from them. Don't get me wrong, most people are really great at handling complex JS stuff (and libraries) but to me it feels like they get caught up and lose sight of general JavaScript (programming) concepts.&lt;/p&gt;

&lt;p&gt;So with this in mind I wanted to write a quick (yeah, you can call it a cheat sheet) refresher on basic JS concepts. &lt;/p&gt;

&lt;h2&gt;
  
  
  Programming vs Scripting.
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.quora.com/Is-JavaScript-a-scripting-or-a-programming-language"&gt;People argue&lt;/a&gt; about if &lt;em&gt;programming&lt;/em&gt; or &lt;em&gt;programming language&lt;/em&gt; is really the correct term to describe JavaScript. JavaScript doesn't stand by itself, it needs to use a &lt;strong&gt;interpreter&lt;/strong&gt;. In most cases this is the browser or a standalone JS engine. It isn't native machine code (binary 01010) but it needs to be &lt;strong&gt;compiled&lt;/strong&gt; and that's where the browser comes into play.&lt;/p&gt;

&lt;p&gt;To play it safe I would call JavaScript a &lt;strong&gt;scripting language&lt;/strong&gt; which falls under the larger category &lt;strong&gt;programming language&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Variables.
&lt;/h2&gt;

&lt;p&gt;Variables store &lt;code&gt;data&lt;/code&gt; and manipulate it. They do this by using a &lt;strong&gt;label&lt;/strong&gt; to point to the data. In JavaScript data can be one of the following 7 data types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;undefined&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;null&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;string&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;symbol&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;number&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;object&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They can store different values at different times.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To &lt;strong&gt;declare&lt;/strong&gt; a variable: &lt;code&gt;var&lt;/code&gt; keyword with &lt;code&gt;myVar&lt;/code&gt;name of the variable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Store&lt;/strong&gt; value in a variable with the &lt;strong&gt;assignment operator&lt;/strong&gt;: &lt;code&gt;=&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Initialize&lt;/strong&gt; the variable with a data type: &lt;code&gt;19&lt;/code&gt; (in this case a number)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var myVar = 19;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A variable that is only &lt;code&gt;declared&lt;/code&gt; but has no &lt;code&gt;initial&lt;/code&gt; value has the value of &lt;code&gt;undefined&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var a; // value is undefined
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Functions.
&lt;/h2&gt;

&lt;p&gt;You can divide up your code in reusable parts by using &lt;strong&gt;functions&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function myFunction() {
// do stuff
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can &lt;code&gt;call&lt;/code&gt; or &lt;code&gt;invoke&lt;/code&gt; the function by using the function name and place &lt;strong&gt;parentheses&lt;/strong&gt; behind them.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;myFunction()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;parameters&lt;/code&gt; are basically variables that act as placeholders for the values that are to be input to a function when it's called. You &lt;strong&gt;pass&lt;/strong&gt; a value as input to the function. Many people use the term &lt;strong&gt;parameter&lt;/strong&gt; and &lt;strong&gt;argument&lt;/strong&gt; interchangeably but there is a slight difference.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function myFunction(param1, param2) { // These are parameters
   console.log(param1 + param2);
}

myFunction(1, 2); // These are arguments
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Values that are &lt;strong&gt;passed&lt;/strong&gt; into a function when it is called are &lt;strong&gt;arguments&lt;/strong&gt;. The placeholders are &lt;strong&gt;parameters&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Arrays.
&lt;/h2&gt;

&lt;p&gt;With arrays you can store multiple &lt;code&gt;data types&lt;/code&gt; in one variable. You declare it the same way as a variable but you put &lt;code&gt;[]&lt;/code&gt; around the values and seperate each one with a comma. Every value in an array is called a &lt;code&gt;entry&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;You can access data inside array using indexes. Arrays use &lt;code&gt;zero-based indexing&lt;/code&gt;. So the first item in the array starts with a &lt;code&gt;0&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Objects.
&lt;/h2&gt;

&lt;p&gt;Objects are similar to arrays, except that instead of using indexes you access the data in objects through what are called &lt;strong&gt;properties&lt;/strong&gt;. Every property is made up of a &lt;em&gt;key&lt;/em&gt; and a &lt;em&gt;value&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var dog = {
  "name": "Peter",
  "legs": "4"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;The stuff above is a basic outline of some of the core JavaScript terminology. Some of the stuff that I need to remind myself of on the daily. Stuff that people, IMHO, need to refresh more often. Hope this helps and next time you want to sound cool; try to use the right terminology. 👌&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Thanks for reading! You can follow me on &lt;a class="mentioned-user" href="https://dev.to/dandevri"&gt;@dandevri&lt;/a&gt;
 and feel free to reach out to me if you have something to say!&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
