<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.7.4">Jekyll</generator><link href="http://www.baruchadi.com/feed.xml" rel="self" type="application/atom+xml" /><link href="http://www.baruchadi.com/" rel="alternate" type="text/html" /><updated>2019-04-19T22:19:59+00:00</updated><id>http://www.baruchadi.com/feed.xml</id><title type="html">Baruch-Adi</title><subtitle>Baruch-Adi Hen, Software Engineer. </subtitle><entry><title type="html">Compare yourself to a baby</title><link href="http://www.baruchadi.com/self-improvement/goals/career/2019/04/21/compare-yourself-to-a-baby.html" rel="alternate" type="text/html" title="Compare yourself to a baby" /><published>2019-04-21T17:30:00+00:00</published><updated>2019-04-21T17:30:00+00:00</updated><id>http://www.baruchadi.com/self-improvement/goals/career/2019/04/21/compare-yourself-to-a-baby</id><content type="html" xml:base="http://www.baruchadi.com/self-improvement/goals/career/2019/04/21/compare-yourself-to-a-baby.html">&lt;p&gt;Learning takes time. Babies know that, so should you.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;This article will focus on software engineering, but it can apply to anything in your life.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;baby-steps&quot;&gt;Baby steps&lt;/h2&gt;
&lt;p&gt;Everything takes time. Just like a baby who’s learning how to talk or walk for the first time, you will need time to learn &amp;amp; master what it is you are currently working on.&lt;/p&gt;

&lt;p&gt;You need to understand that everything has a learning curve. Some are steeper than others, and you need to overcome that. 
You shouldn’t jump into the most complicated part of the skill you are attempting to learn, but instead, you should learn the simpler parts that together compose that complex skill.&lt;/p&gt;

&lt;p&gt;A baby first learns to crawl, then walk, then run. It’s all about pacing, you need to go through the basics before you jump to the final goal.&lt;/p&gt;

&lt;p&gt;You need to remember that &lt;strong&gt;No one is just born with that knowledge.&lt;/strong&gt; Knowledge is earned, not given.&lt;/p&gt;

&lt;h2 id=&quot;dedication&quot;&gt;Dedication&lt;/h2&gt;
&lt;p&gt;When a baby first learns to walk, there are stages. In the beginning, the baby can’t crawl, or even support itself. Given that, it’s not expected from the baby to be able to run yet! 
You should have the same perspective about your skills as a programmer. If you just picked up programming, and you are just getting started, it is obvious that you won’t be able to do what the “pros” are doing yet, it takes time! 
Babies can take ~6 months to be able to crawl, and it’s different for each baby. Everybody is different.
It doesn’t mean that you should take it easy and give yourself all the time in the world. 
Babies put effort every day to learn those things. Attempting to crawl, attempting to talk. This shows that you need put in effort and dedication if you want to achieve your target. If you keep delaying and procrastinating you’ll get nowhere. So get up, and do the thing you kept telling yourself you would!&lt;/p&gt;

&lt;h2 id=&quot;admiration--motivation-not-jealousy&quot;&gt;Admiration &amp;amp; Motivation, Not Jealousy&lt;/h2&gt;
&lt;p&gt;Sometimes when we see someone successful, we tend to immediately jump to jealousy.&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Wow, look at that guy. He got that amazing job, doing these amazing things, and I can barely write “hello world”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Well, let’s take a different perspective on that situation. This time, from a child’s point of view. When children see someone doing an amazing thing, take for example a soccer player, they would say something different. You wouldn’t hear them saying&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;wow look at that soccer player making tons of money and playing like a pro. I can’t even dribble.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;No, they would take that person and make them their idol! They would instead of being jealous of that amazing soccer player, would make that player their inspiration! They will start playing more soccer on their free times and try to imitate their most amazing plays and moves. whether or not that child would take soccer to the next level and become a pro is not important, the important part is that the child will improve! No, the improvement wouldn’t be immediate, but by dedicating time and trying to be more like their idol they will eventually be good!&lt;/p&gt;

&lt;p&gt;That is the same perspective I would recommend to use when you see someone who is a “pro”. Learn from them. If they are one of your peers or your coworkers, befriend them! Instead of making them an unhealthy rival, make them your friend and learn from them. 
If it’s a person that you just read about online and can’t befriend, learn from what they do!&lt;/p&gt;

&lt;h1 id=&quot;eof&quot;&gt;&lt;em&gt;EOF&lt;/em&gt;&lt;/h1&gt;
&lt;p&gt;Hopefully, this article helped you understand how to assess your growth and realize that it takes time to perfect a skill. Remember that different people learn at different paces and that knowledge is earned, not given. We are all capable of something great, we just need to put in the time and effort to enhance ourselves.&lt;/p&gt;</content><author><name></name></author><category term="self-improvement" /><category term="goals" /><category term="career" /><summary type="html">Learning takes time. Babies know that, so should you.</summary></entry><entry><title type="html">How to make a browser game with p5.js</title><link href="http://www.baruchadi.com/dev/game/p5js/2019/04/16/how-to-make-a-browser-game-with-p5js.html" rel="alternate" type="text/html" title="How to make a browser game with p5.js" /><published>2019-04-16T18:00:00+00:00</published><updated>2019-04-16T18:00:00+00:00</updated><id>http://www.baruchadi.com/dev/game/p5js/2019/04/16/how-to-make-a-browser-game-with-p5js</id><content type="html" xml:base="http://www.baruchadi.com/dev/game/p5js/2019/04/16/how-to-make-a-browser-game-with-p5js.html">&lt;p&gt;Learn how to make your own browser game with p5.js!&lt;/p&gt;

&lt;h3 id=&quot;the-tools&quot;&gt;The Tools&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://p5js.org/&quot;&gt;p5.js&lt;/a&gt; is a simple graphics library. It’s easy to get started and the documentation is concise and to the point! I was introduced to p5.js through a YouTube channel by &lt;a href=&quot;https://www.youtube.com/user/shiffman&quot;&gt;Daniel Shiffman&lt;/a&gt;, I highly recommend you check out his YouTube channel!&lt;/p&gt;

&lt;h3 id=&quot;the-goal&quot;&gt;The Goal&lt;/h3&gt;

&lt;p&gt;The final product is going to be a simple square walking around a grid (see &lt;a href=&quot;https://squares-grid-blog.now.sh/&quot;&gt;here&lt;/a&gt;, this version is actually multiplayer. We’ll get to server/client in a different blog post 😛), but that’s nowhere near the limit of what you can do!&lt;/p&gt;

&lt;h3 id=&quot;getting-started&quot;&gt;Getting started&lt;/h3&gt;

&lt;p&gt;Alright, we are going to hop right in! First thing first, download the &lt;a href=&quot;https://p5js.org/download/&quot;&gt;p5.js complete library&lt;/a&gt; from the download page and extract it. We are going to work in &lt;code class=&quot;highlighter-rouge&quot;&gt;p5/empty-example/sketch.js&lt;/code&gt;. Alright, now all you have to do is open your favorite editor (I’ll be using VS Code) and follow along!&lt;/p&gt;

&lt;h3 id=&quot;drawing-a-square&quot;&gt;Drawing a Square&lt;/h3&gt;

&lt;p&gt;Once you open your &lt;code class=&quot;highlighter-rouge&quot;&gt;sketch.js&lt;/code&gt;, you’ll notice two functions already set up for you. In &lt;code class=&quot;highlighter-rouge&quot;&gt;setup&lt;/code&gt; we will initialize our environment, and in &lt;code class=&quot;highlighter-rouge&quot;&gt;draw&lt;/code&gt; we will describe what should be drawn per frame.&lt;/p&gt;

&lt;p&gt;Before we can draw our square, we will need to create something for us to draw it on! For this, we will use &lt;a href=&quot;https://p5js.org/reference/#/p5/createcanvas&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;createCanvas&lt;/code&gt;&lt;/a&gt;, which will create a virtual canvas🖼 for us to draw on 🎨🖌&lt;/p&gt;

&lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;createCanvas&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// 100 -&amp;gt; width, 50 -&amp;gt; height&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now if you’ll open up the adjacent index.html file in your choice of a browser, you’ll see… well, nothing yet 😅.
We have created the canvas, but we didn’t draw anything on it yet!&lt;/p&gt;

&lt;p&gt;To draw our square, we will use the &lt;a href=&quot;https://p5js.org/reference/#/p5/rect&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;rect&lt;/code&gt;&lt;/a&gt; function. We will give it the position for where to draw it (x,y) as well as how large it should be (width, height). We will do all of this in the draw function since we want to draw the square for each frame and not just once.&lt;/p&gt;

&lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;draw&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;c1&quot;&gt;// x, y, width, height&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;rect&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;/assets/2019-04-15/first_square.png&quot; alt=&quot;our first square&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now if you open up your browser, you should see a square!&lt;/p&gt;

&lt;h3 id=&quot;defining-our-world&quot;&gt;Defining Our World&lt;/h3&gt;

&lt;p&gt;Time to add some structure to our game-world! Since we are drawing squares, let’s add a grid. To define the grid, I will define a new variable called &lt;code class=&quot;highlighter-rouge&quot;&gt;UNIT&lt;/code&gt; which will be in charge of the scale of the world and the consistency.
after defining our world measurement unit, we need to modify our canvas and square to use that unit. For this game, I’ll say that our world is going to be a 10x10 grid. For that, I will also define a &lt;code class=&quot;highlighter-rouge&quot;&gt;WIDTH&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;HEIGHT&lt;/code&gt;, which will define our world size in terms of our world’s unit.&lt;/p&gt;

&lt;p&gt;Lastly, we will modify our canvas to use those variables, and our square to draw itself as one unit wide and tall. We will also relocate our square to be positioned at (1,1) in world units.&lt;/p&gt;

&lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// each unit in the world is 32 pixels.&lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;WIDTH&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// width, in world units.&lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;HEIGHT&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// height, in world units.&lt;/span&gt;

&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;c1&quot;&gt;// width, height&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;createCanvas&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;WIDTH&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;HEIGHT&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;draw&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;c1&quot;&gt;// x, y, width, height&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;rect&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;/assets/2019-04-15/unit_square.png&quot; alt=&quot;unit based square&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Our square is now one unit wide and tall, and our world has more consistency to it as everything would use that one unit of measurement!&lt;/p&gt;

&lt;h3 id=&quot;drawing-the-grid&quot;&gt;Drawing the Grid&lt;/h3&gt;

&lt;p&gt;To draw our world’s grid, we simply need to draw a line horizontally, as well as vertically, per unit. To do so, we will use the &lt;a href=&quot;https://p5js.org/reference/#/p5/line&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;line&lt;/code&gt;&lt;/a&gt; function. The line function requires a start position (x1,y1) and an end position (x2,y2).&lt;/p&gt;

&lt;p&gt;For a horizontal line, we keep the &lt;code class=&quot;highlighter-rouge&quot;&gt;y&lt;/code&gt; value the same (y1==y2), but the &lt;code class=&quot;highlighter-rouge&quot;&gt;x&lt;/code&gt; values will be different (x1 != x2). In our case, the x position will start from the beginning of the canvas (&lt;code class=&quot;highlighter-rouge&quot;&gt;x1=0&lt;/code&gt;), and end at the end of our canvas (&lt;code class=&quot;highlighter-rouge&quot;&gt;x2=WIDTH*UNIT&lt;/code&gt;). We’ll set &lt;code class=&quot;highlighter-rouge&quot;&gt;y1&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;y2&lt;/code&gt; to &lt;code class=&quot;highlighter-rouge&quot;&gt;1*UNIT&lt;/code&gt; for now.&lt;/p&gt;

&lt;p&gt;We will do the opposite, keeping the x’s the same and y’s different (&lt;code class=&quot;highlighter-rouge&quot;&gt;x1==x2&lt;/code&gt;, &lt;code class=&quot;highlighter-rouge&quot;&gt;y1!=y2&lt;/code&gt;) for a vertical line. We’ll set &lt;code class=&quot;highlighter-rouge&quot;&gt;x1&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;x2&lt;/code&gt; to &lt;code class=&quot;highlighter-rouge&quot;&gt;1*UNIT&lt;/code&gt; for now as well.&lt;/p&gt;

&lt;p&gt;Congrats! now we have two lines ready to be drawn, one vertical and one horizontal.&lt;/p&gt;

&lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;// ... constants &amp;amp; setup function&lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;draw&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;c1&quot;&gt;// ... rest of drawing code&lt;/span&gt;

  &lt;span class=&quot;c1&quot;&gt;//(x1,y2,x2,y2)&lt;/span&gt;
  &lt;span class=&quot;c1&quot;&gt;// Horizontal line&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;line&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;WIDTH&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

  &lt;span class=&quot;c1&quot;&gt;// Vertical line&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;line&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;HEIGHT&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;/assets/2019-04-15/lines.png&quot; alt=&quot;two lines and a square drawn&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now that you got one line of each drawn, it’s time to draw the rest of the grid! We will use a &lt;a href=&quot;https://mdn.io/for&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;for&lt;/code&gt; loop&lt;/a&gt; to do that. we will have two for loops (though because our grid is a square, this could be achieved with a single loop since &lt;code class=&quot;highlighter-rouge&quot;&gt;WIDTH == HEIGHT&lt;/code&gt;).
We will need to do some minimal alteration to our original line drawing code: simply change the value of &lt;code class=&quot;highlighter-rouge&quot;&gt;1&lt;/code&gt; that is being multiplied by &lt;code class=&quot;highlighter-rouge&quot;&gt;UNIT&lt;/code&gt;, with the value that the loop is in charge of. We will loop over the number of units on our &lt;code class=&quot;highlighter-rouge&quot;&gt;y&lt;/code&gt; axis (&lt;code class=&quot;highlighter-rouge&quot;&gt;HEIGHT&lt;/code&gt;) to draw the horizontal lines, and loop over the number of units we have on our &lt;code class=&quot;highlighter-rouge&quot;&gt;x&lt;/code&gt; axis (&lt;code class=&quot;highlighter-rouge&quot;&gt;WIDTH&lt;/code&gt;) to draw the vertical lines.&lt;/p&gt;

&lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;// ... constants &amp;amp; setup function&lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;draw&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;c1&quot;&gt;// ... rest of drawing code&lt;/span&gt;

  &lt;span class=&quot;c1&quot;&gt;// Horizontal lines&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;y&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;y&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;HEIGHT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;//(x1,y2,x2,y2)&lt;/span&gt;
    &lt;span class=&quot;nx&quot;&gt;line&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;WIDTH&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  
  &lt;span class=&quot;c1&quot;&gt;// Vertical lines&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;WIDTH&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;//(x1,y2,x2,y2)&lt;/span&gt;
    &lt;span class=&quot;nx&quot;&gt;line&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;HEIGHT&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;/assets/2019-04-15/grid.png&quot; alt=&quot;grid&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You should now have a grid drawn, as well as your square!… But, where is the square..? Let’s change the square’s color so it’s easier to distinguish it from the rest of the grid. We will need to use the function &lt;a href=&quot;https://p5js.org/reference/#/p5/fill&quot;&gt;fill&lt;/a&gt; and give it RGB values to fill our rectangle with.&lt;/p&gt;

&lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;// ... constants &amp;amp; setup function&lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;draw&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;c1&quot;&gt;// r, g, b&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;fill&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;//fill w/ blue&lt;/span&gt;

  &lt;span class=&quot;c1&quot;&gt;// ... rest of drawing code&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;/assets/2019-04-15/colored_square.png&quot; alt=&quot;blue square on canvas&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Phew, there is our square! Time to make the square move 😁&lt;/p&gt;

&lt;h3 id=&quot;moving-your-square&quot;&gt;Moving Your Square&lt;/h3&gt;

&lt;p&gt;Time to make that square move! Let’s start off by using variables for the position of the square (&lt;code class=&quot;highlighter-rouge&quot;&gt;x,y&lt;/code&gt;) instead of just numbers.
To do that, let’s create an object called &lt;code class=&quot;highlighter-rouge&quot;&gt;pos&lt;/code&gt; to represent our position in the external scope.
After we create that variable, we will then replace the &lt;code class=&quot;highlighter-rouge&quot;&gt;x&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;y&lt;/code&gt; coordinates of the square to use the &lt;code class=&quot;highlighter-rouge&quot;&gt;x&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;y&lt;/code&gt; components of the position object.&lt;/p&gt;

&lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;// ...constants&lt;/span&gt;

&lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;pos&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;// ...setup function&lt;/span&gt;

&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;draw&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(){&lt;/span&gt;
  &lt;span class=&quot;c1&quot;&gt;// ... fill function&lt;/span&gt;

  &lt;span class=&quot;nx&quot;&gt;rect&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;pos&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;pos&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;y&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;UNIT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

  &lt;span class=&quot;c1&quot;&gt;// ... grid draw loop&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now we need to update the &lt;code class=&quot;highlighter-rouge&quot;&gt;x&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;y&lt;/code&gt; components of our &lt;code class=&quot;highlighter-rouge&quot;&gt;pos&lt;/code&gt; according to the keys pressed.
To do so, we will use the &lt;a href=&quot;https://p5js.org/reference/#/p5/keyIsDown&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;keyIsDown&lt;/code&gt;&lt;/a&gt; function and the provided Arrow &lt;a href=&quot;https://p5js.org/reference/#/p5/keyCode&quot;&gt;keyCodes&lt;/a&gt;. Since (0,0) is our top left corner, we would want to increment &lt;code class=&quot;highlighter-rouge&quot;&gt;x&lt;/code&gt; when the right arrow is pressed, and decrement when the left arrow is pressed. As for &lt;code class=&quot;highlighter-rouge&quot;&gt;y&lt;/code&gt;, we would want to increment when the down arrow is pressed, and decrement when the up arrow is pressed.&lt;/p&gt;

&lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;// ...constants &amp;amp; setup function&lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;draw&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;c1&quot;&gt;// ... rest of draw function&lt;/span&gt;

  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;keyIsDown&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;LEFT_ARROW&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;nx&quot;&gt;pos&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;keyIsDown&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;RIGHT_ARROW&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;nx&quot;&gt;pos&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;keyIsDown&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;UP_ARROW&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;nx&quot;&gt;pos&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;keyIsDown&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;DOWN_ARROW&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;nx&quot;&gt;pos&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Time to see what we came up with! Let’s try to move around now… and… uhhh well, that’s not what we wanted now, is it?&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/2019-04-15/smearing_square.gif&quot; alt=&quot;square smearing on canvas&quot; /&gt;&lt;/p&gt;

&lt;p&gt;So the reason this is happening is that the canvas is never getting cleared between frames! If we keep on drawing on that canvas every frame, and never cleaning it, the drawing from the previous frame remain!&lt;/p&gt;

&lt;p&gt;Not to worry, there is an easy solution, the function &lt;a href=&quot;https://p5js.org/reference/#/p5/clear&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;clear&lt;/code&gt;&lt;/a&gt;. We will run it as the first thing in our drawing loop, so it will clear our canvas before each frame and get it ready for a re-draw!&lt;/p&gt;

&lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;// ...constants &amp;amp; setup function&lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;draw&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;clear&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
  &lt;span class=&quot;c1&quot;&gt;// ... rest of draw function&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;/assets/2019-04-15/moving_square.gif&quot; alt=&quot;square moving with arrow keys&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now that’s more like it! Our square is moving according to whatever key we pressed!&lt;/p&gt;

&lt;h1 id=&quot;eof&quot;&gt;&lt;em&gt;EOF&lt;/em&gt;&lt;/h1&gt;

&lt;p&gt;There are many directions you can take it from here! This is just the tip of the iceberg. Personally, I took this little challenge and turned it to a multiplayer game that I am actively working on and will document my progress on 😁&lt;/p&gt;</content><author><name></name></author><category term="p5js" /><category term="game-dev" /><category term="game" /><summary type="html">Learn how to make your own browser game with p5.js!</summary></entry><entry><title type="html">Host Jekyll on GitHub Pages With a Custom Domain</title><link href="http://www.baruchadi.com/dev/blog/github-pages/2019/02/11/host-jekyll-on-github-pages-with-a-custom-domain.html" rel="alternate" type="text/html" title="Host Jekyll on GitHub Pages With a Custom Domain" /><published>2019-02-11T00:00:00+00:00</published><updated>2019-02-11T00:00:00+00:00</updated><id>http://www.baruchadi.com/dev/blog/github-pages/2019/02/11/host-jekyll-on-github-pages-with-a-custom-domain</id><content type="html" xml:base="http://www.baruchadi.com/dev/blog/github-pages/2019/02/11/host-jekyll-on-github-pages-with-a-custom-domain.html">&lt;p&gt;In this instruction-set, I’ll explain how you can host your Jekyll blog on GitHub Pages for free with your own domain!&lt;/p&gt;

&lt;p&gt;Don’t have a Jekyll blog yet? It’s easy to make one yourself! Check out this article and get started in just a few minutes: &lt;a href=&quot;/dev/blog/jekyll/2019/02/10/creating-a-dev-blog-using-jekyll.html&quot;&gt;Creating a Dev-Blog Using Jekyll&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;setting-up-github-pages&quot;&gt;Setting up GitHub Pages&lt;/h3&gt;
&lt;p&gt;Navigate to &lt;a href=&quot;https://github.com/&quot;&gt;GitHub&lt;/a&gt; and create a new repository. If it’s your personal blog, make sure to name it &lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;username&amp;gt;.github.io&lt;/code&gt; (in my case, &lt;code class=&quot;highlighter-rouge&quot;&gt;baruchadi.github.io&lt;/code&gt;).&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;&lt;em&gt;Any other naming scheme would end up hosted at &lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;username&amp;gt;.github.io/projectName&lt;/code&gt; see &lt;a href=&quot;https://pages.github.com/&quot;&gt;GitHub Pages&lt;/a&gt; for an in-depth explanation on how to set up a project page instead of a personal site.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now all you got to do is push your local Jekyll project to GitHub!  &lt;br /&gt;
With your CLI of choice, (assuming you have &lt;a href=&quot;https://git-scm.com/downloads&quot;&gt;git&lt;/a&gt; installed)
Navigate to your project’s directory &amp;amp; initialize a new Git local repo and configure it, make sure to replace the git URL with your own repo’s URL&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;git init
&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;git remote add origin https://github.com/&amp;lt;UserName&amp;gt;/&amp;lt;ProjectName&amp;gt;.git
&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;git add &lt;span class=&quot;k&quot;&gt;*&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;git commit &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;first commit&quot;&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;git push &lt;span class=&quot;nt&quot;&gt;-u&lt;/span&gt; origin master&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;blockquote&gt;
  &lt;ul&gt;
    &lt;li&gt;I found that sometimes it takes GitHub a really long time to realize this is a Jekyll project, to escalate it, I’ve picked a theme under Settings -&amp;gt; GitHub Pages -&amp;gt; Theme Chooser and then undid it.&lt;/li&gt;
    &lt;li&gt;Also, If it does deploy but you get a blank screen, please make sure you have set the URL flag under your &lt;code class=&quot;highlighter-rouge&quot;&gt;_config.yml&lt;/code&gt; file!&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;Jekyll would do the rest for you! It would now build and deploy your site to &lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;username&amp;gt;.github.io&lt;/code&gt;.  &lt;br /&gt;
&lt;em&gt;In my case, &lt;code class=&quot;highlighter-rouge&quot;&gt;baruchadi.github.io&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;buying-a-domain--setting-up-dns-records&quot;&gt;Buying a Domain &amp;amp; Setting up DNS Records&lt;/h3&gt;
&lt;p&gt;So now your site is published under &lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;username&amp;gt;.github.io&lt;/code&gt;. Sure, that works, but you probably want to have your own domain name instead of a subdomain on &lt;code class=&quot;highlighter-rouge&quot;&gt;github.io&lt;/code&gt;!&lt;/p&gt;

&lt;p&gt;Personally, I manage my domains on &lt;a href=&quot;https://www.namecheap.com/&quot;&gt;NameCheap&lt;/a&gt;. But any other domain registration site would do as well.   &lt;br /&gt;
After buying your domain, you will need to modify a few settings to make it work with your GitHub Pages free hosting:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Navigate to your DNS settings&lt;/p&gt;

    &lt;p&gt;&lt;em&gt;on NameCheap, go to Dashboard -&amp;gt; Click &lt;code class=&quot;highlighter-rouge&quot;&gt;Manage&lt;/code&gt; next to your domain name -&amp;gt; &lt;code class=&quot;highlighter-rouge&quot;&gt;Advanced DNS&lt;/code&gt; on the top&lt;/em&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;We will set up a CNAME record (basically configuring our custom domain as an alias to our GitHub Pages domain)&lt;/p&gt;

    &lt;p&gt;&lt;em&gt;Click &lt;code class=&quot;highlighter-rouge&quot;&gt;Add New Record&lt;/code&gt; -&amp;gt; select &lt;code class=&quot;highlighter-rouge&quot;&gt;CNAME Record&lt;/code&gt; -&amp;gt; write &lt;code class=&quot;highlighter-rouge&quot;&gt;www&lt;/code&gt; under Host -&amp;gt; write your GitHub Pages domain name under &lt;code class=&quot;highlighter-rouge&quot;&gt;Value&lt;/code&gt; -&amp;gt; select TTL (I set mine under 30 minutes)&lt;/em&gt;&lt;/p&gt;

    &lt;blockquote&gt;
      &lt;p&gt;TTL is how long it will take DNS servers to update with your new data.&lt;/p&gt;
    &lt;/blockquote&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;You might also want a URL Redirect Record if you don’t already have one. In my case, it redirects people from &lt;code class=&quot;highlighter-rouge&quot;&gt;baruchadi.com&lt;/code&gt; to &lt;code class=&quot;highlighter-rouge&quot;&gt;www.baruchadi.com&lt;/code&gt; so that no matter which one you go to, you’ll get to the same site.&lt;/p&gt;

    &lt;p&gt;&lt;em&gt;Click &lt;code class=&quot;highlighter-rouge&quot;&gt;Add New Record&lt;/code&gt; -&amp;gt; select &lt;code class=&quot;highlighter-rouge&quot;&gt;URL Redirect Record&lt;/code&gt; -&amp;gt; set Host as &lt;code class=&quot;highlighter-rouge&quot;&gt;@&lt;/code&gt; -&amp;gt; set Value to &lt;code class=&quot;highlighter-rouge&quot;&gt;http://www.yourdomain.com&lt;/code&gt; and keep it as unmasked.&lt;/em&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That’s it for DNS settings!&lt;/p&gt;

&lt;p&gt;Now, go back to your GitHub Repo -&amp;gt; Settings, and scroll down to GitHub Pages section.  &lt;br /&gt;
Under Custom Domain, make sure you write down your domain address (&lt;code class=&quot;highlighter-rouge&quot;&gt;www.yourdomain.com&lt;/code&gt;). This will create a CNAME file on your master branch with your domain name inside of it. Keep that, that makes it so that if people navigate to &lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;username&amp;gt;.github.io&lt;/code&gt; they would instead end up on your new custom domain.&lt;/p&gt;

&lt;p&gt;Keep in mind, it might take up to 30 minutes for everything to update (determined by your TTL setting). Right after that is done, you should be able to access your site using your own domain!&lt;/p&gt;

&lt;h1 id=&quot;eof&quot;&gt;&lt;em&gt;EOF&lt;/em&gt;&lt;/h1&gt;

&lt;p&gt;Congratulations! Your site is now hosted on GitHub Pages for free, and you even have your own custom domain!&lt;/p&gt;

&lt;p&gt;This is the last article in the “dev-blog” series. Stay tuned to find out what’s next!&lt;/p&gt;</content><author><name></name></author><category term="Jekyll" /><category term="dev-blog" /><category term="GitHub-pages" /><summary type="html">In this instruction-set, I’ll explain how you can host your Jekyll blog on GitHub Pages for free with your own domain!</summary></entry><entry><title type="html">Creating a Dev-Blog Using Jekyll</title><link href="http://www.baruchadi.com/dev/blog/jekyll/2019/02/10/creating-a-dev-blog-using-jekyll.html" rel="alternate" type="text/html" title="Creating a Dev-Blog Using Jekyll" /><published>2019-02-10T15:00:00+00:00</published><updated>2019-02-10T15:00:00+00:00</updated><id>http://www.baruchadi.com/dev/blog/jekyll/2019/02/10/creating-a-dev-blog-using-jekyll</id><content type="html" xml:base="http://www.baruchadi.com/dev/blog/jekyll/2019/02/10/creating-a-dev-blog-using-jekyll.html">&lt;p&gt;Learn to create your own (dev)-blog using Jekyll!&lt;/p&gt;

&lt;h2 id=&quot;setting-up-jekyll-locally&quot;&gt;Setting up Jekyll locally&lt;/h2&gt;

&lt;p&gt;Staring off with &lt;a href=&quot;https://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; is &lt;em&gt;extremely&lt;/em&gt; easy! First of all, we’ll start by setting up our simple environment:&lt;/p&gt;

&lt;h3 id=&quot;1-setting-up-a-ruby-environment&quot;&gt;1. Setting up a Ruby environment&lt;/h3&gt;
&lt;p&gt;You may ask&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;“Why do I even need Ruby installed?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Well, &lt;strong&gt;Jekyll&lt;/strong&gt; is a &lt;em&gt;Ruby Gem&lt;/em&gt; (think of a gem as a packaged code/software to be reused by others), and therefore requires you have Ruby installed on your machine. For Jekyll, we need Ruby version &lt;em&gt;&lt;strong&gt;2.2.5&lt;/strong&gt;&lt;/em&gt; or above, so keep that in mind when you install it if you have to pick a version.  &lt;br /&gt;
Let’s get started:&lt;/p&gt;
&lt;h4 id=&quot;windows&quot;&gt;&lt;em&gt;Windows&lt;/em&gt;&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;To get set up on windows, you will need to download &lt;em&gt;Ruby+Devkit&lt;/em&gt; from &lt;a href=&quot;https://rubyinstaller.org/downloads/&quot;&gt;RubyInstaller site&lt;/a&gt;  &lt;br /&gt;
(I downloaded 2.5.3 at the time of this tutorial, but anything 2.3 and above should be good!)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;macos&quot;&gt;&lt;em&gt;MacOS&lt;/em&gt;&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Ruby actually came preinstalled on my Mac. If you are having issues with it though, visit the &lt;a href=&quot;https://Jekyllrb.com/docs/installation/macos/&quot;&gt;Jekyll Official instructions&lt;/a&gt; for more details on how to install it using HomeBrew or other methods.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;2-installing-jekyll&quot;&gt;2. Installing Jekyll&lt;/h3&gt;
&lt;p&gt;Once you have your Ruby environment set up, it’s time to install Jekyll.&lt;/p&gt;

&lt;p&gt;Run the following command in your CLI of choice:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;gem install bundler jekyll&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;&lt;em&gt;(make sure to launch a new instance of your CLI so that your path variables would update)&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Note, I had to also run &lt;code class=&quot;highlighter-rouge&quot;&gt;bundle install&lt;/code&gt; on my Windows machine due to various missing gems.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Verify Jekyll has been installed by running &lt;code class=&quot;highlighter-rouge&quot;&gt;jekyll -v&lt;/code&gt;&lt;/p&gt;

&lt;h3 id=&quot;3-creating-your-blog-locally&quot;&gt;3. Creating Your Blog Locally&lt;/h3&gt;

&lt;p&gt;this is pretty straight forward, just run this simple command!&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;jekyll new MY_BLOG_NAME&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Replace &lt;code class=&quot;highlighter-rouge&quot;&gt;MY_BLOG_NAME&lt;/code&gt; with your blog name. Jekyll will now create a new project in your current working directory inside of a new folder named after your blog!&lt;/p&gt;

&lt;h3 id=&quot;4-running-a-jekyll-server-locally&quot;&gt;4. Running a Jekyll Server Locally&lt;/h3&gt;
&lt;p&gt;We are pretty much done setting up our Jekyll environment! Check our your blog by running the server! 
Run the following command to start up the server:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;jekyll serve&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;&lt;em&gt;If that didn’t work, check if there are any gems you need to install by running &lt;code class=&quot;highlighter-rouge&quot;&gt;bundle install&lt;/code&gt; and then try to launch it explicitly using bundle as follows: &lt;code class=&quot;highlighter-rouge&quot;&gt;bundle exec jekyll serve&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Now open your web browser of choice and navigate to &lt;code class=&quot;highlighter-rouge&quot;&gt;localhost:4000&lt;/code&gt; &lt;strong&gt;OR&lt;/strong&gt; &lt;code class=&quot;highlighter-rouge&quot;&gt;127.0.0.1:4000&lt;/code&gt; and you should be able to see your site!&lt;/p&gt;

&lt;h2 id=&quot;understanding-the-jekyll-environment&quot;&gt;Understanding the Jekyll Environment&lt;/h2&gt;

&lt;h3 id=&quot;jekyll-folders--files&quot;&gt;Jekyll Folders &amp;amp; Files&lt;/h3&gt;

&lt;p&gt;Your folder hierarchy should look similar to this:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-text&quot; data-lang=&quot;text&quot;&gt;MY_BLOG_NAME
  |
  |- _drafts/     -&amp;gt; Contains posts that should not be published yet
  |- _posts/      -&amp;gt; Contains all of your published posts   
  |- _config.yml  -&amp;gt; Holds site configuration and variables
  |- 404.html     -&amp;gt; Your 404 page for pages that do not exist
  |- about.md     -&amp;gt; Your about page, written in markdown
  |- Gemfile      -&amp;gt; Your dependency management file 
  |- index.md     -&amp;gt; Your homepage&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;em&gt;You might not have a _drafts/  folder, so feel free to create one!&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;the-_configyml-file&quot;&gt;The &lt;em&gt;&lt;strong&gt;_config.yml&lt;/strong&gt;&lt;/em&gt; File&lt;/h3&gt;
&lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;_config.yml&lt;/code&gt; is the file that will hold a lot of valuable information about your site. Jekyll themes will use those variables to configure a lot of the site for you!&lt;/p&gt;

&lt;p&gt;I recommend starting off by modifying that file and filling in your blog information such as&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-text&quot; data-lang=&quot;text&quot;&gt;title
email
description
url
twitter_username
github_username
google_analytics&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Now go back to your site and refresh. You should see various parts of the site updated to use your newly added variables!&lt;/p&gt;

&lt;h3 id=&quot;md--html-files-on-root&quot;&gt;&lt;em&gt;&lt;strong&gt;.md / .html&lt;/strong&gt;&lt;/em&gt; Files on Root&lt;/h3&gt;
&lt;p&gt;Markdown files and HTML files on root (&lt;code class=&quot;highlighter-rouge&quot;&gt;index.md&lt;/code&gt;, &lt;code class=&quot;highlighter-rouge&quot;&gt;about.md&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;404.html&lt;/code&gt;) are your regular, non-post, pages.&lt;/p&gt;

&lt;p&gt;Feel free to customize your About and 404 pages. Leave index.md as is for now since it is generated by your Jekyll theme and gets populated automatically with your most recent posts!&lt;/p&gt;

&lt;p&gt;You can add more &lt;code class=&quot;highlighter-rouge&quot;&gt;.md&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;.html&lt;/code&gt; files to your root, and they will be accessible for you to navigate to. For example, if you add a new &lt;code class=&quot;highlighter-rouge&quot;&gt;test.md&lt;/code&gt; (or &lt;code class=&quot;highlighter-rouge&quot;&gt;test.html&lt;/code&gt;) file on root, you will then be able to access it by navigating to &lt;code class=&quot;highlighter-rouge&quot;&gt;localhost:4000/test&lt;/code&gt;&lt;/p&gt;

&lt;h1 id=&quot;eof&quot;&gt;&lt;em&gt;EOF&lt;/em&gt;&lt;/h1&gt;

&lt;p&gt;That’s pretty much it for setting up Jekyll locally! Next up is setting up our GitHub Pages free hosting and connecting it to our custom domain.&lt;/p&gt;

&lt;p&gt;My next article will explain how to do so, step-by-step:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/dev/blog/github-pages/2019/02/11/host-jekyll-on-github-pages-with-a-custom-domain.html&quot;&gt;Host Jekyll on GitHub Pages With a Custom Domain&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><author><name></name></author><category term="Jekyll" /><category term="dev-blog" /><category term="GitHub" /><summary type="html">Learn to create your own (dev)-blog using Jekyll!</summary></entry><entry><title type="html">Starting a Dev Blog</title><link href="http://www.baruchadi.com/dev/blog/2019/01/30/starting-a-dev-blog.html" rel="alternate" type="text/html" title="Starting a Dev Blog" /><published>2019-01-30T15:00:00+00:00</published><updated>2019-01-30T15:00:00+00:00</updated><id>http://www.baruchadi.com/dev/blog/2019/01/30/starting-a-dev-blog</id><content type="html" xml:base="http://www.baruchadi.com/dev/blog/2019/01/30/starting-a-dev-blog.html">&lt;p&gt;I’ve finally decided that this year I’d create this much overdue dev blog 🥳🎉.&lt;/p&gt;

&lt;h1 id=&quot;why-did-you-pick-jekyll&quot;&gt;Why did you pick Jekyll?&lt;/h1&gt;

&lt;p&gt;Personally, I tend to over-engineer things. I get stuck designing the product, or my environment, for so long that I never get to actually create and publish the product.
To prevent myself from overthinking and procrastinating because something didn’t line up properly,I chose Jekyll. Jekyll provides me with a very minimal pre-constructed environment, and allows me to focus on creating the content.&lt;/p&gt;

&lt;p&gt;Jekyll…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Is extremely simple to use&lt;/li&gt;
  &lt;li&gt;generates a static site to be hosted anywhere
    &lt;ul&gt;
      &lt;li&gt;can be hosted on GitHub&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;has a deployment process that is ridiculously simple
    &lt;ul&gt;
      &lt;li&gt;just merge to master and GitHub will take care of the rest&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;other-considerations&quot;&gt;Other Considerations&lt;/h1&gt;

&lt;p&gt;As a long time React developer, the first thing that came to mind was just using &lt;a href=&quot;https://github.com/facebook/create-react-app&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;create-react-app&lt;/code&gt;&lt;/a&gt;. Then I learned about &lt;a href=&quot;https://www.gatsbyjs.org/&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;Gatsby&lt;/code&gt;&lt;/a&gt;, which is a static site generator that uses React. Both of these are great options and personally I would lean more towards &lt;code class=&quot;highlighter-rouge&quot;&gt;Gatsby&lt;/code&gt; for this kind of project (and I plan on migrating to it &lt;em&gt;eventually&lt;/em&gt;, but that would take a while…).&lt;/p&gt;

&lt;h1 id=&quot;so-why-not-use-cragatsby-now&quot;&gt;So why not use CRA/Gatsby now?&lt;/h1&gt;

&lt;p&gt;I’ve tried out both recently, but always found that I got stuck at planning the product &lt;em&gt;over&lt;/em&gt; actually making it:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Should I set up and use TS? 😯&lt;/li&gt;
  &lt;li&gt;How should I structure my GitHub Repo? 😧&lt;/li&gt;
  &lt;li&gt;What will my deployment process look like? 😣&lt;/li&gt;
  &lt;li&gt;What other technologies can I incorporate into this project? 😫&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you can see, I would have never gotten to actually publish anything! I would get discouraged because I started working on a large ambitious project (wow… I tend to do that a lot now that I think about it 🤔). As soon as I start getting overwhelmed by the volume of things I have to do to simply get the project &lt;strong&gt;started&lt;/strong&gt; I would rethink if the project is even &lt;em&gt;worth it&lt;/em&gt;.&lt;/p&gt;

&lt;h1 id=&quot;eof&quot;&gt;&lt;em&gt;EOF&lt;/em&gt;&lt;/h1&gt;

&lt;p&gt;This article talked about my thought process before choosing Jekyll. In the next article we will get to setting up a blog with jekyll so that you can start one on your own for your projects! 😄&lt;/p&gt;</content><author><name></name></author><category term="jekyll" /><category term="dev-blog" /><category term="gatsby" /><category term="GitHub" /><summary type="html">I’ve finally decided that this year I’d create this much overdue dev blog 🥳🎉.</summary></entry><entry><title type="html">Welcome to Baruchadi.com!</title><link href="http://www.baruchadi.com/dev/blog/2019/01/23/welcome-to-baruchadi.com.html" rel="alternate" type="text/html" title="Welcome to Baruchadi.com!" /><published>2019-01-23T15:00:00+00:00</published><updated>2019-01-23T15:00:00+00:00</updated><id>http://www.baruchadi.com/dev/blog/2019/01/23/welcome-to-baruchadi.com</id><content type="html" xml:base="http://www.baruchadi.com/dev/blog/2019/01/23/welcome-to-baruchadi.com.html">&lt;p&gt;&lt;em&gt;Why, hello there! Welcome to my &lt;strong&gt;dev blog&lt;/strong&gt;!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This page marks the beginning of a new journey. You can read a bit about me &lt;a href=&quot;/about&quot;&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;what-to-expect&quot;&gt;What to Expect&lt;/h2&gt;

&lt;p&gt;I am planning to document my whole journey from this point onward as a software engineer. There will be step by step tutorials, more generic discussions, opinions on different technologies, and my experience in general.&lt;/p&gt;

&lt;p&gt;Thank you for stopping by, I’m looking forward to seeing how 2019 will go!&lt;/p&gt;</content><author><name></name></author><summary type="html">Why, hello there! Welcome to my dev blog!</summary></entry></feed>