<?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: Younes</title>
    <description>The latest articles on Forem by Younes (@yoadev).</description>
    <link>https://forem.com/yoadev</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%2F109564%2Fd5b0ff00-27d3-458b-9f18-8b08905cbcf0.jpg</url>
      <title>Forem: Younes</title>
      <link>https://forem.com/yoadev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/yoadev"/>
    <language>en</language>
    <item>
      <title>How I lost potential clients because of a Nextjs Server Action</title>
      <dc:creator>Younes</dc:creator>
      <pubDate>Sat, 14 Sep 2024 23:42:47 +0000</pubDate>
      <link>https://forem.com/yoadev/how-i-lost-potential-customers-because-of-a-nextjs-server-action-4m70</link>
      <guid>https://forem.com/yoadev/how-i-lost-potential-customers-because-of-a-nextjs-server-action-4m70</guid>
      <description>&lt;p&gt;Hey everyone! &lt;/p&gt;

&lt;p&gt;It has been a really long time! (4 YEARS OMG??)&lt;/p&gt;

&lt;p&gt;Since then i got my diploma, "ai" is taking over (🤡), I moved to my parent's attic and Musk bought Twitter 😂&lt;/p&gt;

&lt;p&gt;I also started a completely new project and I've decided that I will find the time to share some learnings now and then from this journey.&lt;/p&gt;

&lt;p&gt;But first you need to understand the project and the why of it. I will only explain it in that article. You can skip it but I feel like you wouldn't get the whole picture for the next articles. Anyways.&lt;/p&gt;

&lt;h2&gt;
  
  
  A bit of context
&lt;/h2&gt;

&lt;p&gt;Around 2021-2022 we've decided with a friend to start a YouTube channel (in a totally different niche)&lt;/p&gt;

&lt;p&gt;After some time we understood that short form content was becoming undeniably powerful. So we decided to try to create on top of the videos, one short form video per day (as it is recommended by a lot of creators at that time at least)&lt;/p&gt;

&lt;p&gt;But we quickly faced a problem...&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It takes time. A lot!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So we try to find ways to speed up the process.&lt;/p&gt;

&lt;p&gt;One of them being auto generating captions for the videos instead of manually captioning them.&lt;/p&gt;

&lt;p&gt;I tried so many solutions and none were satisfying. I still take a subscription to have the job done but I decide to start building my own.&lt;/p&gt;

&lt;p&gt;Having tried most of the existing tools out there, I know the annoying parts, that it's too expensive for just having captions and that they are not enough accurate. Therefore it still takes me too much time..&lt;/p&gt;

&lt;p&gt;I finally come up with an MVP and get videos uploaded on the major platforms while using that tool for our accounts.&lt;/p&gt;

&lt;p&gt;At the same time, I know quite some people in content creation that have the same issue. I take the opportunity and make them use the tool.&lt;/p&gt;

&lt;p&gt;They suggest me improvements, point out issues, and uses it to upload videos for their own content (or even for their clients)&lt;/p&gt;

&lt;p&gt;Combined with my own experience, it was REALLY a game changer in the process of building &lt;a href="https://subtile.ai?ref=devto" rel="noopener noreferrer"&gt;Subtile AI&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I think it was the first time that I started a project where I knew the pain points and knew people that could express me their needs and that was so valuable. I'm sure that I wouldn't have a product that mature today without that.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical issues
&lt;/h2&gt;

&lt;p&gt;Speaking of maturity. As you may probably know, a SaaS is not a SaaS wihtout a landing page and a waitlist, right?&lt;/p&gt;

&lt;p&gt;When I started being confident that it would be useful also for strangers, I decided to work on that and make the project public.&lt;/p&gt;

&lt;p&gt;One thing to know is that I am using NextJS with that project and even if I first started with a simple api route for the waitlist, I eventually changed the code and took that opportunity to try the famous server actions coupled with the useFormStatus from React ("experimental" at that time).&lt;/p&gt;

&lt;p&gt;So I proceed, and of course, test it locally but also on my deployed environment. &lt;/p&gt;

&lt;p&gt;Ok it works, nice!&lt;/p&gt;

&lt;h2&gt;
  
  
  Does it?
&lt;/h2&gt;

&lt;p&gt;A couple of weeks later, I notice that the number of registrations to the waitlist has significally decreased. Why was that? I don't know so I decide to open my Posthog dashboard and here in front of me I see something very strange!&lt;/p&gt;

&lt;p&gt;Someone clicked the "Join waitlist" button twice but I don't see any new entry in my list of emails.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fln4wn9maf4a67xl19m3e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fln4wn9maf4a67xl19m3e.png" alt="Logs showing the two " width="245" height="66"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I try to reproduce the issue and... WTF? It works?&lt;/p&gt;

&lt;h2&gt;
  
  
  Debugging
&lt;/h2&gt;

&lt;p&gt;I start to dig a bit deeper, check the logs, try to break it by any means but nothing.. It really do work.&lt;/p&gt;

&lt;p&gt;I decide to check back the logs on Posthog and I find something interesting 👀 Why didn't I check that earlier...&lt;/p&gt;

&lt;p&gt;The person who had the issue tried on "Mobile Safari", so I decide to grab my phone (an Android) and try again.&lt;/p&gt;

&lt;p&gt;Surprise! It indeed doesn't work!&lt;/p&gt;

&lt;p&gt;But why wouldn't it work on mobile?&lt;/p&gt;

&lt;p&gt;In a way, I feel some relief because I now understand why my product was getting so little attention... (I was feeling really down about it lately..)&lt;/p&gt;

&lt;p&gt;But on the other hand, I was stuck with an issue that seemed incomprehensible!&lt;/p&gt;

&lt;h2&gt;
  
  
  The (stupid) solution
&lt;/h2&gt;

&lt;p&gt;Eventually after some debugging (❤️ to the Chrome Devtools for allowing me to check the console on my mobile browser by just plugging my phone) and some research on Stackoverflow (Yeah, I'm an OG, I don't use ChatGPT 😂); I found out that you NEED to have your server actions to be under the app directory!&lt;/p&gt;

&lt;p&gt;Ok in every example of the NextJS team they indeed create those in a "actions.ts" under the app directory if I'm not mistaken but how could i guess that you can't put them outside and it would break only on mobile??&lt;/p&gt;

&lt;p&gt;Maybe it's written somewhere in the doc, but I re-checked quickly and didn't find anything.&lt;/p&gt;

&lt;p&gt;You guessed it, the only thing that I had to do was to move my actions under the app directory and adapt the imports and I was done.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git add .&lt;/code&gt;&lt;br&gt;
&lt;code&gt;git commit "hell yeah"&lt;/code&gt;&lt;br&gt;
&lt;code&gt;git push&lt;/code&gt;&lt;br&gt;
&lt;code&gt;*waiting deployment*&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;I finally take my phone, head to &lt;a href="https://subtile.ai?ref=devto" rel="noopener noreferrer"&gt;Subtile AI&lt;/a&gt; and it really works!&lt;/p&gt;
&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;After almost 10 years of coding, I'm still surprised how an issue can be that stupid but that difficult to think of at first glance.&lt;/p&gt;

&lt;p&gt;That one was a bit longer and I had to go a bit deeper on the project but for the next ones I will just send you to this article to get the context.&lt;/p&gt;

&lt;p&gt;I hope to come up with interesting topics (but not too much, it would mean I'm facing too many issues 😂)&lt;/p&gt;

&lt;p&gt;I would also be curious to know if anyone got any similar experience with NextJS or any other tech.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Until then, happy coding!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;PS: I have a new Twitter/X account where I'm more active, don't hesitate to &lt;a href="https://twitter.com/yoadev" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;connect&lt;/a&gt;
&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>webdev</category>
      <category>saas</category>
    </item>
    <item>
      <title>Once upon a time, PASSWORDS 🔑🤯☠️</title>
      <dc:creator>Younes</dc:creator>
      <pubDate>Sat, 09 May 2020 20:24:54 +0000</pubDate>
      <link>https://forem.com/yoadev/once-upon-a-time-passwords-18ek</link>
      <guid>https://forem.com/yoadev/once-upon-a-time-passwords-18ek</guid>
      <description>&lt;p&gt;&lt;em&gt;First of all, if any of you have a password such as "password" or "1234" I have something &lt;strong&gt;fantastic&lt;/strong&gt; to show you. Firstly, I invite you to click on &lt;strong&gt;ALT&lt;/strong&gt;, then while keeping the key pressed, you'll have to click on &lt;strong&gt;F4&lt;/strong&gt;, this will &lt;strong&gt;solve all your problems&lt;/strong&gt; (I think 😇👌🏻)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction 👨🏻‍💻
&lt;/h2&gt;

&lt;p&gt;Nowadays, passwords are completely part of our lives. There isn't a day that goes by without using (directly or indirectly) passwords. They protect our work, our privacy and our most hidden secrets.&lt;/p&gt;

&lt;p&gt;Let's dive into it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem with passwords ❌
&lt;/h2&gt;

&lt;p&gt;On one hand, there is the problem of having a strong password, but on the other hand, the person has to be able to remember it. Because humans are very bad to remember things without sense. "PurpleLicorn2000" as no sense too but you can imagine it and so remember it. &lt;br&gt;
But if I told you "20oN0rcLipleP0ur" you would hardly remember it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Weak Passwords 🔓
&lt;/h2&gt;

&lt;p&gt;Even today people still use very weak passwords, which brings them to more or less dangerous situations ...&lt;/p&gt;

&lt;p&gt;The top 5 most used passwords in 2018 were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;123456&lt;/li&gt;
&lt;li&gt;password&lt;/li&gt;
&lt;li&gt;123456789&lt;/li&gt;
&lt;li&gt;12345678&lt;/li&gt;
&lt;li&gt;12345&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🤦🏻‍♂️😩&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Here is the complete list of the &lt;a href="https://en.wikipedia.org/wiki/List_of_the_most_common_passwords" rel="noopener noreferrer"&gt;most common passwords&lt;/a&gt; on &lt;strong&gt;Wikipedia&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;People think that only a hacker can steal their passwords and that a hacker doesn't care about them. They think that it happens only to others (until it obviously happened to them 🤷🏻‍♂️)&lt;/p&gt;

&lt;p&gt;In fact, a password can be guessed or cracked very easily with &lt;strong&gt;tools available to all&lt;/strong&gt;, and within a very &lt;strong&gt;short period of time&lt;/strong&gt;. &lt;br&gt;
The "all" as a name actually, they are called &lt;strong&gt;script kiddies&lt;/strong&gt;. It means people that don't have enough knowledge to build their own tools, but they use the tools created by others, and it hurts just as much at the end.&lt;/p&gt;

&lt;p&gt;It can be, your friend, your colleague, your girlfri..🤐&lt;/p&gt;

&lt;h2&gt;
  
  
  2 main ways of hack 🤫
&lt;/h2&gt;

&lt;p&gt;Passwords are &lt;strong&gt;mainly&lt;/strong&gt; attacked by hackers with two ways :&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1. Brute-force attacks 💪🏻:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The brute-force technique consists of testing all possible combinations. For example, if your password is 3 characters long, you will have to try (aaa, aab, ..., Aaa, Aab, ..., aa1, ...)&lt;/p&gt;

&lt;p&gt;This shows that &lt;strong&gt;a long password takes longer to decipher&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Of course, we can't know the exact speed, as it &lt;strong&gt;depends on the computing speed&lt;/strong&gt; of the machine. Your computer will be much slower to decipher a password, than a NS🅰️ server.&lt;/p&gt;

&lt;p&gt;In fact, in 2020, we don't need that much time to decipher a password. Here is a small infographic that I found (I'm not sure if that is up to date, but that gives a good idea of the range of time it takes)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fsf7kfvo380bxjrkgqtqb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fsf7kfvo380bxjrkgqtqb.jpg" alt="Infographic" width="800" height="719"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2. Dictionary attacks 📚:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The dictionary method consists of testing potential words, one after the other, hoping that the password is contained in the dictionary of words.&lt;/p&gt;

&lt;p&gt;This method is possible because, as we saw above, people use words that generally exist (password, sunshine, iloveyou, ...)&lt;/p&gt;

&lt;h2&gt;
  
  
  Is there any solution 🔐⁉️
&lt;/h2&gt;

&lt;p&gt;There's no final solution, just leads to complicate the tasks of the malicious people.&lt;/p&gt;

&lt;p&gt;First of all, &lt;strong&gt;don't use the same password everywhere !&lt;/strong&gt;&lt;br&gt;
If you have different passwords, if one is lost or compromised, you will &lt;strong&gt;minimize the risks&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Personally, I would suggest to use sentences instead of words. Sentences with words that have no sense.&lt;/p&gt;

&lt;p&gt;We could imagine putting one or two special characters in some of the words.&lt;/p&gt;

&lt;p&gt;You should, of course, choose words that you'll remember. For example, I could use the word "Drag0n" instead of using my year of birth. (2000 is the year of the Dragon of Chinese zodiac sign)&lt;/p&gt;

&lt;p&gt;Be CREATIVE 😁&lt;/p&gt;

&lt;p&gt;You can also write a part of your password in different places, this way if you forget your password (you will not 😋), you can find it.&lt;/p&gt;

&lt;p&gt;Finally, you should know that there are online tools that show you the strength of your password, but I advise you to use them with a slightly different password than the one you want to try, who knows if they are logging all the tested passwords in a database. (This is probably the case for most of them. You know the song 😂 &lt;em&gt;"when it's free, you're the product"&lt;/em&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  And about password managers 🤨
&lt;/h2&gt;

&lt;p&gt;Honestly, I'm paranoid, I don't trust this kind of tool, not necessarily because of the company itself but more by the fact that they can also be attacked, ...&lt;/p&gt;

&lt;p&gt;I'd rather complain myself if I get hacked, than if they get my data stolen, I would go crazy.&lt;/p&gt;

&lt;p&gt;But it's up to you to make your choice, some of them are really well done.&lt;/p&gt;

&lt;p&gt;In fact, I would like to have your thoughts about password manager. What do you think? Let's discuss!&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;There is no perfect solution so, be very attentive to your password, and take your time to find a good one !&lt;/p&gt;

&lt;h3&gt;
  
  
  and &lt;strong&gt;HAPPY WORLD PASSWORD DAY&lt;/strong&gt; 🔑🎉🎊
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Actually it was two days ago but I was busy.. 😂&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>security</category>
      <category>passwords</category>
    </item>
    <item>
      <title>How To Become A Programmer. Advises From A Dev Among Others 👶😉</title>
      <dc:creator>Younes</dc:creator>
      <pubDate>Sat, 11 Apr 2020 10:15:04 +0000</pubDate>
      <link>https://forem.com/yoadev/how-to-become-a-programmer-advises-from-a-dev-among-others-49cl</link>
      <guid>https://forem.com/yoadev/how-to-become-a-programmer-advises-from-a-dev-among-others-49cl</guid>
      <description>&lt;p&gt;Hello everyone, it's been a while now... I was again very busy with school, side projects and the current crisis of the &lt;strong&gt;Covid-19&lt;/strong&gt; didn't help...&lt;/p&gt;

&lt;p&gt;I hope that you are all doing wonderful, that this crisis didn't affect you and your family that much 🙏🏻&lt;/p&gt;

&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;p&gt;Today, I'm writing this article to share with you what I would say to someone that wants to &lt;strong&gt;get into programming&lt;/strong&gt;. I have been asked about this question several times, so I decided to write an article about it in order &lt;strong&gt;to share my advises to everyone&lt;/strong&gt;. (Please do not hesitate to contradict me and give your opinion in comments)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;// if you're on my personal blog, the comment section is under development, I'll build it as soon as possible !&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I must specify that I won't talk about any programming language in particular but more about the general aspect of programming. &lt;/p&gt;

&lt;p&gt;Because for me, before learning a language you have to &lt;strong&gt;learn the terms and the fundamental principles of programming&lt;/strong&gt; (basic algorithmic, terminology, ...)&lt;br&gt;
When you have that basis and you know how to call things, you can do your &lt;strong&gt;research by your own and learn any language you'd like&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Without further ado, let's get to those advises !&lt;/p&gt;

&lt;h2&gt;
  
  
  Stay realistic !
&lt;/h2&gt;

&lt;p&gt;First of all, don't underestimate coding! &lt;strong&gt;Don't think that in just a couple of weeks you will code the new Minecraft&lt;/strong&gt; like I did when I was young, it's more complicated than you think! It's not impossible but it will take times, so take your time and be patient 🤓.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before learning how to run (or even fly) you must learn how to walk&lt;/strong&gt;, so first,  learn the basics of programming like, how computers works, what is inside my machine, what variables are, what an IDE is, ...&lt;/p&gt;

&lt;p&gt;Learn loops, structures, algorithmic, ... After that you can dive into classes and objects with «Object oriented programming», «inheritance», «Polymorphism».&lt;/p&gt;

&lt;p&gt;Learn what is a compiler, an interpreter, a VM (virtual machine), ...&lt;/p&gt;

&lt;p&gt;You will also have to learn what libraries and protocols are, those things will allow you to create more complete programs/games/websites or whatever.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't be discouraged&lt;/strong&gt;, even if it seems difficult, with practice you will get through. And &lt;strong&gt;more you will learn, more you will have facilities&lt;/strong&gt; because everything will be clear and logic in your head.&lt;/p&gt;

&lt;h2&gt;
  
  
  Find resources that fits you !
&lt;/h2&gt;

&lt;p&gt;At the beginning, &lt;strong&gt;take your time to find good resources to learn&lt;/strong&gt;, because even if there are a lot of good resources on the internet, there are also a lot of videos or articles from people who say things wrong. There are also those who shows you very complex things just to show you that &lt;strong&gt;THEY&lt;/strong&gt; know and therefore &lt;strong&gt;THEY&lt;/strong&gt; are the best and &lt;strong&gt;THEY THEY THEY&lt;/strong&gt;. Of course, I'm talking about &lt;strong&gt;arrogant people 😆&lt;/strong&gt;, I'm tempted to say that the IT industry is full of them ! &lt;/p&gt;

&lt;p&gt;But don't make me say what I didn't say, &lt;strong&gt;there are a lot of good resources and kind people&lt;/strong&gt;, and it is thanks to the internet that I know so much (and at the same time so little).&lt;/p&gt;

&lt;p&gt;A good example is &lt;a href="https://dev.to"&gt;DEV&lt;/a&gt; that is &lt;strong&gt;full of amazing people&lt;/strong&gt;, you can also find &lt;strong&gt;very passionate people on YouTube&lt;/strong&gt;, ask your friends and people who codes for long time advises and resources that they found useful 👌🏻.&lt;/p&gt;

&lt;h2&gt;
  
  
  Build things and enjoy !
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Don't stay passive&lt;/strong&gt; and copy pasting every tutorial you found on YouTube, &lt;strong&gt;practice !&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you just learned a concept or a language or whatever, just use it in a little project, why not build the famous &lt;strong&gt;Todo app&lt;/strong&gt;, or a &lt;strong&gt;Tetris clone&lt;/strong&gt;, or a &lt;strong&gt;Snake&lt;/strong&gt; ? Those are examples of cool little project that aren't that complicated and you will learn a lot from them ! You need to practice and get wrong to learn ! For me, &lt;strong&gt;practice and mistakes are the real teachers&lt;/strong&gt;, you will improve yourself and you'll understand that &lt;strong&gt;some of the things you took for granted weren't!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On top of all this, you will have things to show to your friends and to the future recruiters you will meet, and this will be a &lt;strong&gt;source of pride and motivation&lt;/strong&gt; for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Copy / Paste is your enemy !
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Don't copy paste, while you are learning !&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Copy pasting is a false friend&lt;/strong&gt;, you think that it helps you but it's not !&lt;/p&gt;

&lt;p&gt;You are not yet comfortable with programming, the syntax, the naming conventions and all that stuff. &lt;strong&gt;You have to practice&lt;/strong&gt; and write everything until you can program without any self-completion. That's why I advised in a previous &lt;a href="https://blog.yafkari.dev/blog/ide---the-beginners-trap-eg2" rel="noopener noreferrer"&gt;post&lt;/a&gt; to &lt;strong&gt;avoid using IDE&lt;/strong&gt; at the beginning, it will force you to write everything, it will &lt;strong&gt;force you to remember&lt;/strong&gt;, and that's what we want !&lt;/p&gt;

&lt;h2&gt;
  
  
  Don't learn everything !
&lt;/h2&gt;

&lt;p&gt;A big mistake that, I have to admit, I usually do is to learn everything. &lt;/p&gt;

&lt;p&gt;What I mean by everything is learning Web development, Gaming development, Cybersecurity, Cisco networking, ...&lt;/p&gt;

&lt;p&gt;Focus on one field and specialize yourself in it. &lt;strong&gt;It's okay to try&lt;/strong&gt; to create a website, to watch a video of someone creating a game to see if we like it or not and make a considered decision, but &lt;strong&gt;don't learn every single field in depth&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Don't give up ! Anyone can do it, I promise you.&lt;/strong&gt; And even if you are not motivated sometimes, get out of your bed and just practice &lt;strong&gt;you will thank me later 😉.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Speaking about motivation... What motivates you ? I would love to know this !&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you think I missed an important advice, &lt;strong&gt;feel free to share it in the comment section !&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Again if you're on my blog there is no comment section for the moment, I invite you to continue the discussion on my social networks, in the meantime&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I'm more active on &lt;a href="https://twitter.com/yafkari2000" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;, &lt;strong&gt;see you there ^^&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>programming</category>
    </item>
    <item>
      <title>How You Can Deal With Exam Stress</title>
      <dc:creator>Younes</dc:creator>
      <pubDate>Mon, 27 Jan 2020 21:09:31 +0000</pubDate>
      <link>https://forem.com/yoadev/how-you-can-deal-with-exam-stress-1pme</link>
      <guid>https://forem.com/yoadev/how-you-can-deal-with-exam-stress-1pme</guid>
      <description>&lt;p&gt;Hello everyone, today we will discuss about stress management when you are studying for exams, certifications, ... (whether related to school or not) and how to be more organized for this kind of event.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Everyone experiences it differently.&lt;/p&gt;

&lt;p&gt;For some, this period when you isolate yourself from the world (when I say "isolate", I'm not talking about becoming a hermit, but about not going out with friends, spending less time in front of the television, ...),&lt;br&gt;&lt;br&gt;
goes quite well, while for others, things are a bit more complicated. Some people get anxious, some others can't motivate themselves, others just struggle with studying.&lt;/p&gt;

&lt;p&gt;The goal of such a period is to pass your exams, but there is no question of adding a huge amount of stress to it either. You have to do things peacefully and efficiently so that you don't get overloaded and have a good time, because yes, studying can be fun if you do it right.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before you start studying seriously
&lt;/h2&gt;

&lt;p&gt;First of all, of course, do whatever you need to do in order to not be disturbed during your study period. It is imperative that you are not disturbed by anything else during this period.&lt;/p&gt;

&lt;p&gt;Secondly, stay calm! If you panic before getting to the heart of the matter, you won't be productive and you won't be at 100% of your capabilities!&lt;/p&gt;

&lt;p&gt;The key to staying calm can be summed up with just one word: &lt;strong&gt;ORGANIZATION&lt;/strong&gt; !&lt;/p&gt;

&lt;p&gt;Make a detailed planning for your study period and during the exam period (if you have more than one exam).&lt;br&gt;&lt;br&gt;
Make sure that your planning is as clear and understandable as possible. Even if you think it's a waste of time, this schedule will give you a global view of your progress and will allow you to adapt yourself in case of unexpected events.&lt;/p&gt;

&lt;p&gt;Personally, I don't print it out, because I often readjust my schedule to really focus my time on the important things and I keep a small note where it indicates how many hours are allocated to what.&lt;/p&gt;

&lt;p&gt;Let me explain:&lt;br&gt;&lt;br&gt;
Let's say I have a math exam, an accounting exam and a programming exam.&lt;br&gt;&lt;br&gt;
Well, if the programming exam is the heaviest in terms of content, I would allocate 25 hours to it, whereas for math and accounting I would only give 20 hours each. And I will always try to keep the same ratio despite the bad surprises.&lt;/p&gt;

&lt;p&gt;Regarding the planning, there is no exact rule. Some people prefer to study several subjects in one day, others prefer to work in blocks and do only one subject per day.&lt;br&gt;&lt;br&gt;
Personally, I would advise you to do only two different subjects per day maximum, you might mix the subjects and not give enough time (in a rush) to each one.&lt;/p&gt;

&lt;p&gt;Finally, set yourself some goals! It's important to set yourself goals and to cut your goals into micro-objectives to be able to keep up with the length. For example, for my law exam last January,&lt;br&gt;&lt;br&gt;
I've decided to go one chapter per hour and take a 15-minute break as a reward for each finished chapter.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;During these 15 minutes of break, I watch an anime episode or I walk, I look out the window, ... Do the same, your eyes and your back will thank you!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This way I was moving forward at the right rhythm and I allowed myself to relax which is super important to hold the whole duration of this period.&lt;/p&gt;

&lt;p&gt;Because despite studying is super important, I will say that rest and especially sleep are the most important things, because with a tired body you won't progress very well...&lt;/p&gt;

&lt;h2&gt;
  
  
  As the exam approaches...
&lt;/h2&gt;

&lt;p&gt;If you notice that you are getting more and more stressed as exams approach, you are doing something wrong.&lt;/p&gt;

&lt;p&gt;Ask yourself the right questions and honestly ask yourself why this stress? If it's because you don't feel ready, take the time to wonder why, adapt your schedule to the subjects you're the least ready for, and even ask the advice of a classmate or someone close to you if possible. Someone else's opinion may open your eyes to something you never suspected.&lt;/p&gt;

&lt;p&gt;However, it's obvious that there's no point in studying for hours the night before an exam, focus on others, and take the exam to see what kinds of questions are waiting for you on your next attempt.&lt;/p&gt;

&lt;p&gt;As mentioned above, it is very important to get enough sleep the night before the exam, so pack your bag the night before.&lt;/p&gt;

&lt;p&gt;I also like to get to the exams 15-30 minutes early. That way, if something goes wrong on the way, I am on time and if nothing has happened, I have time to calmly read my course again and even ask questions to people around me in certain situations.&lt;/p&gt;

&lt;p&gt;You will also be more relaxed when you start your exam.&lt;/p&gt;

&lt;h2&gt;
  
  
  During the exam
&lt;/h2&gt;

&lt;p&gt;Firstly, write your name, first name ... (It sounds obvious, but admit that you have already forgotten 😂)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;the second piece of advice is one that I don't often follow, but I often bite my fingers afterwards.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Secondly, take the time to read each question one by one to get the full picture.&lt;br&gt;&lt;br&gt;
Start directly with the questions that seem obvious and leave the more complex ones for later.&lt;/p&gt;

&lt;p&gt;If you don't have a watch, don't hesitate to ask several times how much time you have left, as time tends to be misjudged when you are so intensely focused.&lt;/p&gt;

&lt;p&gt;Don't spend too much time on questions you are not sure about, give priority to questions that require less thought in order to be able to provide as much information as possible in the time available.&lt;/p&gt;

&lt;h2&gt;
  
  
  After the exam
&lt;/h2&gt;

&lt;p&gt;Whether the exam went well or not, it's best not to think about it too much.&lt;/p&gt;

&lt;p&gt;I never study directly after an exam, I rather spend 1-2 hours talking with friends or take a nap to be ready for the next one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Of course, all this is subjective and everyone has their own way, I have mentioned here, the working method that I personally use when I study seriously (which doesn't happen often, despite the intention 😂).&lt;/p&gt;

&lt;p&gt;LAST TIP : &lt;strong&gt;Hydrate yourself!&lt;/strong&gt; It's very important and it allows you to avoid being constantly in front of your screen or your sheets.&lt;/p&gt;

&lt;p&gt;Congratulations on reaching the end of this article 🎉👏🏻&lt;br&gt;&lt;br&gt;
I invite you to share your tips in the comments section or on my networks 👉🏻 &lt;a href="[https://twitter.com/yafkari2000](https://twitter.com/yafkari2000)"&gt;Twitter&lt;/a&gt; 🔥&lt;/p&gt;

&lt;h3&gt;
  
  
  And good luck!
&lt;/h3&gt;

</description>
      <category>study</category>
      <category>productivity</category>
      <category>students</category>
      <category>stress</category>
    </item>
    <item>
      <title>How to render your sitemap.xml file in your Svelte/Sapper blog</title>
      <dc:creator>Younes</dc:creator>
      <pubDate>Sun, 19 Jan 2020 11:36:14 +0000</pubDate>
      <link>https://forem.com/yoadev/how-to-render-your-sitemap-xml-file-in-your-svelte-sapper-blog-2joh</link>
      <guid>https://forem.com/yoadev/how-to-render-your-sitemap-xml-file-in-your-svelte-sapper-blog-2joh</guid>
      <description>&lt;p&gt;Hello everyone, I hope you're all doing well !&lt;/p&gt;

&lt;p&gt;Today, I will show you a quick solution to render your sitemap.xml on your svelte/sapper blog.&lt;/p&gt;

&lt;p&gt;I came up with the idea of presenting you this solution because it took me a while to find it yesterday and I thought it would help many people.&lt;/p&gt;

&lt;p&gt;I'm currently working on &lt;a href="https://blog.yafkari.dev/" rel="noopener noreferrer"&gt;my personal blog&lt;/a&gt; where I will repost articles from DEV but also other subjects like crypto, books, ... and everything that go through my head ^^.&lt;/p&gt;

&lt;p&gt;It's my first web project that is finally online and I'm very proud of it.&lt;br&gt;
If you could give me your opinion it would be nice!&lt;/p&gt;

&lt;p&gt;UPDATE 02-2022: The blog is still under development but the website is done ^^&lt;/p&gt;

&lt;p&gt;The website is pretty empty for now, but that's just the beginning and I'm still learning svelte, so be kind with me 😂&lt;/p&gt;

&lt;p&gt;So, let's get back to our subject.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I'm not a Svelte expert at all, I'm still learning actually. So, if you have questions I will probably not be able to give a sufficient answer. Apologize.&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create the project&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;If you already have a project you can skip this step.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Firstly, we will create our svelte project with the sapper template.&lt;br&gt;
You can choose to use Webpack or Rollup, the manipulation is the same.&lt;/p&gt;

&lt;p&gt;With Rollup:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;npx&lt;/span&gt; &lt;span class="nx"&gt;degit&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;sveltejs/sapper-template#rollup&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;YOUR_APP_NAME&lt;/span&gt;

&lt;span class="nx"&gt;cd&lt;/span&gt; &lt;span class="nx"&gt;YOUR_APP_NAME&lt;/span&gt;
&lt;span class="nx"&gt;npm&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;

&lt;span class="nx"&gt;npm&lt;/span&gt; &lt;span class="nx"&gt;run&lt;/span&gt; &lt;span class="nx"&gt;dev&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With Webpack:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;npx&lt;/span&gt; &lt;span class="nx"&gt;degit&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;sveltejs/sapper-template#webpack&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;YOUR_APP_NAME&lt;/span&gt;

&lt;span class="nx"&gt;cd&lt;/span&gt; &lt;span class="nx"&gt;YOUR_APP_NAME&lt;/span&gt;
&lt;span class="nx"&gt;npm&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;

&lt;span class="nx"&gt;npm&lt;/span&gt; &lt;span class="nx"&gt;run&lt;/span&gt; &lt;span class="nx"&gt;dev&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If everything went well, you should be able to navigate to &lt;a href="http://localhost:3000" rel="noopener noreferrer"&gt;http://localhost:3000&lt;/a&gt; and it should look like the image below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Ffj5s57nk08452idkyukm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Ffj5s57nk08452idkyukm.png" alt="Default homepage of a svelte project" width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Creating the sitemap.xml file&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;For now, I wil assume that you have some basics of sapper and you know and understand the structure of a project.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So to add the sitemap.xml file you will have to create a &lt;code&gt;sitemap.xml.js&lt;/code&gt; in your &lt;code&gt;src/routes/&lt;/code&gt; directory.&lt;/p&gt;

&lt;p&gt;Here is the content of that new file :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;posts&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./blog/_posts&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;BASE_URL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://www.blog.yafkari.dev&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readdirSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./src/routes&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;file&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;charAt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;_&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;sitemap&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;index&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;pages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;render&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;posts&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;`&amp;lt;?xml version="1.0" encoding="UTF-8" ?&amp;gt;
&amp;lt;urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"&amp;gt;
  &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;pages&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="nx"&gt;page&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;`
    &amp;lt;url&amp;gt;&amp;lt;loc&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;BASE_URL&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;/loc&amp;gt;&amp;lt;priority&amp;gt;0.85&amp;lt;/priority&amp;gt;&amp;lt;/url&amp;gt;
  `&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;posts&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="nx"&gt;post&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;`
    &amp;lt;url&amp;gt;
      &amp;lt;loc&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;BASE_URL&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/blog/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;post&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;slug&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;/loc&amp;gt;
      &amp;lt;priority&amp;gt;0.69&amp;lt;/priority&amp;gt;
    &amp;lt;/url&amp;gt;
  `&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;
&amp;lt;/urlset&amp;gt;
`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;next&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setHeader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Cache-Control&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;`max-age=0, s-max-age=&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="mi"&gt;600&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 10 minutes&lt;/span&gt;
  &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setHeader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Content-Type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;application/rss+xml&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;sitemap&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;posts&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;end&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;sitemap&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;You can download the file &lt;a href="https://gist.github.com/yafkari/05816ba6805de0384c22e070fc321baf" rel="noopener noreferrer"&gt;here&lt;/a&gt; on Github.&lt;/p&gt;

&lt;p&gt;In the first part of the file, we get all the routes of our project dynamically, after doing that we actually start creating the xml content.&lt;/p&gt;

&lt;p&gt;Finally we render the xml we generated previously.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;x&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You will also have to add this piece of code at the top of your &lt;code&gt;src/routes/index.svelte&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;script&lt;/span&gt; &lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;module&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;preload&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;params&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;query&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;sitemap.xml&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/script&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This piece of code is here to make sure that the &lt;code&gt;sitemap.xml&lt;/code&gt; is rendered during export.&lt;/p&gt;

&lt;p&gt;Pretty simple, but as a beginner with svelte, It's a bit difficult to find the way to do it.&lt;/p&gt;

&lt;p&gt;I hope this short tutorial has taught you something and saved you some time.&lt;/p&gt;

&lt;h4&gt;
  
  
  See you next time!
&lt;/h4&gt;

</description>
      <category>svelte</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Gitlab VS Github VS BitBucket. Which one deserve your time ? ⌚️👀</title>
      <dc:creator>Younes</dc:creator>
      <pubDate>Wed, 08 Jan 2020 14:11:11 +0000</pubDate>
      <link>https://forem.com/yoadev/gitlab-vs-github-vs-bitbucket-which-one-deserve-your-time-2npm</link>
      <guid>https://forem.com/yoadev/gitlab-vs-github-vs-bitbucket-which-one-deserve-your-time-2npm</guid>
      <description>&lt;h3&gt;
  
  
  🎊 Happy New Year ! 🎊🎉  &lt;em&gt;(I know I'm late 😂)&lt;/em&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Here is it ! My first article of 2020, I hope this year we'll have as much fun as we had last year. And I hope it will be a year fulfilled with success and happiness for you! 😄
&lt;/h4&gt;




&lt;p&gt;&lt;em&gt;Funny fact. During my research, I found a comparaison of Gitlab and Github by Gitlab itself ! It made me laugh 😂. Honestly, I did'nt read it, but you can find it &lt;a href="https://about.gitlab.com/devops-tools/github-vs-gitlab.html" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Summary
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Google Trends&lt;/li&gt;
&lt;li&gt;
Presentation of each platform

&lt;ul&gt;
&lt;li&gt;Github&lt;/li&gt;
&lt;li&gt;Gitlab&lt;/li&gt;
&lt;li&gt;Bitbucket&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Which one should you choose ?&lt;/li&gt;

&lt;li&gt;Conclusion&lt;/li&gt;

&lt;/ul&gt;

&lt;h1&gt;
  
  
  Introduction &lt;a&gt;&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;Nowadays, nobody, uses git alone. Every developer, at some point used one of the three major hosting platforms, if not all three.&lt;br&gt;
The most famous of the three is Github, even if I first used Bitbucket to download Minecraft plugins when I was younger 😂.&lt;/p&gt;

&lt;p&gt;So, first of all, I will describe each of the three platform, and tell we will try to comparate them and maybe make a thoughtful decision.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;/* My sources for the history of each are highly inspired by Wikipedia, if you want to know the details, you can check the wikipedia of &lt;a href="https://en.wikipedia.org/wiki/GitHub#History" rel="noopener noreferrer"&gt;Github&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/GitLab#History" rel="noopener noreferrer"&gt;Gitlab&lt;/a&gt;, or &lt;a href="https://en.wikipedia.org/wiki/Bitbucket#History" rel="noopener noreferrer"&gt;BitBucket&lt;/a&gt;.*/&lt;/em&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Google Trends &lt;a&gt;&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;First, let's see the interest of each platform on Google Trends during the last five years :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fl00nyxxfd3fesgs2nnzl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fl00nyxxfd3fesgs2nnzl.png" alt="Trends" width="800" height="188"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can clearly see that people do a lot more research for Github on Google, it's the most popular platform, it's not surprising.&lt;/p&gt;

&lt;p&gt;Now let's detail each of the platforms to be able to compare them correctly.&lt;/p&gt;
&lt;h1&gt;
  
  
  Presentation of each platform &lt;a&gt;&lt;/a&gt;
&lt;/h1&gt;
&lt;h3&gt;
  
  
  1. Github &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fiegex1wm9pjkjaojcn90.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fiegex1wm9pjkjaojcn90.png" alt="Github image" width="800" height="323"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  A little bit of history :
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The company Github, Inc. was founded in 2007 in San Fransisco. Github has been developed with Ruby On Rails by Scott Chacon, P. J. Hyett, Tom Preston-Werner and Chris Wanstrath.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On June 2011, ReadWriteWeb, now called ReadWrite (a Web Technology blog) announced that Github had surpassed Google Code and SourceForge in total number of commits during January to May 2011.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In 2016, Forbes was ranking Github at the 14th place in the &lt;strong&gt;Forbes Cloud 100&lt;/strong&gt; list&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On February 2018, Github was victim of the second biggest DDoS (peack of incoming traffic of 1.35 terabits per sec, only 🤯!)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On June 2018, Microsoft announced that they had an agreement with Github to acquire the company for $7.5 billion ! You probably saw that the purchase was done on 26 october of 2018.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Two weeks later, the Github Education was offering free education bundles to all the schools.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Numbers
&lt;/h4&gt;

&lt;p&gt;Github has more than 40 million users, including 10 million who joined the platform in 2019. Github represents more than 44 million repositories created last year. And it's more than 20 million issues closed last year. &lt;a href="https://octoverse.github.com/" rel="noopener noreferrer"&gt;Source&lt;/a&gt;.&lt;/p&gt;
&lt;h4&gt;
  
  
  Some Facts
&lt;/h4&gt;

&lt;p&gt;First of all, it's important to note that since the acquisition of Github by Microsoft many people have moved away from Github to other platforms and most likely Gitlab or Bitbucket. The reasons are obvious, even you reading this, you probably wondered about it, didn't you?&lt;/p&gt;

&lt;p&gt;Microsoft had surely foreseen the situation and for some time now we see Microsoft investing more and more in open source. We can mention the famous Visual Studio Code or .NET Core which became open source, ...&lt;/p&gt;

&lt;p&gt;Let's get back to Github.&lt;/p&gt;
&lt;h4&gt;
  
  
  Pros
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Microsoft is developing Github and adding more and more features in it. You can now have a private repository for free, ...&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You have now a sort of Kanban board for your projects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can create private and public repositories for free.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;They offers you a pack of services for free if you are a Student.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A lot of Integration possibilities. (Heroku, Google Cloud, Zendesk, ...)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Github pages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security notifications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dependency analysis.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Cons
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Microsoft's control over the product.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Only support Git.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Cyber security attack they faced in 2018 is scary.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;They should rename Pull Request, by Merge request 😇.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  2. Gitlab &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Ftrmjsinh2zjckx8iirip.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Ftrmjsinh2zjckx8iirip.jpg" alt="Gitlab image" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Some bytes of History :
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;At the beginning, it was called Gitlab and it was completely free and opensource under the MIT license (I didn't know that we can change the licenses wow).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In July 2013, they decided to split the product in two different version (Gitlab CE: Community Edition &amp;amp;&amp;amp; Gitlab EE: Entreprise Edition) but at that time, they were both free and on the MIT license. (We all know now that that's not the case anymore ^^)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In 2014, Gitlab announced that the EE version was now on a restricted license while the CE version will still be maintained and will remain free.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In March 2015, GitLab bought Gitorious (a Git hosting service competitor with ~820k registered users). They encouraged users to migrate to their platform and Gitorious was stopped in June 2015.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Prepare yourself this one is funny 😂😩&lt;/em&gt;. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In 2017, after a cyber attack, a database admin deleted the production database ! Six hours of issues and merge requests lost ! The recovery process was completely streamed on Youtube &lt;em&gt;(A way to recover the costs of the recovery ? 😂)&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In August 2018, Gitlab moved from Microsoft Azure to the Google Cloud Platform which caused the service to be unavailable to several countries due to &lt;br&gt;
restrictions by the Office of Foreign Assets Control of the United States. (Iran, Syria, North Korea, ...)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Numbers
&lt;/h4&gt;

&lt;p&gt;No information ?&lt;/p&gt;
&lt;h4&gt;
  
  
  Pros
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A big advantage of Gitlab is that you can self host a Gitlab server. I already tested it once. Personally, I liked it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CSV file export. You can export issues in CSV files to default notification email addresses as attachments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Confidential issues. Gitlab allows you to create confidential issues that are visible only to the project member(s) with the Reporter role or above.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can also visualize your branches with a graph, which is useful sometimes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gitlab is open source, so if something bothers you and you know Ruby, you can change it as long as you don't break it 😂.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Cons
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You don't have that much features for free.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The "premium" offers are expensive.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Very small community compared to Github.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A lot of hidden functionalities in menus and submenus. (Complex UI)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  3. BitBucket &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fkw0fx2b673cqtlusvywl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fkw0fx2b673cqtlusvywl.png" alt="Bitbucket image" width="720" height="400"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  No joke, sorry 😂 (History) :
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Bitbucket was at the beginning an independent startup founded by Jesper Nøhr. (I didn't find the date)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Atlassian acquired it on September 2010. At the beginning, it was only hosting support for Mercurial projects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In October 2011, Bitbucket announced the support of Git project hosting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In August 2019, Bitbucket showed their plan to stop supporting Mercurial repositories in 1 June 2020. And Stop supporting Mercurial means deleting all traces of Mercurial in their API and deleting permanently all the Mercurial repositories (Public &amp;amp; Private). &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You should check if you have something left out there. Stop reading and go check if you have something to get back. Don't be that sad database admin guy 😂😭 But come back after doing that 😇&lt;/p&gt;

&lt;p&gt;(ed. I would just make a quick pause. I just have been saved by an AMAZING feature called an Alert Box 😂 (Love you &lt;a class="mentioned-user" href="https://dev.to/thepracticaldev"&gt;@thepracticaldev&lt;/a&gt; 😘)&lt;/p&gt;

&lt;p&gt;Here is my hero: (Yes, I'm using Brave)&lt;br&gt;
&lt;a href="https://media2.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%2Fg1fe133wrwjyt4etntif.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fg1fe133wrwjyt4etntif.png" alt="my hero" width="454" height="139"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Numbers
&lt;/h4&gt;

&lt;p&gt;Bitbucket claimed to have 10 million of users in a blog the April 17, 2019. The article say that they have ~28 million of repositories.&lt;/p&gt;

&lt;p&gt;You can find the article &lt;a href="https://bitbucket.org/blog/celebrating-10-million-bitbucket-cloud-registered-users" rel="noopener noreferrer"&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;It's interesting to see the availability of public numbers from Github and the lack of information from Gitlab and Bitbucket.&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Pros
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;One huge advantage of Bitbucket, is its integration with all the Atlassian services like JIRA, Confluence, Trello, ...&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bitbucket's search algorithm includes several languages, which makes it possible to classify the results. The definition of a function or variable appears at the top, then the uses. You can determine the utility of a keyword very quickly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You have access to all the extensions available on the Atlassian marketplace.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Cons
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Very small community compared to Github.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sometimes seems buggy or unresponding.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Not intuitive.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Self hosted configuration is complex to deploy.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
  
  
  Which one should you choose ? &lt;a&gt;&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;Personally, even if Microsoft bought Github, I will stay (as a person) on Github, because since the Microsoft era, I can have access to private repositories for free. I have access to a Kanban board which gives me a good point of view of my project.&lt;/p&gt;

&lt;p&gt;At school we use a self hosted Gitlab server, and I have to say that it does the job pretty well. Of course, we don't use all the power of it but I think that each platform has its pros and cons like we saw earlier. &lt;/p&gt;

&lt;p&gt;I'm sorry I didn't go into details, but I don't think I have enough knowledge to be able to present them to you properly (CI, pipelines, ...) I've already been confronted to these technologies in the past during previous jobs but I've never touched them personally (for now), when it will be the case, I might write something about it.&lt;/p&gt;

&lt;p&gt;It is very difficult to choose, and it also depends on everyone's preferences. I would say that each system can coexist, especially since it is possible to import a Github project in Bitbucket and vice versa, ...&lt;/p&gt;

&lt;p&gt;I would suggest you to try each or 2 of them and make a decision. You can also find on internet more informations to comparate by yourself.&lt;/p&gt;

&lt;p&gt;Here is some interesting links :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://about.gitlab.com/blog/2019/01/07/github-offering-free-private-repos-for-up-to-three-collaborators/" rel="noopener noreferrer"&gt;GitHub now offers free private repos for up to three collaborators – here are our thoughts&lt;/a&gt;  -- 😂&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.slant.co/versus/532/4860/~github_vs_gitlab" rel="noopener noreferrer"&gt;github vs gitlab - Slant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.upguard.com/articles/bitbucket-vs-github" rel="noopener noreferrer"&gt;Bitbucket vs Github - Upguard&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h1&gt;
  
  
  Conclusion &lt;a&gt;&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;What I find funny and sad at the same time about developers is that they create software that are so complicated sometimes that they have to write software to help them using the first one 😂😭. #inception&lt;/p&gt;

&lt;p&gt;I would like to add, that I did my best to give the most objective and relevant information and I learned a lot about these platforms while preparing this article. I hope that you have learned something from this reading as well.&lt;/p&gt;

&lt;p&gt;Let's discuss in the comments, I would love to hear your opinion and experience with those platforms 😁👌🏼&lt;/p&gt;



&lt;p&gt;I just created a Twitter account, because I saw that a big part of the community was on Twitter. This year I want to be closer to my followers. (~3700 for now, you are AMAZING 😇😍)&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1212508100114169856-317" src="https://platform.twitter.com/embed/Tweet.html?id=1212508100114169856"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1212508100114169856-317');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1212508100114169856&amp;amp;theme=dark"
  }



&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>git</category>
      <category>github</category>
      <category>gitlab</category>
    </item>
    <item>
      <title>Hub. Access Github without leaving your terminal ! 💻🚀</title>
      <dc:creator>Younes</dc:creator>
      <pubDate>Sat, 28 Dec 2019 12:43:26 +0000</pubDate>
      <link>https://forem.com/yoadev/hub-access-github-without-leaving-your-terminal-3415</link>
      <guid>https://forem.com/yoadev/hub-access-github-without-leaving-your-terminal-3415</guid>
      <description>&lt;p&gt;Hello everyone, today I will present you a nice tool that will &lt;strong&gt;save you time&lt;/strong&gt; and will help you being &lt;strong&gt;more productive&lt;/strong&gt; with your Github projects.&lt;/p&gt;

&lt;p&gt;It's called &lt;strong&gt;Hub&lt;/strong&gt; (Original 😝), and it &lt;em&gt;"helps you do everyday GitHub tasks without ever leaving the terminal."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;In this article, I will not go in depth in the presentation of the features because the documentation is pretty good actually. I don't think you'll struggle with it ^^.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That's a very interesting tool for people that codes and use &lt;strong&gt;Git&lt;/strong&gt; (if you code, you should &lt;strong&gt;definitively&lt;/strong&gt; use Git ❗️)&lt;/p&gt;

&lt;p&gt;In fact, Hub is an extension to the &lt;strong&gt;git command-line&lt;/strong&gt;, it adds &lt;strong&gt;Github&lt;/strong&gt; specific commands.&lt;/p&gt;

&lt;p&gt;For example :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;git&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;clone&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;git://github.com/YOUR_USER/PROJECT.git&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;hub&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;clone&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PROJECT&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or you can list the issues that are assigned to you with a certain label, ... :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;hub&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;issue&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;YOUR_USER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-l&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;LABEL&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also open the current &lt;strong&gt;open the wiki&lt;/strong&gt; of a project, open a pull-request, ...&lt;/p&gt;

&lt;p&gt;&lt;em&gt;You can find all the commands on the &lt;a href="https://hub.github.com/hub.1.html" rel="noopener noreferrer"&gt;documentation page&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I think that this tool is very useful when you get used to &lt;strong&gt;NOT OPEN&lt;/strong&gt; your browser and it's easier to automate things, create aliases, ...&lt;/p&gt;

&lt;p&gt;You can install Hub easily with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;hub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;OR get a &lt;strong&gt;precompiled version&lt;/strong&gt; of it &lt;a href="https://github.com/github/hub/releases" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you want to know more about it, go check the &lt;a href="https://hub.github.com" rel="noopener noreferrer"&gt;website&lt;/a&gt; !&lt;/p&gt;




&lt;p&gt;PS: We almost hit &lt;strong&gt;3000 FOLLOWERS&lt;/strong&gt; (2959 while I'm writing) on &lt;strong&gt;DEV&lt;/strong&gt;, you are AMAZING ❤️🔥 THANK YOU FOR BEING WITH US 🙏🏻&lt;/p&gt;

</description>
      <category>git</category>
      <category>beginners</category>
      <category>productivity</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Productivity. Put the theory aside and practice !</title>
      <dc:creator>Younes</dc:creator>
      <pubDate>Sat, 31 Aug 2019 14:44:54 +0000</pubDate>
      <link>https://forem.com/yoadev/productivity-put-the-theory-aside-and-practice-876</link>
      <guid>https://forem.com/yoadev/productivity-put-the-theory-aside-and-practice-876</guid>
      <description>&lt;p&gt;Hello everyone,&lt;br&gt;
It's been a while since I wrote articles, but we'll fix it !&lt;/p&gt;

&lt;p&gt;Today, we will speak about productivity.&lt;/p&gt;

&lt;p&gt;One of the biggest concerns of developers is their productivity. That's a fact.&lt;/p&gt;

&lt;p&gt;We hear about it every time and everywhere. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;"You have to be more productive."&lt;br&gt;
"You have to be more competitive"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We hear about it so often that at one point of my life, I was only reading and documenting about how to be more productive and produce code quicker and cleaner.&lt;/p&gt;

&lt;p&gt;Reading posts and watch people's life on YouTube to see how they manage their time (the hype of "a day in the life of.."), ...&lt;/p&gt;

&lt;p&gt;Actually, I learned a lot and found some good ideas, but it took me sooo much time.&lt;/p&gt;

&lt;p&gt;And it is not useful to look at videos the whole day and at the same time not practicing those concepts and ideas.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;And that's how I became non-productive because of articles/videos about productivity !&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Instead of following some people's advice and apply them in my life, I have just lost my time and that's it.&lt;/p&gt;

&lt;p&gt;I was watching people get better and I stayed comfortably in my role as a spectator.&lt;/p&gt;

&lt;p&gt;So, if you are in the position I was a few months ago, please get up of your bed, stop reading anything and practice what you already learned. &lt;/p&gt;

&lt;p&gt;That's it, you reached the end of this post.&lt;br&gt;
I hope you enjoyed it and you earned something of it.&lt;/p&gt;

&lt;p&gt;If you see some English mistakes, do not hesitate to correct me in the comments 😅&lt;/p&gt;

&lt;p&gt;Finally, feel free to share your experience / give your opinion! 😃&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>productivity</category>
      <category>motivation</category>
      <category>beginners</category>
    </item>
    <item>
      <title>The IDE - The beginner's trap !</title>
      <dc:creator>Younes</dc:creator>
      <pubDate>Thu, 10 Jan 2019 14:34:40 +0000</pubDate>
      <link>https://forem.com/yoadev/ide---the-beginners-trap-eg2</link>
      <guid>https://forem.com/yoadev/ide---the-beginners-trap-eg2</guid>
      <description>&lt;p&gt;Hello everyone, today we talk about IDE's !&lt;/p&gt;

&lt;p&gt;But first..&lt;/p&gt;

&lt;h2&gt;
  
  
  What's an IDE ?
&lt;/h2&gt;

&lt;p&gt;For me, an IDE is a software that allows us to write code with a comfortable environment for the language we're using.&lt;br&gt;
We can do thing faster and better.&lt;br&gt;
I would even say that it is not a software but a set of software offering a lot of tools like syntax highlighting, a debugger, code completion, code reformatting, ...&lt;/p&gt;

&lt;h2&gt;
  
  
  Why we love IDE's ?
&lt;/h2&gt;

&lt;p&gt;Don't you think having an IDE can change a life? We are always defending in comments and forums that our IDE is the best.&lt;br&gt;
Why? Simply because it really changed our lives and the way we code. &lt;strong&gt;We do things faster and better&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Whether it is &lt;em&gt;self-completion&lt;/em&gt;, &lt;em&gt;reporting problems&lt;/em&gt; with our code, &lt;em&gt;reformatting our code&lt;/em&gt;, etc... Our IDE saves us from many struggles sometimes.&lt;/p&gt;

&lt;p&gt;It is not only a tool but also a way of working&lt;/p&gt;

&lt;p&gt;But for a beginner, the IDE can be a &lt;strong&gt;double-edged tool&lt;/strong&gt; ( and a very sharp one) because of some of the things we will discuss, if you don't mind, in this article.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I say that's a trap ?
&lt;/h2&gt;

&lt;p&gt;What I will say throughout this article is the result of my personal experience and those of the people around me (classmates, colleagues, ...). &lt;strong&gt;Do not hesitate to give your opinion and share your point of view 😁&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The first trap a beginner can fall into, for me, is to &lt;strong&gt;use an IDE to learn a new language&lt;/strong&gt;. Because, for me and for most people, it is easier to learn by &lt;strong&gt;using a maximum of senses&lt;/strong&gt;, the fact of reading only one course is not enough to learn correctly and in a productive way. It would be better, for example, to read the course, reproduce the code, and even watch a video to make all your senses work. (sight, hearing, ...)&lt;/p&gt;

&lt;p&gt;Using an IDE leads to this, because even if you copy the code you find on the tutorial or the course or anything else, &lt;strong&gt;the IDE helps us and self-completes some keywords&lt;/strong&gt; and that's how my classmates learned java with Netbeans in class but as soon as they had to write a simple code that will display &lt;strong&gt;"hello, World!"&lt;/strong&gt; they were incapable because they didn't know exactly how to write this code because some element was automatically generated by the IDE as &lt;em&gt;public static void main (String[] args) {}&lt;/em&gt; and &lt;strong&gt;this is one of 100 other examples !&lt;/strong&gt; I have also fallen into this trap in the past, now, when I learn a language I tend to &lt;strong&gt;copy all the keywords on notepad&lt;/strong&gt; in order &lt;strong&gt;to remember more precisely each element that characterizes this language&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The IDE can also be a calamity for people who are too perfectionist. I know people who &lt;strong&gt;spend more time looking for a beautiful theme for vs code than learning to code&lt;/strong&gt;, it makes me laugh at times 😆.&lt;/p&gt;

&lt;p&gt;I also had the opportunity to meet people who only knew how to use git with the help of the buttons available on the IDE they were using, you know, the buttons that commit &amp;amp; push at the same time automatically. And then, &lt;strong&gt;when they change their IDE, they're lost&lt;/strong&gt;, because they can't figure out how we this or that. &lt;strong&gt;They were too dependent on their tools!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What we can do ?
&lt;/h2&gt;

&lt;p&gt;That is why, I think that before you can make your life easier with an IDE, you have to go through a learning stage without it and this way &lt;strong&gt;understand exactly the tools that have been used and the technologies behind it&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;An expression tells us that we must walk before we can run, and I think it can be applied here.&lt;/p&gt;

&lt;p&gt;If you know what you're using you will be more productive and that's what we're all looking for. &lt;strong&gt;Productivity.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So, start learning without you're IDE, take some time to learn the tools inside, and try to use always the same to be comfortable with.&lt;/p&gt;

&lt;p&gt;Like a said before, try to learn with a video and then reproduces the code, then fidgets with the code. This is the best way to understand an element.&lt;/p&gt;

&lt;p&gt;I had a lot of other reasons in mind last night, but I made the mistake of not writing them down directly! I should get better at that. &lt;br&gt;
&lt;strong&gt;ALWAYS TAKE NOTE 😭 !!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That was my last advice for today. 😜&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I hope you have &lt;strong&gt;enjoyed&lt;/strong&gt; this article, as mentioned above, I invite you to &lt;strong&gt;give your opinion&lt;/strong&gt; and share your experiences on this subject and &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Happy coding and Happy new year!&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;a little bit late...😁&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>productivity</category>
      <category>discuss</category>
    </item>
    <item>
      <title>HTTP status codes - What happened to dev.to ?</title>
      <dc:creator>Younes</dc:creator>
      <pubDate>Tue, 18 Dec 2018 23:09:39 +0000</pubDate>
      <link>https://forem.com/yoadev/http-status-codes---what-happened-to-devto--1jn8</link>
      <guid>https://forem.com/yoadev/http-status-codes---what-happened-to-devto--1jn8</guid>
      <description>&lt;p&gt;Hello everyone,&lt;br&gt;
Today, I will speak about HTTP status codes.&lt;/p&gt;

&lt;p&gt;Yesterday at 7:30 pm, I was giving a look to &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;Github&lt;/a&gt; and, I don't know why, I needed to visit &lt;a href="//dev.to"&gt;dev.to&lt;/a&gt;.&lt;br&gt;
But when I tried to load the page, I received a beautiful 'Error 503' with a dog looking at me! 😝&lt;/p&gt;

&lt;p&gt;And that's how I found myself writing this little post to you.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Always look on the bright side of life." 🌔&lt;/em&gt;, &lt;em&gt;&lt;strong&gt;My mom&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  So...here we go!
&lt;/h2&gt;

&lt;p&gt;First of all, why do we need a status code?&lt;/p&gt;

&lt;p&gt;A status code is a little message from the server that tells you how things went with your request (if everything went well, etc...).&lt;br&gt;
So you can imagine how necessary it is to get feedback on the status of a request.&lt;/p&gt;

&lt;p&gt;There are several status codes and each one is dedicated to a specific situation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Categories
&lt;/h2&gt;

&lt;p&gt;The HTTP status codes are divided into 5 different classes defined by the first number they are composed of.&lt;/p&gt;

&lt;p&gt;Here is a list of the classes described in the &lt;strong&gt;&lt;a href="https://tools.ietf.org/html/rfc2616" rel="noopener noreferrer"&gt;RFC 7231&lt;/a&gt;, page 47&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1xx&lt;/strong&gt;: Informational - Request received, continuing process&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2xx&lt;/strong&gt;: Success - The action was successfully received, understood, and accepted&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3xx&lt;/strong&gt;: Redirection - Further action must be taken in order to complete the request&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4xx&lt;/strong&gt;: Client Error - The request contains bad syntax or cannot be fulfilled&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;5xx&lt;/strong&gt;: Server Error - The server failed to fulfill an apparently valid request&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A quick look at the most frequent status codes
&lt;/h2&gt;

&lt;p&gt;The number one is, of course, the famous:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Error 404 Not Found&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.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%2Fpfufhn2b4y69r3avqe9j.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fpfufhn2b4y69r3avqe9j.gif" alt="ERr0r4O4" width="480" height="270"&gt;&lt;/a&gt;&lt;br&gt;
This error occurs when the resources you ask doesn't exist, try to check the orthography and stay calm 🙏😄.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;503 Service Unavailable&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.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%2Fg15wj8bdehwtc29hdwpl.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fg15wj8bdehwtc29hdwpl.gif" alt="ERr0r5O3" width="480" height="285"&gt;&lt;/a&gt;&lt;br&gt;
The error I had the good fortune to see yesterday appears mainly when the server is busy (overloaded by too many requests ?) or when the server is in maintenance.&lt;br&gt;
It is usually temporary, so be patient!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;200 OK&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.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%2Fxvv2ymp2qosl4tlryxv5.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fxvv2ymp2qosl4tlryxv5.gif" alt="are you sure everything is fine ??" width="320" height="217"&gt;&lt;/a&gt;&lt;br&gt;
A normal user doesn't even know about its existence, this status code means that everything goes well.&lt;br&gt;
You asked for X, I found it, and I've shown it to you.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Etc...&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.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%2Flfs09u3zgz9tkdfprfie.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Flfs09u3zgz9tkdfprfie.gif" alt="an image" width="480" height="298"&gt;&lt;/a&gt;&lt;br&gt;
There is a lot of HTTP status code, so I let you see by yourself &lt;a href="https://tools.ietf.org/html/rfc2616" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;As you can see the most frequent status codes are errors 😭😂.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So that's it for this article, like every time, feel free to remind me if I forgot something 😜&lt;/p&gt;

&lt;p&gt;I know, I know, you're sad.&lt;br&gt;
But I will come back as soon as possible with other better posts than the previous one. (I hope so) &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>http</category>
      <category>devto</category>
    </item>
    <item>
      <title>What resources to learn Ruby On Rails?</title>
      <dc:creator>Younes</dc:creator>
      <pubDate>Tue, 18 Dec 2018 14:22:05 +0000</pubDate>
      <link>https://forem.com/yoadev/what-resources-to-learn-ruby-on-rails-2eg3</link>
      <guid>https://forem.com/yoadev/what-resources-to-learn-ruby-on-rails-2eg3</guid>
      <description>&lt;p&gt;&lt;em&gt;yes, I like gifs 😂&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Here you can put the best resources you would recommend to someone who wants to learn Ruby on Rails or improve his skills 😃
&lt;/h3&gt;

&lt;h3&gt;
  
  
  I will add them below :
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Start with Ruby on Rails:
&lt;/h4&gt;

&lt;h5&gt;
  
  
  Free :
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.codecademy.com/learn/learn-rails" rel="noopener noreferrer"&gt;&lt;strong&gt;Codecademy&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/ryanwhocodes/routes-in-ruby-on-rails---using-resources-and-records-to-define-urls-50j3"&gt;&lt;strong&gt;Dev.to&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.railstutorial.org/book" rel="noopener noreferrer"&gt;&lt;strong&gt;Rails Tutorial Book&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://guides.rubyonrails.org/index.html" rel="noopener noreferrer"&gt;&lt;strong&gt;Ruby on Rails Guides&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://web-crunch.com/series/" rel="noopener noreferrer"&gt;&lt;strong&gt;Web-Crunch - Let's Build: With Ruby On Rails&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//launchschool.com/books"&gt;&lt;strong&gt;Launchschool books&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.edx.org/course/agile-development-using-ruby-rails-uc-berkeleyx-cs169-1x-1" rel="noopener noreferrer"&gt;&lt;strong&gt;Edx - Agile Development Using Ruby on Rails - The Basics&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.theodinproject.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;The Odin Project&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Paid :
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.manning.com/books/the-well-grounded-rubyist" rel="noopener noreferrer"&gt;&lt;strong&gt;The Well Grounded Rubyist&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.poodr.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;Practical Object Oriented Design&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  To go further:
&lt;/h4&gt;

&lt;h5&gt;
  
  
  Free :
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gorails.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;GoRails&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://thoughtbot.com/upcase" rel="noopener noreferrer"&gt;&lt;strong&gt;Upcase by thoughtbot&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Paid :
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/Eloquent-Ruby-Addison-Wesley-Professional/dp/0321584104" rel="noopener noreferrer"&gt;&lt;strong&gt;Eloquent Ruby&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://patshaughnessy.net/ruby-under-a-microscope" rel="noopener noreferrer"&gt;&lt;strong&gt;Ruby Under a Microscope&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.railsspeed.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;The Complete Guide to Rails Performance&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learnrubythehardway.org/" rel="noopener noreferrer"&gt;&lt;strong&gt;Learn Ruby the Hard Way&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Thanks to :
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;&lt;a class="mentioned-user" href="https://dev.to/vinistock"&gt;@vinistock&lt;/a&gt;, &lt;a class="mentioned-user" href="https://dev.to/miah"&gt;@miah&lt;/a&gt;, &lt;a class="mentioned-user" href="https://dev.to/edisonywh"&gt;@edisonywh&lt;/a&gt;, &lt;a class="mentioned-user" href="https://dev.to/rhymes"&gt;@rhymes&lt;/a&gt;, &lt;a class="mentioned-user" href="https://dev.to/maxtrelle"&gt;@maxtrelle&lt;/a&gt;, &lt;a class="mentioned-user" href="https://dev.to/redfred7"&gt;@redfred7&lt;/a&gt;, &lt;a class="mentioned-user" href="https://dev.to/ixeres"&gt;@ixeres&lt;/a&gt;, @mattheefor&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>beginners</category>
      <category>learning</category>
      <category>ruby</category>
    </item>
    <item>
      <title>Is having a degree in IT still relevant in 2019?</title>
      <dc:creator>Younes</dc:creator>
      <pubDate>Mon, 17 Dec 2018 21:30:45 +0000</pubDate>
      <link>https://forem.com/yoadev/is-having-a-degree-in-it-still-relevant-in-2019-4gnk</link>
      <guid>https://forem.com/yoadev/is-having-a-degree-in-it-still-relevant-in-2019-4gnk</guid>
      <description>&lt;h1&gt;
  
  
  A brief history
&lt;/h1&gt;

&lt;p&gt;My first &lt;strong&gt;"Hello, World!"&lt;/strong&gt; is now a few years old.... &lt;em&gt;Time passes so quickly... 😨&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Since I was a kid, I've been amazed by all the possibilities that computers offer us, I've always loved cartoons and spy movies where a little-hooded hacker would enter the NASA system with a few keystrokes.&lt;/p&gt;

&lt;p&gt;So I quickly started to learn by myself how a computer worked, what a programming language is,...&lt;/p&gt;

&lt;p&gt;Around the age of 12-13, I decided, &lt;strong&gt;TODAY&lt;/strong&gt; I start programming.&lt;/p&gt;

&lt;p&gt;I started with C after searching on different forums for a language to choose.&lt;br&gt;
Like many French speakers, I started with Mathieu Nebra's course on &lt;a href="https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c" rel="noopener noreferrer"&gt;Openclassroom&lt;/a&gt; (formerly called Site du Zero).&lt;br&gt;
As a kid, I stopped just before the pointers, I couldn't keep up. So I started HTML/CSS with &lt;a href="https://www.codecademy.com/catalog/language/html-css" rel="noopener noreferrer"&gt;CodeAcademy&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;One thing leading to another, I found myself to know much more about computing, to interest myself more and more in the blockchain (bitcoin in fact at that time) and hacking with &lt;a href="https://www.root-me.org/" rel="noopener noreferrer"&gt;Root-me&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Finally, at the age of 16, I decided to go to a technical computer subsidiary.&lt;/p&gt;

&lt;p&gt;Having bases, I expected not having to work at home so I could still learn myself and the bet was a winning bet, I could learn a lot more about the inner workings of a computer, the different systems, and how the networks work.&lt;/p&gt;

&lt;p&gt;I was able to learn how to manage Cisco devices and get the basics of Python.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I also had the pleasure of tasting the impostor syndrome and some other cool things. 😩😆&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But that was never enough for me, I always learned more at home and that was one of the perverse effects of my enthusiasm because at home I was learning and it was fun.&lt;br&gt;
But when you get to school, reviewing a subject you've already studied is extremely frustrating, you think &lt;strong&gt;you're wasting your time&lt;/strong&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  The problem
&lt;/h1&gt;

&lt;p&gt;This year I am in my first year of higher education at the university.&lt;br&gt;
Not knowing which option to choose, I turned to IT Management.&lt;/p&gt;

&lt;p&gt;But I am confronted once again with a problem that has followed me all my life.&lt;/p&gt;

&lt;p&gt;After now + - 4 months, &lt;strong&gt;I still haven't learned anything&lt;/strong&gt;, I could learn the subject of the development course (JAVA) in two weeks and not because I have a superior intelligence to others, &lt;strong&gt;faaar from it&lt;/strong&gt;, but due to the fact that I like it and that I like to learn from myself.&lt;/p&gt;

&lt;p&gt;So I see myself offered full-time jobs with more than honourable salaries, but everyone is just attacking me with the idea that the degree is more than necessary to find a job.&lt;/p&gt;

&lt;h1&gt;
  
  
  So? Degree, relevant or not?
&lt;/h1&gt;

&lt;p&gt;For me, a degree was a &lt;strong&gt;proof of competence&lt;/strong&gt; when knowledge was difficult to access, but nowadays, you can learn everything using the Internet, so I don't think that's the case anymore.&lt;/p&gt;

&lt;p&gt;I am convinced that with motivation, good resources (sites, books,...) you can become a more than &lt;strong&gt;qualified computer scientist&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I am therefore also a supporter of the philosophy of Xavier Niel's school 42 or 19 Coding School (the Belgian version of 42).&lt;/p&gt;

&lt;p&gt;Xavier Niel is himself the perfect example of what I'm talking about, not even having a degree, he is the founder of Free.&lt;/p&gt;

&lt;p&gt;For me, a person who, at least in Belgium, has a bachelor's degree in computer science has only a basic knowledge but is not directly able to work in a company (although the education here is not that bad).&lt;br&gt;
He will be &lt;strong&gt;trained&lt;/strong&gt; and &lt;strong&gt;coached&lt;/strong&gt; there and then he will be fully competent for the work he is asked to do.&lt;/p&gt;

&lt;p&gt;Compared to a person who has a CCNA or similar certification, this person is operational directly in any company that uses Cisco systems.&lt;/p&gt;

&lt;h1&gt;
  
  
  School 42, the solution?
&lt;/h1&gt;

&lt;p&gt;I will not say that the education system, at least in the computer field, is failing. Some people need to be held by the hand, have obligations, do assessments, have a teacher by their side.&lt;/p&gt;

&lt;p&gt;But some people need &lt;strong&gt;freedom&lt;/strong&gt; and that is the strength of the school 42. There, we have access to resources and we can move forward as much as we want. Everyone advances at his own pace, and if we don't understand something we ask our neighbour if he doesn't know we ask his neighbour, and so on...&lt;/p&gt;

&lt;p&gt;For someone who loves the freedom to learn at his own rhythm without letting the other students flow, this is the perfect environment.&lt;/p&gt;

&lt;p&gt;The students there also learn to look for themselves, which I think is not taught enough in a "standard" school.&lt;/p&gt;

&lt;h1&gt;
  
  
  Why didn't I go then?
&lt;/h1&gt;

&lt;p&gt;Simply because in 2018, companies are more interested in the degree than in a candidate's &lt;strong&gt;real skills&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The trend is reversing and it's something positive, hopefully, it will continue in that direction!&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;So, for me, a degree is not proof that a person has skills in a particular field, because he or she could very well have succeeded with 10/20s everywhere.&lt;/p&gt;

&lt;p&gt;I think the most important thing is people's skills and not their paths to achieving those skills.&lt;/p&gt;

&lt;p&gt;But nowadays, it is still true to say that a degree is usually required to access any job.&lt;/p&gt;

&lt;h1&gt;
  
  
  And what is your opinion on this?
&lt;/h1&gt;

&lt;p&gt;Feel free to comment on &lt;strong&gt;your point of view&lt;/strong&gt; and highlight points that I may have forgotten.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Don't hesitate to correct me if I made mistakes in the article, there are probably a lot of them! 😅&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>skills</category>
      <category>discuss</category>
      <category>career</category>
    </item>
  </channel>
</rss>
