teleren/devto huggingface dataset:
Metodologias Ágeis em Desenvolvimento de Softwares
Tags: webdev, scrum, agile
Published: 2023-11-16 13:56:34


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

As metodologias ágeis revolucionaram a forma como o software é desenvolvido, proporcionando uma abordagem mais flexível, colaborativa e orientada a resultados. Elas são um conjunto de práticas e princípios que priorizam a adaptação às mudanças, a entrega contínua de valor e a interação constante com o cliente. Vamos explorar um pouco mais sobre elas!

### O Mundo Ágil: Mais do que um Conjunto de Metodologias

As metodologias ágeis, como Scrum, Kanban, XP (Extreme Programming), entre outras, compartilham valores fundamentais:

- **Indivíduos e interações acima de processos e ferramentas**: Priorizam as pessoas e a comunicação eficaz dentro das equipes, reconhecendo que a colaboração é essencial para o sucesso do projeto.

- **Software funcionando mais do que documentação abrangente**: Valorizam a entrega contínua de incrementos de software funcional, permitindo que o cliente veja o progresso real e ofereça feedback constante.

- **Colaboração com o cliente mais do que negociação de contratos**: Envolvem o cliente de forma contínua no processo de desenvolvimento, buscando entender suas necessidades e adaptando o produto de acordo com seus feedbacks.

- **Responder a mudanças mais do que seguir um plano**: Abraçam a natureza dinâmica do desenvolvimento de software, permitindo e até mesmo valorizando mudanças nos requisitos ao longo do tempo.

### Importância das Metodologias Ágeis no Desenvolvimento de Software

1. **Adaptabilidade e Flexibilidade**: As metodologias ágeis permitem que as equipes se adaptem rapidamente a mudanças de requisitos, prioridades ou até mesmo tecnologias, tornando-as ideais para ambientes de incerteza e rápida evolução.

2. **Entrega Incremental de Valor**: Elas promovem a entrega contínua de funcionalidades, o que significa que o cliente obtém valor desde o início do projeto e pode influenciar diretamente a direção do produto.

3. **Maior Envolvimento do Cliente**: A interação frequente com o cliente garante que as necessidades e expectativas sejam entendidas e atendidas de forma mais precisa.

4. **Melhoria Contínua e Feedback Rápido**: Ciclos curtos de desenvolvimento e feedback constante permitem que as equipes aprendam e melhorem continuamente, resultando em produtos de maior qualidade.

5. **Maior Satisfação da Equipe**: Ao dar mais autonomia às equipes, as metodologias ágeis promovem um ambiente de trabalho mais colaborativo e empoderador.

Adotar metodologias ágeis não é apenas sobre seguir um conjunto de práticas, mas sim sobre abraçar uma mentalidade de flexibilidade, colaboração e melhoria contínua. Esses princípios são valiosos não apenas no desenvolvimento de software, mas também em muitos outros contextos onde a adaptação e a entrega de valor são essenciais.


@devguilara
Introducing agentless API discovery & inventory - Congrats to our tech team!
Tags: news, security, api
Published: 2023-11-16 13:43:26

Hello 👋

Very excited to finally reveal our new capabilities at Escape 🚀

After months of hard work from our tech team, we’re finally releasing a possibility for our users to discover and catalog all APIs within their unique business context! 

This feature release was led by @nohehf , with the help of @sophieboulaouli and @gauben ! Thank you for all the efforts, your passion, and your dedication 👏

Our customers needed a solution not only to test their APIs but also to tackle the issue of discovering all of them, including Shadow API. Deployed outside of the organization’s API Gateways and proxies, they create blind spots for security teams, which traditional security solutions can’t capture because they require traffic access.

Escape, on the other hand, provides complete visibility of the attack surface by extracting security signals directly from developer tools and merging this data with custom external exposure intelligence. Once APIs are discovered, the data is organized in a structured inventory that categorizes APIs based on business use, data sensitivity, and security risks. 

It’s exciting to see how much was shipped within last months! 

Want to see how this feature works? Check out [our demo](https://youtu.be/8tECA9Jw-co)
Services in Linux & How to configure your own App as a service?
Tags: services, webservices, linux
Published: 2023-11-16 13:38:05


in one line "**Services are Linux programs that run in the background**" but let's dive into it a little more and find out why it's important, what it does, how can you configure it and what are the commands around it.

In General terms, Services in Linux help you to configure software to run in the background & make sure that they Run all the time automatically when servers are rebooted and as well as follow the right order of startup. when any software that runs as a service in the background is installed they are automatically configured as a **service** on the system.

## Why do we need services?
Services are necessary for various reasons like Continuous operations, Automation, resource management, etc. For example, Services run in the background and operate independently of user interactions. This allows them to provide continuous functionality without any user intervention. Eg:- a web server Software like Apache HTTP can continue to serve web pages to users without needing direct input from users.

##Some Basic Commands related to Services

- To Start a Service:-
`service <Service name> start` or `systemctl start <Service name>`
- To Stop a Service:-
`service <Service name> start` or `systemctl stop <Service name>`
- Configure a service to start at startup:-
`systemctl enable <Service name>`
- Configure a service to not start at startup:-
`systemctl disable <Service name>`
- Check the Status of Service:-
`systemctl status <Service name>` ( for ex.)


![A man controlling the Universe with Linux](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u6mojlhjvwbpolsmd7ez.png)
##Configuring your Application as a Service
let's suppose you have an app.py application and you want to configure this as a service & also a service that will automatically start itself when we reboot the system. For this, we have to add a unit file under `/etc/systemd/system` that will have the same name as the application with an extension service, here it will look like `app.service` & in this unit file, we have to define some sections under [] bracket like [Service] and provide directives (ex:- Excstart) to them

```
[Service]
ExcStart = <command used to run the application> #(enough to make app.py a service)

[Install]
WantedBy=multi-user.target #To automatically run when system boots up

```
and that's it you can use app.py as a service Now. some extra directive which is used generally in a .service unit file.

```
[Unit]
Description= python application # Meta data about the application

[Service]
ExexStart=<command used to run the application>
ExexStartPre=<path of application> #dependency which is used before running the app.py
ExexStartPost=<path of application> #dependency which is used after running the app.py
Restart=always #restart the application when it crashes

[Install]
WantedBy=multi-user.target

```
To run an AppImage file on Ubuntu. nosqlbooster4mongo-8.1.1.AppImage
Tags: ubuntu, webdev, programming, tutorial
Published: 2023-11-16 13:36:24

To run an AppImage file on Ubuntu, you can follow these steps:

1. **Download the AppImage:**
   Make sure you have downloaded the `nosqlbooster4mongo-8.1.1.AppImage` file.

2. **Make the AppImage Executable:**
   You need to make the AppImage file executable. Open a terminal and navigate to the directory where the AppImage is located.

    ```bash
    chmod +x nosqlbooster4mongo-8.1.1.AppImage
    ```

3. **Run the AppImage:**
   Execute the AppImage by running the following command:

    ```bash
    ./nosqlbooster4mongo-8.1.1.AppImage
    ```

   If there are any dependencies missing, you might need to install them. The terminal will typically provide guidance on what is needed.

4. **Optional: Create a Desktop Shortcut:**
   If you want to create a desktop shortcut, you can create a `.desktop` file. Create a new file, for example, `nosqlbooster.desktop`, and add the following content:

    ```plaintext
    [Desktop Entry]
    Version=1.0
    Type=Application
    Name=NoSQLBooster
    Exec=/path/to/nosqlbooster4mongo-8.1.1.AppImage
    Icon=/path/to/nosqlbooster/icon.png
    Terminal=false
    ```

   Replace `/path/to/nosqlbooster4mongo-8.1.1.AppImage` and `/path/to/nosqlbooster/icon.png` with the actual paths. Make the `.desktop` file executable:

    ```bash
    chmod +x nosqlbooster.desktop
    ```

   You should then be able to double-click the `.desktop` file to launch NoSQLBooster.

Remember to check the official NoSQLBooster documentation or website for any specific instructions related to the version you are using.
React Hook: check outside click
Tags: typescript, react, webdev, frontend
Published: 2023-11-16 13:33:51


When we implement a dropdown or drawer component in React, these components often require to be closed when mouse-clicking either the menu button or outside of the component. 

![image](https://design.gs.com/dropdown-variations.png)

To allow this behavior in our custom components, we can create a custom hook that allows us to apply the same behavior whenever we need it.

Here is a simple custom hook that checks if the mouse clicks outside of the current component.



```typescript
const useCheckOutside = 
(clickOutside: () => void, exceptId?: string) => ...
```
We named the hook `useCheckOutside`, and it receives the `clickOutside` function as a property that allows the parent component to receive the event.

`exceptId` is an optional property that can be used to ignore the place where we don't want the close behavior when the place is clicked. We need this because usually the menu or the dropdown button is also a part of the outside clicks, and the button's `onClick` event changes the menu or dropdown's visibility to be visible whereas the outside click changes the visibility to be hidden. The below function describes that the `exceptId` will be ignored in the `mousedown` event.

```typescript
const checkOutsideClick = (event: any) => {
      if (
        ref.current &&
        !ref.current.contains(event.target) &&
        event.target.id !== exceptId
      ) {
        clickOutside();
      }
    };

document.addEventListener('mousedown', checkOutsideClick);
```


Here is the entire code for the `useCheckoutside` hook with a simple example of how to use.

```typescript
import { useEffect, useRef } from 'react';

const useCheckOutside = 
      (clickOutside: () => void, 
       exceptId?: string) => {

  const ref = useRef<any>();

  useEffect(() => {
    const checkOutsideClick = (event: any) => {
      if (
        ref.current &&
        !ref.current.contains(event.target) &&
        event.target.id !== exceptId
      ) {
        clickOutside();
      }
    };
    document.addEventListener('mousedown', checkOutsideClick);
    return () => {
      document.removeEventListener('mousedown', checkOutsideClick);
    };
  }, [clickOutside]);

  return ref;
};

export default useCheckOutside;
```

```typescript

const handleOutsideClick = () => {
     setOpen(false);
}

const ref = useCheckOutside(handleOutsideClick, "buttonId");

return <>
         <button id="buttonId" type="button" 
                 onClick={(e) => {
                   setOpen(true)
                 }
          >
          Menu
          </button>

          {open && <Menu ref={ref} />}
        </>
```
React Native e permissão para salvar arquivos com Android 13
Tags: javascript, tutorial, reactnative, android
Published: 2023-11-16 13:28:10

Tenho um aplicativo com React Native que é acessado por várias versões do Android desde o Android 8 até o mais atual (Tiramisu) a poucos dias recebi um chamado informando que alguns usuários não estavam acessar uma feature que visualizava um PDF. Foi então que descobri que o esquema de permissões antes usando no Android Manifest(AM) mudou.
Antes basicamente precisávamos colocar esse trecho de código no AM.
```xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
```
E só com isso conseguimos utilizar, acontece que hoje essas permissões não são mais necessárias e pesquisando um pouco tive muita dificuldade em encontrar uma solução simples que resolvesse nosso problema.
Vamos a solução...
Para garantir que versões mais antigas ainda funciona da forma padrão é importante que adicionemos a seguinte flag no AM dentro da tag application:
`android:requestLegacyExternalStorage="true"` isso vai garantir o suporte para versões mais antigas.
Para o Tiramisu nosso ajuste é a nível de código, vamos precisar checar a versão do Android do usuário e estou usando a biblioteca 'react-native-device-info'.
```javascript
import DeviceInfo from 'react-native-device-info';

export default App(){
let deviceVersion = DeviceInfo.getSystemVersion();
function downloadPdf(){
      if (Platform.OS === 'android') {
        if (Number(deviceVersion) >= 13) {
          setLoading(false);
          const filePath = await funcaoParaDownloadPDF();
          setPathPDF(filePath);
        } else {
          const permissao = await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE);
          if (permissao === PermissionsAndroid.RESULTS.GRANTED) {
            setLoading(false);
            const filePath = await funcaoParaDownloadPDF();
            setPathPDF(filePath);
          } else {
            setLoading(false);
            Alert.alert('Permissão negada', 'É necessário dar permissão para exibir o PDF');
            navigation.goBack();
          }
        }
      }
}
 return (
// Seu app aqui
)
}
```
Essas checagens verificam a versão do sistema e a mesma for Android 13 ela não precisa de pedir permissão pois por padrão essa versão de sistema já fornece. Caso seja inferior ai seguimos pedindo permissão.
Exploring AI's Effectiveness in Solving CAPTCHA
Published: 2023-11-16 13:14:43

In the constantly changing realm of technology, the growing potential of AI to transform various facets of our everyday existence is becoming more apparent. Whether it's streamlining mundane tasks or refining decision-making processes, artificial intelligence is showcasing its effectiveness in diverse fields. Yet, a common inquiry emerges: Can AI effectively address one of the most widespread and enduring online security protocols—CAPTCHAs? In this piece, we investigate the prowess of AI in the context of CAPTCHA-solving and delve into the complexities of this technological phenomenon.

**Introduction**

CAPTCHAs, or "Completely Automated Public Turing tests to tell Computers and Humans Apart," are designed to safeguard online platforms from malicious bots and automated scripts. These challenges typically involve deciphering distorted text, selecting images that match specific criteria, or solving puzzles, and are a common sight when logging into websites, filling out forms, or accessing certain online services.

AI, with its ability to process vast amounts of data and rapidly adapt to new information, has been a subject of interest when it comes to CAPTCHA-solving. Can AI overcome these security barriers and pass as human users? Let's investigate further.

**The Evolution of CAPTCHAs**

CAPTCHAs have come a long way since their inception. While simple text-based CAPTCHAs were effective at their inception, they proved vulnerable to AI algorithms. As a result, CAPTCHA developers started introducing more sophisticated versions. Image recognition CAPTCHAs,  and the use of logical puzzles became common.

AI has made significant strides in addressing text-based CAPTCHAs by enhancing its character recognition capabilities. It has also become proficient in deciphering image-based challenges, thanks to advancements in machine learning and computer vision.

**The Role of Machine Learning**

Machine learning, a subset of AI, plays a pivotal role in the AI's prowess in CAPTCHA-solving. By training algorithms on large datasets of CAPTCHAs, machines can learn to recognize patterns, shapes, and textual elements. This training enables them to break down complex CAPTCHAs with ease.

Machine learning models, such as Convolutional Neural Networks (CNNs), have been particularly effective in solving image-based CAPTCHAs. These models excel at feature detection and pattern recognition, making them formidable opponents for CAPTCHA security.

**CaptchaAI is an AI-powered OCR solver designed to efficiently bypass CAPTCHAs. It provides reliable captcha-solving at a fixed price, allowing unlimited solves without per-captcha charges. Recognized for its accuracy and cost-effectiveness, CaptchaAI stands out in the field. The pricing structure starts at $15 for unlimited solves, and for normal captchas, the cost is $0.001 for solving 1,000 captchas, Setting the cost per captcha to nothing.**
Test Case Management Tool
Tags: testcase, managementtool, testcasemanagement
Published: 2023-11-16 13:12:39

Complete [Test Case Management tool](https://www.kualitee.com/test-case-management-tool/) Software for Thorough Testing 
Kualitee has a powerful test management module that enables testing teams (including QA testers, developers, and managers) to manage their test cases, collaborate easily with team members, and automate their testing processes effortlessly. Testing teams can create, execute and manage test cases within a single platform. Our test case management software is intuitive and user-friendly, allowing teams to enjoy a hassle-free test management process and integrate seamlessly with other platforms. Kualitee offers robust reporting capabilities, allowing QA teams to generate detailed reports on test case execution, defects, and other key metrics.
Get started with Jira
Tags: jira, projectmanagement, atlassian, defect
Published: 2023-11-16 13:08:41

Getting started with Jira involves several steps, from creating an account to setting up projects and issues. Here's a basic guide to help you get started with Jira:

**1. Create a Jira Account:**
Visit the Jira website https://start.atlassian.com/ and sign up for an account. You can choose between Jira Software, Jira Service Management, or Jira Core based on your needs.

**2. Access Your Jira Instance:**
After signing up, you'll be able to access your Jira instance. This may be a cloud-based instance hosted by Atlassian or a self-hosted instance, depending on your choice during the sign-up process.

**3. Explore the Jira Interface:**
Familiarize yourself with the Jira interface. Key components include the navigation bar, project sidebar, Issue wizard, Menu section, and the main work area where you'll manage your projects and issues.

**4. Create Your First Project:**
Click on the "Create" button and choose "Project" to create your first project. Select the project type (e.g., Scrum, Kanban, or a classic project) based on your team's workflow. After that select team managed or company managed project.

**5. Set Up Project Details:**
Provide basic details such as project name, key, and project lead. You can customize other settings based on your team's preferences.

**6. Create Issues:**
Issues represent tasks, user stories, or bugs. Create your first issue within the project by clicking on the "+ Create" button. Fill in details such as issue type, summary, and description.

**7. Understand Issue Types and Workflows:**
Familiarize yourself with different issue types (e.g., Epic, Story, Task) and the workflow associated with your project type. Workflows represent the states an issue goes through from creation to completion.

**8. Configure Boards:**
If you're using Scrum or Kanban, set up boards to visualize and manage your work. Boards help track the progress of issues through different states.

**9. Invite Team Members:**
Invite your team members to join your Jira project. Team members can collaborate, view and update issues, and participate in discussions.

**10. Customize and Configure:**
Explore the settings and configurations to tailor Jira to your team's needs. Customize workflows, issue types, and fields to match your processes.

**11. Integrate with Other Tools:**
Jira integrates with various tools and plugins. Explore integrations with version control systems, CI/CD tools, and communication platforms to streamline your development process.

**12. Learn More About Jira Features:**
Take advantage of advanced Jira features such as dashboards, reports, and filters. These features help you gain insights into your project's progress and performance.

**13. Explore Additional Jira Applications:**
Depending on your needs, explore other Jira applications like Jira Service Management for IT service management or Jira Align for scaled agile planning.

To Learn more about Jira Refer Interesting playlist were you will learn using Jira from scratch.
https://www.youtube.com/playlist?list=PLpNeH2ctIdfhMlaCqNZadmXE90IDEnhhS
33. A Readme day (Day 31)
Published: 2023-11-16 12:56:36

It's Thursday, and inching closer to the weekend! That's my time for a marathon study!

My achievements today:

- Working on the Readme.md file for my assignment due Sunday
- Fixing my git

**Readme.md**

[Geeks4Geeks](https://www.geeksforgeeks.org/what-is-readme-md-file/) has a good definition of what it is:

> A README file is an essential guide that gives other developers a detailed description of your GitHub project.

I love creating Readme.md files with Markdown. It gives the impression of blog writing, which is far easier than coding! I used this cheatsheet for making my markdown file - [Markdown Cheat Sheet by Markdown Guide.](https://www.markdownguide.org/cheat-sheet/)

**The Git Repo issue**
While writing down the content in the Readme file, from the corner of my eye, I spotted this on the Branch icon in the menu bar:

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

When I clicked it, it said, "10,000 Commits" pending!

I knew straight away I stuffed up something :(

Who do you call when something is wrong? My tutor! I explained the situation to her and she immediately knew what I had done.

So, this is what happened: Looks like at some point I had run a `git init` (_the initializing command for a git repository_) while in the Home directory of my computer. This created a local repository and it included my home directory, and all the files, subfolders, and every other item in it - basically everything from my computer!

Anyway, we had to remove this git folder from the Home directory, and that would remove the repo. Once we accomplished the removal, the issue was resolved.

Thank GOD, I looked at the alert. Had I not, I would've committed 10,000 files to my repo! Imagine, if I made it public on GitHub! Embarrassing to say the least.

**Conclusion**

Always ask if you don't understand anything. It's OK to be handheld by others as long as you learn from the situation.

11:55 PM: Good night :)
Remote vs Hybrid vs Office
Tags: discuss, watercooler
Published: 2023-11-16 12:52:58

> **What employment option resonates most with you, and what factors influence your preference in today's evolving work landscape?**

The realm of employment options is rich and varied, each offering its unique blend of advantages and considerations. From the structured environment of traditional office-based roles to the flexibility of remote work and the hybrid approach that combines both, preferences often hinge on individual needs and work styles. Some prioritize the camaraderie and face-to-face interactions inherent in office settings, while others cherish the autonomy and work-life balance that remote work affords. The hybrid model, straddling between the two, seeks to merge the benefits of in-person collaboration with the freedom of remote arrangements.