teleren/devto huggingface dataset:
Improve your work by usage of custom TODO labels
Published: 2023-03-17 00:27:00

---
title: Improve your work by usage of custom TODO labels
published: true
date: 2023-03-14 00:00:00 UTC
tags: 
canonical_url: https://karas.codes/posts/improve-your-work-by-usage-of-custom-todo-labels/
---

For sure, you have thousands of TODOs left in your project. Today I will show you how to sort them out a little.

# TODOs and why we need them?

Every popular IDE as e.g. IntelliJ or Eclipse allows us to create comments containing magic `TODO` or `FIXME` labels. All comments marked like this could be found in a special section in our IDE.

Of course, they are used for marking some parts of code for the future when we want to: add some features, do some improvements, or fix some small bug that could wait for now.

This small feature helps us save time when working on something important - we don't have to open our task management tools to note it :)

# Custom labels

I know those two labels could be enough, but as always we could distinguish a couple more of them. But ...

## How we could create a custom label?

To prepare an example I will use IntelliJ IDE but, you could apply the same patterns to other IDEs.

You need to visit `Setting -> Editor -> TODO` and just add a custom pattern e.g. `\bimprove\b.*`.  After that, your IDE would be highlighting your custom labels as default ones.

![Scenario 1: Across columns](https://karas.codes/custom_todo_labels.png)

## Why should I create a custom TODO label?

I will give you a couple of ideas on how to use custom labels:

* `IMPROVE` - To distinguish things that must be fixed or just should be done later.By using a such label we could mark some nice-to-have changes
* `QUESTION` - We could use them to give some open questions about the code before pushing it to code review. I know we could use e.g. Gitlab UI to do it. But doing it in the code will help us save time and will leave some notes way closer to the code - for sure not all team members will look at the issue you create.
* `OPTIMIZE` - Special label for those who love doing performance optimizations in the code
* `SECURITY` - Found some security flaw, but don't know how to fix it properly? You could mark that part of the code and share it with team members.

Let me know what other labels you will create in your project!
A New Adventure Begins Today!
Tags: beginners, career
Published: 2023-03-13 23:53:57

After nearly 16 years in the insurance industry and 24 years in customer service, I have decided to invest in myself and switch careers. It has taken a long time for me to decide what it is that I want to do when I grow up (I am 40 now). I sat down and thought of all of the things I like and all of the things I am good at and it brought me to software developement. Creative problem solving is a hobby and I feel this is going to be a great way to put that to practical use. 

One goal I have is to create something amazing with my oldest child who is a whiz with graphic design and is Adobe certified... I think we can do really amazing things together when I am confident with my own skills.

I am excited to be a part of the Coding Bootcamp at the University of Arizona (Go Wildcats!).


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c73jrnyftmfpluq11b7b.png)
2024
Published: 2023-03-13 23:20:55

El último estudio de Unidema Research liderado por Miguel Puga y Eduardo Blasco, analiza el comportamiento de la economía española durante 2022 y el inicio de 2023. En cuanto al PIB, este mejora respecto a 2021, pero sigue sin llegar a niveles pre pandemia, debiendo crecer a un ritmo del 1,3% anual para llegar a dicho nivel.

Preocupante los datos de [empleo](https://www.impulsoemprendedor.mx/), donde el sector privado es el mayor perjudicado, con una pérdida de 101.900 trabajadores a datos cerrados de diciembre de 2022. En el sector público, los datos son [radicalmente ](https://www.sanantonionoticias.cl/)mejores, donde más de 20.000 personas encontraron un puesto trabajando para la administración. A estos datos hay que incorporar los trabajadores "inactivos" (fijos discontinuos que no están activos), una [cifra ](https://www.alertamexico.mx/)de 443.078 trabajadores pendiente de revisión.

En cuanto las horas trabajadas, estas siguen por debajo de los datos de 2019, concretamente 388 millones de horas menos. Menos horas y peor pagadas por culpa de la inflación, ya que, los precios se incrementaron respecto a los salarios un 5,4%.
España debe esperar hasta
Published: 2023-03-13 23:13:32

[Preocupante ](https://www.impulsoemprendedor.mx/)los datos de empleo, donde el sector privado es el mayor perjudicado, con una pérdida de 101.900 trabajadores a datos cerrados de diciembre de 2022. En el sector público, los datos son radicalmente mejores, donde más de 20.000 personas encontraron un puesto [trabajando ](https://www.alertamexico.mx/)para la administración. A estos datos hay que incorporar los trabajadores "[inactivos](https://www.sanantonionoticias.cl/)" (fijos discontinuos que no están activos), una cifra de 443.078 trabajadores pendiente de revisión.

En cuanto las horas trabajadas, estas siguen por debajo de los datos de 2019, concretamente 388 millones de horas menos. Menos horas y peor pagadas por culpa de la inflación, ya que, los precios se incrementaron respecto a los salarios un 5,4%.
Filtrare una lista con useMemo in una pagina Nextjs
Tags: react, frontend, learnedtoday, nextjs
Published: 2023-03-13 22:48:43

_Cosa ho imparato oggi?_ che un buon modo per filtrare una lista lato client, quindi senza richieste al backend, qualora la lista si presenta di un numero tale di elementi da permetterlo, è usare l'hook in _react _**useMemo**.
Questo hook mantiene memorizzata un'istanza di un oggetto nei successivi rendering del componente permettendo però un aggiornamento controllato al cambio di uno stato impostato come dipendenza.

Nel caso del filtraggio della lista la dipendenza è l'oggetto che rappresenta i **criteri di ricerca/filtro**.

Definiamo prima di tutto lo stato della nostra pagina di presentazione lista

```typescript
type UsersPageProps =
  | {
      status: "successful";
      data: User[];
    }
  | {
      status: "error";
      error: string;
    };
```

Poi definiamo la funzione per risolvere lato server l'ottenimento dei dati dal backend

```typescript
export const getServerSideProps: GetServerSideProps<UsersPageProps> = async (context) => {
  try {
    const props: UsersPageProps = {
      status: "successful",
      data: await api.get("/user"),
    };
    return { props };
  } catch (err: any) {
    const props: UsersPageProps = {
      status: "error",
      error: parseResponseError(err),
    };
    return { props };
  }
};
```

Ora possiamo definire la nostra pagina con la presentazione dei dati (il template è volutamente semplificato per lo scopo del post)

```typescript
  return (
    <div className="page-main">
        <section>
          {props.status === 'successful' ? (
            <>
              <UsersFilterForm onFiltersChanged={onFiltersChange} />
              <UsersTable data={filteredUsers ?? []} />
            </>
          ) : props.status === 'error' ? (
            <Alert>{props.error}</Alert>
          ) : null
          }
        </section>
    </div>
  );
};
```

Ora vediamo invece come gestire il cambio dei filtri e la conseguente lista presentata dalla collezione `filteredUsers`

```typescript
const [userFilters, setUserFilters] = useState<UsersFilters>({ name: "", status: "NONE" });
const onFiltersChange = (filters: UsersFilters) => {
  setUserFilters({ ...filters });
};
const filteredUsers = useMemo(() => {
  if (props.status === "successful") {
    let filteredData = props.data;

    if (userFilters.name) {
      filteredData = props.data.filter((u) => {
        if (
          u.firstname.toLocaleLowerCase().includes(userFilters.name!.toLocaleLowerCase()) ||
          u.lastname.toLocaleLowerCase().includes(userFilters.name!.toLocaleLowerCase())
        ) {
          return true;
        }
      });
    }

    if (userFilters.status && userFilters.status !== "NONE") {
      filteredData = result.filter((u) => u.status === userFilters.status);
    }

    return filteredData;
  }
}, [userFilters]);
```

Possiamo notare quindi che oltre allo useState che gestisce le mutazioni dei filtri `userFilters` useremo **useMemo** con dipendenza proprio lo stato dei filtri per ridurre la nostra lista ai criteri richiesti.

E voi che metodi usate?
Neopets - Meu inicio não tão convencional na área da tecnologia
Tags: wecoded, braziliandevs, html
Published: 2023-03-13 22:38:58

Uma pergunta muito recorrente feita a devs é como a pessoa começou a programar, qual foi o primeiro contato que teve com algo relacionado com a área.

As respostas são diversas e durante minha jornada acadêmica e profissional já tive várias colegas que contaram que o primeiro contato foi editando HTML/CSS para o Tumblr, experiência que também compartilho, contudo meu primeiro contato **mesmo** foi um pouco antes com um site chamado [Neopets](https://www.neopets.com/index.phtml).

Para quem não conhece basicamente era um site que você tem pets virtuais e precisa cuidar deles, comprar comida, mobiliar uma casa, jogar minigames para ganhar moedas no jogo, etc. 


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

Além disso tudo você tinha uma página pessoal que podia ser personalizada e a Vanessa novinha, já uma cria do clã customização, não podia ficar fora dessa.

O princípio era o mesmo que acontecia com o Tumblr, brincar com HTML e CSS para deixar o seu profile pessoal do jeito que quisesse e obviamente, seguindo as tendências dos inícios dos anos 2000, vocês podem imaginar muita cor, músicas tocando e gifs girando nos perfis mais visitados.  

Aqui temos um exemplo de profile customizado feito por [Neo-faireWings](http://neo-faeriewings.com), minhas habilidades na época eram nesse nível? Não, mas eu era literalmente uma criança então vamos relevar.

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

Minha conta é de 2005 e naquela época eu não fazia ideia o que estava fazendo, no que estava mexendo e como seria o certo, só tinha um objetivo e muita vontade de chegar lá. 

~~Será que posso dizer que tenho 17 anos de experiência e usar meu perfil como prova? Brincadeira.~~

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

~~Eu tinha até loja, muito empreendedora mirim essa menina.~~

Consegui recuperar a conta faz pouco tempo e infelizmente o perfil por algum motivo estava na aparência _default_. Não sei se foi algo devido atualizações do site ou se no passado eu mesma resetei, essa dúvida ficará pra sempre comigo.

A moral da história é que jamais imaginaria que ali seria o comecinho, um gostinho, do que hoje é uma profissão. 

A Vanessa do passado nunca sequer cogitou que algo tão simples quanto querer ter um perfil bonitinho em um jogo online abriria portas para um futuro completamente diferente da realidade dela.

Espero do fundo do meu coração que esse ciclo nunca seja encerrado, pelo contrário que apenas floresça. 

Por mais meninas motivadas pela simples curiosidade e força de vontade.
 

> _Dedico esse relato as futuras devs que podem estar nesse exato momento, da sua própria maneira, descobrindo o mundo tão vasto e desafiador que é o da área da Tecnologia 💗_ 




![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/889uwlkx3z2mv9tm48fc.jpg)
My favorite NPM packages in 2023
Tags: webdev, html, css, javascript
Published: 2023-03-13 22:07:17

When you run `npm list -g --depth=0` command, you get all the globally installed NPM packages on your computer. Here are the ones that I use.

## Acclaimed CSS

[Acclaimed CSS](https://www.npmjs.com/package/acclaimed) is a package that I developed. It is a wrapper for penthouse, a package to extract Critical CSS. Ever since I used it, I use it to generate Critical CSS seamlessly. All I need to do is to quickly create `.acclaimed.json` file in the folder where I will run the command and I get the above-the-fold CSS extracted within seconds.

## deviceframe

I have been using [deviceframe](https://www.npmjs.com/package/deviceframe) package for years. It puts device frames around website screenshots. I use it for creating [my portfolio](https://www.silvestar.codes/portfolio/) screenshots.

## Gulp

[Gulp](https://www.npmjs.com/package/gulp) is my go-to app for automating my workflows. I've tried most of its alternatives, but Gulp fulfills all my needs and I love using it.

## Killify

[Killify](https://www.npmjs.com/package/killify) is another package that I developed. I was annoyed by the hanging processes in my terminal, so I created a package that helps kill every hanging process.

{% youtube 8gjzPBxCd_o %}

## Netlify CLI

Since my site runs on Netlify, I often use [Netlify CLI](https://www.npmjs.com/package/netlify-cli) package. It allows me to develop lambda and edge functions on my computer.

## nodemon

[nodemon](https://www.npmjs.com/package/nodemon) is a very popular package that runs Node.js applications and can automatically restart the node application when file changes in the directory are detected. I use it when I develop Node.js scripts.

## npkill

[npkill](https://www.npmjs.com/package/npkill) is another package that I use from time to time. Since I work on many projects, either personal and client-based, I tend to have many `node_modules` folders on my computer and we all know how heavy they can be.

![Heaviest objects in universe meme - node_modules.](https://i.imgflip.com/4iuwew.jpg)

With `npkill` command you could find all `node_modules` folders and delete them easily.

## Starter Project CLI

[Starter Project CLI](https://www.npmjs.com/package/starter-project-cli) is the first CLI package that I released. I use Starter Project CLI every time I need to set up a Gulp workflow in a project. When you run the `spro start` command, you are prompted with series of questions about the tasks that you want to run and about the project architecture. Once you answer all the questions, Starter Project CLI will create desired tasks for you.

## Conclusion

I also wrote about [my bash scripts](https://dev.to/starbist/my-favorite-bash-shortcuts-in-2023-o94). If you want to know what other software and hardware I use, check [my setup page](https://www.silvestar.codes/uses/).
Things I learned recently...
Tags: javascript
Published: 2023-03-13 21:59:58

- `const obj1 = obj2;`

obj1 is now a reference for obj2, it just pointing to obj2. So, modifying obj2 will also modify obj1

If you want to be able to modify obj1 freely, a simple solution is by destructuring:

`const obj1 = {...obj2};` 

-------

- `const obj3 = {a: 2, b: 3, c: 4}`, and you want to exclude or delete the 'b' attribute? :

`delete obj3['b'];`

-------

- Destructing with an alias!

`const obj4 = {name: "Idris"};`

if we want to set the name attribute to a new variable called username, we can do it like this:

`const {name: username} = obj4;`

`console.log(username); // Idris`
Day 712 : Much More
Tags: hiphop, code, coding, lifelongdev
Published: 2023-03-13 21:58:05

_liner notes_:
- Saturday : Noting too different from normal. Went to the station to do the show. Did the show. Had a good time and did some work on my side project after the show. The recording of this week's show is at https://kNOwBETTERHIPHOP.com

![Radio show episode image of John Oliver on his show with a picture of Ron Desantis with the words Mar 11th 2022 Bailout](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ivcsqpzoy8cmecnazi6h.jpg)

- Sunday : So the time change happened and we went back an hour. I was definitely feeling it in the morning. haha Did my study sessions over at https://untilit.works Got a bunch of stuff done. Worked on my side project. Got the photo uploading functionality working. Ended the night watching "Trigun: Stampede" and I tried to watch "Spy x Family", but I was having internet issues.

- Professional : Today flew by! Had a meeting. Some things came up that I had to work out with some folks. Started looking into booking my travel and accommodations for an upcoming trip. I was doing all sorts of research. The organizer sent me some maps of areas to try and avoid. They were in a different language and it was giving me a headache trying to go between all the different pictures. So I just combined them in Photoshop and found where the conference venues were. Then I booked my hotel. Went to book my flight and it looks like it will be an overnight flight. I think I may have to fly out like 2 days earlier than I thought. I'll probably have to modify my hotel reservation. I'll talk to my manager tomorrow. Next thing I know, it's time to end the day.

- Personal : So the time has changed back an hour so that means that it stays lighter outside later. Yesterday, it was almost 8pm and it was still light out. I prefer this time so much more! haha

![A look at Crater Lake, OR, United States from the ridge with pine trees](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vqdz1qwdpp65m3of4mbu.jpg)

Running a little behind. Going to eat dinner and then work on the PoC for work since I didn't get to work on it today. I want to get a little further so I can show my manager it working for our meeting tomorrow. Want to end the night watching the new "Vinland Saga" and that episode of "Spy x Family" that I wasn't able to watch before.

Have a great night!

peace piece
Dwane / conshus
https://dwane.io / https://HIPHOPandCODE.com
{% youtube ipgwXHegISY %}
Ways web development teams work together
Published: 2023-03-13 21:49:18

Here are some common practices used by professional web development teams:

Agile methodologies: Many web development teams use agile methodologies, such as Scrum or Kanban, to manage their projects. These methodologies emphasize collaboration, flexibility, and continuous improvement. Teams work in sprints or iterations, focusing on delivering small, functional pieces of the project on a regular basis.

Version control: Teams use version control systems, such as Git, to manage changes to their codebase. This allows team members to work on separate features or branches of the codebase without interfering with each other's work. Version control also provides a history of changes, making it easier to track down bugs or revert to previous versions if necessary.

Communication tools: Web development teams use a variety of communication tools to stay in touch and collaborate, including email, chat platforms like Slack or Microsoft Teams, and video conferencing tools like Zoom. Many teams also use project management software like Jira or Asana to keep track of tasks and deadlines.

Code reviews: Code reviews are an important part of the development process, where team members review each other's code to check for errors, suggest improvements, and ensure that the code adheres to established standards and best practices.

Testing and quality assurance: Web development teams also use testing and quality assurance processes to ensure that their code works as intended and is free of bugs and errors. This can include manual testing, automated testing, and continuous integration and deployment processes.

Design collaboration: For web development teams that include designers, collaboration tools like Figma, Sketch, or Adobe XD can be used to collaborate on design elements and ensure that design decisions are integrated into the development process.

Overall, professional web development teams prioritize collaboration, communication, and quality assurance to ensure that their projects are completed on time, within budget, and to the highest possible standard.
What are no-go's and rabbit holes in software development?
Published: 2023-03-13 21:44:19

"No-go's" and "rabbit holes" are both terms used to describe issues that can arise during development that can cause delays or problems with the project.

A "no-go" refers to a significant issue that prevents the project from progressing. For example, a critical bug in the code or an insurmountable obstacle in the design could be a no-go issue. When a no-go issue arises, the project cannot move forward until the issue is resolved.

A "rabbit hole" refers to a situation where a developer spends an excessive amount of time investigating a particular issue, often at the expense of other important tasks. The term "rabbit hole" comes from the story of Alice in Wonderland, where Alice falls down a rabbit hole and ends up in a strange and confusing world. Similarly, when a developer goes down a "rabbit hole," they can become lost in a complex and time-consuming investigation that distracts them from other important work.

Both no-go's and rabbit holes can be costly in terms of time and resources, and it is important for developers to be aware of these issues and try to avoid them when possible. Good project management, clear communication, and a focus on priorities can help minimize the risk of encountering no-go's and rabbit holes.
White Label Shopify Development | Get Professional Shopify Services
Tags: whitelabelshopifydevelopment, shopify, shopifydevelopment
Published: 2023-03-13 21:24:17

**White label Shopify development** is the process of developing a Shopify store as a part of a larger business. This is done to provide a professional and cost-effective way to create and maintain a store. **White label Shopify development** services can include everything from setting up the store to customizing the look and feel of it.

**[White label Shopify development](https://69thedeal.com/shopify-design/)** is a great way to outsource the development process and ensure that everything is done properly and with quality. The developers that are used will have the expertise and experience to create a store that is both visually appealing and functional. They will also be able to advise on the best way to optimize the store for SEO purposes.

**[White label Shopify development](https://69thedeal.com/shopify-design/)** services can also provide ongoing support and maintenance for the store. This means that the store will always be up and running, as well as having the best chances of success. The developers will also be able to ensure that the store is kept up to date with the latest trends and technologies.

**White label Shopify development** services can be a great way to get a professional looking store without the associated costs. It is important to ensure that the developers chosen are reliable and have the experience to get the job done. It is also important to ensure that the store is created correctly and is optimized for the best results.

**[White label Shopify development](https://69thedeal.com/shopify-design/)** services can provide a cost-effective way to create and maintain a store. It is important to ensure that the developers chosen have the experience and expertise to ensure that the store is created correctly and is optimized for the best results. Additionally, they should also be able to provide ongoing support and maintenance for the store. 

**[White label Shopify development](https://69thedeal.com/shopify-design/)** services offer businesses a great way to create and maintain a store without the associated costs. Professional developers can ensure that the store is optimized for the best results, and can provide ongoing support and maintenance. This can be a great way to get the most out of a store without the associated costs. Additionally, the developers chosen should have the experience and expertise to ensure that the store is created correctly and is optimized for the best results.