teleren/devto huggingface dataset:
How Internet Games Are Becoming Popular These Days
Tags: onlinegames, wordgames, onlinescrabble
Published: 2021-03-19 10:53:26

A growing number of folks from all around the world decide to relish totally free games online as the net provides hundreds and possibly even thousands of free games to pick from.  All you need to do is locate a fantastic resource to get free [online multiplayer scrabble](https://www.rackword.com/) games and get started searching for the matches that you like most.  Simply by searching the internet along with your favorite internet search engine you're going to be overrun with the great variety of search engine results; you can find a growing number of internet sites getting to presence daily seeking to meet our desire for exceptionally entertaining and totally free games. Whether you are on the lookout for a few kinds games best fitted to the son or daughter or you only wish to play any free actions or games, you may readily find what you're searching for in just a couple of minutes.
 
Among the better free internet games internet sites offer all of the games that you may possibly think about and for free.  Personally I am a huge fan of playing matches since I see them very relaxing and I always enjoy taking small breaks in my job and revel in a couple of minutes playing with this kind of games.  With a great number of amazing totally free shooting games readily available on the web I don't get bored playing with the exact same shooting game also that I really don't need to purchase and put in some other CD in my computer so that I can take pleasure in the couple minutes Id shooting games in a while.

You could also find a great deal of fantastic memory games which may help improve your mental acuity along with your capacity to better concentrate in your own task, I love to try out a brand new game daily so as to have pleasure while I improve my memory along with my personal own attention.  In regards to spending a few relaxing minutes within my day time, nothing beats free online games internet sites and strongly urges this kind of entertainment to all of my pals. 

Additional rather than seeing occasionally dumb kiddies shows on television, your kid may have pleasure using educative completely free children games which you may readily find on the web.  Once you discover a fantastic supply of internet free games that you will get a fantastic fan yourself and maybe you may wish to share with you this fresh fire by writing a post like that one.
Where is the best place to add not-running-in-production scripts to Golang or Kotlin?
Tags: go, kotlin, help, testing
Published: 2021-03-19 10:38:21

I know I can add that to `*_test.go` for Golang; or Testing section in IntelliJ IDEA for Kotlin. But, is that a good place to go?

Sometimes, I just want to test how small chunk of code really work, rather than a real automated testing...
March 19th, 2021: What did you learn this week?
Tags: weeklylearn, discuss, weeklyretro
Published: 2021-03-19 10:27:50

It's that time of the week again. So wonderful devs, what did you learn this week? It could be programming tips, career advice etc.

<center>

![Yoda wooping someone's butt](https://media.giphy.com/media/yDYAHbqe5DfyM/giphy.gif)
</center>

Feel free to comment with what you learnt and/or reference your TIL post to give it some more exposure.

{%tag todayilearned %}

And remember, if something you learnt was a big win for you, then you know where to drop it as well.👇👇🏻👇🏼👇🏽👇🏾👇🏿

{%link https://dev.to/devteam/what-was-your-win-this-week-3mm7 %}

<center>

![Little kid making a fist as if to say "Yes!"](https://media.giphy.com/media/6brH8dM3zeMyA/giphy.gif)
</center>
The Ultimate Performance Metric in NLP
Tags: python, machinelearning, deeplearning, tutorial
Published: 2021-03-19 10:12:44

{% medium https://towardsdatascience.com/the-ultimate-performance-metric-in-nlp-111df6c64460 %}

Measuring the results of our model outputs gets a lot more complex when we’re dealing with language.

This is something that becomes quite clear very quickly for many NLP-based problems — how do we measure the accuracy of a language-based sequence when dealing with language summarization or translation?

For this, we can use Recall-Oriented Understudy for Gisting Evaluation (ROUGE). Fortunately, the name is deceptively complicated — it’s incredibly easy to understand, and even easier to implement.

Let’s jump straight into it.

### Contents
* What is ROUGE
 * ROUGE-N
 * Recall
 * Precision
 * F1 Score
 * ROUGE-L
 * ROUGE-S
 * Cons
* In Python
 * For Datasets
Stale closure: Why did my setState only triggered twice?
Tags: react, help, javascript
Published: 2021-03-19 09:57:11

I' trying to build a toast message API for React. My goal is to provide a `fireNotification()` api that can be called anywhere in the app and have React render the toast component.

I built this simple notification manager with sub/pub pattern and hope to be able to subscribe to new notifications in a `useEffect` hook

```javascript
const notifications = [];

const listeners = new Set();

function subscribe(callback) {
  listeners.add(callback);
}

function publish() {
  listeners.forEach((cb) => {
    cb(notifications);
  });
}
export function fireNotification(content) {
  notifications.push(content);
  publish();
}

export default function App() {
  const [state, setState] = React.useState();
  React.useEffect(() => {
    subscribe((updated) => {
      setState(updated);
    });
  }, []);

  // state will be logged correctly 2 times
  // won't be updated after that
  console.log("state", state);
  return (
    <div className="App">
      <button onClick={() => {fireNotification('test')}}>fire</button>
    </div>
  );
}

```


[codesandbox](https://codesandbox.io/s/wandering-snowflake-rk1d9?file=/src/App.js:525-543)

However, `fireNotification()` will only trigger `setState` twice

From the 3rd time onward, the state is not updated at all.

I'm able to make state update work by changing `setState(updated)` to `setState([...updated])`, but not sure why it works. 

Can someone explain why `setState(updated);` only triggers twice? Thanks!
send otp to whatsapp chat automatically
Published: 2021-03-19 09:53:02

I am using twilio I am sending otp to user For that I am using Http request widget for API request and I am writing function in twilio function in Function thriugh JSON response I am sending otp to user's mobile But I want to send otp automatically to whatsapp chat also .So is their any way to read OTP automatically and send to WhatsApp chatwithout user entering OTP manually in twilio node js ?
State of Java, March 2021
Tags: java, kotlin
Published: 2021-03-19 09:43:13

As always there is a lot of talks online about Java being a dead language. In my opinion, Java is picking up steam and lately, there is so much existing stuff happening that I am first time in a long time excited about Java. 

## Java 16 + 17

Java 16 was released in March. Java 16 is not an LTS (long-term support) version so many people will skip on it as they are upgrading only to LTS versions (no shame in doing that). 

But there are only a few JEPs targeted to Java 17 (which will be the LTS version, released in September). The biggest one being [JEP 356: Enhanced Pseudo-Random Number Generators](https://openjdk.java.net/jeps/356). So 16 is pretty much a very good preview of what we all be using for the next few years. 

### Best of 16

There is a lot of changes in Java 16. You can find the final list [here](https://www.infoq.com/news/2021/03/java16-released/). 

The main two ones being [JEP 395: Records](https://openjdk.java.net/jeps/395) and [JEP 394: Pattern Matching for instanceof](https://openjdk.java.net/jeps/394). There have been long writeups about both of these features.

### Records

{% twitter 1371420462555795456 %}

### Pattern Matching

{% twitter 1372838026527801350 %}

## Project Loom

The most existing feature for Java on the horizon is something called Project Loom. It's an attempt to introduce lightweight concurrency to Java. Loom will introduce a new class named Fiber. This class will behave very similar to the Thread class. But the lifecycle of fibers would be managed by Java runtime, not by the kernel. In a world where applications allow million of transactions, sessions, etc... thread for every user is not feasible. Fibers would be. 

There is no release date for Project Loom, but there are a few prototypes builds you can play with. 
[Project Loom page](https://wiki.openjdk.java.net/display/loom/Main).

## Spring Native Beta

Spring native is finally out of the alpha stage in the beta stage. What this allows you to do is using GraalVM to compile your Spring applications into a native image. Making your runtimes smaller, much more faster (almost instant startup). 
These can be deployed as standalone executables (no JVM needed) or as container images, containing minimal OS layer. You can run these on serverless with Spring Cloud Function, Kubernetes, etc... 

You can find more on [Spring Native GitHub pages](https://github.com/spring-projects-experimental/spring-native).

...

If you like what you read you can always follow me on [Twitter](https://twitter.com/pavel_polivka) to get more.
Hanákana: A Cross-Cultural Writing and Pronunciation System
Tags: typography, design
Published: 2021-03-19 09:41:05

[Hanákana](https://github.com/mountbuild/hanakana) is a Universal Writing System, backed by a JavaScript library installable through NPM, to transform an ASCII representation of text into the native font.

![Example Hanákana Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p7nvfvgxuy68hoku6557.png)

If you learn this set of 30 or so symbols (70 or so with sound tones and slight sound variants), you can read and write in any language. It also serves as a translation framework for any app.

![Example Hanákana Symbols](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pi7yocly4c76lhlxlcka.png)
Instant URLs for Static Sites - via GitHub Actions
Tags: github, static, deploy, jigsaw
Published: 2021-03-19 09:40:36

Hi all,

This is my first post in dev.to :)

## Background

I've been using GitHub Actions extensively at work and on personal projects for running test suites, but also for previewing and deploying static sites.

I found configuring S3 and CloudFront each time a real pain; there are so many options to choose from and so many settings that need to be correct in order to use S3 to host a static site, it just felt slow. It's also a pain to get "pretty" folder URLs working e.g. `/my-page/` to load `/my-page/index.html`

I also looked at other options (e.g. Netlify), but these seemed overkill for what I wanted (an instant, purely static deployment).

## Solution

So this is what I've come up with.... https://www.gostaticapp.com/ - Instant URLs for Static Sites

This allows you to deploy from a GitHub action, or directly via cURL.

Your output files are uploaded and a URL is provided in seconds.

If you have triggered the GitHub action to run on a Pull Request, it will add a comment to the PR with the URL.

## Future updates
* Right now URLs are ephemeral and last for 3 days before being deleted
* I intend to support permanent URLs and custom domains in the near future

## Article - Deploying Jigsaw CMS
https://www.gostaticapp.com/jigsaw-github-action

## GitHub action
https://github.com/marketplace/actions/gostatic-deploy

I'm keen to hear any feedback...!
SDC Day 4
Published: 2021-03-19 09:20:23

Since I have my database seeded, now what I need to do is initialize my server and then connect it to my database. I had to install and use node-postgres which is a collection of node.js modules that allow me to interface with my PostgreSQL database. The process wasn't too difficult to get my express server up and running and then linked to my database connection. I then started creating my first query to grab all the product info. However, all the info is spread across a few tables. So now I need to figure out how to combine the separate data into one object.
SDC Day 3
Published: 2021-03-19 09:14:38

Today I spent trying to finish seeding my database. I decided to make 6 tables in order to fit the format of the 6 different csv files provided. Each file contained 1-20 million entries! There were some mishaps with the copying process, such as having null values and duplicate keys, but I eventually got all the data seeded! With the duplicate key, I had my key set to primary so it didn't allow the entry to be copied. Since deleting the entry would freeze my laptop, I decided to just add the extra entry to my database by disabling the primary key. I figured I can always delete the entry later or just ignore it.
#DevHack: Skipping your GitHub Actions workflows on specific commits messages
Tags: github, devops, githubactions, webdev
Published: 2021-03-19 09:03:58

In the `doctor` project, I try to do as much as possible in one GitHub Actions workflow. Having all logic in one workflow makes it more convenient but comes with a couple of complexities. Like, do you want to run each action for every type of commit/PR/...?

![The whole GitHub Actions workflow](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5gqij03yzn1c48r2n4vm.png)

## Why I want to skip actions/jobs in my workflow

I host the documentation on Vercel. Vercel manages its build processes. You can also choose to use the Vercel Action for deploying your sources, but having it on the Vercel platform itself is straightforward.

When I was working on the documentation, I thought it would be useless to go through a complete workflow run when only the documentation was touched. I thought this does not have to happen, so why not skip these actions/jobs on specific commits. That is why I specified to skip all jobs when my commit contains `#docs` in the commit message.

> **Info**: You can use any text value that makes sense to you.

## Skipping when commits contain a text value

If you want to skip your job or actions when the commit contains a specific text value in its commit message, all you have to do is add an `if` condition. In this condition, you can use the `contains` expression.

In the case of my `#docs` commit messages, the expression looks as follows:

```yaml
jobs:
  build:
    name: Build ${{ matrix.os }} - Bash
    runs-on: ${{ matrix.os }}
    if: ${{ !contains(github.event.head_commit.message, '#docs') }}
```

![Skipping all GitHub Actions when commit message contains `#docs`](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sycbu9juty4r47ckn0fd.png)

> **Info**: You can read more about the GitHub Actions expression syntax at [context and expression syntax for GitHub Actions](https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#about-contexts-and-expressions).

*Article first published on [eliostruyf.com](https://www.eliostruyf.com/devhack-skip-github-actions-specific-commits-messages/)*
Quickly install software on a new Ubuntu installation with GMUAR
Tags: showdev, ubuntu, bash, terminal
Published: 2021-03-19 08:47:21

GMUAR -- Get Me Up And Running -- is a pure bash command-line utility program to install a host of common software on Ubuntu/Debian. This helps get software onto fresh Ubuntu installs fast.

[![emmanuelnk/GetMeUpAndRunning - GitHub](https://gh-card.dev/repos/emmanuelnk/GetMeUpAndRunning.svg)](https://github.com/emmanuelnk/GetMeUpAndRunning)

I was inspired to create this by all the `sudo apt install` commands I would have to get through  just to get a new development machine up and running. Some software also wasn't easily installable via `apt` and need the addition of repositories, `curl`ing scripts etc.

This is my solution to all of that.

Simply clone the [repository](https://github.com/emmanuelnk/GetMeUpAndRunning) and run `./gmuar.sh`

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2v8ybbyo55udxejf23za.png)

The program runs through several categories of software to install:
- setup (e.g. `curl` or `pip3`)
- utilities (e.g. `net-tools`)
- desktop (e.g. `spotify`)
- customization (e.g `zsh`)
- development (e.g. `node.js` )

It has the ability to check via `apt`, `PATH` or even filename to determine whether a  program has been installed (since not all programs are installed via `apt` or `snap`).

GMUAR can be extended by adding your own scripts to add your own desired software. Instructions are in the repository [README](https://github.com/emmanuelnk/GetMeUpAndRunning)

Check it out now!

[![emmanuelnk/GetMeUpAndRunning - GitHub](https://gh-card.dev/repos/emmanuelnk/GetMeUpAndRunning.svg)](https://github.com/emmanuelnk/GetMeUpAndRunning)

-------
Hi I'm [Emmanuel](https://emmanuelnk.com)! I write about Software and DevOps.

If you liked this article and want to see more, add me on [LinkedIn](https://www.linkedin.com/in/emmanuel-nsubuga-kyeyune/) or follow me on [Twitter](https://twitter.com/emmanuel_n_k)
React - how to make animation with CSS transition property
Tags: react, javascript, webdev, beginners
Published: 2021-03-19 08:27:07

Hi there! 👋😊

In this article, I would like to show you how to make an animated rotating square in React using transition property. ⏭

__Before we start__, I would highly recommend you to check out the __runnable example__ for the solution on our website:
[React - how to make animation with CSS transition property](https://dirask.com/posts/pYayAp)

Final effect:
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wpg0qape8kkeej5y20np.png)

Below example presents three style objects: 

- `normalStyle` which is the default style of our div element,
- `transformedStyle` which is transformed style of our div element,
- `buttonStyle` which is style of our button element.

The styles of our div have transition value set to `'1s'`. It means our component will change it's property values smoothly, over a given duration (over `1s`). Additional `transform` parameter describes moving of an element. In our case `transform` rotates the element during `2s`.

Practical example:
```jsx
import React from 'react';

// --- style objects -------------------------------

const normalStyle = {
  margin: '50px',
  padding: '20px',
  borderRadius: '10px',
  width: '100px',
  height: '100px',
  background: '#06f2ff',
  boxShadow: '5px 5px 5px #04bd57',
  transition: '1s, transform 2s',
};

const transformedStyle = {
  margin: '50px',
  padding: '20px',
  borderRadius: '10px',
  width: '150px',
  height: '150px',
  background: '#06ff76',
  boxShadow: '5px 5px 5px #3085d6',
  transition: '1s, transform 2s',
  transform: 'rotate(180deg)',
};

const buttonStyle = {
  padding: '2px',
  border: '2px solid white',
  background: 'black',
  boxShadow: '5px 5px 5px grey',
  textShadow: '1px 1px 1px black',
  fontWeight: '900',
  color: 'white',
  borderRadius: '10px',
};

// --- component -------------------------------------

const App = () => {
  const [bigSize, setBigSize] = React.useState(false);
  const handleClick = () => setBigSize(!bigSize);
  return (
    <div style={{ height: '300px' }}>
      <div style={bigSize ? transformedStyle : normalStyle}>
        <button style={buttonStyle} onClick={handleClick}>
          Change size
        </button>
      </div>
    </div>
  );
};

export default App;
```
You can run this example [here](https://dirask.com/posts/pYayAp)

>📝 Note:
>If the duration is not specified, the transition will have no effect, because the default value is `0`.

If you found this solution useful you can leave a comment or reaction 💗🦄💾.
Thanks for your time and see you in the upcoming posts! 😊

_____________
## Write to us! ✉
If you have any problem to solve or questions that no one can answer related to a React or JavaScript topic, or you're looking for a mentoring write to us on [dirask.com -> Questions](https://dirask.com/questions)

You can also join our [facebook group](https://www.facebook.com/groups/125343696143974) where we share  coding tips and tricks with others! 🔥
Updating the deployed hugo site
Tags: webdev, git, hugo, deploy
Published: 2021-03-19 08:17:58

Hi there!
In the previous article, we were discussing how to create a portfolio with Hugo and deploying the same in Github pages. if you didn't check out yet, then do check out [here](https://dev.to/yeganathan18/create-and-deploy-your-hugo-site-52ek) and give it a read 😃

This blog is a continuation of the same and in this, I'm going to share how to update hugo site which has already been deployed.

For instance, let's say I need to add my previous article to the blog section of my portfolio and update the same in the deployed site.

Since we created 2 separate repos for our hugo site, we need to push commits of both the repositories ( `hugo_site` and `username.github.io` )

In order to start, we need to open our `hugo_site` directory in the terminal.

First, make sure all the commits in local and remote are the same. so let's pull those if there are any changes in the remote.
```
$ git fetch origin 
$ git rebase origin master
```
Now as usual open the files in the editor and shoot up the terminal and write the following commands in order to start our local server.

```
$ hugo server -D
```
Do the updates/changes and make sure everything is perfect.

Stop the server now and type the following commands in the terminal...
```
$ hugo
```
> This is to regenerate HTML files in our `username.github.io` submodule

After generating the HTML files, go to the `username.github.io` directory and push all the commits to the same.

```
$ cd <username.github.io>
$ git add .
$ git commit -m "committing the regenerated html files"
$ git push origin main
```
> the last command triggers Github to rebuild our page with the changes we've made.

Now again come back to the parent/previous directory and push all those commits to our `hugo_site` repository.

```
$ cd ..
$ git add .
$ git commit -m "committing the hugo changes and updated submodule"
$ git push origin master
```

⚠️ Note ⚠️
Make sure that you push files to the respective repos and branches.
```
error: src refspec master does not match any
```
> If you face any similar error like this then probably you should check the branching you're pushing.

#### Pro-Tips for faster page loads 🔫

1. Check [PageSpeed](https://developers.google.com/speed/pagespeed/insights/) always after deployment. 
2. Avoid using 4k resolution images or videos on your site. 
3. Try using Webp format for images rather than jpeg and png.

Hope this article helps you!
Happy coding 👨🏻‍💻
Top 7 Digital Marketing Interview Questions 2021
Tags: digitalmarketing, interviewquestions, 2021, seotraining
Published: 2021-03-19 07:36:35

1.What is Digital Marketing according to you? Which are the 3 required parts of a text ad?

2.What are the most efficient Digital Marketing tools?

3.What is the difference between On-Page SEO and Off-Page SEO?

4.How to do Keyword Analysis? What tools do you use for Keyword Analysis?

5.Why is social media important for a business?

6.What is Quality Score? Which 3 factors determine Quality Score?

7.How does Google determine the Ad Rank?
Pure CSS 3d rotate 
Tags: animation
Published: 2021-03-19 07:25:24

Pure CSS 3d roate for pictures

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9k1ygm1ypqkvm1yhrqz2.jpeg)

Enjoy

https://codepen.io/mooring/full/OJbYYoJ