teleren/devto huggingface dataset:
css breakfast #3
Tags: css, webdev
Published: 2024-01-22 21:24:05

this blog post is more like a little snack. 

after watching Kevin Powell's styling underlined links [video](https://www.youtube.com/watch?v=x3MTfp3HDLc)... i knew i had to try it out for myself!!

## fancy `a` tags

turns out we do not need any of that pseudo class schtuff anymore!

```
a {
  text-decoration: none;
  position: relative;
}

a::after {
  content: '';
  position: absolute;
  width: 100%;
  bottom: -5px;
  left: 0;
  height: 3px;
  background: lime;
} 
```
![bye bye](https://media.giphy.com/media/UrcXN0zTfzTPi/giphy.gif)

---

instead we should use `text-decoration`~! with it we can change the thickness, color, style, and line. 


![screenshot of a styled a tag](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7vis1quk8k7rjqcnzug8.png)

```
a {
  color: hotpink;
  text-decoration-thickness: 8px;
  text-decoration-color: lime;
  text-decoration-style: wavy;
  text-decoration-skip-ink: all;
  text-decoration-line: underline; 
}
```

but that is so much typing, right?? 

good news!! you can shrink it down to one line <333 `text-decoration: 8px lime solid underline;`

here is a [codepen](https://codepen.io/kachel-the-decoder/pen/mdoMbzv?editors=1100) where i do a couple smol animations to change the link stylings. 

ope! forgot about one more thing! in order to change the position of the underline, you will have to use a non decoration style called `text-underline-offset`.

now is your time to get fancy with your links. 

![fancy](https://media.giphy.com/media/HDNcjt5ELkJSE/giphy.gif)
SPA (Single Page Application)
Published: 2024-01-22 21:20:32

SPA(Single Page applicaton) é um tipo de aplicação web que ,apesar da nomeclatura, não se trata de uma única página. A diferença existe na forma como a página é carregada, geralmente as aplicações são renderizadas pelo lado do servidor, nas SPA’s não, o contéudo é carregado uma única vez no momento inicial de acesso a aplicação e conforme necessário vai se atualizando apenas as partes mais relevantes da página, sem recarregar a página por completa, tornando a usuabilidade melhor para o usuário.

De modo geral, em uma aplicação SPA, o carregamento de recursos (como HTML,CSS e Javascript) ocorre do lado do cliente(browser) via APIs Javascript, desta formas se retira uma responsabilidade do servidor de renderizar e processar os contéudos,  mas apenas lidar e manipular os dados da aplicação, focando na persistência em bancos de dados e retornar os dados para o cliente, geralmente utilizando comunicação RestFull via chamadas HTTP, devolvendo dados no formato XML e JSON. Essa arquitetura é ótima pois mantém uma separação de responsabilidades bem clara entre back-end e front-end, permitindo ter duas equipes trabalhando em paralelo. 

Bons exemplos de aplicações escaláveis com SPA’s são:  Gmail, Outlook, Trello, Airbnb e Netflix. 

Muitas SPAs são construídas utilizando frameworks JavaScript, como: Angular, React ou Vue.js. Esses frameworks simplificam o desenvolvimento, facilitando a criação de componentes reutilizáveis e gerenciando o estado da aplicação de maneira eficiente.

Mas como não há “bala de prata” no mundo da programação, neste tipo de aplicação web também possui vantagens e desvantagens. Algumas delas são:   

Vantagens:

- Melhor experiência do usuário, pois não há necessidade de ao mudar de página ter uma busca em um servidor para obter a página, deixando a navegação mais fluída.
- Desenvolvimento mais fácil e rápido, não havendo necessidade de escrever código para renderizar páginas via servidor.
- Melhor funcionamento off-line e cache.

Desvantagens: 

- Acoplamento ao Javascript no navegador, pois uma SPA requer que  Javascript esteja presente e ativado.
- Menor capacidade de otimização no SEO.



![tecnologia-quadro](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vaj186xn3hkf2ovw29jk.png)
10+ ways to improve Employee Retention
Published: 2024-01-22 21:04:47

In this podcast episode, Krish discusses employee retention and the overall employee experience. He shares insights and tips based on his experience in software development and running a startup. The conversation covers various topics such as job descriptions, recruiter reach out, interview processes, communication and feedback, onboarding, promotions and pay raises, time off policies, equipment, happiness check, training, engagement, restructuring, and moving on. Krish emphasizes the importance of treating employees as individuals and creating a positive work environment.

## Takeaways

* Job descriptions should be engaging and reflect the company culture.
* Recruiters should reach out to candidates in a personalized and clear manner.
* The interview process should be well-defined and relevant to the role.
* Regular communication and feedback are crucial for employee satisfaction.
* Onboarding should be seamless and include necessary resources and support.
* Treating contractors and consultants with respect and clarity is important.
* Promotions, pay raises, and titles should be personalized to meet individual preferences.
* Time off policies should be flexible and considerate of employees' needs.
* Providing the right equipment and tools for work enhances productivity and satisfaction.
* Engagement activities should be tailored to the team's preferences and promote a positive work culture.
* Restructuring should be handled with empathy and transparency.
* When moving on, employees should give notice and assist with the transition process.

## Chapters

**00:00** Introduction

**01:42** Job Description

**04:46** Recruiter Reach Out

**08:52** Interview Process

**12:23** Communication and Feedback

**13:21** Onboarding Process

**15:21** Treating Contractors and Consultants

**17:05** Feedback

**18:05** Promotions, Pay Raises, and Titles

**20:24** Time Off

**22:01** Equipment

**25:31** Happiness Check

**27:00** Training

**28:30** Engagement

**30:59** Restructuring

**34:36** Moving On

**35:36** Conclusion

## Video
{% embed https://youtu.be/HBlRobb4YQI %}

## Transcript

[https://products.snowpal.com/api/v1/file/9efaa4fd-0d5d-4b67-bc62-6dd41484f1c2.pdf](https://products.snowpal.com/api/v1/file/9efaa4fd-0d5d-4b67-bc62-6dd41484f1c2.pdf)
Reflections: Bridging Theory to Practice - Azure Unveiled in #100DaysOfCloud
Tags: 100daysofcloud, azure, adcstreak, cloud
Published: 2024-01-22 21:02:42

As we stand at the culmination of an enriching week in the #100DaysOfCloud journey, today's exploration was not just a recap but a bridge that connects the theoretical foundations laid in the past six days to the practical applications thriving in the industry.

## From Learning to Application: 
Industry Insights: Reflecting on the journey from Day 1 to Day 6, the concepts of Azure Cloud, Virtual Machines, Resource Groups, Azure Active Directory, RBAC, and PowerShell commands have evolved from mere theoretical constructs to tangible tools wielded in the industry. The clarity gained in these fundamental aspects has transformed into a robust skill set ready for application.

## Azure in the Industry Landscape: 
The industry is increasingly embracing Azure for its scalability, reliability, and comprehensive suite of cloud services. Organizations leverage Azure to build, deploy, and manage applications seamlessly. Understanding concepts like Resource Groups and RBAC is paramount in orchestrating efficient cloud infrastructures.

## Real-world Application of Azure VMs: 
The versatility of Azure Virtual Machines (VMs) stands out in various industry use cases. From hosting applications and websites to supporting complex workloads, Azure VMs are instrumental in driving business operations. The ability to deploy and manage VMs using PowerShell commands streamlines processes and enhances automation, crucial in industry settings where efficiency and scalability are key.

## PowerShell Commands: 
More Than Just Syntax: The additional exploration of PowerShell commands, especially the use of the "Verbose" parameter, delves into the practicality of scripting and automation. In the industry, where time is of the essence, leveraging PowerShell commands with the "Verbose" option provides real-time insights into script execution, aiding troubleshooting and fine-tuning.

## The Holistic Picture: 
Resource Groups, RBAC, VMs, and PowerShell: Today's recap brings into focus the holistic picture. Resource Groups offer organizational structure, RBAC provides precise access control, VMs serve as computing powerhouses, and PowerShell acts as the orchestrator. This integrated approach showcases how these components work synergistically in the industry's cloud landscape.

Thank you, @azdevindia and @beingwizard  for the insightful session and for providing us with a blueprint on how the services we have learned so far are being used in the industry.
I let AI draw my mind palace
Tags: discuss, ai, productivity, memory
Published: 2024-01-22 20:50:26

With mind palace, I mean the [Method of loci](https://en.wikipedia.org/wiki/Method_of_loci). I first stumbled across this method after watching the BCC series 'Sherlock'. The protagonist and one of his adversaries use this method to keep large amounts of information memorized. 

Now I was curious and tried to describe the place I call mine to AI (DALL-E and then MS Copilot). Here's my favorite result. 


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/49cdeufy0oedxpv0ppy0.jpeg)

And I'm even more curious to see yours. If you've ever used this technique (or have gotten curious reading this), please go ahead and post your mind palace here
How I prepared MLH Fellowship Application as a Career Switcher
Tags: careerdevelopment, career, beginners
Published: 2024-01-22 20:35:00

## Introduction
I recently got accepted for the MLH Fellowship Program 2024 Spring. I got rejected twice before. I want to share how I prepared for it here.    

To apply for this program, you need to submit a sample project and essays on why you want to become an MLH Fellow.  

## Learn from the Rejection

> After reviewing the essays you submitted with your application, our interviewers did not get the sense that you were especially passionate about the MLH Fellowship. 

This was the feedback for my second application. I also knew one of my friends got rejected for his/her sample project. I learned two things from this that my sample project was good enough and that they highly likely checked all the applications one by one.

This was important to me since I didn't want to spend that much time on ATS auto rejection. I decided to put more effort into this application. How can I show I'm passionate about the program? The essay part is the key to this. I needed to know about the program to show my passion and explain why this program would help me to succeed in the tech industry. 
 
## How I researched about the program
This process needs some time but it helps you to show how passionate you are about the program. 
- Check their website 
- Check their YouTube channel
- Check blog posts by past participants
- Talk with past participants 

## How I prepared the selection process
- Asked my friends to review my application
- Practice general and technical interview with my partner and friends

## Extra Step
I'm not sure if this helps me to get an interview but it might have something to do with it. I was active in the MLH events. They have Hackathons and Weeklong workshop events. I got prizes from the Hackathon and stickers for participating in their workshop events. 

I especially enjoy their month-long Hackathon. I can work on the project at my pace, unlike weekend Hackathon.

## Ending Note
The MLH Fellowship program is appealing to early career developers and open to anyone around the world, so the competition is high. I heard the passing rate is only 2%. This program is mainly for college students, so career switchers probably have a lower chance of getting into the program. The good thing is that you can apply for the program as many times as you want. If you improve your application according to their feedback, you have more chance to get into a program. 

Good luck with your application. I hope my experiences and insights provide valuable guidance for those considering the MLH Fellowship application.
MIPS Simulator for Codecademy
Published: 2024-01-22 20:30:41


The goal of this project is to create a program that simulates the functionalities of a CPU.  My program implements an Instruction Set Architecture that processes MIPS Instructions.  A data_input.txt file is provided to populate the memory and an instruction_input.txt file is provided to test the functionality.  I added additional instructions to the instruction_input file to test all of the instructions the MIPS Simulator can process. 

The Github Repository can be found here: https://github.com/mjp286/CPU-simulator.git

The program can be run by using Main.py. Different instructions can be added to the instruction_input.txt file or another '.txt' file can be used. If a different '.txt' file is used, the name of the file needs to be updated in Main.py. The MIPS Simulator can be populated with different data by altering the data_input file in MIPS_Simulator.py. The output of the program prints the state of the MIPS_Simulator(registers, memory, program counter) before the instruction is run and after the instruction is run. The output prints the state of the Cache after a "Cache" instruction is run.

This project was more difficult than other projects for Codecademy. I had to watch courses on YouTube in order to understand MIPS ISA enough to begin the project. Writing the code also required more research. It is true what they say "The best way to learn is by doing."
🤔Quem vai ler o que eu escrevo?
Tags: career, security
Published: 2024-01-22 20:23:28

Se você escreve ou se já pensou em escrever sobre algum assunto, com certeza já passou pela sua cabeça: Quem vai ler o que eu escrevo? E se for óbvio demais? 

Bem, eu não sou uma escritora, mas posso comentar sobre a minha experiência criando conteúdo. 

Quando eu comecei a pensar sobre criar conteúdo, várias dúvidas vieram. Primeiro, eu não sabia se deveria criar conteúdo técnico, fiquei insegura pelo meu pouco tempo de experiência na minha área. Segundo, e se o que eu escrever for óbvio demais? 

Mesmo com essas dúvidas, comecei a criar conteúdo básico com dicas e roadmaps para iniciantes ou para quem desejava entrar na área de cibersegurança. 

No início meu conteúdo chegava apenas nos meus amigos próximos, até que um dia meu conteúdo começou a chegar para outras pessoas e viralizar. 

O ponto importante não foi o meu conteúdo viralizar, mas sim perceber que o que era óbvio para mim não era óbvio para os outros e que mesmo que básico, meu conteúdo podia de alguma forma ajudar outras pessoas. 

A insegurança e o medo do julgamento dos outros não vai desaparecer, mas não deixe que isso te impeça de escrever sobre o que quer e compartilhar isso com outras pessoas. 

Agora vou começar o meu desafio de escrever sobre assuntos técnicos. Eu não sei quem vai ler o que eu escrevo, mas eu espero que possa ajudar alguém.

Vamos juntos!
Show your working out
Tags: newbie, communication, beginners, tutorial
Published: 2024-01-22 19:22:35

Does anyone remember what your Maths teacher used to say?

> Show your working out!

I mean, I bet they said more than that, but this is what I remembered. I think we used to get marked down if you just provided the answer. You got more marks when you showed how you derived your answer.

This post is a plea for software engineers to do the same when answering technical questions, or debugging an issue in group communication channels.

Let's take a standard question we are probably asked from time to time: "Can we see if there is a performance issue on our application right now, please?"

It's a typical question, so let's show differing levels of answering this question.

## 1 - Just the answer 🙂

You're asked, and you answer.

> No, I cannot see any performance issues at the moment.

Helpful to the originator of the question, they have their answer. Perhaps less useful to the next engineer to come along?

## 2 - The answer and visuals 😊😊

You're asked, you answer, and you provide some evidence to back up your opinion.

> No, I cannot see any performance issues at the moment. See the attached graphs for the relevant systems.
>
> _Graphs attached_ 📈📊💹📉

With any luck, the graph will provide some hints to the next engineer where you got the data from. The next engineer may be able to come to the same conclusion. Maybe next time, they can help answer the question (Multiplier effect).

<a name="3"></a>

## 3 - The answer, the visuals, and links to the original data source 😊👑🧠

You're asked, you answer. This time, you provide clickable links to the original data source that backs up your opinion ❤️.

> Looking at [this graph](#3) for system A, and [this graph](#3) for system B, I cannot see any performance issues in the last hour. Interestingly, if you scale out [here](#3) for 1 week, we are running a little quicker than the norm.
>
> See the attached graphs for the relevant systems.
>
> _Graphs attached_ 📈📊💹📉

With this level of context, many engineers can now walk in your shoes as to how you answered the question (Multiplier effect unlocked). Ideally, for those without direct access to monitoring systems, you provide visuals that are useful within in your communication format (be it Slack, email etc).

For me, this is the best type of answer to the situation. Sure, it takes longer, but perhaps this unlocks others to start answering the same questions in the future. The more you share knowledge around engineers, the quicker we can collectively respond to questions.

## Summary

I'd recommend we strive for example 3 above. If you provide enough context, others can learn from your experience. This unlocks their potential, and allows everyone to deliver at pace.

---

Photo by <a href="https://unsplash.com/@syinq?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Susan Q Yin</a> on <a href="https://unsplash.com/photos/books-on-brown-wooden-shelf-2JIvboGLeho?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Unsplash</a>
Ibuprofeno.py💊| #31: Explica este código Python
Tags: python, learning, spanish, beginners
Published: 2024-01-22 20:16:04

## **<center>Explica este código Python</center>**
#### <center>**Dificultad:** <mark>Intermedio</mark></center>

```py
## Reto #31
x = [10, 20]
def fn(entrada):
    entrada.append(30)
    return entrada
  
fn(x)
print(x) # 🤔
```

- A. `[10, 20, 30]`
- B. `[10, 20]`
- C. `[30]`
- D. `None`

---

Respuesta en el primer comentario.
Snansj
Tags: webdev, javascript, beginners, programming
Published: 2024-01-22 20:07:35

```

import 'package:shared_preferences/shared_preferences.dart';

class SharedPreferancesDataMethods {
  static const userInfoKey = "user_info_list";

  Future<SharedPreferences> sharedInit() async {
    final SharedPreferences prefs = await SharedPreferences.getInstance();
    return prefs;
  }
}
```
```

class CustomTextField extends StatelessWidget {
  const CustomTextField({super.key, required this.controller, this.hinttext});

  final TextEditingController controller;
  final String? hinttext;

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(8.0),
      child: TextField(
        controller: controller,
        decoration: InputDecoration(
            hintText: hinttext,
            border:
                OutlineInputBorder(borderRadius: BorderRadius.circular(20))),
      ),
    );
  }
}

```

class CustomTextField extends StatelessWidget {
  const CustomTextField({super.key, required this.controller, this.hinttext});

  final TextEditingController controller;
  final String? hinttext;

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(8.0),
      child: TextField(
        controller: controller,
        decoration: InputDecoration(
            hintText: hinttext,
            border:
                OutlineInputBorder(borderRadius: BorderRadius.circular(20))),
      ),
    );
  }
}

``
Testing a new post
Tags: python, markdown
Published: 2024-01-22 19:59:17

# H1 Header content
### H3 Header content
* this is italics *
** this bold content **

[link](http://www.youtube.com)

```
for i in range(3):
   print("Hello")
```

* ul item 1
* ul item 2
* ul item 3

1. ol item 1
2. ol item 2
👨‍💻 Daily Code 46 | Random Number 1-100, 🐍 Python and 🟨 JavaScript
Tags: beginners, daily, python, javascript
Published: 2024-01-22 19:55:56

Today I had very little time for code, so I wanted to do a very simple exercise: Generate a random number between 1 to 100, and in the case of JS also put that on the website. In both cases I used a bit of ChatGPT to fix this quickly. should do the same exercise again tomorrow and see if I can remember how to do it without!

# My Code

Python

```jsx
# Exercise: Print a random number between 1 and 100

import random

random_number = random.randint(1, 100)
print(random_number)
```

JavaScript

```jsx
<!DOCTYPE html>
<html>

<head>
    <title>Random Number Generator</title>
</head>
<body>
    <button id="generateButton">Generate Random Number</button>
    <div id="randomNumber"></div>
    <script>
        document.getElementById("generateButton").onclick = function () {
            let randomNumber = Math.floor(Math.random() * 100) + 1;
            document.getElementById("randomNumber").textContent = randomNumber;
        };
    </script>
</body>

</html>
```

(Python actually suggested me ‘var’ here, but I don’t think that’s really used anymore, so I changed it to let)

Have a great day everyone, see you tomorrow! 🙋‍♂️
How to structure your code for readability
Tags: code, codereview
Published: 2024-01-22 19:44:45

When writing code, it is often tempting to wrap the main flow inside multiple if statements in order to validate that certain conditions are met. 
For example, let's say I'm writing a simple method that returns the length of a string. It might look like this:

```javascript
function getLength(str) {
  if (typeof str === 'string') {
    return str.length()
  }
  throw new Error('parameter must be a string')
}
```

While this guards against unexpected parameter types, the main flow is enclosed within an if statement. A more refined approach looks like this:

```javascript
function getLength(str) {
  if (typeof str !== 'string') {
    throw new Error('parameter must be a string')
  }
  
  return str.length()
}
```

On the surface, the distinction may appear subtle, yet the structure of the code makes the main code flow more readable.

This advantage becomes even more apparent when there are multiple exclusion flows. You can turn this nested structure:

```javascript
function foo() {
  if (/*condition A*/) {
    if (/*condition B*/) {
      if (/*condition C*/) {
        /*main flow*/
      }
      /*handle !condition C*/
    }
    /*handle !condition B*/
  }
  /*handle !condition A*/
}
```

into this:
```javascript
function foo() {
  if (/* !condition A */) {
    /* 
    handle !condition A 
    return
    */
  }
  if (/* !condition B */) {
    /* 
    handle !condition B 
    return
    */
  }
  if (/* !condition C */) {
    /* 
    handle !condition C 
    return
    */
  }

  /*main flow*/  
}
```
The result is cleaner and more readable code, easier to understand and maintain.
Crusader Kings 4 Release Date and Updates
Published: 2024-01-22 19:34:44

Hello Guys! [Crusader Kings 4](https://gamingexpert.info/crusader-kings-4-release-date-updates/) is going to launch.As every One in gaming industory was eager for this time.To Know about the release date and latest update about this game you can chekout the reference link above.
![Crusader Kings 4](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mef64s8oj6aug5iu5b99.jpg)