teleren/devto huggingface dataset:
IEnumerable Vs IQueryable in Asp.net Core Web API
Tags: webdev, programming, opensource, aspdotnet
Published: 2023-05-24 18:05:52

In C#, the interfaces `IEnumerable` and `IQueryable` are both used to query and modify data. They do differ significantly in terms of their usage and behavior, though.
The underlying interface for all collections that can be enumerated is called `IEnumerable`. You may iterate over a collection using a `foreach` loop or LINQ query operators like "Where" and "Select" because it represents a forward-only cursor of elements. It is frequently applied to already-loaded data structures such as arrays, lists, and other in-memory collections. A number of methods, including `GetEnumerator()` and `GetEnumeratorAsync(),` are available in the `IEnumerable` interface to acquire an enumerator for traversing the collection.

Example:
```csharp
IEnumerable<string> names = new List<string> { "John", "Jane", "Alice", "Bob" };

foreach (string name in names)
{
    Console.WriteLine(name);
}

// Output:
// John
// Jane
// Alice
// Bob
```

The `IQueryable` interface, on the other hand, extends the `IEnumerable` interface and is used to query data from a data source, such as a database, utilizing query providers like LINQ to SQL or Entity Framework. It indicates a query whose execution is postponed until the query is materialized or enumerated. The underlying query provider can carry out query translation and optimization thanks to this deferred execution. IQueryable's support for LINQ expressions and query operators makes it possible to create sophisticated inquiries.

Example:
```csharp
IQueryable<string> names = dbContext.Users.Where(u => u.Age > 18).Select(u => u.Name);

foreach (string name in names)
{
    Console.WriteLine(name);
}

// The actual query to the database is executed here, fetching only the required data
// Output:
// John
// Jane
// Alice
// ...
```

An `IQueryable` representing a database table or queryable collection is `dbContext.Users` in the example above. The `Where` and `Select` operators are used in the LINQ query to filter and project the data. Whenever the `foreach` loop iterates through the "names" collection, the query is conducted, and data is retrieved from the database.
The primary distinction between `IEnumerable` and `IQueryable` is that `IEnumerable` is used for in-memory collections and executes in-memory operations, whereas `IQueryable` is used to query external data sources (such as databases) and supports query composition and deferred execution for the best possible performance.
emergency plumber smithville tx
Published: 2023-05-24 18:04:55

When it comes to plumbing issues, there’s no such thing as a minor issue. If you’re in need of an [emergency plumber smithville tx](https://calldougtheplumber.com/emergency-plumbing/) or its surrounding areas, it’s important to act quickly. 

At Doug The Plumber, we offer a full range of emergency plumbing to help you get your home or business back up and running as quickly and safely as possible. We have been in the plumbing industry since 1998 and have held a State of Texas Master Plumber license since 2003.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tqtf7dpwo9etymvtemu5.png)
Is Gulp Dead?
Tags: beginners, javascript, webdev, productivity
Published: 2023-05-24 17:47:39

Hey there, fellow devs! In the ever-evolving world of web development, we rely on nifty tools and task runners to keep our workflows smooth like butter. One such legend is Gulp, the task runner that once ruled the build tool scene. But wait, some rumors suggest that Gulp might be on its last legs. It is time to bid farewell to our beloved Gulp? Let's dive deep and uncover the truth!

**Embracing the Gulp Life - Where It All Began:**
- Say hello to Gulp, the superhero of automation, who swooped in to rescue us from repetitive tasks and configuration headaches.
- Kick back and enjoy the perks of Gulp's code-over-configuration approach, letting us focus on writing code instead of endless setup.
- Cheers to Gulp's streaming build system, effortlessly handling Sass compilation, JavaScript concatenation, minification, and even live reloading. It's like magic, but for developers!

**Shaking Up the Web Dev Landscape: Gulp's Thunderous Impact:**
- Brace yourselves for Gulp's undeniable impact on the web development world. It blew minds and won hearts with its intuitive syntax and a thriving plugin ecosystem.
- Picture Gulp as the unruly rebel that inspired other build tools to up their game. It was the spark that ignited a whole generation of task runners and build systems.
- Take a moment to appreciate Gulp's role in revolutionizing front-end workflows and making our lives a whole lot easier (and more fun!).

**Gulp in Action: Simplifying CSS Minification:**
- Let's dive into some code! Here's a widely used Gulp task for minifying CSS files:
```
const gulp = require('gulp');
const cssnano = require('cssnano');
const rename = require('gulp-rename');

gulp.task('minify-css', function() {
  return gulp
    .src('src/css/*.css')
    .pipe(cssnano())
    .pipe(rename({ suffix: '.min' }))
    .pipe(gulp.dest('dist/css'));
});
```
This task leverages Gulp's plugin ecosystem to minify CSS files and save them with a `.min` suffix. Just run the task, and voila! Your CSS is optimized and ready for production.

**The Present and Future: Debunking the Demise Myth:**
- Alright, folks, here's the scoop: Gulp is far from kicking the bucket. It's still alive and kicking, evolving with the times to stay relevant.
- While newer tools like webpack, Parcel, and Rollup have emerged, Gulp remains a trusted companion for specific use cases and legacy projects.
- Think of Gulp as that vintage vinyl record you keep in your collection—nostalgic, reliable, and perfect for certain occasions.

**Conclusion:**
	So, my tech-savvy pals, Gulp is not dead, but rather a timeless classic that continues to add value to our web development adventures. Whether you choose to ride the wave of new-age tools or stick with your trusty Gulp, remember that it's all about finding the right tool for the right job.

What are your thoughts? Share'em in the comments
Iterating over emojis with for/of?
Published: 2023-05-24 17:14:18

### This will be a short one

In ES6 strings are by default iterable with a for/of loop character-by-character. When iterating over strings, they are iterated by the Unicode codepoint, not by UTF-16 characters.

This can leave room for unexpected behavior. Let's look at this string for example: "I🧡😀".

```js
let str = "I🧡😀";

console.log(str.length); // => 5

for (let char of str) {
	console.log(char); // => "I", "🧡", "😀"
}
```

This string has a `.length` of 5 because the two emojis require each two UTF-16 characters to represent. But when you iterate over them with a `for/of` loop, the loop body will run three times, once for each codepoint "I", "🧡", "😀".
Basic Custom Email Configuration on Ghost - Failed to send magic link email
Published: 2023-05-24 17:09:32

I installed ghost on a droplet on Digital Ocean. I install it directly from the marketplace. I bought a custom domain from Namecheap and also an email. I got the domain working. But when I setup my email. The email is being sent from noreply@atharv.vadehra.me according to error logs. I have an alias noreply@vadehra.me but the config file is not reading the from attribute. in the JSON file so it is passing through the default( noreply@atharv.vadehra.me )

Config File:

```
{
	"mail": {
		"from": "atharv@vadehra.me",
		"transport": "SMTP",
		"options": {
			"host": "mail.privateemail.com",
			"port": 465,
			"secure": true,
			"auth": {
				"user": "atharv@vadehra.me",
				"pass": "******************"
			}
		}
	}
}
```
Error Log:

“Error: Can’t send mail - all recipients were rejected: 553 5.7.1 <noreply@atharv.vadehra’.‘me>: Sender address rejected: not owned by user atharv@vadehra’.'me\n at createMailError (/var/www/ghost/versions/5.47.1/core/server/services/mail/GhostMailer.js:68:12)\n at SMTPConnection._formatError (/var/www/ghost/versions/5.47.1/node_modules/nodemailer/lib/smtp-connection/index.js:790:19)\n at SMTPConnection._actionRCPT (/var/www/ghost/versions/5.47.1/node_modules/nodemailer/lib/smtp-connection/index.js:1632:28)\n at SMTPConnection. (/var/www/ghost/versions/5.47.1/node_modules/nodemailer/lib/smtp-connection/index.js:1585:30)\n at SMTPConnection._processResponse (/var/www/ghost/versions/5.47.1/node_modules/nodemailer/lib/smtp-connection/index.js:953:20)\n at SMTPConnection._onData (/var/www/ghost/versions/5.47.1/node_modules/nodemailer/lib/smtp-connection/index.js:755:14)\n at TLSSocket.SMTPConnection._onSocketData (/var/www/ghost/versions/5.47.1/node_modules/nodemailer/lib/smtp-connection/index.js:193:44)\n at TLSSocket.emit (node:events:513:28)\n at addChunk (node:internal/streams/readable:315:12)\n at readableAddChunk (node:internal/streams/readable:289:9)\n at TLSSocket.Readable.push (node:internal/streams/readable:228:10)\n at TLSWrap.onStreamRead (node:internal/stream_base_commons:190:23)”,“hideStack”:false},“msg”:“Failed to send email. Reason: Can’t send mail - all recipients were rejected: 553 5.7.1 <noreply@atharv.vadehra.me>: Sender address rejected: not owned by user atharv@atharv.vadehra.me.”,“time”:“2023-05-20T18:09:37.811Z”,“v”:0}
Amazon EventBridge
Tags: cloud, aws, devops, security
Published: 2023-05-19 14:13:46

Anotações sobre o Amazon EventBridge para ajudar na preparação das certificações AWS.
Até o momento as anotações são para as certificações abaixo:


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

- [Link oficial](https://aws.amazon.com/pt/eventbridge/)


##**Definição do fornecedor**
_É um barramento de eventos Serveless que torna mais fácil a criação de aplicações orientadas por eventos em escala usando eventos gerados com base em suas aplicações, aplicações integradas de software como serviço (SaaS) e serviços da AWS._


##**Anotações gerais**

- Real-Time
- Permite receber, filtrar, transformar, rotear e entregar eventos

**Rule Type**

- **Event pattern** -- torna essa regra acionada quando ocorre um evento que corresponde ao padrão.
- **Schedule **-- faz com que essa regra seja acionada regularmente no agendamento que você especificar

**Envia dados para**

- AWS Lambda
- Amazon SNS
- API Destination

##**Vídeos**

- [Building an event-driven application with Amazon EventBridge](https://www.youtube.com/watch?v=mOysNzNFDRw)
- [Deep Dive on Amazon EventBridge](https://www.youtube.com/watch?v=28B4L1fnnGM)
plumbing bastrop tx
Tags: plumbing, plumber, services, repair
Published: 2023-05-24 16:35:41

Are you in need of a professional plumber in Bastrop, TX, or its surrounding areas? Doug the Plumber is your go-to [plumbing bastrop tx](https://calldougtheplumber.com/bastrop/) expert. With more than 20 years of experience, Doug and his team of expert plumbers offer reliable plumbing services and solutions to all your residential and commercial plumbing needs. 

Whether you need a simple plumbing repair or a complex plumbing installation, Doug the Plumber is here to help. We understand the importance of a well-maintained plumbing system and strive to deliver quality plumbing services and solutions to ensure the safety and comfort of your home or business.
My 3 Year Club badge + Remote Jobs Community
Published: 2023-05-24 16:34:26

Hey everyone 👋

I've just received the Three Year Club badge on DEV Community.

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



I wanted to take the opportunity to tell you a little about what I am currently working on.


I am building some tools to show remote jobs available in Latin America.  👨‍💻👩‍💻


1- Job Board: To help IT talents living in LATAM to find good remote jobs with better salaries.


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



Link: https://www.opentoworkremote.com



2- API with remote jobs. The data is paginated and allows you to filter jobs by position, technology, company, country, and salary.


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



Landing Page: https://api.opentoworkremote.com

View on RapidAPI: https://rapidapi.com/maurobonfietti/api/open-to-work-remote-api/



3- A telegram group where a bot posts remote jobs daily. 🛠️🤖.


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


Join us: https://t.me/opentoworkremote


Thank you for reading!

Have a great day.🤗

Mauro.-
I want to be more connected with my community…
Published: 2023-05-24 16:31:29

Hey everybody. I feel I may not have been connected enough with my community. I want to be intertwined with all of you who enjoy my work, because it means a lot to me. I know all of you are all over the world in your far off places, but I want to know. What do you guys want to know? About me, about my work, about anything? I will be starting a live Q&A session at this link: [SliDo Link](https://app.sli.do/event/uowUSZWfJdeTaNGgrD6hoQ) So if you want to ask anything, go ahead. It starts from now to May 31, and then the link will change. Ask questions anytime, and I will reply when I have the chance.
bancapro
Published: 2023-05-24 16:25:54

Game bắn cá pro là trang web cung cấp các trò chơi bắn cá đổi thưởng hay nhất trên thị trường trực tuyến tại Việt Nam. Với các thể loại bắn cá từ tập tự cho tới nâng cao, kèm theo phần thưởng hấp dẫn mỗi khi dành chiến thắng, đây được xem là nơi trải nghiệm tuyệt vời cho anh em game thủ. 
Website: https://gamebanca.pro/ 
ĐC:         395 Đ. Nguyễn Hoàng Tôn, Xuân Đỉnh, Bắc Từ Liêm, Hà Nội, Việt Nam
SĐT:        0368139654
Email:     contact@gamebanca.pro
https://www.facebook.com/gamebancapro 
https://www.youtube.com/@bancapro/about 
https://twitter.com/gamebancapro 
https://www.pinterest.com/bancapro/ 
https://www.linkedin.com/in/bancapro/ 
https://vimeo.com/bancapro 
https://www.tumblr.com/bancapro 

https://www.reddit.com/user/bancapro
Empowering the Next Generation: Bill Gates at Northern Arizona University
Tags: business, life, education, future
Published: 2023-05-31 20:42:58

---
title: Empowering the Next Generation: Bill Gates at Northern Arizona University
published: true
date: 2023-05-24 16:09:00 UTC
tags: Business,life,education,future
canonical_url: https://greenido.wordpress.com/2023/05/24/empowering-the-next-generation-bill-gates-inspires-graduates-at-northern-arizona-university/
---

In his address to the graduating class of Northern Arizona University, Bill Gates expressed admiration for their hard work and dedication. He urged them to channel their education toward positively impacting the world’s most pressing issues. Gates inspired the graduates to use their knowledge and skills to create meaningful change and contribute to the betterment of society.

He also shared five things he wished he had heard at his own graduation:

- **Don’t be afraid to fail –**  Experiencing failure is a crucial element of the learning journey and plays a vital role in one’s personal development.

- **Find a mentor – ** Having a mentor in your career journey can be incredibly valuable. They can provide guidance and support and help you navigate the ups and downs of your career. With their expertise and experience, they can offer insights and advice that you may have yet to consider independently. If you can work with a mentor, take advantage of it. Don’t wait.

- **Give back –**  Utilize your unique abilities and available resources to positively impact those around you. [Sort of Karma](https://www.youtube.com/watch?v=NER2gkDMpNQ) (or what Taylor Swift wrote about it with a ton of talent).

- **Stay curious – ** The world constantly changes, so staying current on the latest trends and developments is essential. As Steve Jobs put it (a few years ago at Stanford): “Stay hungry, stay foolish.”

- **Have fun – ** Life is too short to be serious all the time. Enjoy the journey, or, as we say, during a long bike ride: “Embrace the ride!”

Gates also spoke about the importance of education in solving the world’s biggest problems. He said education is the key to creating a more prosperous and equitable future, mainly around raising AI and an equal opportunity to leverage it.
[Golang 01/30] Go pointer and variable
Tags: go, golang30days
Published: 2023-05-24 16:03:44

---
title: [Golang 01/30] Go pointer and variable
published: true
description: Learning Golang 30 days searies
tags: golang, golang30days
cover_image: https://i0.wp.com/meritocracy.is/blog/wp-content/uploads/2021/04/golang.jpg?fit=1280%2C710&ssl=1
# Use a ratio of 100:42 for best results.
# published_at: 2023-05-24 15:19 +0000
---
Pointer in Golang is a variable which is used to stores the memory address of another variable. The memory address is always found in hexadecimal format, i.e. 0xFFAAF etc.

Most important operators we will used in pointer are:
- operator **\***
  - declare pointer variable
  - access the value stored in that address

- operator **&**
  - return the address of a variable

```go
package main

import (
	"fmt"
)

func main() {

	// declare a variable
	var myVar int = 5

	// declare a pointer variable for type "int"
	var pointerVar *int

	// assign the address to that pointer variable
	pointerVar = &myVar

	fmt.Printf("\nAn integer %d is assigned to 'myVar', its location in memory: %p", myVar, &myVar)
	fmt.Printf("\nThe Value at memory location %p is %d", pointerVar, *pointerVar)
	
	// overwrite the content at the address
	*pointerVar = 100
	fmt.Printf("\nThe Value at memory location %p is changed to %d", pointerVar, *pointerVar)
	fmt.Printf("\nThe Value of 'myVar' with same address is changed to %d, too.", myVar)
}
```

It prints the following content:
```
An integer 5 is assigned to 'myVar', its location in memory: 0xc0000b8000
The Value at memory location 0xc0000b8000 is 5
The Value at memory location 0xc00001c030 is changed to 100
The Value of 'myVar' with same address is changed to 100, too.
```

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

## Summary
Here `&` is used to get the address of the variable `myVar`, so `&myVar` and `pointerVar` has the same value `0xc0000b8000`.
`*` symbol is used to read the value at memory address `0xc0000b8000`, so `*pointerVar` shows the same content `5` as `myVar`.
Open Source Contribution: By Everyone, For Everyone
Tags: bitnine, opensource, apacheage, apache
Published: 2023-05-24 15:54:48



## Introduction:

Open source contribution is a collaborative approach to software development that encourages individuals to contribute their skills, knowledge, and creativity to the public. This article explores the many benefits of open source and how it empowers both contributors and users in a world of technology.


## What is open source?

Open source refers to software that is freely available for anyone to use, modify, and distribute. Unlike proprietary software, open source code is transparent and accessible to the public. However, open source is not just about free software; it's about building a community that works together to improve and enhance the software continually.

## Benefits to everyone:

Open source thrives on collaboration. By contributing to open source projects, individuals can work alongside a global community of developers, sharing ideas, and solving problems together. This collaborative environment fosters learning and knowledge sharing, allowing individuals to enhance their skills and gain valuable experience. Moreover, open source contributions provide opportunities to work on real-world projects, expanding one's portfolio and demonstrating their capabilities to potential employers.

Open source encourages innovation by allowing anyone to modify and adapt software according to their specific needs. This flexibility enables users to tailor the software to suit their requirements, creating unique solutions that may not be possible with proprietary software. Open source projects also benefit from diverse perspectives and contributions, leading to faster innovation and improved functionality over time.

Contributing to open source projects can significantly boost an individual's professional reputation. By actively participating and providing valuable contributions, individuals can establish themselves as experts in their field and gain recognition from the open source community. This recognition can open doors to new job opportunities, collaborations, and networking with like-minded professionals.

## Contributing to Apache AGE

Apache Age, an open source project, offers a distributed analytics database system. Open source contribution to Apache Age allows individuals to collaborate, share knowledge, and enhance the software. 

By actively participating, contributors can help improve the functionality, performance, and security of Apache Age. Moreover, open source contribution enables users to customize the software to meet their specific needs, fostering innovation. 

It also provides an opportunity for contributors to showcase their skills, gain experience, and expand their professional network. Overall, open source contribution to Apache Age brings valuable advantages to both contributors and users.
Roadmap Básico de React JS (PT-BR)
Published: 2023-05-24 15:50:55

1. Fundamentos de JavaScript:
    - Variáveis, tipos de dados e estruturas de controle
    - Funções e escopo
    - Objetos e arrays
    - Conceitos de ES6+ (arrow functions, destructuring, spread 
      operator, etc.)
2. Introdução ao React:
    - O que é React e por que usá-lo
    - Componentes e renderização
    - JSX (JavaScript XML)
    - Elementos e componentes funcionais
    - Props (propriedades) e estado
3. Hooks:
    - useState para gerenciar estado em componentes funcionais
    - useEffect para lidar com efeitos colaterais
    - useContext para trabalhar com contexto
    - useMemo e useCallback para otimização de desempenho
    - useRef para acesso a elementos do DOM
4. Componentes Avançados:
    - Componentes controlados e não controlados
    - Renderização condicional
    - Composição de componentes
    - Componentes de ordem superior (HOCs)
    - Renderização otimizada com React.memo
5. Roteamento:
    - React Router para criar navegação em aplicativos React
    - Configuração de rotas
    - Parâmetros de rota e URL dinâmicas
    - Navegação programática
6. Gerenciamento de Estado:
    - Redux para gerenciamento de estado global
    - Actions, reducers e store
    - Middleware e side effects
    - Integração do React com Redux
7. Requisições HTTP:
    - Interação com APIs RESTful
    - Axios ou Fetch API para fazer requisições HTTP
    - Tratamento de erros e carregamento de dados
8. Estilização:
    - CSS Modules para estilos modulares
    - Styled Components para estilização baseada em componentes
    - Bibliotecas de UI (como Material-UI ou Ant Design)
9. Testes:
    - Testes unitários com Jest
    - Testes de componentes com React Testing Library ou Enzyme
    - Testes de integração
10. Build e Implantação:
    - Configuração do ambiente de desenvolvimento
    - Ferramentas de build (Webpack, Babel)
    - Implantação em ambiente de produção
11. Otimização de Desempenho:
    - Identificação e resolução de gargalos de desempenho
    - Lazy loading e code splitting
    - Memorização de componentes e otimização de renderização
12. Aprofundamento:
    - Context API avançado
    - Renderização no servidor (Server-side Rendering)
    - Progressive Web Apps (PWA) com React
    - Integração com outras bibliotecas e frameworks (por exemplo, 
      React Native)
    
**_Este roadmap abrange os principais tópicos que você precisa conhecer para se tornar um desenvolvedor React JS proficiente. Lembre-se de praticar e construir projetos reais para aplicar seus conhecimentos e aprimorar suas habilidades._**