<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: nshimiye_emmy</title>
    <description>The latest articles on DEV Community by nshimiye_emmy (@dev_emmy).</description>
    <link>https://dev.to/dev_emmy</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%2F589566%2F1651f01f-a962-4a26-abcd-0f68ff7f8e8f.jpeg</url>
      <title>DEV Community: nshimiye_emmy</title>
      <link>https://dev.to/dev_emmy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dev_emmy"/>
    <language>en</language>
    <item>
      <title>Calling all software developers, Don't miss this new global developer survey opportunity (win: $1000 - $250) - Ends January 31</title>
      <dc:creator>nshimiye_emmy</dc:creator>
      <pubDate>Thu, 13 Jan 2022 14:57:35 +0000</pubDate>
      <link>https://dev.to/dev_emmy/calling-all-software-developers-dont-miss-this-new-global-developer-survey-opportunity-win-1000-250-61c</link>
      <guid>https://dev.to/dev_emmy/calling-all-software-developers-dont-miss-this-new-global-developer-survey-opportunity-win-1000-250-61c</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Which skills do you think more people should master in software development? Take this survey and spend 15 min answering questions about programming languages, libraries, tools, and platforms. You could win: $1000 or $250 towards your desktop set up, $500 towards your AWS certification exam, new gear to upgrade your home or office workstation, and more. Plus you will get the results of the survey and free goody bag with resources to help you learn more about where to invest your time and skills in 2021. The survey closes on January 31st 2022, so don't leave it for later. Join now, it's easy!&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Important, you need to read this&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What do &lt;strong&gt;developers&lt;/strong&gt; want the most in 2022? Is it better documentation, real DevOps culture, perhaps fewer Zoom calls? It's time to tell the truth! Take part in the new Developer Nation survey for all developers and no-code software creators.&lt;/p&gt;

&lt;p&gt;Answer no-nonsense questions covering 13 development areas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web&lt;/li&gt;
&lt;li&gt;Mobile&lt;/li&gt;
&lt;li&gt;Desktop&lt;/li&gt;
&lt;li&gt;Cloud&lt;/li&gt;
&lt;li&gt;Industrial IoT&lt;/li&gt;
&lt;li&gt;Consumer Electronics&lt;/li&gt;
&lt;li&gt;Embedded software&lt;/li&gt;
&lt;li&gt;AR &amp;amp; VR &lt;/li&gt;
&lt;li&gt;Apps/extensions for 3rd-party ecosystems&lt;/li&gt;
&lt;li&gt;Games&lt;/li&gt;
&lt;li&gt;Machine Learning &amp;amp; AI, and Data science.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even if you're just a &lt;strong&gt;student&lt;/strong&gt; or &lt;strong&gt;hobbyist&lt;/strong&gt;, you'll find the survey very informative. You will need about &lt;strong&gt;20 min&lt;/strong&gt;. If it seems like a lot, don't worry; you can start the survey, pause to take a break and resume later with your answers saved. &lt;br&gt;
In return, you will get a virtual goodie bag packed with resources. Plus, you could win $1000 or $250 towards your desktop set up, $500 towards your AWS certification exam, new gear to upgrade your home or office workstation, and more via prize draws. The survey will close on January 31st, so hurry up.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Start Now by using this Link below: *&lt;/em&gt;&lt;br&gt;
&lt;a href="https://developereconomics.net?member_id=fq3Fb7Dg&amp;amp;lang=en&amp;amp;locale=en"&gt;https://developereconomics.net?member_id=fq3Fb7Dg&amp;amp;lang=en&amp;amp;locale=en&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Survey Key facts:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Survey dates&lt;/strong&gt;: December 7th 2021 - January 31st 2022.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Relevance&lt;/strong&gt;: professionals, hobbyists, student developers, no code software creators &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Areas / Sectors (13)&lt;/strong&gt;: Web, Mobile, Desktop, Cloud,  Industrial IoT, Consumer Electronics, Embedded software, AR &amp;amp; VR, Apps/extensions for 3rd-party ecosystems, Games, Machine Learning &amp;amp; AI, and Data science!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Localisation&lt;/strong&gt;: English + 8 additional languages (Chinese Simplified, Chinese Traditional, Spanish, Portuguese, Vietnamese, Russian, Japanese, Korean) &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prizes&lt;/strong&gt;: $19,000+ worth of prizes available in prize draws &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;General prize draw&lt;/strong&gt;: $1000 &amp;amp; $250 towards the desktop set up of your choice, Nintendo Switch, $500 towards your AWS certification exam, $120 towards tool licenses, VIVO standing desk, Gumroad ebooks, Amazon vouchers, and more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Surprise prizes&lt;/strong&gt;: hidden inside the survey for those who complete sector-specific set of questions, include $20 Amazon/Spotify/ Udemy vouchers, licenses, surpirse swag.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Special prizes for Developer Nation community members&lt;/strong&gt;: iPhone 13, Samsung Galaxy Tab S7, swag (branded t-shirts, stickers, earbuds), $10 vouchers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Suggested CTAs&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Take the survey&lt;/li&gt;
&lt;li&gt;Join global developer survey&lt;/li&gt;
&lt;li&gt;Win new gear &amp;amp; take the survey&lt;/li&gt;
&lt;li&gt;Start the survey now&lt;/li&gt;
&lt;li&gt;Make an impact on developer ecosystem&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Please share this link &lt;a href="https://developereconomics.net?member_id=fq3Fb7Dg&amp;amp;lang=en&amp;amp;locale=en"&gt;https://developereconomics.net?member_id=fq3Fb7Dg&amp;amp;lang=en&amp;amp;locale=en&lt;/a&gt; with your friends and collegues to get these tremendous prizes almost just for free.&lt;/p&gt;

&lt;p&gt;If you find this Info helpful, Follow Me for more Opportunities:&lt;br&gt;
&lt;a href="https://twitter.com/developer_emmy"&gt;Twitter&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/emmy-nshimiye-4737b2185/"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
      <category>react</category>
    </item>
    <item>
      <title>What is really the difference between Cookie, Session and Tokens that nobody is talking about ?.</title>
      <dc:creator>nshimiye_emmy</dc:creator>
      <pubDate>Sat, 01 May 2021 23:32:07 +0000</pubDate>
      <link>https://dev.to/dev_emmy/what-is-really-the-difference-between-cookie-session-and-tokens-when-it-comes-to-authentication-4164</link>
      <guid>https://dev.to/dev_emmy/what-is-really-the-difference-between-cookie-session-and-tokens-when-it-comes-to-authentication-4164</guid>
      <description>&lt;p&gt;To understand the difference between cookies, sessions and tokens we need to get back on the basics. Let's say you want to login to your bank account and you are provided with login screen where you can input your username and password and when you hit the submit button your username and password goes to the bank server.&lt;/p&gt;

&lt;p&gt;Then the server need to verify that you are really who you claim to be, so the bank will check against the database to see if your credentials match and if everything looks good the server will return your account overview page but will also create a session in the database with your login event and gives back to you the session_id inform of a cookie, in other words you have exchanged your username and password for this cookie containing the seesion_id, You send your username and password and then you recieve a cookie with a session_id. So the server will store the session information in the database while you will only have the session_id in the cookie which is stored in the file system of your computer, the session_id is randomly generated so it would be hard to guess, and when you logout, the session will be deleted on the server side but also the server will instruct your browser to delete the cookie containing the session_id as well.&lt;/p&gt;

&lt;p&gt;Next time when you login and you tend to request a page, your browser will automatically send a cookie containing a session_id which the server will check to see if it is still valid.It is essential to know that the next time your username and password are nolonger required in order to identify you.&lt;/p&gt;

&lt;p&gt;Think of a cookie like your Gym_membership_card, it stores your membershipID, additional with other details and when you scan it at the entry, it checks if your membership is still valid and let's you in. So as like with your gym card, a cookie with your session_id only works with a specific website, like you can not use your gym card to enter office building forexample hte same goes to your cookie, you can not use it log into another different website.&lt;/p&gt;

&lt;p&gt;So bank server will keep the session active as long as you keep interacting with the server, if for sometimes you are inactive and after that you visit a new page, the server will notice this period of inactivity and prompt you to provide your username and password again as a security measure.&lt;br&gt;
So the approach mentioned above is called a cookie-based authentication.&lt;/p&gt;

&lt;p&gt;Accordingly this approach used a session on the server to handle the authentication.The cookie is only a medium used to transport the sessionID and it is used because it is convinient, the browser will always send a cookie with every request. The same goes with membership_card, It is just convinient to have a card instead of showing you ID everytime but you can probably load the card on your phone and use your phone to get in, so the storage has changed but the concept remains the same, I mean in this case the bank stores the session information on the server side and you cannot see the contents of it but at the same time it can store othe information on the client side on your browser using another cookie forexample: which was the lastpage you visited or what is your preffered font-size or color or anyother less sensitive information.&lt;/p&gt;

&lt;h2&gt;
  
  
  WHY SERVERS DOES NOT STORE ALOT OF INFORMATION IN THE COOKIES ?
&lt;/h2&gt;

&lt;p&gt;But let's talk about why server doesn't store alot of information in the cookies, this is because the cookies cannot be trusted as they are coming from the client, this is why servers prefer to work with their databases where ideally only valid infromation exists.&lt;/p&gt;

&lt;p&gt;An alternative to this is to store information on the client and to sign it, in this scenario anyone holding the signature can quickly check if the data was manipulated or not and one way to do this is to use JSON WEB TOKENS, so basically cookie-based authentication has worked really well for many years but it is slowly becoming outdated atleast in some cases.&lt;/p&gt;

&lt;p&gt;Let's say now that you want to install an app on your phone which can help you with your financies and help keep track of your spendings using your bank account information, and what you don't want to do is to give your username and password to this app which is not associated with your bank, in this case your bank will redirect you to your bank account you will give in your username and password and your bank will ask you "hey John would you like to give this app access to your transactions?" and if you click yes the app will receive a token granting access to your transactions but the app will only view transactions, it will not be able to wire transfers or to see other details which you would normally be able to see when you login in your bank account. This token is like a randomly generated password if you would wish to say, it like when you we're at the hotel and you get a 1 day wifi password. Am sure you might have seen a similar procedure to this approach anytime you have used Facebook, Google or MicroSoft to grant information for your user profile to a third-party website.&lt;br&gt;
So in this exchange you never exchange you username and password,  if you later want you can easily revoke access to your bank account by  invalidating the token that was generated. So one of the most commonly used protocols for such scenario's are both openID Connect but also JON WEB TOKENS.&lt;/p&gt;

&lt;h2&gt;
  
  
  SO YOU ARE PROBABLY WONDERING WHAT IS THE DIFFERENCE BETWEEN A TOKEN AND A SESSION_ID STORED IN A COOKIE:
&lt;/h2&gt;

&lt;p&gt;The difference is that tokens are typically following a standard while sessions are implemented as needed by the server.&lt;br&gt;
Additionally, tokens tend not to need a session on the server but they may have one.&lt;/p&gt;

&lt;p&gt;In the case of JWT tokens, the token contain the session information as well, it contains actual data about you as a user.&lt;br&gt;
When using tokens it is essential to notice that now the interaction typically involves multiple parties that may or may not trust one another. So you trust your bank with your bank login{username and password} but you may not trust this third-party app that you found in the AppStore&lt;/p&gt;

&lt;p&gt;Another difference is that a token has a limited lifetime and a new token needs to be generated once it expires, the technical term is "refreshed"&lt;/p&gt;

&lt;p&gt;A token can also grant access to a subset of data a particular user or entity has, eg: you have only granted access to your transactions but not to other information.&lt;/p&gt;

&lt;p&gt;Most of the time tokens are being sent using HTTP headers and not cookies, the reason for that is nowadays many interactions happen out of browsers for-example from apps on your phone and it simply does not make sense to use cookies for that.&lt;/p&gt;

&lt;p&gt;"Cookies are sent as HTTP headers but the browsers handles them differently than the other headers"&lt;/p&gt;

&lt;h2&gt;
  
  
  CONCLUSION
&lt;/h2&gt;

&lt;p&gt;So both session-based/cookie-based and token-based approaches are widespread and typically they are used in parallel for-example a session/cookie based approach is deployed when using the website but token-based approach is preferred when using the app from the same service. So it is essential to understand how both work.&lt;/p&gt;

&lt;p&gt;I hope that was useful and now are able to differentiate between cookies, sessions and tokens.&lt;/p&gt;

&lt;h2&gt;
  
  
  Please if you love my work you can follow my work via :
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/nshimiyeemmy"&gt;GitHub&lt;/a&gt;&lt;br&gt;
&lt;a href="https://twitter.com/NshimiyeEmmy7"&gt;Twitter&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/nshimiye-emmy-4737b2185/"&gt;LinkedIn&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;When you support me (by following me) it gives me courage to continue sharing my skills. Thanks&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>node</category>
      <category>beginners</category>
    </item>
    <item>
      <title>The number one sign that you are a god of Computer Engineering(Forever challenge).</title>
      <dc:creator>nshimiye_emmy</dc:creator>
      <pubDate>Thu, 22 Apr 2021 07:21:04 +0000</pubDate>
      <link>https://dev.to/dev_emmy/the-number-1-question-that-very-few-people-around-the-world-can-answer-forever-challenge-4gcf</link>
      <guid>https://dev.to/dev_emmy/the-number-1-question-that-very-few-people-around-the-world-can-answer-forever-challenge-4gcf</guid>
      <description>&lt;p&gt;Hey dev community, I know many of you have been using computers for a very long time, Can anyone tell us anything he/she knows about computers he/she you thinks other people have no idea about.&lt;br&gt;
If you know it please mention it in the comment below&lt;/p&gt;

&lt;p&gt;I got asked this question more than 5 times but it wasn't easy for me to break it down.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>node</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
