teleren/devto huggingface dataset:
Hi Devs!
Tags: react
Published: 2020-02-15 09:53:36

Hello! I’m Sebastian, an IT project manager and developer in Berlin. I’m also crazy about board games: playing a lot, logging game scores and writing reviews.

Board games are fast evolving hobby: In 2019, about 5000 new games were published! Although I’m well connected with the Berlin board games community, it’s still hard to catch up with who is playing what. Specifically, I would like to know when my friends signal an interest to play a game, or when they bought a new game.

For this specific information need, I started to develop a web app. The app shall help you to put together a collection of board games that you are interested in, and to find people with similar interests.

The tech stack is React, Express, MongoDB.  It’s still some time before releasing, yet I have already learned a lot about a broad range of topics: React functional components, React hooks, React Redux, CSS flex box design, CSS animations, React transition groups, acceptance tests with puppeteer, NoSQL databases, REST APIs and more.  I want to help others to get along with these topics, and therefore will write small blog posts about the most interesting topics, reflecting what I learned.
wow another vendor understands oauth
Tags: oauth, api
Published: 2020-02-15 09:51:50

todays thumbs up goes to [TweetBinder](https://www.tweetbinder.com/dashboard/#/advanced-report/stats/5df11ad5-3b9c-4532-bb36-88c13f7568ce) they promise they WONT 'tweet as me', 'dm my friends' or anything else nasty


```
This application will be able to:

    See Tweets from your timeline (including protected Tweets) as well as your Lists and collections.
    See your Twitter profile information and account settings.
    See accounts you follow, mute, and block.
    See your email address.
```

YES
YES
YES
&
YES

![YES BABY](http://www.memesboy.com/wp-content/uploads/2018/12/Yes-Baby-Meme-Yes.jpg)
Implémenter Waves Keeper dans vos applications html / javascript
Tags: blockchain, wavesplatform, smartcontract, node
Published: 2020-02-15 09:43:32

Nouvelle vidéo sur l'utilisation de Waves Keeper dans vos application web. 
Une extension navigateur pour d'interagir avec les comptes des utilisateurs Waves en toute sécurité.

https://www.youtube.com/watch?v=jxAzFSuap8U

Waves Keeper, cette extension navigateur, similaire à Metamask, permet aux utilisateur de votre application Blockchain de gérer l'ensemble de leurs comptes directement depuis le navigateur et de manière entièrement sécurisée.

Nous voyons ici comment utiliser cette extension depuis une simple application web pour récupérer les informations publiques de l'utilisateur, lui proposer un formulaire et lui permettre d'effectuer un transfer de Waves Token vers une autre adresse via Waves Keeper.

PROCHAINES VIDEOS

19 février
Préparer son environnement de développement local est la suite logique après s'être familiarisé avec l'IDE en ligner. Nous verrons comment installer l'ensemble des éléments, à savoir l'extension Waves pour VS CODE, une node privée via Docker, le plugin Surfboard etc.

22 février
Utiliser son environnement précédemment installer et comprendre l'ensemble des fonctionnalités de Surfboard pour la création, la compilation et un déploiement rapide de vos smart contract

25 février
RIDE V4 et Waves node 2.0 arrivant sous peu, nous passerons en revue l'ensemble des changements liés à ces nouvelles version, pour RIDE mais aussi pour le protocole Waves.

Suivez nous et posez toutes vos questions sur :

Telegram : https://t.me/wavesdappsFR
Twitter : https://twitter.com/WavesDevFr
Youtube : https://tinyurl.com/ulgjznf
https://www.wavesplatform.com
Top 10 Programming Languages [2020]
Tags: cpp, c, java, python
Published: 2020-02-15 09:26:02

Thought should make a Handy resource for new learner. I am not going to write a lengthy article here, just the link of all best videos of top programming languages rated that are available on Youtube.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/0me982ftdfwgl50xplix.jpg)

Listed contain only full video not playlist. Not sorted according to ranking.
C/C++

C++

    https://www.youtube.com/watch?v=mUQZ1qmKlLY&t=10s

    https://www.youtube.com/watch?v=vLnPwxZdW4Y

    https://www.youtube.com/watch?v=_bYFu9mBnr4

    https://www.youtube.com/watch?v=yGB9jhsEsr8 (Hindi)

    https://www.youtube.com/watch?v=BClS40yzssA

C

    https://www.youtube.com/watch?v=oCNDqFXGCv8

    https://www.youtube.com/watch?v=-CpG3oATGIs

    https://www.youtube.com/watch?v=vl794HKeXug

    https://www.youtube.com/watch?v=KJgsSFOSQv0

    https://www.youtube.com/watch?v=8PopR3x-VMY

Java

    https://www.youtube.com/watch?v=WqQsuIW2CFE

    https://www.youtube.com/watch?v=8cm1x4bC610

    https://www.youtube.com/watch?v=eIrMbAQSU34

    https://www.youtube.com/watch?v=ZXsFEie9GMc

    https://www.youtube.com/watch?v=grEKMHGYyns

Python

    https://www.youtube.com/watch?v=_uQrJ0TkZlc

    https://www.youtube.com/watch?v=rfscVS0vtbw

    https://www.youtube.com/watch?v=WGJJIrtnfpk&t=1s

    https://www.youtube.com/watch?v=pJ3IPRqiD2M

    https://www.youtube.com/watch?v=vaysJAMDaZw

PHP

    https://www.youtube.com/watch?v=OK_JCtrrv-c

    https://www.youtube.com/watch?v=hx38tnlYGlA

    https://www.youtube.com/watch?v=NihZYkNpslE

JavaScript

    https://www.youtube.com/watch?v=PkZNo7MFNFg

    https://www.youtube.com/watch?v=o1IaduQICO0

C#

    https://www.youtube.com/watch?v=GhQdlIFylQ8

    https://www.youtube.com/watch?v=hZBtr8p9GGc

    https://www.youtube.com/watch?v=qOruiBrXlAw

Go

    https://www.youtube.com/watch?v=YS4e4q9oBaU

    https://www.youtube.com/watch?v=Q0sKAMal4WQ

    https://www.youtube.com/watch?v=SqrbIlUwR0U

Swift

    https://www.youtube.com/watch?v=Ulp1Kimblg0

    https://www.youtube.com/watch?v=comQ1-x2a1Q

    https://www.youtube.com/watch?v=ot1AKV9kfAo

R Programming

    https://www.youtube.com/watch?v=_V8eKsto3Ug

    https://www.youtube.com/watch?v=eDrhZb2onWY

    https://www.youtube.com/watch?v=NGGxJ754Q1c

    https://www.youtube.com/watch?v=s3FozVfd7q4

Matlab

    https://www.youtube.com/watch?v=T_ekAD7U-wU

    https://www.youtube.com/watch?v=NSSTkkKRabI
What if a ReactJS app is structured so that App State is the App container, and App and all components are context consumers?
Published: 2020-02-15 09:15:55

I wonder if a ReactJS app is structured this way, will it work properly:

 1. All the app state is inside an app context and the `App` is under `AppContainer`.
 2. The App and all components can be the context consumers.
 3. Each component has a "data of concern" setter assigned to it.
   - inside the component, every state is local and independent of the component, except when the final value is obtained by user interacting with the component, it is set by the handler from the context to "set the data of concern".
   - for example, each Counter component works independently, and can be implemented by any method, but all the parent and App cares is, when the value is ready, set it into the "data of concern" in the context
 4. This way, the App or any component has access to all the app data, if needed.
 5. The component can set data using these "global data setters", but since those are passed down by props, if there is any error, we can grep for which components might be the one setting the data accidentally easily, just by grep'ing for that setData() callback name.
 6. It does mirror the HTML way: we have different elements, such as input field, date picker `<input type="date">`, color picker `<input type="color">`, etc, and we only care what the final value that it provides, and don't really care how it is implemented internally.

A sample is on: https://codesandbox.io/s/festive-platform-kjx5u

There are 3 counters, and they are independent components, and keep the count for Noodles, Drinks, and Snacks, and set the count into a property in the context when user interacts with the counter.
Tracking documents with Canarytokens
Tags: honeypots
Published: 2020-11-03 18:53:29

---
title: Tracking documents with Canarytokens
published: true
date: 2020-02-15 08:30:00 UTC
tags: Honeypots
canonical_url: https://ianmuchina.com/blog/canarytokens
---

## Introduction

The ability to track Documents might come in handy in some situations. To do this we use Canarytokens. These are files and links that trigger email alerts anytime anyone accesses them.

In this article, I will go over how to create and deploy these tokens.

![Tracking Documents over the internet](https://i.imgur.com/aSRi2X6.jpg "Tracking Files ")

## Things You Will Need

- Email Address
- Target With An Internet Connection

### 1. Creating the file

- Go to [canarytokens.org](http://canarytokens.org)
- Choose either a Word Document or an Adobe PDF token
- Enter an email address where alerts will be sent
- Choose an appropriate reminder eg: “Opened”
- Click on _“Create My Canary Token”_
- Download the token

![Creating a Token](https://ianmuchina.com/assets/img/posts/canarytokens/uXAWKII.webp)

### 2. Setting up the file

After Downloading the file you should:

- Rename the file
- Edit the content of the file
- Send the file to someone
- Wait for an alert

### 3. Receiving Alerts

The alerts contain:

- The IP address the file was opened from
- A Reminder if you wrote one
- The time and date when the file was opened

If someone with internet access opens the document, you will be alerted. Usualy within seconds.

## Further Reading

[Official Documentation](https://docs.canarytokens.org/guide/)
http requests received turned into an Iterator
Tags: typescript, http
Published: 2020-02-15 08:11:52

---
title: http requests received turned into an Iterator
published: true
description: I wanted to have a function that wraps a webserver and returns a stream of events received by that webserver
tags: typescript, http
---

There are a few situations where this sort of thing is useful and I have an important one at work right now.

I thought this was hard at first and I looked at a few modules for doing it... but then I slept on it and ... ta da!

```
import fetch from "node-fetch";
import {Response} from "node-fetch";
import * as express from "express";
import {EventEmitter} from "events";

async function* gt() {
    const app = express();
    const eventThing = new EventEmitter();
    app.post("/", function (request, response) {
        response.sendStatus(204);
        eventThing.emit("helloEvent", {
            token: ["hello", "world"]
        });
    });
    app.listen(8000);

    const queueEvents = new EventEmitter();
    const queue:any[] = [];
    eventThing.on("helloEvent", e => {
        queue.push(e);
        queueEvents.emit("queueReady", queue);
    });

    const response:Response = await fetch("http://localhost:8000/", {
        method: "POST"
    });
    setInterval(async _ => {
        const response:Response = await fetch("http://localhost:8000/", {
            method: "POST"
        })
    }, 6000);

    while (true) {
        while (queue.length > 0) {
            yield queue.pop();
        }
        await new Promise((resolve, reject) => {
            queueEvents.once("queueReady", resolve);
        });
    }
}

async function test() {
    const stream = gt();
    let next = await stream.next();
    while (!next.done) {
        console.log(next.value);
        next = await stream.next();
    }
}

test().then();
```

I guess you could make it an IterableIterator too.

I am not sure this is perfect. Would I lose events between the end of the queue in the while loop and the next queue.once? I'm not sure. Anyone wanna tell me?
Talking Remote Work on the Hanselman Podcast
Tags: podcast, remotework, productivity, engineering
Published: 2020-04-02 07:20:26

---
title: Talking Remote Work on the Hanselman Podcast
published: true
date: 2020-02-15 08:00:00 UTC
tags: podcast, remotework, productivity, engineering
canonical_url: https://www.jaysonjphillips.com/blog/2020/02/talking-remote-work-on-the-hanselman-podcast/
---

I had the [immense pleasure of speaking with Scott Hanselman](https://hanselminutes.com/723/surviving-as-a-remote-tech-employee-with-jayson-j-phillips) on the topic of being a remote employee in a technological function. Scott's being doing this forever, and I've been doing it for a couple of years now, so it was a great exchange of ideas and experiences of what has worked and not worked for us as professional WFHers.

We had a nice, long form discussion on some of the items I mentioned in my earlier [blog post](https://www.jaysonjphillips.com/blog/2020/02/ideas-on-making-remote-work-work-for-you/) on the topic of working remotely: as engineers, and people managers in a technical function and as folks who have personal lives that they have to _integrate_ with their work, being that their entire professional life is embeded in a place that's at the core of their personal lives.

Scott shares a few of this hard-earned tips for making this work and also shares a particular viewpoint on not allowing ourselves to _live our lives by default._
Android Layouts Hands-On (Tagalog) 
Tags: tutorial, android, beginners, kotlin
Published: 2020-02-15 07:51:09

A hands-on tutorial + explanation of android layouts. (In Tagalog)

What can you expect from this video:

- Learn about android layouts
- Learn the Linear and Constraint Layout
- Learn the difference between px and dp
- Learn how to create user interfaces using XML
- Learn the difference of margin and padding
- Coding / Debugging tips and tricks

https://youtu.be/dgzvP1VduIo
Fill in the Gaps of Your CS Education with MIT
Tags: mit, computerscience, bash, beginnner
Published: 2020-02-15 06:58:36

So you are studying for a computer science degree or you are self taught programmer or a software engineer who recently joined the workforce. You feel there are little gaps in your CS foundations which is affecting your confidence and making you feel like an imposter.

Luckily, MIT CSAIL (computer science and artificial intelligence lab) has just published an 11 lecture course for free on the internet along with lecture notes and exercises. And guess what! the course title is "the missing semester of your CS education". (link is at the end)

## What is it about
The course walks you through most of the tools you should know as a software engineer.

It begin with the shell, how it works, how to use, what is the PATH environment variable, writing bash scripts, and piping commands together.

Then it talks about text editors like Vim that you should start using. If you don't know what vim is then you should read my article on it [here on DEV.](https://dev.to/abdelrahmanabdelnabi/why-vim-is-great-and-why-use-it-1ecf) They also talk about "tmux" which is a a very useful tool for managing terminal sessions and grouping them into panes and windows.

Next up is data wrangling, which is just a fancy name for transforming data from one format to another. This is a great lecture which talks about some of most useful linux commands like `sed`, `awk`, `grep`, `head`, `tail`, `cat`, `ssh`, `sort` and `uniq`.

The course then talks about the command line environment, processes, how to kill them, background/foreground them, command aliases, dot files, terminal emulators.  Then it introduces git, the most popular version control system.

Finally, it switches to more advanced topics like debugging, profiling for code optimization, build systems (the `make` tool, package/dependency managers, CI systems), security and cryptography.

The course ends with topics chosen by students. They discuss a lot of separate but very interesting (mostly linux) tools and tricks that you must know and then exits with a Q&A lecture.

## Should I watch it?
Absolutely, if the description I wrote in the introduction applies to you, then you should definitely take it. Luckily, the course isn't too long and you should be able to finish it quickly. Trust me, it will make you life (especially on linux) much easier as a software engineer.

## Where is it?
So without further ado, here is [the link.](https://missing.csail.mit.edu/)
Membuat cover buku dengan cepat (cocok nih buat Wattpad)
Tags: wattpad, cover, builder, javascript
Published: 2020-02-15 06:46:13

---
title: Membuat cover buku dengan cepat (cocok nih buat Wattpad)
published: true
description: Cara cepat membuat cover buku
tags: wattpad, cover, builder, javascript
series: Lifehack
---

Kadang kan kita pengennya ya nulis aja di Wattpad. Nggak mau mikirin cara buat covernya. Nah, untungnya developer Dev membuat cara cepatnya nih.

Buka aja <https://dev.to/rly>.

Jadi, kita cukup masukkan aja judulnya, penulisnya, dan beberapa keterangan.

Misalnya aja, ini hasilnya yang kubuat:

![Cover yang sudah jadi](https://dev-to-uploads.s3.amazonaws.com/i/7wgddb9fhor7tqhj1k4h.png)
Git Merge: friend or fiend?
Tags: gitgitmergemerge
Published: 2020-02-15 06:32:43

---
title: Git Merge: friend or fiend?
published: true
description: Git
tags: git git-merge merge
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/pkm2jkprz0uacy872arc.jpg
---

A little knowledge is a dangerous thing. When I first learnt to drive, I thought I was a 17 year old version of [Michael Schumacher](https://en.wikipedia.org/wiki/Michael_Schumacher), one of the best formula one racers of the time. I look back on those years of driving around with my friends and I'm terrified! How did I survive!

I feel a little like that now looking back on what I "knew" about Git last week and what I know now. `git merge` started out on Monday as a fiend but on Friday I welcomed it into my life like a long lost friend because of some great power features that make my life much easier now I understand it a little better.

## Git Merge Comes As Standard

`git merge` is a command that comes as standard when you install git. It's used for merging one or more commits into the branch you have currently checked out. It's most commonly used for merging one branch into another one. For example merging your feature back into the `master` branch.

## Merge Lots of Branches At the Same Time

`git merge <commit-sha-1> <commit-sha-2>` will merge as many commits as you like! This uses the merge strategy `octopus`, by default. You'll probably not need to know what it does exactly, but it's the default-and it sounds cool.

## Use the Branch or Tag Identifier Instead of SHA

You can use a branch identifier like `develop` or a tag like `v1.0.0` instead of going to the trouble of finding a specific commit SHA :)

```js
git merge v1.2.3
```

I needed to merge multiple tags together and it would have been a real pain if this feature wasn't there.

## Specify Different Merge Strategies

By default `git merge` uses a `recursive` merge. All you need to know is that it is the one that avoids the most conflicts.

There are other strategies. Using the strategy `ours` uses the current branch changes over the one being merged in if there are any conflicting changes.

```
git merge --strategy ours 
```

You can also specify `theirs` as a strategy to take the changes from the incoming branch.

## Merge Branches That Have No Common History

Most of the time you will be using `git merge` inside one repository but you don't have to limit yourself. By adding a second remote you can merge any branch from any other repository with the flag `allow-unrelated-histories`. One caveat, if you have the same filenames in both repositories get ready for lots of merge conflicts. :)

```
git remote add other-repo git@github.com:peterjgrainger/other-repo.git
git merge other-repo/master --allow-unrelated-histories
```

## Loads More Great Features

I realise now that I know nothing about git, I've only scratched the surface. If you want to read more about `git merge` see the documentation <https://git-scm.com/docs/git-merge>. It's not the most interesting read but a good reference.
Crypto Blog aims to unearth some of the unique voices
Tags: cryptoblog, topcryptoblogs, blockchainblogs, blog
Published: 2020-02-15 06:25:10

Crypto Blog aims to unearth some of the unique voices and make them heard to a large audience. If you’re a content creator, feel free to contribute to our site and leverage our massive outreach. For more information, visit our website 👉https://blog.cryptoknowmics.com

Don't forget to follow us at Crypto Blog on Facebook 👉 https://www.facebook.com/OfficialCryptoBlog
Thoughts on Glimmer
Tags: javascript, ember, webdev
Published: 2020-02-15 05:59:29

> This post was originally published on [my blog](https://samw.dev/blog). I have a "Daily Jots" series where I post short, unedited posts every day about random topics. Take a look if you're interested.

I’ve recently gotten into learning [Ember.js](https://emberjs.com/) for a new project I’m wanting to create ([my hackathon registration system, Registrar](https://github.com/samwightt/registrar)). While doing so, I came across [Glimmer](https://glimmerjs.com/guides/tracked-properties), Ember’s new component engine that’s been extracted from the framework. Glimmer’s been around since 2017 (or a bit earlier), but it was kinda revolutionary for its time: it’s a VM written in JavaScript that efficiently parses bytecode that’s compiled from Handlebars templates. There’s a number of large benefits to this:

* Parsing and compiling JavaScript takes a **significant** amount of time. There’s a reason why the Chrome team [recommends that if you’re passing down large amounts of JSON content, you use JSON.parse to process it instead of just including it in your JS](https://www.youtube.com/watch?v=ff4fgQxPaO0). Browsers can run `JSON.parse()` faster than they can process the raw object in JavaScript because JavaScript is a more syntactically complex language. The same goes for things like React apps. It takes a significant amount of time to process and compile the hundreds or thousands of `React.createElement()` calls that there might be in a typical React app, which results in a longer [First Meaningful Paint](https://developers.google.com/web/tools/lighthouse/audits/first-meaningful-paint). Glimmer gets rid of this entirely by just reading in a **raw binary**, which doesn’t have to be parsed at all. Zero parse.
* Glimmer also extracts the strings out of the compiled Handlebars and lets the bytecode reference individual string locations in a root string array. It also **deduplicates** this array, which means that you’re saving size across your entire app.
* Glimmer is actually set up as two different VMs: an **append** VM and an **update** VM. Because Glimmer can see what variables are used where in your Handlebars templates, ti can use **update bytecode** to efficiently update only the DOM attributes that need updating when a dynamic variable has changed, instead of having to re-render the entire application like in React.
Again, these were conversations going on in **2017**, kinda before the whole “package size” talk became mainstream with Svelte. Glimmer overall just seems pretty amazing.

If you want to learn more about all of this, here’s a few resources I highly recommend checking out:

* [Tom Dale’s post on compilers being the new framework](https://tomdale.net/2017/09/compilers-are-the-new-frameworks/)
* [**Tom Dale’s tech talk on how Glimmer works under the hood**](https://www.youtube.com/watch?v=nXCSloXZ-wc)
* [“Glimmer 2, Ember’s new DOM rendering Virtual Machine” by Gavin Joyce](https://www.youtube.com/watch?v=l2nD1IxjHUI)
Web Design and Development company Gurgaon

Tags: webdesigningcompanygurgaon
Published: 2020-02-15 05:51:18

Zeacreations is the top leading Web Designing and Development Company Gurgaon and we focused on results-driven and creative solutions for other companies. Gurgaon is the best place where you can get 100% true services. We help brands to grow online, improve their brand value and doing business World-wide. We develop sites and help companies across the country and increase their revenue through smart marketing strategies. Zeacreations having an expert team of design and develop a website.