teleren/devto huggingface dataset:
🎯 𝗜𝗻𝘁𝗿𝗼𝗱𝘂𝗰𝗶𝗻𝗴 𝟰𝟳 𝗖𝗮𝗿𝗲𝗳𝘂𝗹𝗹𝘆 𝗖𝘂𝗿𝗮𝘁𝗲𝗱 𝗖𝗵𝗲𝗮𝘁𝘀𝗵𝗲𝗲𝘁𝘀 𝗬𝗼𝘂'𝗹𝗹 𝗘𝘃𝗲𝗿 𝗡𝗲𝗲𝗱! 📚
Tags: webdev, beginners, programming, tutorial
Published: 2023-05-06 08:58:57

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

1. **Python :** https://lnkd.in/grD8XUS6

2. **Pandas :** https://lnkd.in/g4yTJ7CP

3. **NumPy :** https://lnkd.in/gg9Uw-km

4. **Matplotlib :** https://lnkd.in/gahrGicD

5. **Seaborn https :** https://lnkd.in/gcu4UKpw

6. **Scikit-learn :** https://lnkd.in/gGfkNu5i

7. **TensorFlow :** https://lnkd.in/g3fw3uRV

8. **Keras :** https://lnkd.in/gfPTfbgg

9. **PyTorch :** https://bit.ly/3lnsiIz

10. **SQL :** https://lnkd.in/gnwe4qcb

11. **R :** https://lnkd.in/gEgJ6A8j

12. **Git :** https://lnkd.in/gyzhztvH

13. **AWS https :** https://bit.ly/3ZQWMS1

14. **Azure https :**  https://bit.ly/42f4N4V

15. **Google Cloud Platform :** https://bit.ly/3JJADzv

16. **Docker :** https://bit.ly/3Lt2zJe

17. **Kubernetes :** https://lnkd.in/gjXCT7Mb

18. **Linux Command Line :** https://bit.ly/3FtcTgw

19. **Jupyter Notebook https :** https://lnkd.in/g7cPmgHQ

20. **Data Wrangling :** https://bit.ly/3TiMibP

21. **Data Visualization :** https://lnkd.in/gQ52Jd_J

22. **Statistical Inference :** https://lnkd.in/grNXVQh5

23. **Probability :** https://lnkd.in/gvnWCphc

24. **Linear Algebra :** https://lnkd.in/gty6XpVF

25. **Calculus :** https://lnkd.in/gjhsmsxu

26. **Time Series :** https://bit.ly/3Fvuep4

27. **NLP :** https://bit.ly/3Fvursm

28. **Neural Network :** https://lnkd.in/gThs2AAp

29. **Deep Learning :** https://lnkd.in/gVbSPae2

30. **Machine Learning :** https://bit.ly/3mZ5Wh3

31. **Apache Spark :** https://lnkd.in/ge7Rj-Yr

32. **Hadoop :** https://bit.ly/3Lq34DR

33. **Big-O Notation :** https://lnkd.in/gfYqM8WU

34. **Regular Expression :** https://lnkd.in/gE9kZTZW

35. **Unix/Linux Permissions :** https://bit.ly/3ZUfwA8

36. **Python String Formatting :** https://lnkd.in/gHi26Uk2

37. **Flask :** https://lnkd.in/gGzbSTgU

38. **Django :** https://lnkd.in/grZcWz8y

39. **SQL :** https://lnkd.in/gyierV3f

40. **PostgreSQL :** https://lnkd.in/gzfiW7zB

41. **MySQL :** https://lnkd.in/g4JnPVTe

42. **MongoDB :** https://lnkd.in/gHc4F4ER

43. **TensorFlow Probability Cheat Sheet :** https://lnkd.in/gr3bgDGP

44. **OpenAI GPT-3 Documentation :** https://lnkd.in/gawB_SC9

45. **GPT-3 API Reference :** https://lnkd.in/gtCGZvX8

46. **GPT-3 GitHub Repository :** https://lnkd.in/g56cQQPD

47. **Chat GPT Cheat Sheet :** https://lnkd.in/e43cDB9q



📌 **Follow** [Me](https://www.linkedin.com/in/tanguy-leroy-k-youmbi-a02261206/) for more content.
Full Stack Web Developer Course
Tags: training, courses, certification, online
Published: 2023-05-06 08:37:11

A full-stack developer contributes to the creation and upkeep of both the front-end and back-end of a website. Find out about full-stack developer abilities, salaries, and how to become one.

A **[full-stack developer](https://youtu.be/lrFb3MSHG_Y)** is a programmer or engineer who can create both the front and back ends of a website. The front end (the components of a website that a user sees and interacts with) and back end (the data storage and processing that happens behind the scenes) require different skill sets. Full-stack developers must be knowledgeable in both because they are involved in all aspects of the development process.
Angular Life Cycle Hooks
Tags: angular, lifecycle, javascript, webdev
Published: 2023-05-06 08:30:52

Angular lifecycle hooks are methods that are called at different stages of a component or directive's life cycle. These hooks allow you to perform actions at specific points in the life cycle, such as when the component is initialized or destroyed.

Here are some of the commonly used lifecycle hooks in Angular:

ngOnChanges: This hook is called whenever one or more input properties of the component change. You can use it to react to changes and update the component's state accordingly. Here's an example:

```
import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';

@Component({
  selector: 'app-user',
  template: '<p>Hello {{name}}!</p>'
})
export class UserComponent implements OnChanges {
  @Input() name: string;

  ngOnChanges(changes: SimpleChanges) {
    console.log(changes);
  }
}
```

In this example, the UserComponent has an @Input property called name. The ngOnChanges hook logs the changes to the console whenever the name property changes.

ngOnInit: This hook is called when the component is initialized after the first ngOnChanges call. You can use it to perform any initialization logic for the component. Here's an example:

```
import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-user',
  template: '<p>Hello {{name}}!</p>'
})
export class UserComponent implements OnInit {
  name: string;

  ngOnInit() {
    this.name = 'John';
  }
}
```

In this example, the UserComponent sets the name property to 'John' in the ngOnInit hook.

ngDoCheck: This hook is called whenever Angular detects a change that may not have been detected by the other lifecycle hooks. You can use it to perform custom change detection logic for the component. Here's an example:

```
import { Component, DoCheck } from '@angular/core';

@Component({
  selector: 'app-user',
  template: '<p>Hello {{name}}!</p>'
})
export class UserComponent implements DoCheck {
  name: string;

  ngDoCheck() {
    // Perform custom change detection logic
  }
}
```
In this example, the UserComponent implements the ngDoCheck hook to perform custom change detection logic.

ngOnDestroy: This hook is called just before the component is destroyed. You can use it to perform any cleanup logic for the component, such as unsubscribing from observables or releasing resources. Here's an example:
```
import { Component, OnDestroy } from '@angular/core';
import { Subscription } from 'rxjs';

@Component({
  selector: 'app-user',
  template: '<p>Hello {{name}}!</p>'
})
export class UserComponent implements OnDestroy {
  name: string;
  subscription: Subscription;

  constructor() {
    this.subscription = someObservable.subscribe();
  }

  ngOnDestroy() {
    this.subscription.unsubscribe();
  }
}
```
In this example, the UserComponent unsubscribes from an observable in the ngOnDestroy hook to avoid memory leaks.

These are just a few examples of how you can use Angular lifecycle hooks to perform custom logic at different stages of a component's life cycle.

Thanks for Reading 😊
NodeJS Server Side Rendering (SSR) - do we really need it?
Tags: webdev, node, devops, sveltekit
Published: 2023-05-06 08:30:27

I already blogged about this briefly. Now [Theo (t3.gg)](https://twitter.com/t3dotgg) delivered a new, brilliant summary about this topic:

{% embed https://www.youtube.com/watch?v=kUs-fH1k-aM %}

The video covers React and React Server Components as example.

Here was my blog post about Rich Harris take on this regarding SvelteKit development:

[Rich Harris explains why SvelteKit pushes for Server Side Rendering (and against SPA / CSR)
](https://dev.to/mandrasch/rich-harris-explains-why-sveltekit-pushes-for-server-side-rendering-and-against-spa-5flj)

One of the big questions regarding this is: Will NodeJS SSR in future be as easily and cheaply available as todays widespread  PHP hosting? 

Btw: There are great news regarding Hosting NodeJS with Server Side Rendering in the EU 🇪🇺:

Green Webspace hosting company [Mittwald](https://www.mittwald.de/) just announced support for NodeJS SSR on their SpaceServer offering. You can try it for free for 10 days here:

[Mittwald SpaceServer](https://www.mittwald.de/space-server)

Beside the great sustainability efforts by Mittwald the GDPR-compliance of this offering is a big plus for customer projects. 

(This is not a sponsored post, I'm just a fan of their work)

I'll try this out next and post about it on dev.to.

If you are interested in SSR-hosting and GDPR, you could also check out this tutorial: [Host SvelteKit apps with SSR-support via ploi.io: (on Hetzner Cloud)
](https://dev.to/mandrasch/host-sveltekit-apps-with-ssr-support-via-ploiio-on-hetzner-cloud-1cpa)

Another easy and fast way of trying out SSR hosting is still [Vercel](https://vercel.com/), next to some other US services like [render.com](https://render.com/), etc. 

What are your experiences with NodeJS SSR hosting? Let me know in the comments! 🤗
Value is not showing during rendering.
Tags: react
Published: 2023-05-06 08:20:20

This is my code:
```
import React from 'react';

export default function Dashboard({time, currentEpoch, tvl, apr, stake, balance}) {

  
  return (
    <>
    <h2>Next epoch = {time}</h2>
    <h2>Current epoch= {Number(currentEpoch)}</h2>
    <h2>TVL = {tvl}</h2>

      <h1>Boardroom</h1>
      <h3>Stake bshare and earn bomb every epoch</h3>
      <h3>daily returns: {apr}%</h3>
      <h3>Your stake: {stake}</h3>
      <h3>Earned: {balance}</h3>



    </>
  );
}
```
While rendering it is not showing its values. why? What are the solutions?
Open-source Admin template dashboard for Tailwind CSS React ⭐️
Tags: opensource, tailwindcss, react, webdev
Published: 2023-05-06 08:19:29

Start building your dashboard with **[Horizon UI](https://horizon-ui.com/horizon-tailwind-react/?ref=dev.to)**, the trendiest open-source admin dashboard template for React & Tailwind CSS!

**[Horizon UI Tailwind CSS](https://github.com/horizon-ui/horizon-tailwind-react)** comes with over 70+ dark/light frontend individual elements, like buttons, inputs, navbars, nav tabs, cards, or alerts, giving you the freedom of choosing and combining.

**Play with it live 👉 [here](https://horizon-ui.com/horizon-tailwind-react/?ref=dev.to)**

**Download it for Free from Github 👉 [here](https://github.com/horizon-ui/horizon-tailwind-react)**

![Horizon UI Tailwind CSS - Open source admin template](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xrzgtp56jlu9npmkcm79.png)

The beauty of **[Horizon UI](https://horizon-ui.com/?ref=dev.to)** is that you can give life to all of your data into a dashboard with a very modern and beautiful UI.


![Horizon UI Tailwind CSS - Open source admin dashboard template](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b8hpbb9sly5n78kti28n.png)

**[Get started now for free](https://github.com/horizon-ui/horizon-tailwind-react)** with the ultimate admin template to build web apps 10X faster!
🤖 How Bash AI Can Simplify Your Workflow: The Ultimate Command-Line Tool
Tags: bashai, commandlinetools, openai, gpt3
Published: 2023-05-06 08:15:32

👋 Introducing Bash AI - the ultimate command-line tool that uses OpenAI's GPT-3 to simplify your workflow. Just type `??` followed by your command, and Bash AI will provide suggestions for how to complete or automate it. 🤖

Check out this demo gif to see how easy it is to use: 🎥

![demo use bash-ai](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2hmcq6arkg0skdynt7h7.gif)

To get started, set your OpenAI API key as an environment variable and let Bash AI automate your long and complicated bash commands. ⚡ 

Try it out today and see how it can save you time and make your life easier. 👍

___

{% embed https://dev.to/m4r14/boost-your-bash-productivity-with-bash-ai-1hfk %}
REST API in Angular
Tags: angular, api, javascript, restapi
Published: 2023-05-06 08:02:00

Implementing a REST API in Angular involves a few steps:

Importing the HttpClientModule: Angular comes with a built-in module called HttpClientModule that allows you to make HTTP requests to a REST API. To use it, you need to import it into your Angular project. Open the app.module.ts file and add the following code:
```
import { HttpClientModule } from '@angular/common/http';
@NgModule({
  imports: [
    HttpClientModule
  ],
  ...
});

export class AppModule { }
```
2. Creating a Service: In Angular, services are used to encapsulate data and functionality that can be shared across components. Create a service to handle API calls. For example, create a service called UserService:

```
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Injectable({
  providedIn: 'root'
})
export class UserService {
  private apiUrl = 'https://my-api.com/users';

  constructor(private http: HttpClient) { }

  getUsers() {
    return this.http.get(this.apiUrl);
  }

  getUserById(id: number) {
    return this.http.get(`${this.apiUrl}/${id}`);
  }

  addUser(user: any) {
    return this.http.post(this.apiUrl, user);
  }

  updateUser(id: number, user: any) {
    return this.http.put(`${this.apiUrl}/${id}`, user);
  }

  deleteUser(id: number) {
    return this.http.delete(`${this.apiUrl}/${id}`);
  }
}
```
In this example, the UserService has methods to make all the CRUD operations to a REST API. Each method uses the HttpClient service to make the actual HTTP requests.

3. Using the Service in a Component: Now that you have a service to handle API calls, you can use it in a component. For example, create a component called UserListComponent:

```

import { Component, OnInit } from '@angular/core';
import { UserService } from '../user.service';

@Component({
  selector: 'app-user-list',
  template: `
    <h2>User List</h2>
    <ul>
      <li *ngFor="let user of users">{{ user.name }}</li>
    </ul>
  `
})
export class UserListComponent implements OnInit {
  users: any[] = [];

  constructor(private userService: UserService) { }

  ngOnInit() {
    this.userService.getUsers().subscribe((data: any[]) => {
      this.users = data;
    });
  }
}
```
In this example, the UserListComponent uses the UserService to get the list of users from the API and displays it in the template.

4. Handling Errors: It’s important to handle errors when making API calls. You can do this by using the catchError operator of RxJS. For example, modify the getUserById method of the UserService to handle errors:

```
import { catchError } from 'rxjs/operators';
import { throwError } from 'rxjs';

getUserById(id: number) {
  return this.http.get(`${this.apiUrl}/${id}`).pipe(
    catchError((error: any) => {
      console.error(error);
      return throwError('An error occurred');
    })
  );
}

```

In this example, the getUserById method uses the catchError operator to log the error and return an error message.

That’s it! With these steps, you can implement a REST API in Angular.

Thanks For Reading 😊
Survey: Prefix-Tuning: Optimizing Continuous Prompts for Generation
Tags: deeplearning, gpt3, nlp
Published: 2023-05-06 07:39:49

## 選定理由

少リソースでドメイン適応させる技術はLLM活用上必須となると予想。

Paper: https://arxiv.org/abs/2101.00190
Code: https://github.com/XiangLi1999/PrefixTuning
Youtube: https://www.youtube.com/watch?v=TwE2m6Z991s
TechBlog: https://medium.com/@vincentchen0110/alternative-for-fine-tuning-prefix-tuning-may-be-your-answer-a1ce05e95464

## 概要
【社会課題】
LLMは様々な社会実装が予想されるがダウンストリームタスクやドメイン適応には巨大なモデルの学習が必要となってしまい、膨大なデータや計算機リソースを用意するコストが問題となる。

【技術課題】
生成される信号の精度はタスクやドメインに対してどれだけ特化させるかであるが、これは要求されるリソースとのトレードオフになる。

【従来手法】
最も基本的なドメイン適応はfinetuningであるが、モデルの全パラメータを更新するため計算量が大きい。一方で、モデルに対し3-4%程度のパラメータを持つタスク特化のレイヤを付与した [Adapter-tuning](https://proceedings.neurips.cc/paper/2017/hash/e7b24b112a44fdd9ee93bdf998c6ca0e-Abstract.html) があるがモデルに多少の改造が必要になる点がややコストが大きい。

【提案】
prompt engineering から着想し、ダウンストリームタスクを解くにあたって良いコンテキスト(Prefix)を与えればLLMの回答は改善されるという仮定。タスク別に学習可能なPrefixを入力に付与し(Encoder/Decoderの場合は入出力)、事前学習済み言語モデルのパラメーター自体は固定する。

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

【効果】
Prefix-Tuningによって新しいタスクやドメインに対して、LLMのパラメータを更新する必要がなくなる。実験ではtable-to-text　においてGPT-2、summarizationにおいてBARTから生成された文章の品質が向上したことが示された。又、Prefix-Tuningは、課題に合わせて柔軟にプロンプトを設定することができ、より高度なタスクにも適用可能であることが示された。

## 提案

LLMに単語（例：オバマ）を生成させたい場合、共通のコロケーション（例：バラク）をコンテキストとして前置することで、LLMはよりユーザーが期待する単語列の生成ができる点に着眼した。直感的には、入力プロンプト x から何を抽出するかをコンテキストによって誘導し、x の埋め込みベクトルと出力信号 y の生成に影響を与えることができる。ただし、そのようなコンテキストが存在するかどうかは明らかではない。

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

自然言語タスクの指示（例：「以下の表を1文で要約する」）は、そのドメインのエキスパートには分かるが、事前学習済みのほとんどのLLMは失敗する。入力プロンプトは離散空間であり、データ駆動型（学習ベースの）の最適化を行うことで解決できる可能性はあるが、一般的に離散最適化は計算困難である場合が多い。そこで、離散最適化を行う代わりに連続空間上の単語埋め込みベクトルを最適化する。これは、実在する単語の埋め込みベクトルとの一致が必要なプロンプトエンジニアリングより表現力がある定式化となる。一方、活性化のすべてのレイヤーに介入するよりも表現力が低いため長距離依存関係を回避することができ、一方で調整可能なパラメータを含むため、Prefix-tuningは、Prefixのすべてのレイヤーを最適化することができる。

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

prefix-tuning における定式化は式３である。この式が示すようにprefix-tuningはLMモデルの前置的な拡張である。ここでθはprefix-tuningのパラメータ、Pidxはprefixの長さ、hiはTransformerが出力となる隠れ層のパラメータである。なお学習時は Pθ を直接更新すると学習が不安定になるため、少し小さい行列であるPθ'を更新する。

## 実験

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

GPT-2のtable-to-text　タスクの実験において、生成された文章の主観評価は多くの場合、finetuningやAdapter-tuningよりも高い。これをモデルパラメータと比較してわずか0.1%のパラメータの prefix-tuningによって実現できている。

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

上記は少データ学習時のfinetuningとの比較である。データ量が少ない場合はprefix-tuningの方が性能が良い。

prefix-tuningの活用法としてPersonalizationが言及されている。１利用者ごとにprefixパラメータθを用意すれば少ないデータ量でPersonalizationを実現できる。
Do you talk about side projects during employee appraisal and target agreement
Tags: discuss, career
Published: 2023-05-06 07:33:38

A few days ago I saw a post on dev to about someone becoming  tech lead. Reading all their insights on how to become a lead and what their responsibilities are, I was wondering if I ever can become a lead at all.

Here is the original article by {% embed https://dev.to/sasidhar_gadepalli/transitioning-from-developer-to-tech-lead-tips-and-challenges-1k8d %}

The reason behind this is because I actually cannot show all my skills at the project I am currently working, where I am "just" a frontend dev. So I wonder if it is okay to talk about my side projects during employee appraisal and target agreement or if I should separate these two things. 

Here is my comment to the article shared above:

{% embed https://dev.to/yuridevat/comment/26ejp %}


{% collapsible **My comment added in written form** %} 

Great article @sasidhar_gadepalli .

This opens up a question which I do have for a while now. And hopefully, many others will comment on this as well. But first of all: Congrats to your new position 🥳

I agree with you on all your tasks for lead devs. It some companies it is common to have quarterly talks with each developer on what they want to achieve, where they see themselves, improvements and such. This is for personal grow, but also for the manager to get an overview, if the developer is right in their position, in this particular project, if the developer can grow and also if and how much raise they may get.

I really like that kind of approach, I see positivity for both sides. But I wonder if I should mention stuff I do beside work as well. Depending on which project you are, you may get not the most possible chance to show off what you can. You may "just be" one frontend dev out of many, unseen with other great skills you may have. In my case, I do a lot besides work, at University I am very active, the team leader in almost every lecture, attending hackathons/writeathons (and winning them), writing lots of blog posts, giving talks from time to time, maintaining my own open source projects an such.

I am way more present outside of work that at work. Is it okay to mention that? That actually I can do so much more but the role as a frontend dev does not give the possibility to show all my skills (so I may never be considered as a tech lead)?
Or is it not okay to talk about it, because others are also evaluated by their skills at work, and maybe do nothing besides work and that would be unfair. How do you see it?

Thanks for you comment (maybe I will open a discussion on my own about this topic).

{% endcollapsible %}


I am very interested in what you readers are thinking about this topic.
What Would Your Code Look Like as a Painting?
Tags: discuss, beginners, codenewbie, watercooler
Published: 2023-05-06 07:00:00

Is your code a Pollock? A Picasso? An O'Keefe? Or maybe it's an Edvard Munch! Unleash your inner artists today and tell us: If your code could be transformed into a painting, what would it look like? Would it be a vibrant and bold masterpiece, or a delicate and intricate composition? 

Share your creative vision and let's see what kind of colorful code we can come up with!

---

Follow the [CodeNewbie Org](https://dev.to/codenewbieteam) and [#codenewbie](https://dev.to/t/codenewbie) for more awesome discussions and online camaraderie!

If you aren't exploring or posting over on the #codenewbie tag, find the tag here!

{% embed [https://dev.to/t/codenewbie](https://dev.to/t/codenewbie) %}
What's the Most Useless or Wasteful Software You've Ever Encountered?
Tags: discuss
Published: 2023-05-06 07:00:00

Useless software is frustrating, especially when it comes to wasting time and resources. As developers, we come across various software applications throughout our careers, and some are helpful while others are a waste of time. 

What's the most useless or wasteful software you've ever encountered, and why? Let's discuss and explore ways to avoid them in the future.

---

Follow the DEVteam for more though-provoking discussions and online camaraderie!

{% embed [https://dev.to/d](https://dev.to/t/codenewbie)evteam %}
Creating a Social Media Website with Laravel 9
Tags: socialmedia, programming, laravel
Published: 2023-05-06 06:57:28

Creating a Social Media Website with Laravel 9

Introduction
Discover the power of Laravel 9 in building your own social media platform. 

With Laravel 9, you can create a secure, scalable, and engaging website. Let's dive in and unlock the potential of social media development.

Why Choose Laravel 9?

Superior Performance: Laravel 9 delivers exceptional performance, ensuring a smooth user experience even under heavy loads.

Enhanced Security: Protect user data with robust security features against attacks like XSS and CSRF.

Rapid Development: Build your social media website quickly and efficiently with Laravel 9's intuitive syntax and powerful tools.

Steps to Build Your Social Media Website:

Initial Configuration: Install Laravel 9 and set up your development environment.

Database Design: Plan your database structure and use Laravel 9's migration feature to create tables.

Authentication and Authorization: Implement a secure authentication system and control user access.

Post Creation and Interactions: Enable users to create, edit, and interact with posts, including likes and comments.

UI Development: Design a visually appealing and user-friendly interface.

Testing and Deployment: Ensure functionality, performance, and security before deploying your website.

Unleash the Power of Laravel 9 for Your Social Media Success!

Watch more on youtube : https://youtu.be/NjqVhu2QO_I