<?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: Ted Sá</title>
    <description>The latest articles on DEV Community by Ted Sá (@unnotedme).</description>
    <link>https://dev.to/unnotedme</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%2F855053%2Fa0509dc3-04c7-4174-b84d-dfea9ebe5b0f.jpeg</url>
      <title>DEV Community: Ted Sá</title>
      <link>https://dev.to/unnotedme</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/unnotedme"/>
    <language>en</language>
    <item>
      <title>Security Tips: Metadata</title>
      <dc:creator>Ted Sá</dc:creator>
      <pubDate>Tue, 26 Sep 2023 14:24:00 +0000</pubDate>
      <link>https://dev.to/unnotedme/security-tips-metadata-49hh</link>
      <guid>https://dev.to/unnotedme/security-tips-metadata-49hh</guid>
      <description>&lt;p&gt;💡 &lt;strong&gt;Metadata is information about data that can be derived from or attributed to a specific piece of data.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It provides additional details, context, or associated information without altering the original data. In the context of files and file systems, metadata includes attributes like creation date, size, access permissions, and more. &lt;/p&gt;

&lt;p&gt;For example, in a phone conversation, the actual conversation content is the data, while the date, time, topics discussed, and duration of the call are metadata. Metadata can be embedded within a file, like camera details in image EXIF tags, or stored outside the file in the file system, such as file names and access permissions. This metadata can be gathered, stored, and indexed to facilitate file retrieval. Understanding metadata and its security implications is crucial in managing data effectively.&lt;/p&gt;

&lt;h2&gt;
  
  
  Embedded Metadata
&lt;/h2&gt;

&lt;p&gt;Embedded metadata plays a crucial role in various fields and applications, not limited to images but extending to other media formats. For instance, image metadata, governed by the EXIF (Exchangeable Image File Format) standard, contains details such as camera information and location. This embedded metadata facilitates categorization and searching in photo management tools. Similarly, some audio and media files also utilize EXIF tags. Embedded metadata can be accessed by various tools, and system-wide file search tools can create their indexes based on metadata, enhancing file retrieval.&lt;/p&gt;

&lt;p&gt;However, it's essential to recognize that embedded metadata may not always be accurate or truthful. Users can modify or falsify these values, so critical verification is necessary for forensic purposes or other significant applications. Some file formats, especially documents, store internal metadata that is more secure and usually can't be modified externally. These may include chain of custody records, audit trails, or cryptographic signatures.&lt;/p&gt;

&lt;p&gt;Embedded metadata values are often referred to as "tags," providing additional information about a file or object. These tags are part of the file but separate from its actual content. Some embedded metadata values, like image dimensions or format information, represent the data itself and can be regenerated from the data.&lt;/p&gt;

&lt;p&gt;When working with metadata, it's essential to be aware of certain special values, such as the Unix epoch start time (January 1st, 1970), often used when the real date and time information is missing. Erroneous dates, like the year 2036 in files from the past, can also occur due to data corruption. Null Island, a location at 0 degrees north, 0 degrees east, is another interesting value, often indicating missing or erroneous location data.&lt;/p&gt;

&lt;p&gt;In summary, embedded metadata is valuable but can be subject to inaccuracies, requiring careful validation. Tools like ExifTool enable users to work with file metadata efficiently.&lt;/p&gt;

&lt;h3&gt;
  
  
  ExifTool
&lt;/h3&gt;

&lt;p&gt;ExifTool is a versatile, free command-line program compatible with Windows, Mac OS, and Linux. It reads and modifies embedded metadata in files, primarily used for media files like images, audio, and video. ExifTool proves especially useful for batch processing and extracting metadata from multiple files simultaneously, making it valuable for tasks involving information retrieval and file sanitization.&lt;/p&gt;

&lt;p&gt;With ExifTool, users can examine a file's metadata, including details such as file name, size, camera model, exposure information, and more. Specific metadata values can be accessed using argument names, and ExifTool allows users to set values as well. For instance, one can add GPS information to a photo using ExifTool, providing consistency across platforms where different photo browsers may handle this task differently.&lt;/p&gt;

&lt;p&gt;While ExifTool simplifies metadata manipulation, it's important to note that metadata can be altered or even falsified, so verifying its accuracy is crucial. ExifTool offers a consistent experience across various platforms and file types, making it a valuable tool for managing metadata efficiently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Filesystems Metadata
&lt;/h2&gt;

&lt;p&gt;File metadata can be divided into two main categories. The first type of metadata is the one we typically encounter in various software applications, such as EXIF data in images or authorship information in documents. However, there's another kind of metadata stored within the file system itself, distinct from the actual file content.&lt;/p&gt;

&lt;p&gt;Files are essentially composed of binary bits that represent their content, whether it's text, images, videos, or anything else. These bits are organized into bytes and are stored on the storage medium in units known as blocks (on Unix and Linux systems) or clusters (on Windows). Each of these blocks or clusters has its unique address.&lt;/p&gt;

&lt;p&gt;When we save a file, its data occupies one or more of these storage units, and the addresses are recorded in a data structure that associates them with additional information about the file. This supplementary data includes the file's name, permissions, and timestamps indicating when it was created and modified. Depending on the specific file system, other metadata, such as access control lists (ACLs) and extended attributes, may also be linked to files.&lt;/p&gt;

&lt;p&gt;On Linux and Unix systems, these records containing file metadata and pointing to disk blocks are referred to as inodes, while on Windows NTFS drives, similar information is stored in entries within the master file table (MFT).&lt;/p&gt;

&lt;p&gt;While all file systems offer basic metadata support like file name, size, and modification date, modern file systems provide richer metadata features. Nevertheless, different file systems may handle metadata differently, and factors like character support in file names and case sensitivity can vary between them.&lt;/p&gt;

&lt;p&gt;When you copy or move a file, the operation encompasses both the metadata stored by the file system and the file's actual data. The metadata is adapted to values compatible with the destination file system. However, platform-specific data may sometimes become temporarily separated or even lost during this process.&lt;/p&gt;

&lt;p&gt;Because filesystem metadata is stored separately from the actual file data, various aspects of metadata can be altered without changing the file's content. This is evident when we modify permissions or set ACLs; these changes occur at the file system level, not within the individual files. Consequently, when files are transferred or copied to a file system that lacks support for specific metadata features, such metadata may be lost, potentially carrying security implications.&lt;/p&gt;

&lt;p&gt;Files are more intricate than they might initially appear. While the file's binary data on disk doesn't encompass all the metadata we associate with files, it's essential to recognize the distinctions between different file systems and how they manage metadata. These differences can impact file operations and security, making it crucial to understand metadata's role in file management.&lt;/p&gt;

&lt;h2&gt;
  
  
  Indexing and Search
&lt;/h2&gt;

&lt;p&gt;Modern operating systems provide metadata-based file indexing and searching, which enables quick file retrieval by name or content. On Windows, this feature is called Windows Search, while macOS offers Spotlight, and Linux utilizes tools like mlocate.&lt;/p&gt;

&lt;p&gt;In Windows, Windows Search indexes user content from specific directories, including filenames and file contents. Advanced options allow customization, including excluding specific subfolders. External disks can also be indexed if configured. The index is periodically updated.&lt;/p&gt;

&lt;p&gt;macOS's Spotlight scans files, records metadata, and, if possible, file contents. Spotlight indexes are stored on each indexed volume. If a disk is disconnected, Spotlight won't return results for files on it, but reconnecting the disk allows indexing.&lt;/p&gt;

&lt;p&gt;Linux uses mlocate to build and search file indexes, with the "updatedb" command creating the database. This index primarily tracks filenames and updates daily by default.&lt;/p&gt;

&lt;p&gt;These indexes contain file information, posing security risks if distributed improperly. To mitigate risks, segregate work and personal files, keep shared volumes clean, and protect sensitive data through encryption or exclusion from uncontrolled indexers.&lt;/p&gt;

&lt;p&gt;Metadata indexing and search are essential for managing vast data but require awareness of potential risks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security Risks of Metadata
&lt;/h2&gt;

&lt;p&gt;Metadata can inadvertently leak sensitive information. Embedded metadata, though useful, may contain confidential data like geolocation information or internal tags not meant for others. Therefore, it's crucial to remove or strip such sensitive metadata before sharing files beyond secure boundaries.&lt;/p&gt;

&lt;p&gt;Additionally, metadata can be deliberately falsified or simply inaccurate, making it untrustworthy for critical decisions. File system metadata introduces risks, such as potential information loss or exposure. Copying files with access control lists (ACLs) to a system lacking ACL support can lead to security controls not being applied, jeopardizing file security. Unauthorized users might gain access, and authorized users could unintentionally modify or delete protected files. System warnings about metadata not being copied to a destination are not always guaranteed, necessitating vigilance and double-checking.&lt;/p&gt;

&lt;p&gt;Failure to handle metadata carefully can result in unintended information loss, especially when using file copying tools or performing digital housekeeping. Categories, notes, and other metadata-stored details could be unintentionally removed. Overlooking metadata-related characteristics, like hidden folders, can lead to troubleshooting headaches.&lt;/p&gt;

&lt;p&gt;In conclusion, treating metadata with the same seriousness as the data it describes is essential. Metadata can be easily overlooked, but its importance in maintaining data integrity and security should not be underestimated.&lt;/p&gt;

</description>
      <category>security</category>
      <category>metadata</category>
      <category>data</category>
    </item>
    <item>
      <title>Mastering Readme Files</title>
      <dc:creator>Ted Sá</dc:creator>
      <pubDate>Mon, 29 May 2023 14:19:31 +0000</pubDate>
      <link>https://dev.to/unnotedme/mastering-readme-files-1dmg</link>
      <guid>https://dev.to/unnotedme/mastering-readme-files-1dmg</guid>
      <description>&lt;h4&gt;
  
  
  📌 The Readme is a guide that contemplates the main purpose of your project, technologies used, some how-to's (such as how to install and how to use it), the license, and how others can contribute.
&lt;/h4&gt;

&lt;p&gt;Readme files have the  &lt;code&gt;.md&lt;/code&gt;  extensions, so it means they need to be using the Markdown standards. It's easy to learn and you can use  &lt;a href="https://stackedit.io/" rel="noopener noreferrer"&gt;this editor&lt;/a&gt;  to write your file more easily.&lt;/p&gt;

&lt;p&gt;Your file needs to be easily readable and organized in a way that you, and others, can understand and use as a resource while developing, testing and using your project. Use titles and sub-titles, divide it into sections and make it structural. Write short paragraphs, use bullet lists and highlight important content using  &lt;strong&gt;bold&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Remember, your project's Readme is the first impression someone will have of your project, and you don't want it to be sloppy and badly written. So let's check the best way to create your Readme file!&lt;/p&gt;

&lt;h2&gt;
  
  
  What does your README needs?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Name
&lt;/h3&gt;

&lt;p&gt;This is the name of the project. It can be the name you are giving to your product or what type of project it is.&lt;/p&gt;

&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;Here you are going to add what your project does and what are you planning to add to it. Write shortly about what technologies you used and how you used them. This part is a summary of all you worked on, be brief once you will get into more details on the rest of your Readme document.&lt;/p&gt;

&lt;h3&gt;
  
  
  Table of Contents
&lt;/h3&gt;

&lt;p&gt;This is more to make everything more organized. The more you write, the harder is to find information. Create your table of contents and separate your sections in it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Technologies
&lt;/h3&gt;

&lt;p&gt;It's time to add everything you used in your application: languages, libraries, APIs and more. Did you use it? You name it! This will help you and future contributors to keep track of everything used to build the project. Also, is a great way of sharing great tools with new learners.&lt;/p&gt;

&lt;h3&gt;
  
  
  Install and Run
&lt;/h3&gt;

&lt;p&gt;Here you will explain, step by step, how to install and run the development environment. Add the code, if necessary, and explain how to do it for the different types of operation systems, if needed.&lt;/p&gt;

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

&lt;p&gt;Hopefully, you developed the project thinking about your end-users needs. Now it's time for you to explain to them how to use it. I know you think your app is all intuitive, but it is great to make sure the end-user knows how to use the projects and all the features that might help them. You can do a small tutorial, a walkthrough or even, use bullet points with all the application functionalities.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frix5nzptp2epdrd51xg8.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frix5nzptp2epdrd51xg8.jpeg" alt="In text, above the image: Optimistic developer: "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Contributing
&lt;/h3&gt;

&lt;p&gt;If your project is open-source, you can add this section to show how other developers, testers, designers and users can contribute to it.&lt;/p&gt;

&lt;p&gt;Add the how-tos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  How to report a bug?&lt;/li&gt;
&lt;li&gt;  How to make a pull request (PR)?&lt;/li&gt;
&lt;li&gt;  How to get support?&lt;/li&gt;
&lt;li&gt;  How to make a donation? (If you want to let people make donations for it.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And also add some guides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Coding Style Guide&lt;/li&gt;
&lt;li&gt;  Styling Guide&lt;/li&gt;
&lt;li&gt;  Code of Conduct&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This part can be a bit bigger than the others and you might want to separate it into different files.&lt;/p&gt;

&lt;h3&gt;
  
  
  Acknowledgments
&lt;/h3&gt;

&lt;p&gt;Add what inspired you to create the project (other repos, YouTubers, books, etc), what resources you used (documentation, websites, courses, etc) and who helped you build this project. I also suggest you tell a bit about yourself, once you developed the project and deserve the credit!&lt;/p&gt;

&lt;h3&gt;
  
  
  License
&lt;/h3&gt;

&lt;p&gt;Developers often forget about it, but adding a license is key to make sure it will show other developers the limits of the use of your software. To do so, you should add a file to your project called  &lt;code&gt;LICENSE.md&lt;/code&gt;  or just  &lt;code&gt;LICENSE&lt;/code&gt;, where you will add the full copy of the license, with your name and year in it.&lt;/p&gt;

&lt;p&gt;For the Readme file, just link the license under the license section.&lt;/p&gt;

&lt;h2&gt;
  
  
  Extras
&lt;/h2&gt;

&lt;p&gt;These are extra things you can add to your  &lt;code&gt;README.md&lt;/code&gt;  file to make it look more complete. They are just a recommendation and you can do it if you want (most of it is just to make it look more aesthetically pleasing).&lt;/p&gt;

&lt;h3&gt;
  
  
  Images
&lt;/h3&gt;

&lt;p&gt;This will help your Readme feel less like a bunch of text. These are some ideas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Add your project logo right next to your project name.&lt;/li&gt;
&lt;li&gt;  Add screenshots of your application in the usage section to demonstrate to the end user how your app works.&lt;/li&gt;
&lt;li&gt;  Add a photo of yourself on the credits so people can identify you more easily (or an avatar that represents you - I do most of mine on the  &lt;a href="https://picrew.me/en" rel="noopener noreferrer"&gt;Picrew&lt;/a&gt;  website).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Status Badges
&lt;/h3&gt;

&lt;p&gt;I'm not a big fan of this one but you can add status badges on your Readme using the  &lt;a href="https://github.com/badges/shields" rel="noopener noreferrer"&gt;badges/shields&lt;/a&gt;  repo. This will illustrate, in a simplified way, your project status.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frx7xreen3eg6cfdufwvl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frx7xreen3eg6cfdufwvl.png" alt="Different colourful badges"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Emojis
&lt;/h3&gt;

&lt;p&gt;I am a big fan of using emojis in your Readme file. They help it become more visual and easy to read (and it looks cool 😎). Make sure you add emojis that make sense to the subject and do not overload your file like I do sometimes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Examples
&lt;/h2&gt;

&lt;p&gt;Here is a repo list of great Readme files for you to get inspired:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/matiassingers/awesome-readme" rel="noopener noreferrer"&gt;https://github.com/matiassingers/awesome-readme&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And if you are lazy and want something ready to go, I made &lt;a href="https://github.com/unnotedme/mastering-readme" rel="noopener noreferrer"&gt;this Readme&lt;/a&gt; file for you to copy and edit to your necessities. If you liked it, don't forget to give it a star!&lt;/p&gt;

</description>
      <category>readme</category>
      <category>documentation</category>
      <category>project</category>
      <category>git</category>
    </item>
    <item>
      <title>SEO Introduction</title>
      <dc:creator>Ted Sá</dc:creator>
      <pubDate>Fri, 28 Apr 2023 13:51:33 +0000</pubDate>
      <link>https://dev.to/unnotedme/seo-introduction-23eo</link>
      <guid>https://dev.to/unnotedme/seo-introduction-23eo</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AMpAGfAq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/654sg936yexx49oipqvi.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AMpAGfAq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/654sg936yexx49oipqvi.jpg" alt='A design of a website where on the middle is written "SEO Introduction" on the bottom is written "by Ted Sá" and on the upper right side is written "Understanding SEO #1". It is a very colourful design.' width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  SEO Introduction
&lt;/h1&gt;

&lt;p&gt;SEO stands for “search engine optimization”. It is the practice of increasing both the quality of website traffic, as well as exposure to your brand, through organic search engine results.&lt;/p&gt;

&lt;h3&gt;
  
  
  White Hat X Black Hat
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;White Hat SEO: stands for the SEO best practices, techniques and strategies that follow engine rules, focusing on providing more value to people.&lt;/li&gt;
&lt;li&gt;Black Hat SEO: stands for techniques and strategies that attempt to spam/fool search engines. Using it causes a high risk of being penalized.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  On-page X Off-page
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;On-page SEO: refers to optimizing the content on the page such as URLs, body content and headers for usability and relevance to a search query the target is most likely to use.&lt;/li&gt;
&lt;li&gt;Off-page SEO: refers to optimizing factors outside of a website to improve its search engine rankings such as building backlinks and establishing social media presence.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eMRV6MUP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vbbmd5l4d5i81q231hvd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eMRV6MUP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vbbmd5l4d5i81q231hvd.jpg" alt="A pair of webpages with a magnifying glass in the middle. On the webpages are the differences between On-page and Off-page." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Google Algorithms &amp;amp; Ranking
&lt;/h2&gt;

&lt;p&gt;More than 90% of all search queries in the world are handled by Google. That’s why, when talking about SEO, we focus on optimizing and performance for Google since you will be reaching more people in it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ranking Process
&lt;/h3&gt;

&lt;p&gt;Here is the broken-down process:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Crawling: the search engine uses “spider crawlers”, a bot, to scour the web for new or updated content.&lt;/li&gt;
&lt;li&gt;Indexing: when the content is found, the spider crawlers add a copy of the new information into the search engine’s database.&lt;/li&gt;
&lt;li&gt;Ranking: the index is fed through the algorithm to match the best set of data within their database with the search query made by the user.&lt;/li&gt;
&lt;li&gt;Result: the data set is presented to the user in the form of a search engine results page.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1WRATu0T--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/srgycob6vw8p3p3jywon.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1WRATu0T--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/srgycob6vw8p3p3jywon.jpg" alt="A timeline of how the ranking process works." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Ranking Factors
&lt;/h3&gt;

&lt;p&gt;Here are the most important factors for ranking:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Backlinks: the more authoritative sites that link back to a particular web page, the higher that page will rank.&lt;/li&gt;
&lt;li&gt;Relevant copy: your website should contain content that is relevant, related and useful to your audience.&lt;/li&gt;
&lt;li&gt;HTML tags: using the correct tags to build the structure of your website are a great way to improve the ranking. Also using alt tags to describe images can help the Google Image’s engine.&lt;/li&gt;
&lt;li&gt;Core Web Vitals: building a website with fast loads and a lot of stability helps to improve the user experience of their searches, giving it a better ranking.&lt;/li&gt;
&lt;li&gt;User behaviour: even though is not confirmed by Google, many SEO specialists believe that how long the user spends on your website affects the ranking.&lt;/li&gt;
&lt;li&gt;Mobile Optimization: Google judges equally mobile versions and desktop versions, this means that it is important for your website to be responsive.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Algorithms factors
&lt;/h3&gt;

&lt;p&gt;Google’s algorithm has a set of rules to determine now results should be presented to users. Some of its rules are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Meaning of your query: to return relevant results, the search engine looks at the meaning behind the user’s query.&lt;/li&gt;
&lt;li&gt;Relevance: when the website contains the same keywords as the user’s search, it would help to show the it more frequently to the users.&lt;/li&gt;
&lt;li&gt;Quality of content: it favours the most reliable (expertise, authoritativeness, and trustworthiness) information available.&lt;/li&gt;
&lt;li&gt;Usability: a high usability scores means the site will appear more frequently to users.&lt;/li&gt;
&lt;li&gt;Context and settings: the search results might change because of related to your past history search, search settings and location.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Optimizing for E-A-T
&lt;/h3&gt;

&lt;p&gt;Keeping the content up to date, building more high-quality inbound links, making sure the content is factually accurate and written by experts are good ways of building a good SEO. That is one of the examples on optimizing your website using E-A-T:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Expertise: this means that the content created was written by someone that has expertise on the topic.&lt;/li&gt;
&lt;li&gt;Authoritative: this means the content created have a author in the background that is known, that has some brand recognition.&lt;/li&gt;
&lt;li&gt;Trustworthy: this means users can trust the website for real and factual informations.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>seo</category>
      <category>frontend</category>
      <category>searchengine</category>
      <category>marketing</category>
    </item>
    <item>
      <title>A is for Algorithms</title>
      <dc:creator>Ted Sá</dc:creator>
      <pubDate>Fri, 10 Feb 2023 22:00:33 +0000</pubDate>
      <link>https://dev.to/unnotedme/a-is-for-algorithms-33n0</link>
      <guid>https://dev.to/unnotedme/a-is-for-algorithms-33n0</guid>
      <description>&lt;p&gt;Algorithm is a set of steps to solve a problem. It can be implemented in activities such as crossing the street and it is divided into steps, for example:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Start the process.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make sure you are standing up in front of the crosswalk.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wait till the sign turns red.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make sure all the cars stopped.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Look both ways.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Start walking.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Get to the other side of the street.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Terminate the process.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That’s an algorithm! It may not be exactly written in a programming language, but it is still an algorithm and it shows some important concepts of it:&lt;/p&gt;

&lt;p&gt;-- Start/Terminate: All algorithms have a start and a terminate step. An algorithm can run repeatedly but it needs a start and end. It takes at least one input at the start and it always terminates with at least one output, making it finite.&lt;/p&gt;

&lt;p&gt;-- Clear: The instructions are easy to understand and follow, and it is descriptive, basic and simple.&lt;/p&gt;

&lt;p&gt;-- Language Independent: The output is the same, even if you translate the instructions to other languages (this applies to programming languages too).&lt;/p&gt;

&lt;p&gt;Understanding algorithms help us to understand better our code. What are the steps needed to make our code function? How it can be improved?&lt;/p&gt;

&lt;p&gt;Here is an algorithm example of finding out if a number is even or odd:&lt;/p&gt;

&lt;h4&gt;
  
  
  In English:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Start&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ask for a number&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Hear the answer&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Divide the number that you just heard by two&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If the number has no remainder after the equation, then the number is even&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If the number has remainder after the equation, then the number is odd&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;End&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  In Java:
&lt;/h4&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import java.util.Scanner;
public class JavaExample
{
    public static void main(String args[])
    {
        int num;
        System.out.print("Enter an Integer number: ");
        Scanner input = new Scanner(System.in);
        num = input.nextInt();
        if ( num % 2 == 0 )
            System.out.println(num+" is an even number.");
        else
            System.out.println(num+" is an odd number.");
    }
} 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Algorithms can also be divided on different types such as recursive, brute force, backtracking, searching, sorting, hashing, divide and conquer, greedy, dynamic programming and randomined.&lt;/p&gt;

&lt;p&gt;Personally, I like to think about the algorithm of the code on English and write it down on VSCode as comments, making it a pseudo-code. From there, I start designing my code.&lt;/p&gt;

</description>
      <category>algorithms</category>
      <category>basics</category>
      <category>concepts</category>
      <category>abcdev</category>
    </item>
    <item>
      <title>Programming Links</title>
      <dc:creator>Ted Sá</dc:creator>
      <pubDate>Thu, 23 Jun 2022 15:48:54 +0000</pubDate>
      <link>https://dev.to/unnotedme/programming-links-395d</link>
      <guid>https://dev.to/unnotedme/programming-links-395d</guid>
      <description>&lt;p&gt;These are my daily used links to study, practice and build projects. This list will get updated as soon as I get new links, but you can also contribute by adding those you know creating a &lt;a href="https://github.com/unnotedme/programming-links"&gt;Pull Request&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Musts
&lt;/h2&gt;

&lt;p&gt;GitHub - software development and version control using Git&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/"&gt;https://github.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitLab - software development and version control using Git&lt;/p&gt;

&lt;p&gt;&lt;a href="https://about.gitlab.com/"&gt;https://about.gitlab.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dev.to - sharing and reading programming-related articles&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/"&gt;https://dev.to/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stack Overflow - get help with your questions&lt;/p&gt;

&lt;p&gt;&lt;a href="https://stackoverflow.com/"&gt;https://stackoverflow.com/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Documentations &amp;amp; Exercises
&lt;/h2&gt;

&lt;p&gt;W3Schools - exercises and documentation of different programming languages&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.w3schools.com/"&gt;https://www.w3schools.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;DevDocs - open-source documentation of different programming languages&lt;/p&gt;

&lt;p&gt;&lt;a href="https://devdocs.io/"&gt;https://devdocs.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Exercism - exercises in different programming languages&lt;/p&gt;

&lt;p&gt;&lt;a href="https://exercism.org/"&gt;https://exercism.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Programiz - exercises and documentation of different programming languages&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.programiz.com/"&gt;https://www.programiz.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CS50X - entire Harvard computer programming course (paid certification)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.edx.org/course/introduction-computer-science-harvardx-cs50x"&gt;https://www.edx.org/course/introduction-computer-science-harvardx-cs50x&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CodeAcademy - exercises and documentation of different programming languages&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.codecademy.com/"&gt;https://www.codecademy.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;FreeCodeCamp - exercises and documentation of different programming languages&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.freecodecamp.org/"&gt;https://www.freecodecamp.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Khan Academy - exercises and documentation of different programming languages&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.khanacademy.org/"&gt;https://www.khanacademy.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Geeks for Geeks - exercises and documentation of different programming languages&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.geeksforgeeks.org/"&gt;www.geeksforgeeks.org&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools
&lt;/h2&gt;

&lt;p&gt;CodePad - online compiler&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codeinterview.io/"&gt;https://codeinterview.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Carbon - images of your code snippets&lt;/p&gt;

&lt;p&gt;&lt;a href="https://carbon.now.sh/"&gt;https://carbon.now.sh/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Google Fonts - open-source fonts&lt;/p&gt;

&lt;p&gt;&lt;a href="https://fonts.google.com/"&gt;https://fonts.google.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Can I Use - see exactly how well a feature is supported among different browsers&lt;/p&gt;

&lt;p&gt;&lt;a href="https://caniuse.com/"&gt;https://caniuse.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Brainboard - build cloud infrastructure&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.brainboard.co/"&gt;https://www.brainboard.co/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stackedit - markdown editor&lt;/p&gt;

&lt;p&gt;&lt;a href="https://stackedit.io/"&gt;https://stackedit.io/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Youtube Channels
&lt;/h2&gt;

&lt;p&gt;Web Dev Simplified - Web Development&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/c/WebDevSimplified"&gt;https://www.youtube.com/c/WebDevSimplified&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Code with Ania Kubów - JavaScript, Blockchain and Front End&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/c/AniaKub%C3%B3w"&gt;https://www.youtube.com/c/AniaKubów&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Rachel How - UX/UI and Front End&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.youtube.com/c/RachelHow"&gt;www.youtube.com/c/RachelHow&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fireship - Programming in general&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/c/Fireship"&gt;https://www.youtube.com/c/Fireship&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Alex Lee - Java&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/c/AlexLeeYT"&gt;https://www.youtube.com/c/AlexLeeYT&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ben Awad - Front End and Python&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/c/BenAwad97/about"&gt;https://www.youtube.com/c/BenAwad97&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Jonah Lawrence - Web Development&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/c/DevProTips"&gt;https://www.youtube.com/c/DevProTips&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sonny Sangha - Full Stack Development&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/c/SonnySangha"&gt;https://www.youtube.com/c/SonnySangha&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  If you have any new suggestions, please comment it.
&lt;/h5&gt;

</description>
      <category>programming</category>
      <category>study</category>
      <category>links</category>
      <category>practice</category>
    </item>
    <item>
      <title>PyQGis</title>
      <dc:creator>Ted Sá</dc:creator>
      <pubDate>Tue, 14 Jun 2022 18:14:57 +0000</pubDate>
      <link>https://dev.to/unnotedme/pyqgis-3bni</link>
      <guid>https://dev.to/unnotedme/pyqgis-3bni</guid>
      <description>&lt;h2&gt;
  
  
  About QGis
&lt;/h2&gt;

&lt;p&gt;QGis is an open-source and free software used for geographic information systems. It is used to create, edit, visualize, analyze and publish geospatial information into maps. It’s the most used software among geographers and it is the modern form of creating maps.&lt;/p&gt;

&lt;p&gt;The program is amazing, it has tons of functionalities and you can even add more with all the plugins available. On the latest 3.0.0 version, QGis added a Python console that helps the user to automate maps. With the creation of the Python console, with the &lt;strong&gt;qgis.utils.iface&lt;/strong&gt; variable, the world of possibilities inside the software was drastically changed, leading to the beginning of &lt;strong&gt;PyQGis&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Functionalities
&lt;/h2&gt;

&lt;p&gt;Some of PyQGis funcionalities are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Geocoding: the process of transforming place names or addresses into coordinates.&lt;/li&gt;
&lt;li&gt;  Reprojecting: different maps can use different projections; reprojecting is the process of matching those different layers into a common CRS (Coordinate Reference System).&lt;/li&gt;
&lt;li&gt;  Reading and converting data: using the Geopandas library, PyQGis is capable of reading and converting different formats such as Shapefile, GeoJSON, KML, and GPKG.&lt;/li&gt;
&lt;li&gt;  Add and remove layers: vector or raster, you choose, with simple expressions you can edit your layers.&lt;/li&gt;
&lt;li&gt;  Geometry conversion: transforming line to point, polygon to polyline, and vice versa.&lt;/li&gt;
&lt;li&gt;  Automating map layout: adding and editing scale bars, legends, map titles, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Work
&lt;/h2&gt;

&lt;p&gt;The Geography Information Systems field is very interesting and is in need of qualified workers. A GIS Engineer is a specialist in managing spatial databases, creating maps and developing urban projects. You may become one GIS Engineer if you come from a Geography or Computer Science major, some universities even have GIS-focused courses. For this type of job you need analytical skills and to be very focused on details.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learning Materials
&lt;/h2&gt;

&lt;p&gt;There are many ways to learn more about Geography Information Systems. Some universities have GIS courses as majors or minors and there are a lot of online materials to study independently. Here are some that I recommend:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Youtube:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/c/DrChrisGeoscience"&gt;&lt;/a&gt;&lt;a href="https://www.youtube.com/c/DrChrisGeoscience"&gt;https://www.youtube.com/c/DrChrisGeoscience&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://youtube.com/c/KatieScheurer"&gt;https://youtube.com/c/KatieScheurer&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Websites:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://autogis-site.readthedocs.io/en/latest/index.html"&gt;&lt;/a&gt;&lt;a href="https://autogis-site.readthedocs.io/en/latest/index.html"&gt;https://autogis-site.readthedocs.io/en/latest/index.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://anitagraser.com/pyqgis-101-introduction-to-qgis-python-programming-for-non-programmers/"&gt;&lt;/a&gt;&lt;a href="https://anitagraser.com/pyqgis-101-introduction-to-qgis-python-programming-for-non-programmers/"&gt;https://anitagraser.com/pyqgis-101-introduction-to-qgis-python-programming-for-non-programmers/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://courses.spatialthoughts.com/pyqgis-in-a-day.html"&gt;&lt;/a&gt;&lt;a href="https://courses.spatialthoughts.com/pyqgis-in-a-day.html"&gt;https://courses.spatialthoughts.com/pyqgis-in-a-day.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.geodose.com/p/pyqgis.html"&gt;&lt;/a&gt;&lt;a href="https://www.geodose.com/p/pyqgis.html"&gt;https://www.geodose.com/p/pyqgis.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>qgis</category>
      <category>pyqgis</category>
    </item>
    <item>
      <title>Hello, World!</title>
      <dc:creator>Ted Sá</dc:creator>
      <pubDate>Fri, 20 May 2022 13:28:44 +0000</pubDate>
      <link>https://dev.to/unnotedme/hello-world-31g3</link>
      <guid>https://dev.to/unnotedme/hello-world-31g3</guid>
      <description>&lt;p&gt;“Hello, World” is a very simple and fast program to test if your application is running and compiling. It is used by multiple students and is typically the first thing a new programmer learns in any language.&lt;/p&gt;

&lt;p&gt;On my first day at college, my teacher told us that not starting a new programming language study with a “Hello, World” statement gives us bad luck. I don’t believe in superstitions but I kept his advice anyway. The first thing I ever programmed was a Java print statement using “Hello, World” and since then, every time I learn a new language I remember his advice.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8m6DOwsd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://lh3.googleusercontent.com/x4svx9o7SLFbIq14sUztxqwIKKU3wD1Wa0HsJtWv0LAErwWJ2V7kXmwC-kTHEVbiCQ1xPPd62MeKc9moWnCHF1K2gBX-HcyxeeamqgQ7vyxC3_w8Rpq27WMRBPjlifAk4x4ENSBG51P31pS0hQ" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8m6DOwsd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://lh3.googleusercontent.com/x4svx9o7SLFbIq14sUztxqwIKKU3wD1Wa0HsJtWv0LAErwWJ2V7kXmwC-kTHEVbiCQ1xPPd62MeKc9moWnCHF1K2gBX-HcyxeeamqgQ7vyxC3_w8Rpq27WMRBPjlifAk4x4ENSBG51P31pS0hQ" alt='Java "Hello World" program inside a grey window, with a purple background.' width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From there on, I became very curious about the statement. I’m not trying to be philosophical but “Hello, World” could mean a lot of things.&lt;/p&gt;

&lt;p&gt;I always think about the “My Computer Likes Me When I Speak in BASIC” (1972) book, written by Bob Albrecht, where the example used in the print statement is the sentence “my human understands me”. It’s like the machine knows it is a machine, knows that we are not a machine and we are the ones who understand. It's not us that are trying to translate our language to the machine, but the machine is trying to make us understand their language. For the first time, I thought about the communication between man and machine (Warning: Yes, I might have seen Ex-Machina and Wall-E too many times). Isn’t “Hello, World!” a greeting from the machine? Are they communicating with us? And “I’m here, I now exist and you can communicate with me”? Ever since then, I kept thinking about it and now is the time I search about it.&lt;/p&gt;

&lt;p&gt;Historically, the “Hello, World” culture begins with Brian W. Kernighan’s book: A Tutorial to the Programming Language B (1972). (I didn't know that the Language B existed. Is there a whole alphabet of languages?) In the book, while illustrating external variables he uses, for the first time, the famous “Hello, World”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ifpjHnnP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://lh6.googleusercontent.com/pGMrrtotWmVEJxf7O2vTzKXpv2DxjMixR9jlPuRtLSG9-uIDQKg5n0CjnXjTQb-PWiAyP_OS65phm8qC09NcIkOOLQEUFRRfZx-7YtsEcByXEfsHcUduQsvMougXa1UVHVi0JmcgIulzIgIxbg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ifpjHnnP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://lh6.googleusercontent.com/pGMrrtotWmVEJxf7O2vTzKXpv2DxjMixR9jlPuRtLSG9-uIDQKg5n0CjnXjTQb-PWiAyP_OS65phm8qC09NcIkOOLQEUFRRfZx-7YtsEcByXEfsHcUduQsvMougXa1UVHVi0JmcgIulzIgIxbg" alt='B "Hello World" program inside a grey window, with a purple background.' width="800" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When asked about why he chose this simple statement he said he didn’t quite remember it: “What I do remember is that I had seen a cartoon that showed an egg and a chick and the chick was saying, “Hello, World.”. So, that’s it… I guess the philosophy behind it is all about a chick. No big metaphysical response. It had to be something big, no? Why do we keep using it? How did it become so popular? I had to keep searching for it.&lt;/p&gt;

&lt;p&gt;The thing is: Brian W. Kernighan was a friend and inspiration to Dennis M. Ritchie, the creator of C (and answering my question, there are a lot of programming languages with one letter in the name, but that may be a subject for another article). At the time, they were both working on AT&amp;amp;T and wrote the “The C Programming Language” (1978) book together. In it, they kept the “Hello, World” statement:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jLEkvFvp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://lh3.googleusercontent.com/u_YW9CCjhSgiAwrs2xMBGXJcptYN_yuSLllDw52LG6UVL27K9_MXiwN8o9D0DyrK-TfWn1EcvUV5m6O3Lk0k8kYrXQwjcLCCKKA-RS6MBGh6G7_q22xjcUl--NLEU3Wem1zPcYgM2igpXiNffw" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jLEkvFvp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://lh3.googleusercontent.com/u_YW9CCjhSgiAwrs2xMBGXJcptYN_yuSLllDw52LG6UVL27K9_MXiwN8o9D0DyrK-TfWn1EcvUV5m6O3Lk0k8kYrXQwjcLCCKKA-RS6MBGh6G7_q22xjcUl--NLEU3Wem1zPcYgM2igpXiNffw" alt='C "Hello World" program inside a grey window, with a purple background.' width="766" height="612"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It was the second appearance of “Hello, World” and since then, it has become a popular program to use as the first example of any language, appearing in almost every book and tutorial, making it a tradition in Computer Science.&lt;/p&gt;

&lt;p&gt;Maybe, "Hello, World" it's just a welcoming way of starting a new journey into knowledge!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>computerscience</category>
      <category>history</category>
      <category>c</category>
    </item>
    <item>
      <title>Making your form more inclusive</title>
      <dc:creator>Ted Sá</dc:creator>
      <pubDate>Fri, 06 May 2022 17:06:15 +0000</pubDate>
      <link>https://dev.to/unnotedme/making-your-form-more-inclusive-2imf</link>
      <guid>https://dev.to/unnotedme/making-your-form-more-inclusive-2imf</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;This is an article about accessibility, diversity, and inclusion.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Form
&lt;/h1&gt;

&lt;p&gt;The form is used to collect users’ data inside and outside the web. We use the form in HTML to get input from the user, which will later be sent to a server for processing. This element may contain text, radio buttons, checkboxes, and much more.&lt;/p&gt;

&lt;p&gt;It’s commonly used to get clients registered into a customer system, data collection in research, and log in/registration on websites.&lt;/p&gt;

&lt;p&gt;But how can I make it more accessible and inclusive?&lt;/p&gt;

&lt;h1&gt;
  
  
  Accessibility
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Labels and placeholder
&lt;/h3&gt;

&lt;p&gt;Using the combination of labels and placeholder throughout your form helps guide users as they interact with the document.&lt;/p&gt;

&lt;p&gt;It is important to know what to write on the  and  tags while writing your HTML code. The labels are used to tell the user what information belongs in a given field and are supposed to be located outside the input field. Placeholders are located inside the input field and add a description, hint, or even an example of what type of information is supposed to be written on the field.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Femzp1ecmwjqwjscvdcxb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Femzp1ecmwjqwjscvdcxb.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Colour contrast
&lt;/h3&gt;

&lt;p&gt;Colour contrast is important for making sure that everyone (including people with disabilities) can read your form. This means that the background, texts, and images should have enough colour contrast so that people can perceive them as intended.&lt;/p&gt;

&lt;p&gt;On web pages, you can use &lt;a href="https://chrome.google.com/webstore/detail/lighthouse/blipmdconlkpinefehnmjammfjpmpbjk?hl=en" rel="noopener noreferrer"&gt;Lighthouse&lt;/a&gt; to check if your form is contrasted enough.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkjho8cyzcnb3defbdaer.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkjho8cyzcnb3defbdaer.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6bjfodz4atbpeu2lx1b4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6bjfodz4atbpeu2lx1b4.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Validation
&lt;/h3&gt;

&lt;p&gt;It’s important to make validations on the data the user has provided and information about the user’s mistakes and how to correct them. This makes sure that the data is clean, correct, and useful. You should always make sure that your form has all the required fields filled, that the data is valid and the type of input is correct.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmkshas09967u6kfdf03r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmkshas09967u6kfdf03r.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Line alignment
&lt;/h3&gt;

&lt;p&gt;For paragraphs, the left-aligned text is simpler to read than the centered text. This is because when you center your text, the beginning of each line shifts. This makes your users work harder to figure out where each line starts so they can keep reading. There is no consistent area for users to move their gaze to after they finish each line, without a standard indentation.&lt;/p&gt;

&lt;p&gt;This is very helpful to people with disabilities such as ADHD and Dyslexia.&lt;/p&gt;

&lt;p&gt;Centering text is great for titles and subtitles, but for larger texts, aligning to the left is ideal.&lt;/p&gt;

&lt;p&gt;The major exception is when you are working with people who use the right to left scripts in their languages (such as Arabic, Aramaic, Hebrew, Persian, Japanese, etc). In this case, you should use right-aligned text.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvx8ewrk5s7y2ac500y0r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvx8ewrk5s7y2ac500y0r.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg97uvbmjwto4z2gynng6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg97uvbmjwto4z2gynng6.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Inclusion
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Preferred name
&lt;/h3&gt;

&lt;p&gt;Preferred (or chosen) name is a different first name than the one legally used by someone. Many people have a preferred name and your form should respect and include it. There are different reasons why someone can have a chosen name: it could be related to a reflection of their gender identity, adequation to a different culture or just to distinguish oneself from someone with the same or similar given name.&lt;/p&gt;

&lt;p&gt;In your form, you can simply add a “preferred name” field after the “first name” and “last name” fields. Whenever the user sees their name on your website, research, etc., the name shown should always be their preferred name.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsgf3kuvpyk8gwbd8682j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsgf3kuvpyk8gwbd8682j.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Race
&lt;/h3&gt;

&lt;p&gt;Race is a category based on the biological, physical, and social traits of a certain group of people. It varies widely depending on where your public is from. In the United States, the most common categories are White, Black, Asian, Native American, and Latino. In Brazil, for example, the scenario is pretty different: White, Black, Asian, Mixed (Pardo), Indigenous.&lt;/p&gt;

&lt;p&gt;For this reason, when making your form, research race in your target audience’s country. A good thing to do is to always add the “Other” category with the option for the user to complete it. Don’t forget to add an option for those who would “Rather not say”, too.&lt;/p&gt;

&lt;p&gt;In this way, you can make your form more diverse and inclusive.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flc85ic846aa52h2zcnpj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flc85ic846aa52h2zcnpj.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Gender
&lt;/h3&gt;

&lt;p&gt;Gender identity is how someone identifies themself internally and how they express this externally.&lt;/p&gt;

&lt;p&gt;When needed to include the option of gender identity of the user, try to be inclusive and add more than “female” and “male” to it. Binary? Only in computers! Be inclusive and put at least four options: Male, Female, Other (such as Non-Binary), and Rather not say. You can add a “(please state)” after the “other” option so users can identify their gender identity themselves, a simple text input where the user can write in their choice.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs8qoog91i39o622ohmpi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs8qoog91i39o622ohmpi.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

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