<?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: Mayemene Fomene Jean Vladimir</title>
    <description>The latest articles on Forem by Mayemene Fomene Jean Vladimir (@vladimirfomene).</description>
    <link>https://forem.com/vladimirfomene</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%2F71847%2F95f8bc47-1b42-4086-9c31-f1a0e959c22e.jpeg</url>
      <title>Forem: Mayemene Fomene Jean Vladimir</title>
      <link>https://forem.com/vladimirfomene</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/vladimirfomene"/>
    <language>en</language>
    <item>
      <title>Scope</title>
      <dc:creator>Mayemene Fomene Jean Vladimir</dc:creator>
      <pubDate>Thu, 09 Aug 2018 15:19:35 +0000</pubDate>
      <link>https://forem.com/vladimirfomene/scope-31c3</link>
      <guid>https://forem.com/vladimirfomene/scope-31c3</guid>
      <description>&lt;p&gt;What is the difference between lexical scoping and dynamic scoping?&lt;/p&gt;

</description>
      <category>programminglanguages</category>
      <category>scope</category>
    </item>
    <item>
      <title>Make A Recursive Anonymous Factorial Function In Python.</title>
      <dc:creator>Mayemene Fomene Jean Vladimir</dc:creator>
      <pubDate>Wed, 04 Jul 2018 08:54:09 +0000</pubDate>
      <link>https://forem.com/vladimirfomene/make-a-recursive-anonymous-factorial-function-in-python-4dl3</link>
      <guid>https://forem.com/vladimirfomene/make-a-recursive-anonymous-factorial-function-in-python-4dl3</guid>
      <description>&lt;p&gt;I'm currently taking &lt;a href="https://inst.eecs.berkeley.edu/~cs61a/sp18/"&gt;Structure and Interpretation of computer programs&lt;/a&gt; from the University of Berkeley. Here is a nice question from one of the homeworks. You might want to try your hands at it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Q6: Anonymous factorial&lt;/em&gt;&lt;br&gt;
The recursive factorial function can be written as a single expression by using a conditional expression.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; fact = lambda n: 1 if n == 1 else mul(n, fact(sub(n, 1)))
&amp;gt;&amp;gt;&amp;gt; fact(5)
120
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;However, this implementation relies on the fact (no pun intended) that &lt;em&gt;fact&lt;/em&gt; has a name, to which we refer in the body of &lt;em&gt;fact&lt;/em&gt;. To write a recursive function, we have always given it a name using a &lt;em&gt;def&lt;/em&gt; or assignment statement so that we can refer to the function within its own body. In this question, your job is to define fact recursively without giving it a name!&lt;/p&gt;

&lt;p&gt;Write an expression that computes &lt;em&gt;n&lt;/em&gt; factorial using only call expressions, conditional expressions, and lambda expressions (no assignment or def statements). Note in particular that you are not allowed to use &lt;em&gt;make_anonymous_factorial&lt;/em&gt; in your return expression. The &lt;em&gt;sub&lt;/em&gt; and &lt;em&gt;mul&lt;/em&gt; functions from the &lt;em&gt;operator&lt;/em&gt; module are the only built-in functions required to solve this problem:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from operator import sub, mul

def make_anonymous_factorial():
"""Return the value of an expression that computes factorial.

&amp;gt;&amp;gt;&amp;gt; make_anonymous_factorial()(5)
120
&amp;gt;&amp;gt;&amp;gt; from construct_check import check
&amp;gt;&amp;gt;&amp;gt; check(HW_SOURCE_FILE, 'make_anonymous_factorial', ['Assign', 'AugAssign', 'FunctionDef', 'Recursion'])
True
"""
return 'YOUR_EXPRESSION_HERE'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>lambda</category>
      <category>recursion</category>
      <category>python</category>
    </item>
    <item>
      <title>Floating Point Imprecision</title>
      <dc:creator>Mayemene Fomene Jean Vladimir</dc:creator>
      <pubDate>Wed, 13 Jun 2018 04:59:02 +0000</pubDate>
      <link>https://forem.com/vladimirfomene/floating-point-imprecision-4f8k</link>
      <guid>https://forem.com/vladimirfomene/floating-point-imprecision-4f8k</guid>
      <description>&lt;h1&gt;
  
  
  What is Floating point imprecision?
&lt;/h1&gt;

&lt;p&gt;These two expressions in python are suppose to produce the same result. But why don't they do that?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; 7 / 3 * 3
7.0

&amp;gt;&amp;gt;&amp;gt; 1 / 3 * 7 * 3
6.999999999999999
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  When should you be careful about floating point imprecision?
&lt;/h1&gt;

</description>
      <category>python</category>
      <category>floats</category>
      <category>help</category>
    </item>
    <item>
      <title>How To Design Computer Programs</title>
      <dc:creator>Mayemene Fomene Jean Vladimir</dc:creator>
      <pubDate>Sun, 03 Jun 2018 22:12:12 +0000</pubDate>
      <link>https://forem.com/vladimirfomene/how-to-design-computer-programs-3ibp</link>
      <guid>https://forem.com/vladimirfomene/how-to-design-computer-programs-3ibp</guid>
      <description>

&lt;h2&gt;
  
  
  Why Think About Program Design Before Coding?
&lt;/h2&gt;

&lt;p&gt;Give me six hours to chop down a tree and I will spend the first four sharpening the axe, said &lt;em&gt;Abraham Lincoln&lt;/em&gt;. This&lt;br&gt;
statement also applies to software development. The truth is, in order to develop great software you have to put in a lot of thought&lt;br&gt;
around the design and interactions of the software components. Why spend time on program design? If you put in time to think about&lt;br&gt;
your program design you will spend less time coding. Following Abraham Lincoln's quote, you will spend 33.3% of your time coding. This is because after program design you know all the classes and methods which you have to code and how they will change the state (data) of your program. It will help you think about your program as a group of modules interacting with each other thereby making your program modular. Modularizing your program will ease task assignment during development. It will help you write better code as you will have to think about program decomposition and step wise refinement. All in all, thinking about program design before coding will make you a better software engineer and programmer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Use Tic-Tac-Toe As Our Case Study?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4FeSfIH7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://vladimirfomene.github.io/assets/img/tic_tac_toe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4FeSfIH7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://vladimirfomene.github.io/assets/img/tic_tac_toe.png" alt="Tic Tac Toe"&gt;&lt;/a&gt;&lt;br&gt;
Tic-Tac-Toe is a paper-and-pencil game for two players, X and O, who take turns marking the spaces in a 3×3 grid. The player who succeeds in placing three of their marks in a horizontal, vertical, or diagonal row wins the game. The following example game is won by the first player, X (En.wikipedia.org, 2018):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Bd0vFnQv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://vladimirfomene.github.io/assets/img/479px-Tic-tac-toe-game-1.svg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Bd0vFnQv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://vladimirfomene.github.io/assets/img/479px-Tic-tac-toe-game-1.svg.png" alt="Game Play"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Players soon discover that the best play from both parties leads to a draw. Hence, tic-tac-toe is most often played by young children (En.wikipedia.org, 2018).&lt;br&gt;
I choose Tic-Tac-Toe as our case study because it is relatively easy to program and programming it will give me the chance to talk&lt;br&gt;
about some key software engineering techniques. You can find the code at the following link:&lt;br&gt;
&lt;a href="https://github.com/vladimirfomene/Tic-Tac-Toe"&gt;Fork me on Github&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Strategies For Designing Better Programs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Decomposition
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;As computer scientists, we know that to solve a big problem we need to break it into smaller problems and solve these smaller
problems. In software design we do exactly the same thing. To develop the Tic-Tac-Toe game, I decomposed it into the following pieces:&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;em&gt;Initialize the players - Get players' names, assign them drawing symbols and ids.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Initialize the game grid - Draw the grid for Tic-Tac-Toe and set the initial turns for Players.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Wait for a player to play their turn&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;If a player has played, Check for a win&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;If there is a win, ask the players whether they want to continue playing.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;If they want to continue playing, reset the game grid and reset players' turns(go back to 2), otherwise declare the winner of the game and exit the program.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;If there is no win, alternate turns and go back to 3.&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This was my initial strategy for developing this software. I had to change this strategy when I started writing the code and I realized that most of the players' actions in the game were going to be MouseClick events and I will have to handle them by implementing event listeners.&lt;/p&gt;

&lt;h3&gt;
  
  
  Programming Paradigm
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;When working on a software project, it is advised to pick a programming paradigm to use while writing your code. For Tic-Tac-Toe, I'm using an Object Oriented Programming Paradigm. That means, I designed the whole program around classes and interfaces.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;TicTacToe class - This class contains the main method of our program.&lt;/li&gt;
&lt;li&gt;GameBoard class - This class implements our gameboard and handling all the interactions on it.&lt;/li&gt;
&lt;li&gt;Player class - This class represents a player in the game and also stores that player's attributes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Aside from these classes, there is a GameConstants interface shared by these classes. This interface specifies all the  constants&lt;br&gt;
needed for the game.&lt;/p&gt;

&lt;h3&gt;
  
  
  Good Names and Method Length
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;When programing make sure your classes' names, methods' names, variables' and constants' names reflect what the class represents or what they do. Good class, method, variable and constant names will reduce the amount of commenting that you have to do. All my class names reflect what each of these classes either do or stand for.

&lt;ul&gt;
&lt;li&gt;Example of Good Method names - initGrid(initializes the tic-tac-toe game grid), checkForWin(after a player plays check whether the player won), drawCircle(draws circles on a grid cell), drawCross(draws cross on a grid cell) and recordScore(records the score for a particular player).&lt;/li&gt;
&lt;li&gt;Example of Good Variable names - scoreBoard(an array that keeps track of the players' scores), boardState(an array of Grid cells that keeps track of the state of the board)&lt;/li&gt;
&lt;li&gt;Example of Good Constant names - NUM_OF_PLAYERS(represents the number of players in the game), NUM_GRID_ROWS(number of rows on the game grid), NUM_GRID_COLUMNS(number of columns on the game grid)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Version control
&lt;/h3&gt;

&lt;p&gt;Whenever you are working on a project, make sure you start by initializing a repository using &lt;em&gt;Git&lt;/em&gt; or any other version control tool of your choice.  Whenever you add a new functionality to your code, make sure you stage and commit it these changes. Stage and commit very often, don't wait until you have achieved a major milestone before you stage and commit the changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Code Review
&lt;/h3&gt;

&lt;p&gt;Ask a peer to review your code and tell you how you can make it better. If you want to review my code, send me a request at the email below:&lt;/p&gt;

&lt;h2&gt;
  
  
  Contacts:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://twitter.com/VladimirFomene"&gt;Follow me on Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/vladimirfomene"&gt;Fork me on Github&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=""&gt;Email Me: vladimirfomene@gmail.com&lt;/a&gt;&lt;/p&gt;


</description>
      <category>oop</category>
      <category>programdesign</category>
      <category>java</category>
    </item>
    <item>
      <title>How To Setup Your Blog</title>
      <dc:creator>Mayemene Fomene Jean Vladimir</dc:creator>
      <pubDate>Tue, 15 May 2018 19:54:03 +0000</pubDate>
      <link>https://forem.com/vladimirfomene/how-to-setup-your-blog-4fi6</link>
      <guid>https://forem.com/vladimirfomene/how-to-setup-your-blog-4fi6</guid>
      <description>&lt;h2&gt;
  
  
  Why blog?
&lt;/h2&gt;

&lt;p&gt;Blogging is way for you to share your ideas on topics that you are interested in. These topics do not need to be technical though in our case it is going to be.&lt;br&gt;
According to &lt;em&gt;Sifus&lt;/em&gt; (masters or teachers), the best way to learn is to teach, therefore many people write to learn and teach at the same time.  Among other things, blogging will help you refine your writing skills and share your work with a larger technical audience like folks on &lt;a href="https://news.ycombinator.com/" rel="noopener noreferrer"&gt;HackerNews&lt;/a&gt;, &lt;a href="https://dev.to/"&gt;dev.to&lt;/a&gt; and other community sites. You will learn how to effectively communicate your amazing ideas with people of all technical backgrounds. As a blogger, you are also building a track record for yourself which can land you amazing opportunities like talking at conferences and job opportunities. If you do a great job, you will build an audience you can reach out to when you need support.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why Jekyll?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://jekyllrb.com/" rel="noopener noreferrer"&gt;Jekyll&lt;/a&gt; is a blogging framework written in Ruby. It is very simple and easy to setup. You can setup a blog on the web in a less than a day. Yes, you heard me, less than a day. Furthermore, you can easily host your Jekyll blog on &lt;a href="https://pages.github.com/" rel="noopener noreferrer"&gt;Github Pages&lt;/a&gt; with a single &lt;code&gt;git push&lt;/code&gt; for free. &lt;em&gt;Hakuna Matata(No worries)&lt;/em&gt;, if you don't know how, I will show you. In Jekyll, you can write your blog post in a textfile or a markdown file and Jekyll will automatically generate your html pages using a markdown builder or textfile builder. This allows you to quickly make updates to your blog and easily include your code snippets, images and videos in your post. Jekyll also comes with some pre-built &lt;a href="https://pages.github.com/themes/" rel="noopener noreferrer"&gt;themes&lt;/a&gt; which you can use for styling and laying out your  site.&lt;/p&gt;
&lt;h2&gt;
  
  
  How to use Jekyll?
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Get Jekyll On Your Computer
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Go to the Jekyll website and download the version of Jekyll that corresponds to your operating system. I will explain the process for Windows OS since I use Windows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to the &lt;a href="https://git-scm.com/download/win" rel="noopener noreferrer"&gt;Git website&lt;/a&gt; and download Git if you do not already have it. Install Git, without changing any of the default configurations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Download Ruby using the Ruby installer, on the &lt;a href="https://jekyllrb.com/docs/windows/" rel="noopener noreferrer"&gt;Jekyll installation page&lt;/a&gt;. Then, open the command prompt and run &lt;code&gt;gem install jekyll bundler&lt;/code&gt; to install Jekyll and Bundler. Bundler is a library downloader for Ruby.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Check if Jekyll was installed properly by running the following command in your command prompt:&lt;br&gt;
&lt;code&gt;jekyll -v&lt;/code&gt;. You should see the following result:&lt;/p&gt;&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%2Fvladimirfomene.github.io%2Fassets%2Fimg%2Fjekyll-version.JPG" 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%2Fvladimirfomene.github.io%2Fassets%2Fimg%2Fjekyll-version.JPG" alt="Jekyll Version"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Go to a directory of your choice and type &lt;code&gt;jekyll new username.github.io&lt;/code&gt; where &lt;em&gt;username&lt;/em&gt; is your Github username like &lt;em&gt;vladimirfomene&lt;/em&gt; in my case. This command will create a directory for your blog with some skeleton files and directories in it. Jekyll creates every new blog with its default theme(&lt;a href="https://jekyll.github.io/minima/" rel="noopener noreferrer"&gt;minima&lt;/a&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Then move to the &lt;em&gt;username.github.io&lt;/em&gt; directory and list the content. You should see the following folder and files:&lt;/p&gt;&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%2Fvladimirfomene.github.io%2Fassets%2Fimg%2Fdirectory-structure.JPG" 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%2Fvladimirfomene.github.io%2Fassets%2Fimg%2Fdirectory-structure.JPG" alt="Jekyll Directory Structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The 404.html page will appear when someone navigates to a page that was not found in your blog directory. Jekyll generates a &lt;em&gt;.gitignore&lt;/em&gt; file which has a listing of all the files and directories Git should ignore when doing version control. This file contains a directory called &lt;em&gt;_site&lt;/em&gt; on it first line. This directory will be generated when you will run &lt;code&gt;bundle exec jekyll serve&lt;/code&gt; in your command prompt to launch the Jekyll server so as to see your site in a browser. This directory contains the generated version (all your markdown or textfile have been converted to webpages) of the blog that will be served to your browser. The &lt;em&gt;Gemfile&lt;/em&gt; in the directory is used by bundler to manage the libraries needed by Jekyll. The folder also contains an about.md and index.md file which are created by Jekyll for you and will be converted to html pages upon serving your blog. Index.md will become index.html(homepage), about.md will become about.html and will represent your about page. The &lt;em&gt;_config.yml&lt;/em&gt; file contains configuration for your blog. Like the title of the blog. The url, markdown parser, email and the theme used by your blog. Below is a section of the &lt;em&gt;config.yml&lt;/em&gt; of this blog:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;title: Code Tiles
email: vladimirfomene@gmail.com
description: &amp;gt;- # this means to ignore newlines until "baseurl:"
  Vladimir Fomene's learnings, repository of ideas, teachings and talks.
baseurl: "" # the subpath of your site, e.g. /blog
url: "" # the base hostname &amp;amp; protocol for your site, e.g. http://example.com
twitter_username: vladimirfomene
github_username:  vladimirfomene

# Build settings
markdown: kramdown
theme: minima
plugins:
  - jekyll-feed

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After running &lt;code&gt;bundle exec jekyll serve&lt;/code&gt;, you should see the following:&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%2Fvladimirfomene.github.io%2Fassets%2Fimg%2Fjekyll-serve.JPG" 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%2Fvladimirfomene.github.io%2Fassets%2Fimg%2Fjekyll-serve.JPG" alt="Jekyll Server Running"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This indicates that your Jekyll server is running and serving your blog at &lt;em&gt;127.0.0.1:4000&lt;/em&gt;. You can now type &lt;em&gt;127.0.0.1:4000&lt;/em&gt; in a browser to visit your blog. You should see the following:&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%2Fvladimirfomene.github.io%2Fassets%2Fimg%2Fminima-site.JPG" 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%2Fvladimirfomene.github.io%2Fassets%2Fimg%2Fminima-site.JPG" alt="Jekyll Server Running"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Writing Your First Post
&lt;/h2&gt;

&lt;p&gt;In your blog directory, create a folder named &lt;code&gt;_posts&lt;/code&gt;. All your posts will live in this directory and they should follow the following pattern: &lt;code&gt;YYYY-MM-DD-name-of-post.markdown&lt;/code&gt;, where y is for year, M for month and D for day. A typical post should look like the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;---
layout: post
title:  "Welcome to Jekyll!"
date:   2015-11-17 16:16:01 -0600
categories: jekyll update
---

You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `bundle exec jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The section at the top of the post, in between the dotted lines gives Jekyll relevant information about the page which will be used during page rendering. In our case, the &lt;em&gt;layout&lt;/em&gt; to use, the &lt;em&gt;title&lt;/em&gt; of the page, the &lt;em&gt;date&lt;/em&gt; and the &lt;em&gt;categories&lt;/em&gt; under which the post falls. You can list all your posts in any page using the following syntax:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;ul&amp;gt;
  {% for post in site.posts %}
    &amp;lt;li&amp;gt;
      &amp;lt;a href="{{ post.url }}"&amp;gt;{{ post.title }}&amp;lt;/a&amp;gt;
    &amp;lt;/li&amp;gt;
  {% endfor %}
&amp;lt;/ul&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Host on &lt;a href="https://pages.github.com/" rel="noopener noreferrer"&gt;Github Pages&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;To publish your blog on Github pages, you need to initialize your blog directory as a local Git repository by running &lt;code&gt;git init&lt;/code&gt;. Then, stage your directory content with &lt;code&gt;git add .&lt;/code&gt; and commit with &lt;code&gt;git commit -m "commit message"&lt;/code&gt;. Then go to your Github profile and create a repository called &lt;em&gt;username.github.io&lt;/em&gt; where &lt;em&gt;username&lt;/em&gt; represents your &lt;em&gt;Githubusername&lt;/em&gt;.&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%2Fvladimirfomene.github.io%2Fassets%2Fimg%2Fgithub-repo.JPG" 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%2Fvladimirfomene.github.io%2Fassets%2Fimg%2Fgithub-repo.JPG" alt="Jekyll Server Running"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then, connect your local repository to your remote repository by entering the following command in the command prompt: &lt;code&gt;git remote add origin remote-repository-name.git&lt;/code&gt;. Push your local repository content to your remote repository by running the following commmand: &lt;code&gt;git push -u origin master&lt;/code&gt;. You can now access your blog online by visiting &lt;em&gt;username.github.io&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;That's it for now. Click to learn more about &lt;a href="https://jekyllrb.com/docs/home/" rel="noopener noreferrer"&gt;Jekyll&lt;/a&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  Contacts:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://twitter.com/VladimirFomene" rel="noopener noreferrer"&gt;Follow me on Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/vladimirfomene" rel="noopener noreferrer"&gt;Fork me on Github&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=""&gt;Email Me: vladimirfomene@gmail.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>jekyllblogging</category>
    </item>
  </channel>
</rss>
