teleren/devto huggingface dataset:
What Devs Need To Teach CEOs About AI w/ Lexion’s Emad Elwany
Tags: ai, techtalks, podcast, management
Published: 2022-03-16 21:50:52

For decades Artificial Intelligence has been a focus of best-selling science fiction authors and an antagonist for blockbuster Hollywood movies. But AI is no longer relegated to the realm of science fiction, it inhabits the world around us. From the biggest enterprise companies to plucky startups, businesses everywhere are building and deploying AI at incredible speed. 

In fact, open source allows anyone with a laptop to build impressively good AI models in a day.

But for all the recent advances in AI, what are its limitations? And if you are a developer or business leader, what use cases can AI solve for your company? 

In this week’s episode of [Dev Interrupted](https://devinterrupted.com/), Emad Elwany, CTO and Co-founder of [Lexion](https://www.lexion.ai/), walks us through the practical realities of AI in today’s world and how its constraints apply to your business. He also discusses the biggest breakthroughs in AI, how to build machine learning models that actually solve a business need and why it’s almost impossible to retrofit AI once it’s already built. 

Whether you are a business leader who is considering implementing AI at their company, a consumer curious about how AI impacts your daily life or a researcher wanting to understand how to better deploy AI outside of the lab - this episode has got something for you!

{% spotify spotify:episode:0PkoTid7eZXxjXPe4gnJRz %}

## Episode Highlights Include:
* (1:18) Growing up in Egypt & Emad’s start at Stanford
* (8:35) Why AI is “glorified pattern matching”
* (16:38) The biggest impact of AI on your daily life
* (21:13) What people in academia get wrong about building AI
* (35:35) Customers don’t care about AI - they care about solutions
* (41:17) Enterprise vs startups: how they each use AI

## [You're Invited to INTERACT on April 7th](https://devinterrupted.com/event/interact/)

Join engineering leaders from Netflix, Slack, Stack Overflow, American Express & more at LinearB's virtual engineering leadership conference, [**INTERACT**](https://devinterrupted.com/event/interact/) on **April 7th, 2022.**

**1 day, 20 speakers, 1,000s of engineering leaders - all driven by the Dev Interrupted community.** If you are a team lead, engineering manager, VP or CTO looking to improve your team, this is the conference for you!

[**Learn more here**](https://devinterrupted.com/event/interact/)


![Join INTERACT at https://devinterrupted.com/event/interact/](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2xhtonct1vkpjhrtzfl3.png)
What's the essential information that must-have in your portfolio to get a job as a developer?
Tags: webdev, career, beginners, codenewbie
Published: 2022-03-16 21:22:24

The portfolio website is the first thing you will ask about it when you pass the job interviews , it's necessary for every developer, for that, you need to build a professional portfolio that displays your important information about yourself and your works.

- **Home section**: include a nice picture for yourself, name,  your speciality, button to contact from and your  social media accounts links

![Home section](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8qarce9buljqm12i4iv9.PNG)


- **About section**: introduce yourself, what you do, your skills and experiences, then a button to download your resume and also  links to  LinkedIn  and GitHub profiles

![about section](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/17au2sbrpyvhit5vhkwf.PNG)

- **Works section**: you must have at least two projects, each project must have included a good screenshot, a short description, the technologies you use to build it, and it is essential to add links to the demo and the code. 

![work section](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tb0lqmoy9m3a9aok421k.PNG)

- **Blog section**: write some articles on web developments  to show your writing and communication  skills, you must have at least 2 articles

![blog section](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0p50m01tigkneqibxadq.PNG)



- **Contact section**:  add a contact form ,phone, email,adress and your social media accounts links

![contact section ](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qm2j43ko2n7aebboj2fm.PNG)

If you enjoyed this article you can follow me on[ Twitter](https://twitter.com/chemlali_assia) where I tweet about web development and freelancing.
Clearing your browsers cache - Why it is so important?
Tags: beginners, webdev, tutorial, codenewbie
Published: 2022-03-16 21:01:09

So cache. You have probably heard of it, although you may not even know what it means. I have seen many beginner developers (Especially HTML/CSS ones) struggle with the concept, and how it works. 

Thankfully, it’s quite a simple idea, and while some online guide dig deep into how the HTTP protocol works in order to explain it to you, this one does not (Although it is covered in part, and is important to learn more about if you want to become a professional).

Enough pretext, let’s get into it. 

## So what is a web browsers cache?

Every major browser has a cache. But what does that mean, and what does it do? Have you ever noticed that websites sometimes load a little faster the second (Or third, or forth, or …) time you visit them? That is because whoever you visit a website for the first time, your browser saves a copy of the code to its cache. When you visit the website for a second (or third, or forth, or …) time, your web browser realizes that it already has a copy of the code stored locally (in the cache), so it rendered that instead of downloading a new copy from the web. 

## Pros and Cons

**Pros** - Websites load faster, and less strain is placed on the server that hosts the files for the website. It also helps reduce the amount of data that is used, which is helpful for metered connections. 

**Cons** - Whenever a website is updated, your computer won’t know, and will most likely continue to show you the version that is has saved. Normally, this is not a big deal since most changes are done _dynamically_, or are not important to see right away (Since the cache of a website will be cleared after a few days). However, when you are testing your own website, and do not have these things setup, you probably want to see your changes immediately to see if that text looks better in red or blue. Also, since the cache takes up space on your computer, it can begin to slow down computers with limited memory. Now just because this cons paragraph is much longer than the one for the pros, that does not means it’s bad, in fact the cache is quite good (And, you can clear it whenever you want)!

## Additional Resources

So, what can you do if you are seeing an old copy of a website, want to check if a new version is available, or just want to free up a little space? Well, just [clear the cache on your web browser](https://tinkertechlab.com/webhosting/security/how-to-clear-your-browsers-cache)! It’s a simple task, and does not take long to complete (Generally less then a minute).  

What if you are the developer of a website? [Setting cache headers on your website](https://tinkertechlab.com/webhosting/htaccess/set-cache-headers) (Tutorial for Apache only) allow you to decide how often a visits browser checks for updates to your website, neat, right? The only thing is that they will not work until you clear your cache, isn’t that ironic? 

Was this helpful? Was there anything I forgot? Let me know in the comments below!
Mobx vs Redux
Tags: react, redux, mobx, javascript
Published: 2022-03-16 20:48:41

As a developer, I want to know the difference between these two state management and pick one of them consciously.

## Redux:
- Redux is heavily influenced by Functional Programming principles
- It's more popular option
- Manual approach: it's explicit, you manually dispatch, and you manually subscribe to the store
- Model:

> You dispatch an action 
> It goes to middleware and then Reducer
> It generates a new Store and not mutate it.
> componets are subscribed to the store.

- it's so testable and so predictable 

> because you literally write everything out yourself


## Mobx:
- MobX is influenced by Object-Oriented Programming and Reactive Programming principles
- you have a bunch of values that can be defined as an observable
- observable value: when it updates, everything that depends on it updates as well.
- Automatic approach: a lot of things happening behind the scenes
- You mark things as observable and your application starts automatically updating
- it is still pretty predictable itself


Refs:

- [https://www.youtube.com/watch?v=83v8cdvGfeA](https://www.youtube.com/watch?v=83v8cdvGfeA)
Junior ham odam ...
Tags: dasturlash, junior, beginners, uzbek
Published: 2022-03-16 20:45:28

Shu kunlarda shogirtlarim .NET bo'yicha ish qidirishyapti. Ularni taassurotlaridan quyidagi unchali yaxshi bo'lmagan fikrlar kelmoqda.

#### 1. Enasiyam bilmaydigan savollar berish
Junior darajadagi dasturchi odatda ish o'rganuvchi hisoblanadi. Bir yo'nalishda (aytaylik .NET) ma'lum texnologiyalar (EF Core, SOLID, REST) yordamida bir nechta loyihalarda qatnashgan bo'ladi. 

Shu yoshgina junior dasturchilarda interview olayotgan "Senior" akalarimiz esa bisotlarida bor, 5+ yil davomida o'rgangan bilimlariga tayanib dunyodagi barcha texnologiyalar haqida savol berishyapti. Agar junior ularni bilmay qolsa uni kamsitish va yerga urish holatlari ham mavjud.

#### 2. Bir oylik loyihaga 1 kun vaqt
Kichik test loyihalarda juniordan uddalab bo'lmas topshiriqlar berishyapti. Masalan, quyidagi topshiriqni oling:
```
Product CRUD api qilish kerak
1. .net core, Postgresql dan foydalanib
2. 3 tilda bo'lishi kerak.
3. jwt uni ulash kerak bo'ladi
4. API doc sifatida swaggerdan foydalanish kerak
```
Yuqoridagi topshiriq junior darajadagi dasturchiga berilgan. Axir bu yarim tayyor maxsulotku. Shuni bajarish uchun 1 kun vaqt berish qay darajada to'g'ri. Qaysi senior shuncha topshiriqni kompaniyasida bir kunda bajaradi?

#### 3. Junior oyligiga Senior qidirish
Ko'p holatlarda kompaniyalar qo'yayotgan talablar bir necha yillik tajribaga ega dasturchilar bilishi kerak bo'lgan bilimlar. Oylik esa kulgili darajada past. Shunday odamlar ishga e'lon berishda o'zlaridan uyalishmasmikin? Bozorni ko'rgan odam biladiku u taklif qilayotgan narxga *paynet*chilar ham rozi bo'lmaydi.


Hammasi u darajada rasvo emas. Bir nechta chet-el kompaniyalari ishga olish jarayoni qanday bo'lishi kerakligini, ishchilarga qanday muomala qilish kerakligini ko'rsatib o'rnak bo'lishyapti.

Hammadan iltimos, Junior ham odam, ularni tepalayvermanglar!
Dart/Flutter Liste Özellikleri 💫 🌌 ✨
Tags: dart, flutter, list, property
Published: 2022-03-16 20:37:38

## Flutter Liste Methodları 

**first property**
Listenin ilk elemanını döndürür.
Liste boşsa bir StateError atar.
Aynı zamanda bu method ile listenin ilk elamanına değer atayabilirsiniz.

Listenin ilk elemanı alma:
```
final numbers = <int>[1, 2, 3];
print(numbers.first); // 1
```

Listenin ilk elemanına değer atama:
```
numbers.first = 10;
print(numbers.first); // 10
```

Liste boşsa hata döner:
numbers.clear();
numbers.first; // Throws.


**isEmpty property**

Listenin boş olup olmadığını kontrol eder. Liste boş ise sonuç true değilse false olur.

```
final emptyList = <int>[];
print(emptyList.isEmpty); // true;
print(emptyList.iterator.moveNext()); // false
```

**isNotEmpty property**
Listenin boş olup olmadığını kontrol eder. Listede en az bir öğe varsa true yoksa false döner.


```
final numbers = <int>{1, 2, 3};
print(numbers.isNotEmpty); // true;
print(numbers.iterator.moveNext()); // true
```


**last property**

Listenin son elemanını döndürür.
Liste boşsa StateError atar.

```
final numbers = <int>[1, 2, 3];
print(numbers.last); // 3
```

**length property**

Listenin eleman sayısını döndürür.
Tüm öğelerin sayılması, tüm öğelerin yinelenmesini gerektirebilir ve bu nedenle yavaş olabilir.


**single property**
Listenin yalnızca bir elemana sahip olup olmadığını kontrol eder. Listede tek eleman varsa o elamanı döner, birden fazla eleman varsa da hata döner.

```
final numbers = <int>[2];
print(numbers.single);// 2
```


```
final numbers = <int>[1, 2, 3];
print(numbers.single); //Uncaught Error: Bad state: Too many elements
```
encrypt dns/tor [devuan linux]
Tags: tor, linux, privacy, bash
Published: 2022-03-16 20:29:17

install tor script

```
git clone https://github.com/keeganjk/kali-anonymous
cd kali-anonymous
```

```
chmod +x setup
sudo ./setup
```

```
sudo apt install psmisc virt-what bleachbit
```

let’s encrypt dns with forked dnscrypt-proxy/tor for devuan

```
sudo apt install dnscrypt-proxy
sudo nano /etc/dnscrypt-proxy/dnscrypt-proxy.toml
```

modify for tor resolvers
listen_addresses = [‘127.0.2.1:53’]


```
echo “nameserver 127.0.0.1” | sudo tee /etc/resolv.conf
```

change resolv.conf attributes to immutable

```
sudo chattr +i /etc/resolv.conf
```

```
sudo anonymous for basic info.
sudo anonymous start to start anonymous
sudo anonymous stop to stop anonymous
sudo anonymous status for anonymous's status
sudo anonymous update to update anonymous
```

restart services

```
sudo service network-manager restart
sudo service dnscrypt-proxy restart
```

check

https://dnsleaktest.com
Dicas para estudar e praticar programando
Published: 2022-03-16 20:14:53

Resolver exercícios e superar desafios práticos de programação podem ajudar bastante a elevar os skills como dev.
 
Sabendo disso, compartilho uma lista de sites que tem me ajudado a aprender praticando:
 
1- FreeCodeCamp é uma plataforma de ensino de programação bastante conhecida e utilizada.
https://www.freecodecamp.org/
 
2 - Beecrowd. É uma comunidade com uma série de exercícios. Gosto bastante de ler as discussões sobre as resoluções dos desafios.
https://www.beecrowd.com.br/judge/en/login
 
3 - LeetCode. Mesmo com muitos recursos premium, existem listas de exercícios free bem interessantes.
https://leetcode.com/problemset/all/
 
4 - Exercism. Se você gosta de estudar e praticar com gamificação, talvez essa seja a melhor opção. Além de ter uma quantidade significativa de linguagens para codar.
https://exercism.org/
 
5 - Codewars. Nessa plataforma, você pode evoluir suas habilidades de programação, conhecimento da linguagem e até mesmo aprender uma linguagem nova. Para fazer o cadastro tem que resolver um exercício teste.
https://www.codewars.com/
 
6 - Hacker Rank. Plataforma bastante completa para estudar e praticar, tendo como base um ranking.
https://www.hackerrank.com/
 
7 - PythonBrasil. Neste Wiki, os exercícios podem ser implementados em pseudo-código, Python, C, C++, Java, Pascal ou em qualquer outra linguagem.
https://wiki.python.org.br/ListaDeExercicios
 
8 - Learn Javascript. É uma plataforma com muitos exercícios para nível iniciante/intermediário. Infelizmente, para níveis avançados é necessário conta premium.
https://learnjavascript.online/app.html
 
Tem algum site que te ajudou e faltou na lista? Fique à vontade para comentar.
 
#javascript #python #java #hackerrank #dev #desevolvedor #freecodecamp
What is Micro-Frontends?
Tags: javascript, react, webdev, mfe
Published: 2022-03-16 20:11:31

All we know about Microservices, which helps to develop features individually. Same way, we can do it with frontend applications. I mean, your application can be divided into various small individual applications. Aka Micro Frontends.

We can develop the main parent app which will contain the authentication and routing implemented, and we can then proceed to adding multiple child apps which work independently and can be loaded on either the same or different pages.

##There are two main ways to build micro-frontends:
- **Feature Base:**
> This is most commonly used division
> For example: we can divide features of the dashboard into three micro-frontends.

- **Domain base:**
> Apps can be divided as per domain
> for example, we can divide the app in Core domain, payments domain, profile domain, ...


##Micro-frontend frameworks:
Since each MFEs are placed in different locations, we need to have a base which will render the application. Here are few ways : 

- [Webpack module federation](https://www.youtube.com/watch?v=AU7dKWNfWiA)
_[example](https://www.youtube.com/watch?v=2eGXIbc6lZA)_
- NGINX
- iFrames
- Web components
- H-include library
- [Single SPA library](https://techblog.geekyants.com/building-a-micro-frontend-using-react-and-angular)

##Communication
As mentioned before, the micro-frontends are completely independent of each other, but we can have them communicate with each other on certain events by using a library like an [Eev](https://www.npmjs.com/package/eev) event bus. 

##Main Advantages: 
- **Team scalability:**
There would be isolated teams of code, and so we don't share a runtime, we don't rely on a shared state or global variables. 
- **Reusability**
- **Technology Agnosticism:**
each team should be able to choose and upgrade their stack without any coordination with other teams.


##Disadvantages:
- Complexity
- No Standards 


Refs:

- [https://www.youtube.com/watch?v=w58aZjACETQ](https://www.youtube.com/watch?v=w58aZjACETQ)
- [Building A Micro-Frontend Using React And Angular](https://techblog.geekyants.com/building-a-micro-frontend-using-react-and-angular)
React and Redux Toolkit Full Course (free) 🔥 - Complete Shopping Cart Project (Video)
Tags: react, redux, javascript, webdev
Published: 2022-03-16 20:03:39

Learn `React` and `Redux toolkit` by creating a complete shopping cart from scratch.

Explore more of my free courses here: https://youtube.com/c/chaoocharles

##Video Course 👇
{% youtube WenErzbaF1M %}
SSH - A Better VPN 🚀
Published: 2022-03-16 19:21:11

As alternative to ***VPN***, a SOCKS5 tunnel is often a faster, cheaper alternative.

```$ ssh USERNAME@IP -D PORT```

In the following example, the ***USERNAME*** we use is ***root***, the VPS ***IP*** is ***23.84.52.11*** and we want to create a SOCKS5 listening on ***PORT*** **2240**:

```$ ssh root@23.84.52.11 -D 2240```

The SOCKS5 proxy should now be available.
Adjust your browser settings accordingly; the proxy host will be *127.0.0.1* or *localhost* and the port *2240*:

``127.0.0.1:2240``
or
``localhost:2240``

Finally, if you want to surf without a proxy, Tun2socks is a great tool you can use to tune a SOCKS proxy to a virtual interface.
Fetch requests in JavaScript
Tags: fetch, javascript
Published: 2022-03-16 19:07:34

Most of the time in your applications, you will need to access data, or "fetch" it from another source, such as a server, API, etc.

This is where **fetch requests** come in handy.

I'll use [this free API about dogs](https://dog.ceo/api/breeds/image/random) for dummy data.

A fetch request starts out looking like this:

```
fetch("https://dog.ceo/api/breeds/image/random");
```
All this does is request the data though; we need some kind of response so we can actually see this data.

```
fetch("https://dog.ceo/api/breeds/image/random").then((response) => {
  
});
```
The response object needs to be translated into a JSON so we are able to use it.

```
fetch("https://dog.ceo/api/breeds/image/random").then((response) => {
  return response.json();
});
```
Since the json() method also returns a promise, let's return that promise and use another then().

```
fetch("https://dog.ceo/api/breeds/image/random")
  .then((response) => {
    return response.json();
  })
  .then((json) => {
    console.log(json);
  });
```
Don't forget to add a catch() method at the end of the series of then() methods to catch any errors for unsuccessful requests.

```
fetch("https://dog.ceo/api/breeds/image/random")
  .then((response) => {
    return response.json();
  })
  .then((json) => {
    console.log(json);
  })
  .catch((err) => {
    console.log(err);
  });
```
Python @staticmethod vs. @classmethod
Tags: python, programming, tutorial
Published: 2022-03-16 19:04:31

{% embed https://www.youtube.com/watch?v=7428SmlYD4M %}

What is the difference between the Python `@staticmethod` and `@classmethod`? decorators?
Checkout my latest Youtube video and this blog article to find it out why:
[https://k0nze.dev/posts/python-staticmethod-vs-classmethod/](https://k0nze.dev/posts/python-staticmethod-vs-classmethod/)
Internet Everywhere - DNS Tunnel 🚇
Tags: linux, opensource
Published: 2022-03-16 18:50:59

***DNS Tunnel*** is a great tool for accessing the internet even in the most unlikely places.

At times, you may encounter a faulty internet connection, down for maintenance, filtered by a firewall;
a DNS tunnel can connect you to the internet, and is quite simple to create one.

## Pre-requisites
You need a [domain name](https://www.namecheap.com/), a [VPS](https://www.linode.com/) and [Iodine](https://code.kryo.se/iodine/).

Iodine is the software we will use to tunnel internet data.

## Install Iodine
Install Iodine (hyperlink above) in both your server and your personal device, Iodine supports Android, Linux, and Windows.

You may also use a package manager
```$ apt install iodine```
```$ yum install iodine-server```
```$ pacman -Sy iodine```

## Set up
Access your domain registrar (eg. Namecheap or Godaddy) DNS dashboard: 
- Add a DNS record of ***Type*** "*A*", with ***Name*** "*t1ns*" and ***Data/Value*** *YOUR_VPS_IP*

where "YOUR_VPS_IP" is the actual IP of your VPS.

- Add a DNS record of ***Type*** "*NS*", with ***Name*** "*t1*" and ***Data/Value*** t1ns.*YOUR_DOMAIN*

where "YOUR_DOMAIN" is the domain you acquired from step 1.
The result should look similar to the image below:

![DNS records preview](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d3jxnxmvxgdive4acu7k.png)

## Tunnel data
Make sure the DNS records have propagated:
```$ nslookup t1ns.YOUR_DOMAIN```
The command above should return your server IP.

```$ dig A t1.YOUR_DOMAIN```
The command above should confirm the DNS record delegation.

Let's create the tunnel:

- Run ***iodined*** (note the "d") on your server
```$ iodined -f -P My_Super_Password 10.0.0.1 t1.YOUR_DOMAIN```

the IP "*10.0.0.1*" in the command above can be replaced with another free private reserved IP. You may leave it as it is.

- Run ***iodine*** on your device
```$ iodine -f -P My_Super_Password t1.YOUR_DOMAIN```

the "***-f***" option instructs Iodine to run in foreground.

You should be able to reach your server through *10.0.0.1*.

Finally, you can establish an [SSH SOCKS5](https://dev.to/tommycnr/ssh-a-better-vpn-2n30) proxy connection to your server, happy surfing.

```$ ssh SERVER_USERNAME@10.0.0.1 -D PORT```
🐧 Linux - Identify CPU Intensive Processes
Published: 2022-03-16 18:46:51

To list all the current processes, starting from the most CPU intensive 

```$ top -o %CPU```

Once you have identified the process, take not of the ***PID*** shown in the leftmost column.

You should see something similar to the image below 


![top command result](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ub7vlrpsa8nbkkb3b5zl.png)

In our example, the **bash** script with ***PID 1435719*** is consuming 100% CPU - out of 1 of 4 cores. *(see first entry of the image above)*

The command ***ps*** displays information about a selection of the active processes.

We can pipe ***ps*** to ***grep*** to obtain a clear-cut list 
of the processes we are looking for.

```$ ps aux | grep 1435719```

![ps command result](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zsno0bn66loq81tcfdz3.png)

The ***kill*** command can be used to stop a process.

```kill 1435719```