teleren/devto huggingface dataset:
How to avoid Technical Debt? Discover the foolproof strategies to steer clear of technical debt.
Tags: webdev, javascript, beginners, programming
Published: 2023-07-14 21:03:20



In the fast-paced world of technology, staying ahead of the curve is essential for any startup. But amidst the excitement of innovation and growth, there lurks a silent menace known as technical debt. To steer clear of this treacherous trap that can undermine your success, it's crucial to adopt a strategic approach. By following a set of best practices, you can ensure that your codebase remains clean, maintainable, and scalable, paving the way for long-term growth and prosperity.


1. Educate non-technical team members about technical debt and its consequences.
2. Hire technical staff or consultants with web development experience.
3. Prioritize thorough planning that considers technical debt mitigation.
4. Establish coding standards and guidelines for developers to follow.
5. Conduct regular code reviews to identify potential technical debt.
6. Implement a strong testing strategy with automated tests.
7. Leverage external resources like online communities and conferences.
8. Encourage continuous learning and skill development.
9. Allocate time and resources for addressing existing technical debt.
10. Foster a collaborative culture across the team.

Avoiding technical debt is crucial for long-term success in software development. By educating team members, hiring technical expertise, planning effectively, setting coding standards, conducting code reviews, prioritizing automated testing, utilizing external resources, emphasizing continuous learning, planning for debt repayment, and fostering a culture of collaboration, startups can mitigate technical debt and maintain a healthy codebase. With a proactive approach and commitment to these best practices, startups can ensure sustainable growth and minimize the risks associated with technical debt.
I can't type in correctly in Android Studio
Tags: android
Published: 2023-07-14 20:39:29

Hi guys, I hope you are doing well. I have one strange issue.  I can't type in properly in Android Studio, pressing any key is deleting the current codes. I am using Macbook Pro and the version of Android studio is Flamingo | 2022.2.1 Patch 2. I recorded the video and please take a look.

Thanks in advance!
Introducing ESTSSH, the configurationless static website generator
Tags: javascript, website, webdev, programming
Published: 2023-07-14 20:22:39

Hey fellow developers,

I wanted to share an exciting new tool I recently built. It's called ESTSSG (EJs, SAAS, Tailwind Static Site Generator). If you're tired of dealing with complex configurations and just want a simple way to generate static websites, then ESTSSG might be the perfect solution for you.

ESTSSG takes a refreshing approach by eliminating the need for extensive setup or configuration files. With just a single command, "npx estssg," you can start generating static websites with ease. It's a game-changer for developers who prefer a more straightforward workflow.

With ESTSSG, you can structure your website files in the `src/` directory, placing your EJS templates, SCSS files, and other assets there. The generator then compiles these files and outputs the optimized static HTML, CSS, and JavaScript files in the `dest/` directory. No complex configuration files or boilerplate code required – just pure simplicity.

One of the standout features of ESTSSG is its built-in local development server. When you run the command, it not only generates your static website but also starts a local server for previewing your changes. And here's the cherry on top – it supports live reloading! Any modifications you make to your source files trigger an automatic refresh in the browser. Talk about seamless development!

Using ESTSSG is as easy as pie:

1. Install Node.js if you haven't already.
2. Open your terminal and run `npx estssg`.
3. Create your website files in the `src/` directory.
4. Watch as ESTSSG compiles your files and generates the static website in the `dest/` directory.
5. Open your browser and visit `http://localhost:8080` to view your website.
6. Make changes to your source files, and ESTSSG will handle the rest – recompiling and refreshing the browser for you.
7. Once you're satisfied with your website, deploy the contents of the `dest/` directory to your web server.

ESTSSG offers a configurationless experience, but that doesn't mean you're limited in customization. You can tweak the EJS templates, SCSS files, and other assets in the `src/` directory to match your specific requirements. If you're feeling adventurous, dive into the ESTSSG documentation and source code to explore advanced modifications.

So, if you've been searching for a simple, configurationless static website generator, ESTSSG is here to save the day. Give it a try and experience the joy of effortless static website development. Say goodbye to complex configurations and hello to productivity!

If you have any questions or would like to share any feedback, tell me. I'm all ears

Cheers,
Alexis
First post
Tags: beginners
Published: 2023-07-14 20:21:58

This is my first post, so I do not know too much but in my class we are encouraged to make weekly post. This week I’ve learned how important mindset is as a web developer, and how crucial it is to having success. My bootcamp starts next week and I’m looking forward to documenting my progress. If this actually is seen by anyone feel free to give advice I can use all the help I can get.
2023-07-14: Back after vacation
Tags: devjournal
Published: 2023-07-14 20:11:24

So I'm back from my vacation.

I didn't get a chance to do anything for the game dev project so I don't have much to report there.

My week at work has also been fairly slow. The principal task for me getting back was getting a Typeform to show up as an embed on a Svelte page and then getting that form data to show up in a Google Sheet and pop up through an email and Slack message.

Setting up the page was fairly simple, M had code from before when he was experimenting and researching while I was gone, so we just reused it. For the Typeform, we used the first thing we saw that resembled a chat bot, and that worked fine.

Typeform is pretty self-explanatory so we didn't have to work around much to make the data save on their cloud or whatever it is that you'd call it.

To get the data to flow around the various websites, though, we used Zapier. That was also relatively simple to set up since it didn't require any coding on our part. Just set up the automation and you're good to go.

One weird roadblock we encountered, however, was that originally, we made the email and Slack message populate from the Google Sheet, and I guess it wouldn't be updated fast enough in time for the API to pull from it, so it would just send a blank email and message.

This was relatively easy to solve by just taking the raw Typeform data that we'd put into the Google Sheet in the first place and transferring that, but I guess I avoided it initially because the field names weren't as "sanitized," I guess.

Now our boss wants us to continue fiddling around with Zapier and its webhook functionality, so that's what we're working on at the moment.

Hopefully next week picks up, considering we're apparently going to be working directly with our Cloudflare instance to set up a serverless app.

Until then, cheers.
#DEVDiscuss: Unions in Tech
Tags: devdiscuss, discuss, labor, union
Published: 2023-07-14 20:00:00

Hey Devs, happy Friday 🦥💚

As always, it's been an eventful week in the tech industry. We've got a lot to talk about! And today I want to discuss...**labor unions in the tech industry**.

Labor unions are on the rise in the United States, from [the WGA and SAG strikes in the entertainment industry](https://www.reuters.com/world/us/caterers-cowboy-outfitters-writers-strike-hits-hollywood-economy-2023-06-28/) to the growth of unions in the healthcare, education, and service industries in the post-COVID era. And they're starting to make some waves in tech, too.

{% embed https://www.axios.com/2023/04/27/unions-tech-industry-labor-youtube-sega %}

The technology industry is relatively new compared to commonly unionized industries (such as entertainment, automotive, and the trades). It's also fast-paced and quickly evolving. For these reasons, [the early history of tech unions is still being written](https://en.wikipedia.org/wiki/Unionization_in_the_tech_sector).

The idea of unionizing tech workers also hinges on who counts as a "tech worker." Check out this article from Axios:
{% embed https://www.axios.com/2022/12/12/tech-labor-movement-unions-2022 %}

> So far, tech's labor activism has largely moved on the margins of the industry, with Amazon warehouse workers, Apple Store employees and video game QA testers leading organizing efforts, while engineers, product teams and other headquarters staff mostly shied away.

So, what do you think? Is it time for tech workers to unionize? How might software developers organize to improve our industry together? Share your thoughts in the comments and let's discuss!

---

_Want to submit a question for discussion, or even ask for advice? Visit [Sloan's Inbox](https://docs.google.com/forms/d/e/1FAIpQLSc6wgzJ1hh2OR4WsWlJN9WHUJ8jV4dFkRDF2TUP32urHSAsQg/viewform?usp=sf_link)! You can choose to remain anonymous._
<h1>Hello World...Again</h1>
Tags: beginners, design, frontend, studies
Published: 2023-07-14 20:00:00

Meu primeiro contato com programação foi em 2019 com C#, porém sempre me identifiquei mais com o Front-End. Além de trabalhar com C# já utilizei Java, VB, C, Python, PHP e Javascript mas nunca foquei em uma só área. Recentemente percebi essa necessidade e decidi montar um PDSI (Plano de desenvolvimento individual) para a área do Front-End e gostaria de compartilhar com vocês como planejo estudar e quais os temas.

A forma de estudo escolhida foi o método "T", que consiste em estudar temas relacionados de forma mais superficial e no centro os estudos seriam mais aprofundados.

O site que usei de exemplo possui esse guia para diversas áreas seja front, back, desktop e mobile. [Veja mais] (https://techguide.sh/)

A área escolhida foi o Front-End como já falei acima, então no do  centro do "T" está o núcleo do que você vai trabalhar. Aqui é onde você vai se especializar e como você pretende evoluir nela. Aqui o foco é total em front-end, desde HTML até Javascript.

Nas pontas são os estudos complementares, na esquerda o foco será sobre UI e UX Design. Já no lado direito o direcionamento vai ser em infraestrutura e Back-end. 

Vou estudar em níveis e pretendo compartilhar algumas coisas por aqui e no meu LinkedIn. Agora é mão na massa!
Speech Synthesis in JavaScript
Tags: javascript, node, development, tts
Published: 2023-07-14 19:30:20

## Backstory

Hi. I want to develop my personal assistant. I needed to implement speech synthesis. I had two ways:

1. Use online speech synthesis like googleTTS
2. Use offline npm modules and my system

So, I chose the second one.

And, here I’ll tell you everything about my adventure and how to use speech synthesis on your device using node.js

## New era

I decided to use Say.js but the repository is abandoned by the author, and I needed to set “UTF-8” encoding for my voice. Originally I wanted to create a fork for Say.js module, but more convenient was to create my own module (I renamed variables, added encodings and created convenient documentation README). So, I developed my module based on Say.js named “speakertts”. If you want to contribute follow [github](https://github.com/nikitadmitr/speakertts)

## How it works

This module uses node.js module “child-process” to call powershell and execute built-in SpeechSynthesizer object (I talk about windows). You can use your powershell and paste this code:

```powershell
Add-Type -AssemblyName System.speech
$speak = New-Object System.Speech.Synthesis.SpeechSynthesizer
$speak.Speak('Hello...')
```

You can read more [here](https://www.pdq.com/blog/powershell-text-to-speech-examples/)

## How to use

1. Install [speakertts](https://www.npmjs.com/package/speakertts) module

    ```bash
    npm i speakertts
    ```

2. Get your voices using `getInstalledVoices()` function

    ```jsx
    const speaker = require('speakertts')

    speaker.getInstalledVoices((error, voices) => {
        if (error) {
            console.error('Error:', error);
        } else {
            console.log('Installed voices:', voices);
        }
    });
    ```

3. Call SpeechSynthesizer using `speak` function

    ```jsx
    speaker.speak('Hello, world', 'Your voice', 1, 'ASCII', 
    (error) => {
      if (error) {
        return console.error('Error speaking!', error)
      }
    
      console.log('text to speech complete')
    })
    ```

It was basics, other functions you can look up on [github](https://github.com/nikitadmitr/speakertts) or [npm](https://www.npmjs.com/package/speakertts)

## How to set your not system voice (for windows)

You just need to install SAPI format voice, and repeat previous chapter
TIL #1 Posting to DPI Dev News
Published: 2023-07-14 19:28:01

1. Add profile page link to the assignment and let the background worker (BW) collect the posts
2. Open https://dev.to/
3. 'Create Post' in the upper right hand corner
4. Get typing!
5. Publish 
6. Revisit post to make edits if needed

It was a bit strange to not see a 'Create Post' button on https://news.dpi.dev/ , but at the very least I get it now! It's cool that there is a BW able to fetch the new posts. I am a bit curious, is the BW an actual person manually retrieving these posts, or is a bot that was written using code (and if the latter, what code was used to do it?)?
Designing a pattern searching algorithm.
Published: 2023-06-27 22:42:33

Algorithms are useful for many things. They are important because they allow us to find the best way possible to find a problem. Algorithms are used in all areas of computing. Today I'm going to show you how I've designed and planned my algorithm and how I've created my flowchart to better help me produce a pseudocode.

**PLANNING THE ALGORITHM**  
The problem: I have two strings 'text' and 'pattern'.
I have to search through the value of 'text' and 'pattern' to check if the value pattern cam be found within the text.

1. Begin with two string variables: 'text' and 'pattern'
2. Obtain input from user and assign it to the variables 'text' and 'pattern'.
3. Initialize a Boolean variable 'pattern' to False, indicating that the pattern has not been found.
4. Iterate through each character in the 'text' string.
5. Check if the current substring from the 'text' matches the 'pattern'. 
If so, set the 'pattern' variable to true and exit loop.
If not, continue to the next iteration of the loop.
6. After the loop completes, check the value of the 'pattern' variable.
If 'pattern' is true, notify the user that the pattern was found in the text.
If 'pattern' is false, notify the user that the pattern was not found in the text.
7. End the algorithm.

## **Flowchart**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/40h26hy16vefxbo95qlh.JPG)

## **Pseudocode**

```
`Input text and pattern
Enter value for text and pattern variables
Initialize pattern variable to FALSE
If the full text hasn't been searched
   Iterate the next character in text
   If the pattern is found:
   change variable to true
If the pattern is found in the text
  TRUE:
    notify user pattern found
  otherwise:
    ERROR`

```

## **Conclusion**
Although algorithms and code can be intimidating to many, they are essential to our tech world. Without them the computers and internet would not be as simple to operate as they are today. Software engineers work everyday to create algorithms and codes to help simplify the users life on the computer, apps, and more.
Yes, OCaml
Tags: 100daystooffload, ocaml, programminglanguage
Published: 2023-07-14 19:11:43

I couldn't stop myself from playing with [OCaml](https://ocaml.org/) this evening.

> An industrial-strength functional programming language with an emphasis on expressiveness and safety

The compiling of an open source project in C++ took to long which gave me an opportunity to download OCaml and start playing with it.

The installation process was really fast and smooth and is on the same page as [Rust](https://www.rust-lang.org/).

I do love programming languages from the [ML family](https://en.wikipedia.org/wiki/ML_(programming_language)) and have already some experience in [F#](https://fsharp.org/) and [Haskell](https://www.haskell.org/).

Not sure though how much time I will spend on this language, only time will tell.
Webservices - Rest x Soap
Published: 2023-07-14 16:43:36

**Primeiramente o que seria um webservice ?**

Webservices são aplicações hospedadas e acessíveis via HTTP que permitem a comunicação e troca de dados entre diferentes sistemas. Existem diferentes abordagens para a implementação de webservices, sendo as mais comuns o REST (Representational State Transfer) e o SOAP (Simple Object Access Protocol). Em resumo, é uma aplicação hospedada e que pode ser acessada através do HTTP.


**SOAP and REST**

O REST é uma forma de comunicação baseada no protocolo HTTP, utilizando métodos como GET, POST, PUT e DELETE para manipular recursos. Ele é considerado mais leve, eficiente e escalável, utilizando formatos de mensagem simples, como JSON ou XML. Além disso, o REST é amplamente suportado em várias plataformas e linguagens de programação.

Já o SOAP é um protocolo mais antigo e mais complexo. Ele pode ser executado em diferentes protocolos de transporte, como HTTP e SMTP, e utiliza XML como formato de mensagem. O SOAP possui uma interface mais complexa, sendo descrita no WSDL (Web Services Description Language) e com mensagens enviadas e recebidas por meio de chamadas de método específicas. Embora seja mais pesado em termos de processamento, o SOAP oferece recursos avançados de segurança e transações.

**_HTTP _**

GET: Solicita um recurso específico do servidor.
POST: Envia dados para o servidor, geralmente usado para criar novos recursos.
PUT: Atualiza um recurso existente no servidor.
DELETE: Remove um recurso do servidor.
PATCH: Atualiza parcialmente um recurso existente no servidor.

Principais Códigos de Status HTTP:
1xx (Informacional):

2xx (Sucesso):
200: OK

3xx (Redirecionamento):

4xx (Erro do cliente):
400: Solicitação inválida
401: Não autorizado
404: Não encontrado
405: Método não permitido

5xx (Erro do servidor):
502: Bad Gateway
503: Serviço indisponível

**Em conclusão**, os webservices são uma forma de comunicação entre sistemas que permite a troca de dados padronizada pela internet. O REST e o SOAP são abordagens diferentes para a implementação de webservices, sendo o REST mais leve, eficiente e amplamente suportado, enquanto o SOAP é mais complexo e oferece recursos avançados. A escolha entre REST e SOAP depende das necessidades específicas do projeto. Os códigos de status HTTP são utilizados para indicar o resultado das solicitações HTTP, fornecendo informações sobre o sucesso ou falha da requisição.
Installing EDB Postgres Advanced Server on Ubuntu 22.04
Tags: edb, postgres
Published: 2023-07-14 18:03:12

## Introduction
EDB EnterpriseDB is a robust and feature-rich open-source database management system (DBMS) built upon PostgreSQL. If you're considering leveraging EDB EnterpriseDB for your Linux environment, this step-by-step guide will walk you through the installation process.

## Installation steps
update your package manager
```bash
sudo apt update
```

. Set up the EDB repository
Setting up the repository is a one-time task. If you have already set up your repository, you don't need to perform this step.

To determine if your repository exists, enter this command:
```bash
apt-cache search enterprisedb
```
If no output is generated, the repository isn't installed.

To set up the EDB repository:

- Go to [EDB repositories](https://www.enterprisedb.com/repos-downloads).
- Select the button that provides access to the EDB repo.
- Select the platform and software that you want to download.

**Install the package**
```bash
sudo apt-get -y install edb-as<xx>-server
```
Where `<xx>` is the version of the EDB Postgres Advanced server you are installing. For example, if you are installing version 15, the package name would be `edb-as15-server`.


To install an individual component:
```bash
sudo apt-get -y install <package_name>
```

## Initial configuration
This section steps you through getting started with your cluster including logging in, ensuring the installation was successful, connecting to your cluster, and creating the user password.

To work in your cluster, login as the enterprisedb user. Connect to the database server using the psql command line client (although you can use a client of your choice with the appropriate connection string).
```bash
sudo su - enterprisedb

psql edb
```

The server runs with the peer or ident permission by default. You can change the authentication method by modifying the pg_hba.conf file.

Before changing the authentication method, assign a password to the database superuser, enterprisedb. For more information on changing the authentication, [see modifying the pg_hba.conf file](https://www.enterprisedb.com/docs/epas/latest/database_administration/01_configuration_parameters/01_setting_new_parameters/#modifying-the-pg_hbaconf-file).
```bash
ALTER ROLE enterprisedb IDENTIFIED BY password;
```

Ref:
[EDB DOCs](https://www.enterprisedb.com/docs/)
[PT-BR] Heurísticas de testes
Tags: testing, developer
Published: 2023-07-14 18:02:13

_Objetivo_: Entender o que é e como usar uma heurística para testes de software.

Heurísticas são estratégias práticas que diminuem o tempo de tomada de decisão e permitem que as pessoas funcionem sem parar constantemente para pensar em seu próximo curso de ação.
Heurística no contexto de teste de software são mais utilizadas em sessões de testes exploratórios auxiliando na direção dos testes e testador.
A heurística não cobre todos os pontos a serem testados, mas torna o processo principalmente exploratório mais organizado.
Uma heurística muito conhecida é o CRUD. Os termos Create, Read, Update e Delete podem ser aplicados em testes que verificam a consistência dos dados.
Se pesquisarmos podemos encontrar diversas heurísticas criadas para diferentes contextos. Testes de API, E2E, Contrato etc. As heurísticas são atalhos mentais poderosos que podem auxiliar bastante nas atividades de testes.
Você também pode criar a sua! As chamadas heurísticas personalizadas.
Uma heurística já conhecida também pode ser ADAPTADA. As possibilidades de personalização dependem de sua criatividade!