teleren/devto huggingface dataset:
Completed Hacktoberfest2023
Tags: hacktoberfest23, hacktoberfest
Published: 2023-10-17 20:01:41


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/10s6o0o8g9n545wgr7ut.png)<!-- ✨This template is only meant to get your ideas going, so please feel free to write your own title, structure, and words! ✨ -->


### Intro
<!-- If you are new to the DEV community, introduce yourself and share a bit about why you joined DEV and your motivation to participate in Hacktoberfest this year. -->
Hi, Everyone! I'm Laxman Singh Koranga, an aspiring iOS Developer.
My motivation to participate in Hacktoberfest this year, came from my friends, they are participating along with me this year and told me to register.

<!-- Are you brand new to Hacktoberfest? What about coding in general? Tell us about how you got here -->

### Pledge
<!-- Share with us a bit about your goals during your Hacktoberfest journey this month. Are you a contributor looking to hone your skills or a maintainer looking for some help on a new project? Let us know!  -->
Basically, this was a new experience for me, so I chose the repo's in which I can work and share according to my area of expertise and knowledge. ****
Размещение статей для seo продвижения сайта
Published: 2023-10-17 19:56:05

Что такое информационные статьи? 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/je0tagr4xod5ojunzwzc.jpg)
Это статьи, которые действительно полезны людям (помогают сделать выбор, разобраться в вопросе, сравнить имеющиеся варианты решений и проч.), то есть они подтверждают экспертный уровень вашей компании в определенной сфере и, тем самым, повышают доверие к ее товарам и услугам. Агрессивная реклама собственным товаров и услуг здесь не уместна — можно органично добавить в текст не более 2–3 ссылок на свои предложения (желательно — в самом конце текста), с условием, что текст по своему информационному наполнению останется полезным и для тех, кто не заинтересуется рекламой.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sxulse59r7arsjlymsni.jpg)

﻿
Как работают информационные статьи?
А) часть читателей конвертируется в покупателей — так как статьи интересны широкому кругу читателей, которые являются потенциальными клиентами.
Б) приток трафика улучшает ранжирование сайта по коммерческим запросам — даже если «читатель» в итоге ничего не купит, он самим фактом своего посещения и тем, что не закрыл сайт сразу, а долгое время на нем находился, читая материал, улучшает «поведенческие факторы», что помогает seo-продвижению вашего сайта уже по коммерческим запросам.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3d0ls0ypa6txvts0jbqu.jpg)

﻿
Какими должны быть информационные статьи для корпоративного блога, чтобы они работали?
Статья должна быть адаптирована под запросы пользователей, которые непосредственно пересекаются с вашей тематикой — так она будет собирать целевой трафик;
Важно, чтобы она была написана человеком, который специализируется на определенной теме (медицина, юриспруденция, строительство и т. д.), а НЕ универсальным копирайтером;
Желательно, чтобы после написания копирайтером статья была проверена, исправлена и дополнена редактором — с помощью такой двойной проверки устраняются опечатки и логические нестыковки, которые сам автор мог и не заметить;
Для хорошего ранжирования необходима уникальность на уровне 90–100%, что можно проверить в антиплагиат сервисах;
В идеале каждая статья должна быть дополнена платными стоковыми изображениями с ресурсов подобных Shutterstock, которые покупаются специально под проект. С одной стороны, это снимает все вопросы с авторскими правами, а с другой — также повышает ранжирование статьи, так как платные изображения меньше растиражированы в интернете и воспринимаются поисковиками как уникальный контент.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d5vq6cwyitliv5yts37h.png)
Technical Documentation in the Gen AI Era
Tags: ai, productivity, programming, machinelearning
Published: 2023-10-17 19:54:10

I wanted to share a bit of the journey we took while brainstorming possible pain points in software development with [Autonoma](https://getautonoma.com). I truly believe documentation can be improved through the use of AI.

[Technical Documentation in the Gen AI Era](https://medium.com/@nico-autonoma/technical-documentation-in-the-gen-ai-era-5bf8fce50e01)
Authentification Oauth2 avec OpenFeign
Tags: java, spring, openfeign, oauth2
Published: 2023-10-17 19:47:10

---
title: Authentification Oauth2 avec OpenFeign
published: true
description: 
tags: #java, #spring, #openfeign, #oauth2
# cover_image: https://direct_url_to_image.jpg
# Use a ratio of 100:42 for best results.
# published_at: 2023-10-17 19:02 +0000
---

## Contexte

OpenFeign est une libraire du projet Spring Cloud permettant de développer des clients HTTP de manière déclarative. 

> Note : [Spring Cloud OpenFeign](https://spring.io/projects/spring-cloud-openfeign) n'est pas à confondre avec [Feign](https://github.com/OpenFeign/feign). En effet, le premier est une surcouche du second offrant une integration au reste de l'écosystème Spring

Dans cet article, nous allons voir comment configurer OpenFeign pour gérer une authentification Oauth2 de manière transparente en se basant sur l'autoconfiguration de Spring Security

## Spring Security

Spring Security permet de gérer l'authentification Oauth2 à un service via son autoconfiguration.
Pour se faire, un simple configuration de propriétés dans le fichier `application.properties` est nécessaire :


```
spring.security.oauth2.client.registration.XXX.client-id=${client_id}
spring.security.oauth2.client.registration.XXX.client-secret=${client_secret}
spring.security.oauth2.client.registration.XXX.authorization-grant-type=client_credentials
spring.security.oauth2.client.registration.XXX.scope=${scope_list}
spring.security.oauth2.client.provider.XXX.token-uri=${token_uri}
```

`XXX` représente le nom du `clientRegistrationId` utilisé par Spring Security et OpenFeign.

Vous pouvez lui donner le nom de votre choix. D'autre part, vous pouvez configurer différentes authentification Oauth2 en utilisant différents `clientRegistrationId`


La configuration ci dessus active l'authentification Oauth2 pour Spring Security et `RestTemplate` (client HTTP par défaut de Spring). 

Cependant, nous souhaitons utiliser OpenFeign et pas `RestTemplate`.

## OpenFeign

OpenFeign étant une librairie du projet Spring Cloud, elle dispose de configuration lui permettant de s'intégrer au reste du framework Spring (donc Spring Security).

Pour activer cette intégration, les deux lignes suivantes doivent être ajoutées à votre fichier `application.properties`

```
spring.cloud.openfeign.oauth2.enabled=true
spring.cloud.openfeign.oauth2.clientRegistrationId=XXX
```

Nous retrouvons ici le fameux `clientRegistrationId`. Celui ci doit être le même que celui configuré pour Spring Security.

Grace à cette configuration, OpenFeign peut gérer automatiquement l'authentification Oauth2 ainsi que le rafraichissement de token.
Edison Medical
Tags: dental
Published: 2023-10-17 19:37:43

[Edison Medical](https://ae.edisonmed.com/): Elevating Dental Implant Excellence
Edison Medical stands as a valuable addition to the esteemed Ritter implant system, offering a comprehensive range of premium dental implant products designed for dental professionals globally. With a distinct inventory crafted to harmonize with over 70 leading implant brands in the market, Edison Medical ensures versatility and top-tier quality for dental practitioners worldwide.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/szj6bljjlivqgnlwmv8t.jpg)


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zxq8ioiz0oflisv4c5ym.png)
👨🏻‍💼 Transforming Your Business with the Power of Azure AI Services 🤖
Tags: azure, ai, machinelearning
Published: 2023-10-17 19:35:15

---
title: 👨🏻‍💼 Transforming Your Business with the Power of Azure AI Services 🤖
published: true
tags: #azure #ai #machinelearning 
canonical_url: https://devtoys.io/2023/10/16/%f0%9f%91%a8%f0%9f%8f%bb%f0%9f%92%bc-transforming-your-business-with-the-power-of-azure-ai-services-%f0%9f%a4%96/
---

In today’s data-driven world, businesses are constantly seeking innovative ways to gain a competitive edge. Harnessing the power of artificial intelligence (AI) has become a pivotal strategy for achieving this. Azure, Microsoft’s cloud computing platform, offers a comprehensive suite of AI services that can revolutionize the way your business operates. We’ll explore Azure AI services, showing they’re more than tools; they’re game-changers.

Read the full article here! ====> [devtoys.io](https://devtoys.io/2023/10/16/%f0%9f%91%a8%f0%9f%8f%bb%f0%9f%92%bc-transforming-your-business-with-the-power-of-azure-ai-services-%f0%9f%a4%96/)
Introducing "The Poller": Our Answer to Efficient PR Reviews
Tags: hacktoberfest23, react, githubapi, hacktoberfest
Published: 2023-10-17 19:30:07

---
title: Introducing "The Poller": Our Answer to Efficient PR Reviews
published: true
tags: hacktoberfest23, react, githubapi, hacktoberfest
---

### Intro
Hey DEV folks! So, my colleague and I brewed something exciting, and I can't wait to spill the beans. Ever felt drowned in PRs, especially during Hacktoberfest? That's where our baby, "The Poller", comes into play. Joining DEV has always been about community and sharing for me, and this year, it feels even more special with what we've crafted.

### The Backstory
Hacktoberfest has been my playground for a few years. Each time, it’s a new journey, a fresh challenge. And like all journeys, there are bumps on the road. One such bump? Juggling through PRs and deciding which one to review. That’s when the light bulb flashed – why not create a tool to make this smoother?

### Meet "The Poller"
This year, instead of just contributing, we decided to give back in a different way. Enter "The Poller", our nifty React app. It plays nicely with the GitHub API, helping you cherry-pick the PRs you want to review. We imagined a tool that removes the clutter, especially during the PR avalanche in Hacktoberfest. 

What makes it even cooler? "The Poller" is open-source! Got an idea to jazz it up? Found a quirky bug? Jump into our [GitHub repository](https://github.com/the-poller/the-poller) and join the party. We're all ears for feedback and looking forward to some great collaborations.

Ready to give it a spin? Dive in [here](https://the-poller.github.io/the-poller/) and share your thoughts!
Mastering React Hooks: A User-Friendly Guide to Advanced Usage and Custom Hooks!
Tags: webdev, react, beginners
Published: 2023-10-17 19:23:12

Welcome to our journey into the heart of React development!👋 In this blog, we'll demystify React hooks, taking you from the basics to advanced usage and empowering you to create your own custom hooks🔗. By the end, you'll have the skills to build more efficient and maintainable React applications.😎

**1️⃣ Understanding the Basics of React Hooks**

**1.1 _useState_ - Managing Component State**
React hooks allow functional components to manage state. We'll learn how _useState_ replaces class-based state management and simplifies your components.

**1.2 _useEffect_ - Lifecycle Functions in Functional Components**
Dive into the world of _useEffect_. Learn how it combines _componentDidMount_, _componentDidUpdate_, and _componentWillUnmount_ in functional components, enabling side effects and data fetching.

**1.3 _useContext_ - Simplifying Context Usage**
Context provides a way to pass data through the component tree. We'll explore _useContext_, making your context-consuming components cleaner and more readable.

**2️⃣ Advanced Hook Patterns**

Now that we've covered the basics😊, let's explore some advanced use cases for React hooks:

**2.1 _useReducer_ - Advanced State Management**
Unravel the power of _useReducer_ for complex state logic. We'll demonstrate its use in managing state transitions and handling actions effectively.

**2.2 _useRef_ - Accessing DOM Elements and Values**
Learn how _useRef_ can be a game-changer when you need to interact with the DOM directly. This hook enables you to persist values across renders without causing re-renders.

**2.3 _useMemo_ and _useCallback_ - Performance Optimization**
Explore _useMemo_ and _useCallback_ to optimize your application's performance. Understand how **memoization** can significantly reduce unnecessary computations and render cycles.

**3️⃣ Creating Custom Hooks**

Now that you've mastered the built-in hooks🤩, let's craft your own custom hooks tailored to your application's needs:

**3.1 Understanding Custom Hooks**
Get to know the basics of custom hooks, why they're valuable, and how they enhance code reusability.

**3.2 Building Your First Custom Hook: _useLocalStorage_**
Step-by-step guide to creating a custom hook, _useLocalStorage_, which simplifies storing and retrieving data in the local storage.

**3.3 Real-World Examples: Custom Hooks in Action**
Explore practical examples of custom hooks like _useForm_ for form handling and _usePagination_ for efficient data display. See how these hooks improve code readability and maintainability.

**Conclusion✨:**

Congratulations!🎉 You've journeyed through the intricacies of React hooks😁, from the basics to advanced patterns and custom creations. Armed with this knowledge, you're ready to build React applications💻 that are not only functional but also elegant and maintainable. Happy coding!❤️
Выбор стальной двери
Published: 2023-10-17 19:22:31




Входные двери металлические  
Выбор стальной двери — это серьёзное решение, которое влияет на безопасность, комфорт, звуко- и теплоизоляцию в доме. При производстве изделий используются прочные материалы, а ведущие производители выпускают их в различных дизайнах: от классики до модерна. Интернет-магазин dveribravo.ru предлагает широкий выбор цветов, оттенков и текстур, позволяя купить входные двери, которые впишутся в дизайн-проект вашей квартиры.

Чтобы покупка прослужила больше 15-ти лет и не подводила хозяев, рекомендуем подбирать товар с учётом основных критериев:

Толщина конструкции. Чем толще металлическая дверь, тем она надёжнее. Однако двери с большим весом неблагоприятно воздействуют на стену, поэтому стоит проконсультироваться с нашим менеджером;
Назначение двери. Где планируется устанавливать изделие: внутри помещения или на улице? Это поможет определиться с уровнем защиты стальной двери от внешних факторов и взлома;
Замок. Он может быть разным: с ригелем, механический, с цилиндровым или сувальдным механизмом. При выборе ориентируйтесь на класс взломостойкости замка – для входных дверей рекомендуется 3 или 4 класс. [https://www.rf-dveri.ru/vhodnye/](https://www.rf-dveri.ru/vhodnye/)
No code API development for front end engineer/web developer 🔥
Tags: webdev, react, beginners
Published: 2023-10-17 18:56:13

## Introduction
Creating an API without writing any code might seem impossible, but there are ways to streamline the process and simplify development using low-code or no-code tools. In this blog post, we will explore various approaches to develop APIs without extensive coding.

## What problem does this solution solve?
* Don’t wait for the API integration in your web app
* For beginners who is willing to learn API integration,
This  is the simple way to start it
* Time saving. Other mock server setup will mock
significant time.

{% embed https://youtu.be/KB6yZ1s2t5E %}

[Demo code URL](https://codesandbox.io/s/contact-list-no-code-development-9slhzv)

Thanks for reading!!!
GWT : une astuce simple pour des tests simples
Tags: gwt, cucumber, test, qa
Published: 2023-10-17 18:46:06

---
title: GWT : une astuce simple pour des tests simples
published: true
description: Utilisez Given When Then pour mettre en forme vos tests
tags: #gwt, #cucumber, #test, #qa
# cover_image: https://direct_url_to_image.jpg
# Use a ratio of 100:42 for best results.
# published_at: 2023-10-17 18:25 +0000
---

Dans cette série de posts sur l'assurance qualité, je voulais vous partager un format simple à mettre en place pour rendre vos tests plus lisibles et potentiellement détecter des erreurs de conception.

## Given When Then

Given When Then (ou GWT) est un format simple qui définit les trois étapes obligatoires d'un test. 

En effet, lorsque nous rédigeons un test, nous implémentons toujours les trois mêmes étapes : 
- Mise en place de l'état du système (initialisation)
- Action sur le système (exécution)
- Observation du nouvel état du système (assertion)

Les sources de notre test peuvent représenter ces trois étapes en les divisant par de simples commentaires : 

```
// Given
Person p = new Person("john", "Doe", 22);
PersonService service = new PersonService();

// When
boolean isAdult = service.isAdult(p);

// Then
assertThat(isAdult).isTrue();
```

### Given
Cette partie regroupe toutes les étapes nécessaires à l'initialisation du test. Elle décrit l'état du système précédant l'exécution. 

- Cette partie peut être vide (ex : si notre système n'a pas d'état)

- Si cette partie est grande et/ou complexe, alors cela peut :
    - mettre en évidence un système trop complexe 
    - indiquer un périmètre de test trop grand.
    - se traduire en un test instable (flaky)



### When

Il s'agit de l'action sur le système. Généralement peut être résumée en un seul appel de méthode.

- Si plusieurs appels de méthodes sont nécessaires pour rendre le test intéressant, alors cela peut signifier que 
    - le code à tester est trop complexe / factorisé 
    - le périmètre de test peut encore être réduit.

### Then

Cette dernière rubrique contient toutes les assertions (vérifications) faites sur le système. 
> Un test avec une partie "Then" vide est un test inutile !


## Conclusion

GWT est un format trivial à mettre en place qui peut grandement aider la rédaction de test et mettre en valeur les défauts de conception d'un système. 
Toutefois, l'implémentation présentée ici n'est que la simplification du langage "[Gerkhin](https://cucumber.io/docs/gherkin/)" utilisé par l'outil "[Cucumber](https://cucumber.io/)".

Si vous souhaitez en savoir plus sur GWT, je vous invite à lire cet [article](https://martinfowler.com/bliki/GivenWhenThen.html) de Martin Fowler.
GPLv2 làm gì với nó?
Tags: license, gpl, gplv2
Published: 2023-10-17 18:37:45

phần front end, dính tới javascript, thì nó sẽ dc "distributed" tới khách hàng, nên cái app nó phải dc license ở hình thức GPLv2 
còn phần backend thì không sao 

nhưng cần để ý là nếu dùng AGPL thì backend vẫn toang. 

cám ơn bài gốc : https://softwareengineering.stackexchange.com/a/296686/25812
Running HTTP(s) queries every day with ArdorQuery: Part 2 HTTP Forms and files
Published: 2023-10-17 18:19:05

If you're currently developing a web application, it's highly likely that you have an API, be it a REST API, a GraphQL API, or any other API. This means that HTTP queries must be made daily for development and testing. There are a huge number of tools available for running HTTP queries, such as cURL and Postman etc. I would like to tell you about a tool that I made for myself, but it might be useful for you too, it's called ArdorQuery. In this article, you will learn how to use the ArdorQuery application on a daily basis to make HTTP queries. The application is oriented on keyboard and allows you to separate parts of your query as human-readable strings. Strings are highlighted in different colors depending on the type of content. More [information about application or download](https://github.com/trueromanus/ArdorQuery). In this part, we will discuss how to work with HTTP Forms and files in application.

Although the API has practically replaced the need for using HTTP Forms but this does not mean that HTTP Forms are not needed at all. For example, HTTP Forms are a standard file transfer method that is still used in hundreds (and thousands) of websites today. HTTP Forms are a kind of dictionary, where the key is the name of parameter, and the value is the text or binary in case of file.

For defining HTTP Forms in application, we need to define form fields.
To do this, you need to add a new line to the application and fill it as `form <field name>=<value>` there.
For example, to add a count field with a value of 100, you would create line with the content `form count=100`.

![Example of form](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/st5tfhu35j84s18ypajt.png)

Add the required number of lines for each required form field. 

![Example of form 2](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hi90ka8592b3ske9f2f7.png)

It is also worth noting that body transfer is only supported for requests using the POST and PUT methods. So you need to add a line specifying one of these methods (like `method POST` or `method PUT`). Form fields are added to the request body, which means that if you have defined a request body (using body fields as `json X`, `xmla X`, `body X`), then the form fields will be ignored!

To send a file, you need to create a line with the content `file <field name>=<path to file>`. For example, to send the file `background.png` from the `c:/myimages/` folder to parameter `backgroundimage`, you need to add a line with the content `file backgroundimage=c:/myimages/background.png`. File fields and form fields can be combined in single HTTP Form. Just like for a form field, you need to create a corresponding line for each file.

![Example of files](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5hzojfv4z9b588qthmi6.png)

In the next part I describe how to add HTTP Headers to query.
QA - Définitions et théorie
Tags: qa, qc, tests, theory
Published: 2023-10-17 18:17:22

---
title: QA - Définitions et théorie
published: true
description: Démystifions les termes d'assurance qualité
tags: qa, qc, tests, theory
# cover_image: https://direct_url_to_image.jpg
# Use a ratio of 100:42 for best results.
# published_at: 2023-10-17 17:29 +0000
---

## On dit Assurance ou Contrôle Qualité ?

En réalité, on peut dire les deux. Mais ces deux termes désignent des concepts différents !

**Assurance qualité (QA)**

- **définition** : méthode visant à empêcher l'apparition d'erreurs et défauts dans un produit afin d'éviter des problèmes lors de sa livraison

- **objectif** : examiner et modifier les procédés utilisés pour obtenir un produit final


**Contrôle qualité (QC)**

- **définition** : processus utilisé pour certifier la qualité d'un produit ou d'un service par rapport à des exigences

- **objectif** : examiner le produit ou service et vérifier qu'il réponds correctement aux exigences formulées

En ingénierie logicielle, le contrôle qualité consiste à tester du code (automatiquement ou non) tandis que l'assurance qualité vise à définir les méthodes et procédé utilisés pour limiter le risque de défauts pendant la production du code.

**L'assurance qualité est une pratique qui s'inscrit sur l'ensemble de la pipeline de développements. Elle concerne tout les acteurs d'un projet.**




## Stratégies de tests

Une stratégie de test vise à définir l'objectif d'un test. Il ne faut pas la confondre avec un "type" de test (que nous aborderons plus tard).

**Tests d'acceptation :** vérifier le bon comportement d'une fonctionnalité et son respect de la spécification

**Tests de non régression :** vérifier l'absence d'impact d'un nouveau développement sur les fonctionnalités déjà présentes

> *Note : avec le temps, les tests d'acceptation deviennent des tests de non régression*

**Tests de caractérisation :** caractériser et document le comportement d'une fonctionnalité mal connue.

> *Note : les tests de caractérisation peuvent être utilisés comme des tests de non  régression sur des fonctionnalités non spécifiées ou legacy*


## SUT

**définition :** System Under Test. Système affecté par un test

**Objectif :** Le SUT permet de définir le périmètre d'un test. C'est à dire, l'objectif de ce dernier. Il est généralement préférable d'avoir le périmètre le plus réduit possible afin de faciliter la maintenance du test.