teleren/devto huggingface dataset:
KYC automation using Azure AI
Tags: azuretrialhack, azure, ai, pyt
Published: 2022-03-08 21:59:03

### Overview of My Submission
Leveraging **Azure AI form recognizer cognitive** service to automate customer **KYC** verification and validation process. Using this project submission, manual reviewers do not need to analyse and go through each and every submitted document by the customers. The AI service will reject invalid and bogus **KYC** documents.

> 👉 Lets have a brief knowledge about KYC and legacy KYC verification flow.

### What is KYC?
Businesses need to ensure **customer due diligence** (CDD) using **know your customer** (KYC) documents. CDD involves verifying that customers are who they say they are and assessing the risks like the possibilities of **fraud**, **money laundering**, **terrorism financing** etc. 
KYC process includes verifying customer’s name, address, photograph by analysing bank documents, utility bills, etc. 

### Legacy KYC process 🛠
1. Customer need to upload his KYC document like **PAN**, **Utility bills** etc. through an online portal.
2. **Manual reviewer** reviews each and every document uploaded by customer and verifies the following checks:

- Integrity of uploaded KYC document.
- The image quality of KYC document.
- Validating information(Name, Father Name, DOB, Document number) in KYC document.

---

### Azure AI based implementation:
1. Customer need to upload his KYC document like **PAN**, **Utility bills** etc. through an online portal.
2. After receiving KYC document, custom trained form recognizer model with run and validate:

- Structure (template) of KYC document.
- Extract data from KYC document. 
3. Then according to business logic, extracted data/ fields from KYC document are verified.

### Submission Category: 
AI Aces, Computing Captains

### Resources Used:
1. Azure AI Form Recognizer (For custom machine learning model).
2. Azure Functions (For front end api and business logic layer).

### Link to Code on GitHub
{% github https://github.com/shivamarora1/kyc-automation-azure-trial-hackathon %}


### Screen shot
Customer submitting KYC documents
![Customer submitting KYC documents](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o5xev6z7e51ccq097plk.png)

Screen after waiting for KYC repsonse
![Screen after waiting for KYC repsonse](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/olmn2pp98fo3f9jqhaa0.png)
 

### Architecture:

![Cloud Diagram](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cpu52es2b8pi8appi3bx.png)

### References:
- https://eastus.dev.cognitive.microsoft.com/docs/services/form-recognizer-api-v3-0-preview-1
- https://docs.microsoft.com/en-us/azure/azure-functions/
- https://azure.microsoft.com/en-in/services/storage/blobs/#overview
- https://azure.microsoft.com/en-in/services/form-recognizer/
Superhero Chat - Simulating Conversations with Heroes using AI
Tags: azuretrialhack, ai
Published: 2022-03-08 21:54:56

### Overview of My Submission

For the hackathon, I've created an application, where you could talk with superheroes or people with certain personalities that could be described in words, and they would reply just as they would in real life.

Simply speaking, the AI model trained for the task is perfect for simulating conversations, and 

### Submission Category: 

Wacky Wildcards: Though it uses AI extensively, AI is not just the only part of the project. UI, web app development, etc. are as much of a contributor for the project as for AI, so I would like to place in in this category

### Deployment

The app was deployed on azure app service, and uses Azure's OpenAI service {% embed https://www.youtube.com/watch?v=HTw4cJy3XNk %}

### Link to Code on GitHub

{% embed https://github.com/SnazzyCoder/superhero-chat %}
 
### Additional Resources / Info

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

Above is a sample screenshot of me talking with Tony Stark using the AI. you could choose from a variety of superheroes, or insert your own one.

For example, you could add Ned (from Holland's Spiderman movies), by entering "Ned Leeds" in the name, and "Energetic high school boy who just got into MIT" in the context section. The AI would then automagically simulate the conversation and reply as Ned on his behalf. 

It works wonders.

### Useful Links

- Project Demo: https://yayy.me/azuresuperherotrial
Web 2.0 and Web 3.0 and their differences
Tags: cloud, web3, webdev, beginners
Published: 2022-03-08 21:44:44

Everyone everywhere is talking about web 3.0 and how it is the next big thing for the web, and I have even seen some mouth watering offers for web 3.0 engineers, but HOLD ON, what exactly is web 3.0? each time I ask this question, I usually get the response "look it up on Google Ogbeni". So I decided to do some research and save you that response.

**But what is web 2.0 and web 3.0?**

**What is web 2.0?**

  Web 2.0 is basically a term for today's interactive internet, It is the web we use at the moment, it evolved from web 1.0 which was read only to read and write as we have it today. Nowadays users can fill up information in a web field and send it to a server, also the users can choose not to get generic data from a server but a specific response resulting in rich user experience for example I can open my bank app and not just see my balance but also see my transactions if I want to in a user friendly interface.

Web 2.0 consists of user generated content and users can collaborate, web 2.0 gave rise to an outburst ofsocial media platforms, blogs, also it gave rise to user partication because the owner of the websites are not the only one able to put content.

- Characteristics of web 2.0
- Read/Write
- Sharing Content
- Web as a storage platform
- Rich User experience
- User Participation

**What is web 3.0?**

Experts call it the "Semantic Web", a web which is autonomous,intelligent and open, web 3.0 is the upcoming generation of the internet where apps and websites can actually process information in a smart human-like way through technolgy like decentralized ledger, artifical intelligence and edge computing.

Characteristics of web 3.0

-  Semantic web
- Ubiquity (the fact of appearing everywhere)
- 3D Graphics
- Artificial Intelligence

**Differences between web 2.0 and web 3.0**


![image of differences](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l7tljm0seojn5wdk54jw.png)

You can also check out for more blockchain insight
[Block Games](https://blockgames.gg/)
[Nescoin](https://nestcoin.com/)
[Zuri](https://zuri.team/)
Major difference between Web2 & Web3
Published: 2022-03-08 21:17:58

One of the major flaws of the web2 platform is its centralized authority to have all things censored and captured at will the local operating system, and this can be reduced to the minimum using the web3 decentralization.

Web3 is trustless and permissionless, you have access to information and transaction without personal data coming up or being need.

The connectivity of the internet world is gradually on demand and though web2 has been good but greater connection is in need and in demand for the greater connectivity.

Thanks, and wish to learn more.
Node.js and Express.js with env variable 
Published: 2022-03-08 21:38:24

Hey There!

Just a sharing my knowledge on below
**Topic:** Node.js, Express.js

Where I used
**Package** [dotenv](https://www.npmjs.com/package/dotenv)

Great! It looks like to know more about this...

I got one requirement, Where I have run my Node.js App with env variable.

So with the help of [dotenv](https://www.npmjs.com/package/dotenv) package, I achieved this

Where you have to follow these steps;

**Add Package**
 `npm install dotenv --save` (will add package on your project)
**Change in package.json file**
`node -r dotenv/config your_script.js` (change your package.json start or dev script what you want trigger)
**Add .env file**
add env file in the root of your project and add your favorite variable

That's it run `npm start` (or `npm run dev` as per your script).

You will see that your app running with provided `.env` file's variable 

So while working with this I extracted basic code to run Node.js app with env and pushed it to Github.

https://github.com/iamharshad/beginner-node-express-env-port
The difference between Web2 and Web3
Published: 2022-03-08 21:20:44

From time immemorial, humans have always sought ways to improve and better their race, and also gain competitive advantage amongst themselves which has led to the rapid advancement in technology most noticeably in recent times. This advancement also took place with the web with the development of web3. Prior to web3 is web2 which is the basically the internet as we know it today, centralized with a lot of autonomy and power in the possession of servers and software providers. 

 

The major difference between web2 and web3 is centralization; on web2, apps like Twitter can censor user posts (tweets) while this is not possible in web3 as control is decentralized, companies can do as they deem “morally acceptable” or just as they please really, in terms of punishments/rewards to software users which is not possible in web3 as users' personal data is not required. Also, due to the centralization in web2, servers for gig-economy apps like Tik Tok could go down and affect worker income while web3 servers can’t go down as they are decentralized. 

 

This difference in centralization has provided arguments for both webs in terms of advantages and disadvantages when being compared by factors like scalability, user experience, accessibility, cost, dispute resolution, single point of failure, etc. 

 

Examples of web3 sites include; Blockgames' site (https://blockgames.gg/), Nestcoin's site (https://nestcoin.com/), and Zuriteam's site (https://zuri.team/).
Disable the Dialog Prompt from IOS when implementing Xamarin Essentials Web Authenticator
Tags: xamarinforms, ios, dotnet, openid
Published: 2022-03-08 21:20:36


So, i'm currently developing a [XamarinForms](https://dotnet.microsoft.com/en-us/apps/xamarin/xamarin-forms) application with IOS and Android support and Implement [openidict](https://github.com/openiddict/openiddict-core) for authentication flows.
It turns out that on IOS when opening the browser it prompts with a Dialog first.
While using [Xamarin Essentials](https://docs.microsoft.com/en-gb/xamarin/essentials/)
In order to disable this dialog one must set PrefersEphemeralWebBrowserSession = true in the WebAuthenticatorOptions as shown below.

```
var url = new Uri("https://mysite.com/mobileauth/Microsoft");
var callbackUrl = new Uri("myapp://");
var authResult = await WebAuthenticator.AuthenticateAsync(new WebAuthenticatorOptions
    {
        Url = url,
        CallbackUrl = callbackUrl,
        PrefersEphemeralWebBrowserSession = true
    });

```
I have not tested with anything other than IOS simulators and physical IOS devices.

Hope this helps anyone that tries to find a way to do this as I have found a few people out there asking this question.
Add new dictionaries with translations to NestJS application using poedit.net
Tags: kaufmanbot, nestjs, translates, poedit
Published: 2022-03-08 21:18:06

## Links

https://poedit.net/ - desktop editor for po dictionaries 

https://telegram.me/DevelopKaufmanBot - current bot in telegram

https://github.com/EndyKaufman/kaufman-bot -source code

## Prepare

Add required libraries if they were not previously installed
> npm i --save-dev rucken
> npm i --save class-validator-multi-lang

Update scripts in package.json if not changed before
```json
  "scripts": {
    ...
    "rucken": "rucken",
    "generate": "npm run rucken -- prepare --locales=en,ru && npm run lint:fix"
    ...
  },
```
## Using Poedit to create dictionaries with translations

Start preparing and generating the necessary files
> npm run generate

Install the translation software for your operating room from https://poedit.net/

I installed for Ubuntu operating system

Run the program and select catalog manager
![Run the program and select catalog manager](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/05em4xgpk00xu4zj5smn.png)
 
Add folder with project
![Add folder with project](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bosjdi5twqu6dhboi0uy.png)

Set name of project
![Set name of project](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iw74hxo79jncof94vbfx.png)

Add libs and apps folders
![Add libs and apps folders](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pq0og3rw6rl9g2a0zerh.png)

We see all possible translations
![We see all possible translations](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lz8tzmzd3r2xnjdcmlzr.png)
 
Click on the line with a red circle where not everything is translated
![Click on the line with a red circle where not everything is translated](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/66dbf70b8voxvgk5tsxo.png)

Select suggestion or enter you version of translate
![Select suggestion or enter you version of translate](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/leb6gsg48nq65ccuzcr0.png)
 
Update all dictionaries
![Update all dictionaries
](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/id3qzkd2zodfqnxlxlf5.png)
 
Run preparing and generating the necessary files
> npm run generate

![Run preparing and generating the necessary files](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yu7wtxkfsf0r0ds245mi.png)
 
Test from telegram
![Test from telegram](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1n3xnkrullwdoyros73a.png)
 
Switch language in telegram
![Switch language in telegram](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b3ztv9udemgizi7567ky.png)
 
In the next post I will use nestjs-custom-injector...
Question: Importing Error with Flask and Cucumber
Published: 2022-03-08 21:15:21

---
title: Question: Importing Error with Flask and Cucumber
published: true
description: Question: Attempting to import methods into cucumber test results in "No module named 'blueprints' " error - Cucumber Test, Python, Behave
tags: 
//cover_image: https://direct_url_to_image.jpg
---
I am working on a project with the following tree structure:

```
Project
  - Source
  - Web
       - test
         - features
            testing.features
         - steps
            testing.py
       - app
         - __init__.py
         - blueprints
            communication_bp.py
```

I am working on a cucumber test code using the behave module and the folder I am working on is the test folder, which include features and steps.

What I am trying to do is to import some methods found in `communication_bp.py` from the app folder into the cucumber test file `testing.py` in python.

So Line 3 is what I am trying to achieve.

**testing.py:**

    from behave_restful import *
    import requests
    from blueprints.communication_bp import client_comm

 but I keep getting this error.


      File "../steps/testing.py", line 3, in <module>
        from blueprints.communication_bp import client_comm
    ModuleNotFoundError: No module named 'blueprints'

Based on what I have read, the app folder is supposed to have `__init__.py`, which it does.
 
I will include what both this file and `communication_bp.py file` here as well.

**__init__.py**

    from flask import Flask
    from flask_cors import CORS
    from flask_jwt_extended import JWTManager
    from flask_socketio import SocketIO
    
    # Create the Flask application
    rest = Flask(__name__)
    ...
    ...
    from app.blueprints.communication_bp import communication_bp
    ...
    ...

    rest.register_blueprint(communication_bp, url_prefix = Config.API_PREFIX)
    ...
    ...


**communication_bp.py**

    import sys
    import json
    from flask import Blueprint, request
    ...
    ...


So what exactly does this program wants? What am I missing here?
Pihole or AdGuard Home as DHCP server with UFW enabled.
Tags: pihole, dhcp, ufw, firewall
Published: 2022-03-08 21:06:00

In order to do this you need a couple of things first.

- UFW installed.
- UFW disabled.
- Pihole or AdGuard Home installed.
- Pihole or AdGuard Home set on a static IP configured on the machine itself.
- Pihole or AdGuard Home set to lease DHCP.
- Know your DHCP pool.

Your DHCP pool is essentially your router IP with a 0 replacing the last digit. So it could be `192.168.1.0` or `192.168.254.0` in my case it is `10.0.0.0` once you have this, we can setup UFW. If you SSH into your Pi-hole or AdGuard Home hosting device remotely this will block that connection, so you will have to manually specify allow incoming on the port you have SSH on, and I beg you to move it off of port 22. Follow along below.

- `ufw disable`
- `ufw default deny incoming`
- `ufw default allow outgoing`
- `ufw allow from any port 68 to any port 67 proto udp`

These next two commands will vary depending on your local setup. For me my Ethernet connection is viewed as `etho1` on my AdGuard Home machine. However yours could be `eth1` or `enspo0` you will have to determine this yourself, it will also vary if you're using a wireless connection.

Run `ip a` to find the name of your connection, `lo` is loopback and not the one to use, I will use my `etho1` for the commands below. Also, I will use `192.168.1.0` for the example command, you will have to change those numbers to match your config.

- `ufw allow in to 192.168.1.0/24`
- `ufw allow in on etho1 from any port 68 to any port 67 proto udp`
- `ufw reload`
- `ufw enable`

Now `ufw` is running, allowing Pihole or AdGuard Home to correctly lease DHCP, blocking external connection attempts to this device, allowing local devices to utilize it, and everything is working as it should be.

AdGuard & Pi-hole Discord: https://discord.gg/VzThBmB
Nevertheless, Cher Coded in 2022
Tags: wecoded
Published: 2022-03-08 20:52:12

I wanted to make things more inclusive, welcoming, diverse, and equitable for underrepresented people, so I fought for it, while I was programming software.

In 2022, that had work has begun to pay off with laws passing here in Washington state, and with shareholder proposals from $AAPL shareholders being approved related to that advocacy.

During this time, I was pushed out of a career I loved, and have been driven further into a financial hole. I have continued to try to get a job, writing a lot of sample code to prove I know how to program.

I've been told I am not a principal software engineer, didn't do any work at my last job, been called a diversity hire, and even had my existence questioned by a random stranger on HackerNews.

Neverthless, Cher coded.
Etiquetas que no debes olvidar en tus docs HTML
Tags: html, webdev, css, beginners
Published: 2022-03-08 20:51:38

Esta tarde me percate de algo curioso que pasa en VSCode.
Cuando trabajamos con HTML podemos usar el atajo `HTML:5` para que el editor cree por nosotros una estructura básica y empezar a trabajar.
Dicha estructura es la siguiente:

```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
```
No esta nada mal, pero dentro del `head` podemos agregar algunas etiquetas `meta` y `link` para complementar un poco más el documento y que se vea más profesional.

## La etiqueta `<meta>`
Contienen metadatos que no se ven en la web final pero que le sirven al documento para que se indexe mejor.
Por ejemplo:

```html
<meta name="author" content="Cristian Fernando">
```
Podriamos poner el autor de la página.

Y también una breve descripción de lo que la página contiene:

```html
<meta name="description" content="pagina web de prueba">
```

## La etiqueta `<link>`
Útil para enlazar `css`:

```html
<link rel="stylesheet" href="" type="text/css">
```
> _Importante poner `type="text/css"` ya que VSCode no lo hace por defecto._

Y también para poder establer un icon:

```html
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
```

La estructura mejorada se veria así:

```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="author" content="Cristian Fernando">
    <meta name="description" content="pagina web de prueba">
    <link rel="stylesheet" href="" type="text/css">
    <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
```
Quiza hay alguna manera que VSCode cree por defecto una página similar a esta, podriamos crear nuestro propios shortcuts también. Ya que da criterio de uno.

## **Referencias**

* https://www.youtube.com/watch?v=kUMe1FH4CHE
Why enterprise software is so bad?
Tags: programming, management, development
Published: 2022-03-08 20:44:20

---
title: Why enterprise software is so bad?
published: true
description: 
tags: programming, management, development
---

Why most enterprise apps are so bad? ... I was thinking about this recently. 

Both, MS Outlook and MS Teams are super slow on the Mac. It is noticeable that they are not native apps and they are buggy. For MS Teams sometimes even the cmd+Tab does not work. 

Another example are Jira and Confluence web applications. They both are very complex and require employee training. 

I believe, Microsoft and Atlassian have many smart developers, yet quality of these apps is ... off, why?

I've worked on complex applications and I noticed a certain requiring theme: 
- The stakeholders want to deliver on their imaginary deadline
- They find weird ways to reduce the budget

The result? > The pressure they create cascades to the developers. Maybe not all developers are skilled, or maybe they are distracted by the large amount of meetings thanks to agile. The quality of their work goes down and the new software quickly becomes yet another slow legacy system which is hard to maintain. 

The project becomes so painful that people start to leave. The new hires spend their energy to understand the mess, but eventually they get tired too and the circle continues. 

Of course, the salary is good, so there will be always somebody who is willing to struggle with that app for 2-3 years.

Maybe sometimes we could ask ourselves more often if we want to continue on this route... I think we always have a choice.

P.S. https://dev.to is an example of good software.