teleren/devto huggingface dataset:
auto-merge-helper is under development
Tags: github, ci, circleci
Published: 2023-03-18 11:11:24

https://github.com/tokizuoh/auto-merge-helper

# What is auto-merge-helper?

When using CircleCI path-filtering, it is not always clear which CI (such as GitHub Actions, CircleCI workflows, etc.) should be executed for a particular commit.

https://circleci.com/developer/ja/orbs/orb/circleci/path-filtering

As a result, the auto-merge feature of GitHub cannot be utilized, which is inconvenient. To address this issue, I am making the auto-merge-helper tool to enable the use of this feature.

Please look forward to it.
Versionfeeds: Custom RSS feeds for releases of your favorite software
Tags: rss, feeds, webdev, productivity
Published: 2023-03-18 10:55:09

This is my second product launching, and I am quite excited. As with so many useful tools and services, they are born out of a problem that needs a solution. [Versionfeeds](https://versionfeeds.com/) is exactly that.

I was quite annoyed by the fact, that I had no central place where I could see all the software releases. I use software a lot, be it at my job, to build my side projects, or tools hosted on my NAS at home. It's literally dozens, if not hundreds of tools, packages or even programming languages. And most of them receive updates regularly.  
That is why I build Versionfeeds.

## What is Versionfeeds

On Versionfeeds, you can create custom RSS feeds, add your favorite software to it and then stay up-to-date with all new releases right in your feed reader. 

### 1. Create a custom RSS Feed

![Preview of the feed creation](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yrq03eu1cp254jaf227q.jpg)

Create your own RSS feeds with a custom title and description. Both the title and the description are used for the actual RSS feed and displayed in your feed reader.

### 2. Add your favorite Software

![Preview of adding Go programming language to a feed](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ncptbp668abyoid1cbr0.jpg)

To add software to your feed, search for it across multiple providers. All public Github, Gitlab, NPM and Packagist projects are supported. Releases are fetched twice a day. If a project doesn't use releases, tags are fetched if possible.

### 3. Access your Feed

![Preview of NetNewsWire with Versionfeeds feeds](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/el3q3q9xghmcu0x7y4kg.jpg)

Each feed has its own, unique RSS URL. The feeds adhere to the official Atom Feed standard and were tested with the W3C Validator. They can be used with any tool that is capable of reading RSS feeds, no matter if it's a commercial service, a desktop app or a self-hosted web application.

## Versionfeeds Professional

Versionfeeds offers a free plan, that will stay free forever. The number of feeds and software you can add to them is limited. To add unlimited feeds and software, you can upgrade to the Professional plan at any time. The Professional plan costs $4.90 per month or $49 per year.

👉 [**Create your first feed on Versionfeeds**](https://versionfeeds.com)

---

Please let me know what your think!

This article was first published on [my blog](https://blog.kovah.de/en/2023/versionfeeds-custom-rss-feeds-for-releases-of-your-favorite-software/).
SOLID Principal
Tags: programming, developer, principal, webdev
Published: 2023-03-18 10:54:44

SOLID Design Principal

SOLID is an acronym for five principles of object-oriented programming and design that can help developers create more maintainable, flexible, and scalable software systems. These principles were introduced by Robert C. Martin, also known as "Uncle Bob," and have become widely accepted as best practices for software development. 


**1. Single Responsibility Principle (SRP)**
            The SRP states that a class or module should have only one reason to change. In other words, a class should have only one responsibility. This principle helps to ensure that changes to one part of a system do not affect other parts unnecessarily.

**2. Open/Closed Principle (OCP)**
          The OCP states that software entities (classes, modules, functions, etc.) should be open for extension but closed for modification. This means that we should be able to add new functionality to a system without changing existing code. This principle encourages the use of inheritance and polymorphism to achieve this.

**3. Liskov Substitution Principle (LSP)**
          The LSP states that objects of a superclass should be replaceable with objects of a subclass without breaking the correctness of the program. This means that a subclass should be able to substitute for its superclass without changing the behavior of the program. This principle ensures that our code is flexible and can evolve over time.

**4. Interface Segregation Principle (ISP)**
          The ISP states that clients should not be forced to depend on interfaces they do not use. In other words, we should separate interfaces into smaller, more focused ones so that clients only need to depend on the interfaces they actually need. This principle helps to reduce coupling between components and makes the system easier to maintain and extend.

**5. Dependency Inversion Principle (DIP)**
          The DIP states that high-level modules should not depend on low-level modules. Both should depend on abstractions. Abstractions should not depend on details. Details should depend on abstractions. This means that we should design our code so that high-level modules (such as business logic) do not depend on low-level modules (such as database access or network communication). Instead, both should depend on abstractions (such as interfaces). This principle helps to decouple components and makes the system more flexible and easier to test.


By following these five SOLID principles, we can create software that is easier to understand, maintain, and extend. These principles also help to promote good design practices and can improve the overall quality of our code.
Uncaught TypeError (I need help) (null)
Tags: react, javascript, node
Published: 2023-03-18 10:53:11

Hi there, I hope this is where I post my problems(sorry if it isn't). I have run into an Uncaught TypeError in my full stack mern app, however this one is a little different. 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5jlqm0vedj24c5wc0rwq.png)
This is the code where I have received the TypeError, having the "user" being identified as null, and the "firstName" and "lastName" as the error. above is where is gets called (I think), and the code it is getting imported from is: 

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

below the screenshot is where I export it as default. Here is my file structure: 

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

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

The client folder is my frontend where my first screenshot is kept, as index.jsx inside the Navbar folder. 
The server folder is my backend, where my second screenshot is kept, as the User.js inside models folder. 
The tutorial I was following had no issues whatsoever, and I tried switching from vite js to create-react-app (what the tutorial was using), to no fix. Ask any questions, I will do my best to answer. Thank you
PHP Search Box with MYSQL and AJAX JQuery
Tags: javascript, beginners, programming, tutorial
Published: 2023-03-18 10:44:47

{% embed https://www.youtube.com/watch?v=i_8IpQtycUE %}

In this tutorial, we'll be creating a PHP search box that uses MYSQL and AJAX JQuery to dynamically display search results. We'll start by creating a simple HTML form that takes user input and sends it to a PHP script. 

Then, we'll use AJAX to send that data to our MYSQL database and retrieve search results. Finally, we'll use JQuery to dynamically display those results on the page without requiring a page refresh.

Whether you're a beginner looking to learn PHP and AJAX, or a seasoned developer looking for a quick and efficient way to implement search functionality on your website, this tutorial is for you!
Should I learn C++ instead of C?
Tags: cpp, c
Published: 2023-03-18 10:34:28

I've mainly done stuff with python and more recently C because I like the low level parts of programming. I've been enjoying C, however I have found that many peices of source code use C++ instead of C, and it can be hard to get backwards compatibility when compiling. On top of that there's also the supported libraries. Seeing as it's practically identical to C but with more features, and anything that works in C does in C++, why shouldn't I just use the latter? There's a lot of stigma around C++ but why should I have to deal with the issues that come with adding an object-oriented workflow to the original language when I don't have to use it?
Revolutionize Your Writing with Blogbeat's AI Recommendation Feature: Boost Engagement and Build Your Audience
Tags: blogbeat
Published: 2023-03-18 10:29:29

**After months of exploring use cases for AI, I came across using AI to improve my blog articles. One week later, the new AI recommendation feature by Blogbeat was born. Discover how it can help you improve writing blog articles in the following article.**

### Introduction

Attention, writers and blog enthusiasts! Seeking an intelligent solution to elevate your writing and captivate your audience? Look no further – introducing Blogbeats' AI Recommendation Feature, your new writing partner!

### Unlock Your Writing Potential with AI

The AI Recommendation Feature serves as an expert advisor, analyzing your content and providing customized suggestions on how to make it more impactful and engaging. From polishing your title to improving readability or identifying the best way to convey your thoughts, this AI-driven tool is designed to empower your writing skills.

### How it works

Blogbeat's AI recommendations will help you create content that engages and inspires your readers. Open an existing draft on Blogbeat and click on "Start Analysis". Our advanced algorithm analyzes your writing, and suggests improvements to structure, grammar, and readability. Blogbeats' AI recommendations will be listed directly next to your draft.

### Real-Life Use Cases

* Freelance Writers: Improve the quality and readability of your articles.
* Business Blogs: Optimize content for better engagement and conversions.
* Personal Blogs: Enhance storytelling skills to attract a wider audience.
* Educational Content: Create clear and concise explanations for complex topics.

### Experience the AI Advantage for Free

Want a free taste of this advanced, AI-powered writing companion? All Blogbeats users can now enjoy one free AI analysis of their articles, complete with AI recommendations on how to elevate their work.

Try the AI Recommendation Feature today and see how it can take your writing to the next level.

Find the original article here: <a href="http://blogbeat.app/blog/maxonce/article/blogbeats-ai-recommendation-feature-enhance-your-writing-with-cutting-edge-technology">http://blogbeat.app/blog/maxonce/article/blogbeats-ai-recommendation-feature-enhance-your-writing-with-cutting-edge-technology
Beyond Traditional Cybersecurity: The Future of AI and Machine Learning in Securing Digital Assets
Tags: machinelearning, cybersecurity, ai, security
Published: 2023-03-18 10:09:46

The integration of artificial intelligence (AI) and machine learning with cyber security is already transforming the way organizations approach security. Here are some of the most exciting technologies that will shape the future of AI cyber security:

"AI-powered security analytics" :- Advanced AI algorithms can analyze large volumes of security data to identify patterns and anomalies that indicate potential cyber attacks. This enables organizations to detect and respond to threats in real-time.

"Autonomous security systems" :- Autonomous security systems use AI to automate security tasks and decision-making, such as threat detection, investigation, and remediation. This reduces the need for human intervention and improves response times.

"Explainable AI" :- Explainable AI is a rapidly evolving field that aims to improve the transparency and accountability of AI algorithms. This is critical for cyber security, as it enables security professionals to understand how AI is making decisions and to detect any biases or errors.

"Quantum machine learning" :- The combination of quantum computing and machine learning promises to revolutionize cyber security. Quantum machine learning algorithms can solve complex security problems that are currently unsolvable, such as cracking encryption codes.

"Cyber deception" :- Cyber deception is a strategy that uses AI-powered decoys and other deceptive techniques to trick cyber attackers into revealing their tactics and motives. This helps organizations to identify and respond to threats more effectively.

As these technologies continue to evolve, they will enable organizations to stay one step ahead of cyber criminals and protect their digital assets more effectively. Let's embrace the power of AI in cyber security and create a safer and more secure digital world!
5 Tips HTTP Client - Laravel
Tags: php, laravel, webdev, programming
Published: 2023-03-18 09:56:13

When browsing the laravel news blog, I found a great article that talks about the HTTP Client and gives us some great tips that will make us happy when using the HTTP Client.

- https://laravel-news.com/laravel-http-client-tips

The article talks about :-
- HTTP Macros
- Configure the HTTP Client for Container Services
- Portable Base URL Configuration
- Preventing Stray Requests in Tests
- Logging Handlers for HTTP Events

Visit the article, dig deep and enjoy the code .
🇫🇷 Trier efficacement des tableaux en JavaScript ?
Tags: javascript, french, apprendre, programmation
Published: 2023-03-18 09:52:15

{% youtube BLgyAoRCn2U %}

Aujourd'hui nous allons voir comment trier (sorting) des tableaux (et tableaux numérotés) en JavaScript. Enfin, nous allons voir comment trier des tableaux contenants des objets en ajoutant un attribut, comme par exemple `priority` ou `order`, pour ainsi afficher l'ordre souhaité de ces objets.


`Array.prototype.sort()` est une fonction de comparaison utilisée pour trier des éléments d'un tableau.

_Les arguments de cette fonction sont :_

- compareFunction(a, b) < 0 : `a` vient avant `b`
- compareFunction(a, b) > 0 : `b` vient avant `a`
- compareFunction(a, b) = 0 : l’ordre de `a` et `b` sont identique.

__Exemple :__

```javascript
const tableau = [1, 20, 8, 15, 25, 80, 100, 200];

// trier de manière décroissante
tableau.sort((a, b) => b - a);

console.log(tableau);
```

Excellente programmation ! 💫

---
👉 Voir mes autres projets sur GitHub https://github.com/pH-7 💡
Why your GitHub action is not triggered by other actions
Tags: hugo, githubpages, githubactions, blog
Published: 2023-03-18 11:56:43

---
title: Why your GitHub action is not triggered by other actions
published: true
date: 2023-03-18 09:42:56 UTC
tags: hugo, githubpages, githubactions, blog
canonical_url: https://joaomagfreitas.link/why-your-github-action-is-not-triggered-by-other-actions/
---

In this blog post I explain why GitHub actions don’t trigger each other by default, helping you how to achieve it.

Last week I wrote about [how I configured a GitHub action to change this blog theme every day](https://joaomagfreitas.link/this-blog-changes-its-theme-every-day/). Today I will explain you why I lost some time trying to understand why that action was not triggering my deploy to GitHub Pages action.

## Before

Let's first do a side by side comparison on how each action is triggered:

```yaml
name: publish

on:
  push:
    branches:
      - master
```

Deploy is based on commits made to master

```yaml
name: update-theme-color

on:
  schedule:
    - cron: "0 0 * * *"

```

Change blog theme color is based on a cron job

Intuitively you would think that once the `update-theme-color` action runs, which creates a new commit in master, triggers the `publish` action, since it reacts to master branch updates.

## However...

That is not the case! By default GitHub Actions don't trigger each other to [prevent recursive runs](https://docs.github.com/en/actions/using-workflows/triggering-a-workflow#triggering-a-workflow-from-a-workflow). For an action `X` to be triggered by action `Y`, then action `X` needs to observe action `Y` execution.

## How

To observe actions execution, the [`workflow_run`](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_run) reaction needs to be included. Here's how I reconfigured the `publish` action:

```yaml
name: publish

on:
  push:
    branches:
      - master
  workflow_run:
    workflows: ["update-theme-color"]
    types: 
      - completed
```
Recopilación de presentaciones
Tags: community
Published: 2023-03-18 03:44:31

Lista con todas las veces que he tenido que ser profe/speaker para una comunidad 🦏✨:

**1)** Workshop: Introducción a la terminal y linea de comandos
**2)** Workshop: Taller práctico de Git y GitHub
**3)** Workshop: Taller práctico de Git y GitHub Reload
**4)** Speaker Session: "De Jose para Jose ✨"
**5)** Info Session: Google Solution Challenge
**6)** Info Session: Presentación del GDSC a la UAO 
**7)** Info Session: Presentación del GDSC al programa Ingeniería informatica UAO
**8)** Workshop: Aprende a estilar webs con CSS
**9)** Speaker Session: "Construyendo comunidades tecnológicas exitosas" para **Google Developer Group Tapachula 🇲🇽**
**10)** Live coding: La hora del code: React.js
**11)** Workshop: Git y GitHub 101 para **Universidad de la Amazonia**
**12)** Workshop: Uso de IA para la vida profesional y personal para **Universidad de la Amazonia** 
**13)**  Construyendo el Futuro: Desarrollo de Software Impulsado por IA para **+ Media: Universidad Simón Bolívar Barranquilla**

##Programados 

**14)**  Workshop: Uso de IA para la vida profesional y personal para **r00thouse HackLab La Paz** 🇧🇴
innerhtml hates event listeners
Tags: javascript, webdev, tutorial, beginners
Published: 2023-03-18 09:21:24

so i was working on a project and i found out that after i add event listeners to a element inside container and then if i add more html to it via .innerhtml += "html" method then the previous content stays along with the new one but the event listeners from the old content are destroyed and the only way to deal with it is to use append child which means you have to write the html using a lot of create element methods which is frustrating
Devgym Retro Fevereiro 2023
Published: 2023-03-18 09:08:34

Hey hey! Cá estou eu para compartilhar os últimos passos da Devgym e olha, fevereiro não foi um mês só de folia.

Lançamos o [Devgym Pro](https://app.devgym.com.br/pro) 🥇, um plano que dá direito a conteúdos exclusivos relacionados aos desafios técnicos. É possível acessar tanto o código fonte de soluções oficiais quanto aos vídeos que te guiam num passo-a-passo dessa solução. 


![Devgym pro](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zai4qcov1nyrl1te25li.png)

Enquanto trabalhávamos duro para lançar essa seção do site, o [Henrique chaves](https://github.com/RickChaves29) voou alto (ou seria baixo? acho que as duas expressões se encaixam haha) e completou três dos nossos desafios. Isso dá quase um desafio por semana 😱👏🏾, saca só sua frequência de commits no github. Máquina.  

![Henrique chaves voando alto](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lgqmr85jbxvmgxvtrx6f.png)

Se juntando a ele, o [Rafael](https://github.com/sotnasr) também aceitou participar resolvendo [um dos desafios mais populares da Devgym](https://app.devgym.com.br/challenges/3ecd0771-981d-44dc-9eee-5ec69791a745). Parabéns! 

Estamos precisando de ajuda para revisar as submissões deles, então se tu se interessar por go, dá uma [olhada em uma das soluções](https://app.devgym.com.br/solutions). Eu acredito fortemente que revisar código também é uma forma incrível de aprender. 

Acredito que os próximos passos do projeto incluem criar cada vez mais desafios com solução focada em Go, mas um dia de cada vez e o #deHojeEstáFeito 💪, até a próxima.
Comprendere 'this' in JavaScript: una guida per padroneggiare il suo comportamento nelle funzioni freccia e anonime
Tags: javascript, italianjs, itathis, programming
Published: 2023-03-18 08:45:50

La parola chiave "**this**" in JavaScript può essere fonte di confusione per gli sviluppatori. È essenziale capire a cosa si riferisce "**this**", perché può variare in base al contesto.

Usiamo alcuni personaggi di Star Wars per spiegare il concetto - so quello che stai pensando: "Ma no, un altro articolo che usa personaggi di Star Wars!".

Sì! 🤓 Sono un fan di Star Wars! 😁

Tuttavia, immagina di avere un Jedi di nome Luke Skywalker e un Signore dei Sith chiamato Darth Vader. Entrambi possono usare la Forza, ma il modo in cui la usano è diverso.

In JavaScript, la parola chiave "**this**" è come la _Forza_ - ti dà il potere di accedere alle proprietà e ai metodi degli oggetti, ma il modo in cui viene utilizzata può variare.

Esempio:

```javascript
const luke = {
  name: 'Luke Skywalker',
  useTheForce() {
    console.log(`${this.name} uses the Force!`);
  }
};

const vader = {
  name: 'Darth Vader',
  useTheForce() {
    console.log(`${this.name} uses the Force!`);
  }
};

luke.useTheForce(); // "Luke Skywalker uses the Force!"
vader.useTheForce(); // "Darth Vader uses the Force!"
```

In questo codice, _luke_ e _vader_ sono oggetti con un metodo `useTheForce`. 
Quando chiamiamo `luke.useTheForce()`, la parola chiave **this** all'interno del metodo si riferisce a _luke_, e quando chiamiamo `vader.useTheForce()`, **this** si riferisce a _vader_.

Fin qui tutto bene. 😑

È importante tenere presente che **this** può cambiare a seconda del contesto. Ad esempio, se usiamo `useTheForce` come una funzione regolare invece di un metodo, **this** si riferirà all'oggetto globale:

```javascript
const useTheForce = luke.useTheForce;
useTheForce(); // "undefined uses the Force!"
```
In questo caso, **this** non si riferisce più a _luke_ o _vader_, ma all'oggetto globale, quindi _this.name_ sarà _indefinito_.

Lo stesso accadrà anche quando si utilizza la funzione freccia:

```javascript
const obj = {
  name: "Luke Skywalker",
  printName: function() {
    console.log(this.name);
  },
  printNameArrow: () => {
    console.log(this.name);
  }
};

obj.printName(); // outputs "Luke Skywalker"
obj.printNameArrow(); // outputs "undefined"
```
Nell'esempio precedente, la funzione tradizionale _printName_ stampa correttamente la proprietà nome di obj. Tuttavia, la funzione freccia _printNameArrow_ stampa _undefined_ perché si riferisce all'oggetto globale **this**, che non ha una proprietà nome.

Nelle funzioni tradizionali, **this** è dinamicamente scritto, il che significa che si riferisce all'oggetto che chiama la funzione. Tuttavia, nelle funzioni freccia, **this** è scritto in modo lessicale, il che significa che si riferisce all'oggetto nell'ambito circostante.

In generale, la parola chiave **this** è uno strumento potente in JavaScript, ma è anche uno che richiede un'attenta considerazione.

Con un po' di pratica, sarai in grado di usare la Forza - eh, **this** - con fiducia!

Buon coding! ✌️