teleren/devto huggingface dataset:
Subtitles.ai - There is an ability in every disability
Tags: hackwithdg, python, deepgram, tkinter
Published: 2022-04-11 17:22:36

### Innovative Ideas Challenge

### Introduction

The Innovative Ideas category is an ideal choice where I want to leverage **_Deepgram STT_** to solve the problem for **Hard of Hearing Community(Deaf)**. I had experience with Deepgram as part of this hackathon where I have submitted one project leveraging Deepgram STT. Due to time constraints, I couldn't be able to submit the solution as a project, but want to bring to notice that with DG STT, real world problems can be solved.

### My Deepgram Use-Case

We all know we are in a Sound tech era and there is always a problem for deaf and people with some or other hearing problems (Hard of Hearing Community) where they face many challenges what the others are speaking it can be during phone call interactions, Zoom/Teams/Slack meetings, any YouTube video, any movie watching channel/video or even to listening to audio channels like Spotify etc.,.

With **_Deepgram STT_**, there comes the power where subtitles can be generated as generic way without integration with any apps like mentioned above.

An **_Windows App_** can be built using _**Python Tkinter GUI and Deepgram STT and via websocket programming**_, everything that is getting played/listened can be heard via Windows mic and generate the subtitles so that Hard of Hearing Community can enjoy keeping aside all their disabilities.

### Dive into Details

- In order to solve the problem for Hard of Hearing people, we can build an Windows (since its the OS majority of the users use) application which converts all sound apps with Subtitles under the bar which makes an effective solution for Hearing problem users.
- It converts any application sound that is getting played or listened (Youtube, Netflix, Prime, Spotify, Zoom/Teams call, any Video, any Audio etc.,.) to on Windows OS into Subtitles of any language preference the user have.
- Now using the  app, without disturbing their other apps, it displays Subtitles (leveraging Deepgram STT) near taskbar of Windows for any sound getting listened to or played to.
- It can also have the capability of displaying subtitles in any language the user prefers to.


### Conclusion

- **_With Deepgrams STT tech, there is an ability for every disability_**.
- Impacting the _Hard of Hearing community with a generic solution_ where they can leverage the app to full extent with DG STT.
- Expand the same solution for Mac, Linux, Android users.
Building a Team of PERL Developers at Amdocs
Published: 2022-04-11 17:19:58

Hey PERL enthusiasts!!
 
I am an IT Recruiter at Amdocs, North America and I am currently building a team of experienced PERL Developers for our Product Experience teams having a global footprint. I would love to connect with you to know your story as a PERL enthusiast and the future you're looking to build and design! 

Please connect with me over and share your story/profile
LinkedIn @ www.linkedin.com/in/santoshkumarsp
Email @ santoshkumar.srinivasapadmavathi@amdocs.com
Twitter  @santoshspsk1 

I would love to discuss with you the future story and these exciting opportunities at Amdocs!!

#amdocslife #makeitamazing
Crystal 1.4 Enumerable#tally now accepts an optional hash to count occurrences
Tags: crystal
Published: 2022-04-11 17:11:51

Enumeration refers to traversing, searching, filtering, and querying objects.

In Crystal, we have classes like `Array`, `Hash`, `Range`, etc. which get their enumeration features by including the [Enumerable](https://crystal-lang.org/api/latest/Enumerable.html) module.

This `Enumerable` module provides various methods e.g., `#select`, `#map`, `#reduce`, and `#uniq` which we frequently use, and less known `#tally` about which this post is.

`#tally` counts the number of occurrences of an element in a collection and returns a hash containing the count for all elements.

```crystal
['a', 'b', 'c', 'b'].tally # => {'a'=>1, 'b'=>2, 'c'=>1}
```

## Example

Consider the example of a list of words, and you want to count the total number of each char.

This type of problem is a perfect candidate to leverage our `#tally` method to calculate the total quantity of chars.

Consider you have words as follows:

```crystal
word_one = "crystal"
word_two = "ruby"
```

## Before

Calculating the quantity of chars in each word:

```crystal
tally_one = word_one.chars.tally
# => {'c' => 1, 'r' => 1, 'y' => 1, 's' => 1, 't' => 1, 'a' => 1, 'l' => 1}

tally_two = word_two.chars.tally
# => {'r' => 1, 'u' => 1, 'b' => 1, 'y' => 1}

total_tally = tally_one.merge(tally_two) { |k, v1, v2| v1 + v2 }
# => {'c' => 1, 'r' => 2, 'y' => 2, 's' => 1, 't' => 1, 'a' => 1, 'l' => 1, 'u' => 1, 'b' => 1}
```

We have merged `tally_one` and `tally_two` and summed hash values to get the combined count of the chars.

## After

To calculate the total, Crystal 1.4 `Enumerable#tally` [now accepts](https://github.com/crystal-lang/crystal/pull/11815) an optional hash to count occurrences.

In this case, we can store the running tally of the number of items and pass it to the `#tally` method.

```crystal
word_one = "crystal"
word_two = "ruby"

total_tally = {} of Char => Int32

word_one.chars.tally(total_tally)
word_two.chars.tally(total_tally)

total_tally
=> {'c' => 1, 'r' => 2, 'y' => 2, 's' => 1, 't' => 1, 'a' => 1, 'l' => 1, 'u' => 1, 'b' => 1}
```

As you can see in the above example in Crystal 1.4, we have passed the `total_tally` hash as an argument to the `#tally` method that stores the count of chars.

Finally, we can simplify the code to one line:

```crystal
words = ["crystal", "ruby"]

total_tally = words.reduce({} of Char => Int32) { |acc, word| word.chars.tally(acc) }
```
Divi vs Elementor: Was ist der bessere Page Builder für WordPress?
Tags: wordpress, elegantthemes, elementor, pagebuilder
Published: 2022-04-11 18:09:30

---
title: Divi vs Elementor: Was ist der bessere Page Builder für WordPress?
published: true
date: 2022-04-11 16:57:04 UTC
tags: WordPress,ElegantThemes,elementor,pagebuilder
canonical_url: https://bloggerpilot.com/divi-vs-elementor/
---

![Divi vs. Elementor: Was ist der bessere Page Builder für WordPress?](https://bloggerpilot.com/wp-content/uploads/2022/04/divi-vs-elementor-1.png)

Wenn es um den besten WordPress Page Builder geht, dann...

Der Original-Artikel erschien auf [Divi vs Elementor: Was ist der bessere Page Builder für WordPress?](https://bloggerpilot.com/divi-vs-elementor/).

Während Divi 4.4, das letzte große Update des beliebtesten WordPress Page Builders, genügend neue Funktionen bietet, um einen Blick wert zu sein, hat Elements, der andere beliebte Page Builder, ein eigenes großes Update erhalten. Wenn du erwägst, auf Divi oder Elements umzusteigen, wirst du einige Gemeinsamkeiten, aber auch einige Unterschiede zwischen den beiden Page Buildern feststellen.

Nachdem wir nun festgestellt haben, welche Page Builder wir verwenden sollten, wollen wir sie vergleichen. Weebly Page Builder Lists und Elementor Page Builder bieten beide Drag & Drop-Funktionen. Allerdings ist das Layout von Weebly breiter und das von Elementor schmaler. Weebly Page Builder Lists bietet die Möglichkeit, Tabellen, Videos, Bilder und Textfelder hinzuzufügen, was bei Elementor Page Builder nicht möglich ist.

Abschließend zeigen einige Tests, dass der Page Builder in Kombination mit WooCommerce schneller ist als die Leistungsprüfung des WordPress Page Builders.
Puppet and Perforce Joining Forces
Tags: puppet, perforce
Published: 2022-04-11 17:04:37

---
title: Puppet and Perforce Joining Forces
published: true
description: 
tags: puppet, perforce
//cover_image: https://direct_url_to_image.jpg
---

You may have seen the acquisition news already, but if not, take a moment to skim the [announcement](https://puppet.com/blog/an-open-letter-from-the-ceo-of-puppet).

You may be wondering how your engagement with the Puppet Community will change, especially if you're an open source user or an author of content on the Puppet Forge. Short answer is that it probably won't, but if you'd like to see more details you can check out our [Community FAQ](https://puppet.com/community/perforce/)

Join the conversation in the `#puppet-perforce` channel on our [slack](https://slack.puppet.com) if you've got more questions. We're always ready to chat!
The Power of SVGs
Tags: webdev, design, figma, svg
Published: 2022-04-11 17:00:04

Hello Hello!

Over the course of the past ten weeks, I have had the opportunity to work with a few of my peers on HaxTheWeb. In this project, we are working to create a fun experience for students and staff at our university to create course websites or portfolios [and its completely open source ;)]

My portion of this project is the overall design so I have been primarily working in Figma. Originally I created the interfaces below:

![HaxTheWeb Front Page Design](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/435pppt75qqplshqinu4.png)

This created the theme which spiraled into a video game aesthetic for this site. As I was procrastinating actual productive work, I created this little guy for fun.

![Dapper Guy](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iu7gwwieynvvuf5jb2w0.png)

This little guy then developed himself into an army of SVGs which gave birth to rpg-character. RPG Character, aka dapper little guy, spiraled into a seed based generator which will create a character based onto a username. 

##How RPG Character Works
This dapper lad is created through a series of SVGs. Originally, I was planning to just make a series of colored hats and skin tones that a user could select (as shown in this photo):

![Army of Dapper Lads](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6kvxh8mhavc581tt7a6q.png)

But the idea of creating a seed based generation which a series of outfits, hair, colors, and weird items occurred. Thus after a quick brainstorming session, SVGs were the solution.

####SVGs
With the base of an outline and background, I worked on creating a series of different assets that will populate (and stack) onto the base. A series of skin colors, faces, hats, clothes and items were created and then stacked into making the rpg-character which is implemented onto the website as a sort of guide as you build.

On my end however it is a series of organized chaos as shown in the image below.

![SVG assets](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fp55wre0dt7p1rtyz3sd.png)

As more was created more ideas began to flow and we began to add assets for 404 pages, a walking state (which can be a running state) and a longer hair option. This was actually a ton of fun to do an a massive learning opportunity.

##What I would add!
Unfortunately all good things must come to an end and I had to move my energy to another design portion of the website so rpg-character came to its end (for now). If you want to mess around with this character yourself you can use this nom page!

[**NPM**](https://www.npmjs.com/package/@lrnwebcomponents/rpg-character)
Announcing the launch of Doctolib’s public Bug Bounty Program
Published: 2022-04-11 16:56:46

 _After years of invitation-only activity, we are excited to launch our public Bug Bounty Program in partnership with [YesWeHack](https://yeswehack.com/)_

We believe that maintaining a visible crowdsourced security program helps us to build a sound cybersecurity posture, that’s why today we broaden our call to the global community of bug bounty hunters and security researchers.

![Explore our bug bounty program on YesWeHack](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sts92bx97rueza8c2r2b.png)

As a matter of fact, we offer higher rewards and exclusive challenges to our community such as bounty rewards-up to 20,000 EUR for critical issues, exclusive in-scope features, and hardware devices, invitations to live hacking events in France, and dedicated communication channels.

This decade will be marked by the growing importance of healthcare software and health data hosting. Therefore, we rely on a talented and creative workforce to report security weaknesses and vulnerabilities in our applications.

These efforts will benefit the product and engineering teams to deliver secure products and all of the findings serve to push our secure development workflow to be more resilient, scalable, and consistent over security reviews, hardening, and detection.

On our side, Doctolib’s application cybersecurity team is engaged to warmly welcome any security researcher within a safe harbor policy and offer the best triage experience in terms of response time, respect and expectation.

![We are excited to launch our public Bug Bounty Program in partnership with YesWeHack](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a319cy0fdytssmlvs4wq.png)

To know more about our bug bounty program, [explore our policy on Doctolib](https://www.doctolib.fr/sante/bug-bounty-program/) and [join the bug bounty program on YesWeHack](https://yeswehack.com/programs/doctolib-public-bug-bounty-program).

If you have any feedback, questions, or concerns, feel free to reach us at report@doctolib.com.

Doctolib's Cybersecurity team
How to use hooks in React Class components
Tags: react, javascript, webdev
Published: 2022-04-11 16:44:49

You're probably thinking, why on earth would anyone want to use a hook in a class based component, two words, legacy projects.

Hooks are cool and so are functional components, but if you're working on a 4 year old project that has loads of class-based components, you don't have the time to convert them to function based components. What's more, loads of newer libraries only use hooks. 

So if you want to keep a legacy project up-to-date, this is a really helpful technique. 

## The code

```jsx
import { Component } from 'react';
import { useNavigate } from 'react-router-dom';

class Login extends Component {
  render() {
    return (
      <>
        <p>My awesome component</p>
        <button type="button" onClick={() => this.#handleClick()}>
          Click here
        </button>
      </>
    );
  }

  #handleClick() {
    this.props.navigate('/dashboard');
  }
}

function addHookTo(Component) {
  function CompWithHook(props) {
    const navigate = useNavigate();

    return <Component {...props} navigate={navigate} />;
  }

  return CompWithHook;
}

export default addHookTo(Login);
```

Aaaaand that's it!

### Credit where credit is due
I could take all the credit and say my clever mind figured all this out but I actually saw it on the React Router website here -> https://reactrouter.com/docs/en/v6/faq#what-happened-to-withrouter-i-need-it

They have a good example on there of adding multiple hooks.


Anyway, I hope you found this useful.
Workflows Education – March 2022
Tags: nocode, workflows, automation, okta
Published: 2022-04-12 20:51:19

---
title: Workflows Education – March 2022
published: true
date: 2022-04-11 16:44:42 UTC
tags: NoCode,Workflows,Automation, Okta
canonical_url: https://maxkatz.net/2022/04/11/workflows-education-march-2022/
---

I have been publishing Okta Workflows educational content and resources- articles, videos and tips. In this blog post I’m going to share everything I published in March 2022 so it’s easier to find (and bookmark).

[![Okta Workflows](https://katzmax.files.wordpress.com/2022/04/workflows_resources_march2022.png?w=1024)](https://katzmax.files.wordpress.com/2022/04/workflows_resources_march2022.png)

## Workflows Tips

A collection of short and useful Workflows tips (and tricks).

- [Workflows Tips #10: Online Meetup Recording, New in Workflows, and Using Emojis 😎](https://dev.to/maxkatz/workflows-tips-10-online-meetup-recording-new-in-workflows-and-using-emojis-n4f-temp-slug-5815964)
- [Workflows Tips #11: Random 6-Digit PIN, Calling Okta API, and Sign-In Based on Location](https://dev.to/maxkatz/workflows-tips-11-random-6-digit-pin-calling-okta-api-and-sign-in-based-on-location-28l0-temp-slug-1095014)
- [Workflows Tips #12: Deprovisioning via Slack, Conditional Processing, Updating Last Login, and a Keyboard Shortcut](https://dev.to/maxkatz/workflows-tips-12-deprovisioning-via-slack-conditional-processing-updating-last-login-and-a-keyboard-shortcut-kop-temp-slug-6572215)
- [Workflows Tips #13: Six (Awesome) Tips for Using If/Else Logic](https://dev.to/maxkatz/workflows-tips-13-six-awesome-tips-for-using-ifelse-logic-2a5p-temp-slug-1314794)

## Online Meetup Replays

Online meetup recordings.

- [Meetup Replay: Introduction to Okta Workflows](https://dev.to/maxkatz/meetup-replay-introduction-to-okta-workflows-5c6b-temp-slug-1363061)

## Guides & Tutorials

New guides and tutorials.

- [Guide: Using Okta Workflows to Automate User Deprovisioning via Slack](https://dev.to/maxkatz/guide-using-okta-workflows-to-automate-user-deprovisioning-via-slack-5bmc-temp-slug-4239448)

## Templates

Pre-built solutions that you can add to your Workflows console.

- [Workflows Template: Trigger Automatic Notifications When All MFA Factors Are Reset](https://dev.to/maxkatz/workflows-template-trigger-automatic-notifications-when-all-mfa-factors-are-reset-27b3-temp-slug-1419830)
- [Workflows Template: Identify inactive Okta users](https://dev.to/maxkatz/workflows-template-identify-inactive-okta-users-7hm-temp-slug-450526)
- [Workflows Template: Create a Report with Google Sheets](https://dev.to/maxkatz/workflows-template-create-a-report-with-google-sheets-3n05-temp-slug-9319759)

## New in Workflows

New features and benefits.

- [New in Workflows: AWS and Secure Code Warrior Connectors, and Five New Templates](https://dev.to/maxkatz/new-in-workflows-aws-and-secure-code-warrior-connectors-and-five-new-templates-2m1a-temp-slug-6832992)

* * *

⭐️ Bonus: The best collection of all the [Workflows resources](https://dev.to/maxkatz/okta-workflows-resources-1ebi) you will need.
Day-63 Training At Ryaz
Tags: javascript, webdev, beginners, programming
Published: 2022-04-11 16:36:50

Date:11/04/2022
Day:Monday

Today, I started with at about 10:30 pm as I was done with cloning the game and do certain changes with it to understand the basic concepts of Dom data object model so, firstly the instructor advised to do certain changes in high scores so to implement it I used the if else loop to implement it so, I used the logic that if certain score is higher than the highest score so, the number is the highest score so, this way I implemented it after this the instructor guided to re implement the guess part so, if our number is close to the number so, it passes the complement that you are close to exact number and if we put number that is far away from the exact number so, it passes comment that your number is too away from exact number then the instructor shifted towards modal window it was basically the website with a dialog box appearing on loading and after this we have three model buttons on the web page and if we click the respective button so, it displays the certain information so, the the instructor guide to integrate the escape key in the web page i.e he guided to wrote the function respectively and on triggering the escape button we get the function called. so, this way my day ended up and I got to learn many new things.
Shell command options you didn't know you needed #6
Tags: bash, linux, unix
Published: 2022-04-11 16:22:41

Been a while, but here's a handy one I discovered over the weekend.

Back to the trusty `xargs`, that rather blunt and brutish chainsaw for processing a long list of files or whatever that someone gave you.

In this case, I had a list of files that I knew with 99%+ certainty were created on our old server and thus encoded in `iso-8859-1`, contained characters that were represented differently in `utf-8` (which we had switched to on our new server) and needed converting, and a handy script wrapper around `iconv` to do one file at a time. 

All 41,000 of them. The list took four hours to generate, during which time I was pondering the fact that I really should have taken advantage of the fact that, usefully, the new server has 40 cores of Xeon goodness. So we ought to be able to parallel process this list now we've got it, right? And ideally without bothering with GNU Parallel or Perl's `Parallel::ForkManager`?

Turns out we can!

`xargs -P <n>` (if supported on your OS) runs the commands generated by `xargs` in n-way parallel.

So:

`cat <list of 41K files> | xargs -n 1 -P 100 <iconv wrapper>`

We need the `-n 1` as the wrapper only takes one file at a time, and this is how we tell `xargs` that. Deep breath. Hit RETURN.

Whoosh. Load on server briefly rockets to 45, then falls just as fast to its steady 1 and a bit. In about one minute flat, for all 41,000 files.

Not bad.
Django Redirect to home page if User is try to go login Page (If user is authenticated)
Published: 2022-04-11 16:16:35

**login.html**

```html
{% block content %}
    {% if user.is_authenticated %}
        <meta http-equiv="REFRESH" content="0;url=/">
    {% else %}
        <form method="POST">
    {% csrf_token %}
    {{ form|crispy }}
    <button type="submit" class="btn btn-outline-info">LOGIN</button>
        <a href="{% url 'register' %}">SIGN UP</a>
    </form>
    {% endif %}
{% endblock %}
```
Django User Register
Published: 2022-04-11 16:06:37

**register.html**

```html
<form method="POST">
    {% csrf_token %}
    {{ form|crispy }}<br>
    <button type="submit">Sign Up</button>
    <a href="{% url 'login' %}">Login</a>
    </form>

```
**forms.py**

```python
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.forms import User

class registerForm(UserCreationForm):
    email = forms.EmailField()

    class Meta:
        model = User
        fields = ['username', 'password1', 'password2', 'email']

    def __init__(self, *args, **kwargs): (This function is for remove help text at Django native register Form)
        super(registerForm, self).__init__(*args, **kwargs)

        for fieldname in ['username', 'password1', 'password2', 'email']:
            self.fields[fieldname].help_text = None
```
**views.py**

```python
from django.shortcuts import render, redirect
from .forms import registerForm
def registerPage(request):
    if request.method == 'POST':
        form = registerForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('/login')
    else:
        form = registerForm()
    return render(request, 'app/register.html', {'form': form})
```
**urls.py**

```python
from django.urls import path
from . import views

urlpatterns = [
    path('register/',views.registerPage,name='register'),
]

```
**Enjoy !!**