teleren/devto huggingface dataset:
Duplicate Detection Rules in Dynamics 365 CRM.
Tags: tutorial, learning, database, security
Published: 2024-05-09 01:50:59

Duplicate detection Rules

As the name implies, this is a rule set to detect duplicity of records in Microsoft Dynamics 365.
This is one of the most important, if not the most important function to set, as it maintains data accuracy and consistency throughout the platform.

Duplicate detection rules filter through everything in the system once it has been enabled, ranging from data imports, leads to contacts, including comparing entities everytime there is an update or a new record is created.

The first step to making use of duplicate detection rules is to enable the function.

To enable duplicate detection: Navigate to Settings > Data Management. 
select duplicate detection rules.Enable duplicate detection by setting the "duplicate detection" option to "Yes."

After enabling duplicate detection, 
you can now go ahead to create duplicate detection Rules.
Go to Settings > Data Management > Duplicate Detection Rules. Click "New" to create a new duplicate detection rule. The rules being created need to be defined by a unique criteria that identifies duplicate records based on specific fields e.g email address, name, custom fields. 
Choose the match type (Exact Match etc.) based on your requirements.

After creating a duplicate detection rule, you need to activate it to make it effective. Select the rule you created and click "publish"

Finally decided what happens when duplicates are found.
Go to Settings > Data Management > Duplicate Detection Settings.Configure the settings for duplicate detection (e.g allow or prevent the creation of duplicate records).
Creating an Array of Unique Objects in Javascript
Tags: javascript
Published: 2024-05-09 01:50:31

I recently uncovered a nifty trick to be able to create a unique array of objects in Javascript that you should definitely add to your tool belt.

Have you ever found yourself building up some sort of array that contains objects that may contain duplicates? What I mean is ending up with something like this:

```
const arrayOfObjs = [
  {id: '123', code: 'ABC'},
  {id: '456', code: 'DEF'},
  {id: '123', code: 'ABC'},
  ...
]
```

So, how can we remove the duplicates here?

In these sorts of situations my instinct is to use lodash, but this can be done with plain old Javascript.

By utilizing the `Map` constructor and creating a new `Map` instance, this array can be filtered down to unique values.

```
const arrayOfObjsMap = new Map(
  arrayOgObjs.map((item) => {
    return [JSON.stringify(item), item];
  }),
);

const uniqueArrayOfObjs = arrayOfObjsMap.values();
```

This method of removing duplicates from the array takes advantage of the fact that keys in Maps are unique, so the removal of duplicates will inherently be taken care of through the construction of this Map.

The `Map` constructor can take an iterable ([per the MDN docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/Map)) which can represent key-value pairs for the `Map` object. So, by using `JSON.stringify()` on the iteratees of our array we are able to create a unique string when constructing our `Map` keys which serves as the unique identifier for our objects. Then by simply calling `values()` on the new `Map` instance we are back to having an array of objects but now we have no duplicates.

Hope you find this useful!
Python 문자열
Tags: python
Published: 2024-05-09 01:30:43

```
#문자열 인덱스

text = 'abc'
print(text[0]) //a
print(text[1]) //b
print(text[2]) //c

print(text[-3]) //a
print(text[-2]) //b
print(text[-1]) //c
//인덱스는 float는 안된다, 정수만 가능
```

```
#문자열 슬라이스

text='abcde fgh ijk'
text[2:5] // cde(마지막 인덱스+1)
text[1:8] // bcde fg(공백도 계산되어 출력)
text[-5:-1] // h ij

text[5:] // fgh ijk
// 5부터 끝까지
text[:5] //abcde
// 처음부터 5앞까지
```

```
text[:]
//처음부터 끝까지
```

```
text[2:8:2] //acef
//마지막은 글자간의 간격으로 출력
text[1:8:2] //bd g
text[1:8:-1] //범위가 맞지 않아 아무것도 출력안됨
text[8:0:-1] //hgf edcb
//두 번째 인덱스-1
text[::-1]//kji hgf edcba
```

```
#출력 지정 : format(a,b,c,...)
text = 'abcde {} {}'
print(text.format('ABC',123))// abcde ABC 123 
//안맞을 땐 에러를 내거나 잘려서 나온다
```

```
#대체하기 : replace(a,b)
text = 'abcde ABC ABC'
print(text.replace('ABC','KKK')) //abcde KKK KKK
```

```
#자르기 : split(a)
text = 'abcde A/B/C A.B.C'

a,b,c=text.split() //공백을 기준으로 자름
print(a) //abcde
print(b) //A/B/C
print(c) //A.B.C


a,b,c=text.split('.') //.을 기준으로 자름
print(a) //abcde A/B/C A
print(b) //B
print(c) //C
```

```
#합치기 : a.join()
text= 'abcde'
print('/'.join(text)) //a/b/c/d/e
```

```
#개수 확인하기 : count(a)
text= 'abcde ABC ABC'
print(text.count('a')) //1
print(text.count('A')) //2
print(text.count('1')) //0
```

```
#제거하기 : strip(a), lstrip(a), rstrip(a)
text = '   abcde   '
print(text.strip()) //abcde
//양쪽 제거
print(text.lstrip()) //abcde
//왼쪽만 제거
print(text.rstrip()) //   abcde
//오른쪽만 제거

text = '****ab*cde****'
print(text.strip('*')) //ab*cde
print(text.lstrip('*')) //ab*cde****
print(text.rstrip('*')) //****ab*cde

//중간은 제거해주지 못한다
```

```
#인덱스 찾기 : find(a)/rfind(a)/index(a)/rindex(a)
text = 'ABC ABC'
print(text.find('A')) //0
print(text.rfind('A')) //4
//오른쪽에서부터 찾기
print(text.index('A'))  //0
print(text.rindex('A'))  //4
//오른쪽에서부터 찾기

print(text.find('d')) //-1
print(text.rfind('d')) //-1
//없는거 찾으라고할때
print(text.index('A'))  
print(text.rindex('A'))  
//에러를 리턴
```

```
#확인하기 : isapha() / isdigit() / isalnum() / isupper()/ islower()

text1 = 'ABCabc123'
text2 = '123'
text3 = 'ABC'
text4 = 'abc'

print(text1.isalpha()) //False
print(text1.isdigit()) //False
print(text1.isalnum()) //True
//알파벳 또는 숫자의 조합인가
print(text1.isupper()) //False
print(text1.islower()) //False

print(text2.isalpha()) //False
print(text2.isdigit()) //True
//숫자의 조합인가
print(text2.isalnum()) //True
//알파벳 또는 숫자의 조합인가
print(text2.isupper()) //False
print(text2.islower()) //False

print(text3.isalpha()) //True
//알파벳의 조합인가
print(text3.isdigit()) //False
print(text3.isalnum()) //True
//알파벳 또는 숫자의 조합인가
print(text3.isupper()) //True
//대문자의 조합인가
print(text3.islower()) //False

print(text4.isalpha()) //True
//알파벳의 조합인가
print(text4.isdigit()) //False
print(text4.isalnum()) //True
//알파벳 또는 숫자의 조합인가
print(text4.isupper()) //False
print(text4.islower()) //True
//소문자의 조합인가
```

```
#대/소문자 만들기 : upper()/lower()
text = 'ABCabc'
print(text.upper()) //ABCABC
print(text.lower()) //abcabc
```

```
#0을 채우기 : zfill()
y='2020'
m='3'
d='1'

print(y.zfill(4)) //2020
print(y.zfill(2)) //03
print(y.zfill(2)) //01
```

_참조: 유투브 소놀코딩_
MMOexp: A heroic defender has appeared
Tags: game
Published: 2024-05-09 01:25:48

 Here is the breakdown of his on-card stats:

To celebrate Kompany’s arrival in the game, EA Sports created an Augmented Reality (AR) experience for Manchester City fans outside of <a href="https://www.mmoexp.com/Fc-24/Coins.html">FIFA 24 Coins</a> The Etihad. Like all the new UCL Heroes this season, Kompany has been re-imagined by Marvel designers. Kaptain Kompany is the result, and his byline is as follows.

“In a dressing room full of Heroes, Vincent Kompany would wear the armband. Strong in a challenge and synonymous with captaincy, leadership and professionalism, Kompany is Manchester City through and through. 

A heroic defender has appeared! Welcome to the club, Kaptain Kompany Pre-order FC24 Ultimate Edition by August 22 to get an Ultimate Team Hero.

“He became a one-man brick wall and a leader both on and off the field. During his decade of leadership, he has forever changed the Cityzens’ trajectory, guiding the Club into the upper echelons of English football with four Premier League titles and a host of <a href="https://www.mmoexp.com/Fc-24/Coins.html">EA Sports FC 24 Coins</a> domestic cups.
database conversion
Tags: converting, database, help
Published: 2024-05-09 01:16:03

Very new to this forum so bear with me if I sound stupid. What I'm trying to do is to select from a database a table that has a structure and then what I wish to do is to insert this table with a different structure into a new database. for example select from old database datatable1 data1, data2, data3 and then insert into new database datatable2 data2, data1, data3. Is this possible or am I just barking up the wrong tree and should be using some other development language.
Any suggestions will be appreciated.
Best Regards,
Peter
Event Loop - Parte 1
Tags: flutter, dart, braziliandevs, learning
Published: 2024-05-09 01:12:12


### O que é o Event looping?

Event Looping usa uma estrutura de dados chamada Queue, pense na queue como quando você vai a um drive-thru, você entra em uma fila de carros até ser atendido, ou seja, o primeiro a chegar é o primeiro a sair, certo? Isso chamamos de FIFO (First-in-first-out). O Dart usa as queue para agendar as tarefas e executá-las em sua isolate principal. O event loop tem 2 queues, uma para eventos e outra para microtasks.

A queue de eventos é usada para eventos quando você toca em alguma parte da tela ou quando você tem dados vindo de um servidor. Segue a imagem abaixo.
![Imagem das queues](https://dart.cn/articles/archive/images/both-queues.png)

Como pode ser visto, nossa queue de microtask é sempre a prioridade dentro do event loop.

Tarefas síncronas na nossa isolate principal são sempre executadas imediatamente. Você não pode interrompê-las.

Se o Dart achar qualquer tarefa longa que concorde em ser adiada, Dart irá colocá-la na queue de eventos.

Quando o Dart termina de executar uma tarefa síncrona, o event loop checa a queue de microtask. Se a tarefa de microtask tiver alguma tarefa, o event loop as coloca na thread principal para executá-las. O event loop fica checando a queue de microtask até ela estar vazia.

Se uma tarefa síncrona e uma queue de microtask estiverem ambas vazias, o event loop deixará a próxima tarefa em espera para a event queue executar na thread principal. Uma vez na event queue, o código é executado de forma síncrona.

Se novas microtasks entrarem na queue de microtask, o event loop irá lidar com elas antes do próximo evento na fila de queues.

Esse processo continuará até que todas as queues estejam vazias.

![event-looping](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ys93sqmn4zxa1rpxtp7u.png)

- Link da documentação do Dart em chinês para mais exemplos com event loop. https://dart.cn/articles/archive/event-loop
- em resumo de toda essa explicação é que temos as queues de tarefas normais que podem ser adiadas e a de microtask, a de microtask sempre vai ser prioridade para o Event loop. Se você vem de uma linguagem como javascript usando Node.JS saiba que o event loop de la é bem parecido com o do Dart.

### Essa foi a primeira parte do conteúdo sobre event loop, em breve irei trazer a segunda parte e com mais exemplos em código mesmo. Por enquanto, é mais uma teoria de como funciona. Espero vocês na segunda parte.
Do you even understand the problem?
Tags: beginners, programming, learning, coding
Published: 2024-05-09 01:11:24

Software engineering requires a wide range of problem solving skills. To build those skills, sometimes we need to work all the way through a challenging problem.

Other times, we need an easier approach. Consistent practice on micro skills can be an easy and fast way to improve your capabilities.

Do you like the idea of practicing your skills in small, simple doses? Do you like the idea of Leetcode, but sometimes find a whole Leetcode problem too much to bite off?

Instead of solving an entire Leetcode problem, why not practice just one tiny part of it?

Here's an easy skill to start with: `restating the problem`!

Choose a [random problem on Leetcode](http://leetcode.com/problemset/), and quickly work through the questions below. Answer these questions on paper, whiteboard, text file, talking to your rubber duck, or whatever, but *not in code yet* ...

---

## Restate The Problem and Check Your Understanding

**Overview**
- Explain the problem to be solved.
- What are the inputs to this function?
- What are the outputs?

**Examples and Test Cases**
- What do the examples illustrate about the problem?
- What can you learn from the test cases?
- What other examples and test cases can you think of?

**Constraints**
- How do the given constraints help your understanding of the problem?

**Understanding**
- Which details did you immediately understand?
- Which details were a bit confusing at first?
- How is this problem similar to, or different from, other problems you've solved?
- Which parts of this problem made you feel confident, or uncertain?

---

That's it! Don't worry yet about how to solve the problem (unless you want to). You can learn quite a bit in just a few minutes by working through these questions.

If you found this to be a helpful exercise, I encourage you to return to it regularly, and to try it with a peer or mentor!
Recover stolen Bitcoin, Cybernet Surveillance
Published: 2024-05-09 00:49:15

Recover stolen Bitcoin, Cybernet Surveillance

I was saddened to learn that almost $233,000 worth of bitcoin had been stolen from my cryptocurrency wallet. For months, I had diligently invested my savings into bitcoin, watching the value steadily grow. And now, it was all gone in an instant. After the initial shock wore off, I went into research mode, scouring forums and websites for any glimmer of hope that I could recover my lost funds. That’s when I came across Cybernet Surveillance — an innovative software program that claimed it could help victims of cryptocurrency theft reclaim their digital assets. I was skeptical at first, but as I read the overwhelmingly positive reviews from people in similar situations, I decided it was worth a try. The Cybernet Surveillance software utilizes advanced blockchain analysis to identify the hacker’s wallet addresses and trace the stolen funds. After uploading my wallet information, within 48 hours the Wizard program had pinpointed the location of my stolen bitcoin. Now came the hard part — legally compelling the thief to return what they had taken. Fortunately, Cybernet Surveillance partners with a global team of lawyers who specialize in cybercrime. They walked me through the process of building an ironclad legal case against the perpetrators, utilizing cryptocurrency forensic data from the Wizard software. In the end, we were able to apply enough pressure to force the hackers to return the stolen bitcoin, and after months of stress, I finally had my $233,000 back. The whole experience taught me that even in a situation that seems hopeless, solutions exist. Don’t assume that stolen cryptocurrency is gone forever. With the right software and legal resources, it is possible to successfully recover your lost funds and achieve justice. Constant communication and updates from Cybernet Surveillance provide a sense of reassurance and progress along the recovery journey. With transparency and guidance, navigating the path towards fund recovery becomes a collaborative effort, instilling newfound faith in the world of cryptocurrency. Please call Cybernet Surveillance now to get assistance via: WhatsApp: ‪+1 (908) 883‑7240‬ or Email: Cybernetsurveillance @ mail . Com. You can also reach them through their website: cybernetsurveillance.site.
SEEK ADVICE FROM WEB BAILIFF CONTRACTOR ON STOLEN CRYPTO
Published: 2024-05-09 00:36:31

As an avid cryptocurrency enthusiast, I invested considerable time and effort into mining Ethereum, hoping to reap the rewards of my hard work. However, my dreams were dashed when I discovered that the service provider I entrusted with my mined Ethereum was running a fraudulent scheme. Despite my efforts, I found myself on the brink of losing $11,000 worth of Ethereum. That's when Web Bailiff Contractor came to the rescue. Web Bailiff Contractor emerged as a beacon of hope in my darkest hour, offering a lifeline in the face of adversity. With its sophisticated tracking capabilities and ethical recovery practices, the platform proved to be a game-changer in my quest to reclaim what was rightfully mine. The first step in the recovery process was initiating Web Bailiff Contractor and providing it with the necessary details to begin the investigation. Within moments, the platform sprang into action, scouring the depths of the internet to trace the whereabouts of my stolen Ethereum. Their comprehensive scanning capabilities were unmatched and it unearthed crucial evidence that would ultimately lead to the recovery of my funds. What truly set them apart was its commitment to ethical practices and adherence to legal standards. Unlike other recovery services that may resort to questionable tactics, the company operated with integrity and transparency, ensuring that the recovery process was conducted in a manner that upheld the highest ethical standards. Thanks to the relentless efforts of Web Bailiff Contractor, I was able to recover my stolen Ethereum in its entirety. The platform not only restored my financial losses but also provided me with a sense of justice and closure in the face of betrayal. It served as a powerful reminder of the importance of due diligence and vigilance when navigating the complex world of cryptocurrency. In conclusion, the Web Bailiff Contractor proved to be an invaluable asset in my journey to reclaim stolen Ethereum. Their email is web @ bailiffcontractor . net. Their advanced tracking capabilities, ethical recovery practices, and unwavering commitment to justice make it a standout solution for individuals seeking to recover lost or stolen cryptocurrency.
Onlayn o'yinlar
Published: 2024-05-09 00:35:11

Men futbolga pul tikishni juda yoqtiraman, chunki bu meni har doim yangi uchrashuvlar bilan tanishtiradi. Bu erda, [https://betandreas-uzb.com/](https://betandreas-uzb.com/) saytidan gapirayotganimni tushunishingiz mumkin. Bu sayt tezkor va oson, va qimor o'yinlari juda maroqli. Xizmat ko'rsatish ham beqiyos, savollaringiz bo'lsa, ular sizga yordam berishadi. Agar siz ham sportga qiziqqan bo'lsangiz, albatta, bu saytni ko'rishni maslahat beraman.
Building Interactive Data Visualizations with Tableau
Tags: webdev, javascript, beginners, programming
Published: 2024-05-09 00:30:59

## Introduction

Data visualization is a powerful tool that helps users understand and explore data in a more intuitive and interactive way. In the past, creating high-quality visualizations used to be a complex and time-consuming task. However, with the advent of modern tools like Tableau, building interactive data visualizations has become much easier and efficient. In this article, we will discuss the advantages, disadvantages, and features of building interactive data visualizations with Tableau.

## Advantages

One of the greatest advantages of Tableau is its user-friendly interface and drag-and-drop functionality, which makes it accessible to users of all skill levels. It also offers a wide range of visualization options and customization features, allowing users to create unique and impactful visuals. Additionally, Tableau has a robust community and support system, making it easy to troubleshoot issues and learn from others.

## Disadvantages

Despite its advantages, Tableau does have a few drawbacks. It can be expensive for small businesses or individuals, and the learning curve can be steep for those with limited technical skills. Also, since Tableau relies heavily on the internet, a stable and fast internet connection is needed for optimal performance.

## Features

Tableau offers numerous features that make it a versatile tool for data visualization. Its drag-and-drop functionality makes it easy to create visualizations, and it also offers a vast library of charts, graphs, and maps to choose from. With features like filters, sorting, and drill-down options, Tableau allows users to dive deep into their data and gain valuable insights.

### Example of Creating a Visualization in Tableau

```plaintext
1. Open Tableau and connect to your data source.
2. Drag fields to Rows and Columns to create a basic chart.
3. Use the Show Me toolbar to change visualization types.
4. Apply filters and drag additional fields to Detail on the Marks card to enhance your visualization.
5. Customize the design and layout of your chart for maximum impact.
```

## Conclusion

In conclusion, Tableau is a powerful and efficient tool for building interactive data visualizations. It offers a user-friendly interface, a variety of visualization options, and strong community support, making it an ideal choice for individuals and businesses alike. While it does have a few disadvantages, the benefits far outweigh them, making Tableau a top choice for data visualization.
Python 숫자 관련 함수
Tags: python
Published: 2024-05-09 00:28:16

```
#반올림 : round(a), round(a,b)

print(round(3.33))  #3
print(round(3.66)) #4
#소수점 몇번째 자리 까지 반올림해라 
print(round(3.66,1)) #3.7 
```

```
#절대값 : abs(a)
print(abs(3)) #3 
print(abs(-3)) #3
```

```
#제곱 : pow(a,b)
print(pow(3,2)) #9
print(3**2) #9
```

```
#나눗셈 : divmod(a,b)
x,y=divmod(7,2) #첫번째 몫, 두번째 나머지
print(x)
print(y)
```

```
#최대값 : max(a,b,c,d,...)
print(max(7,5,1,3)) # print(max([7,5,1,3]))

#최소값 : min(a,b,c,d,...)
print(min(7,5,1,3)) # print(max([7,5,1,3]))
```

```
#합 : sum(집합형태 : Iterable)
print(max([7,5,1,3])) #리스트, 튜플 등등
```

_참조 : 유투브 소놀코딩_
useState() semantic when you need to toggle modal visibility
Tags: react, modal
Published: 2024-05-09 00:12:00

---
title: useState() semantic when you need to toggle modal visibility
published: true
description: the way I use useState() to manage if a modal is open or close
tags: react, modal,
series: react
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mgca22acs6xfqce373dm.png
---

## The problem

Is not a real problem but is something about semantic in use state variabile using useState(). The fact is useState() can be used to store if a modal is open or close. What I HATE is use the setter in this way: `const [isOpen, setOpen] = useState(false);`. What I hate is the use of `setOpen`. I prefer a more semantic way to manage boolean values.

### Type

useState() returns two values. First with the boolean value and second the method to update the variable.

```javascript
type Modal = [boolean, () => void, () => void];
```

## Solution

My proposal is to stop using useState() and start building hooks like this one. If the semantic is to open or close a modal... just provide

 - isOpen
 - openModal()
 - closeModal()

### Code

```javascript
type Modal = [boolean, () => void, () => void];

const useModal = (initial: boolean): Modal => {
  const [isModalOpen, setValue] = useState(initial);
  const open = () => setValue(true);
  const close = () => setValue(false);
  return [isModalOpen, open, close];
};

export default function Home() {
  const [isFirstModalOpen, openFirstModal, closeFirstModal]
     = useModal();
}
```

## Conclusion

This is a little example but this hook can now be used for all the modals:

```javascript
  const [isSomethingOpen, openSomething, closeSomething]
     = useModal();
```

## The book (only for italian speakers)

This and others snippets will be included in next edition of [React, TypeScript e Next.js](https://amzn.to/3JZiA7H). Please follow me as author to receive notifications of new books (React 19 is coming)!!