teleren/devto huggingface dataset:
Best Programming Language for ML
Tags: programminglanguage, machinelearning, best, 2023
Published: 2023-08-06 21:25:31

<small>_Image above from www.unsplash.com_</small>

There is no single best programming language for Machine Learning. As with programming in general, whether you use R or Python or any other language, as a Machine Learning Engineer, there is a need to first understand the concepts you want to work on and the underlying principles by which the algorithms you write or use work. Many new programmers get confounded, learning languages upon languages just because some jobs out there are demanding for two or more of these programs. Such  learning is not necessary, at least not at the beginning. Just pick one and start the journey. 
It may take a while  before you master the required concepts, but learning such concepts is worth your time. Just like anyone can use a scissors, any programmer can use a programming language. However, just like only a skilled tailor can do a tailor's job professionally with a scissors, because he understands the tailoring concepts, when you understand the concepts in and the underlying principles behind Machine Learning, you can do a professional job. 

As you master the concepts in programming and in Machine Learning, with time, it becomes easier to switch languages if need be. You might then be like the tailor who decides to used a different kind of scissors for the appropriate occasion. So that as a tailor defines his tools, you define yours. You use the language you want or the one that is required of you. Experience, nonetheless is key, but start somewhere. Those who are called professionals today were novices yesterday

On a general note, for a start, if you will like to be involved in things like web development, android app development e.t.c. in future, apart from Machine Learning/Data Science, I strongly recommend that you go ahead with python but if you want to do Machine Learning/Data Science only, I strongly recommend R. See my [Introduction to Machine Learning]( https://dev.to/opaul/introduction-to-machine-learning-2idn) for more details on which programming language may serve you better.
First ILUGC Meetup - Page 29
Published: 2023-08-06 21:10:41

- ILUGC - Indian Linux Users Group, Chennai [ ILUGC ]
- **The other side of the river is always greener** - what it means ? When someone is not satisfied with their own lot in life and always assumes that there are better things in other places. This idiom encapsulates the human quality of always wanting something different than what you have.
- தட் யுனிக்ஸ் கய்?
- Meetup details :
  Second Saturday --> ILUGC/kanchilug,
  Third Saturday --> Rust Chennai,
  Fourth Saturday - https://chennaipy.org/
- அவன் எங்கயாச்சும் ஒரு மீட்டப்ல மொக்க  போட்டுட்டு இருப்பான், மாசத்துல இருக்குற நாலு சார்டேடவும் ஆளு பிஸி .
- நம்மாளுதான் ஒரு ஆதிவாசி, எப்ப பாத்தாலும் பிளாக் அண்ட் வைட் டெர்மினல் இருப்பான்.

- தூங்குறதுலேய இருக்காதடி குண்டச்சி,’ கார்த்திகா கூற ‘ஆமா நா குண்டு, நீ அப்படிேய size  ஜீேரா ஹிப் வெச்சிக்கிட்டு திரியற, நான் குண்டுன்னா நீயும் குண்டுதான்டி.

- ஃபுல் ஸ்லீவ் white ஷார்ட் குர்தி, பிளாக் ஜீன்ஸ்,rimless ஸ்பெக்ஸ்,
ஷோல்டர் strap laptop bag வெச்சிக்கிட்டு ஒரு பொண்ணு உள்ள வர அந்த ருேம ஸ்டன் ஆச்சு.

- அதுல ஒருத்தனுக்கு மட்டும் ஹார்ட் பீட் ஏகத்துக்கும் எகிறி இருந்துச்சு. ஆனா அந்தப் பொண்ணோட கண்கள்  தேடினதும் அந்த ஒருத்தனத்தான்.

- **ULTIMATE is HERE :** அவன் அருகில் ஒரு அழகான பெண் அமர்வது ரிச்சர்டு  ஸ்டால் மேனுக்கு பக்கத்தில் MACBOOK PRO இருப்பதற்குச் சமம். 

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


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

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

**Typical Roommate :** உள்ளே செல்லும் மதைனப் பார்த்து ‘சரக்க  மோந்து பார்த்துட்டாேனா?’ சுேரஷ் புலம்பியவாேற உள்ளே ெசன்றான்.

**<u>Reference :</u>**

1. https://opensourcediversity.org/#projects
2. https://freetamilebooks.com/ebooks/dhuruvangal-technical-novel/
3. https://chennaipy.org/
4. https://www.meetup.com/mad-rs/
5. https://ilugc.in/
6. https://kanchilug.wordpress.com/
React Custom Hook: useArray
Tags: webdev, javascript, programming, react
Published: 2023-08-06 21:00:00

In this article series, we embark on a journey through the realm of custom React hooks, discovering their immense potential for elevating your development projects. Our focus today is on the "useArray" hook, one of the many carefully crafted hooks available in the collection of React custom hooks.

Github: https://github.com/sergeyleschev/react-custom-hooks

```javascript
import { useState } from "react"

export default function useArray(defaultValue) {
    const [array, setArray] = useState(defaultValue)

    function push(element) {
        setArray(a => [...a, element])
    }

    function filter(callback) {
        setArray(a => a.filter(callback))
    }

    function update(index, newElement) {
        setArray(a => [
            ...a.slice(0, index),
            newElement,
            ...a.slice(index + 1, a.length),
        ])
    }

    function remove(index) {
        setArray(a => [...a.slice(0, index), ...a.slice(index + 1, a.length)])
    }

    function clear() {
        setArray([])
    }

    return { array, set: setArray, push, filter, update, remove, clear }
}
```
The **useArray** hook utilizes the useState hook from React to initialize and manage the array state. It returns an object with the following functions:
- push(element): Adds the specified element to the array.
- filter(callback): Filters the array based on the provided callback function, removing elements that don't satisfy the condition.
- update(index, newElement): Replaces the element at the specified index with the newElement.
- remove(index): Removes the element at the specified index from the array.
- clear(): Clears the array, setting it to an empty array.

The advantages of using this custom hook are twofold: it simplifies the management of array states and provides a cleaner and more readable code structure. With the useArray hook, you can easily add, update, remove, filter, and clear elements in an array without dealing with complex logic.

```javascript
import useArray from "./useArray"

export default function ArrayComponent() {
    const { array, set, push, remove, filter, update, clear } = useArray([
        1, 2, 3, 4, 5, 6,
    ])

    return (
        <div>
            <div>{array.join(", ")}</div>
            <button onClick={() => push(7)}>Add 7</button>
            <button onClick={() => update(1, 9)}>Change Second Element To 9</button>
            <button onClick={() => remove(1)}>Remove Second Element</button>
            <button onClick={() => filter(n => n < 3)}>
                Keep Numbers Less Than 4
            </button>
            <button onClick={() => set([1, 2])}>Set To 1, 2</button>
            <button onClick={clear}>Clear</button>
        </div>
    )
}
```
Throughout this article series, we focused on one of the gems from the collection of React custom hooks  "_useArray_". This hook, sourced from the "react-custom-hooks" repository, revolutionizes how we work with arrays in our React applications.

Full Version | React Custom Hooks:
https://dev.to/sergeyleschev/supercharge-your-react-projects-with-custom-hooks-pl4
Control rc car using raspberry pi (Part 3 : Run the server at startup)
Published: 2023-08-06 20:55:44

## Configure the server to run as a service at startup
To set up the server to run at startup using systemd, we need to create a unit file that we will name it `carServer.service` under `/etc/systemd/system`.

This file will contain the needed configuration informations to start our server at startup. We can configure our service like this:
```
[Unit]
Description=Rc Car Server Controller
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/bin/python3 /usr/local/bin/carProjectServer/server.py
User=enakr
Restart=always
WorkingDirectory=/usr/local/bin/carProjectServer

[Install]
WantedBy=multi-user.target
```
Here you can see that the file contains multiple sections, and the content is self-explanatory. For example:

- The `ExecStart` points to our python program that will be run when the service is started. You can change the path to match your workspace folder.
- The `After=network-online.target` and `Wants=network-online.target` ensure that the service runs after the network is up.

Finally, we need to enable our service by running the command :
`sudo systemctl enable rcCarServer.service`.
Now, when you reboot the raspberry, the server should start.
You can check if the server is running with the command:
`sudo systemctl status rcCarServer.service`.
Working with JS Array Indices
Published: 2023-08-06 20:43:04

FUN FACT!!
Array indices in Javascript can be integer, float or string!

```javascript
let a = [1,2]
a[-1] = "negative" 
a[2.5] = "float" 
console.log(a) // [1, 2, -1: 'negative', 2.5: 'float']
```

How??

Arrays in Javascript are just a special case of objects. That is, an array is just stored as an object behind the scenes.
For example: 
`[ 1 , 2 ]` is stored as `[ "1" : 1 , "2" : 2 ]`

We can access the array values not just using numberic index, but with strings too.

That is:

```javascript
let a = [ 1 , 2 ]
console.log( a[1] ) // 2
console.log( a["1"] ) // 2
```

You will never get "Out of bound" exception in Javascript because,  arrays are not really arrays but objects in disguise.

An object can have a maximum of 2^32 -1 properties (key-value pairs), which is the same as the maximum number of items an array can have.
NEXUS OSS Create PostgreSQL Repository using Apt Proxy
Tags: postgresq, beginners, tutorial, linux
Published: 2023-08-06 20:32:15

Using Nexus OSS, you can create, manage, and publish your own repositories. Additionally, you can utilize the "apt proxy" feature to publish existing repository content from your server.

You can access our article on the **installation** of Nexus OSS from [here](https://dev.to/aciklab/ubuntu-2204-nexus-oss-kurulumu-6gk).
You can also access our article on **creating** an apt repository on Nexus OSS from [here](https://dev.to/aciklab/nexus-oss-repository-apt-repository-proxy-olusturma-4mj1).

Let's proceed with creating the Postgresql repository on Nexus OSS.

# 1- Log in to the Nexus OSS interface with an authorized user
After the installation, the default admin user is available, and you can find its password by using the following command:
 
``` bash
cat /opt/sonatype/sonatype-work/nexus3/admin.password
```


# 2- Creating a Repository

a- Let's go to the "Repository" page under the "Settings" section.

b- After that, click on the "Repositories" tab under "Repository," and on the opened page, click the "Create Repository" button.


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

Let's proceed by selecting the "apt proxy" option from the opened page.


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



# 3- Let's configure our Postgresql Repository.

Let's enter the address of the Postgresql repository as shown below in the **Remote repository** field:

http://apt.postgresql.org/pub/repos/apt/

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

# 4- Let's save it.

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

You can save it by clicking on the **Create Repository** button located at the bottom.


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

When we navigate to the "Repositories" page, we will see the newly added repository listed. By clicking on the "Copy" button, we can access our newly created Postgresql repository on our server.

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

When we visit the relevant URL, the repository will appear in front of us.

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

## **_Optional_**
#Adding the new repository to Linux client machines.


If your client machine is Ubuntu 22, you can run the following command:

``` bash
echo "deb [trusted=yes] http://192.168.122.100:8081/repository/hosted-postgresql-hdd/ jammy-pgdg main" > /etc/apt/sources.list.d/nexus.list
```

_Note: If not, you can proceed by customizing the **jammy-pgdg** part to match your own version._

You can check if it is working by running the **apt update** command.
Why I prefer Rust over Go
Tags: rust, go
Published: 2023-08-06 20:31:08

Recently I decided to learn Go and my first impressions were quite good. Go is a very nice language and easy to get started with. The go routines is probably the best feature of the language and I really wish other languages followed this model. The `defer` feature is also very nice.

However, as I continued learning, some things started feeling odd, some design decisions that looked strange. For example, the only loop construct is `for`, and there is no way to create a loop that iterates over a sequence of numbers, like `for i in range(10)` in Python or `for i in 0..10` in Rust, you have to use a for loop as in C: `for i := 0; i <= 10; i++`.

After a while I realized: Go tries so hard to be like C that it does not even try make improvements that make it look too different than C.

Now let's compare the `RWMutex` from Go with `RWLock` from Rust:

```Go
lock := sync.RWMutex{}
lock.RLock()
// do someting
lock.Unlock()
```

This code will compile just fine, but will fail at runtime, because I called `lock.Unlock()` instead of `lock.RUnlock()`. You might say that is the developer's fault for no paying attention and calling the wrong method, and you are right, but let's take a look at the equivalent in Rust:

```Rust
let lock = RwLock::new(1);

{
    let read = lock.read().unwrap();
    // do something
}
```

First thing we notice is that the `RWLock` operates with a value, since is very common the use a lock to synchronize access to something. Then we open curly braces to start a scope because `lock.read()` returns a guard that releases the lock when it goes out of scope, so there is no wrong method to be called. The error handling may look annoying but [it is there for a reason](https://doc.rust-lang.org/stable/std/sync/struct.RwLock.html#errors).

For me this design decision for the Go `RWMutex` seems very strange, it could be much better if `RLock` returned a handle in which you would call `Unlock` and I cannot think of any reason for this other than to look more like C.

But Rust is not perfect, though, function signatures can become messy, specially with async, and dealing with lifetimes is not fun. And compilation time...

I will continue learning Go, it is really a nice language, but I still prefer Rust, I feel much safer with it (pun intended).
How AI Will Affect the World and Future
Tags: ai, job, robotics
Published: 2023-08-06 19:43:36

Artificial intelligence (AI) is rapidly changing the world around us. From the way we shop to the way we get our news, AI is having a profound impact on our lives. And as AI continues to evolve, its impact is only going to grow.

So, how will AI affect the world and future? Here are a few of the ways that AI is expected to change our world:

   - Automation: AI is already being used to automate many tasks that were once done by humans. This includes tasks such as data entry, customer service, and even driving cars. As AI continues to develop, we can expect to see even more automation, which could lead to job displacement in some sectors. However, it could also create new jobs in other sectors, such as AI development and maintenance.
   - Personalization: AI is also being used to personalize our experiences in many different ways. For example, AI-powered recommender systems can suggest products that we might be interested in, and AI-powered newsfeeds can show us news articles that are tailored to our interests. As AI becomes more sophisticated, we can expect to see even more personalization in our lives.
   - Decision-making: AI is also being used to make decisions in a variety of fields, including healthcare, finance, and business. For example, AI-powered medical devices can help doctors diagnose diseases more accurately, and AI-powered trading algorithms can help investors make more informed decisions. As AI becomes more sophisticated, we can expect to see it used to make even more complex decisions.
   - Creativity: AI is also being used to create new forms of art, music, and literature. For example, AI-powered music generators can create new songs, and AI-powered writers can generate new poems or stories. As AI becomes more creative, we can expect to see it used to produce even more amazing works of art.

These are just a few of the ways that AI is expected to affect the world and future. As AI continues to develop, it is likely to have an even greater impact on our lives. It is important to be aware of these potential impacts so that we can be prepared for the changes that AI will bring.

Some of the potential benefits of AI include:

  -  Increased productivity and efficiency
  -  Improved decision-making
  -  Personalized experiences
  -  New forms of art and creativity
  -  Solutions to complex problems

Some of the potential risks of AI include:

  -  Job displacement
  -  Bias and discrimination
  -  Privacy concerns
  -  Security threats
  -  Ethical implications

It is important to weigh the potential benefits and risks of AI carefully. With careful planning and management, AI can be a force for good in the world. However, if we are not careful, AI could also pose a significant threat to our society.

The future of AI is uncertain, but one thing is for sure: it is going to have a major impact on the world and our lives. It is up to us to ensure that AI is used for good and not for harm.
Você conhece o metodo pomodoro?
Tags: estudar, pomodoro
Published: 2023-08-06 19:32:17

## Visão geral
O **Método Pomodoro** é uma técnica de gerenciamento de tempo desenvolvida por Francesco Cirillo nos anos 80. Ele foi projetado para **aumentar a produtividade e melhorar o foco** durante as sessões de estudo ou trabalho.


### Definição de Tempo

O método envolve a **divisão do tempo em intervalos** chamados "pomodoros". Um pomodoro é tradicionalmente definido como um período de estudo ou trabalho de **25 minutos**.

### Timer

Durante cada pomodoro, você deve usar um cronômetro ou temporizador para manter o **foco total** na tarefa escolhida. Esse período de tempo é considerado um bloco indivisível e **não deve ser interrompido por qualquer distração**.

### Pausa

Após concluir um pomodoro, é recomendável fazer uma pausa curta de 5 minutos. Essa pausa permite relaxar um pouco antes de iniciar o próximo pomodoro.

### Intervalo Longo

A cada quatro pomodoros completos, **faça uma pausa mais longa**, geralmente de 15 a 30 minutos. Isso ajuda a **evitar a exaustão mental** e a **manter a motivação** ao longo do tempo.

### Registro

É útil manter um registro de quantos pomodoros você completou durante o dia, o que pode ajudá-lo a **acompanhar o seu progresso** e **identificar padrões de produtividade**.

### Adaptação

O Método Pomodoro é **flexível e pode ser adaptado** de acordo com suas necessidades e preferências pessoais. Você pode ajustar a duração dos pomodoros e intervalos conforme achar adequado.


## Benefícios do Método Pomodoro:

-   **Aumento da concentração**: Ao definir um limite de tempo para cada tarefa, você se compromete a permanecer focado durante esse período.
    
-   **Combate à procrastinação**: O método ajuda a dividir as tarefas em unidades gerenciáveis, tornando-as menos assustadoras e mais fáceis de começar.
    
-   **Melhoria da eficiência**: A técnica incentiva a manutenção de um ritmo de trabalho constante, melhorando a eficiência geral.
    
-   **Redução do cansaço mental**: As pausas regulares permitem que a mente descanse, evitando a fadiga mental prolongada.


O Método Pomodoro é amplamente utilizado por estudantes, profissionais e desenvolvedores para **melhorar a produtividade** e a **qualidade do trabalho**. Experimente o método por si mesmo e adapte-o conforme necessário para maximizar sua eficácia.
Some Website Help a Developer
Tags: frontend, reactjsdevelopment, api
Published: 2023-08-06 19:18:48


📌 some **website may be can help you as front end or backend developer**
📍 Free Frontend.com
📍 Freecss.com
📍 Templatemo.com
📍 akeapi.platzi.com
All link in description 👇
if you see this post help you don't forget to follow me
🔵 Linkdin https://www.linkedin.com/in/abdelkader-ould-hennia/
🔵 twitter https://twitter.com/Kader_1680
⚫ Github https://github.com/Kader1680
to see may porftolio webiste
🔴 Website https://kader1680.github.io/Potfolio-Website

⚪ available for service freelance on fiverr
https://www.fiverr.com/ouldhenniaabdel?up_rollout=true
Rendering Icons using SVG Sprites
Tags: svg, react, performance, sprite
Published: 2023-08-06 18:58:26

---
title: Rendering Icons using SVG Sprites
published: true
description:
tags: svg,react,performance,sprite 
# cover_image: ![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lv0htzmzmt0y9yr9b2g7.png)
# Use a ratio of 100:42 for best results.
# published_at: 2023-08-06 17:03 +0000
---
In an eco-design approach, we consider possible optimizations throughout our projects. A significant portion of applications now use icon renderings for a better user experience and design. However, their usage can negatively impact application performance and user experience.

Using an SVG sprite instead of individual icons brings several benefits:

1. Performance Optimization: SVG sprites group multiple icons into a single image, reducing the number of HTTP requests and improving site or React application performance.
Using inline SVG code will increase the size of your JS files and thus affect the display performance.

2. Easy Management: SVG sprites simplify icon management by consolidating them into a single file. This streamlines updates and modifications since you only need to update the sprite, and all occurrences of the icons are automatically updated in your React application.

And many more benefits (accessibility, animation, etc.).

We provide a Node.js script to generate your SVG sprites and another script to generate icon renderings in a grid format in a PDF, allowing you to keep icon identifiers at hand.
[Test our repo](https://github.com/code-dev-pro/SVG-Sprite-generator)