teleren/devto huggingface dataset:
Setting Up a Developer Machine for Generative AI Development
Tags: azure, openai, python, generativeai
Published: 2023-11-27 15:43:12

In this blog post, we will walk through the steps to set up a developer machine for Generative AI development. This setup includes the Windows Subsystem for Linux (WSL) on Windows 11, Python in WSL Ubuntu, Visual Studio Code on Windows 11, and several necessary extensions. Let's get started! 

## Set Up Windows Subsystem for Linux in Windows 11
The first step is to set up the Windows Subsystem for Linux (WSL) in Windows 11. This allows you to run a Linux environment directly on Windows, without the overhead of a traditional virtual machine or dual-boot setup. 

## Install Python in WSL Ubuntu 
Once you have WSL set up, the next step is to install Python in your WSL Ubuntu environment. You can do this by running the following command in your WSL terminal: 

`sudo apt install python3 python3-pip `

## Install Visual Studio Code in Windows 11 
Visual Studio Code (VS Code) is a popular code editor that we'll be using for our development. You can download and install VS Code from the official website. 

## Install Python Extension in Visual Studio Code
After installing VS Code, you'll need to install the Python extension. This extension provides rich support for Python in VS Code. You can install it from the Extensions view in VS Code. 

## Install Connect to WSL Extension in Visual Studio Code 
The "Remote - WSL" extension in VS Code lets you use the Windows Subsystem for Linux (WSL) as your full-time development environment right from VS Code. You can install it from the Extensions view in VS Code. 

## Connect Visual Studio Code with WSL
To connect VS Code with WSL, you can use the "Remote-WSL: New Window" command from the Command Palette (F1) in VS Code. This will open a new VS Code window connected to WSL. 

## Install pip in WSL Ubuntu
pip is a package manager for Python. You can use it to install Python packages. To install pip in your WSL Ubuntu environment, you can run the following command in your WSL terminal: 

`sudo apt install python3-pip `

## Install OpenAI SDK 
The OpenAI SDK is a set of tools and libraries for working with generative AI models. You can usually install Python libraries using `pip`. Please refer to the official OpenAI SDK documentation for the most accurate information. 

## Set Up Python Environment
Finally, you'll want to set up a Python environment for your project. This can help keep your project's dependencies isolated from other projects. Here's a sample command on how to set up a Python environment: 

`python3 -m venv myenv `

This command creates a new Python environment in a folder named `myenv`. You can replace `myenv` with your preferred environment name.  

That's it! You now have a developer machine set up for Generative AI development. 

Happy coding!
DevFest 2023 - GDG Open
Published: 2023-11-27 15:41:01

Hola 👋 Android Devs,

El 12 de noviembre, participamos en el DevFest 2023 del [Google Developer Groups Open](https://gdg.community.dev/gdg-open/) (GDG Open), en donde elaboramos un taller sobre Jetpack Compose. ¿Qué es Jetpack Compose? Compose, es un moderno UI Toolkit declarativa para crear aplicaciones nativas de Android. Simplifica y acelera el desarrollo de la interfaz de usuario en Android con menos código, herramientas potentes y Kotlin APIs intuitivas.

🗣️ Expositores: 
	Bruno Aybar 🇵🇪 [@brunoaybarg](https://twitter.com/brunoaybarg)
	Josue Durand  🇵🇪 [@JosueDurandPebe](https://twitter.com/JosueDurandPebe)

 🗒️ Tema: "Tus primeros pasos en Jetpack Compose" 

En el taller se trataron los siguientes tópicos :
Pensando en Compose.
Funciones composable.
Compose toolkit.
Live demo: Clonando Instagram

Recursos del taller : 
- [https://github.com/android/compose-samples/tree/main/Jetsurvey](https://github.com/android/compose-samples/tree/main/Jetsurvey)
-[https://drive.google.com/file/d/10Ajm79HUXndyrXurTKRswBwZ43WyZQbR/view?usp=sharing](https://drive.google.com/file/d/10Ajm79HUXndyrXurTKRswBwZ43WyZQbR/view?usp=sharing)
- [https://github.com/JosueDurand96/AppInstagramClone/tree/main](https://github.com/JosueDurand96/AppInstagramClone/tree/main)

Gracias a todos las personas que participaron en el taller y nos vemos en una próxima oportunidad.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x34agc51zzdtnt6x8jbw.jpeg)
Paracetamol.js💊| #220: Explica este código JavaScript
Tags: javascript, spanish, webdev, programming
Published: 2023-11-27 15:37:49

## **<center>Explica este código JavaScript</center>**
#### <center>**Dificultad:** <mark>Básico</mark></center>

```js
const myString = "Hello World. How are you doing?";
const splits = myString.split(" ", 3);

console.log(splits); // 🤔🤔
```

- A. `[" ", " ", " "]`
- B. `[ "Hello", "World.", "How", "are" ]`
- C. `[ "Hello", "World.", "How" ]`
- D. `Syntaxis Error`

---

Respuesta en el primer comentario.
What Are the Benefits of Warriors
Published: 2023-11-27 15:32:54


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



The term "warriors" typically refers to individuals who engage in warfare or combat, often as soldiers or fighters. The benefits of warriors can vary depending on the context, but here are some general aspects and potential benefits associated with warriors:

**Defense and Security:_**
Warriors play a crucial role in defending a community, nation, or group from external threats. Their skills and training contribute to the overall security of the population.

**_Order and Stability:_**

The presence of a disciplined warrior class can help maintain law and order within a society. Warriors can be instrumental in preventing or addressing internal conflicts and unrest.

**_Tradition and Culture:_**
Warriors often embody cultural and historical traditions. They may be seen as symbols of bravery, honor, and the values of a particular society. The stories and legends of warriors contribute to a community's identity.

**_Skill Development:_**
Warriors undergo rigorous training, developing physical, mental, and tactical skills. This training not only prepares them for combat but also enhances their overall capabilities, discipline, and resilience.

**_Unity and Camaraderie:_**
The bonds formed among warriors create a sense of camaraderie and unity. This solidarity is essential for effective teamwork and cooperation on the battlefield.

**_Leadership and Discipline:_**
Warriors often receive leadership training, and their disciplined approach to tasks can extend beyond the battlefield. These qualities can positively influence organizational and societal structures.

**_National Pride:_**
Successful warriors contribute to a sense of national pride. Their victories can be celebrated as achievements for the entire community or country.

**_Innovation and Adaptability:_**
Warriors may need to adapt quickly to changing situations on the battlefield. This adaptability can foster innovation and the development of new strategies and tactics.

**_Training Ground for Heroes:_**
Warriors, particularly in mythology and literature, are often portrayed as heroes. Their stories inspire others and can serve as examples of courage, sacrifice, and resilience.

**_
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d6kht2f5g1l9ty0ijce4.jpg)_**
In the context of international relations, a strong and well-trained military can contribute to global stability by acting as a deterrent to aggression and ensuring a nation's ability to participate in peacekeeping efforts.
It's important to note that while warriors contribute to various aspects of society, the impact can be both positive and negative depending on the ethical considerations, the nature of conflicts, and the values upheld by the society in question.
Microsoft Azure - Virtual Desktop 🌐💼
Tags: azure, cloud, programming, devops
Published: 2023-11-27 15:30:00

Do you want to redefine the way your team works remotely? Look no further than Microsoft Azure Virtual Desktop (AVD)! Whether you're just starting your remote work journey or are a seasoned pro, AVD is a game-changer. Here's why you should be excited:

🌟 **Anywhere Access**: AVD enables you to access your desktop and applications from anywhere, on any device. Say goodbye to location constraints and hello to productivity on your terms.

🚀 **Scale on Demand**: Whether you have a small team or a global workforce, AVD scales with you. Easily add or remove users and adjust resources to meet your needs.

🔐 **Security First**: Trust Azure's robust security features to protect your data and applications. With multi-layered security, compliance certifications, and conditional access, your remote environment is secure.

🔧 **Easy Management**: Manage your virtual desktops and apps with simplicity. Azure Portal, PowerShell, or Azure Resource Manager make administration a breeze.

📊 **Cost Efficiency**: Pay only for what you use with AVD's flexible pricing options. Optimize costs, reduce infrastructure overhead, and keep your IT budget in check.

🌐 **Compatibility**: Run Windows apps on Azure VMs or Windows 365 Cloud PCs seamlessly. Legacy apps? No problem. AVD supports them too.

🌈 **Innovation Hub**: Stay ahead of the curve with the latest features and updates. AVD is continuously evolving to deliver the best remote work experience.

Whether you're new to remote work or a seasoned pro, Microsoft Azure Virtual Desktop empowers your team to work securely and efficiently from anywhere. 🚀🌐
🚀 Exciting Update: 'Reversing Linked Lists with LeetCode's 'Reverse Linked List'!' 🎥
Tags: programming, beginners, algorithms, tutorial
Published: 2023-11-27 15:21:29

Hello, tech enthusiasts! I'm thrilled to share my latest video where I conquer the challenge of LeetCode problem 206 - 'Reverse Linked List' using the Iterative Approach. Join me as we explore an efficient way to reverse a linked list in-place.

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

🎥 Watch the video here: https://youtu.be/K0m7bCZXaCE?si=lnMn44IL2z3_opRX
🔗 Access the code on GitHub: https://github.com/Vinay352/Leetcode/tree/main/0206-reverse-linked-list
🔗 Explore the LeetCode question: https://leetcode.com/problems/reverse-linked-list/

Your thoughts and comments are highly appreciated, so feel free to share your insights below. Let's continue our shared journey of learning and coding! 💡👨‍💻

Stay connected:
🎥 YouTube: https://www.youtube.com/@VinayJainDev3097
📚 Medium: https://medium.com/@vinay.j3097
📝 Dev.to: https://dev.to/vinay_jain_dev
🔗 GitHub: https://github.com/Vinay352
🐦 Twitter: https://twitter.com/vinayj3097
📸 Instagram: https://www.instagram.com/vinay_jain_dev/
📘 Facebook: https://www.facebook.com/vinayj3097/
The Developer’s Paradox!
Tags: webdev, programming, productivity, python
Published: 2023-11-27 15:18:32

So let’s keep this plain. The “Paradox” is inescapable and is something all developers face in their careers at some point. And if you haven’t faced it yet, take some time to think about how you’ve grown as a developer.



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


**Now you may be thinking, “What is the paradox?”. It’s this:**

→ I feel like I’ve learned so much.

→ I feel like I don’t know enough.

These two conflicting feelings will lead you through highs and lows. You’ll have moments of thinking, “I’m a fantastic developer and I’m doing great,” but then you’ll quickly shift to, “I don’t know enough, and maybe I made the wrong career choice!”

Both feelings exist simultaneously and both will grow the longer you hone your craft. The more you learn and grow your skillset, the more you’ll become aware of tools, technologies, languages, concepts, or frameworks that are out there that you currently know nothing about or have no experience in.

It’s like saying “The more I learn, the more I realize how much I don’t know”.

This paradox is applicable to many aspects of life but particularly as a software developer with all the things going on this paradox that we’re talking about seems more applicable. The reason is that our industry evolves and changes at such a rapid pace, you learn some technology X and wake up tomorrow just to see that everything is deprecated or is out of context. Often, as soon as you’ve mastered one framework, there is another one ready to take its place, and the loop goes on and on and on.
Kafka e mensageria assíncrona em 5 minutos
Tags: pubsub, async, await, kafka
Published: 2023-11-27 15:17:05

## Objetivo
Nesse post voce não vai aprender a implementar de forma técnica Kafka e mensageria assíncrona em seu sistema, e sim entender como ele funciona de forma simples e abstraída.


### Lets go

Imagine que temos um caderno 📚. Neste caderno, algumas pessoas querem apenas **ESCREVER** coisas, e outras querem apenas **LER** o que está escrito. Chamaremos de PUBs e SUBs, respectivamente, essas pessoas.

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

As pessoas que escrevem no caderno têm algo importante para compartilhar, então elas abrem o caderno e escrevem suas mensagens. Essas mensagens podem ser sobre qualquer coisa, como histórias, pensamentos ou até mesmo tarefas que precisam ser feitas.

Por outro lado, as pessoas que só querem ler podem vir ao caderno a qualquer momento, abrir e ler as mensagens que foram escritas pelos escritores. Eles não precisam estar lá quando a mensagem é escrita; podem ler mais tarde, dependendo da estratégia preestabelecida (não vamos nos concentrar nisso).

A parte legal é que os leitores não precisam esperar pelos escritores. Eles podem continuar fazendo suas tarefas e voltar ao caderno quando quiserem. As mensagens ficam lá esperando por eles ⏰⏰⏰.

E no nosso caderno nao precisamos ter apenas escritores, podemos ter desenhistas, compositores, poetas e todo e qualquer outro tipo de produtor que queira se expressar no nosso espaco.

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

Então, resumindo,

Kafka é como um assistente que cuida do caderno. Ele garante que as mensagens sejam salvas com segurança e que os leitores possam pegá-las sempre que quiserem. Os escritores também não precisam se preocupar se os leitores estão lá ou não. Eles apenas escrevem, e Kafka cuida do resto.

Mensageria assíncrona significa que os escritores não precisam esperar pelos leitores. Eles escrevem suas mensagens quando quiserem, e os leitores podem lê-las no seu próprio tempo. É como se os escritores deixassem recados para os leitores, e estes pudessem chegar e ler esses recados quando achassem conveniente. Nossos PUBs são nossos Publishers e nossos SUBs são nossos Subscribers.

### Alinhando com o conceito de Microsserviços
Agora, imagine que o caderno ficou muito popular e diversas pessoas (PUBs) querem usá-lo para compartilhar diferentes tipos de informação. 

Então, em vez de ter apenas um caderno, podemos ter vários cadernos (que também podemos chamar de TÓPICOS) e cada um dedicado a um tipo diferente de mensagem. O microsserviço nesse cenário fica responsável por escrever e/ou ler em determinado caderno (às vezes os dois).

Essa abordagem é como uma maneira organizada e eficiente de compartilhar informações importantes!

### It is what it is ✨
What are your Goals for the week of November 27?
Tags: motivation, discuss
Published: 2023-11-27 15:15:00

## What are your goals for this week? 

It's the last of November the holidays are coming. So is the end of the year. Any things you want to do before the end of 2023?

- Are you building anything you want to talk about? 
- What will be a good result by week's end?
- What events are happening any week? 
  * in person or virtual?
- Any goals for the end of the year?

### Last Week's Goals

- [:white_check_mark:] Continue Job Search. Did some 1st half of the week then enjoyed holiday. Also did some reworking of my office. Late afternoon Sun is causing massive glare on my screen. I'm going to try using the old desk on the other side of the room.
- [:white_check_mark:] Blogged about holiday sales for developers.
This month Virtual Coffee is trying to write 100,000 words. We're over 58,000 with five days to go.
    *Our list of blogs is on [Virtual Cofffe.io](https://virtualcoffee.io/monthlychallenges/nov-2023)
   * I'm trying to break my count from last year of 4,528 words. 
   * Word Goal progress: 3,206/4,528
   * Personal stretch Goal 5,000 
- [:x:] Project work maybe content updates.
- Events
  * [:white_check_mark:] It was a holiday week not as much happening. I virtually attended a meetup in Dublin.
- [:white_check_mark:] Run a weekly Slack thread similar to this post. 
- [:white_check_mark:] Build LEGO Sets. Building Wed or Thursday. Will post on Mastodon.
- [:x:] Finish the pictures from the end of October. Didn't finish them made some headway.
- [:white_check_mark:] Thaw the turkey! It was roasted and delicious. 

### The build


![Interior of LEGO Millennium Falcon from Star Wars. It is decorated for Christmas. Rey and Finn are wearing ugly sweaters.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i6xju1zwofldgmhl7qk8.jpg)

This is the Millennium Falcon Holiday set. Rey and Finn are wearing ugly sweaters. I will try to recreate those with CSS this season. I've made the [Imperial Logo](https://dev.to/jarvisscript/ugly-sweater-css-the-imperial-logo-33p9) before but couldn't get the Rebel logo, that Finn is wearing, right. 


### This Week's Goals

- Continue Job Search. I'll apply and network. I'll spend time editing resumes, linkedIn, and my personal site.
- Blog. Working on a draft now.
- Project work 
- Events
  * Thursday Virtual Coffee.
  * I don't think there any local meetups in Nashville this week.
- Run a weekly Slack thread similar to this post. 
- Finish Office reset. 
- Finish the pictures from the end of October.


### Your Goals for the week

Your turn what do you plan to do this week? 

- Are you building anything you want to talk about? 
- What will be a good result by week's end?
- What events are happening any week? 
  * in person or virtual?
- Any goals for the end of the year?


```html
-$JarvisScript git push
```
CSS: Box Model TIL Blog
Published: 2023-11-27 15:04:47

- The Box Model consists of:
Margin, Content (Width + Height), Border, Padding

-border-radius can modify the border box so it does not have to be a square.

Shorthand Properties (Applies to Margin as well)
-When padding has four values it goes in the order of top, right, bottom, left
-When padding has 3 values it goes in the order of top, left and right, and bottom values
-When padding has 2 values it goes over top/bottom and left/right values

-Horizontal Margins add, Vertical Margins do not; larger of the 2 margins between elements will be the margin used


-Min-width and min-height: Minimum amount of space element will take, will not go less than that. 
-Max uses the same concept

-Overflow Property: Deals with content that may spill out of its given element/box (3)
  hidden, scroll, visible

-Visibility Property (3): visible, collapse, hidden

-Content Box, Border Box
Content Box is affected by border thickness and padding, border-box model is not

-Block elements take in the full width of their parent elements, thus they do not overlap with other block-level elements. The default value of block-elements position is on the left side. There are 5 total ways to change its position using the position property:
-Static(default value-no need to specify)(normal flow)
-Relative (normal flow)
-Absolute (removed from document flow)
-fixed (removed from document flow)
-Sticky (in document flow)

-Z-index takes integer value (deals more over layers of elements)

-Display Value:
  Inline
  Block
  Inline-Block

-Float Property (left or right)
  Must have width specified or will assume full width, thus making float useless

-Clear Property (4 values)
  Left
  Right
  Both
  none
Building Portable Applications: Adapting to Diverse Environments with Ease
Published: 2023-11-27 14:55:41

In today's interconnected world, applications are expected to seamlessly adapt to a wide range of environments, from on-premises servers to public clouds and hybrid deployments. This flexibility is crucial for businesses that need to reach a global audience and ensure uninterrupted operation in the face of changing infrastructure.

Traditional monolithic architectures, while once prevalent, have struggled to meet the demands of portability. Their tightly coupled nature makes them difficult to adapt to different environments, often requiring extensive modifications and hindering deployment agility.

Microservices architecture, on the other hand, emerges as a revolutionary approach to building portable applications. By breaking down applications into smaller, independent services, microservices architecture enables applications to adapt to diverse environments with ease. Each microservice encapsulates a specific business capability and communicates with other services through well-defined APIs, promoting loose coupling and fostering portability.

The benefits of microservices architecture for portability extend beyond the modularity of its structure. [Microservices best practices](https://www.clickittech.com/devops/microservices-best-practices/
), such as containerization and the use of cloud-native technologies, further enhance the portability of applications. Containerization, by encapsulating microservices and their dependencies, simplifies deployment across different environments. Cloud-native technologies, such as Kubernetes and serverless computing, provide standardized infrastructure and management tools, further reducing the friction associated with deployment across diverse environments.

To fully realize the portability benefits of microservices architecture, it is essential to adhere to best practices throughout the development and deployment lifecycle. This includes:

* **Designing for portability:** From the outset, microservices should be designed with portability in mind. This includes using well-defined APIs, minimizing dependencies, and adopting a cloud-native mindset.

* **Leveraging containerization:** Containerization provides a lightweight and portable environment for deploying microservices, making them easy to move across different environments.

* **Utilizing cloud-native technologies:** Cloud-native technologies, such as Kubernetes and serverless computing, offer standardized infrastructure and management tools, simplifying deployment and management across diverse environments.

* **Adopting continuous integration and continuous delivery (CI/CD):** CI/CD practices automate the building, testing, and deployment of microservices, ensuring that the latest changes are consistently deployed across different environments.

By embracing microservices architecture and adhering to best practices, developers can build applications that seamlessly adapt to diverse environments, enabling businesses to expand their reach and ensure uninterrupted operation in a world of ever-changing infrastructure demands.