teleren/devto huggingface dataset:
Building a Notifications client with Xamarin and Azure - Part 3
Tags: azure, tutorial, webdev, xamarin
Published: 2020-09-15 10:34:40

#### 📺 021 - Laurent Bugnion 🎙️ Frank Boucher

{% youtube 3kihzhNbjCY %}

---

## Adding the Azure Functions endpoint

In our [last episode](https://blog.allaroundazure.com/post/2020-07-14-building-a-push-notifications-client-using-azure-and-xamarinpt2/), we configured the Windows application to receive notifications, and we created the Azure Notification Hub which is the central piece of our notification system. We ended the session by testing sending a notification to the Windows application.

However we ran out of time and couldn't finish adding the Android application to the [Notification Hubs](https://docs.microsoft.com/en-us/azure/notification-hubs/?WT.mc_id=allaroundazure-devto-lbugnion). This will be the start of this session.

After this is complete and tested, we will add the Azure Functions endpoint. This HTTP endpoint will be the point of entry to the whole system, and will make it easy to send push notifications to your own devices from any long running system such as logic apps, other Azure Functions, websites, server-side activities like video encoding etc. This will all be done from Visual Studio (the super powerful IDE for Windows).

---

### Useful Links

🔗 [Windows Push Notification Services](https://docs.microsoft.com/en-us/windows/uwp/design/shell/tiles-and-notifications/windows-push-notification-services--wns--overview?WT.mc_id=allaroundazure-devto-lbugnion)

🔗 [Notification Hubs Windows Store .NET Get Started Push Notifications](https://docs.microsoft.com/en-us/azure/notification-hubs/?WT.mc_id=allaroundazure-devto-lbugnion)

🔗 [Azure Notification Hubs](https://docs.microsoft.com/en-us/azure/notification-hubs/?WT.mc_id=allaroundazure-devto-lbugnion)

🔗 [Create Notification Hub Portal](https://docs.microsoft.com/en-us/azure/notification-hubs/create-notification-hub-portal?WT.mc_id=allaroundazure-devto-lbugnion)

🔗 [Notification Hubs](https://azure.microsoft.com/en-us/services/notification-hubs/?WT.mc_id=allaroundazure-devto-lbugnion)

🔗 [Notification Hubs Pricing](https://azure.microsoft.com/en-us/pricing/details/notification-hubs/?WT.mc_id=allaroundazure-devto-lbugnion)

🔗 [Badges](https://docs.microsoft.com/en-us/windows/uwp/design/shell/tiles-and-notifications/badges?WT.mc_id=allaroundazure-devto-lbugnion)

🔗 [Adaptive Interactive Toasts](https://docs.microsoft.com/en-us/windows/uwp/design/shell/tiles-and-notifications/adaptive-interactive-toasts?WT.mc_id=allaroundazure-devto-lbugnion)


### Learn more about Laurent Bugnion

🔗 [@LBugnion](https://twitter.com/lbugnion)

🔗 [Bio](https://developer.microsoft.com/en-us/advocates/laurent_bugnion)

<br />

☁️
Parsing maven version with bash
Tags: java, bash, maven
Published: 2020-09-15 10:16:20

Recently I needed to parse my `pom.xml` file to get the artifact version out of it. I needed it on one of our CI agents and I did not have maven installed. I wrote a bash command to parse. 

Here it is
```bash
grep version pom.xml | grep -v -e '<?xml|~'| head -n 1 | sed 's/[[:space:]]//g' | sed -E 's/<.{0,1}version>//g' | awk '{print $1}'
```

Let’s go over it step by step to help us understand it better

-	`grep version pom.xml` - this till get you all the lines with word `version` in them
-	`grep –v –e '<?xml|~'` – this will exclude all the matches (-v is reverse match) that are matching the regex (-e), there can be XML specification in the POM file
-	`head –n 1` - only the first match
-	` sed 's/[[:space:]]//g'` - this removes the spaces around/in version string
-	`sed -E 's/<.{0,1}version>//g'` - this removed the `<version>` and `</version>` tags
-	` awk '{print $1}'` - prints the result
Basic JavaScript : Intro
Tags: javascript, beginners
Published: 2020-09-15 09:54:25

### What is JavaScript?
- JavaScript is a programming language designed for the web.

---

### How is JavaScript used?
- JavaScript is used to manipulate HTML and CSS.
- It can also calculate, manipulate and validate data.

---

### What is the difference between JavaScript and NodeJS?
- JavaScript also called Vanilla JavaScript is a programming language for the web.
- NodeJS is an environment to run javascript apart from running on the web.

---

### Which one are we going to learn?
- Since this is the basics of JavaScript, it wouldn't matter if it's Vanilla JS or NodeJS.

---

### Environment Setup for learning?
- The easy way of executing JS can be done right into your browser's console tab.
- The second way, which is to go to [NodeJS Website](https://nodejs.org/en/) and download the "LTS" version of it.


Next, we will get started with JavaScript Variables.
Facebook Events iOS app
Tags: swift, ios, facebook, events
Published: 2020-09-15 09:43:36

App allows you to discover events from Facebook platform without installing heavy Facebook app. There are offline mode, notifications, blacklist and other useful features.

Event discovery:
![Events](https://dev-to-uploads.s3.amazonaws.com/i/dzod1dsq6acav2gvhmq3.png)

Filter:
![Filter](https://dev-to-uploads.s3.amazonaws.com/i/harkddz2eww8qta38fll.png)

Menu:
![Menu](https://dev-to-uploads.s3.amazonaws.com/i/xmf5dlmq1cq03a83ij1l.png)

https://github.com/qqvm/Facebook-Events-iOS
Taskord Changelog - Sep 15
Tags: opensource, productivity, changelog, showdev
Published: 2020-09-15 09:39:16

Welcome to **Taskord Changelog** 📜, This is a weekly post where we share what we shipped to [Taskord](https://taskord.com) this week.

Visit Taskord: https://taskord.com

**This week on Taskord**

- Webhook updates to prevent logging GitHub and GitLab commits from Dependabot and StyleCI made by bots 🤖❌
- Shipped user stats dashboard for Admins 📊

![Admin](https://dev-to-uploads.s3.amazonaws.com/i/l3wlumbobrqqtmmr5rdj.png) 

- Ability to add multiple members to the product's team 👥🤝

![Screenshot (4)](https://dev-to-uploads.s3.amazonaws.com/i/83knnx02n51o10ym0qfq.png)

- Added Lightbox Image Viewer 📸

![Lightbox](https://dev-to-uploads.s3.amazonaws.com/i/yizrkuapof8vp1v8wu6g.png)

- Added Stacked Avatar of replied users in the recent questions section 👥

![Screenshot (4)](https://dev-to-uploads.s3.amazonaws.com/i/vhkcbuujm69c4wl9oqac.png) 

- Added more platform stats in the admin bar 📈

![Screenshot (4)](https://dev-to-uploads.s3.amazonaws.com/i/zqpzpp5pemr2t7weazy7.png)

Make sure to signup today! https://taskord.com/register

### Thanks 🙏

For working on design mockups and taking care of marketing stuff!

{% user theaadithyan %}

For providing constant feedbacks and feature requests!

{% user filiptronicek %}

Happy shipping ❤️
Cryptocurrency Coin Development Services
Published: 2020-09-15 09:34:59

Cryptocurrency Coin Development with extensive coding and developing expertise 
Cryptocurrency Coin Development from experienced developers with extensive coding and developing knowledge to provide the highly beneficial result.Cryptocurrency Coin Development Services with highly reliable features 
Create Crypto Coin with the company that provides robust and cutting edge services from expert developers at affordable prices.
Create your Own Cryptocurrency to excel in the trending new digital market
Create your Own Cryptocurrency to excel in the trending new digital market and expand your trade worldwide easily in no time.
Coin Development Company with end to end assistance from experienced developers
Coin Development Company with professional assistance offers cutting-edge cryptocurrency coin development services to a wide range of clients.
🤦‍♂️ Weekly fail (38/2020)
Tags: fail, lessonslearned, npm, yarn
Published: 2020-09-15 09:33:54

---
title: 🤦‍♂️ Weekly fail (38/2020)
published: true
description: Making sure you stick to one package manager, otherwise you will run into problems. NPM or Yarn, which will you choose?
tags: #fail #lessonslearned #npm #yarn
cover_image: https://assets-eu-01.kc-usercontent.com/17021868-aaab-01f5-57ef-cf27d8c987b3/22c0b385-7532-4948-9103-e1c4a9a6e5fc/week-38.jpg
---

So I ran into a problem. I was getting numerous errors when trying to build my front end project. They had occurred from node modules either being outdated or dependencies not being there and as I was following different articles describing how to solve them, I soon had been installing plugins from 2 different package managers, [NPM](https://www.npmjs.com/) and [Yarn](https://classic.yarnpkg.com/en/).

As a result of this, I was getting lots of issues. It confused the hell out of me, but I then looked into my source files and noticed *.lock* file for both package managers. Oops!

So I resolved this by picking a specific package manager and sticking with it. I cleared out my *Node Modules* folder and removed the *.lock* files and reinstalled all the node modules (via **npm install** or **yarn**) and the errors didn’t persist :)

*Lesson learned:* **Stick with one package manager. Always. I'm telling you.**
8 MISTAKES DevOps Engineers Make and How to AVOID Them
Tags: devops, codenewbie, career, beginners
Published: 2020-09-15 09:19:40

I've teamed up with a group of __awesome DevOps Experts__  to bring you the biggest __mistakes__ we've all made when starting up our DevOps careers.

All of us have some tip for you, so that you don't make the same mistakes.

### Intro

I'm super excited about this, I've got a really awesome group of people and all of us have come up with the biggest mistakes we made when starting our careers in DevOps.

I've asked each of them for 2 of the biggest mistakes they made when they firstly started "_doing DevOps_".

And __don't be afraid making mistakes__, what you do and how you do it is gonna be constantly evolving. However by making this we're hoping that we can use our experience and help you all so you __don't make the same mistakes we made when we started__.

You will find below all the links to these experts profiles and channels, make sure you check them out after you have finished here.

### The Video

Alright, let's get into some of the biggest mistakes we made.

Enjoy the watch!

{% youtube LrQRpiPjIwc %}

### Conclusion

I really hope you've found all these tips valuable, and hopefully we could ___save you from making the same mistakes we've made___.

Remember to go and check out the channels and references for all the DevOps experts you've seen in the video, they are really awesome people.

Last thing, let me know in the comment section below what your mistakes have been when you started your DevOps career.

### Experts profiles

___ETIENNE TREMBLAY___: 

- YouTube: https://www.youtube.com/user/Tegaaa
- LinkedIn: https://www.linkedin.com/in/etiennetremblay/
- Website: https://www.tegaaasolutions.com

___MOHAMED RADWAN___: 

- YouTube: https://www.youtube.com/user/MRadwanMSF
- Blog: https://mohamedradwan.com/

___GIAN MARIA RICCI___: 
- YouTube: https://www.youtube.com/user/riccigianmaria
- Blog: http://www.codewrecks.com
Is`let` the new `var` in Javascript?
Tags: javascript, discuss, beginners, codequality
Published: 2020-09-15 08:55:46

Recently I was reading about a debate on `var` vs `let` in Javascript. The debate started over the sentence: `let` is the new `var`.

I personally disagree with the statement. I think they both have their own use cases. But I do not think that there is need to replace function level variable declarations with `let`.

What do you guys think?
gRPC for production
Tags: grpc, grpcproduction, microservices
Published: 2020-09-15 08:55:14

When starting with gRPC there are many resources setting out what gRPC is, where it originated from and how to create basic service and client. All those tutorials do a very good job in helping the developers to get started using gRPC in their projects. We can find materials talking about gRPC server, stub client, interceptors, protobuf, encrypted connection, load balancing but hardly we find all this together and prepared for a real production scenario. Deployments to production are not discussed and available resources are sparse.

There are some projects that provide a collection of handy features that can help you to set up gRPC communication in a reliable way but they are all generic building blocks without an initial structure which you can envolve from.

I have gone through all this pain to collect all available materials and decided to create a library that provides the core requirements for a production-ready gRPC communication. As a natural opensource contributor, I could not make all this hard work available to the community and hopefully save people time.

This project abstracts away the details of the GRPC server and client configuration. Here are the main features:

- Health check service — We use the grpc_health_probe utility which allows you to query health of gRPC services that expose service their status through the gRPC Health Checking Protocol.

- Shutdown hook — The library registers a shutdown hook with the GRPC server to ensure that the application is closed gracefully on exit

- Keep alive params — Keepalives are an optional feature but it can be handy to signal how the persistence of the open connection should be kept for further messages

- In memory communication between client and server, helpful to write unit and integration tests. When writing integration tests we should avoid having the networking element from your test as it is slow to assign and release ports.

- Server and client builder for uniform object creation

- Ability to recover the system from a service panic

- Ability to add multiple interceptors in a sorted order

- Client tracing metadata propagation

- Handy Server interceptors(Authentication, request cancelled, execution time, panic recovery)

- Handy Client interceptors(Timeout logs, Metadata propagation)

- Secure communication(TLS)

As you can see, the gRPC Server project has some handy features and it can save you time not having to write your own gRPC server bootstrap. If you are a developer or architect looking to create a new gRPC project with Golang this library will be very helpful.

Enough talking, check out the project [here](https://github.com/apssouza22/grpc-production-go)
Best 5 Linux-based laptops you can buy | 2020
Tags: linux, beginners, productivity, ubuntu
Published: 2020-09-15 08:37:40

In this buying guide, you will get to know about the best 5 Linux-based laptops that are available in the market right now.

Linux is growing day=by-day and many users are shifting towards it. This has led to the popularity of many companies that specifically sell Linux-based laptops.

Apart from that many big companies like Dell, Lenovo, HP, Huawei, etc are providing Linux alternatives to their customers. Here is my list of the top Linux-based laptops that you can buy right now.

## 1. Tuxedo Pulse 15

Tuxedo is a German company that is famous for making high-end Linux based computers. The Tuxedo Pulse is a very popular laptop that the company makes.

![Tuxedo Laptop](https://linuxh2o.com/wp-content/uploads/2020/09/Tusedo01.png)


## 2. System76 Lemur Pro

The System76 by far the most popular Linux computer maker as they have the goodwill for really awesome hardware and software. The company has done a good job of making a Linux distribution and custom coreboot.

![System76 Laptop](https://linuxh2o.com/wp-content/uploads/2020/09/Tusedo-203.png)


## 3. Dell XPS 13 Developer Edition

This is by far the very popular development laptop out there as the company. Dell is continuing to make Linux compatible laptops.

![Dell XPS Laptop](https://linuxh2o.com/wp-content/uploads/2020/09/Tusedo-304.png)


## 4. KDE Slimbook 3 (3rd Gen)
KDE has a big fan-base and these guys have built a Linux slimbook. It’s a powerhouse.

![KDE Slimbook Laptop](https://linuxh2o.com/wp-content/uploads/2020/09/Tusedo-102.png)


## 5. Librem 14 – Laptop with the kill switches

World-famous company for privacy-conscious products and services. This is by far the most secure available laptop out there. I mean, it has hardware kill-switches.

![Librem Laptop](https://linuxh2o.com/wp-content/uploads/2020/09/Tusedo-405.png)


## Watch Video guide on YouTube

{% youtube qm5p-SCN2ZY %}
Creating a Python3 Environment Using Pyenv in EC2
Tags: python, aws
Published: 2020-09-15 08:34:05

First, you need git.

```
$ sudo yum install git
// type yes to all questions
$ git version
git version 2.23.3
```

Then install pyenv by cloning from GitHub.

```
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
```

Create the paths for pyenv.

```
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

// Check if the paths are created correctly.
$ pyenv -v
pyenv 1.2.20-5-g1ec3c6f1
```

Install the necessary dependencies.

```
sudo yum install gcc zlib-devel bzip2 bzip2-devel readline readline-devel sqlite sqlite-devel openssl openssl-devel libffi-devel -y
```

Install python.

```
$ pyenv install 3.7.0
// This will take several minutes to complete
```

Choose 3.7.0 as the global version.

```
$ pyenv global 3.7.0
$ pyenv rehash
$ python --version
3.7.0
```


## References

[EC2サーバにPython3環境構築](https://qiita.com/tisk_jdb/items/01bd6ef9209acc3a275f)
[pyenvで3.7系のインストールに失敗したときのメモ](https://qiita.com/hitochan777/items/941d4422c53978b275f8)

Sorry, only Japanese versions are available.
How to wait for animations to complete in Playwright script
Tags: testing, playwright, javascript, e2e
Published: 2020-09-15 08:30:36

In this post I am going to show a function to wait for animations to complete in [Playwright](https://playwright.dev) test script.
As usual enough words, just try to apply the code below :smile:

```js
async function waitNoMutations(page, selector) {
  return await page.evaluateHandle(function (selector) {
    var list = document.querySelectorAll(selector);
    var elements = [].slice.call(list);
    var config = { attributes: true, childList: true, subtree: true };
    var mutations = 5; // wait at least five intervals

    var observer = new MutationObserver(function () {
      mutations += 1;
    });
    elements.forEach(function (target) {
      observer.observe(target, config);
    });

    var decrementInterval = setInterval(function () {
      mutations -= 1;
      if (mutations <= 0) {
        clearInterval(decrementInterval);
      }
    }, 5); // this quant might be reduced?

    function complete() {
      return mutations <= 0;
    }

    return new Promise(function (resolve) {
      var count = 0;
      var completeInterval = setInterval(function () {
        if (count >= 1000) { // timeout?
          clearInterval(completeInterval);
          observer.disconnect();
          resolve("timeout");
          return;
        }
        if (complete()) {
          clearInterval(completeInterval);
          observer.disconnect();
          resolve(true);
          return;
        }
        count += 1;
      }, 5);
    });
  }, selector);
}
```

This works, but not in 100% cases :smile:

Enjoy! EOF :smile:

Link to [original post](https://tsvbits.com/wait-no-mutations/).
JAVA STACK
Tags: java, codenewbie, codequality
Published: 2020-09-15 08:12:46

In this problem we have to find whether the input string is valid sequence of parenhesis or not!
We just put our string like this:-
{}()
({()})
{}(
[]

And according to our input this program will give "true" if the sequence is valid otherwise "false".
   
```java 
   import java.util.*;
    class Solution{	
	public static void 
    main(String []argh)
	{
Scanner sc = new Scanner(System.in);
		
while(sc.hasNext()) {
	     String input=sc.next();
            //Complete the code
	
        }
      System.out.println(isValid(input));
          }
	  }
        public static boolean 
    isValid(String s){
        if(s.charAt(0)==')'||s.charAt(0)=='}'||s.charAt(0)==']'){
            return false;
        }
       Stack<Character> stack=new Stack<>();
     for(int i=0;i<s.length();i++)
    {if(s.charAt(i)=='{'||s.charAt(i)=='('||s.charAt(i)=='[')
        { 
     stack.push(s.charAt(i));
        }
    else{
        if(stack.empty()){
            return false;
        }
    char open=findOpenBracket(s.charAt(i));
        char ch=stack.pop();
     if(ch!=open)   {
        return false;
         }
        }
    }
    if(stack.empty()){
        return true;
    }
    return false;
    }
    public static char findOpenBracket(char c)
    {
       if(c=='}')
          {
          return '{';
          }
       else if(c==')'){
           return '(';
          }
       else if(c==']'){
        return '[';
         }
        return ' ';
         }
        }
```
    
If any doubt feel free to ask in comment:)
This problem is taken from the HackerRank !!
Happy Coding❤️
Roku Ultra Black Friday Sale
Published: 2020-09-15 08:12:23

Roku Ultra is the best model of the Roku media streaming stick. After knowing about it, a large number of people want to buy it. Some people buy at the same time, but some people wait for discounts and exclusive offers. Yes, Black Friday is one such big day for those people who think for a huge discount and waiting for a sale. 
Black Friday is the biggest day of a discount in the year. so if you are interested in Roku Ultra, and waiting for a huge discount, wait until Black Friday. This year, Black Friday is near now. In the 4th week of November months. This big sale will start. 
Roku is one of the best streaming devices to stream all your favorite content and live TV from Netflix, Prime Video, ESPN, Disney +, Sling TV, Roku Channels, and more. You can watch free movies and TV shows from IMDB and Pluto TV. 
Hope you understand that Black Friday is a big day to get a huge discount on your favorite Roku Ultra. Remember the sale will start from the 4th week of November months.
To read more about it visit: https://rokuvsfirestick.com/roku-ultra-2020-black-friday-sale/
Today's Work: Data Structures, Data Transferring, and React
Tags: devjournal, react, womenintech, codenewbie
Published: 2020-09-15 08:09:13

_This post was originally published on September 15, 2020 on [my blog] (https://alexlsalt.github.io/blog)._

Today's all about making progress on a few things I'm currently doing. Nothing ground-breaking, no news-worthy cobswabble. Just workin'.

Among those things - I started transferring data from my French city guides site over to a spreadsheet so that I have all the data in front of me when I build my database to store all of it. Part of me thinks I'm doing twice the amount of work, but I actually do want to have all of the data stored visually in a spreadsheet, so I suppose I'll just grit my teeth and work through it lol.

Then, I started watching a mini 3-hour course over the weekend on Data Structures that I'll probably finish up today. I have about two hours left.

You always hear about 'Data Structures and Algorithms' and the need to learn about all of it as a developer, and it always seemed like a far-off, remote topic that I'd learn "someday," but now that I'm getting through just Data Structures (i.e. breaking it apart and working piece by piece), I'm realizing it's actually very manageable.

Lastly, I'm still steadily making my way through Pure React. Yesterday, did a lot of studying about State and how to think about it, what to put inside of it, where to keep it, etc.

Things are coming together! Love love love it.

----------


P.S. Did you know I have a podcast with new episodes each Wednesday? Go listen [right over here >>] (https://www.ladiescodecollective.com/podcast)

![The Ladies Code Collective Podcast cover art](https://dev-to-uploads.s3.amazonaws.com/i/e9bnxljvfrdjeti7fvbr.png)
100日後に転職する男
Published: 2020-09-15 08:09:13


明日、9/16から「100日間、毎日コードを書きまくったら、WEB業界に転職出来んじゃね？」という仮説を検証するための企画を始めようと思います。


企画と言っても、本気で人生を変えに行くので、お遊びではありませんが。


100日間で目指す指標は「ビジネスが分かり、実行出来るWEBエンジニア」。


昨今、世に増えているらしい「お遊びエンジニア」だけには絶対にならない。


常に経営者的視点を持ち、メタ的に分析のできる「人財」になる。


そのための第一歩をこの100日間で踏み出します。


9/16の100日後は12/25のクリスマスとのことで、最高のクリスマスプレゼントを自分に贈れるよう、精進します。


成功させるぞー！！