teleren/devto huggingface dataset:
DevOps and the T-Shape expert
Tags: devops, tshape, skills
Published: 2022-04-08 10:17:59

Last year I attended and internal meeting with our UX team and while talking to the team, we touched on a very interesting question:

**How do you define a “great DevOps engineer”?**

If you ask five different people, I am sure you would get at least six different answers 🙂

So, without trying to “answer” the question but still covering parts of it, let’s try to look at what DevOps actually is and means. 

The conversation on the meeting started with a colleague asking for some support around “DevOps” tasks that were needed to perform certain activities around release activities. I pushed back on him, pointing out that for me, everyone should have a little bit of “DevOps” knowledge – but re-defining these “DevOps” tasks as being “Automation Tasks”.

I very much enjoyed the conversation, and it reminded me of something that I’ve leared during my [DevOps master certification](https://www.exin.com/certifications/exin-devops-master-exam) in 2019:

**A “great DevOps engineer” has a T-shaped skills profile.**
So what does that mean?

A “T-shaped skills profile” is easily explained: Think about the “old” traditional way of combining an engineering team, you had “Analysts”, “Programmers” (Developers), “Test Engineers”, “Web Designer”, “System Engineer” (build automation, scripting, etc.).

In that case, you had the problem that you hit the “bottle neck” with certain skills during different phases of the project, e.g. the “Test Engineers” needed to work vey long hours right before the next release of your piece of software. That was obviously bad for the overall outcome of the team.

![T-Shaped Skills](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/22i5gf9bc2ss9ligvora.png)

However, if you manage to compose your team with people that have a very broad knowledge base for different skills and a small amount of skills where they are experts, your team becomes more efficient because you can support each other in these “clunchy situations”, e.g. “developers” can pick up a bit of “QA work” right before the release date.

![T-Shaped team model](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ihezhckpllb9sgmf4xe7.png)
**So, what does this mean for you?**

1. Be aware of your “expert” skills
2. Practices the skills, where your team is “weak” at, to become better at it and broaden your teams capabilities

**Why do we need teams that consist of “T-shape-skilled” engineers?**

Because in the “DevOps culture”, its all about “collaboration” – and that is easier, if every team member understands what the “expert” is talking about, at least high level.
🦜 JS Text To Voice
Tags: text, voice, speech, api
Published: 2022-04-08 10:16:30

As you know  Web Speech API enables you to incorporate voice data into web apps. The Web Speech API has two parts: 
SpeechSynthesis (Text-to-Speech), and 
SpeechRecognition (Asynchronous Speech Recognition).

Using [Speech Synthesis Utterance](https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisUtterance) you can create a super simple Html Css and Javascript 'Text To Voice' Web App,

For the HTML part, you just need an input field and a button, like this

```
<div class="container">
        <div class="box">
            <h1>🦜 Text To Voice</h1>
            <input class="text" type="text" placeholder="Text To Voice">
            <button class="play">Play</button>
        </div>
    </div>
```

For the javascrit part you just need to instantiate a new _**SpeechSynthesisUtterance**_ interface of the Web Speech API that represents a speech request, then you need to add the content the speech service should read and information about how to read it (e.g. language, pitch, text and volume, like this

```
let utter = new SpeechSynthesisUtterance();
utter.text = 'Hello World';
utter.volume = 0.5; // From 0 to 1
// utter.lang = 'us-EN';
utter.voice = voices[33]; // 33 english voice, 53 it
```
Now to transform the text into voice 🎤, you can use _speechSynthesis speak_ method, like this;

```
window.speechSynthesis.speak(utter);
```

Finally, through the use of _events_, you can create a nice user experience!

```
 // START EVENT LISTENER
       utter.addEventListener('start',()=>{
        if(window.speechSynthesis.speaking){
            play.classList.add('active');
        }
        });
```

This is a super fast [video guide](https://youtu.be/F2FNZOa2znk).
👋
Monitoring Business Central performance with Azure Troubleshootings Guide (preview)
Published: 2022-04-08 10:13:02

To analyze performances issues in Business Central, top entry points are for sure [Telemetry](https://aka.ms/BCtelemetry) and Troubleshooting Guides delivered as [Jupyter Notebooks](https://github.com/microsoft/BCTech/tree/master/samples/AppInsights/TroubleShootingGuides).

Jupyter Notebooks are provided as .ipynb files (Performance-overview-TSG.ipynb for example) : these files requires Azure Data Studio, kqlmagic library, etc. (with state of the art .ini configuration files :-)

I'm not a big fan of using desktop resources to analyze performance of SaaS environments... so I jumped into **online Troubleshooting Guides**. This feature is still in **preview** but quite stable honestly.

The feature is available in the Azure Application Insight resource and fully replace Jupyter Notebooks as you can aggregate KQL queries in a very similar way.

![Jupyter Notebook](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l7uqekv1kevkfsvs5b99.png)
 
So we went to "copy/paste" existing KQL queries from Jupyter notebooks/samples into a single online Troubleshooting Guide, most of them regarding performance like Long Running queries (RT0005), Database locks (RT0012), AL Performance (RT0018)...
 
Apart that it's an online feature (with by-design benefits), we liked the ability to consolidate Tenant ID/environments and the usage of Parameters block to filter events on Tenant ID, environment, company, client type, object type/ID, ... 

![Jupyter Notebook](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i3krmkfaspsg2ymicepg.png)
 
You can obviously mix graphics and data parts, and all data can be downloaded in raw files in case of.

![Troubleshooting Guide Performance](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y54ty3yvbk6wgyoqdda4.png)

![Download Data](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3tnqk1w97e5fpuzpfg0y.png)
  
On top of this, it's very easy to deploy as the Troubleshooting guide is a single JSON file that you import into any Azure Tenant/Application Insight resource...
Setup CircleCi on Android repo
Tags: android, devops, github
Published: 2022-04-08 10:06:14

Created [this](https://youtu.be/JtW29fqNPC8) intro video showing how to setup circleci environment for an android project. Also an accompanying post [here](https://medium.com/@SmileEgbai/setting-up-circle-ci-for-android-github-repo-7bade7c93b1d) on the same process
Javascript puzzle - seal the secret
Tags: javascript, puzzle, beginners, advanced
Published: 2022-04-08 10:02:49

Write a function `seal` that receives an input String `str` and "saves" the string.

When passing the exact String again it should return true, while passing any other argument it should return false.

```js
seal(str) // saved
seal(str) // true
seal(otherStr) // false
```


## Conditions:

The string should not be revealed when printing the function or any of it's properties via `toString`.

## Beginners:

- use any technique you like

## Advanced:

- the function should be self-contained and independent from any externals

## Note:

- don't expect a solution to be something usable for a production environment
What do you think about my JavaScript library?(CheaterJS)
Tags: showdev, javascript, webdev, programming
Published: 2022-04-08 09:28:05

Hello World!

So a few days ago, I made this JavaScript library called CheaterJS. Oh, and for the few of you who actually want to use it, here is a link:

[https://cheaterjs.com/](https://cheaterjs.com/)

So let's get back to the non-promotion part, CheaterJS is a utility library that basically contains a few basic functions to help you write code faster.

Nothing you can't do, just a function to generate a random number, another to do some simple maths, those sort of stuff. Oh, and it's open source, you can find it [here](https://github.com/AlbertY123/cheaterJS) on GitHub.

So I started this project a month ago, I put it on GitHub, did some collaboration, and yea, that's the story of CheaterJS! 

Trust me, it took a lot of effort to make it, but it's worth it as long as people use it.
testset བོད་ཡིག་ dsdf བབ Draft བོད་ཡིག་ dsdf བབ Draftབོད་ཡིག་ dsdf བབ Draft བོད་ཡིག་ dsdf བབ Draft
Tags: javascript, beginners, tutorial, react
Published: 2022-04-08 09:27:06

fesfsefse
DevTips Daily Update 08/04/22
Tags: javascript, beginners, tutorial
Published: 2022-04-08 09:15:38

So this week we finished off the Rick and Roll full end-to-end project! 🎉

It’s taken a while and we’ve covered everything from design to devops to developing the app, hopefully you’ve leant a few things about creating and deploying an app.

Also, we returned to business as usual delivering juicy little bite-size dev tips about touch support, emojis as favicons and spellchecking (check out the new thumbnail style below 👇):


[DevTips Daily - Rick and Roll Project - Creating a responsive view](https://youtu.be/u0Kiz0IHobA)
{% youtube u0Kiz0IHobA %}

[DevTips Daily - Rick and Roll Project - Creating an offscreen navigation for mobile views](https://youtu.be/jfjcZcAl6Dg)
{% youtube jfjcZcAl6Dg %}

[DevTips Daily - Rick and Roll Project - Toggling an offscreen navigation menu](https://youtu.be/vclovxgyrYk)
{% youtube vclovxgyrYk %}

[DevTips Daily - Rick and Roll Project - Finale!](https://youtu.be/PI3TZVOhGeo)
{% youtube PI3TZVOhGeo %}

[DevTips - Detecting touch support in JavaScript](https://youtu.be/-3XdJxVm4C4)
{% youtube -3XdJxVm4C4 %}

[How to use emojis for favicons](https://youtu.be/V35_ybFs5t8)
{% youtube V35_ybFs5t8 %}

[Spellcheck user input with just HTML!](https://youtu.be/OI85pDxwIf8)
{% youtube OI85pDxwIf8 %}


More next week!

Thanks for watching 👍
Goodbye AWS ElastiCache and Hello amazon MemoryDB - configuration and basic usage
Tags: cache, aws, programming, elasticache
Published: 2022-04-08 09:14:17

In this article, we are going to Goodbye [AWS](https://blog.canopas.com/sending-email-using-aws-simple-mail-service-ses-and-static-templates-with-golang-fa3b36da7230) ElastiCache and Hello amazon MemoryDB - configuration and basic usage.

Caching is what makes our lives easy as a developer. We are not going much deeper in this though, if you want to know more about caching, please have a look at [what is cache? how does it work?](https://blog.canopas.com/what-is-caching-how-does-it-work-4dd0f642a1d1)

But what if we have something ready to use as a replacement for Redis? 

Yes, your assumption is correct, we are talking about one [AWS](https://blog.canopas.com/send-mails-using-ruby-on-rails-action-mailer-and-aws-sdk-ses-gem-without-using-smtp-67fac83e0455) Module which finely serves the role of Redis, named — MemoryDB.

Elasticache is also there to serve us as the Redis does. But in this post, we will go through MemoryDB — its basic usage and configuration.

You can read full article here [https://blog.canopas.com/goodbye-aws-elasticache-and-hello-amazon-memorydb-configuration-and-basic-usage-9ca3b56d831c](https://blog.canopas.com/goodbye-aws-elasticache-and-hello-amazon-memorydb-configuration-and-basic-usage-9ca3b56d831c)
Transaction without wallet provider
Tags: blockchain, javascript, webdev
Published: 2022-04-08 08:54:14

Hey guys ! I'm currently working on a project, and i'd like to know if this is technically possible: 

I'd like my user to create an account and be able to buy / sell NFTs on my platform ONLY without using any wallet provider (Metamask, Binance Wallet etc...).

I know that i can create an ETH address for them, and i've read some interesting stuff about Escrow, but no one seems to ever have wondered about this. Is it technically possible ?

Thanks a lot for your responses, have a nice day !
調整 Jupyter Lab/Colab 中 markdown 儲存格的字體大小
Tags: jupyter, colab, markdown, python
Published: 2022-04-08 08:47:13

在 Jupyter Lab 或是 Colab 下, markdown 儲存格的字體不大, 像是底下這個表格：

![過小的字體](https://i.imgur.com/Omv4CX1.png)

對於老花眼族群實在很不友善, 看起來非常辛苦, 本文就說明如何調整 markdown 儲存格的字體大小。

## Jupyter Lab

Jupyter Lab 可以透過[儲存格魔法 (cell magic)](https://nbviewer.org/github/ipython/ipython/blob/1.x/examples/notebooks/Cell%20Magics.ipynb) 加入 HTML 標籤更改 CSS 設定, 讓表格的字體變大。請新增一個 code 儲存格, 鍵入以下內容：

```htmlembedded=
%%HTML
<style>
td, th {
  color: green;
  font-size: 24px;
}
</style>
```

第一行的 `%%HTML`(小寫 html 也可以) 是 Jupyter 的儲存格魔法功能, 可以執行 HTML, 這裡我們將表格中的 \<td\> 以及 \<th\> 元素都使用 CSS 修改成綠色、24 點的字體大小, 執行之後實際的效果就會是這樣：

![放大變色的字體](https://i.imgur.com/McggN6a.png)


這個包含有 HTML 的儲存格並不一定要放在 markdown 的儲存格之前, 只要執行就可以生效。

## Colab

Colab 沒辦法使用 Jupyter Lab 的儲存格魔法功能, 只能用變通的方法, 在文字的前後使用過時的 HTML \<font\> 標籤調整字體大小, 像是這樣：

![用 HTML 標籤變大的字體](https://i.imgur.com/Bd8554H.png)

不過這樣加標籤實在很辛苦, 所以我寫了一個簡單的網頁, 可以幫你自動為 markdown 內的文字加上特定字體大小的 \<font\> 標籤, 你可以到 https://editor.p5js.org/codemee/sketches/J9aVrHPhp 這裡使用：

![簡便的工具](https://i.imgur.com/eLzMX9W.png)

在上方輸入 markdown 後, 底下就會出現加上字體標籤的 markdown, 複製貼到你的 Colab 文字儲存格中, 就可以得到大字體的輸出了。

如果你有興趣, 也可以按右上角的按鈕後進入 [P5.js Web Editor](https://editor.p5js.org/codemee/sketches/J9aVrHPhp) 線上開發環境複製專案修改, 它使用了 [maked](https://marked.js.org/) 這個 JavaScript 套件解析 markdown 文件, 還蠻好用的。
Missing Webpack Loader Running Cypress test with React
Tags: react, cypres, webpack
Published: 2022-04-08 08:40:33

I am trying to run cypress test cases headless using cmd command

npx cypress run
But it gives me below error -

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

Do I need to install any dependency for this to load. Even css files are not getting loaded.

Also, do I need to create webpack config separately.

 I installed css-loader and style-loader as dev dependency, and created webpack.cypress.config.js with below contents - 

```
module.exports = {
    module: {
      rules: [
        {
          test: /\.css$/i,
          use: ["style-loader", "css-loader"],
        },
      ],
    },
};
```

But this is not working.
Food Project: Starting from the concept
Published: 2022-04-08 08:20:27

Disclaimer: This is really more of a personal blog. If things go well and I start to share these documents, perhaps I will come back to clean these up.

## Introduction

This is my first personal project and dev log!

The goal here is to document my thought processes as I work through the project, not only as a way to reflect on decisions I made later down the line, but also to be able to use some of these documents as a guiding light if needed.

## Problem Statement

Ratings on Google Maps - as far as I'm aware - are not guided by any sort of recency. 

This means even if a restaurant has decreased drastically in quality recently, it may still appear to be highly rated based on its past ratings.

## Project Concept

To provide the functionality of isolating the ratings of restaurants within a certain time period rather than over the course of its entire history.

This will allow users to judge a restaurant based on its 'recent' rating, where the acceptable time period is determined by user discretion.

#### Targeted Core Features:

1. View a restaurant's rating based on reviews over a specified time period

#### Targeted Extra Features:

1. Observe trends in restaurant popularity based on the number of reviews it has received over a specified time period
2. Observe trends in restaurant quality based on the increases or decreases of rating over a specified time period

#### Limitations:

1. Scope of data will be limited to Singapore.
2. Initial source of data will be limited to Google reviews, and will not include other review sources.
3. Only observe up to the N most popular restaurants in specific locales around Singapore.
    1. This is mostly due to how Google search and the SERP API works, preventing us from being able to just get data for all restaurants in Singapore.

#### Concerns:

1. Scope should be limited so that the initial product can be completed quickly.
2. Expenditure should be minimized as far as possible, as there is no plan to profit off this project.
How to cancel a setTimeout in JavaScript
Tags: javascript
Published: 2022-04-08 08:13:26

`setTimeout` in JavaScript is a native function that sets a function to be executed when a specified timer completes.

Here's the syntax:

```js
setTimeout(function, timer)
```

`timer` is in milliseconds. Here's an example where we do something after two seconds:

```js
setTimeout(() => {
  console.log("hey...I'm 2 seconds in")
}, 2000}
```

## Cancelling a setTimeout

You may not want a setTimeout to complete for various reasons. One reason can be [cleaning up side-effects in React useEffect](https://dillionmegida.com/p/why-you-should-cleanup-when-component-unmounts/). So how do you stop it? Here's how...

The `setTimeout` function returns an `id` when declared:

```js
const timeoutId = setTimeout(() => {}, 1000)
```

With this `id` and the [`clearTimeout`](https://developer.mozilla.org/en-US/docs/Web/API/clearTimeout) JavaScript function, you can cancel a `setTimeout`.

Here's the syntax of the `clearTimeout` function:

```js
clearTimeout(timeoutId)
```

With this, we can have:

```js
const timeoutId = setTimeout(() => {
  console.log("hey...I'm 2 seconds in"
}, 2000}

// later on

clearTimeout(timeoutId)
```

If the `setTimeout` declaration has not been completed, the `clearTimeout` function will cancel it, and the callback function will not be executed anymore.
Cursed detector - DeepGram
Tags: hackwithdg, javascript, node
Published: 2022-04-08 07:56:43

### Overview of My Submission

Just upload any audio file and click on the Check button. Application with the help of deepgram api will detect if the uploaded audio contains any vulgar or cursed words.

### Submission Category:
Walky Wildcards

### Link to Code on GitHub
{% github https://github.com/Seek4samurai/CursedDetector %}
{% github https://github.com/Seek4samurai/CursedDetector_backend %}

### Introduction

I love to participate in programming or developer events whether it be online or offline. I really loved working with deepgram, thanks to this hackathon event and Dev.to

### My Deepgram Use-Case

I've seen some javascript packages that are used to hide or censor the NSFW content. But I decided to make a similar type of application that does the same but to audios.
And I think Deepgram would be the best thing here to use. I used nodejs, express server and multer for my backend to integrate the api.

Live : [To Cursed Detector](https://curseddetector.netlify.app/)

### Dive into Details
The application takes an input of audio file and checks if there are any vulgar or bad words, and notifies the user about that.

### Conclusion
Thanks for conducting this event, I really loved working with deepgram as it is one of the best and easiest transcript package which could be of so use.
Skills Required to learn Data Science
Tags: datascience
Published: 2022-04-08 07:41:42

To understand data science, one needs to understand the conception of machine literacy. [Data science](https://insideaiml.com/course-details/Data-Science-Master-Program-in-gurgaon) uses machine learning algorithms to answer varied problems.
A fundamental understanding of statistics is needed, similar to mean, median, or standard deviation. It's required to extract knowledge and attain better results from the data.
Mathematical modelling is needed to make fast mathematical computations and forecasts from the available data.
Prime Number Generation Part 2: Deterministic Miller Test For Primality
Tags: cpp, algorithms
Published: 2022-04-08 07:39:14

Uses the deterministic Miller test and can test primality for values up to 2^32.
CountPrimes will count primes up to and including a value.
CountPrimesParallel will count all primes up to an exponent of 2 in parallel.

```
#include <iostream>
#include <ppl.h>

//Primes to test against
int witness[] = { 2, 7, 61 };

//number of primes up to exponents of 2
int pp[] = { 1, 2, 4, 6, 11, 18, 31, 54, 97, 172, 309, 564, 1028, 1900, 3512, 6542, 12251, 23000, 43390, 82025, 155611, 295947, 564163, 1077871, 2063689, 3957809, 7603553, 14630843, 28192750, 54400028, 105097565, 203280221 };

inline uint64_t Powmod(uint64_t n, uint64_t e, uint64_t m)
{
    uint64_t x = 1;
    while (e > 0)
    {
        if (e & 1)
            x = x * n % m;

        n = n * n % m;
        e >>= 1;
    }
    return x;
}

// See https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test.
// A direct translation of the deterministic Miller test, NOT the probabilistic variant.
bool MillerTest(uint64_t n)
{
    uint64_t d = n - 1, r = 0;

    while (!(d & 1))
    {
        r++;
        d >>= 1;
    }

    for (int i = 0; i < 3; i++)
    {
        uint64_t a = witness[i];
        uint64_t x = Powmod(a, d, n);

        //triggered if prime is in witness list
        if (x == 0)
            return true;

        if (x == 1 || x == n - 1)
            continue;

        uint64_t j;

        for (j = 1; j < r; j++)
        {
            x = x * x % n;

            if (x == n - 1)
                break;
        }

        if (j == r)
            return false;
    }
    return true;
}

//Count primes up to a specified unsigned 64 bit integer..
void CountPrimes(uint64_t limit)
{
    uint64_t count = 0;
    time_t t1 = time(0);

    for (uint64_t i = 3; i <= limit; i += 2)
        if (MillerTest(i))
            count++;

    std::cout << "There are " << count + 1 << " primes up to " << limit << " " << time(0) - t1 << " seconds." << std::endl;
}

//Count primes up to a specified power of 2 in parallel.
void CountPrimesParallel(uint64_t exponent)
{
    time_t t1 = time(0);
    const uint64_t x = exp2l(exponent) / 2;
    std::atomic_uint count = 0;

    concurrency::parallel_for(uint64_t(1), x, [&](uint64_t a) {
        if (MillerTest(a * 2 + 1))
            count++;
        });

    std::cout << "Exponent " << exponent << " " << x * 2 << " Result " << count + 1 << " Expected " << pp[exponent - 1] << " " << time(0) - t1 << " seconds." << std::endl;
}

int main()
{
    //CountPrimes(512);

    //2^32 is max value that can be tested
    CountPrimesParallel(32);
}
```