teleren/devto huggingface dataset:
React JS with Yarn 4
Tags: react, yarn, webdev, javascript
Published: 2024-05-18 16:08:07

Yarn 4 introduces several advancements and features that enhance the developer experience. It requires Node.js 18+ and has made significant changes like not enabling Zero-Install by default and using Corepack over yarnPath.

We can use yarn 4 with react js by following these steps.
_Must be Yarn 4_
check yarn version
`yarn -v`:
![yarn version](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jidfxq3704tfvlszmwy5.png)

Now we will create a React Project:`yarn create react-app my-app`

![React Project Structure](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8s1rxmvloyrjookrv4sa.png)


Unlike in previous version of yarn,we used to have node-modules
but yarn 4 comes with Plug'n'Play and Zero-Installs.
it contains 2 new files:

- `.pnp.cjs`
- `.pnp.loader.mjs`

.pnp.cjs file contains info about all the package that mentioned in `package.json`

Plug N Play is faster than node-modules but some times due to some dependencies issue ,it might not work for some projects

With Yarn 4 we can still use node-modules
Just we have to paste this command:`yarn config set nodeLinker node-modules`
it will create a file name :`.yarnrc.yml`
which contains:
![node-linker](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y7u1d1xhid3c5tx6oprv.png)

Now doing yarn install:`yarn install`
will bring back node_modules folder
changes:

![changes](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ok0pge8xhh3wutbmcegr.png)
we will find that `.pnp` files are deleted
Start with me...
Published: 2024-05-18 16:04:12

Today I solved Leetcode's Problem Of The Day, and to be honest I didn't solved it on my own. Read the question, understood it but couldn't think of any specific solution. But the solution previous day, it was solved using post order traversal. So it did cross my mind.
The question is "Distribute Coins in Binary Tree". I saw a similar solution using post order traversal in solutions, wrote the same code and submitted it. Understood the code using CHATGPT.
I created an Open Source Custom Code Editor
Tags: opensource, showdev, github, codenewbie
Published: 2024-05-18 15:30:17

Hey Everyone 👋

I'm excited to announce my open-source custom code editor!  🎉

This editor is currently open-source and supports two programming languages: JavaScript and Python ( more to be included ). I was fascinated with various code editors executed in coding platforms and many online platforms and I decided to create one. You can write and execute code seamlessly within the editor.

## How to Get Involved
Check out existing issues or create new ones: [Issue Tracker](https://github.com/DhanushNehru/CustomCodeEditor/issues)
Provide feedback or suggestions: Either in the comments below or raise [new issues](https://github.com/DhanushNehru/CustomCodeEditor/issues/new) in the repository 

**Language Support:** JavaScript and Python
**Real-time Execution:** Instantly run your code and see the output
**Built with React:** Modern, responsive, and fast

## Contributions & Ideas
I am looking for contributions and ideas to enhance this project. Whether you're a developer, designer, or just a coding enthusiast, your input is invaluable!

### Checkout the preview here: [CustomCodeEditor](https://custom-code-editor.vercel.app/)
If you liked this project support it by starring it as it would really mean a lot ⭐️


## Getting Started
- Fork the repository: [CustomCodeEditor](https://github.com/DhanushNehru/CustomCodeEditor
) 
- Clone the repository
- Install dependencies: npm install
- Please set the environment variables and respective configurations mentioned in the [README.md](https://github.com/DhanushNehru/CustomCodeEditor?tab=readme-ov-file)
- Start the development server: npm start
- I believe that with your help, we can make this code editor an amazing tool for developers everywhere.

Looking forward to your feedback and contributions!

### X Post
{% embed https://twitter.com/Dhanush_Nehru/status/1791845851867808182 %}

_Thanks for reading, please give a like as a sort of encouragement and also share this post in socials to show your extended support._

**Connect** ⬇️ 
[**Twitter**](https://twitter.com/Dhanush_Nehru) **/** [**Instagram**](https://www.instagram.com/dhanush_nehru/) **/** [**Github**](https://github.com/DhanushNehru/) **/** [**Youtube**](https://www.youtube.com/@dhanushnehru?sub_confirmation=1) **/** [**Newsletter**](https://dhanushn.substack.com/) **/** [**Discord**](https://discord.com/invite/Yn9g6KuWyA)
cdı bean ilişkisi
Published: 2024-05-18 15:04:33

CDI (Contexts and Dependency Injection) ve Bean'ler Java EE'de birlikte çalışan iki kavramdır. CDI, Java EE platformunda bağımlılık enjeksiyonu ve yaşam döngüsü yönetimi için bir standarttır. Bean ise, yeniden kullanılabilir, tak-çalıştır bileşenler oluşturmak için kullanılan bir modeldir¹.

CDI ve Bean ilişkisi şu şekilde açıklanabilir:

- **Bean**: Java'da Bean, genellikle bir iş mantığı veya veri erişim mantığı içeren, yeniden kullanılabilir bir nesnedir. Bean'ler, belirli bir işlevi yerine getiren ve genellikle getter ve setter metotlarına sahip olan sınıflardır².
- **CDI**: CDI, Bean'lerin yönetimi ve bağımlılıklarının enjekte edilmesi için bir çerçevedir. CDI, Bean'leri belirli bir kapsamda yönetir ve uygulamanın farklı bölümleri arasında bağımlılık enjeksiyonu sağlar¹.

CDI, Bean'lerin oluşturulması, bağımlılık enjeksiyonu, yaşam döngüsü yönetimi ve aralarındaki etkileşim gibi konularda standartlar sunar. Bu sayede, geliştiriciler uygulama içindeki bileşenleri daha kolay bir şekilde yönetebilir ve bağımlılıkları daha esnek bir şekilde enjekte edebilirler. CDI, Bean'lerin daha modüler ve bakımı kolay hale gelmesini sağlar ve uygulamanın genelinde tutarlı bir yapı oluşturur¹.

Özetle, CDI ve Bean'ler Java EE'de birlikte çalışarak, uygulamaların daha temiz, modüler ve yönetilebilir olmasına katkıda bulunurlar. CDI, Bean'lerin yaşam döngüsünü yönetirken, Bean'ler uygulamanın yeniden kullanılabilir bileşenlerini temsil eder¹².

Kaynak: Bing ile konuşma, 18.05.2024
(1) bu beyin (cdı) diğerlerinden farkı ne - Motosiklet. https://www.motosiklet.net/forum/moto-sohbet/125022-bu-beyin-cdi-digerlerinden-farki-ne.html.
(2) CDI Bean vs Managed Bean - Hasscript.com | Programlama hakkında. https://hasscript.com/1928/cdi-bean-vs-managed-bean.
(3) Beyin Dalgaları; Gama, Beta, Alfa, Teta, Delta işlev ve Kullanımları. https://www.parapsikoloji.net/beyin-dalgalari-gama-beta-alfa-teta-delta-islev-ve-kullanimlari/.
(4) undefined. http://www.ebay.com/itm/Performance-...9ab2a4&vxp=mtr.
Do not use array.sort() Function Without a Compare Function in JavaScript
Tags: javascript, programming, tutorial
Published: 2024-05-18 15:01:22


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


You might need to sort their elements when working with arrays in JavaScript. The sort() function is commonly used for this purpose. However, there’s an important caveat: if you’re dealing with an array of numbers, using sort() without a compare function can yield unexpected outcomes.

---


# The Default Behavior of sort()
By default, the sort() function treats elements as strings and compares them based on their UTF-16 code units order. This behavior works well for sorting strings alphabetically, but it falls short when sorting numbers


### Example 1: Sorting Strings
Let’s say we have an array of animal names:
```javascript
var animals = ["Horse", "Cat", "Tiger", "Lion"];
animals.sort(); // Result: ["Cat", "Horse", "Lion", "Tiger"]
```

The strings are sorted alphabetically, which is what we expect.

### Example 2: Sorting Numbers
Now, consider an array of numbers:

```javascript
var numbers = [12, 10, 15, 11, 14, 13, 16];
numbers.sort(); // [10, 11, 12, 13, 14, 15, 16]
```

Wait, what happened? The numbers are sorted as strings! The reason is that the default comparison treats them as such.

---



# The Solution: Using a Compare Function

You must provide a compare function to sort numbers (or any other data type) properly. This callback function defines an alternative sorting order. It takes two arguments (often referred to as a and b) and returns either a positive, negative, or zero.

Here’s how you can create a simple compare function for sorting numbers:
```javascript
function compare(a, b) {
    return a - b;
}
```
In this function:

If a is greater than b, it returns a positive value.
If a equals b, it returns zero.
If a is less than b, it returns a negative value.
Now, let’s sort our array of numbers using this compare function:
```javascript
numbers.sort(compare); // Result: [10, 11, 12, 13, 14, 15, 16]
```
Perfect! The numbers are now sorted correctly.

---


# Conclusion
Remember that when sorting arrays in JavaScript, especially with numbers, always use a compare function. It ensures predictable and accurate sorting behavior. Don’t rely on the default string-based sorting; take control by providing your comparison logic.

Happy coding! 🚀

---


Feel free to customize this article further or add any additional insights you’d like to share. If you have more requests or questions, feel free to ask! 😊👍
HAVE YOU LOST MONEY DUE TO INVESTMENT\CRYPTO SCAM-HIRE TECHNOCRATE RECOVERY
Tags: cryptocurrency, bitcoin
Published: 2024-05-18 14:42:48

My name is Olivia, and I came bearing a tale of triumph, sparked by my journey with Technocrate Recovery. Imagine this: entrusting your hard-earned 320k CAD to a promising Bitcoin mining venture, only to discover it was a scam. Anger and frustration coursed through me as I realized my funds had vanished into thin air. But amidst the chaos, I found hope in the form of Technocrate Recovery. Determined to reclaim what was rightfully mine, I embarked on a quest for justice. After careful research, I choose Technocrate Recovery for its stellar reputation and positive reviews. With a mixture of hope and caution, I reached out to their team. From the outset, I was met with professionalism and compassion. The team at Technocrate Recovery guided me through the process with patience and understanding, offering reassurance when I needed it most. Their dedication was unwavering, and I felt supported every step of the way. The investigation unfolded swiftly, with Technocrate Recovery leaving no stone unturned in their pursuit of my lost funds. Their expertise and diligence were evident as they navigated the complexities of cryptocurrency scams. Despite the challenges, they remained steadfast in their commitment to justice. In a remarkably short time frame, Technocrate Recovery succeeded in recovering a significant portion of my losses. It was a moment of relief and gratitude, knowing that my trust in them had not been misplaced. But Technocrate Recovery's impact extended beyond financial restitution. They provided a sense of comfort and assurance during a tumultuous time. Their professionalism and compassion were a guiding light amid uncertainty, offering hope where there was once despair. To anyone grappling with the aftermath of a cryptocurrency scam, I urge you to consider Technocrate Recovery. Their proven track record and dedication make them a trusted ally in the fight against fraud. With their expertise, you can reclaim what rightfully belongs to you and embark on a journey toward financial security once more. I am immensely grateful to Technocrate Recovery for their exceptional service. They restored my faith in humanity and provided a lifeline when I needed it most. Trust in their expertise, and let them guide you toward a brighter future. With Technocrate Recovery by your side, anything is possible.

Email box: technocrat recovery(@)contractor(.)net
WhatsApp Message: + 1 57 33-5 6-37-08

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ep4us8q9l8suag1gy8zj.jpeg)
Um Guia prático para iniciantes em ChatGPT
Published: 2024-05-18 14:01:12

Se você está começando a explorar o mundo da inteligência artificial e quer experimentar o ChatGPT, mas não tem muito conhecimento técnico, este guia é para você. Vamos desmistificar alguns termos e mostrar como você pode começar a utilizar essa ferramenta poderosa no seu dia a dia.

O ChatGPT é um modelo de linguagem desenvolvido pela OpenAI, que utiliza inteligência artificial para gerar texto de forma similar a como um humano escreveria. Ele pode ser usado para diversas tarefas, como responder perguntas, criar conteúdo, e até mesmo auxiliar no desenvolvimento de software.


Para profissionais de gestão e engenharia de software, o ChatGPT pode ser um grande aliado. Imagine que você está trabalhando em um projeto complexo e precisa de ideias para solucionar um problema ou escrever uma documentação técnica. O ChatGPT pode fornecer sugestões e até mesmo rascunhos completos, economizando seu tempo e aumentando a produtividade.

Prompt: Tudo começa com um "prompt", que é a entrada de texto que você fornece ao ChatGPT. Pense no prompt como uma pergunta ou comando que você dá ao modelo. Quanto mais claro e específico for o seu prompt, melhores serão as respostas.

Geração de Texto: Com base no prompt, o ChatGPT gera uma resposta. Ele usa um vasto banco de dados de textos para prever e construir uma resposta coerente e relevante.

Exemplo:

Suponha que você é um gestor de projetos e precisa criar um cronograma inicial para um novo projeto de software. Você pode começar com um prompt simples como:

"ChatGPT, me ajude a criar um cronograma básico para o desenvolvimento de um aplicativo móvel. Inclua fases como planejamento, design, desenvolvimento, testes e lançamento."

A resposta pode ser algo assim:

"Claro! Aqui está um cronograma básico:
1. Planejamento: 2 semanas
2. Design: 3 semanas
3. Desenvolvimento: 8 semanas
4. Testes: 4 semanas
5. Lançamento: 2 semanas"

Termos Importantes:

- Prompt: A entrada de texto que você fornece ao ChatGPT.

- Modelo de Linguagem: Um algoritmo treinado em uma grande quantidade de texto para entender e gerar linguagem natural.

- IA (Inteligência Artificial): Tecnologia que permite a um sistema aprender e executar tarefas que normalmente requerem inteligência humana.

Dicas para Começar:

Seja Claro e Específico, quanto mais detalhado for o seu prompt, melhor será a resposta.

Não tenha medo de testar diferentes tipos de prompts para ver como o ChatGPT responde.

Use as respostas do ChatGPT como um ponto de partida e edite conforme necessário para atender às suas necessidades.

Para mais detalhes e exemplos avançados, recomendo a leitura do ebook "ChatGPT: Do Zero aos Prompts Avançados" do Edney Souza 🧙‍♂️ . Ele oferece um guia completo e prático para aproveitar ao máximo essa ferramenta incrível.

Espero que este resumo tenha ajudado você a entender melhor como começar a usar o ChatGPT. 

Boa sorte e boas conversas com a IA!
Your Premier Destination for HydraFacial, Laser Hair Removal, and PicoSure Tattoo Removal in Dubai
Tags: laser, hair, removal
Published: 2024-05-18 13:47:31

In the bustling city of Dubai, where beauty standards are high and innovation is paramount, finding the right aesthetic clinic can be a daunting task. With a plethora of options available, discerning individuals seek excellence, expertise, and cutting-edge treatments to achieve their desired aesthetic goals. Enter Al Biraa Clinic, a beacon of excellence in the realm of aesthetic medicine, offering an unparalleled experience in HydraFacial, [Laser Hair Removal](https://www.albiraaclinic.com/laser-hair-removal-in-dubai/), and PicoSure Tattoo Removal.
Nestled in the heart of Dubai, Al Biraa Clinic stands as a testament to the fusion of luxury and advanced technology in the realm of aesthetic medicine. Boasting a team of highly skilled professionals, state-of-the-art facilities, and a commitment to excellence, Al Biraa Clinic has earned its reputation as one of the premier destinations for beauty enthusiasts in the region.
Uma nova forma de utilizar os Switch Case no Dart 3
Tags: dart3, dart, flutter, switch
Published: 2024-05-18 13:44:07

![](https://cdn-images-1.medium.com/max/800/1*Sgpqav1hRit5YgeH0jEcJw.png)

O Dart 3 nos trouxe muitas novidades incríveis, e já abordei de algumas por aqui, um recurso muito legal foi o que denominamos de **Switch Expressions**.

A forma tradicional do **Dart** é utilizarmos o **switch statement** que é uma forma imperativa e procedural que estamFos acostumados.
{% gist https://gist.github.com/toshiossada/fc700fab930880c0798f2af69d210125 file=playground.dart %}

Note que, da forma antiga, com a Switch Statement não temos a capacidade de retornar diretamente o valor à variável, com a nova maneira utilizando Switch Expression traz uma importante mudança de introduzir aspectos da programação funcional para o Dart trazendo a linguagem mais flexibilidade e poder.

Um dos principais avanços das Switch Expressions no Dart 3 é a adoção de uma sintaxe similar às arrow arrow functions para mapear os cases diretamente ao valor de saída. Isso melhora a legibilidade do código e o torna menos propenso a erros.
{% gist https://gist.github.com/toshiossada/ae2133ba99584ff3e2dde1974e7003e5 file=playground.dart %}

Note que o default foi **substituído** apenas pelo **_** (**underline**). Podemos melhorar ainda mais nosso código da seguinte forma:
{% gist https://gist.github.com/toshiossada/931efe7e6a73c42dca58003ce619e690 file=playground.dart %}
### Pattern Matching

Outro recurso bastante interessante é o **Pattern Matching**, com ele você pode desestruturar um objeto complexo ao mesmo tempo em que está validando uma condição e utilizar esses valores dentro da condição, no Dart 3 você pode utilizar o **Pattern Matching** dentro de suas condições switchs.

Veja no exemplo a seguir:
{% gist https://gist.github.com/toshiossada/7fefcfc59ec87a25b61234818311fbc7 file=playground.dart %}

### Guard Clauses

Como mostrei em artigos no Dart 3 temos os **records, a**gora conseguimos usar os **pattern matching** em conjunto com os **records**, essa poderosa junção permite com que possamos desestruturar dados e executar uma condição nos dados desestruturados, utilizando a palavra reservada **_when_** para especificar a condição.
{% gist https://gist.github.com/toshiossada/53de9dff0b8d9e16b00c92c2fd2aee48 file=playground.dart %}

Sendo que os valores também podem ser providos de uma função.
{% gist https://gist.github.com/toshiossada/232b489ff23498a784729a6d67e702d0 file=playground.dart %}

Com toda certeza essas novas features deixam o Dart cada vez mais com uma cara de programação funcional, o Dart vem trazendo o que há de melhor da programação funcional e imperativa deixando o código mais legível, eficiente e testável


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


Entre em nosso discord para interagir com a comunidade: flutterbrasil.com.br
Multiplos retornos no Flutter/DART com os Records
Tags: records, dart, flutter
Published: 2024-05-18 13:35:50

![](https://cdn-images-1.medium.com/max/800/0*R97t9T6hDW7XmFCB.png)

No último dia 10 de maio, ocorreu o Google IO, obviamente não foi um evento voltado para (somente) programação e sim um evento que anuncia todos os seus próximos lançamentos como o Bard, Pixel Tablet, Pixel Fold, Pixel Watch. etc.

Claro todos estávamos ansiosos com o lançamento do Dart 3 que foi anunciado em janeiro no Flutter Forward, e foi exatamente isso que aconteceu, Dart 3 na Stable junto com a vinda do Flutter 3.10, muitos acabaram se decepcionando pois estavam com expectativas muito elevadas achando que viria novidade, mas as novidades eram as que foram anunciadas no Flutter Forward.

Uma das features que eu particularmente estava aguardando é a possibilidade de sua função conseguir retornar mais de um valor, e isso hoje é possível aos records.

Basicamente é só colocar os tipos dos retornos entre parênteses e receber nas variáveis, também em parênteses, descontruindo os retornos

{% gist https://gist.github.com/toshiossada/c1940454d464c1b84889d1fe938afdaf file=main.dart %}

No retorno ao invés de receber em várias variáveis posso também receber em apenas uma e acessar de forma posicional.
{% gist https://gist.github.com/toshiossada/3333db6982adcee018ec5e665361987f file=main.dart %}

Também conseguimos passar o retorno de forma nomeada, basta colocar o nome do retorno na frente do tipo do dado
{% gist https://gist.github.com/toshiossada/d02b5c15399ce083eaeb965a7db50096 file=playground.dart %}

Caso queiramos ignorar alguns dos retornos basta usar o underline como nome da variável de retorno
{% gist https://gist.github.com/toshiossada/ab56a32c5a58f0de231af291937003c4 file=playground.dart %}

Com isso podemos fazer tratamento de erros que nem é de costume fazer em algumas linguagens como o Go Lang de retornar um Erro ou o valor da função e depois de retornarmos validamos se o erro foi retornado
{% gist https://gist.github.com/toshiossada/9243516dabc05de44fd3567310109be7 file=playground.dart %}

A dúvida de muitos será, isso substitui o DartZ? E a resposta é depende, se utiliza o DartZ apenas para retornar dois valores sim, entretanto o DartZ tem muitas outras features que nos auxiliam no desenvolvimento.

Muito bacana essa nova funcionalidade no Dart 3 né? Pode não parecer grande coisa, mas eu, que trabalhei com linguagens que tinham essa possibilidade, posso te garantir que ajuda bastante. Além do mais os records possibilitaram outras features mais interessantes como os Destructuring e os records patterns que iremos ver nos proximos artigos :)

Tem vários exemplos em meu github [https://github.com/toshiossada](https://github.com/toshiossada) Dê uma olhada e deixe suas estrelinhas! :)


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


Entre em nosso discord para interagir com a comunidade: flutterbrasil.com.br
De4py: Advanced python reverse engineering
Tags: malware, python, security, reverseengineering
Published: 2024-05-18 13:07:07

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

[De4py](https://github.com/Fadi002/de4py) is an advanced Python deobfuscator with a beautiful user interface and a set of powerful features. It’s designed to help malware analysts and reverse engineers tackle obfuscated Python files and more.

Here are some key features of De4py:

- Deobfuscation: De4py supports popular obfuscators like Jawbreaker, BlankOBF, PlusOBF, Wodx, Hyperion, and pyobfuscate.com obfuscator. It helps you unravel the obfuscated code and understand its true functionality.

- Pycode Execution: You can execute Python code directly within the process. This feature is handy when dealing with programs that have licensing checks or other conditional behavior.
Strings Dump: Extract strings from the Python process memory, which can be useful for analyzing webhooks or other data stored in memory.

- Removing Exit Function: De4py can remove the exit function, preventing the program from terminating prematurely (useful for debugging).

- Getting All Functions: Retrieve a list of all functions within the Python process. Useful for modifying functions in memory.

- Pyshell GUI: A custom GUI allows you to execute Python code within the desired process.

- GUI and Console Support: De4py offers both console and GUI modes. The GUI provides a more user-friendly experience.

- File Analyzer: Detects if a Python program is packed (e.g., using pyinstaller) and attempts to unpack it. It also identifies suspicious strings (IPs, websites, specific keywords) within the file.

- Behavior Monitoring: Monitors Python processes for file handles, process interactions, memory reads/writes, and socket activity. It can even decrypt OpenSSL-encrypted content.
Plugins System: Customize the theme or add custom deobfuscators using plugins.

- API System: Use De4py’s features (deobfuscator engine and pyshell) in your own tools.

it's are maintained by my friend Fadi002 and me (AdvDebug), any feedback is appreciated.