teleren/devto huggingface dataset:
Eligiendo la Arquitectura Correcta para Tu Aplicación Web: Un Enfoque Práctico para Startups
Tags: webdev, javascript, startup, spanish
Published: 2024-01-10 15:20:48

En el viaje de desarrollar una aplicación web, una de las decisiones más importantes es elegir la arquitectura adecuada. Para startups y equipos pequeños, especialmente aquellos trabajando en proyectos full-stack con tecnologías como JavaScript, Express y React, esta elección puede ser decisiva. Hoy, compartiré una guía práctica para seleccionar la arquitectura correcta, enfocándonos en una solución que equilibre simplicidad, eficiencia y escalabilidad.

## El Dilema de la Arquitectura

- Al iniciar un proyecto, es fácil perderse en el laberinto de opciones arquitectónicas: monolíticas, microservicios, entre otras. Cada una tiene sus ventajas y desventajas, pero para una startup, la clave está en encontrar un equilibrio entre desarrollo ágil y escalabilidad futura.

## La Elección Práctica: Arquitectura Monolítica

- **Simplicidad y Velocidad**: Una arquitectura monolítica, donde el backend y el frontend se desarrollan y despliegan como una unidad, ofrece una ruta directa y menos complicada. Es ideal para lanzar rápidamente un MVP (Producto Mínimo Viable) y validar tu idea de negocio.
- **Mantenibilidad**: Con todo el código en un solo lugar, es más fácil realizar pruebas, depurar y mantener la aplicación, especialmente con un equipo reducido o con experiencia limitada en arquitecturas complejas.
- **Escalabilidad Vertical**: Aunque limitada en escalabilidad horizontal, la arquitectura monolítica permite una escalabilidad vertical efectiva, ampliando recursos del servidor según sea necesario en las primeras etapas.

## Mirando hacia el Futuro: Transición a Microservicios

- Una vez que tu aplicación crezca y las demandas aumenten, puedes considerar evolucionar hacia una arquitectura de microservicios o incorporar elementos serverless. Esta transición permite manejar mejor la carga creciente y optimizar las operaciones.

## Enfoque en la Entrega de Valor

- Lo más importante para una startup es entregar valor y una experiencia excepcional a los usuarios. Elegir una arquitectura monolítica inicialmente te permite centrarte en desarrollar características cruciales y obtener retroalimentación del mercado rápidamente.

La elección de una arquitectura monolítica para comenzar tu proyecto full-stack no es solo una decisión práctica, sino una estratégica. Te permite lanzar, aprender y adaptarte rápidamente, manteniendo la puerta abierta para evolucionar hacia arquitecturas más complejas a medida que tu startup crece. Recuerda, la mejor arquitectura es aquella que se alinea con tus objetivos actuales y futuros, permitiéndote entregar valor continuamente a tus usuarios.

¿Cuál ha sido tu experiencia al elegir la arquitectura para tus proyectos? ¿Optaste por la simplicidad inicial o comenzaste con una estructura más compleja? Comparte tus pensamientos y experiencias en los comentarios.
Grupo Tempel: impulsa la innovación sostenible en el 14º Workshop Global de Energía y Cambio Climático de Telefónica
Published: 2024-01-10 15:00:39

El principal propósito de este evento es aprovechar las oportunidades que se presentan en el ámbito de la energía y el cambio climático, impulsando la [innovación ](https://opiniondream.com/)para reducir el consumo energético y la huella de carbono de Telefónica a nivel global. Durante este Taller, se presentan y comparten las [iniciativas ](https://newdigitalsun.com/)más recientes en eficiencia energética y energías renovables. Además, se convierte en el foro ideal para analizar y establecer nuevos desafíos, ya que reúne a las áreas clave de la empresa, como [infraestructura ](https://dailycitylive.com/)de red, finanzas, compras y sostenibilidad.

El evento atrae a más de 250 participantes procedentes de todos los países en los que Telefónica tiene presencia. Después de 14 años de ediciones exitosas, se puede [afirmar ](https://phoenixofdetroit.com/)que el Workshop Global de Energía y Cambio Climático de Telefónica se ha consolidado como un evento fundamental para promover una economía baja en carbono en la compañía.
ElixirScript, a Github Action to run Elixir code in workflow steps
Tags: webdev, elixir, githubactions, devops
Published: 2024-01-10 15:00:00

Hi everyone,

I’ve released this new GitHub Actions called [**Elixir Script**](https://github.com/marketplace/actions/elixir-script), because I wanted a way to script various tasks in my GitHub Actions workflows and wished for a way to use Elixir to do it.

Thus: **ElixirScript, a Github Action to run Elixir code in workflow steps**

It works by taking a script as input, which gets run, and then the script’s return is available in `outputs.result` for later steps to use. Like this:

`.github/workflows/example.yml`:
```yaml
- uses: gaggle/elixir_script@v0
  id: script
  with:
    script: |
      defmodule Greeter do
        def greet(name), do: "Oh hi #{name}!"
      end
      Greeter.greet("Mark")

- name: Get result
  run: echo "${{steps.script.outputs.result}}"
  # Echos "Oh hi Mark!"
```

And the script is run with bindings to the GitHub Actions context that caused the run, so it’s easy to react to run-specific information. For example, :

```yaml
  script: |
    "🚀 Pushed to #{context.payload.repository.name} by @#{context.actor}!
```

I think it’s a pretty easy, very low-friction way of getting to write some of the devopsy glue-code automations in Elixir. And it was a lot of fun to write as I got to learn about Elixir and GitHub Actions 🙂.

It also comes with a pre-authenticated GitHub client via [Tentacat](https://github.com/edgurgel/tentacat), so it’s also easy to write scripts that interact with the GitHub API. Here I get a list of stargazers:

```yaml
- uses: gaggle/elixir_script@v0
  with:
  script: |
    {200, stargazers, _} = Tentacat.Users.Starring.stargazers(client, "gaggle", "elixir_script")
    IO.inspect(Enum.map_join(stargazers, ", ", & &1["login"]), label: "Stargazers")
```

Or I can can cause changes too, here I star a repository:

```yaml
- uses: gaggle/elixir_script@v0
  with:
  script: |
    {204, _, _} = Tentacat.Users.Starring.star(client, "gaggle", "elixir_script")
    :ok
```

Happy to hear any thoughts, feedback, suggestions, etc.

The actual marketplace page is here: [Elixir Script · Actions · GitHub Marketplace · GitHub](https://github.com/marketplace/actions/elixir-script)
Internacional
Published: 2024-01-10 14:59:53

Cuenta atrás para [presentarse ](https://dailycitylive.com/)a la sexta edición del Premio Internacional Princesa de Girona, que por primera vez desde su creación hace ahora 6 años, se desplegará en dos categorías y [premiará ](https://phoenixofdetroit.com/)el trabajo de jóvenes de Latinoamérica de hasta 35 años que hayan destacado por su trabajo en el campo de la empresa y de la investigación científica. Esta convocatoria está abierta hasta el 30 de noviembre.

Este premio tiene vocación de [hermanamiento](https://opiniondream.com/) y destaca la capacidad de logro y superación de jóvenes latinoamericanos en el desarrollo de proyectos, negocios e investigaciones científicas demostrando ser capaces de inducir, de forma creativa, cambios positivos en la sociedad. Se dirige exclusivamente a personas que no tengan la nacionalidad española ni sean residentes en España y que estén desarrollando su actividad [profesional](https://newdigitalsun.com/) en cualquier país latinoamericano.

El galardón está dotado con 20.000 euros y la entrega de la reproducción de una obra del artista contemporáneo Juan Zamora (Premio FPdGi Artes y Letras 2017). Los premiados, además, recibirán el apoyo de la Fundación para dar a conocer su labor y fomentar su visibilidad a nivel internacional ayudándole a convertirse en un referente para la juventud de todo el mundo.
Nushell: Get Fun With Terminal
Tags: terminal, nush, webdev, learning
Published: 2024-01-10 14:56:42

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

Dive into a cutting-edge rust-powered shell that turns your terminal journey into a vibrant blend of excitement and unparalleled productivity!

## _Install On Ubuntu_
```
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
$ sudo apt install build-essential
$ sudo apt install pkg-config libssl-dev
$ cargo install nu
```
## _Start Nushell_
```
$ nu 
```
## _Nushell Commands_
```
$ ls | where type == "dir"
$ ls | where type == "file" 
$ ls | sort-by modified 
$ ls | sort-by modified | reverse
$ ps {Information about currently running processes}
$ sys {Displays information about the system}
$ sys | get host | table
$ open composer.json 
$ ls **/composer.json
$ open client.db | schema | get tables. variables {Check sqlite schema}
$ http get "https://github.com/tauseedzaman/Zshop/blob/main/composer.json" {perform an HTTP GET request to fetch the content}
$ docker ps --format="{{ json . }}" | lines | each { from json } | transpose
$ docker ps --format="{{ json . }}" | lines | each { from json }
```
Embracing the Coding Rollercoaster with Mimo: A Love Letter to Syntax Sanity
Tags: mimo, beginners, learning, programming
Published: 2024-01-10 14:53:51


Hey fellow devs! 👋

Ever found yourself drowning in a sea of code, desperately trying to switch between languages and frameworks only to realize your memory has hit an all-time low? Well, fear not, because I've stumbled upon a secret weapon that's made my coding life a whole lot breezier – let me introduce you to [**Mimo**](https://mimo.org/).

### The Forgotten Code Chronicles

So, picture this: I've been knee-deep in Java for what feels like forever, grinding away at my projects, when suddenly, a wild idea appears! Why not dip my toes into the world of React? Seemed like a brilliant plan until I realized I've practically forgotten everything I ever knew about it.

### AI Overload Anxiety

Now, on top of the language hopping, throw in the daily dose of artificial intelligence we deal with. As cool as it is, it had me stressing over the possibility of my brain turning into a leaky bucket, unable to retain any piece of code. Imagine the horror – a dev forgetting code? Unheard of, right?

### Mimo to the Rescue – Not a Love Story, Just Pure Code Bliss

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

Enter Mimo, my newfound coding confidant. No, this isn't a sponsored ad; it's just me, a dev, basking in the glow of honest-to-goodness appreciation for a tool that actually works. If Mimo wants to throw some sponsorship my way, well, I won't complain, but this is just a humble shout-out from a code enthusiast.


### Learning Made Light and Fun

I dove headfirst into Mimo's Full Stack Development course, starting with the HTML module. Let me tell you, it's like they've cracked the code (pun intended) to make learning fun again. Interactive exercises, bite-sized lessons, and a dash of humor – suddenly, coding wasn't a chore, it was a joyride.

### From Panic to Progress

Those HTML tags I'd forgotten? Mimo had my back. And the worries about AI-induced amnesia? Poof! With a daily dose of Mimo exercises – a modest 30 minutes, no less – I not only refreshed my memory but actually felt my coding muscles getting stronger.


![Mimo Screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q9jnu9jflkdqfybshyf8.jpeg)

Mimo caught my attention with its impressively broad curriculum, spanning algorithms, React, SQL, and JavaScript. As a novice currently navigating the basics of HTML, I'm thrilled at the prospect of gradually delving into these more advanced topics with Mimo as my guide. 

### Wrapping It Up

So, here's to Mimo 🍻 – the unsung hero of my coding adventures. No, it didn't magically solve all my problems, but it sure made the journey a whole lot more enjoyable. Give it a whirl, and who knows? You might just find yourself thanking an app for saving your syntax sanity.

P.S. Know of any other gems like Mimo? Drop me a line and share the knowledge!
eDriving lanza la nueva solución de informes de sostenibilidad EcoReport para flotas
Published: 2024-01-10 14:28:29

EcoReport es el último desarrollo en la asociación de eDriving con el líder en análisis de datos de conducción, Greater Than, que ya ha visto la introducción de la función EcoDrive en la galardonada aplicación digital de seguridad del conductor de eDriving, MentorSM. La mejora de EcoDrive en Mentor permite a los conductores reducir las emisiones de carbono y el consumo de la batería del [vehículo](https://newdigitalsun.com/) eléctrico en un promedio del 20%, al tiempo que garantiza su regreso seguro a casa cada día.

Ahora, con el lanzamiento de EcoReport, las empresas pueden cuantificar sus emisiones de CO2 relacionadas con la conducción y mostrar los resultados de sus [esfuerzos](https://dailycitylive.com/) de reducción del impacto climático en una solución de informes medioambientales, sociales y de gobernanza (ESG) ya preparada. Sus principales [características ](https://opiniondream.com/)son:

Mide las emisiones de CO2 al [volante](https://phoenixofdetroit.com/)
Permite la evaluación comparativa, el establecimiento de objetivos y la elaboración de informes de progreso.
Facilita la elaboración de informes sin fisuras para las flotas de los alcances 1, 2 y 3.
Dos alumnos de Greengates de México desarrollan un sistema de agua sostenible para una escuela pública
Published: 2024-01-10 14:27:10

Shambhavi y Annabelle, dos estudiantes de Greengates School, parte de la familia de escuelas premium Nord Anglia en todo el mundo, ganaron la beca completa de Global Youth Action Fund por su iniciativa para desarrollar un sistema de recolección de agua de lluvia en una escuela [secundaria](https://dailycitylive.com/). pública, ubicada en la Ciudad de México. Los jóvenes estudiantes se [asociaron ](https://phoenixofdetroit.com/)con la Fundación Amistad Británico-Mexicana para ayudar a esta comunidad a superar los retos diarios de la escasez de agua.

Annabelle, una de las responsables del [proyecto](https://opiniondream.com/), afirma: "personalmente me di cuenta de la falta de agua en las escuelas [mexicanas ](https://newdigitalsun.com/)y creo que si ves a una comunidad necesitada y tienes acceso a recursos, debes ayudar. Sentí la responsabilidad de devolver algo a nuestra comunidad y ayudar en todo lo que pudiera, y así fue como Shambhavi y yo nos involucramos con Amistad Británico Mexicana".
Stacked Graph API
Tags: webdev, api, datavisualization
Published: 2024-01-10 14:26:50

Hey Devs, 

An application's ability to display data to its users is super important. After all, what good are all of your data if you can’t visualize them in a compelling way?  If you want your application to provide visual data to your customers/users in an accessible format, then stacked graphs might be the answer. 

While there are various tools out there, but you <3 code.

[ApyHub's Stacked Graph API](https://apyhub.com/utility/stacked-graph) can help to transform your JSON data into dynamic, informative graphs that can be suitable for generating analytics and dashboards.


Here's a sample code & output:

``` Javascript


curl --location 'https://api.apyhub.com/generate/charts/stacked/file?output=sample.png' \
--header 'Content-Type: application/json' \
--header 'apy-token: 'secret-token' \
--data '{
    "title": "Quarterly Sales Fluctuations - Jan to March",
    "theme": "Light",
    "data": [
        {
            "name": "January",
            "values": [
                {
                    "label": "Electronics",
                    "value": 15
                },
                {
                    "label": "Clothing",
                    "value": 25
                },
                {
                    "label": "Toys",
                    "value": 18
                }
            ]
        },
        {
            "name": "February",
            "values": [
                {
                    "label": "Electronics",
                    "value": 10
                },
                {
                    "label": "Clothing",
                    "value": 30
                },
                {
                    "label": "Toys",
                    "value": 12
                }
            ]
        },
        {
            "name": "March",
            "values": [
                {
                    "label": "Electronics",
                    "value": 20
                },
                {
                    "label": "Clothing",
                    "value": 22
                },
                {
                    "label": "Toys",
                    "value": 16
                }
            ]
        }
    ]
}
```


Output: 


![output](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wywwxnknekgagvyq7inq.png)
Need help on artemisMQ using AMQP 1.0 protocol
Published: 2024-01-10 14:24:20

I need to create artemisMQ using AMQP 1.0 protocol. I have written publisher in go and subscriber in java. Here issue is my subscriber subscribe bit late and messages published before the subscriber start are lost. here my observation is queue is not created until subscriber do not subscribe. 
Please let me know if anybody have any solution on this?
How to create the persistent queue artemisMQ using AMQP 1.0 protocol in go lang?

Please help on this.
Recursion, A Beginner's guide
Tags: javascript, beginners, programming, learning
Published: 2024-01-10 14:23:52

**Intronduction**
Recursion is used to solve problems that contain smaller sub-problems.When a function calls itself, recusion has occurred. A recursive function can receive two inputs: a base case (ends recursion) or a recursive case (resumes recursion).

Lets look at an example of traversing a complex object

```javascript
const userInfo = {
  came: 'Thomas',
  school: {
    name: 'Flat Schools',
    jobTitle: 'Developer',
  },
  friends: [
    {
     name: 'Ama',
      school: {
        name: 'Carlifornia Low',
        jobTitle: 'Programmer',
      },
    },
    {
      name: 'Nii',
      school: {
        name: 'New York High',
        jobTitle: 'Lead Developer',
      },
    },
  ],
  assignments: [
    {
      title: 'Draw',
      description:
        'Draw the map of the world.',
    },
    {
      title: 'Paint',
      description:
        'Paint a statue in your neighborhood.',
    },
  ],
}
```

Traversing the `userInfo` Object with a recursive function requires the Base case and the Recursive case.

``` javascript
function resursionExample(object) {
  if (typeof object === 'object') {
    for (const key in object) {
      deepIterator(object[key])
    }
  } else {
    console.log(object)
  }
}
```


**Base Case**
The base case of a recursive function returns a value without performing a recursive call.
```javascript
else {
    console.log(object)
  }
```

**Recursive case**
```javascript
function resursionExample(object) {
  if (typeof object === 'object') {
    for (const key in object) {
      deepIterator(object[key])
    }
```

**Recursion Pitfalls**
A common pitfall when designing recursive algorithms include not defining a base case.This will lead to causing infinite recursion, and inefficient memory usage.

Recursive algorithms can be less efficient than their iterative counterparts. This is because each recursive call involves overhead, such as saving the state of the current function and setting up the new function. In contrast, iterative algorithms use a loop to repeat operations, which can be faster and use less memory.

**Conclusion**
Recursive function may be easier to write and reduces unnecessary  function calling.
Despite these benefits Recursive functions are generally slower than non-recursive function and may require a lot of memory space to hold intermediate results on the system stacks.
The programmer must evaluate a problem thoroughly before choose to write a recursive function

References
https://developer.mozilla.org/en-US/docs/Glossary/Recursion
https://www.tutorchase.com/answers/ib/computer-science/what-are-common-pitfalls-when-designing-recursive-algorithms
https://www.archilovers.com/stories/5232/the-8-most-extraordinary-spiral-staircases-found-around-the-world.html
https://www.collegenote.net/curriculum/data-structures-and-algorithms/41/454/
Amalinks
Tags: webdev, javascript, beginners, programming
Published: 2024-01-10 14:07:37

[Amalinks](https://www.wsovn.net/amalinks-pro) Pro là một plugin WordPress dành cho các Chi nhánh của Amazon. Nó kết nối trực tiếp với API Amazon để bạn có thể dễ dàng tạo giới thiệu sản phẩm và thêm liên kết liên kết, hình ảnh và nút vào bài đăng trên blog của mình mà không cần rời khỏi trình chỉnh sửa WordPress.
Hình ảnh tuân thủ của Amazon – Hình ảnh được lấy trực tiếp từ API giúp bạn tuân thủ đầy đủ. Bạn có thể chọn bất kỳ hình ảnh và kích thước nào có sẵn trong dữ liệu API. Hình ảnh không được lưu trữ trên máy chủ của bạn, đây là điều bắt buộc để giúp bạn tuân thủ đầy đủ.
Huy hiệu đủ điều kiện chính – Nếu sản phẩm có sẵn trên Amazon Prime – chúng tôi sẽ hiển thị một thẻ để giúp khách truy cập của bạn biết và có nhiều khả năng mua hơn. Chúng tôi hiển thị thẻ dựa trên văn bản ‘Đủ điều kiện chính’ tùy chỉnh vì việc sử dụng biểu tượng Prime thực tế trên trang web của bạn là vi phạm Thỏa thuận điều hành của Amazon Associates. (Hầu hết các plugin phổ biến khác của Amazon đều khiến bạn gặp rủi ro khi hiển thị logo Prime)
Mua ngay tại: [https://www.wsovn.net/amalinks-pro](https://www.wsovn.net/amalinks-pro)
Understand how to filter an array of items using php -part1
Published: 2024-01-10 14:03:54

This is the first part of a four-part series on filtering an array of items using the PHP programming language.


## Introduction


Array filtering is a common algorithm used by software developers to create filter options in software applications. These filters enable businesses using the software application to organize and display specific sets of items, such as books, music, or ordered items. In this series, I'll guide you through a step-by-step approach to filtering items using PHP programming language. While the logic remains consistent across programming languages, the syntax may vary.

## Prerequisites:

This article is designed for beginners, although a basic understanding of programming would be beneficial. 
Using an Integrated Development Environment (IDE) like Visual Studio Code or PHPStorm is recommended.

## Table of Contents:
**Introduction
Prerequisites
Body
Conclusion**

## Body:


In this series, we'll work with a list of books containing book titles and author names, and we’ll be filtering the books by their authors.

Start by creating an array named `$bookItems` in PHP. Variables in PHP are declared using the `$` sign.


```
<?php 
$bookItems = [
    [
        'author' => 'Debra Fine',
        'book' => 'The Fine Art of Small Talk'
    ],
    [
        'author' => 'David Goggins',
        'book' => 'Can\'t Hurt Me’    ],
],
[
‘author’=> ’David Goggins’
 'book' => 'Built not born’    
],
    [
        'author' => 'Debra Fine',
        'book' => 'The big talk’
    ],


]
?>

```

Next, create a function named `filterByAuthor` that accepts two parameters: the `$bookItems` array and the value to filter by, in this case, `$author`.


```
<?php
function filterByAuthor($bookItems, $author) {
    $filteredBooks = [];
    foreach ($bookItems as $bookItem) {
        if ($bookItem['author'] === $author) {
            $filteredBooks[] = $bookItem;
        }
    }
    return $filteredBooks;
}
?>

```

To display the filtered books, use a loop over the result returned by the `filterByAuthor` function, in this case we use the `foreach` loop :

```
<?php foreach (filterByAuthor($bookItems, 'David Goggins') as $book): ?>
    <h1><?php echo $book['book']; ?> by <?php echo $book['author']; ?></h1>
<?php endforeach; ?>

```

## Conclusion:

This article shows how to filter an array of book items by their author using PHP. In the next article of this series, we'll focus on refactoring this code for better efficiency.

Feel free to ask any questions in the comment section below.