teleren/devto huggingface dataset:
Delete the Middle Node of a Linked List
Tags: leetcode, dsa, theabbie
Published: 2022-06-17 03:00:46

You are given the `head` of a linked list. **Delete** the **middle node**, and return _the_ `head` _of the modified linked list_.

The **middle node** of a linked list of size `n` is the `⌊n / 2⌋th` node from the **start** using **0-based indexing**, where `⌊x⌋` denotes the largest integer less than or equal to `x`.

*   For `n` = `1`, `2`, `3`, `4`, and `5`, the middle nodes are `0`, `1`, `1`, `2`, and `2`, respectively.

**Example 1:**

![](https://assets.leetcode.com/uploads/2021/11/16/eg1drawio.png)

**Input:** head = \[1,3,4,7,1,2,6\]
**Output:** \[1,3,4,1,2,6\]
**Explanation:**
The above figure represents the given linked list. The indices of the nodes are written below.
Since n = 7, node 3 with value 7 is the middle node, which is marked in red.
We return the new list after removing this node. 

**Example 2:**

![](https://assets.leetcode.com/uploads/2021/11/16/eg2drawio.png)

**Input:** head = \[1,2,3,4\]
**Output:** \[1,2,4\]
**Explanation:**
The above figure represents the given linked list.
For n = 4, node 2 with value 3 is the middle node, which is marked in red.

**Example 3:**

![](https://assets.leetcode.com/uploads/2021/11/16/eg3drawio.png)

**Input:** head = \[2,1\]
**Output:** \[2\]
**Explanation:**
The above figure represents the given linked list.
For n = 2, node 1 with value 1 is the middle node, which is marked in red.
Node 0 with value 2 is the only node remaining after removing node 1.

**Constraints:**

*   The number of nodes in the list is in the range `[1, 105]`.
*   `1 <= Node.val <= 105`

**SOLUTION:**

    # Definition for singly-linked list.
    # class ListNode:
    #     def __init__(self, val=0, next=None):
    #         self.val = val
    #         self.next = next
    class Solution:
        def deleteMiddle(self, head: Optional[ListNode]) -> Optional[ListNode]:
            slow = head
            prev = slow
            fast = head
            n = 0
            while fast and fast.next:
                prev = slow
                slow = slow.next
                fast = fast.next.next
                n += 1
            if n == 0:
                return None
            prev.next = slow.next
            return head
How to Easily Debug CSS Layout Issue
Tags: css, html, frontend
Published: 2023-01-12 13:59:41

---
title: How to Easily Debug CSS Layout Issue
published: true
date: 2022-06-17 02:48:07 UTC
tags: 
- CSS
- HTML
- Frontend
canonical_url: https://fajarwz.com/blog/how-to-easily-debug-css-layout-issue/
---
![Writing CSS Illustration](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1suuoljpcy0ce6lahzbj.png)

Writing CSS seems easy, but sometimes it is as challenging as coding with some programming language. 

There are some issue that often we meet in our daily CSS coding. Such as styling that does not work, inconsistency design, responsive gone fail, unwanted scroll bar, etc.

Here I just want to give a tip about unwanted scroll bar or unwanted overflow element.

You can debug your layout using some kind of wireframe mode. The idea is to set border to every element in the page and make it visible enough for you so you can clearly see the width and height of every element of the page.

Here is the example code

```css
* {
    border: 1px solid red;
}
```

And now we can see all of the element's width and height. If an element is overflowed we can see it clearly now.

![web page with wireframe](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b78h91mbeanhisf3fatz.png)

## Conclusion

So to debug a CSS layout issue such as an unwanted scroll bar or unwanted overflow element easily, add border to all elements of your page.

Have another tip on this issue or a better one? Please let us know in the comment below. Thank you.
Hacks do Github - Criando seu Octocat único
Tags: braziliandevs, github, beginners, programming
Published: 2022-06-17 02:43:54

![Octocat](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0h9kujrba2y0d2aiu8ck.png)

O Github é cheio de funcionalidades e o mais utilizado isso vocês já sabem e pensando nisso que criei essa série de hacks porém, esse é nosso último post dessa série... fica tranquilo a qualquer momento podemos retornar com novos hacks.

⚠️ Importante: Os prints que serão exibidos para exemplificar podem estar diferentes da interface do seu GitHub, por que sou muito adepto a extensões que melhoram a usabilidade e que ajudam no meu dia a dia. Partindo desse ponto peço que dê uma olhada [nesse artigo](https://dev.to/jhonywalkeer/extensoes-para-navegador-turbinando-sua-experiencia-no-github-538) antes.

Esse hack é diferente, pois se trata de uma ferramenta que foi disponibilizada pela equipe do Github onde você pode criar seu próprio octocat (o mascote do Github)

## Mãos na massa

Para criamos é necessário acessar [este link] onde teremos um site dedicado a edição do seu octocat na maneira que quiser

![home](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6nkq1snf1eapp6cha1jf.png)

Caso antes de iniciar o processo você queira, uma inspiração podemos acessar a galeria onde visualizaremos todos os já criados e podemos ver o quanto o pessoal é criativo:

![Galery](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gr3p2dtgocsmx3m56bzf.png)

Depois dessa inspiração é só começar a criar o seu octocat, basta clicarmos no botão `Create Your Octocat` ou `Get Started`. Será apresentado a versão original então basta começar a edição de cada componente:

![Edit](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/isg59f5elgi4k4mtpucg.png)

## Compartilhando seu Octocat

Depois de pronto, precisamos clicar no botão de `Share` e enviar para seu e-mail ou **Twitter**. Mas ainda temos algo mais prático: tire um print de tela marcando somente a área do seu octocat, simples assim.

Agora deve estar se perguntado o que fazer com isso? Parece meio obvio, mas você pode fazer o que quiser! Colocar no seu Readme, criar um sticker ou até uma camiseta, tudo será limitado apenas a sua criatividade.
 
Fontes onde pesquisei esse conteúdo:

- https://myoctocat.com/build-your-octocat/
Find the Kth Largest Integer in the Array
Tags: leetcode, dsa, theabbie
Published: 2022-06-17 02:30:38

You are given an array of strings `nums` and an integer `k`. Each string in `nums` represents an integer without leading zeros.

Return _the string that represents the_ `kth` _**largest integer** in_ `nums`.

**Note**: Duplicate numbers should be counted distinctly. For example, if `nums` is `["1","2","2"]`, `"2"` is the first largest integer, `"2"` is the second-largest integer, and `"1"` is the third-largest integer.

**Example 1:**

**Input:** nums = \["3","6","7","10"\], k = 4
**Output:** "3"
**Explanation:**
The numbers in nums sorted in non-decreasing order are \["3","6","7","10"\].
The 4th largest integer in nums is "3".

**Example 2:**

**Input:** nums = \["2","21","12","1"\], k = 3
**Output:** "2"
**Explanation:**
The numbers in nums sorted in non-decreasing order are \["1","2","12","21"\].
The 3rd largest integer in nums is "2".

**Example 3:**

**Input:** nums = \["0","0"\], k = 2
**Output:** "0"
**Explanation:**
The numbers in nums sorted in non-decreasing order are \["0","0"\].
The 2nd largest integer in nums is "0".

**Constraints:**

*   `1 <= k <= nums.length <= 104`
*   `1 <= nums[i].length <= 100`
*   `nums[i]` consists of only digits.
*   `nums[i]` will not have any leading zeros.

**SOLUTION:**

    import heapq
    
    class Solution:
        def kthLargestNumber(self, nums: List[str], k: int) -> str:
            heap = []
            for num in nums:
                heapq.heappush(heap, int(num))
                if len(heap) > k:
                    heapq.heappop(heap)
            return str(heap[0])
Run commands faster in the terminal!
Published: 2022-06-17 02:17:25

Introducing HitList CLI; your open-source online commands manager.

**HitList CLI** allows you to easily save multiple commands into one “list” online and locally that you can run with just one “hit” anywhere, anytime and share with anyone. You don’t even need to own lists to run them as you can run public lists, HitList CLI also comes with a Web UI that you can use to manage your commands if you’re not a big fan of the command line (although I hope you are 😅)

Regardless of where you use HitList CLI, your commands will always be available in the cloud and with version two, you can now sync those commands locally to your computer to allow them run even faster. 

To get started with HitList, click [here](https://www.hitlist.dev)

Check out the open-source code [here](https://github.com/hitlist-cli/cli)
Minimum Distance to the Target Element
Tags: leetcode, dsa, theabbie
Published: 2022-06-17 02:00:44

Given an integer array `nums` **(0-indexed)** and two integers `target` and `start`, find an index `i` such that `nums[i] == target` and `abs(i - start)` is **minimized**. Note that `abs(x)` is the absolute value of `x`.

Return `abs(i - start)`.

It is **guaranteed** that `target` exists in `nums`.

**Example 1:**

**Input:** nums = \[1,2,3,4,5\], target = 5, start = 3
**Output:** 1
**Explanation:** nums\[4\] = 5 is the only value equal to target, so the answer is abs(4 - 3) = 1.

**Example 2:**

**Input:** nums = \[1\], target = 1, start = 0
**Output:** 0
**Explanation:** nums\[0\] = 1 is the only value equal to target, so the answer is abs(0 - 0) = 0.

**Example 3:**

**Input:** nums = \[1,1,1,1,1,1,1,1,1,1\], target = 1, start = 0
**Output:** 0
**Explanation:** Every value of nums is 1, but nums\[0\] minimizes abs(i - start), which is abs(0 - 0) = 0.

**Constraints:**

*   `1 <= nums.length <= 1000`
*   `1 <= nums[i] <= 104`
*   `0 <= start < nums.length`
*   `target` is in `nums`.

**SOLUTION:**

    import heapq
    
    class Solution:
        def getMinDistance(self, nums: List[int], target: int, start: int) -> int:
            heap = []
            for i, num in enumerate(nums):
                heapq.heappush(heap, (abs(num - target), abs(i - start)))
            return heap[0][1]
Hacks do Github - Commits que fecham issues
Tags: braziliandevs, github, beginners, programming
Published: 2022-06-17 01:57:26

![Commits](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y4dp5xvmmf8k9owo9ofw.png)

O Github é cheio de funcionalidades e o mais utilizado isso vocês já sabem e vamos continuar a série de "hacks" da plataforma que vão otimizar e melhorar sua experiência.

⚠️ Importante: Os prints que serão exibidos para exemplificar podem estar diferentes da interface do seu GitHub, por que sou muito adepto a extensões que melhoram a usabilidade e que ajudam no meu dia a dia. Partindo desse ponto peço que dê uma olhada [nesse artigo](https://dev.to/jhonywalkeer/extensoes-para-navegador-turbinando-sua-experiencia-no-github-538) antes.

Abre uma issue, resolve o problema, commita, faz o push, fecha a issue. Abre uma issue, resolve o problema, commita, faz o push, fecha a issue. E se eu te disse existe uma forma de automatizar esse processo?

Essa coisa de ficar lembrando de fechar a issue logo após a sua solução, em alguns casos, torna-se bastante chato e repetitivo. O Github tem um hack, onde você consegue fechar uma issue através de uma mensagem de commit.

## Entendendo o hack

Você já deve saber que inglês é essencial hoje em dia. Quando codificamos, principalmente se pretendemos colaborar com projetos Open Source, deveríamos escrever seus nomes de funções, métodos, variáveis, entre outras coisas tudo em inglês, correto? Pois assim, mais pessoas poderão ter acesso ao projeto, já que inglês é uma linguagem mundial! 

E com o Github não seria diferente, existe algumas palavras mágicas que podemos utilizar na mensagem de commit, para fechar uma issue. Precisamos referenciar também, o ID da issue (aquele número que aparece na URL quando você acessa a issue). E essss palavras mágicas são:

```
fix, fixes, fixed, close, closes, closed, resolve, resolves, resolved
```

Então podemos escrever a mensagem de commit mais ou menos assim:

```
git commit -m "Fix error on issue #32"
```

Usando uma das palavras mágicas, e referenciando a issue com a hash `# + número/ID da issue`, essas informações só precisam aparecer na mensagem de commit, não precisam ter uma ordem específica, nesse exemplo a issue `#32` será fechada.

Essa é uma dica bem simples, mas que pode te poupar muito tempo com seus projetos open source.

Fontes onde pesquisei esse conteúdo:

- https://docs.github.com/pt/issues/tracking-your-work-with-issues/about-issues
Email Testing using Ethereal
Tags: node, tutorial, javascript, beginners
Published: 2022-06-17 01:50:04

## Preparation

Initiate your project or reuse your previous project. I will use Node.js here, but I will try to give other code samples for other programming languages.

Please prepare Node.js installation. You can download the installer from [here](https://nodejs.org/en/). Currently, I use Node.js version 18.4.0. Feel free to try another version.

### Initiate your project

* Prepare file `package.json` using the `npm init` command. You can follow the guidelines to fill your `package.json` after you give the `npm init` command.

### Install Nodemailer

I will use Nodemailer for email sending. You may use another library as you wish. In this post, I will cover Nodemailer only.

Install it use `npm install nodemailer`.

## Let's get started

Basically, you may try [the example](https://nodemailer.com/about/#example) from Nodemailer directly. But, I will add another example like sending an attachment. You can see the `index.js` file below. You see the code similar to the example, but I only add attachments to validate that I can use the attachment feature.

```js
const nodemailer = require("nodemailer");

// async..await is not allowed in global scope, must use a wrapper
async function sendEmail() {
  // Generate test SMTP service account from ethereal.email
  // Only needed if you don't have a real mail account for testing
  let testAccount = await nodemailer.createTestAccount();

  // create reusable transporter object using the default SMTP transport
  let transporter = nodemailer.createTransport({
    host: "smtp.ethereal.email",
    port: 587,
    secure: false, // true for 465, false for other ports
    auth: {
      user: testAccount.user, // generated ethereal user
      pass: testAccount.pass, // generated ethereal password
    },
  });

  // send mail with defined transport object
  let info = await transporter.sendMail({
    from: '"Fred Foo 👻" <foo@example.com>', // sender address
    to: "bar@example.com, baz@example.com", // list of receivers
    subject: "Hello ✔", // Subject line
    text: "Hello world?", // plain text body
    html: "<b>Hello world?</b>", // html body
    attachments: [
      {
        filename: 'hello.json',
        content: JSON.stringify({
          name: "Hello World!"
        })
      }
    ]
  });

  console.log("Message sent: %s", info.messageId);

  // Preview only available when sending through an Ethereal account
  console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));
}

sendEmail().catch(console.error);
```

You can check the result using the preview URL provided by the console log.

![Console log](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rlc7k7pf8rvt6pqm4rfo.png)
 
![Test Result](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zeymaalkvjh740sbx75v.png)

Visit the Github Repository here:

{% github berviantoleo/nodemail %}

## Thank you

![Thanks](https://media.giphy.com/media/3oEdva9BUHPIs2SkGk/giphy.gif)
Hacks do Github - Licenças
Tags: braziliandevs, github, beginners, programming
Published: 2022-06-17 01:44:34

![Licenças](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qbbqcsupqrc6mvinm1ns.png)
 
O Github é cheio de funcionalidades e o mais utilizado isso vocês já sabem e vamos continuar a série de "hacks" da plataforma que vão otimizar e melhorar sua experiência.

⚠️ Importante: Os prints que serão exibidos para exemplificar podem estar diferentes da interface do seu GitHub, por que sou muito adepto a extensões que melhoram a usabilidade e que ajudam no meu dia a dia. Partindo desse ponto peço que dê uma olhada [nesse artigo](https://dev.to/jhonywalkeer/extensoes-para-navegador-turbinando-sua-experiencia-no-github-538) antes.

No mundo do software, o que define como aquele software será distribuído, se o software será pago, se outras pessoas poderão distribuí-lo sem problemas, ou terão que pagar por isso, Ou ainda podem distribuir o software, mas terão que citar o autor são as famosas Licenças. Mas nesse post não vou entrar em muitos detalhes sobre as licenças (farei um post somente dedicados a elas posteriormente). Hoje falaremos sobre como o Github nos ajuda com elas.

## Aprofundando nas licenças

Quando colocamos nosso código na internet, ele fica disponível para milhões de pessoas o aproveitarem como bem entenderem. Algumas irão utilizar seu código, citando que você é o autor, outras simplesmente irão copiá-lo, como se fossem os próprios autores. O que te “garante” algo é a licença que você disponibiliza junto com seu código e existem vários tipos delas sendo algumas das mais utilizadas conhecidas: **MIT**, **GPL**, **LGPL**, **BSD**.

Mas o que o Github tem a ver com isso? Quando você cria um novo repositório, o Github te dá a opção de adicionar uma licença:

![License](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vpdl41p0inko6gvn57lr.png)

Mas caso tenha um projeto, e não tenho uma licença ainda podemos escolher a opção de criar o arquivo de licença através do link `+`, mostrado abaixo:

![License](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gozzu7q7a1uxufc0qa62.png)

Então será apresentado a tela para criar um novo arquivo:

 ![Novo arquivo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yi8fbpius4p4dmyt531b.png)

Coloque o nome do arquivo como `LICENSE`, e veja a mágica acontecer. Agora basta escolher uma licença, e salvar ao fazer isso, já fica registrado um novo commit com a alteração, mas claro não se esqueça da conveção dos [commits semânticos](https://dev.to/jhonywalkeer/git-commits-semanticos-ou-conventional-commits-2gpj) para ficar bem organizado.

Fontes onde pesquisei esse conteúdo:

- https://docs.github.com/pt/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository
Count All Valid Pickup and Delivery Options
Tags: leetcode, dsa, theabbie
Published: 2022-06-17 01:30:37

Given `n` orders, each order consist in pickup and delivery services. 

Count all valid pickup/delivery possible sequences such that delivery(i) is always after of pickup(i). 

Since the answer may be too large, return it modulo 10^9 + 7.

**Example 1:**

**Input:** n = 1
**Output:** 1
**Explanation:** Unique order (P1, D1), Delivery 1 always is after of Pickup 1.

**Example 2:**

**Input:** n = 2
**Output:** 6
**Explanation:** All possible orders: 
(P1,P2,D1,D2), (P1,P2,D2,D1), (P1,D1,P2,D2), (P2,P1,D1,D2), (P2,P1,D2,D1) and (P2,D2,P1,D1).
This is an invalid order (P1,D2,P2,D1) because Pickup 2 is after of Delivery 2.

**Example 3:**

**Input:** n = 3
**Output:** 90

**Constraints:**

*   `1 <= n <= 500`

**SOLUTION:**

    class Solution:
        def countOrders(self, n: int) -> int:
            if n == 1:
                return 1
            val = self.countOrders(n - 1) * n * (2 * n - 1)
            return val % (10 ** 9 + 7)
Hacks do Github - Parâmetros na URL
Tags: braziliandevs, github, beginners, programming
Published: 2022-06-17 01:25:02

![URL](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tvszktu3fb2x60ophwoi.png)
 
O Github é cheio de funcionalidades e o mais utilizado isso vocês já sabem e vamos continuar a série de "hacks" da plataforma que vão otimizar e melhorar sua experiência.

⚠️ Importante: Os prints que serão exibidos para exemplificar podem estar diferentes da interface do seu GitHub, por que sou muito adepto a extensões que melhoram a usabilidade e que ajudam no meu dia a dia. Partindo desse ponto peço que dê uma olhada [nesse artigo](https://dev.to/jhonywalkeer/extensoes-para-navegador-turbinando-sua-experiencia-no-github-538) antes.

Hoje é dia de falar um sobre alguns parâmetros na URL e ver o que podemos fazer com eles.

## Ignorando espaços em branco no commit

Sabe quando você tem um commit onde tem um monte de espaços em branco sendo removidos, e fica difícil visualizar onde realmente foi alterado no código? Então, se passarmos `?w=1` na URL, o Github ignora os espaços em branco, e mostra só o que realmente é necessário e que você realmente quer saber.

## Tamanho da tabulação

Sabe aquele código indentado com 4 tabs que fica com tamanho de 8 em qualquer outro lugar diferente do seu editor? Sim, mesmo você jurando que usou a [tríade de formatação](https://dev.to/jhonywalkeer/editorconfig-eslint-e-prettier-a-triade-dos-projetos-4p9) ele ainda corre o risco de ocorrer esse problema. Então passando o parâmetro `?ts=4`, o Github mostra o código indentado com o valor passado para o parâmetro `ts`. No nosso caso vai ser `4`.

## Separar commits por autor

Quer rever só os seus commits que você ou um usuário específico fez naquele projeto open source, mas tem outros milhões de colaboradores? Nesse caso, podemos adicionar o parâmetro `?author=username`, passando o seu username do Github (ou o que deseja) para mostrar somente eles.

O hack que hoje foi bem rápido e ao invés de colocar os prints com os exemplos na prática eu quero que você faça veja a mágica acontecer.

Fontes onde pesquisei esse conteúdo:

- https://docs.github.com/pt/enterprise-server@3.1/developers/apps/building-github-apps/creating-a-github-app-using-url-parameters
Digital Asset Recovery
Tags: bitcoin, scamm
Published: 2022-06-17 01:16:39

I also lost about 215,000 to an IQ option broker and 2 fake binary option website as well but I am sharing my experience here so as to enlighten and educate everyone that is losing money or has lost money to a scam including binary options, dating scams, Recover all your lost money to Bitcoin and other Cryptocurrency, mortgage/ real estate scams and fake ICOs. However , I have been able to recover all the money I lost to the scammers with the help of a recovery professional and I am pleased to inform you that there is hope for everyone that has lost money to scam. you can reach out to Quickfund Recovery, you can also send a mail via QUICKFUNRECOVERY at yahoo dot Com or WhatsApp +16062293185
How do you make folks who sponsor your open source projects feel valued?
Tags: discuss, opensource, career, github
Published: 2022-06-17 01:07:07

Hey, yall! 
I've been talking to folks about how they've maintained relationships with folks and organizations who sponsor their open source projects. Some people have said they:

- publicly thank them by posting tweet that says "Thanks so much to @username for sponsoring my #opensource work on GitHub Sponsors!"
- make release announcements that say "this release brought to you by [insert sponsor name]"

I'd love to hear from you: **what other things can people do to make sponsors feel valued?**