teleren/devto huggingface dataset:
Set image as cursor upon hover
Tags: webdev, html, css
Published: 2021-01-10 19:25:17

While looking for inspiration and ideas to use for my personal portfolio, I came across [Etienne Pharabot's portfolio](https://etiennepharabot.fr/). I loved his introduction, especially how emojis are displayed when you hover the mouse cursor over text.  I loved this so much, I decided to ~~steal~~ [use this concept in my personal portfolio](https://personal-website-nkadw.ondigitalocean.app/#about). My implementation may not be as cool as Etienne's but it's pretty close :D

You can find the full code at this [JSFiddle](https://jsfiddle.net/y4t5udpv/2/). Below, I explain how to code work. 

First, we have the HTML:

```
  <div class="intro">
    <h2> <span class="hello"> Hello! </span> Nice to meet you!</h2>
    <h2>My name is <span class="my-name"> JOHN </span>.</h2>
    <h2>I am a <span class=dev> developer
          </span> living <span class="country"> CANADA </span>.
    </h2>
  </div>
```
I have enclosed each hover-able piece of text with `span` tags and given them unique class names. I will later use these class names when setting the image to display upon hover. 

Unto our CSS code. Let's include some basic styling:

```
.intro {
  padding: 10px;
  width:70%;;
  margin-left:10%;
  padding-top:40px;
    position:relative;
  padding-bottom: 50px;
}

.intro h2 {
  margin:0;
  color: #333;
  text-transform:uppercase;
  font-size: 10vw;

}

.intro h2 span {
  text-shadow: 1px 1px 1px rgba(0,255,0,1);
}
```

The above styling doesn't really affect this feature. It's only there to make this example more visually appealing. I have given the text in the `span` tags a greenish text-shadow -- my way of showing that they are different, and to call the users' attention so they will hover on it. 

Finally, using the `cursor` property, you can set the cursor to an image for every text by giving it an appropriate image link value. 

```
.hello:hover {
 cursor:url(http://www.picgifs.com/smileys/smileys-and-emoticons/money/smileys-money-671353.gif), auto;
}

.my-name:hover {
 cursor:url(http://www.picgifs.com/smileys/smileys-and-emoticons/money/smileys-money-671353.gif), auto;
}

.country:hover {
 cursor:url(http://www.picgifs.com/smileys/smileys-and-emoticons/money/smileys-money-671353.gif), auto;
}

.dev:hover {
 cursor:url(http://www.picgifs.com/smileys/smileys-and-emoticons/money/smileys-money-671353.gif), auto;
}
```
By appending `auto` to the `cursor` value, we ensure that the cursor returns to its default state if the image can't load. Now, if you hover on the `span` texts, the cursor changes to an image. Feel free to use whatever images you want. I think the size of the image matters too. If the image is too large, it won't load. I was unable to get it working with a 160x160 image. But when I reduced the image size to 60x60, it worked -- the cursor changes to an image when upon text hover. 

If you decide to try this out, let me know how it goes :)
Day 10 Challenge
Tags: challenge, webdev, frontend, html
Published: 2021-01-10 19:18:17

Create a page with a sign up form. It can have any input but you must require, first name, last name, phone number and email. It should also have a section for OAuth (allow for sign in with Facebook, Google, etc.). The phone number and email must be valid and the phone number should be formatted.

**Part three:** Add validation for the email and phone number fields. If they do not pass validation the form should not submit and you should show error messaging
My best shell (bash) aliases on Linux (Fedora) !
Tags: linux, bash, shell, productivity
Published: 2021-01-10 19:10:12

If you are using the shell daily and haven't defined some aliases yet, you are doing it wrong.

Here is a list of my favorites aliases that I configure on every new machine.

**Basic aliases**
```bash
alias l="ls"
alias v="vim"
alias s="sudo"

alias cpr="cp -rv"
alias rmr="rm -r"
alias rmf="rm -f"
alias mkdir="mkdir -p -v"
```

**Display json in pretty format (on terminal)**
```bash
alias pretty="python3 -mjson.tool"
```

**Send post request (json)**
```bash
alias cpost="curl -X POST -H 'Content-Type: application/json'"
```

**find file or directory in current directory**
```bash
alias ffind="find . -type f"
alias dfind="find . -type d"
```

**Update all packates and remove unecessary (Fedora) **
```bash
alias sysupdate="sudo dnf -y update && sudo dnf -y autoremove && sudo dnf -y remove --oldinstallonly"
```

**Get my public ip**
```bash
alias myip="curl ifconfig.me"
```


**Check internet connection**

```bash
alias conn="ping -c 2 google.com"
```

# What are you favorites bash aliases ???
GitLab Patch Release: 13.7.3
Tags: gitlab, devops, opensource
Published: 2021-01-10 18:55:35

Releasing version 13.7.3 for GitLab Community Edition and Enterprise Edition.

This version resolves a number of regressions and bugs in <a href="https://about.gitlab.com/releases/2020/12/22/gitlab-13-7-released/">this month's 13.7 release and prior versions</a>.

<h2>GitLab Community Edition and Enterprise Edition</h2>

Available in GitLab Core, Starter, Premium, and Ultimate:

* <a href="https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50246">Fix Canary Ingress weight is not reflected on UI immediately</a>
* <a href="https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50262">Change pages deployments size column to bigint</a>
* <a href="https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50362">Set registry fields to nullable</a>
* <a href="https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50547">Update Helm 2 version to 2.17.0</a>
* <a href="https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50800">Follow-up from "Fix project access token regression"</a>
* <a href="https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50806">Note feature flag for user cap</a>
* <a href="https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49982">Job Trace polling solution</a>

<blockquote><h2>Important notes on upgrading</h2>

This version does include new migrations, and for multi-node deployments, <a href="https://docs.gitlab.com/ee/update/README.html#upgrading-without-downtime">should not require any downtime</a>.

Please be aware that by default the Omnibus packages will stop, run migrations, and start again, no matter how “big” or “small” the upgrade is. This behavior can be changed by adding a <a href="http://docs.gitlab.com/omnibus/update/README.html"><code>/etc/gitlab/skip-auto-reconfigure</code></a> file, which is only used for updates.</blockquote>

<h2>Updating</h2>

To update, check out our <a href="https://about.gitlab.com/update/">update page</a>.

<h3>GitLab subscriptions</h3>

Access to GitLab Starter, Premium, and Ultimate features are granted by a paid <a href="https://about.gitlab.com/pricing/">subscription</a>.

Alternatively, <a href="https://gitlab.com/users/sign_in">sign up for GitLab.com</a> to use GitLab's own infrastructure.



<code><p><br>
<footer style="height:auto"><h3>*Follow our community for more updates*</h3><table><tr><td><a href="https://gitlab.substack.com/">![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/hplp6opfpywirwur2vmz.png "Official Website")</a></td><td><a href="https://twitter.com/GitlabC">![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/00qhd8v9ma2t2l2xv4xh.png "Twitter")</a></td><td><a href="https://www.meetup.com/GitLab-Meetup-Coimbatore/">![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/aqq6pi897bk687d3kwwa.png "Meetup Community")</a></td><td><a href="https://www.linkedin.com/groups/8955040/">![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/8u4886rik46g1bvvrx8d.png "LinkedIn")</a></td></tr></table></footer></p></code>
Use a non root user in your Docker
Published: 2021-01-10 18:55:22

<sub><span>Photo by <a href="https://unsplash.com/@ro_ka">Robert Katzki</a> on <a href="https://unsplash.com/s/photos/pinguin">Unsplash</a></span></sub>

Due to an Angular migration, the following command requires to run on a non root user due to post-install custom script in our project:
```bash
RUN npm install
```

In order to do this we had to:

- create a user
```bash
RUN useradd -ms /bin/bash user
```

- change ownership of workdir
```bash
RUN chown user ../app
```

- copy files using the new user
```bash
COPY --chown=user src/myapp/myapp.csproj src/myapp/
```

- change user
```bash
USER user
```

Hope this helps !
🦕Let's code a Discord bot using Deno
Tags: deno, discord, typescript
Published: 2021-01-10 18:51:00

Today we will continue to use the Deno framework and develop a Discord bot. We'll also add some unit tests and see how to run them.

Since you may not be familiar with the approach, do not hesitate to post any comments/questions to this [video](https://youtu.be/1i3U-6gjGxw). I’m eager to receive your feedback.

I hope you enjoy this video.

{% youtube 1i3U-6gjGxw %}
Weather App DOHackathon Submission
Tags: dohackathon, vue, javascript
Published: 2021-01-10 18:46:50

## What I built
A simple weather app built with Vue.js

### Category Submission: 
Random Roulette

### App Link
[App Link](https://vue-weather-app-g6ce4.ondigitalocean.app/)

### Screenshots
![Screenshot 1](https://dev-to-uploads.s3.amazonaws.com/i/ym2n9boas8uqe601boy0.png)

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

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

### Description
This app uses an API to get the weather of city. It has a dynamic drop-down to display results when searching for a city.

### Link to Source Code
[Source Code](https://github.com/mattryanmtl/vue-weather-app)

### Permissive License
MIT License 

## Background
I love using API's and I wanted to built an app that used an API and Vue. I have made a weather app in c#, java and python so decided to try building one using a modern ,and in demand, js framework.

### How I built it 
This was my first time using Digital App Platform for deployment and it was remarkably easy.
#GithubWrapped - DO Submission
Tags: dohackathon, javascript, yearinreview, showdev
Published: 2021-01-10 18:44:39

### Background
#### 2020 has been a challenging year for all of us.

As the year is ending, I thought to take a look back at all the contributions you as an individual made to the open-source community, during these unprecedented times.

**Also since,** Spotify has **#SpotifyWrapped**, Snapchat has **#lookback**, 

#### Why not something for us, devs!? 
That's exactly what motivated me to create this.

### What I built

#### Presenting **#GitHubWrapped** !
To take a look back at all the contributions you as an individual
made to the open-source community, during these unprecedented times.

#### How does it work?
Once you navigate to [githubwrapped.tech](https://githubwrapped.tech), you'll be prompted to enter your github username after which you can get your own personalized report.
 

### UPDATE !

_Over the last few weeks, we've **crossed over 2,200 Tweets** with the #GitHubWrapped hashtag and over **half a million site visits** in less than 6 days from the launch._


### Category Submission:
 
Program for the People

### App Link

#### [githubwrapped.tech](https://githubwrapped.tech)

### Screenshots

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

#### Reports
Each github user can generate a year in review report similar to this.

![ishandeveloper's-report](https://dev-to-uploads.s3.amazonaws.com/i/uaohywf7d1bgs8g9nqc2.png)
 

Yearly reports contains your stats from the beginning of this year including number of commits, stars etc.

You can also save your report as an image using the 'Save Report' button and share it with the community or keep it as a memorandum :)

#### Tweet Bot
The celebrations don't end here! We also made our own cute octo-bot on twitter [@GitHubWrapped](https://twitter.com/GithubWrapped).

{% twitter 1342740993880125441 %}

Octobot stays awake all day/night to like & retweet all your tweets that use the hashtag #GitHubWrapped.

You can use the **'Share on Twitter'** button right on the web app, to share your year in review!
 

### Link to Source Code

In case you'd like to take a look at how I did it, here's a link to the github repository
{%github ishandeveloper/github-wrapped %}


### Permissive License
MIT

### How I built it 

I used Digital Ocean's App Platform to 

1. Host the web app, along with the backend API
2. Host a node.js twitter bot that likes & retweets all #GithubWrapped tweets

Made with 💚 for the community :)
Front-End React Native Tesla App Store
Tags: dohackathon, reactnative, react, ios
Published: 2021-01-10 18:25:46

## What I built
Tesla Front-End App using React Native. Fully scrollable Front-End Tesla shop app.
### Category Submission: 
React Native App & Mobile App

### Screenshots
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/9myc0p3p9uu28714lbi2.png)

### Description
 This is my first React Native App, it was very fun building this Front End Native app, it took me around 3 hours to finish this project, I'm very happy with the end project considering that this is my first build in React Native.
### Link to Source Code
https://github.com/cesareuseche/tesla-app-native

## Background
I wanted to start building React Native Apps and this is my first project using React Native, it is a very simple Front-End App, but it was a great opportunity to learn more about React Native. I always liked Tesla so That's why I choose to do this Front-End app

### How I built it 
 This Project includes the following:
- React Native
- Custom Styles
- Flatlist
- Dimensions
- snapToAlignment
- decelerationRate
- snapToInterval
SVG Smooth Freehand Drawing
Tags: svg, drawing, showdev
Published: 2021-01-10 18:23:31

I want to share a very nice tips from [ConorsFan](https://stackoverflow.com/users/1009922/connorsfan) at [svg-smooth-freehand-drawing](https://stackoverflow.com/questions/40324313/svg-smooth-freehand-drawing)

You can test it here : [SmoothSVG](https://flems.io/#0=N4IgtglgJlA2CmIBcAWArAOgGwA4A0IAZhAgM7IDaoAdgIZiJIgYAWALmLCAQMYD21NvEHIQAHigQAbgAJoAXgA6ISVIDKYPnzYsI1AOYAxWjzZ8ATsoB8i6jPsyxsWgCN4sGYQtKQPMC4AhAFdCQnhzNQgAL3hrYNDwmVJo+CQxAHpnN1gbOwcxUnd4UzkoHz9AkLCIlOtbBwbHPgAHNggBGSlaWCD4HwBGa36ZAFoZADk+JM1tXQMMlraBXMb8xfa7Lp6+5RRrFFGZNRZac2aZHiDzKXhSBdaNldWmh46t3p8cZSSi03gy5SFBB-KDWHCHDRaHQXK43O7pdbLerPMSIzbdD7KfoAJiG2MOADVwgBPaZQlgw663e5LahPVao17o7YDLBDLAQoLNRKkGbQy5U+Fo+mNRm0zoYnYgbEABmsssOAAlidzzGTZpS4TTHsj7BkgcU2LkMqpjaQpPoZAAPTjUUg+dhsZpIdLpADuHowboAzBgLPp0rKZTL0ub9N8bbA7UgrbA9ABrB1sJ0u92en1+8wB-oATjz6VjCe+N3MyQEAwwgxApR8YYAoggGIIIz4Zc0rd9ia32983dAdD4sMGe9WWPAIPp2D4UMOO9WpBB4G6Anwra2ZDKZEPNzO5dXhK4ECMXCZ4-pzHwgtQASBqEuNw-tzJdxHOEhSM0TFLmuZbuEbtY3AgAapgbOQTD9P0SDYt6ADsIAAL54DQ9CMMwABW5C8AIQgiEwXRqqQbAXvG8AAOr9hS8gyNiADctgETILhVOEkQxDI9HUAxpxJBaDbwE2bAyNRUB8JcgkYPo8BsPxgkBMSACSUAABSAnxjbCGwygAJScYxv4lNR9YaYIknSSuV6SAYADCcaaQASoaym6dxaqftC1HUEEsCwHpPFEeYAAKtA6H5arMQkarURQAC6tEyK6MjWThtB6KQMg6PAMjOERMjNHwyS0ulfCEBlY4yJoQSFJSpAWLYtjGQJmkYLQMB1jcggADIQERwjhKp4CXoUolulx3CeFeoEdMp8DaTIwD2LqTEsTU7EiWJQQSVJMkmWw8lKQNFTxNUbGxCA2kYO88CcQ07lUTIonic1PC-iF8CyZp4xqMpADkjrOq6Hpul6vr+oGwYhmGP14DIP13T9Ll5PYd0YIUbAAILJuYEDMUIA3ED5ygw8o1ACGdiO3SFLCo9JmPETjQR44CxF8KRRMyMoADEEM6TdDgo2jdPY7j8ADQFrPwCMfZQDo7Pi6RFEyywFMOBF1TCTIsV8-YjGtBr20ALJDfAgUFRAtIzSr9i0M03LXgAKnwx39a0VtJMRwUeRzIAG98ADUeVsBgVoyAH3z+4HGDEtreVUzTGNYwzTMqHLHtU27jUSTbdtQNZuiwCpd2IwhiMNepTWma1UDtZp3W9Xe5gDZVhSaAB42EJN4qW-NS0QKVylFz3SONNnwhQI7zuN4bxum4VGyW27DRclAb1qBanssM5McIbYJecWX+gfZXbUdWwde4f1yjN-AXLsx31BTXYzlDw0fcyAP6cv88d0a15Pnb7vUu1BGLTyqibM24pqL30fu-WaX97C-jYFcOwwAloNCtEgGQ8AMCfikgADUOAZIOCBCBsDwGghwxJMHYNwfAAAmoQw0GAzDNCWjvagCF97AJ4qPB2TsVoa2gV3V28DlqRRwVVTersY5unzllZSatwgYAQAYaEVgxEnRSHNVBw8GiKPMKjXQpCt5sN3lwxK1luiXGcEIMqWVaAlloFJPKfA9BkPdqcNoBgZAhRkCVQgaM5B2Eyho8IrkZDbXRo4qSps3GCM7hsd+-i0baKWoxFRGt9HKOEPoUKvd+4ZIAKQ0WEvIaiwwAA+FTsrCBkFYai+jTqpN0Q4RiZg2DdAIdRGUMcGhtO0N0Bh3TemtJ4q0GGEARk6x4vwK8QlhkUPsF4NUykIAa2SdJeKayxA1OoFsv2ftmnPEaLMwQBypmND1g0laFAIBxUWY0dpnTQ7UVaMHC5DQnmwAYX7V5Qdo4PPYccxByDRHHIwRlAZsACHpAuJeQQ5CWmrCoZCjp3yEpwrmYC0xw8QXmDsH-XyZjwnL1XuvKm8SH5dyOaMty8yIm02ieAtxykZS6QcPVYeb8B5sG0RzJFCVYUAHFpJ2PVJlKAsdzBCRKmKn+OhfF9h8jIUmQkeAnAMLEAVAUN4vO9jITqEc3khzDtWI1-yuHHMSiKoSIScpCU-NKvxpUQk-2UjwWABUspmDFQKX8ggKrGxcXPAQ2kHmJXtrodKjqhJKo8Oq2gmq5AuvKtfQNcIfH6FSlxAVbSwDNF1dRZQygLnLPfoxDZ9K6LOoCaKnZWSVG5JYPFStersQ0uOcjelkSmWxMEMpSti9ngcALRS35+rDXVgDsa0O+rzVRwuew8NsK1CipCfwfNCBbF+s0rHfkWhzBWTeqQB5AtaaJxFgNUE40dVjoyvmjebt2GcKAhu5oJBwiiBPNkICIEiqiCgv0NAiFkK3lQqIDAPBSBYV8DhTSoh2CcBhi4PgUBiS2B0ZTGAeh9CYLbFaGOYBTj6D0Hh9snF2Gc0zppDDS0UOHvCJg-o7Ykh8DjFAQjxG9AjBYZglA5GlpEazNxkhbA+MCeHgKWq5hMFQHgIQWg3k2AUdsJzVQkJZg4eMKYOq1BMP8wgRsTBrhao9CEPFJaommP8YI-yz5LQmPYgkwhX9vx-0QRQNBFAiEYoISAA)
How to solve VMware ESXI /var partition ramdisk full issue ?
Published: 2021-01-10 16:11:06

The full /var partition on the ESXI host can trigger host problems. If you keep the /var partition free of space the hosts will be running well in your cluster.

## Fixing of the root cause of the runaway log file

When the issue was presented, I wasn't able to connect with any terminal app to hosts so, I had to use the host console. And after a while found that the `/var/log/EMU/mili/mili2d.log` was continually growing.
In the vsphere syslog found this error:

```console
The ramdisk 'var' is full. As a result, the file `/var/log/EMU/mili/mili2d.log` could not be written.
```

Then I looked `/var/log/EMU/mili/mili2d.log` and revealed following errors:

```console
CRITICAL:backend_init:OneConnect Adapter Not Found.
ERROR:rename all the configuration files!
ERROR:MILI_enumerate_elxiscsi:Failed to initialize User Init with status = 19
ERROR:MILI_enumerate_elx_nics:Failed to initialize USer Init with status = 19
ERROR:could not open device node /vmfs/devices/char/vmkdriver/be_esx_nic
```

What it means ? 

Since both servers do not have any Emulex hardware installed, the elxnet drivers are not needed. So I removed them and rebooted hosts. That is it, It solved my problem on the hosts.

```console
esxcli software vib remove --vibname elxnet
esxcli software vib remove --vibname elxiscsi
esxcli software vib remove --vibname elx-esx-libelxima.so
```
Portfolio website submission for the DigitalOcean Hackathon
Tags: dohackathon
Published: 2021-01-10 18:19:51

## What I built
I built a personal portfolio site and blog for my freelance business.

### Category Submission: 
Personal Site/Portfolio 


### App Link
https://www.themoonlit.co.uk/

### Screenshots


### Description
 A personal portfolio site for a freelance web and mobile developer.

### Link to Source Code
https://github.com/annafoldvari/portfolio
### Permissive License
MIT

## Background
(What made you decide to build this particular app? What inspired you?)
I want to connect with people who might want to use my services.

### How I built it 
(How did you utilize DigitalOcean’s App Platform? Did you learn something new along the way? Pick up a new skill?) I
I created a wordpress site with a custom theme. I learnt a lot about the process of deploying a wordpress site.


### Additional Resources/Info
Playground for our Components! Setting up Webpack and Bable Vue 3 typescript component - part 3
Tags: webdev, beginners, typescript, vue
Published: 2021-01-10 18:10:43

Hey,

Let us build a component Library together!
In the part we will install webpack, babel, vue and much more!
We will create a playground for our components and load our button component into our playground!

{% youtube IrrvLCXSD_M %}

The npm packages we have installed:
```
// webpack
npm i --save-dev webpack webpack-cli clean-webpack-plugin webpack-dev-server babel-loader html-webpack-plugin 
// vue
npm i --save-dev vue-loader@next vue@next @vue/compiler-sfc @vue/component-compiler-utils @vue/babel-plugin-jsx
// css/sass
npm i --save-dev style-loader postcss-loader sass-loader sass
// babel
npm i --save-dev @babel/cli @babel/core @babel/plugin-transform-runtime @babel/preset-env @babel/preset-typescript


Code Repo for youtube: https://github.com/lampewebdev/lcs-components-yt
Code Repo for the project: https://github.com/lampewebdev/lcs-components

**👋Say Hello!** [Instagram](https://www.instagram.com/lampewebdev/) | [Twitter](https://twitter.com/lampewebdev) | [LinkedIn](https://www.linkedin.com/in/michael-lazarski-25725a87) | [Medium](https://medium.com/@lampewebdevelopment) | [Twitch](https://dev.to/twitch_live_streams/lampewebdev) | [YouTube](https://www.youtube.com/channel/UCYCe4Cnracnq91J0CgoyKAQ)
Day 8 :100DaysOfCode

Tags: 100daysofcode, html, javascript, productivity
Published: 2021-01-10 18:04:16

Started my day with leetcode contest(solved 1 nd added extra base case in 2 one :( , so missed it.

continued with my portfolio(added js,footer nd stuffs),wuld be working on portfolio section tmrw.

started learning trees 
....
...

would end my day with few more leetcode ques.


You can Follow me->
https://github.com/singhtaran1005
https://www.linkedin.com/in/taranpreet-singh-chabbra-27517918a/
Is it time we quit WhatsApp?
Tags: privacy, discuss, watercooler, whatsapp
Published: 2021-01-10 17:43:20

No matter what you do, there is a very high probability that you must be using WhatsApp very often in your daily life. But due to recent policy changes in WhatsApp, it has raised some serious privacy concerns. 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/689glph9uzkmibe4yl2q.gif)

According to the new policy, WhatsApp will be sharing the following user data with Facebook:

- user ID
- device ID
- purchase history
- advertising data
- phone number
- coarse location
- contacts
- email address
- crash data
- product integration
- payment information
- diagnostic data
- performance data
- product interaction
- customer support
- & other user data

This huge list might have scared you the same way it has scared other 2 billion active users around the world.

# Discuss

---

So as a developer, what are your opinions on data trade which is going on among companies such as WhatsApp & Facebook?

And are you planning to ditch WhatsApp as well & move on to a better privacy-friendly service like Signal & Telegram?

Please share your thoughts in Discussions/Comments
Fun with Javascript!
Tags: javascript, fun, regex
Published: 2021-01-10 17:39:12

---
title: Fun with Javascript!
published: true
description: Fun with Javascript and Regex
tags: javascript, fun, regex
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/j7kn0e91xb3j8iuu1fjd.png
---

Even after years of experience with Javascript there are new surprises around every corner.

```
const regex = /foo/g;

if (regex.test('foo bar') && regex.test('foo car'))
  console.log('🎉');
else
  console.log('🙃');
```

What do think is the result? You find the explanation in the [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test#using_test_on_a_regex_with_the_global_flag).