teleren/devto huggingface dataset:
1 Common Mistake Qualified Developers Make in Job Interviews
Tags: interview, webdev, beginners, programming
Published: 2024-05-29 02:58:00

A lack of eye contact shows that you are not actually engaged with what the interviewer is saying.

You are looking over here, you are turning to the left, to the right while talking.

It is actually really distracting for the person who is on the receiving end. The interviewer in this case.

So, we really want to get into the habit of looking the interviewer in the eye when we are delivering answers and when we are listening to them speak.

Now, this doesn't mean that you have to maintain creepy level eye contact.

But, good conversation, you generally look the person in the eye while they are talking. And that is the same thing in an interview.

You just want to show a level of engagement, keep it natural, but try to maintain good eye contact.

Now, I know that there are some people who struggle because of neurodiversity and other things.

I would just let the interviewer know that you may not make the best eye contact throughout the interview, but rest assured, you are paying close attention to what they are saying.

Happy Coding!
Karl

P.S. If you are interested in more career related content, [subscribe to my newsletter](karlgusta.substack.com), especially if you are in a job search so that you don't miss future posts.
Develop an image editor using fabric.js 【series】
Tags: webdev, javascript, opensource
Published: 2024-05-29 02:47:52



[Preview](https://nihaojob.github.io/vue-fabric-editor/#/)

[Github](https://github.com/nihaojob/vue-fabric-editor)

https://github.com/nihaojob/vue-fabric-editor

![Preview picture](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3f3cd9u6ficmuk8ghz30.png)

- [Quickly develop an image editor using fabric.js](https://juejin.cn/post/7155040639497797645) Chinese

- [fabric.js develops a detailed implementation of the image editor](https://juejin.cn/post/7199849226745430076) Chinese

- [What can a fabric.js image editor achieve? Dotu](https://juejin.cn/post/7222141882515128375) Chinese

- [My open source projects and open source experiences to share](https://juejin.cn/post/7224765991896121401) Chinese

- [What does the Canvas library fabric.js do? GIF introduction](https://juejin.cn/post/7336743827827015731) Chinese
Stay Updated with Python/FastAPI/Django: Weekly News Summary (20/05/2024-26/05/2024)
Tags: python, django, fastapi, flask
Published: 2024-05-29 02:00:00

Dive into the latest tech buzz with this weekly news summary, focusing on Python, FastAPI, and Django updates from May 20th to May 26th, 2024. Stay ahead in the tech game with insights curated just for you!

This summary offers a concise overview of recent advancements in the Python/FastAPI/Django framework, providing valuable insights for developers and enthusiasts alike. Explore the full post for more in-depth coverage and stay updated on the latest in Python/FastAPI/Django development.

Check out the complete article here https://poovarasu.dev/python-fastapi-django-weekly-news-summary-20-05-2024-to-26-05-2024/
Variables
Tags: javascript, variables, var, let
Published: 2024-05-29 01:43:08


 
- Variables in JavaScript are containers for storing data values.
- They are declared using the **`var`**, **`let`**, or **`const`** keywords.
- Variables declared with **`var`** have function scope or global scope, while those declared with **`let`** or **`const`** have block scope.
- It's recommended to use **`let`** or **`const`** for variable declarations to avoid issues related to scope and hoisting.

```
// Variable declaration with var (function-scoped)
var firstName = "John";
console.log(firstName); // Output: John

// Variable declaration with let (block-scoped)
let lastName = "Doe";
console.log(lastName); // Output: Doe

// Variable declaration with const (block-scoped constant)
const age = 30;
console.log(age); // Output: 30
```
My Making of AI Speaking Museum
Tags: llm, rag, ai, machinelearning
Published: 2024-05-29 01:22:42

Experience How AI is Revolutionizing the Business World with Interactive, Voice-Activated Learning

[Full Article] (https://medium.com/@learn-simplified/my-making-of-ai-speaking-museum-25edf9f0ef1e)

[1 of final Result](https://youtu.be/J-6kKQ6W1D0?si=KHFITAO6ky7tBswk)

● What Are We Building Today? - 
This Project is result of visiting a museum with my son where a pre-recorded message about geological origins couldn't engage with his follow-up questions. This sparked the idea of creating a virtual museum with AI dinosaur exhibits that could understand context and provide personalized responses like a real guide.

● Why Read This Article? - 
While an AI dinosaur museum may seem niche, the innovative approach of blending technologies has widespread potential across industries to revolutionize products, services, and user experiences through contextualized voice AI and natural language interaction.

● The Goal -
The goal was to build immersive, voice-enabled dinosaur environments that bring prehistoric creatures to life through natural conversation, allowing visitors to ask follow-up queries and explore tangential topics dynamically.

● How to Design? - 
The system leverages a multi-model approach: user input is processed by a language model (Llama3 on Ollama), potentially referencing a dataset, then the output is transformed into natural speech by ElevenLabs AI and delivered through a user interface, creating a seamless conversational experience.

● Let's Get Cooking! - 
The project has two critical flows: 
User Interaction (Streamlit app) and REST API Server (Flask). - 
The Streamlit app showcases dinosaurs, allows selecting one and entering queries, sends requests to the server, and displays responses. - The Flask server handles requests, fetches relevant dinosaur content, queries the language model, and returns responses (generating audio with ElevenLabs).

● Setup Instructions - 
Detailed step-by-step instructions are provided for setting up a virtual environment, installing dependencies (Streamlit, Ollama, LLaMA-3), running the API server and Streamlit app, and testing the application.

This article explains my motivation and vision for creating an AI-powered virtual museum with voice interaction capabilities. It outlines the multi-model approach, system design, and implementation details, emphasizing the potential for applying similar technologies to various industries. Clear setup instructions are provided for readers to recreate the project.
HOW TO RECOVER STOLEN BITCOIN WITH THE HELP OF DIGITAL WEB RECOVERY
Published: 2024-05-29 01:34:35

In investment scams, where trust is shattered and fortunes hang in the balance, finding a guiding light amidst the darkness can feel like an impossible feat. I found myself plunged into this abyss of despair when I fell victim to a cunning scheme that cost me nearly half a million dollars. The weight of this loss bore down on me like a crushing burden, threatening to drown me in a sea of frustration and stress. However, in my hour of need, fate intervened in the form of Digital Web Recovery. Introduced to me by influential acquaintances who recognized my plight, this organization emerged as a beacon of hope in the murky depths of deception. With their specialization in crypto recovery, Digital Web Recovery stood poised to navigate the complexities of my situation and lead me toward redemption. I made contact with them, I was enveloped in a cocoon of support and reassurance. Their team of seasoned professionals radiated confidence and competence, instilling within me a newfound sense of hope and optimism. With each interaction, they reaffirmed their commitment to helping individuals and businesses reclaim their lost funds from investment scams. True to their word, Digital Web Recovery wasted no time in springing into action. With the precision of a master craftsman, they meticulously unraveled the tangled web of deceit that ensnared me, leaving no stone unturned in their quest for justice. Their unwavering determination and relentless pursuit of truth were nothing short of awe-inspiring, serving as a testament to their unparalleled expertise in the field. And then, like a phoenix rising from the ashes, the moment of triumph arrived. Through their tireless efforts, Digital Web Recovery successfully tracked down the perpetrators of the scam and secured the complete amount of my lost funds. It was a victory not just for me, but for all those who had been ensnared in the web of deceit. The significance of this redemption cannot be overstated. In the face of overwhelming adversity, Digital Web Recovery emerged as a guiding light, leading me out of the darkness and into the light. Their proven track record and exceptional customer service make them the go-to company for fund recovery in Montreal and beyond. If you find yourself adrift in the turbulent waters of investment scams, do not lose hope. Reach out to Digital Web Recovery, Website https://digitalwebrecovery.com and let them be your guiding light in the storm. With their expertise, dedication, and unwavering support, they will help you reclaim what is rightfully yours. Telegram user; @digitalwebrecovery Zohomail; digitalwebexperts@zohomail.com Trust in Digital Web Recovery, and embark on the journey towards recovery Thanks.
![Uploading image](...)
Javascript Data Types
Tags: data, types, javascript
Published: 2024-05-29 01:34:27

**JavaScript has two main categories of data types: Primitive and Non-Primitive (Reference) types.**

**1. Primitive Data Types**
Primitive data types are the most basic types of data, and they include:

**a. Number**
The Number type represents both integer and floating-point numbers. JavaScript does not differentiate between integer and floating-point numbers.

```
let age = 25;
let price = 19.99;

```

**b. String**
The String type represents a sequence of characters. Strings can be enclosed in single quotes ('), double quotes ("), or backticks (`) for template literals.

```
let greeting = "Hello, world!";
let name = 'John Doe';
let message = `Hello, ${name}!`;
```
**c. Boolean**
The Boolean type has only two values: true or false. It is typically used in conditional statements.

```
let isVerified = true;
let hasAccess = false;
```
**d. Undefined**
A variable that has been declared but not assigned a value is of type undefined.

```
let x;
console.log(x); // undefined
```
**e. Null**
The null type represents the intentional absence of any object value. It is one of JavaScript's primitive values.


```
let emptyValue = null;
```

**f. Symbol (introduced in ES6)**
A Symbol is a unique and immutable primitive value often used as the key of an object property.

```
let sym1 = Symbol('identifier');
let sym2 = Symbol('identifier');
console.log(sym1 === sym2); // false
```

**g. BigInt (introduced in ES11)**
The BigInt type is used for representing integers that are too large to be represented by the Number type.

```
let bigNumber = BigInt(1234567890123456789012345678901234567890n);

```
**2. Non-Primitive (Reference) Data Types**
Non-primitive data types can hold collections of values and more complex entities. These include:

`a. Object`
Objects are collections of key-value pairs. Keys are strings (or Symbols), and values can be any type.

`let person = {
  name: 'Alice',
  age: 30,
  greet: function() {
    console.log('Hello!');
  }
};
console.log(person.name); // Alice
person.greet(); // Hello!`

**b. Array**
Arrays are ordered collections of values. Arrays are objects, and their elements can be of any type.

`let fruits = ['Apple', 'Banana', 'Cherry'];
console.log(fruits[1]); // Banana`

**c. Function**
Functions are objects that can be called to perform actions.


`function add(a, b) {
  return a + b;
}
let sum = add(5, 10);
console.log(sum); // 15`

**d. Date**
The Date object represents a single moment in time. It is used to work with dates and times.

`javascript
Copy code
let now = new Date();
console.log(now); // Current date and time`

e. RegExp
The RegExp object represents regular expressions and is used for pattern matching in strings.
`
let pattern = /hello/;
let str = 'hello world';
console.log(pattern.test(str)); // true`
Washers Decoded: Types, Uses, and Benefits
Tags: decoded
Published: 2024-05-29 01:26:35

Washers Decoded: Types, Uses, and Benefits
Washers are a sort of hardware used to distribute the load of the fastener such as for example screws or bolts. They are available in differing kinds and sizes depending on the application. We'll decode the types, uses, and advantages of washers.  

Features of Using Washers
​Washers provide several advantages when used with fasteners. The bonus first that they distribute the load for the fastener over a bigger surface which reduces the stress on the product being fastened. This decreases the opportunity for the material breaking or cracking under load. 

Another advantage of utilizing washers is the fact that they offer a area smooth the nut or bolt head to rotate on. This reduces the opportunity of the nut or bolt mind binding or seizing as they are tightened. 

Innovation in Washers
As time passes, washers have been innovated to supply more benefits. One innovation such the split washer. Split washers have a split at the center which exerts a pressure spring-like the fastener. It will help to avoid the fastener from loosening due to vibration or other forces. 

Another innovation is the lock washer. Lock washers have teeth or ridges on the surface which grip the material being fastened. This gives opposition additional the fastener loosening as a result of vibration or other forces.   

How to Use Washers
To employ a washer, first, make sure that the Customized washer could be the size right the fastener getting used. The washer must certainly be placed between the nut or bolt head therefore the material being fastened. The surface flat of washer ought to be facing the product being fastened. 

Whenever tightening the nut or bolt, ensure it is tightened to your torque environment suitable. This will ensure that the fastener is secure without which could harm the product being fastened.  

Service and Quality of Washers
Whenever choosing a washer provider, it's important to ensure that they supply top-quality washers. High-quality washers are manufactured to exacting tolerances which helps to ensure that they can fit correctly using the fastener used. It will help to present load maximum as well as the benefits noted above. 

Application of Washers
Washers are utilized in an assortment wide of. They could be utilized in construction, gear manufacturing, automotive, aerospace, as well as other companies. With respect to the application, the size and sort of washer can vary. 

For instance, in construction, lock washer starlock are accustomed to distribute load on structural steel bolts. In the industry automotive lock washers are acclimatized to avoid vibration from loosening nuts and bolts. Into the aerospace industry, high-strength washers can be used to withstand the extreme forces and environments being harsh.  

Source: https://www.cn-hchhardware.com/washers
What I missed about Ruby
Tags: ruby
Published: 2024-06-07 18:23:18

---
title: What I missed about Ruby
published: true
date: 2024-05-29 00:00:00 UTC
tags: ruby
canonical_url: https://jonathanyeong.com/what-i-missed-about-ruby/
---

I'm back in Ruby on Rails land after two years using only Node/TS. And I'm thrilled to be back! I feel like I missed so much progress with Rails 7 over the last 2 years. But now that I'm back, I can finally use all the things I missed. Here's all the things that I took for granted before my break:

- Convention is enforced in Rails. Organization is much easier in a rails project, and I'm able to hop into any Rails project and find my way around.
- _Some_ magic is nice. Such as auto-loading files!
- Rails console!!! Omg being able to run code snippets is amazing. I downloaded [RunJS](https://runjs.app/) to be able to achieve the same thing. But it's not a replacement for being able to play around with the data along with your code.
- Mocking with RSpec is way easier than Jest. In Node/TS, we used dependency injection to be able to mock classes and methods. But it was annoying to use dependency injection when it was only used in testing. _Please let me know if there's a better way to do it_.
- Having Rails routes to get an overview of all the entry points to the app is so underrated.

One thing that I took away from the last two years, is typing. I'm not going to lie. I like it. It's nice to be able to hover over an object and know what fields exist in it. I would love with Ruby to be able to hover over a hash and see all the keys that exist. I added [Sorbet](https://sorbet.org/) and [RBS](https://github.com/ruby/rbs) to my things to learn list.
Welcome Thread - v278
Tags: welcome
Published: 2024-05-29 00:00:00

---
published_at : 2024-05-29 00:00 +0000
---
![Lionel Richie answering the phone and saying Hello](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/clh4if3bthdjugq5d1q6.gif)

---

1. Leave a comment below to introduce yourself! You can talk about what brought you here, what you're learning, or just a fun fact about yourself.

2. Reply to someone's comment, either with a question or just a hello. 👋 

3. Elevate your writing skills on DEV using our [Best Practices](https://dev.to/devteam/best-practices-for-writing-on-dev-creating-a-series-2bgj) series!
Yashirin indekserga kirish
Tags: csharp, news, featur, dotnet
Published: 2024-05-28 23:58:46

Bazida [0 indekslangan](https://dev.to/farkhadk/nol-indekslangan-toplamlar-6c3) collectionlarni ohirgi qiymatiga murojat qilishda ko'pchiligimiz yo'l qo'yadigon oddiy bir xatolik bor `array[array.Length]`, va hozirham oramizda bu yerda xatolikni payqamaganlarxam bo'lishi mumkin. Bu error esa o'z vaqtida judaham kichik, payqa qolish qiyin va asabga o'ynaydigon hatoliklardan deb xisoblayman (`array[array.Length - 1]` to'g'ri varianti).

C# 13-chi versiyasida **Implicit Index Access** -> **yashirincha indeksga murojat** degan feature qo'shildi. Bu feature ni ishlatishda bizga **_caret_**-`^` operatori yordam beradi.

Misol:

```
int[] nums = new int[5] { 1, 2, 3, 4, 5 };
Conosle.WriteLine(nums[^1]);
// output -> 5
```
Implicit Index Access feature sini funksionalligi faqatgina ohirgi elementga murojat qilish bilan cheklanib qolmaydi. Bu xususiyat har-qanday `0` indekslangan collection ni oxiridan boshlab har bir qiymatiga murojat qilishda yordam beradi.

Misol:

```
int[] nums = [1, 2, 3, 4, 5];

for(int i = 1; i <= nums.Length; i++)
    Console.Write($"{nums[^i]} ");
// output -> 5 4 3 2 1
```
Etibor berish kerak bolga joyi bu funksional `^1`(birdan) boshlanadi, bu degani arrayimizni uzunligi `n` bolsa, oxirgi qiymatning indexi `n-1` ga teng, shu bilan birgalikda `^1 = n-1` yaniy eng oxirgi indeksga ko'rsatib turadi, `^2` esa oxirgidan bitta oldingi(^2 = n-2) indeksga teng, va hokazo.
Arrayni teskari o'girish misoliga boshqacharoq qilib ishlatamiz

Misol:

```
int[] nums = [1, 2, 3, 4, 5];

foreach (var item in ReverseArray(nums))
    Console.Write($"{item} ");

int[] ReverseArray(int[] array)
{
    int[] reversed = new int[array.Length];
    for(int i = 0; i < array.Length; i++) <---
        reversed[i] = array[^(i+1)];      <---

    return reversed;
}

// output -> 5 4 3 2 1
```
Bu safargi ko'dimizda `i` 1 ga emas 0 ga teng va array ni oxiridan murojatni boshlash uchun esa `array[^(i+1)]` ishlatildi.

> Bundan tashqari bu feature ni harkim o'z tassavuri yetganicha va albatta C# kompilyatori ruhsat berganicha ishlata oladi. @wahidustoz aytganlaridek "Sky is the limit".
Nol indekslangan to'plamlar
Tags: csharp, dotnet, index
Published: 2024-05-28 23:57:32

C# da bir nechta to'plam(collection type) turlari nol indekslangan, ya'ni ularning qiymatiga indeks `0` dan boshlab murojat qilish mumkin. Yani arrayni yoki listni 0-chi indeksga murojat qilsak, bizga 1-chi element(qiymati)ni qaytaradi.

Misol:
```
var nums = new int[]{1,2,3,4,5};
Console.WriteLine(nums[0]);
// output --> 1
```
> C# da nol indeksli to'plamlar ro'yxatidan bir shingil: `array`, `List<T>`, `ArrayList` va hokazolar kiradi.
 
Yuqorida ko'rganimizdek, bizda `nums` nomi bilan, 1 dan 5 gacha bolgan sonlar arrayi berilgan, va biz konsolga birinchi elementi(qiymatini)ni chiqarishimiz uchun `nums[0]` deb murojat qildik. Keyingi elementiga murojat qilish uchun esa `nums[1]` deyish kifoya, va shu zaynda davom etaveradi. 

`0` indeksli toplamlarni ohirgi elementiga(umumiy elementlar soni `n` ga teng bolsa) `nums[n-1]` qilib murojat qilinadi. Nima uchun aynan `n-1`?!
Buning sababi, yuqoridagi kodga yuzlansak, u yerda qiymatlarning umumiy soni 5 ga teng(n = 5), indeks bo'ylab sanalganda esa 4 ga teng (0,1,2,3,4). Agar `nums[5]` qilsak, indeks bo'yicha sanalganda 5-chi indeks 6-chi elementga to'g'ri keladi, bizda esa umumiy 5ta qiymatlar bor. 
> indekslar -> 0 | 1 | 2 | 3 | 4
> qiymatlar-> 1 | 2 | 3 | 4 | 5

Misol:
```
var nums = new int[]{1,2,3,4,5};
int n = nums.Length; // n = 5,
Console.WriteLine(nums[n-1]);
// output --> 5
```
Bu kodda `nums.Length`(length -> uzunligi) bizga `n` yaniy qiymatlar sonini topishda yordam beradi. Yuqoridagi kodimizni yanda qisqartirsak boladi.

Misol:
```
var nums = new int[]{1,2,3,4,5};
Console.WriteLine(nums[nums.Length - 1]);
// output --> 5
```
Bazida shunday holatlar boladiki ohirgi elementga murojat qilyotkanimizda `nums[nums.Length]` **-1** ni qo'shib ketish yoddan chiqishi mumkin, bu esa o'z vaqtida hatolikga olib keladi.
C# 13-chi versiyasidan boshlab yangi feature(xususiyat) kirib keldi uning nomini 
**_Implicit index access_** -> **_Indeksga yashirin kirish_** deb nomlashdi, va bu xususiyatni ishlatish uchun esa `^`(caret -> karet) aperatori bilan amalga oshirish mumkin. Bu feature xaqida ushbu -> [link](https://dev.to/farkhadk/obektni-initsializatorlarida-yashirin-indekserga-kirish-17i7) postimda tanishib chiqsangiz boladi.
[Game of Purpose] Day 10
Tags: gamedev
Published: 2024-05-28 23:34:41

Today I played around with Foliage.

I learned about various settings for a mesh in Foliage Mode, such as:
  * Align to Normal:
    * checked - good for grass, the grass is rotated to the angle of the slope
    * unchecked - good for trees, not rotated despite being on a slope
  * Scaling
  * Density, etc.


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

I had a problem with Foliage wind animation. For some reason the Foliage has different wind depending on where it's placed. The first trees have normal animation, but the next placed far away have their wind animation way too exaggerated.

{% youtube https://youtu.be/2dG5KRrKp6I %}
I've been trying Haruki Murakami's routine (Wake up at 4 am to get 6 hours of deep work)
Tags: productivity, learning
Published: 2024-05-28 23:30:20

Hi everyone,

I quit my job last year to build my own online business. The problem is that I usually work from 9 am to 4 pm. I feel I have no life :D

Since I work for myself, I need to push myself and work hard. However, I end up feeling tired and unable to exercise and do other things.

Then I stumbled upon Haruki Murakami’s schedule.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7dor92quhxzxnn3qqmmp.png)
He wakes up at 4 am and does deep work for 8 hours. 

I've tried it for a week. It's been amazing. After lunch, I can stop thinking about work. If needed, I do another 2 focus hours in the evening.

My schedule looks like this: 
- 4 am: wake up
- 4.30 am - 12 am: deep work, 
- Use Pomodoro 1 hour focus and 10 min break
- 12 pm - 1 pm: lunch and break 
- 2 pm: exercise 
- 3 pm - 6 pm: read, walk, chill 
- 8 pm: go to bed and try to sleep

My favorite thing is that I can have life outside of my work.
I wonder if anyone has done this and wants to exchange some suggestions. Or, if you are considering this routine, feel free to ask questions.

If you're interested in building the same routine. You can join my live stream session: https://youtube.com/live/slwvDGYwXBQ?feature=share