teleren/devto huggingface dataset:
Using maps instead of objects
Published: 2023-02-26 04:42:28

```
const nums = {
  1: 1,
  true: true
};

// const map1 = new Map([
//   [1, 1],
//   [true, true]  
// ]);

// map1.set('key', 'value');

// map1.forEach((value, key) => {
//   console.log(key, value);  
// });

const user1 = { name: "john" }
const user2 = { name: "mary" }

const secretKey1 = "asldjfalskdjf";
const secretKey2 = "alksdjfakjsdf";

const secretKeyMap = new WeakMap([
  [user1, secretKey1],
  [user2, secretKey2]  
]);

const key = secretKeyMap.get(user1);
console.log(key);

const user = {
  name: "john",
  verified: true  
};

const userMap = new Map([
  ["name", "john"],
  ["verified", true]  
]);

console.log(userMap.size);
```
Be more organized
Tags: webdev, programming
Published: 2023-02-26 04:40:26

While working with the [project](https://github.com/DevelopingSpace/starchart), I realized how unorganized I was.
My components are all over the place in the directory, and the logic are all at random location.
I never realized this as much when I do my coding, but as I was reading reviews for my pr, it was pointed out to me
by the owner of the repo.


### If it works, don't bother ###

I have formed a habit; if the code works as intended, and there are no ongoing issues nor bugs, that it's a "good" code.
However, that is far from the truth... a code might work right now, but it doesn't make it good. I tend to forget that technology grows, and so will any project I make that are user oriented. 
Especially, when this repo is open source, and many contributors will be wanting to try their hands on it. When they want to fix a bug that may occur in the future, or some that I have overlooked during the development process; they won't be able to, or they will have a hard time just trying to understand.

### Consider the area ###


Throughout the review process of my previous [PR](https://github.com/DevelopingSpace/starchart/pull/232). The owner of the repo was  providing me with insights in regards to fixing my habits. 

1. When all logic are spread across multiple components. Never add logic to all of them, only do so towards the parent components, and pass the output as a props that can be used by the child.
2. If the code looks long, read through it all over again and see if you are able to split the code into smaller components. It might require for you to create more files, but if you group them all together it won't be an issue (sometimes quantity can lead to better readability). Of course, it doesn't mean that you should always have multiple files. However, just like how I was taught from my previous courses, if you have to repeat a logic, it's best to write a function to condense it, which in my case a bunch of components.

### Learning Experience ###

This week has been more insightful than my previous week working on this project. I realized how to ensure that future developers and peers alike can access through my code without any issues. I also started to get better at handling conflicts with my PR.
SQL FOR DATA ANALYSIS
Published: 2023-02-26 04:33:55

SQL is a database query language. It provides the  ability to interact with multiple databases at concurrently. It is one of the most commonly used and flexible languages, as it combines a surprisingly accessible learning curve with a complex depth that lets users create advanced tools and dashboards for data analytics.

It has adapted into a variety of proprietary tools in order to be able to create and interact with databases quickly. Each tool has its own focus. The tools include Microsoft access, MySQL and PostgreSQL. they all have their own independent niche in the market.

Reasons exist behind the widespread use of SQL in  everyday tech activities. They include:

1. It can create and interact with database quickly
2. It is simple
3. It can perform complex functions
4. Easily interacts with excel and programming language libraries

## **How SQL is used**
Perhaps the most popular use for SQL today (in all its varieties) is as a base infrastructure to build its and easy-to-use dashboards along with reporting tools, or what is called SQL for data analytics. Because it is so easy to communicate complex instructions to databases and manipulate data in seconds, SQL makes intuitive dashboards that can display data in a variety of ways. Moreover, SQL is an excellent tool to build data warehouses thanks to easy accessibility, clear organization, and ability to interact effectively.

Another way many use SQL data analytics is by integrating them directly into other frameworks, offering additional functionality and communication abilities without having to build entire structures from scratch. Indeed, SQL analytics can be used within languages like Python, Scala, and Hadoop, three of the most popular currently in use for data science along with big data management and manipulation.

The ability to interact directly with databases built in these languages means that SQL can be used as an intermediary between end-users and a more complex data storage system that would be more accessible by experts and data scientists.
What is Cloud.gov and How Does it Work?
Tags: cloud, cloudnative, tutorial
Published: 2023-02-26 04:02:03

[Cloud.gov](https://cloud.gov) is a Platform as a Service (PaaS) solution built on Amazon Web Services (AWS). It provides a secure, compliant, and cost-effective cloud platform designed to meet government agencies' unique needs. In this article, we'll dive into the details of what cloud.gov is and how it works.

## Features of Cloud.gov

Cloud.gov offers several features that make it easy for developers to deploy and manage their applications. Some of these features include:

- **_Pre-configured services:_** Cloud.gov provides pre-configured services like databases, elasticsearch, and caching layers that developers can use to build and deploy their applications quickly and easily.

- **_Compliance:_** Cloud.gov complies with several government regulations and security standards, such as the Federal Risk and Authorization Management Program (FedRAMP) and the Health Insurance Portability and Accountability Act (HIPAA). This means that government agencies can confidently use cloud.gov to host sensitive data and applications.

- **_Ease of deployment:_** Developers can use a command-line interface (CLI) to deploy their applications with a single command, making deployment quick and easy.

- **_Monitoring and logging tools:_** Cloud.gov offers built-in monitoring and logging tools that allow developers to gain insights into their application's performance.

## Benefits of Cloud.gov

Cloud.gov offers a number of benefits for government agencies, including:

- **_Cost savings:_** Because it is a shared platform, agencies can save money by avoiding the need to purchase and maintain their infrastructure.
- **_Agility and responsiveness:_** Cloud.gov allows agencies to be more agile and responsive, as they can quickly deploy new applications and services in response to changing needs.

## Cloud Foundry on Cloud.gov

Cloud.gov is built on top of Cloud Foundry, an open-source PaaS solution. Cloud Foundry provides a consistent and portable development environment that allows developers to write applications once and deploy them to any Cloud Foundry-compatible platform, including cloud.gov.

Cloud Foundry offers several benefits for developers, including:

- **_Developer productivity:_** Cloud Foundry provides a streamlined development workflow that makes it easy for developers to build, test, and deploy their applications.
- **_Portability:_** Because Cloud Foundry provides a consistent development environment, developers can write applications once and deploy them to any Cloud Foundry-compatible platform without worrying about the underlying infrastructure.
- **_Scalability:_** Cloud Foundry is designed to scale horizontally, meaning developers can add resources to their applications to handle increased traffic and load.

By leveraging Cloud Foundry on cloud.gov, government agencies can build, deploy, and operate modern web applications securely and efficiently.
Mastering Conventional Commits: A Guide to Consistent and Clear Commit Messages
Tags: git, github, vscode, flutter
Published: 2023-02-26 03:45:25

Let's say you're a software development team working on a codebase. Clear and consistent commit messages are essential to keep track of changes over time. However, maintaining a standardized format for commit messages can be challenging when multiple developers are involved. Without a consistent standard, it can be harder to understand the context and impact of each change. That's where Conventional Commits come in. They provide a naming convention that makes it easier to understand the changes made and their purpose. In this post, we'll explore what Conventional Commits are, why they matter, and how to use them in your development workflow.

Conventional Commits is a commit message naming convention that focuses on providing a consistent standard for commits in a source code repository. The goal is to make it easier to read and interpret changes made to a project, helping understand what was changed and the impact of those changes.

The convention follows a specific pattern of message prefixes that indicate the nature of the change and its intention. The prefix is followed by a descriptive text that details the change made.

##The most common prefixes are:

`feat`: a new feature or significant improvement was added
`fix`: a problem was fixed
`docs`: changes were made to the project documentation
`style`: changes were made to code formatting without changing its function
`refactor`: the code was refactored without adding or removing functionality
`test`: tests were added or modified
`chore`: changes to files or settings that do not affect the code itself (e.g. updating dependencies)

By following this convention, it is possible to use automated tools to generate change logs, version histories, and even to perform automated deployment actions in production environments, for example.

In summary, the use of Conventional Commits is a best practice for maintaining organization and clarity in the change history of a software project, making communication between development team members and external contributors easier.
[Conceito] - O que Caracteriza a Fluência numa Linguagem de Programação
Published: 2023-02-26 03:40:03

> Conteúdo original em https://twitter.com/zanfranceschi/status/1629686843930472455

---

Achei boa demais essa pergunta que me fizeram no Curiouscat ─ obrigado a quem a fez!

"O que caracteriza a fluência em uma linguagem de programação?"

cc @sseraphini

↓

![Image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bpb9m1ssqiigntjp7ghf.png)

---

Respondendo sinteticamente, acredito que a fluência numa linguagem de programação pode ser caracterizada quando o dispêndio da energia cognitiva com sua sintaxe for baixíssimo ─ análogo ao esforço que temos quando falamos em nossa língua mãe no dia a dia.

---

Acho importante mencionar que fluência numa linguagem de programação não necessariamente significa qualidade de código, lógica, etc., assim como a fluência num idioma não se traduz em qualidade de comunicação. Claro, linguagens de programação não são ambíguas ─ difícil comparar.

---

Indo ainda mais fundo, existe a fluência em domínios específicos. Se você está lendo isso, você fala português, mas se um médico começar a falar sobre seus estudos, provavelmente você vai entender quase nada e isso acontece com código também.

---

Você pode ser fluente em aplicações web, bibliotecas, frameworks, networking, segurança, etc. ─ mais ou menos em uns e outros espaços de problemas.

---

No final, acredito que a fluência numa linguagem de programação seja algo subjetivo de se caracterizar. Tem a ver com fluidez.

É isso ─ essa é a minha opinião. Qual é a sua?
𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 - 𝗗𝗮𝘁𝗮𝗧𝘆𝗽𝗲𝘀 𝗮𝗻𝗱 𝗗𝗮𝘁𝗮 𝗦𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗲
Tags: productivity, javascript, programming, node
Published: 2023-02-26 03:13:08

𝐏𝐫𝐢𝐦𝐢𝐭𝐢𝐯𝐞 :
- undefined
- null
- boolean
- Number
- BigInt
- String
- symbol 

𝐍𝐨𝐧-𝐩𝐫𝐢𝐦𝐢𝐭𝐢𝐯𝐞 :
- Object & Array

𝐃𝐚𝐭𝐚 𝐒𝐭𝐫𝐮𝐜𝐭𝐮𝐫𝐞 :
- Array
- Map/Weak map
- Set/Week set
- Date
- typeOf operator

𝐁𝐚𝐬𝐢𝐜𝐬 :
- What is ECMA Script
- About it's versions
- Static and dynamic language
- Get familiar about the places where JS is using

𝐑𝐮𝐧𝐧𝐢𝐧𝐠 𝐉𝐚𝐯𝐚𝐒𝐜𝐫𝐢𝐩𝐭 :
- Script tag
- Link external file
- Browser console

𝐕𝐚𝐫𝐢𝐚𝐛𝐥𝐞𝐬 :
- var
- let
- const
- scope (global, function, block)
- How lexical scope works
- Hoisting
- Temporal Dead Zone

𝐋𝐨𝐨𝐩𝐬 :
- for
- while
- do...while
- break/continue
- for...in
- for...of

𝐎𝐩𝐞𝐫𝐚𝐭𝐨𝐫𝐬 :
- Assignment
- Arithmetic
- Logical
- Conditional
- Comparison
- Relational
- Bitwise
- String
- Comma
- Unary

𝐓𝐲𝐩𝐞 𝐂𝐨𝐧𝐯𝐞𝐫𝐬𝐢𝐨𝐧 :
- Explicit Conversion
- Implicit Conversion
- == & == (Equality)

𝐂𝐨𝐧𝐭𝐫𝐨𝐥 𝐅𝐥𝐨𝐰 :
- if...else
- switch
- Ternary Operators

𝐛𝐮𝐢𝐥𝐭-𝐢𝐧 𝐦𝐞𝐭𝐡𝐨𝐝𝐬 :
- string methods
- array methods

𝐏𝐫𝐨𝐭𝐨𝐭𝐲𝐩𝐞 :
- What is prototype in JS?
- Prototype Chain.
- Prototypes and inheritance.
- Class (Advanced)
- Iterators (Advanced)
- Generators (Advanced)
- Event Loop (Advanced)

𝐀𝐬𝐲𝐧𝐜𝐡𝐫𝐨𝐧𝐨𝐮𝐬 𝐉𝐒 :
- setTimeout
- setInterval
- callbacks
- Promises (Advanced)
- async/await (Advanced)

𝐅𝐮𝐧𝐜𝐭𝐢𝐨𝐧𝐬 :
- function declarations
- function expressions
- calling functions 
- Parameters & arguments 
- scope
- Arrow functions 
- Anonymous function
- Immediately Invoked Function Expression (IIFE)
- Higher Order Function {map, reduce, filter}(Advanced)
- Function Currying (Advanced)

𝐭𝐡𝐢𝐬 :
- How this work in JS?
- Implicit Binding 
- new binding 
- Lexical Binding
- Default Binding
- "this" in case of Arrow Functions
- Explicit Binding {call, apply and bind}(Advanced)

𝐅𝐞𝐰 𝐌𝐨𝐫𝐞 𝐂𝐨𝐧𝐜𝐞𝐩𝐭 :
- template literals 
- Spread operators
- Rest operators
- Array & Object destructuring 
- extends keyword
- Strict Mode
- Regular Expressions 

𝐌𝐨𝐝𝐮𝐥𝐞 𝐒𝐲𝐬𝐭𝐞𝐦 :
- Import/Export
- Default and Named Exports

𝐍𝐏𝐌 :
- Basic understanding about npm
- how to install and import package
Contabilidade e programação: como declarar seus recebimentos como desenvolvedor
Tags: contabilidade, devpleno, programming
Published: 2023-02-26 03:00:01

Uma das grandes dificuldades que todo programador enfrenta no seu dia-a-dia está relacionado com assuntos que não tem relação com tecnologia.
Parece meio óbvio, e na verdade, muita gente ainda estaria não tão preocupado com isso.

Porém, alguns assuntos não temos como fugir. Simplesmente faz parte de áreas acessórias do seu cotidiano. Um destes assuntos é contabilidade.

Eu mesmo enfrentei muito esse problema no passado. E inclusive, foi por isso que fundei a [Conta49 - Uma contabilidade especializada em programadores e freelancers](https://www.conta49.com.br). E sim, é a primeira no Brasil criada por um programador.

Sempre ajudei muitos programadores que tinham a mesma dúvida, e foi por isso também que resolvemos falar sobre o assunto contabilidade em todos lugares.

Vou deixar aqui a recomendação de um mega conteúdo que irá te ajudar muito:

- [Tudo o que você precisa saber sobre recebimentos como Pessoa Jurídica tanto no Brasil quanto do exterior](https://www.conta49.com.br/especiais/tudo-sobre-como-receber-do-exterior)

Este conteúdo é super especial e mostra toda a jornada do seu dinheiro vindo de outros países até chegar a sua conta no Brasil. E sim, o mesmo conhecimento vale para prestação de serviços para o Brasil.

E claro, se precisar - basta entrar em contato com a gente!
7 essential libraries for Web back-end development:
Published: 2023-02-26 02:34:55



When it comes to developing web applications, the back-end is just as important as the front-end. The back-end is responsible for handling data storage, security, and server-side logic. To help developers build robust back-end systems, there are a variety of libraries available. In this article, we’ll take a look at 7 essential libraries for web back-end development.

Express.js
Express.js is one of the most popular Node.js frameworks for building web applications. It provides a simple, yet powerful API for building RESTful services, handling HTTP requests and responses, and managing middleware. With Express.js, developers can easily create scalable and robust back-end systems.

Sequelize
Sequelize is an ORM (Object-Relational Mapping) library for Node.js that allows developers to interact with relational databases using JavaScript. It supports a variety of databases including MySQL, PostgreSQL, SQLite, and MSSQL. Sequelize provides a simple and powerful API for performing CRUD operations, managing relationships between models, and handling transactions.

Passport.js
Passport.js is an authentication middleware for Node.js that makes it easy to implement user authentication in web applications. It supports a variety of authentication strategies including local authentication, OAuth, and OpenID. Passport.js is highly customizable and integrates well with other Node.js libraries.

Socket.IO
Socket.IO is a real-time communication library for Node.js that enables bidirectional communication between the server and the client. It provides an easy-to-use API for handling events, broadcasting messages, and managing rooms. Socket.IO is great for building real-time applications such as chat rooms and online games.

Winston
Winston is a logging library for Node.js that makes it easy to log information, errors, and warnings in web applications. It supports a variety of logging transports including console, file, and email. Winston is highly configurable and can be easily integrated with other Node.js libraries.

Helmet
Helmet is a security middleware for Node.js that helps protect web applications from common security vulnerabilities such as cross-site scripting (XSS), cross-site request forgery (CSRF), and clickjacking. It provides a set of security-focused HTTP headers that can be easily configured to meet the specific needs of the application.

Moment.js
Moment.js is a date and time manipulation library for Node.js that makes it easy to parse, validate, manipulate, and display dates and times. It supports a wide range of formats and provides a simple API for working with dates and times in JavaScript.
🐢 + 🐇 = Myself
Tags: codenewbie, fundamentals, alchemist, learning
Published: 2023-02-26 01:21:27


As a Software Engineer(Constructor), 

**I See it's common to feel the pressure to keep up with the latest technologies and learn new skills quickly**. 
While this pressure can sometimes help some and some truly thrive under the pressure, while others, don't (_and guess what-_ **thats OKAY**). This varies for me, depending on the situation and context etc, but overall when it comes to learning --- 

I personally tend to align more with **the slow and steady approach of a 🐢**. I've found that taking my time to understand and absorb information allows me to build a solid foundation of knowledge that I can rely on.

However, once I have a solid grasp on a given concept, I become quick and efficient like a 🐇, putting my knowledge into practice. I've found that this balance between the two approaches is what makes me a true alchemist in my field. I'm able to take my time to build a strong foundation of knowledge, and then apply it quickly and efficiently when it's time to execute a project(still learning, haven't constructed much of my own - besides via bootcamp).

**In my experience with audio engineering**, I learned to embrace the 🐇 mentality and work quickly. However, I've come to realize that combining both approaches is what allows me to excel in my field. Balancing the architectural and engineering aspects of programming allows me to better understand and execute my projects with precision and creativity.

In software engineering(construction), **while it's important to keep up with the latest technologies and trends, it's equally important to build a strong foundation of knowledge that you can rely on**. By **embracing both the 🐢 and 🐇 mentalities, you can become a true alchemist in your field**, able to execute projects with precision and creativity.
What tools are used by software engineers? 👨‍💻
Tags: softwareengineers, tools, devops, webdev
Published: 2023-02-26 00:58:44


- Software engineering is a field of computer science that focuses on the development and maintenance of software systems. 

- It involves analyzing user needs, designing software solutions, implementing them in code, testing the results for accuracy and reliability, and maintaining those solutions over time. 

- In order to ensure quality products are created efficiently and effectively, it’s important for engineers to use tools throughout their process. 

- One key reason why engineers should use tools is that they make tasks easier by automating processes or providing shortcuts that would otherwise require manual effort from an engineer.

- For example, using version control allows developers to track changes made in their code so they can easily revert back if something goes wrong without having to manually search through all lines of code themselves. 

- Additionally, many IDEs provide features such as auto-completion which speeds up coding significantly compared with writing out every line manually or even copying/pasting chunks from previous projects into new ones - both activities which could lead to errors being introduced into the system unknowingly due to lack of thoroughness when doing these tasks by hand instead relying on automated processes provided via tooling like IDE's. 

- Finally, another major benefit offered by certain types of tooling is scalability allowing developers not only to save time but also increase productivity while working on large projects with multiple teams involved since each team member can be given access rights & permissions tailored specifically towards what type & level access required depending upon project requirements thus ensuring security measures are met while still enabling collaboration between colleagues regardless if geographically distributed or not. 

- This ensures everyone has visibility over progress at any given point within a project lifecycle preventing bottlenecks caused due to communication issues arising from either lack thereof, incorrect information shared etc.

- All this helps speed up delivery timescales drastically compared to traditional methods where everything had been done completely manually without reliance upon any kind of automation whatsoever. 

- Overall using appropriate tools during Software Engineering saves considerable amounts of time & money whilst increasing overall efficiency levels leading to higher quality end products delivered faster than ever before - making them essential components within any successful engineering organisation today!

###### Software Engineering Tools 🛠️ To Know As A Programmer 👨‍💻

🎥 {% youtube Auw8jr0OEeA%}


### Connect with Me 😊

#### 🔗 Links

[![linkedin](https://img.shields.io/badge/linkedin-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/mahmoud-el-kariouny-822719149/)

[![twitter](https://img.shields.io/badge/twitter-1DA1F2?style=for-the-badge&logo=twitter&logoColor=white)](https://twitter.com/Mahmoud42275)
Well...it's been a minute!
Tags: 100daysofcode, students, webdev, discuss
Published: 2023-02-26 00:45:31

Hello, I am back. I know that it has been a while since I have posted/blogged but trust me I have continued to code. School was starting to get really heavy, so I did not post as much. But overall, I feel as if the 100 days of code was successful. In that 100 days I have masted NextJS and I am confident in my abilities to use both sources. I will be starting another 100 days of code trying to learn NodeJS, but it will begin in the summer. I will be dedicating the rest of my time on working on small projects and continuously working. 

To help with a smaller project that I am working on. What sources do you think that students of all grades need and why? Thank you, guys!