teleren/devto huggingface dataset:
The unfair tech hiring processes (a senior dev perspective)
Tags: beginners, hiring, discuss, devjournal
Published: 2022-04-01 16:36:14


Recently I did some interviews for companies that call themselves "human focused", but in the time they need to show their humanity and respect they just forget it. 

I do understand that in this market we have a lot of dev that are "underqualified" but we too have a lot of jobs that are "overspecified", so we both have problems.

When a company ask a developer to make a live code in 30 minutes of unexpected problem, as a developer you have 90% of chance to fail, not because you can't do what they asking you, but because of the external enviroment, like, engineers watching you, anxiety, impostor sydrom, and much more. 


- Interviwer: Hi, please share your screen... So... this is the challenge, we expect you finish in 30 minutes, you can start when you're ready.

_Developer starts working and see himself being anayzed by two engineers seeing each keystroke he makes, he wants the job, the anxiety starts, the code don't run, the mind get blank and... he fail._

- Interviwer: Okay, I think we can stop here. I think you are not qualified for what we want, we expect someone fluent on this, and you're not prepared, maybe in the future. Good Luck, bye.

Now I ask you, fellow devs... Is this fair? Your experience and skills just being throw on trash by a company, just because you can't acomplish something in a stressfull enviroment in 30 minutes? Something that in a daily work situation you could have done it without problems. I find it at least disrespectful.

If you are a tech recruiter, I'll tell you what could be a better (and the right) way of doing an interview.

- Put the Tech Lead or engineer to talk with the candidate, and ask questions about his experiences, it will give you about 50% you need to know.

- Ask him to show you some project that he's proud of, and ask questions based on it. "The candidate will love tell you about it".

- Send home-tests AWAYS based on the experience that the role REALLY needs or based on the candidate experience with at least 2 days to finish. (not a computer science algorithm to calculate the air volume of earth).

- Finally, be human. Humans have depression, anxiety, stressful days, humans forget things, humans fail. These types of stressful hiring process can never judge the talent and experience of a professional.

My name is Jean, I'm a senior full-stack developer. I code, I manage, I design, I create, I help the team, but... I'm not perfect! I fail, I still have so much to learn, and... **I'M NOT A ROBOT**. If your company need a "thing", that code anything besides any human and external enviroment problems in less than 30 minutes, make a bot yourself, or hire me to make it for you.
Reverse Integer without converting into a String
Published: 2022-04-01 16:35:25

Explanation :
_Everyone is familiar with String reverse by when it comes to Integer we must go foe a different technique using Java operators. Here in the method will initialize the return with zero, then create a while loop to iterate until the user input becomes zero, within the loop we will assign value to return variable use Modulo or Remainder Operator by 10 to get only one reminder at the end and store it in in the return variable by adding the answer. After that divide the user input by 10 using Divide Operator so the last value in the Integer will be remove and assign value to input variable. Finally once the user input becomes 0 the loop will stop iteration and return the reversed value. We can call the created method in the main using print statement._

Code :

```
public class revNum {

	public static int revNumber(int num) {
		/* Declare the return variable*/
		int ans = 0;
		
		/* Loop to iterate until the int becomes zero*/
		while (num > 0) {
			/* assign value to return variable
			   use Modulo or Remainder Operator in Java
			   add to declared return variable */
			ans = ans * 10 + num % 10;
			
			/* assign value to input variable
			   Divide Operator in Java */
			num = num / 10;
		}
               /*return the declared variable*/
		return ans;
	}

	public static void main(String[] args) {
		/* Declare the input*/
		int num = 4567;
		
		/* Call the revNumber method */
		System.out.println("Before Swap: "+num+"\nAfter Swap: "+ revNumber(num));
	}

}
```
Output :
`Before Swap: 4567
After Swap: 7654`

Steps : 

1. Create a revNumber() method returning int
2. Declare the return variable and initialize with 0 
3. Create for loop to iterate until the user input becomes zero
4. Assign value to return variable use Modulo or Remainder Operator in Java add to declared return variable
5. Assign value to input variable divide Operator in Java
6. Return the declared variable
7. Declare the input in main method
8. Call the revNumber() method in the print statement 

**Special Note:** The reverse function is familiar to you but when it comes to integer we must special logic, this is how you can optimize code without a reverse function to reverse integer. Hope this will help someone in future!! I welcome your feedback and solutions-oriented suggestions, thank you for your time.

Happy Coding❤️❤️❤️
一个字符串匹配多个字符串
Tags: leetcode, 编程, 面试
Published: 2022-04-01 16:22:04


题目来源：[392. 判断子序列 - 力扣](https://leetcode-cn.com/problems/is-subsequence/)

这个假如有多个字符串需要判断是否是字符串的子串

> 对于给定字符串t，给定待匹配字符串数组words，字符串的一个子序列是原始字符串删除一些（也可以不删除）字符而不改变剩余字符相对位置形成的新字符串。（例如，`"ace"`是`"abcde"`的一个子序列，而`"aec"`不是）。

这里主要看它的进阶问题：

如果有大量输入的 S，称作 S1, S2, ... , Sk 其中 k >= 10亿，你需要依次检查它们是否为 T 的子序列。在这种情况下，你会怎样改变代码？

对于这样情况下，我们不可能考虑10亿个依次进行比较，这样的效率太低而且会超时，**可以借鉴KMP的思想，提前记录下一个字符出现的地方**。

> 举个例子， 比如对于字符串' abc'(前面添加一个空格，方便后续处理)，a 出现的地方在下标为 1 的地方，c 出现在下标为 3 的地方。
>
> 那么如果我们后面找字符串 'ac',索引的顺序就变成了 1->3，提高了访问效率。

我们可以给字符串(后面我们称为t)建立一个索引二维数组dp，t.length * 26(26个英文字母)

```c++
vector<vector<int>> dp(length, vector<int>(26, 0));
```

对于每个字符，我们从后往前遍历，这样很方便记录下一个字符出现的地方：

```C++
for (int i = 0; i < 26; ++i) {
    int nextPos = -1;
    for (int j = length - 1; j >= 0; --j) {
        dp[j][i] = nextPos;
        if (('a' + i) == t[j]) {
            nextPos = j;
        }
    }
}
```

> 这里dp\[i][j] 代表的是当前字符距离下一个字符'a'+j 出现的位置

那么，对于我们待查找的字符串 s，只需要从index 开始查找，直到结束：

```c++
int index = 0;
for (char &ch : s) {
    index = dp[index][ch - 'a'];
    if (index == -1) {
        return false;
    }
}
return true;
```

---

这里为什么要记录呢？因为查找字符是否出现在字符串中有很多方法，暴力遍历、位运算都是值得记录的。
Understand how microservices can improve edge and embedded systems projects.
Tags: microservices, systems, opensource, luos
Published: 2022-04-01 16:05:29

By developing Luos, we created an open-source embedded system architecture that makes electronics universal, modular, scalable, and progress through distributed developments.
⏩ https://www.luos.io/blog/a-way-to-unleash-embedded-systems

You can help us and make your contribution to this beautiful project by reading and sharing this article!
A new machine learning platform that helps you quickly build industrial-grade recommendation systems
Tags: machinelearning, algorithms, opensource, datascience
Published: 2022-04-01 15:48:34

I have seen on [**Lakesoul**](https://github.com/meta-soul/LakeSoul)'s GitHub homepage **[DmetaSoul](https://github.com/meta-soul)** that they released a new open-source product, **[MetaSpore](https://github.com/meta-soul/MetaSpore)**, related to machine learning. The function developed can help users quickly build a complete recommendation system.

**[MetaSpore](https://github.com/meta-soul/MetaSpore)** is an open-source one-stop machine learning development platform produced by DMetaSoul, providing the whole process framework and development interface from data preprocessing, model training, offline experiment, and online prediction to online experiment bucket ABTest. It is hoped that users can quickly build industrial-grade AI systems with distributed machine learning training, high-performance model reasoning, high availability AB experimental framework, and other capabilities in a low-code way based on MetaSpore.

**[MetaSpore](https://github.com/meta-soul/MetaSpore)** has the following characteristics:
- One-stop, end-to-end development, from offline model training to online prediction, the whole link unified development experience;
- Deep learning training framework compatible with PyTorch ecology, supporting distributed large-scale sparse feature learning
- Training framework is integrated with PySpark to read training data on data lake and data lakehouse seamlessly;
- High-performance online prediction service, supporting neural network, decision tree, Spark ML, SKLearn, and other models; Support heterogeneous computing inference acceleration;
- In offline unified feature extraction framework, automatic generation of online feature reading logic, unified feature extraction logic;
- Online algorithm application framework, providing model prediction, experimental bucket cutting flow, dynamic thermal loading of parameters, and rich debugging functions;
- Rich industry algorithm examples and end-to-end complete link solutions.

The following article will introduce several open-source products similar to **[Metaspore](https://github.com/meta-soul/MetaSpore)**.  I will also reprint the tutorials published by Metaspore, helping users build a perfect recommendation system. In addition, due to the unified software interface, The relevant algorithms, both online and offline, can be applied to real business with minimal code and configuration modifications.
Entrevistas com mulheres na computação E01
Tags: podcast, mulheresnacomputacao
Published: 2022-04-01 15:00:39

Nesta série de posts listaremos entrevistas (em áudio, vídeo ou texto) com mulheres da computação.

# Damaris Mendes no Emílias Podcast

No Emílias Podcast  - Mulheres na Computação desta semana, entrevistamos Damaris Mendes, egressa do curso de Engenharia de Computação da UTFPR Curitiba e hoje Engenheira de Desenvolvimento de Software no Google.

{% youtube GzKoCToac3o %}

[Anchor](https://anchor.fm/emilias-podcast/episodes/Damaris-Mendes-Ferreira-da-UTFPR-ao-Google-e1ge5nj)

[Spotify](https://open.spotify.com/episode/4NsWbGluPOoVbZuPR3HgPu?si=CuiNGt2xSVGgnMj_M_dLkA)


# Joanna C. S. Santos no Fronteiras da Engenharia de Sofwtare

A Joanna foi entrevistada em 
[Segurança em Engenharia de Software, com Joanna C.S. Santos (University of Notre Dame)](https://anchor.fm/fronteirases/episodes/Segurana-em-Engenharia-de-Software--com-Joanna-C-S--Santos-University-of-Notre-Dame-e1fk8v9). Ela é [Engenheira de Computação pela Universidade Federal de Sergipe e Doutora pelo Rochester Institute of Technology (RIT).](https://joannacss.github.io/)

Em 2021, o Emílias também entrevistou a Joanna Santos:

{% youtube 5SWp7QGsVEY %}

[Link para escutar no Anchor](https://anchor.fm/emilias-podcast/episodes/Joanna-C--S--Santos-professora-assistente-na-Universidade-de-Notre-Dame-e1bnb2e)

[Link para escutar no Spotify](https://open.spotify.com/episode/0KJmPSG0FK8qoVnunbQLfu)

# Marcia Lucia Teixeira - Senior Development Manager, General Motors

O podcast Os Programadores entrevistou uma mulher com uma posição senior na indústria: [Link para escutar no Anchor](https://anchor.fm/osprogramadores/episodes/E60---Marcia-Lucia-Teixeira---Senior-Development-Manager--General-Motors-e1fvfl8).

{% spotify https://open.spotify.com/episode/7f7g6P0dFLqTrGnFZkAl2h?si=dmHqwUiXREuxkKUyp-jIVg %}
Live Fronteiras-PPGCA: Rafael Parizi apresenta seu artigo no JSERD
Published: 2022-04-01 14:33:53

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

Rafael Parizi (professor IFFar e doutorando PUC-RS) irá apresentar seu artigo "A Tool Proposal for Recommending Design Thinking Techniques in Software Development" publicado no Journal of Software En
gineering Research and Development (JSERD) em co-autoria com Marina Moreira, Igor Couto, Sabrina Marczak e Tayana Conte.

Link para a transmissão no YouTube: 

{% youtube aXe5TCym5jU %}

Live conjunta do podcast Fronteiras da Engenharia de Software e do Programa de Pós-Graduação em Computação Aplicada da UTFPR.

- Dia: 06/04/2022
- Hora: 17:00 (GMT-3)
- Duração: aproximadamente 1 hora

Artigo: 

Parizi, R., Moreira, M., Couto, I., Marczak, S., & Conte, T. (2022). A Tool Proposal for Recommending Design Thinking Techniques in Software Development. Journal of Software Engineering Research and Development, 9(1), 19:1 – 19:15. 

https://sol.sbc.org.br/journals/index.php/jserd/article/view/1931

PPGCA: https://ppgca.ct.utfpr.edu.br/

Fronteiras da Engenharia de Sofwtare: https://fronteirases.github.io/
Drag & Drop without Blazor
Tags: webdev, dotnet, csharp, javascript
Published: 2022-04-01 14:32:56

Building an enterprise web application but need to integrate drag & drop functionality?

While Blazor [doesn't support this out-of-the-box](https://visualstudiomagazine.com/articles/2022/03/30/blazor-drag-drop.aspx), developers can use Wisej ([www.wisej.com](www.wisej.com)) to build and deploy enterprise-scale .NET web applications with drag & drop functionality.

Learn more here: [https://docs.wisej.com/docs/controls/general/drag-and-drop-1](https://docs.wisej.com/docs/controls/general/drag-and-drop-1)
How to add PreLoader in React JS Application
Tags: react, javascript, webdev, beginners
Published: 2022-04-01 14:31:39

[My youtube Tutorial Video for preloader](https://youtu.be/-eKLme-X9nY)
I have seen people finding it difficult to add preloader to client side applications using React/Angular/Vue.
In this tutorial video i have explained two different approach for creating Normal and Controlled Loader.
Do check it out and share the video :)
[Girhub Repo Link](https://github.com/47karimasif/bills-app.git)
Paracetamol.js💊| #89: Explica este código JavaScript
Tags: javascript, spanish, webdev, beginners
Published: 2022-04-01 14:23:23

## **Explica este código JavaScript**

```js
function test(){
  let nombre = "Alex";
  if(true){
    console.log(nombre);
    let nombre = "Oscar";
  }
}
console.log(test());
```

A. `Alex`
B. `ReferenceError: Cannot access 'nombre' before initialization`
C. `Oscar`
D. `SyntaxError`

Respuesta en el primer comentario.

---
Create your own token on terra blockchain.
Tags: blockchain, programming, tutorial, news
Published: 2022-04-01 14:22:16

Hello folks, if you want to create your own token on terra blockchain just checkout below.

https://medium.com/coinmonks/how-to-create-your-own-token-on-terra-blockchain-in-10-minutes-6f6885a8ba34

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/beegjfq2pfelt7souhav.png)
Would you be interested in more articles about Microsoft's Power Platform?
Tags: programming, beginners, english, german
Published: 2022-04-01 14:20:49

At the moment I am working a lot with the Power Platform, which basically is a set of applications by Microsoft to allow **no-code/low-code development** mainly for medium to large companies. You would not need to have much experience in programming in sense of writing code and can focus more on business topics.
I would like to write more about these applications, because it also helps to continue my learning and I surely can provide some expertise.
In case you would like to have a closer look, see here: https://powerplatform.microsoft.com/.

**This is why I would like to know if there is any interest**. I definitely would put more effort into some articles, especially if you can provide me what you are looking for. It can be basics, but also specific questions. In addition I offer to create the content in German.

_Just leave a short comment._

_Thanks everybody!_
#66 Days of Data
Tags: python, datascience, ankitgupta, mrankitgupta
Published: 2022-04-01 14:04:51

## **Learning Python**  👨‍💻

D 45 | 47 of #66daysofdata 📈

Today started with NumPy - Broadcasting, Operations, Functions, Mathematics, Matrix & Plotting using NumPy-Matplotlib 👨‍💻

Checkout 👉 [My #66 Days of Data timeline on Github](https://github.com/mrankitgupta/66DaysOfData)

Say me Hi! 
I'll be glad to connect on 
👇

**Twitter** @ [MrAnkitGupta_](https://twitter.com/MrAnkitGupta_)

**Github** @ [MrAnkitGupta](https://github.com/mrankitgupta)

**LinkedIn** @ [MrAnkitGupta](https://www.linkedin.com/in/mrankitgupta)
Kirish | C++ Part 1
Tags: beginners, programming, linux, cpp
Published: 2022-04-01 14:03:31

### C++ shablon kod

```cpp
#include <iostream>
using namespace std;

int main()
{
    cout << "Salom Dunyo!" << endl;
    return 0;
}
```
> izoh
### `iostream` 
- **1-Qator** `#include <iostream>` *(input/output stream) ya'ni kiritish-chiqarish oqimini boshqaradigan kutubxonani qo'shish

### `std ::`
- `std ::` - **std** nom maydonidan foydalanish standart kutubxonadagi ob'ektlar va o'zgaruvchilar uchun nomlardan foydalanishimiz mumkinligini anglatadi.
- **2-Qator** `using namespace std;` - buning vazifasi `std ::` qayta-qayta yozavermaslikni taminlaydi.

 > - **3-Qator** - `bo'sh qator`. C++ bo'sh bo'shliqqa e'tibor bermaydi. Lekin biz kodni yanada o'qilishi uchun ishlatamiz.

### `Kodga kirish`
- **4-Qator** - `int main()` - C++ dasturiga kirish vazifasini bajaradi
API Pexels (API keys + color search)
Published: 2022-04-01 14:01:56

We are 3 learners in dev school, for a data visualization project, realized in JavaScript. We used the Pexels API, but we encountered problems when we followed its documentation.
This one is rather light and did not work for us.
Here's how we solved our hang-ups:

- Authorization to insert the API key 
Pexels documentation:
```
import { createClient } from 'pexels';
const client = createClient('YOUR_API_KEY');
```

Our solution:
```
headers: { 
Authorization: "YOUR_API_KEY",
}
```


- Search for a photo by color: remove the # in front of the hexadecimal code (in lower case).

Marine, Audrey & Virginie
Rapyd Samples on GitHub
Tags: samples, beginners, python, fintech
Published: 2022-04-01 13:57:22

Greetings. Rapyd recently launched a GitHub account that will be the home to an ever-growing library of repos of **projects** and **sample code** for new and seasoned developers as well as API enthusiasts alike. 

https://github.com/Rapyd-Samples

Here we will showcase project winners from our Rapyd internal hackathons allowing you insight into what you can build with the OG fintech-as-a-service API. We also will have code samples that can help you get up and running quickly seeing what is required and what isn't in your payload when it comes to accepting payments within your site or application through languages such as PHP, Python, .NET, and Node.js with many more to come in the weeks ahead. 

Have comments or feedback let us know!
Beautify kcat consumer output by piping to jq
Tags: apachekafka, kcat, json, jq
Published: 2022-04-01 13:56:53

I was working on some demos recently on the Apache Kafka source connectors (hi #KafkaSummit!), and trying to display the stream of changes in the resulting Apache Kafka topic.

<!--more-->

My standard approach is to vertically divide the terminal and have on the left the database connection where I can issue commands and on the right the output of [kcat](https://docs.confluent.io/platform/current/app-development/kafkacat-usage.html). This setup works really well for simple messages, but when using it with a [Debezium source connector](https://developer.aiven.io/docs/products/kafka/kafka-connect/howto/debezium-source-connector-pg.html), the amount of fields pushed in a single message makes it hardly parsable by a live audience watching a screen.

![Unparsable JSON](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/538crhcjgnpmr8is9kpc.jpg)


In the above image you can notice that the `kcat` output is a JSON format without syntax highlight making it almost unreadable. 

## `jq` to the rescue

I knew and was using since long time [jq](https://stedolan.github.io/jq/) a tool that allows you to beautify and parse JSON outputs. After installing you can just use it as

```
echo '{"name":"Francesco", "preferences":["pasta","pizza","espresso"]}' | jq '.'
```

and you get your amazing JSON displayed nicely

```
{
  "name": "Francesco",
  "preferences": [
    "pasta",
    "pizza",
    "espresso"
  ]
}
```

## `jq` and `kcat`

Now, how can I apply `jq` to the `kcat` consumer output? I tried a direct pipe like:

```
kcat -F kcat.config -C \
    -t my_pgsource.public.players | jq 
```

But unfortunately I only got the output comments without the actual data being displayed

```
% Reading configuration from file kcat.config
% Reached end of topic my_pgsource.public.players [0] at offset 3
```

Seen on screen as

![No output of JSON](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4xi7kcqsakp4ut1lr70r.jpg)

I struggled long time, but then reached out to a friend (kudos [@rmoff](https://twitter.com/rmoff)) who pointed me to the right solution: the `-u` flag (                 Unbuffered output) in `kcat`. Once added the `-u` flag I'm now able to see my beautified JSON!


![Beautified JSON](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iz4qloz7ffyzdvq7g37p.gif)
Typescript API Design: Single Callable Or Multiple Callable
Tags: javascript, typescript, programming, webdev
Published: 2022-04-01 13:52:13

Let's start with an example, let's say the requirement is to create a 'travel' API where it takes 'destination' and 'transportation' as arguments.

Currying is the process of transforming a function into multiple callable, but here I refer to it as a function that returns another function based on the number of parameters.

How would you design the API, with Typescript, which pattern you use?

A. plain simple function

```ts
const travel = (destination, transportation) => {
  // do something
}

```

B. curry form
```ts
const travel = (destination) => (transportation) => {
  // do something
}
```

C. method chaining
```ts
const travel = (destination) => {
   return {
       transport: (transportation)=>{
             // do something
       }
   }
}
```

currying and method chaining are similar, because it involves multiple callable, while plain function is only one callable.

I prefer single callable, for a very simple reason, less prone to error when you call it.

Here is how you call them, keep in mind we are using Typescript

A. plain function
```ts
travel('North Pole', 'swimming') // ok
travel('North Pole') // ts error
```

B. Currying
```ts
travel('North Pole')('swimming') // ok
travel('North Pole')() // ts error
travel('North Pole') // ok, but do nothing, no ts error
```

C. Method chaining
```ts
travel('North Pole').transport('swimming') // ok
travel('North Pole').transport() // ts error
travel('North Pole') // ok, but do nothing, no ts error
```
As you can see, it is impossible to call the plain function incorrectly with Typescript.

However this is not the same with currying and method chaining where it is possible to call them partially if you don't pay attention

Still currying and method chaining are good for reusing arguments 

```ts
const goToNorthPoleWith= travel('North Pole')
goToNorthPoleWith('Airplane')
goToNorthPoleWith('Ship')
```

so to have the best of both worlds, we should **always start** from single callable, and if we want to reuse the argument, we can curry it afterwards.
How to create custom graphQl API in Strapi CMS
Published: 2022-04-01 13:51:28

Say you added a new collection type named "likes" and  Strapi automatically creates graphQL API for you, you can customize the API by doing this:

- Update api/likes/config/schema.graphql.js
`module.exports = {
  query: ['findtest: Likes'],
  mutation: ['updatetest: Likes'],
  resolver: {
    Query: {
      findMyLikes: {
        description: 'Return a list of all my likes',
        resolverOf: 'application::likes.likes.find',
        resolver: 'application::likes.likes.findMyLikes'
      }
    },
    Mutation: {
      deleteMyLikes: {
        description: 'delete all my likes',
        resolverOf: 'application::likes.likes.update',
        resolver: 'application::likes.likes.deleteMyLikes'
      },
    },
  }
};`


- Update api/likes/controllers/likes.js
`
module.exports = {
  findTest: async (ctx) => {
    let t = await strapi.services.likes.findOne({id: 5});
    return t;
  },

  updateTest: async (ctx) => {
    // const {id, categoryID} = ctx.request.body;
    return {
      id: 4
    }
  }
};
`

That is it!