<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Victor Nwoguru</title>
    <description>The latest articles on DEV Community by Victor Nwoguru (@vkguru).</description>
    <link>https://dev.to/vkguru</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%2F553312%2F351ea9a2-d539-4a9a-bbe9-3d3109062d7e.png</url>
      <title>DEV Community: Victor Nwoguru</title>
      <link>https://dev.to/vkguru</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vkguru"/>
    <language>en</language>
    <item>
      <title>WEB 2 VS WEB 3</title>
      <dc:creator>Victor Nwoguru</dc:creator>
      <pubDate>Wed, 02 Mar 2022 19:19:53 +0000</pubDate>
      <link>https://dev.to/vkguru/web-2-vs-web-3-1op0</link>
      <guid>https://dev.to/vkguru/web-2-vs-web-3-1op0</guid>
      <description>&lt;h2&gt;
  
  
  INTRODUCTION
&lt;/h2&gt;

&lt;p&gt;There is a lot that comes to mind when we talk about the web and how various devices communicate on the internet. The discovery of how the web works can be fascinating, especially for those with no background in computer science. More recently, there have been lots of talk about web 3 with buzzwords like blockchain, cryptocurrency, NFT, metaverse, smart contract, and so on; all of which leaves one with questions like “Is there a new internet?”, “What is web3 about?”, “Is this for everyone?”. In this article, I will be highlighting the major differences between Web 2 and Web 3.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Beginning of things
&lt;/h2&gt;

&lt;p&gt;The best way to understand where we are at is to know where we are coming from. If we want to differentiate Web 2 from Web 3, it then means that there must be Web 1. Sure, there was Web 1! Web 1 included static web pages which served content from the file system of servers, it did not offer any functionalities for interaction with the content, with few content creators and more content consumers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Evolution of Web 2
&lt;/h2&gt;

&lt;p&gt;Web 2 comprises of user-generated content, usability, and interoperability for end users. Its focus is on changes made in web page design and web usage. It encourages interaction and collaboration among users with peer-to-peer transaction, thus giving rise to ecommerce and social media platforms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Features of Web 2&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Free sorting of information, permits users to retrieve and classify the information collectively.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dynamic content that is responsive to user input.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Information flows between the site owner and site users by means of evaluation &amp;amp; online commenting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Developed APIs to allow self-usage, such as by a software application.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Web access leads to concern different, from the traditional Internet user base to a wider variety of users.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Revolutionary Web 3
&lt;/h2&gt;

&lt;p&gt;Web 2 being more sophisticated than Web 1 still had some setbacks such as security on the web, disclosure of personal data to “trusted” institutions who in turn use them to their unfair advantage because users voluntarily gave it to them in order to use their platforms/services. Web 2 gave all the power to these institutions because of its “centralised” model. Web 3 solves all of these problem; security, privacy, and it operates a decentralised system putting the users in control.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Features of Web 3&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Web 3 leverages artificial intelligence for offering correct results at a faster pace alongside accessing real-time insights. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Web 3 also enables users to capitalize on the potential of 3D visuals and graphics. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Web 3 refers to the Semantic Web functionality. It implies that Web 3 could support understanding the meaning of words. As a result, machines and humans could easily find, share and analyze information in web 3.0.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can also find the prominent trait of improved privacy and security in Web 3. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Web 3 focuses on the safeguards for user data and identity. Web 3 employs advanced authorization mechanisms through distributed ledger technologies and encryption for securing user identity and data. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All these features sounds interesting and it will be nice to explore Web 3 to have a first hand experience, right? Yes! I have been picking and reading up bits of these concepts on the internet for a while. Just recently, I discovered &lt;a href="https://blockgames.gg/"&gt;Block games&lt;/a&gt; ( a program where participants get to learn how to build for the most popular blockchains, then compete against others to build projects ), this program is organised by &lt;a href="https://zuri.team/"&gt;Zuri&lt;/a&gt; and &lt;a href="https://nestcoin.com/"&gt;Nestcoin&lt;/a&gt;. I look forward to leveraging on the information gathered so far and things I will get to learn on this program to build amazing Web 3 projects.&lt;/p&gt;

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

</description>
      <category>web3</category>
      <category>webdev</category>
      <category>blockchain</category>
      <category>programming</category>
    </item>
    <item>
      <title>Where To Find Free Resources To Jumpstart Your Software Development Career</title>
      <dc:creator>Victor Nwoguru</dc:creator>
      <pubDate>Fri, 19 Mar 2021 11:33:49 +0000</pubDate>
      <link>https://dev.to/vkguru/where-to-find-free-resources-to-jumpstart-your-software-development-career-4ea1</link>
      <guid>https://dev.to/vkguru/where-to-find-free-resources-to-jumpstart-your-software-development-career-4ea1</guid>
      <description>&lt;p&gt;The journey to becoming a software developer can be hard when you are not exposed to the right learning resources. The truth is, there are so many resources online, however, most of these resources are not beginner-friendly or properly structured to guide learners. Someone asked me recently where he could find free learning resources online to start learning and honing his software development skills. His request inspired me to write this article to help as many that would be in need of this. I would be highlighting a few platforms that have helped many beginners over the years navigate the learning hurdles to becoming professional developers.&lt;/p&gt;

&lt;h3&gt;
  
  
  W3Schools
&lt;/h3&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwu3q1mca0qj0yalmn4m4.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwu3q1mca0qj0yalmn4m4.jpg" alt="w3schools.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;W3Schools is a good place to start with as a beginner. They have tutorials on HTML, CSS, JavaScript, Python, Java, C++, C#, R, SQL, PHP, ASP, Node, Artificial Intelligence, Machine learning and more. There are also tests and exercises to practice what you have learnt.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.w3schools.com/" rel="noopener noreferrer"&gt;Visit w3school&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  FreeCodeCamp
&lt;/h3&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fajt96dzgs3p6xmyob8he.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fajt96dzgs3p6xmyob8he.jpg" alt="freecodecamp.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is another great platform that has helped a lot of people jumpstart their careers in software development. You can see this fact from the testimonies on their website. The amazing thing about FreeCodeCamp is that you get a certificate when you finish a course. You learn at your pace and you get real-world experience when done.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.freecodecamp.org/" rel="noopener noreferrer"&gt;Visit FreeCodeCamp&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Odin Project
&lt;/h3&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbri8xfsgyeow9zimqhy2.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbri8xfsgyeow9zimqhy2.jpg" alt="theodinproject.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Odin project provides you with a structured full stack curriculum that includes HTML, CSS, JavaScript, Git, Node, Databases, Ruby and Ruby on Rails. You will also be able to connect with other students and build a portfolio of projects.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.theodinproject.com/" rel="noopener noreferrer"&gt;Visit Odin Project&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  YouTube
&lt;/h3&gt;

&lt;p&gt;YouTube is a great place to learn anything you desire to learn. There are awesome, experienced and well-grounded tutors dishing out tutorials week in week out on YouTube that you can learn from. A few of them are;  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/channel/UC29ju8bIPH5as8OGnQzwJyA" rel="noopener noreferrer"&gt;Travsey Media&lt;/a&gt; - Full stack Web Development&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/channel/UCJZv4d5rbIKd4QHMPkcABCw" rel="noopener noreferrer"&gt;Kevin Powell&lt;/a&gt; - Frontend Development&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ" rel="noopener noreferrer"&gt;FreeCodeCamp&lt;/a&gt; - Software Development, Machine Learning, AI, Gaming and more.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wrapping Up
&lt;/h3&gt;

&lt;p&gt;I hope this article helps someone looking for this information. Even as experienced devs these platforms are also helpful for learning new skills and refreshing the mind with basic concepts.&lt;/p&gt;

&lt;p&gt;Please feel free to add more platforms in the comment section. Peace ✌️.&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>CSS VARIABLES: USAGE AND BROWSER COMPATIBILITY HACK</title>
      <dc:creator>Victor Nwoguru</dc:creator>
      <pubDate>Mon, 04 Jan 2021 15:46:31 +0000</pubDate>
      <link>https://dev.to/vkguru/css-variables-usage-and-browser-compatibility-hack-1pih</link>
      <guid>https://dev.to/vkguru/css-variables-usage-and-browser-compatibility-hack-1pih</guid>
      <description>&lt;p&gt;You probably must have used CSS variables before now or maybe not. If you have used CSS variables before, you could have experienced some browser compatibility issues especially when you have to support users using Internet Explorer. I know, I can relate, it can be a pain😢 but you have to deal with it as a dev. In this article, I intend to introduce CSS variables and also share the solution I found for browser compatibility issues when using CSS variables. Whatever your level of acquaintance with CSS variables is, I believe you would have fun reading and learning while I share what I have learnt.&lt;/p&gt;

&lt;p&gt;Before I proceed, I will like you to note that the terms &lt;strong&gt;CSS variables&lt;/strong&gt; and &lt;strong&gt;CSS custom properties&lt;/strong&gt;/&lt;strong&gt;custom properties&lt;/strong&gt; are synonymous, and would be used interchangeably throughout this article.&lt;/p&gt;

&lt;h3&gt;
  
  
  CSS Variables Explained
&lt;/h3&gt;

&lt;p&gt;The concept of variable in CSS is similar to the concept of variable in many programming languages. CSS variable is a way of storing CSS values for reuse elsewhere on a stylesheet. It makes it easier to apply the values to a property and also change the values without having to look for where they are on your stylesheet, thus, making your code clean and understandable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Declaring A Variable
&lt;/h3&gt;

&lt;p&gt;The naming concept for a custom property is to begin a property name with a double hyphen &lt;code&gt;--&lt;/code&gt; and a property value in a ruleset.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;:root {
    --primary-color: #c4c4c4;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The common practice is to use the &lt;code&gt;:root&lt;/code&gt; pseudo-class which is the root element of a tree representing the document, thus, making it globally available. However, you can choose to scope the custom property.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.hero {
    --primary-color: #c4c4c4;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the above example, &lt;code&gt;--primary-color&lt;/code&gt; is scoped to the hero class. Scoping a custom property limits its availability to CSS selectors other than the one it was declared for.&lt;/p&gt;

&lt;h3&gt;
  
  
  Usage
&lt;/h3&gt;

&lt;p&gt;Now that we are done declaring the variable, the next thing would be to use the already declared variable. To use the variable, you need to add the custom property name inside the &lt;code&gt;var()&lt;/code&gt; function for use as a property value.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;p {
    color: var(--primary-color); 
}

div {
    background-color: var(--primary-color);
    border: 1px dashed var(--primary-color);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Fallbacks can be created in case something goes wrong as a result of your browser not being able to find the custom property.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;div {
    background-color: var(--primary-color, #c4c4c4);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the above example, the color code &lt;code&gt;#c4c4c4&lt;/code&gt; after the comma is the fallback value that would be used if &lt;code&gt;--primary-color&lt;/code&gt; is not available.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fixing Browser Compatibility Issue
&lt;/h3&gt;

&lt;p&gt;On &lt;a href="https://caniuse.com"&gt;caniuse.com&lt;/a&gt;, the browser that doesn’t have support for &lt;code&gt;var()&lt;/code&gt; is Internet Explorer, so this hack is for (IE) Internet Explorer. The browser compatibility issue can be resolved with the polyfill created by &lt;a href="https://twitter.com/tobiasbu"&gt;@nuxodin&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Just add this script tag to your HTML&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;script&amp;gt;window.MSInputMethodContext &amp;amp;&amp;amp; document.documentMode &amp;amp;&amp;amp; document.write('&amp;lt;script src="https://cdn.jsdelivr.net/gh/nuxodin/ie11CustomProperties@4.1.0/ie11CustomProperties.min.js"&amp;gt;&amp;lt;\/script&amp;gt;');&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;...and that’s it, it’s done 🎉. The compatibility issue is fixed. This support is for IE11.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bonus
&lt;/h3&gt;

&lt;p&gt;There’s another solution created by &lt;a href="https://twitter.com/jhildenbiddle"&gt;@jhildenbiddle&lt;/a&gt;, this is not a polyfill but a &lt;a href="https://github.com/sindresorhus/ponyfill"&gt;ponyfill&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To install it, add this script tag to your HTML&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;script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or use npm&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install css-vars-ponyfill
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;then import it&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import cssVars from 'css-vars-ponyfill';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Its usage&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because it's a ponyfill, a function must be called in order for processing to take place.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/* In your js file */

cssVars({
  rootElement   : document
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;…this does the magic✨. This supports IE 9+&lt;/p&gt;

&lt;p&gt;Thanks for taking out time to read this article. I hope it has been helpful? When working on your next project and you are not using any preprocessor like Sass or Less, you can always use CSS custom properties/variables and the highlighted polyfill and ponyfill to take care of the browser compatibility issue. See you later✌️.&lt;/p&gt;

&lt;h3&gt;
  
  
  Further Reading
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties"&gt;MDN web docs&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.w3schools.com/css/css3_variables.asp"&gt;W3Schools&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/nuxodin/ie11CustomProperties"&gt;CSS variable polyfill by nuxodin&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://jhildenbiddle.github.io/css-vars-ponyfill/#/"&gt;CSS var ponyfill by jhildenbiddle&lt;/a&gt; &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Reference
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/questions/46429937/ie11-does-a-polyfill-script-exist-for-css-variables"&gt;Stack overflow&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>css</category>
      <category>html</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
