teleren/devto huggingface dataset:
Short Overview: Micro-Frontends 🧩
Tags: webdev, javascript, frontend, microservices
Published: 2024-05-27 20:03:57

When people talk about **Micro-Frontends**, the first thing that they would mention is their amazing power to scale up. They achieve this by splitting services into smaller pieces which cooperate seamlessly. 

## Advantages of Micro-Frontends 👍
- **Micro-Frontend** supports strands where teams can realize the subsequent frontend features distinctly making iteration faster. 

- **Horizontal scalability** in micro frontends aims to empower organizations to expand their frontend architectures by scaling out horizontally. 📈

## Disvantages of Micro-Frontends 👎

- Micro-frontends can **complicate** the development, maintenance, and building of a website. However, these challenges can be mitigated by using smart designs, tools that aid in automatic deployment and testing, and ensuring clear communication between teams. 📉

- **Dependency management** could be a problem if the teams don't communicate each others. But it can be resolved by estabilishing clear communication channels between teams to discuss updates! 👌

Monolithic applications often encounter challenges with effective scaling. By decomposing the frontend into micro-frontends, advanced logic structures such as lazy loading and **service workers** can be implemented more efficiently.

**JavaScript** flexibility allows teams to add a variety of frameworks and libraries, facilitating seamless integration and interoperability between microfrontends. The rich ecosystem of JavaScript tools provides developers with powerful resources to create dynamic and responsive user interfaces.❤️

- Inspired by the book: [**_Building Micro-Frontends Scaling Teams and Projects, Empowering Developers_**.](https://www.amazon.com/Building-Micro-Frontends-Projects-Empowering-Developers/dp/1492082996/ref=sr_1_2?crid=RCBAUE4OKJ0J&dib=eyJ2IjoiMSJ9.0ZJp2IXMP9BkahJYaiHl9ez2Wm6vlnMHRLwunki8JYstYZfM_ukCSBNN1JAldlIqkOUuSa70q6nEYv5Rle1a2vzND0PJ_BEBt_kCHgnNjO9tg-Kp9V1tGAtMW7QtLmY53ZAuOFX4lfXTM2DTu5KCUiwIHGHiERCZ9ehXTueraXmWd4AAl5aP6VkEgs56_BamuYAo7pHw1nb6ceTIouGXkdImZ4fB-y81_da06oyWRY8.601H27Rq2LULtNXKVir3Z3QOGJlbx6ovOrmk3Iny2Bg&dib_tag=se&keywords=micro+frontend&qid=1717013751&sprefix=microfronten,aps,223&sr=8-2) by: _Luca Mezzalira Foreword by Neal Ford_

## Join Us!
So... do you love Javascript and want to contribute to an open-source project? **What are you waiting for?**😁 Head over to [Webcrumbs](https://www.webcrumbs.org/ ) and join a community dedicated to the JavaScript ecosystem for open-source enthusiasts!
What is the git index?
Tags: git, github, tutorial, programming
Published: 2024-05-27 19:57:30

# 🗃 💻 🌊 

_Ever so often, I like to "plunge" (more on that later..) into the depths of Git deeper to strengthen my understanding of this tool I leverage every single day._


Recently, I wanted to **untrack files that had previously been tracked and ultimately were pushed to my remote repository**.


I added the directory for said files to my .gitignore and believed my next step would be to just delete them off the remote directly on GitHub... But, it occurred to me there were probably better ways to achieve this same outcome.


## (scroll down to the📌for tl;dr)
---
My investigating lead me to a few places: 

### 1. [Super-User Forum Comment on --cached](https://superuser.com/a/1442728)
- Here is where I learned about `git rm --cached...`.
- What `--cached` does is: 

> "Use this option to unstage and remove paths only from the INDEX. Working tree files, whether modified or not, will be left alone." 
[emphasis mine] [source below]

### 2. [Git Documentation on git rm](https://git-scm.com/docs/git-rm)

- This lead me further into this "pipe" (more still to come...) with asking myself "what is the git index?"


### 3. [SO forum comment on the actual /.git/index](https://stackoverflow.com/a/3690796)
- Where I learned that:

> "The index is a single, large, binary file in <baseOfRepo>/.git/index, which lists all files in the current branch, their sha1 checksums, time stamps and the file name -- it is not another directory with a copy of files in it."


Moreover, the git "index" is where your changes go when you run `git add ...` and directly into that above mentioned binary (`/.git/index`) which acts as your "staging area" in between your workspace (working directory) and your local repository (where your changes go to your current branch when you run `git commit ...`).


# 📌
To summarize, when you run `git rm --cached folder/\*` git will delete the (history?) data represented by this directory in your /.git/index binary/staging area. Next, you push these changes to your remote to have them scrubbed out, LEAVING your directory locally. If this directory has been added to your .gitignore, it will no longer be tracked as well.


# 🚽 🌊 🏄‍♂️  

Now for the conceit that git uses regarding the words "plunge", "pipe" and these 🌊 emojis I've been cheekily trying to breadcrumb into this post...

Through my investigation I learned of the "high level" and "low level" conceit that git adopts: "Porcelain" (high) and "Plumbing" (low).


### 4.a. [high_level_commands_porcelain](https://git-scm.com/docs/git#_high_level_commands_porcelain)

### 4.b. [low_level_commands_plumbing](https://git-scm.com/docs/git#_low_level_commands_plumbing)


_Anyway, just thought that was funny. Git uses a toilet metaphor in their documentation_... 😋 

### Honorable mention: [Think like (a) Git: LSD & Chainsaws](https://think-like-a-git.net/sections/git-makes-more-sense-when-you-understand-x/example-4-lsd-and-chainsaws.html)
From scratch to my first job as a Java developer
Tags: java, backend, backenddevelopment, programming
Published: 2024-05-27 19:43:43

Hello, how are you!! 👋 
Starting my journey in the world of JAVA development. 
From Basic to Advanced, I want to go from Zero until I officially get my first job as a Java developer.
#fromScratchToMyFirstJobAsJavaDeveloper

👉 While the Java vacancy is not enough, we will add more to the learning, with Santander2024 - Backend with Java.
Bootcamp offered by DIO.

🚦 Check out the complete grid:
☑️ Principles of Collaborative Software Development.
☑️ Mastering the Java Programming Language.
☑️ Object Oriented Programming with Java.
☑️ Testing and Dependency Management in Java Projects.
☑️ SQL and NoSQL Database for Back-end Developers.
☑️ Gaining Productivity with Spring Framework and Java.
☑️ Soft Skills in the Agile Era: Connecting People and Opportunities.

Check out all my step-by-step instructions, projects and codes developed during the training process.👀
🌐 https://github.com/Diegojfsr/Santander_Backend_Java_2024
How to install Aseprite on Windows 11 (2024 - Guide)
Published: 2024-05-27 19:38:38

This guide is intended for users of Windows 11/10 and assumes prior experience with the terminal and Git.

---

## Motivation
I had a rocky experience following the `INSTALL.md` guide to install Aseprite on Windows. At the time of writing, it was updated 8 months ago. I tried contributing an update to help organise it with tables and dropdowns but it was rejected for valid reasons _([see original PR](https://github.com/aseprite/aseprite/pull/4463))_. Not wanting to go through the long process of starting an issue and discussion on their repo, I thought it best to simplify even more and just publish a brief article guide on how to install Aseprite on Windows 11 in 2024 from my own experience.

Hopefully, you find this useful 😁

---

## 1. Get the source code

Clone the repository and all its submodules using the following command:

```shell
git clone --recursive https://github.com/aseprite/aseprite.git
```

To update an existing clone:
```shell
git pull
git submodule update --init --recursive
```

---

## 2. Dependencies

To compile Aseprite you will need:

| Dependency | Version | Note |
| - | - | - |
| [CMake](https://cmake.org) | Latest *(minimum v3.16)* | Make available in PATH |
| [Ninja](https://ninja-build.org) | Latest | Make available in PATH |
| [aseprite/Skia](https://github.com/aseprite/skia/releases) | Skia-m102 | Follow their release notes |

> Visit the links for more information on how to download pre-built packages or compile them yourself.

**You will also need:**
- [Visual Studio Community 2022](https://visualstudio.microsoft.com/downloads/)

- Using `Visual Studio Installer`, install the `Desktop development with C++` item with:
   - Windows 10 SDK (10.0.18362.0)
   - MSVC v143 - VS 2022 C++ x64/x86 build tools *(or later version)*

---

## 3. Compiling
For some of the commands below, make sure they point to the correct paths as they can be different on your system.

**3.1 Create a build folder inside `./aseprite`**

```shell
cd ./aseprite
mkdir build
```

> Remove `build` folder and start again if you want fresh copy of Aseprite.

**3.2 Enter the VS 2022 Dev CMD Env.**

```shell
call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat" -arch=x64
```

**3.3 Run cmake inside `./aseprite/build`:**

```shell
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLAF_BACKEND=skia -DSKIA_DIR=C:\deps\skia -DSKIA_LIBRARY_DIR=C:\deps\skia\out\Release-x64 -DSKIA_LIBRARY=C:\deps\skia\out\Release-x64\skia.lib -G Ninja ..
```
> No MinGW support. See info within [Issue #2449](https://github.com/aseprite/aseprite/issues/2449).

**3.4 Run ninja in `aseprite/build` folder**

```shell
ninja aseprite
```

You can find the executable inside `./aseprite/build/bin/aseprite.exe`.

---

## Attributions
- The official `INSTALL.md` guide can be found on their [official repository](https://github.com/aseprite/aseprite/blob/main/INSTALL.md).
- The cover image is a screenshot from their [official website](https://www.aseprite.org/).

---

Hopefully, this guide helps you install Aseprite locally on your machine.
Exploring the Fascinating Field of Botany
Tags: webdev, devops, discuss, news
Published: 2024-05-27 19:25:19

Botany, the [scientific study of plants](https://botanylive.com/), is a diverse and dynamic field that plays a crucial role in our understanding of the natural world. From the tiniest algae to the largest trees, botany encompasses the study of all plant life, providing insights into their structure, growth, reproduction, metabolism, development, diseases, and evolutionary relationships. Here’s an overview of what makes botany such a vital and captivating discipline.

Importance of Botany
1. Biodiversity and Conservation
Botanists work to identify, classify, and study plant species, contributing to our knowledge of biodiversity. This is essential for conservation efforts, as understanding plant diversity helps in protecting endangered species and preserving ecosystems.

2. Agriculture and Food Security
Botany is fundamental to agriculture, as it involves the study of crops and their growth conditions. Advances in plant science lead to improved crop yields, pest resistance, and sustainable farming practices, all of which are critical for food security.

3. Medicinal Plants
Many plants have medicinal properties and are used in traditional and modern medicine. Botanists study these plants to discover new drugs and understand how they can be used to treat various health conditions.

4. Environmental Impact and Climate Change
Plants play a key role in the Earth’s carbon cycle and are integral to combating climate change. Botanists study plant responses to environmental changes, helping to predict and mitigate the effects of climate change.

Key Areas of Study in Botany
1. Plant Physiology
This area focuses on understanding how plants function, including processes such as photosynthesis, nutrient uptake, and water transport. Knowledge of plant physiology is crucial for improving crop efficiency and addressing issues related to plant health.

2. Plant Taxonomy
Plant taxonomy involves the classification and naming of plants. This systematic approach helps scientists communicate about plant species and understand their evolutionary relationships.

3. Plant Ecology
Plant ecologists study the interactions between plants and their environments, including relationships with other organisms. This field is essential for ecosystem management and conservation efforts.

4. Plant Genetics
Plant genetics explores the genetic makeup of plants and how traits are inherited. This knowledge is applied in plant breeding to develop new varieties with desirable characteristics, such as disease resistance and increased productivity.
GradeCalc: Your Ultimate Tool for Calculating Grades
Tags: webdev, beginners, discuss, news
Published: 2024-05-27 19:16:09

Keeping track of grades and understanding your academic performance can be challenging. Whether you’re a student aiming for high marks, a teacher managing class scores, or a parent monitoring your child’s progress, having an efficient tool to calculate grades is essential. GradeCalc is a versatile and user-friendly solution designed to make grade calculation easy, accurate, and accessible for everyone involved in education.

**[What is GradeCalc](https://gradescalc.com/)?**
GradeCalc is an online grade calculator that helps users compute their grades quickly and accurately. It supports various grading systems and can handle different types of assessments such as quizzes, assignments, exams, and participation scores. By inputting your scores and the corresponding weights of each component, GradeCalc provides an instant overview of your academic performance.
**
Key Features of GradeCalc**
1. Multiple Grading Systems
GradeCalc supports a variety of grading systems, including letter grades, percentages, and GPA scales. This flexibility makes it suitable for different educational institutions and grading policies. Whether you’re in high school, college, or university, GradeCalc can adapt to your specific grading criteria.

2. Weighted Grade Calculation
Different assessments often have different weights that contribute to the final grade. GradeCalc allows you to input the weight of each assessment, ensuring an accurate calculation of your overall grade. This feature is particularly useful for courses with multiple components, such as labs, projects, and exams, each contributing differently to the final grade.

3. What-If Scenarios
One of the standout features of GradeCalc is its ability to simulate what-if scenarios. Students can input hypothetical scores for upcoming assessments to see how they would impact their final grade. This tool is invaluable for setting goals and understanding what is needed to achieve a desired grade.

4. Easy-to-Use Interface
GradeCalc boasts a simple and intuitive interface that makes it easy for users of all ages to navigate. The straightforward design ensures that you can quickly input your data and get results without any hassle. The clear and concise layout helps users focus on what matters most: their grades.

5. Mobile Compatibility
Understanding the need for accessibility, GradeCalc is fully compatible with mobile devices. You can calculate your grades on-the-go using your smartphone or tablet, making it convenient to check your academic progress anytime, anywhere.

6. Data Privacy and Security
GradeCalc prioritizes the privacy and security of your data. The platform ensures that all information entered is kept confidential and is not shared with third parties. This commitment to data security gives users peace of mind when using the tool.
Communication Among Services in Microservices Architecture? Let's Clear it Out!
Tags: microservices, architecture, softwareengineering, software
Published: 2024-05-27 19:10:37

When services communicate with each other in a microservices architecture, there are two common patterns: Sync and Async.

In Sync architecture, services call each other typically via direct API calls or other request/response methods. This means that if a service is down, all other dependent services are also down. But this pattern can simplify handling data consistency and reduce data duplication as each service can fetch data when needed.

In Async architecture, services send messages to each other via messaging systems like message queues or event streams where messages are sent without requiring an immediate response. Services are relatively independent and don’t need to wait for each other to respond. If one service fails, other services continue functioning without caring much and will process messages as they become available once the failed service is restored. But this approach usually requires data duplication and extra consistency handling mechanisms, since each service most likely needs to have its own data copy to serve independently.

It might seem like the async approach is the best choice for unicorn projects, but this isn't always the case. Whether to use Sync or Async pattern depends on various factors such as the requirements of the software, budget, market demand, etc. It's important to note that gaining one advantage usually means sacrificing another. Most large-scale software is built on a hybrid pattern to maximize optimization.

I'm building a simple application using microservices architecture in my free time for fun.

Shoot any questions you have. Stay tuned to get updates <3
Javascript Equality Check
Published: 2024-05-27 18:58:19

In javascript equality sign`=` is used for assigning variables so we use something different to check equality.

In javascript, we have three ways to check equality:
- double equals `==`
- triple equals `===`
- `Object.is()`

### == (double equals)

Double equals will allow coercion
this is the algorithm for double equals:
1 - if types are the same do the rest of the calculations with triple equals
2 - null and undefined are equal to each other.
3 - if any side is reference type call ToPrimitive()
4 - if we have two different primitive types convert both of them to numbers then do the equality check.


Since double equals allow coercion it allows some corner cases as well 

for example 
```
[] == ![] // true
```

For not dealing with corner cases we shouldn't use these with double equals:
- don't use 0,"", " " 
- don't use reference types
- don't compare with a boolean

> If the types are equal it will send it to triple equals anyway


### === (triple equals)
It doesn't allow coercion. first, it checks the types if the types are equal it will check values then it will check equality.

```
1 === "1" //Since the types are not equal its false
```
### Object.is()
It behaves the same as the triple-equals operator except `NaN` and `+0` and `-0`.

```
1 === 1; // true
Object.is(1, 1); // true

+0 === -0; // true
Object.is(+0, -0); // false

NaN === NaN; // false
Object.is(NaN, NaN); // true
EX280 Exam Dumps
Published: 2024-05-15 12:59:57

1. Understand the Exam Blueprint:
Familiarize yourself with the EX280 exam blueprint provided by Red Hat. This document outlines the topics and objectives that will be tested in the exam, allowing you to focus your study efforts effectively.

2. Select High-Quality Exam Dumps:
Choose exam dumps from reputable sources known for their accuracy and reliability. Look for dumps EX280 Exam Dumps that closely align with the exam blueprint and provide comprehensive coverage of all exam topics.

3. Develop a Comprehensive Study Plan:
Create a structured study plan that incorporates the use of exam dumps. Allocate specific time slots for studying with the dumps and ensure consistency in your study routine. Break down the exam topics into manageable sections to cover each one thoroughly.

4. Actively Engage with the Material:
Instead of passively reading through exam dumps, actively engage with the content by answering practice questions, solving problems, and explaining concepts in your own words. This active engagement will deepen your understanding of the material.




CLICK HERE FOR MORE INFO>>>>>>>>>>>>>>> https://dumpsarena.com/redhat-dumps/ex280/
kepa
Tags: webdev
Published: 2024-05-27 18:47:30

[Use the](http://chiangmaicaronline.com) + icon on the left or hit the / (forward slash) key to insert a new block. Mailbob supports various blocks, including paragraphs, images, lists, separators and more. Use the block options button on the left to configure blocks and move them around.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ff6fwiuoxws558cedcdj.png)
How I Resolved Prisma Issues and Fixed Vercel 500 INTERNAL_SERVER_ERROR 🚀
Tags: prisma, vercel, devops, webdev
Published: 2024-05-27 18:29:52

Yesterday, I moved an old application from my own hosting to Vercel. Although I anticipated some challenges, I encountered an issue that took longer to resolve than expected. Here’s how I navigated the problem and found a solution, so you can save time if you face the same problem! 😊

### Step 1: Update Prisma and @prisma/client

First, make sure you are using the latest versions of Prisma and `@prisma/client`. For my project, the latest version at the time was 5.14.0. Run the following command to update them:

```bash
npm install prisma@5.14.0 @prisma/client@5.14.0 --save-dev
```

### Step 2: Initial Setup

After deploying to Vercel, I noticed the following error in Vercel's logs:

```
Prisma has detected that this project was built on Vercel, which caches dependencies.
This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered.
To fix this, make sure to run the `prisma generate` command during the build process.

Learn how: https://pris.ly/d/vercel-build
```

### Step 3: Following the Instructions

The error message was clear. To fix it, I needed to add the following to my `package.json`:

```json
"postinstall": "prisma generate"
```

### Step 4: Adding a Build Command

However, this didn't completely resolve the issue. So, I updated Vercel's build command to ensure Prisma generates the client before building the application:

```json
"build": "npx prisma generate && next build"
```

### Step 5: Encountering a New Issue

After this change, my application built successfully, but all API calls returned a `Vercel 500: INTERNAL_SERVER_ERROR`. This was frustrating, and there wasn’t much information available on how to fix it. 😤

### Step 6: Debugging the Problem

After a few hours of trial and error, I found the problem in my `schema.prisma` file. Here’s what my initial setup looked like:

```prisma
generator client {
  provider      = "prisma-client-js"
  binaryTargets = ["native", "linux-musl"] // <- Required on Ubuntu
}

datasource db {
  provider     = "postgresql"
  url          = env("DATABASE_URL")
  relationMode = "prisma"
}
```

This setup worked fine on my server but caused issues on Vercel as I forgot it was customed specificlly for Ubuntu.

### Step 7: Correcting the Schema

Here are the correct settings:

```prisma
generator client {
  provider      = "prisma-client-js"
  previewFeatures = ["driverAdapters"] // <- neon.tech
}

datasource db {
  provider     = "postgresql"
  url          = env("DATABASE_URL")
}
```

### Step 8: Sleep

With these adjustments, my application ran smoothly on Vercel. Finally, I could get some well-deserved rest! 🎉

I hope this will save someone time! ⏳

[Source](https://whoisarjen.com/blog/how-i-resolved-prisma-issues-and-fixed-vercel-500-internal-server-error)