teleren/devto huggingface dataset:
We always can...; For 20th Software Freedom Day
Tags: freesoftwaremovement, softwarefreedomday, opensource
Published: 2023-08-26 16:55:02



Four decades ago, Richard Stallman might have abandoned the idea of building a free (as in freedom) operating system known as [GNU](https://en.wikipedia.org/wiki/GNU_Project), given the plethora of proprietary ones available. Three decades ago, Linus Torvalds might have opted to mock the GNU project, forsaking his attempt to develop a kernel (ultimately for the GNU project) and instead selecting an option readily available in the market. Twenty years ago… Ten years ago… Now…

A brief look at the history of the Free Software Movement reveals a long list of projects that emerged and developed in the presence of strong proprietary “competitors”. I’m not referring to those using permissive licenses intended to exploit the free labor of volunteer developers. Rather, I’m highlighting many projects released under strong CopyLeft licenses (to protect the user’s freedom); and their numbers are still growing. Among those with AGPL (the strongest CopyLeft license), we have NextCloud, a project for running cloud services, developed amidst a plethora of proprietary cloud solutions. Mastodon, PeerTube, and several other software for creating a network of free and decentralized social media were developed when everyone seemed trapped in centralized and proprietary solutions. The list can be expanded further, but I believe this is sufficient to convey the message.

We can always choose to be the catalyst for change. And we can always choose to make excuses for capitulating to the status quo. The Free Software Movement is one of the best examples of the possibility of change and control over our digital lives when others see no hope. We can always wait and watch for opportunities like a hunter to seize a good moment for contribution, to find the right people to collaborate with, to work in a company for building free/open source software, and more. Maybe it comes late, but we can always take a step forward while others campaign to spread despair.

This year marks the 40th anniversary of the GNU project, the 32nd for the Linux kernel, the 30th for Debian, the 20th for WordPress, and so forth. On the 20th anniversary of [Software Freedom Day](https://en.wikipedia.org/wiki/Software_Freedom_Day), we can reflect on our involvement in this movement and reconsider what it means to be part of such a movement.
Mind Blowing CSS Only Animation in 2023
Tags: css, webdev, programming, beginners
Published: 2023-08-26 16:46:08

 Mind Blowing CSS Only Animation in 2023


![Mind Blowing CSS Only Animation in 2023](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xh84ob4ziem5kx8jcjn0.gif)

---

### Watch Full Video 

{% youtube kQxKkEm3oDA %}
How Much JavaScript Do You Need to Know Before Learning React?
Tags: javascript, react, webdev, beginners
Published: 2023-08-26 16:34:22

##Introduction:

**React** is a popular JavaScript library for building user interfaces. It's used by many large tech companies, including Facebook, Instagram, and Airbnb. If you're interested in learning React, you'll need to have a good understanding of JavaScript.Before learning React make sure that your basic fundamentals of JavaScript

##How Much JavaScript Do You Need to Know?

The amount of JavaScript you need to know before learning React depends on your learning style and experience. If you're a beginner, you'll need to learn the basics of JavaScript, such as variables, data types, functions, and loops. You'll also need to understand how to manipulate the DOM (Document Object Model).

If you're an experienced JavaScript developer, you may be able to jump right into learning React without having to review the basics. However, it's still a good idea to brush up on your JavaScript skills before you start learning React.

##What JavaScript Concepts Do You Need to Know?

Here are some of the JavaScript concepts you'll need to know before learning React:

1. Variables
2. Data types
3. Functions
4. Loops
5. Conditions
6. Arrays
7. Objects
8. DOM manipulation
9. Asynchronous programming
10. Functional programming

###Where Can You Learn JavaScript?

There are many resources available to help you learn JavaScript. Here are a few suggestions:

Codecademy offers a free JavaScript tutorial.
Free Code Camp offers a free JavaScript certification program.
The Odin Project offers a free curriculum that includes JavaScript.
Udemy offers many JavaScript courses.
Pluralsight offers many JavaScript courses.

##Conclusion

Learning React is a great way to build modern user interfaces. However, it's important to have a good understanding of JavaScript before you start learning React. By taking the time to learn the basics of JavaScript, you'll be well on your way to becoming a React developer.
Arrays Decoded: A Deep Dive into JavaScript's Dynamic Data Containers
Tags: javascript, array
Published: 2023-08-26 16:33:38

Introduction:

Arrays in JavaScript are like magic boxes that store and organize data. Whether you're handling a shopping list or managing complex information, arrays are your go-to tool. This article is your map to navigate the array terrain, from basics to brilliance, and make your code dynamic and efficient.


**1.Arrays 101: The Building Blocks**
Let's start with the basics. Imagine arrays as containers holding various elements. To create an array, use square brackets [], like this: let myArray = [1, 2, 3, 4, 5]. You've just laid the groundwork for holding and managing your data.

**2.Accessing Elements: Navigating the Array Landscape**
Each element in an array has a unique index, starting from 0. For instance, in our myArray, the first element 1 is at index 0, the second element 2 at index 1, and so on. Access elements using this index: let firstElement = myArray[0].

**3.Manipulating Arrays: Adding and Removing Elements**
Arrays are dynamic; you can add and remove elements on the go. Use push() to add an element to the end: myArray.push(6). To remove an element from the end, pop() is your tool: myArray.pop().

But what about the beginning? For that, unshift() adds elements to the front, while shift() removes the first element.

**4.Iterating with Loops: Taming the Array Beast**
Looping helps us perform actions on every element. A for loop can move through each element step by step. Or use the forEach() method, which does the same thing but with cleaner syntax.

**5.Array Methods: Simplifying Complex Operations**
Array methods are like superpowers. map() lets you transform every element, filter() helps you sieve out specific elements, and reduce() aggregates values, all while keeping your code elegant.

**6.Multi-dimensional Arrays: Navigating the Array Maze**
Arrays within arrays? Yes, that's a thing. Imagine a grid where each cell is an array. That's a multi-dimensional array, useful for everything from building game boards to storing data tables.

**7.Array Destructuring: Extracting Values Smartly**
Instead of accessing elements one by one, you can extract multiple values from an array into separate variables at once. It's like unpacking a gift, but for your code.





*Conclusion* 

Arrays are the backbone of data organization in JavaScript. From understanding the basics to using advanced methods, comprehending arrays empowers you to build versatile, efficient, and powerful applications. As you delve into the world of arrays, remember that these dynamic data structures are your allies in creating elegant and functional code.






NOTE: Please note, this is a work in progress article and will be updated periodically.
Make Floating Action Button With Popup Menu In Flutter
Published: 2023-08-26 16:31:09

Welcome, dear flutter developers, to a journey into the world of user interface elegance and functionality. Today, we embark on a study of a design element that has redefined the way users interact with applications – the Floating Action Button, often referred to as the FAB. This unassuming, yet crucial, component holds the power to enhance the user experience through its strategic placement and intuitive functionality.[Read More](https://flutterfun.com/)
My Internship as a Developer Advocate
Tags: devrel
Published: 2023-08-26 16:04:46

## Why Developer Advocacy?
As someone with a technical background in computer science and AI, I was always interested in building and explaining things. I spent more than 2.5 years working as a software engineer, where I spent a lot of time building stuff, reading documentation, and thinking that I could do it better. That’s when I discovered developer advocacy, a role that allowed me to both build and explain things, and I knew that this was what I wanted to do. 👩🏻‍💻

## NLP
During my master's year, I was particularly interested in the NLP field, impressed by end-user products like Grammarly and Google Translate (now ChatGPT and more). I wanted to learn more about the technologies behind these products and build new applications using them. I was also looking for a company that worked with open source projects.

> Building with community, for community.

That’s when I came across deepset and Haystack. I don’t quite remember where I first heard of them, must be on Twitter, but I was immediately interested in the role of Developer Advocate Intern when they first put it out. After passing their interview process, I was thrilled to be offered the position. 🎉

## deepset
What made deepset stand out to me was not only their focus on NLP and open source, but also their remote work policy and international team. Being a remote worker since the start of my professional career, I valued the flexibility that remote work provides. I can work from a coffee shop down the street or from a different country altogether. Moreover, as someone who has experienced the guilty feeling of causing people to switch to English when I enter the room, I was thrilled to be part of an international team that celebrates diversity. 🗺️


## Being Developer Advocate at deepset
As a Developer Advocate at deepset, my role is to help the open source community build applications with Haystack while also advocating for developers to improve the product according to their needs.

The scope of the role is broad, which keeps things exciting. One day, I might be creating visuals for a Twitter thread, the next day, hunting a bug in the repository, and the day after that, learning about Docker. This beautiful chaos is what I love about my role at deepset. 🌈

## What’s Next?
Overall, my internship at deepset as a Developer Advocate has been a fantastic opportunity to combine my technical skills with my passion for writing and teaching. I’ve learned so much about NLP and open source development, and I feel like I’m making a real impact on the community.

Although my internship at deepset has ended, I am thrilled to announce that I will be joining the company as a full-time Developer Advocate! I am excited to continue working with the amazing team and helping to improve the developer experience of Haystack. 🚀
the dawn of solana on chainparser
Tags: webdev, javascript, blockchain, solana
Published: 2023-08-26 15:55:33

our main strategy at [chainparser](https://chainparser.com) to building a product that people truly want is to expand our data offerings to as many chains as possible. this will help us broaden our market and eventually get us within the visibility of more potential users. 

as such, we are constantly working to add more chains and datasets for researchers, analysts, investors, developers, students, and what-have-you, to find the information they need to make sound decisions regardless of their level of technical knowledge. 

now we're adding [solana](https://chainparser.com/solana) data to our offerings making a total of 2. currently, live solana metrics on chainparser include `daily transaction count`, `average gas fees`, `daily new users`, `daily active users`, `total value locked`, `blocktime`, and `transactions per second`. these metrics show a brief overview of solana's network health, usage, and value. 

consequently, we'll be adding more metrics on solana over time. and among other things, we also shipped some other tiny updates including creating new social media card banners for ethereum, and the new solana page. all these updates are to improve the user experience and make chainparser a highly desirable product.

we thank you for sticking with us on this journey. please follow us on [X](https://twitter.com/chainparser), or [LinkedIn](https://www.linkedin.com/company/90980993/admin/feed/posts/) for timely updates as we continue to deliver on our promise of making blockchain data simple and accessible.
Effortless Slug Handling with NestJS Pipes
Tags: webdev, programming, nestjs, backend
Published: 2023-08-26 15:37:49

NestJS pipes are essential for data validation and transformation. They are used to preprocess incoming data before it reaches your controller methods. In this example, we'll use pipes to validate and transform incoming slug parameters.

Consider the following code snippet:
```ts
// Import required modules
import { Controller, Get, Param } from '@nestjs/common';
import { SlugValidationPipe } from './slug-validation.pipe';
import { Article } from './article.entity';

@Controller('articles')
export class ArticleController {
    @Get(':slug')
    getArticleBySlug(@Param('slug', SlugValidationPipe) article: Article) {
        return article;
    }
}
```
In this code, we define a route parameter named `slug` using the `@Param()` decorator. The `SlugValidationPipe` validates and transforms the slug before passing it to the `getArticleBySlug` method.

Here's how the `SlugValidationPipe` works:
```ts
// SlugValidationPipe.ts
import { PipeTransform, Injectable, BadRequestException } from '@nestjs/common';
import { ArticleService } from './article.service';

@Injectable()
export class SlugValidationPipe implements PipeTransform {
    constructor(private articleService: ArticleService) {}

    async transform(value: any) {
        const article = await this.articleService.getArticleBySlug(value);

        if (!article) {
            throw new BadRequestException('Article not found');
        }

        return article;
    }
}
```

Inside the `SlugValidationPipe`, customize validation and transformation logic as needed. This example assumes an `ArticleService` with a `getArticleBySlug` method to retrieve articles using slugs.
First post
Tags: learning
Published: 2023-08-26 15:15:03

## 목차
- [1.시작하며](#1-시작하며)
- [2.내용](#2-내용)  

--- 
## 1. 시작하며
안녕하세요. 기록하고 기억하기 위해 dev.to 를 시작하게 되었습니다.

## 2. 내용
현재 DBA이고, 더 나은 엔지니어가 되도록 배운 것을 조금씩 포스팅 해보겠습니다.
감사합니다.
Avukat Aliye YILDIZ VARSIN
Published: 2023-08-26 15:13:23

[Avukat Aliye YILDIZ VARSIN ](https://www.gloryhukukvedanismanlik.com/ekibimiz/)20 yıllık hukuki ve mesleki tecrübesini şimdi kendi ofisinde devam ettirmektedir.
1977 yılında doğmuştur. [Çankırı ](url)Anadolu Lisesi’ni bitirdikten sonra 95 yılında eğitime başladığı Ankara Üniversitesi Hukuk Fakültesi’nden 1999 yılında mezun olmuştur. Yüksek Lisansını “Fikri ve Sınai Haklar Mahkemesinde Yargılama” konulu bitirme ödevi ile tamamlamıştır. Doktora çalışmalarına ise halen Ankara Üniversitesi Hukuk Fakültesi Özel Hukuk Ana Bilim Dalında devam etmektedir. Ekibimiz ile iletişim için...

Av. Aliye Yıldız Varsın kariyerine 2000 yılında hâkim adayı olarak başlamıştır. Meslek hayatı boyunca hukuk ve ceza hâkimliği ile Anayasa Mahkemesi Raportörlüğü görevlerini sürdürmüş, son olarak Yargıtay 10. Hukuk Dairesi tetkik hâkimliği görevinde bulunmuş, 20 yıllık kariyeri süresince hukukun hemen her alanında deneyim kazanmıştır.

Glory Hukuk ve Danışmanlık Ofisi, Av. Aliye Yıldız Varsın tarafından kurulmuş olup halen aktif olarak faaliyetine devam etmektedir. Hukuki danışmanlık ve temsil hizmetlerini, meslek ilkelerine uygun bir şekilde, uygun kıdem ve deneyime sahip, konusunda uzmanlaşmış ekibiyle sizlere sunan, kaliteden asla ödün vermeyen hukuk ofisi, mükemmeliyetçi bir özenle tüm hukuki sorunlarınızda sonuca götüren etkin çözümler geliştirmekte, ağırlıklı olarak Ceza Hukuku, Şirketler Hukuku, Aile Hukuku, Eşya Hukuku, İş Hukuku ve Ticaret Hukuku alanlarında hizmet vermektedir. Bununla birlikte Av. Aliye Yıldız Varsın mesleki ve akademik bilgisi ve tecrübesiyle bireysel başvuru ve mülkiyet hukuku gibi farklı alanlarda da çalışmalarını sürdürmekte, güncel gelişmeleri de yakından takip etmektedir.

Avukat Aliye Yıldız Varsın aynı zamanda Sözleşmeler Hukuku alanında da çalışmalar yapmakta birçok şirket ve ortaklıklar için sözleşmeler düzenlemekte, danışmanlık hizmeti vermektedir. Alternatif Çözüm Yolları konusunda da çalışmalarını yürüten Aliye Yıldız Varsın, Arabuluculuk Eğitimlerini de tamamlamıştır. Uyuşmazlıkların çözümü konusunda da aktif rol almaktan hiçbir zaman kaçınmamakta, hatta bazı dosyalarını yargıya intikal ettirmeden her iki tarafın da memnuniyeti ile sonuçlandırmaktadır.

Kendisi bugün sahip olduğu başarılı konumu, toplumdaki rolü ile adaletin tesis etmesini gaye edinen evrensel“adalet ve hakkaniyet” ilkelerine olan bağlılığına, başarılı ve etkin iletişim kabiliyetine, empati yapabilmeye ve en önemlisi profesyonel bir çalışma disiplinine sahip olmaya bağlamaktadır.
Handling Entity Not Found Using Pipes in NestJS
Tags: webdev, programming, backend, nestjs
Published: 2023-08-26 15:12:57

In NestJS, pipes are essential for data validation and transformation. They also help in handling errors gracefully. Let's focus on using pipes to tackle the issue of entity not found, with a simple example.

Imagine you're building an API with an endpoint to retrieve an item by its ID. If the item doesn't exist, you want to return an appropriate error response. Here's how you can do it using a custom pipe called **EntityExistsPipe**.

First, create the **EntityExistsPipe**:
```ts
import { PipeTransform, Injectable, NotFoundException } from '@nestjs/common';
import { ItemsService } from './items.service';

@Injectable()
export class EntityExistsPipe implements PipeTransform {
  constructor(private readonly itemsService: ItemsService) {}

  async transform(id: number) {
    const item = await this.itemsService.getItemById(id);
    if (!item) {
      throw new NotFoundException('Item not found');
    }
    return id;
  }
}
```

Next, apply the pipe to your route handler:

```ts
import { Controller, Get, Param, NotFoundException } from '@nestjs/common';
import { ItemsService } from './items.service';
import { EntityExistsPipe } from './entity-exists.pipe';

@Controller('items')
export class ItemsController {
  constructor(private readonly itemsService: ItemsService) {}

  @Get(':id')
  async getItem(@Param('id', EntityExistsPipe) id: number) {
    return this.itemsService.getItemById(id);
  }
}
```

In this setup, the **@Param** decorator binds the **id** parameter to the **getItem** method in the **ItemsController**. The **EntityExistsPipe** is used as the parameter decorator and checks if the item exists using the **ItemsService**. If the item doesn't exist, a **NotFoundException** is thrown.

By using this approach, you can ensure that your API handles entity not found scenarios elegantly, providing clear and consistent error responses.

In a nutshell, NestJS pipes simplify error handling and enhance your API's robustness by encapsulating validation and error logic.
Best travel destinations
Published: 2023-08-26 14:50:04


# Introduction


Nashik, a city in Maharashtra, is a perfect destination for travelers who are looking for a blend of history, spirituality, and nature. The city is blessed with picturesque landscapes, ancient temples, and vineyards that offer delicious wine tours. Here are some of the best travel destinations in Nashik that you should definitely visit.


## Pandavleni Caves


Pandavleni Caves, also known as the Nasik Caves, is a group of 24 rock-cut caves that date back to 1st century BC. Located on a hill, the caves offer a panoramic view of the city. The caves are a perfect place for history buffs and nature lovers. Some of the highlights of the caves are:

- Intricate carvings and sculptures
- Buddhist stupas
- Water cisterns

## Sula Vineyards


Sula Vineyards is one of the most popular wineries in India. Located in the outskirts of Nashik, the vineyards offer a scenic view of the surrounding mountains. The vineyard tour includes a visit to the grape crushing area, barrel room, and wine-tasting room. Some of the highlights of the vineyard tour are:

- Wine-tasting of some of the best Indian wines
- Delicious food at the vineyard's restaurant
- Live music performances on weekends

![image](https://images.unsplash.com/photo-1568213816046-0ee1c42bd559?ixlib=rb-4.0.3&q=85&fm=jpg&crop=entropy&cs=srgb)


## Trimbakeshwar Temple


Trimbakeshwar Temple is an ancient Hindu temple located in the town of Trimbak, which is around 28 km from Nashik. The temple is dedicated to Lord Shiva and is considered one of the 12 Jyotirlingas in India. Some of the highlights of the temple are:

- Intricate carvings and sculptures
- The sacred pond where devotees take a dip to wash away their sins
- The Kusavarta Kund, which is believed to be the source of the Godavari river

## Conclusion


Nashik is a hidden gem in Maharashtra that offers a unique blend of history, spirituality, and nature. The city has something to offer to everyone, from ancient caves to vineyards. If you are planning a trip to Maharashtra, make sure to add Nashik to your itinerary.
JavaScript 🐲 challenges_6 ⚔️
Tags: javascript, challenge, beginners, webdev
Published: 2023-08-26 14:44:17

## Scramblies

- Complete the function scramble(str1, str2) that returns true.
- If a portion of str1 characters can be rearranged to match str2,
- otherwise returns false.


### Note:

- Only lower case letters will be used (a-z). 
- No punctuation or digits will be included.
- Performance needs to be considered.

#### Example:

```
scramble('rkqodlw', 'world') ==> True
scramble('cedewaraaossoqqyt', 'codewars') ==> True
scramble('katas', 'steak') ==> False
```

[Task URL](https://www.codewars.com/kata/55c04b4cc56a697bb0000048)

### My solution:

```
function scramble(str1, str2) {

    const stringOne = str1.split('');
    const stringTwo = str2.split('');
    const charCounts = {};

    for (let i = 0; i < stringOne.length; i++) {

        const char = stringOne[i];

        if (charCounts[char]) { // character already seen

            charCounts[char]++;

        } else {  // first time seeing character

            charCounts[char] = 1;
        }
    };

    for (let i = 0; i < stringTwo.length; i++) {

        const char = stringTwo[i]

        if (!charCounts[char]) {

            return false;
        }
        charCounts[char]--;
    };

    return true;

};

```

### Code Snapshot:


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


###### 10 JavaScript Games to learn-Totally Cool & Fun 🚀✨🔥

🎥 {% youtube 9EZ0TpuHYvI%}


### Connect with Me 😊

#### 🔗 Links

[![linkedin](https://img.shields.io/badge/linkedin-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/mahmoud-el-kariouny-822719149/)

[![twitter](https://img.shields.io/badge/twitter-1DA1F2?style=for-the-badge&logo=twitter&logoColor=white)](https://twitter.com/Mahmoud42275)
Top 5 Compelling Microservices Frameworks To Develop High-Quality Scalable Applications:. PART 2
Tags: microservices
Published: 2023-08-26 14:42:17

Microservices are a type of service-oriented architecture that is used to develop multifunctional and complex applications. Instead of creating a complete software unit, developers can add small services to create software.👌
(https://medium.com/@fleszarjacek/top-5-compelling-microservices-frameworks-to-develop-high-quality-scalable-applications-part-2-910af0d449b5)