teleren/devto huggingface dataset:
Just launched UpStamps on ProductHunt 🚀
Tags: showdev, javascript, webdev, producthunt
Published: 2020-06-28 14:36:46

![UpStamps Demo](https://dev-to-uploads.s3.amazonaws.com/i/tct1a9jgusqhn47afjed.gif)

What is [UpStamps](https://upstamps.com)?

UpStamps is a Feature Flag Management Platform that lets you manage every feature with a central visibility and control user interface. Teams and developers are managing their projects using feature management to progressively deliver features to users with confidence.

UpStamps helps you test in production without deployments and offers easy to use SDKs and Components for development teams to quickly build and deploy applications.

Key Features:

**Create Projects:**

Integrate different Feature Flags across multiple projects and manage across the web, mobile, and server-side applications.

**Organize by Environments:**

Separate features deployment across different environments and control their feature lifecycles.
Easily Deploy with Feature & Remote Flags:

Use flags to test faster in Production, eliminating the risk by maintaining control of the deployments. Use Remote Flags to change in real-time behavior of features through response data.

**Run A/B Tests:**

Use A/B Tests to randomized experiments with two variants and compare them with the user's response. Decide by your user's feedback which variant is more effective to launch.
Target Specific Segments:

Control who has access to new features with Segments and define Targets based on Users Device or Location.

**Why I created UpStamps?**

Why did I create UpStamps? In the projects where I work professionally, I started to notice a fear of launching new features for production. The old method delayed the launch of new features and this was not even the most relevant point. Sometimes there were situations where it was necessary to have certain features in production for specific users and we (the developers) had to use localStorage and variables to manipulate the visibility of the feature, then we always had to work on the code to disable or activate it.

So I developed a simple platform to help teams and developers to launch production features more confidently

Let me know what you think and comment below if you’d like! ❤️

[ProductHunt Link](https://www.producthunt.com/posts/upstamps)
Alias your Commands using DOSKEY
Tags: doskey, windows, alias, command
Published: 2020-06-28 14:27:26

I will make this tutorial short and straightforward with my case. So I have been using Docker CLI on `Windows` for a long time, the commands are really long to type and make you less productive. So I start to find the solution and this `Doskey` thing come in handy and make my life easier. 

<blockquote>NOTE: I have successfully implemented it on `Command Prompt`, not `PowerShell`. So I will find a way to implement it later on PowerShell.</blockquote>

So let's get started to alias your commands!

_______________

### Create your aliases command file

Let's start to make a file to store your commands permanently. For example, I have created a file with the path `C:\Users\dendi\Documents\MEGASync\Doskey\macros.doskey` and fill it with my most used docker commands and alias them like this:

```
dcps=docker-compose ps
dcud=docker-compose up -d
dcd=docker-compose down
dcs=docker-compose stop
dcl=docker-compose logs
dce=docker-compose exec
dcudnmp=docker-compose up -d nginx mysql phpmyadmin
dceulwb=docker-compose exec --user=laradock workspace bash
```

Of course you can create the file on any folder you want, but this is my example case for the following configuration.

_______________

### Register the alias commands

Click `Start` menu or hit the `Windows` key on your keyboard, then start to type 'registry editor' and enter the matched program.

Find the `HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\` directory on the tree structure in the left screen. Right click on the `Command Processor` folder and choose the `New > String Value`.

<img src="https://i.ibb.co/SnqQJmK/doskey-3.png" alt="doskey-3" border="0">

It will create the a new file on the folder and named it to `Autorun`. Then right click on `Autorun` file, choose `Modify` and fill the `Value data` with (use your own file path) :

```
DOSKEY /MACROFILE="C:\Users\dendi\Documents\MEGASync\Doskey\macros.doskey"
```

<img src="https://i.ibb.co/D7LjswH/doskey-4.png" alt="doskey-4" border="0">

Click `OK` and that's it. To make it in effect, just a new Command Prompt instance.

_______________

### Check the registered commands

Now you can open your `Command Prompt` program and execute this command to see your alias list:

```
doskey /MACROS
```

If you see your alias commands, then it should be work.

_______________

Have fun exploring DOSKEY!
Lucky You - a cross-platform app built on tauri
Tags: tauri, vue, crossplatform, showdev
Published: 2020-06-28 14:13:46

Hello there, good to see you!

In this post. I will introduce my latest open source project [lucky-you](https://github.com/jwenjian/lucky-you) to you.

It'a a cross platform app build on tauri framework and helps you doing a lucky draw or making a rolling all or similar use cases.

Screenshots in below:

![Screenshot of LuckyYou](https://dev-to-uploads.s3.amazonaws.com/i/nwbd2fkne1mgoqs6lgl5.png)
- It's tiny

It's tiny thanks to tauri, the latest version install file of Mac OS file is only 4.1Mb, 3.4Mb for Linux, 5.4Mb for Windows

- It's simple

It's simple, you just select a folder contains image files and click start then click stop, biu~  a chosen one!

- It's safe

It's safe because the code is open source, and because no network access needed. Also, the native part of tauri is written in Rust, it's safe.

Github repo is here: [lucky-you](https://github.com/jwenjian/lucky-you) , hopes you like it!

---

For windows user that failed to use the app, I build a PWA app in [here](https://luckyyou.netlify.app)([How to use?](https://github.com/jwenjian/lucky-you/wiki/PWA-App)), you can use it instead.

---

---

<a href="https://www.producthunt.com/posts/lucky-you?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-lucky-you" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=219757&theme=light" alt="Lucky You - A free, simple, beautiful PWA app to do a lucky draw. | Product Hunt Embed" style="width: 250px; height: 54px;" width="250px" height="54px" /></a>

---
See you in next post! 😁
Difference between Arrow and Normal functions.
Published: 2020-06-28 14:12:32

### Arrow function

- The arrow functions are work same as with normal functions. It was introduce in ES6.
- Syntax
    const variable = () => {}
- Ex 
    var foo = _ => 'Hii';

- It's same as
    function name(params) {
    return 'Hii';
    }

- These arrow functions are make eassy our work and readablity.
- Normal function
    - <code>var foo = function(name) {
        return function(age) {
            return function(city) {
                return `${name} ${age} ${city}`
            }
        }

    }</code>
- Arrow function
    - <code>var foo = (name) => (age) => (city) => `${name} ${age} ${city}`;</code>
    
#### Difference between normal and arrow functions.
<pre>
    var name = "Mike";
    var obj = {
        name: "Tom",
        foo: function() {
            console.log(this);
            var bar1 = function() {
                console.log(this.name); // Point to Window(Parent)
            }
            var bar2 = () => {
                console.log(this.name); // Point to current Object
            }
            bar1();
            bar2();
        }
    }
    obj.foo();
    // If we not use var it point to parent
    var bar = () => {
        var x= "sad";
        let y= "sasa";
        console.log(this.x); // Window // undefined
        console.log(this.y); // sasa
    }
    bar();
</pre>

#### Why we need Arrow function.

- Arrow functions cannot called with Constructer. 
- Arrow functions are not having their own **this**. So, we cannot update using **this**.
    - Whenever we use **this** inside the arrow function it will check parent, until not find parent.
    - Arrow alway have lasical scope.


#### When use it.

- Use arrow function only when you have to use parent's **this**.
- Use only when we need it, according to requirenment.

#### Not use.
- It has not thier own **this** so we can not call it as a **Constructor**
Free stuff for devs? Hmm...
Tags: computerscience, todayisearched
Published: 2020-06-28 14:03:43

This project aims to gather an extensive list of *free* stuff for developers to make a wide range of exciting projects.

Including *SaaS, PaaS, IaaS,* etc
 
**There's nothing more to add so just use it :D**
[Get free stuff here!](https://free-for.dev/#/)

**GitHub**

{% github https://github.com/ripienaar/free-for-dev %}
How to use bundler 2.x with Docker
Tags: rails, docker
Published: 2020-06-28 13:55:43


You would get an error if there is bundler's version difference between `BUNDLED WITH` in `Gemfile.lock` and the installed bundler.

https://dev.to/tanakaworld/how-to-resolve-you-must-use-bundler-2-or-greater-with-this-lockfile-2pf7


You can resolve the issue by followings.

1. Update the gem in image `gem update --system`
1. Install any version bundler `gem install bundler -v <version>`

Example:

```docker:Dockerfile
FROM ruby:2.6.2

ENV APP_HOME /app
WORKDIR $APP_HOME

COPY Gemfile $APP_HOME/Gemfile
COPY Gemfile.lock $APP_HOME/Gemfile.lock

ENV BUNDLER_VERSION 2.1.0
RUN gem update --system \
    && gem install bundler -v $BUNDLER_VERSION \
    && bundle install -j 4

COPY . $APP_HOME
```
How to resolve "You must use Bundler 2 or greater with this lockfile"
Tags: rails, bundler
Published: 2020-06-28 13:51:19

I've written [the same article](https://qiita.com/tanakaworld/items/e15ff9dbdd4b628378c2) in Japanese.


[bundler 2.x has been released](https://bundler.io/blog/2019/01/04/an-update-on-the-bundler-2-release.html) on Jan 4th 2019.

`BUNDLED WITH` in `Gemfile.lock` is rewritten when you run `bundle update` with bundler 2.x in your machine.

```bash
$ bundle update
•••

$ git diff
•••
 BUNDLED WITH
-   1.17.3
+   2.0.1
```

This change would make some problems on CircleCI and production environment etc.

> You must use Bundler 2 or greater with this lockfile.
![image.png](https://qiita-image-store.s3.amazonaws.com/0/31862/4f70933f-4c6c-8293-fd77-a5d1f8e95dce.png)

## Solution A: Downgrade the bundler

### Check the current version

```bash
$ cat Gemfile.lock | grep "BUNDLED WITH" -A 1
BUNDLED WITH
2.0.1
```

### Recreate Gemfile.lock with the older version

```bash
$ gem install bundler -v 1.17.3
$ rm Gemfile.lock
$ bundle _1.17.3_ install
```

### Confirm
```bash
$ cat Gemfile.lock | grep "BUNDLED WITH" -A 1
BUNDLED WITH
1.17.3
```


## Solution B: Change the bundler version in the environment. 

1. Set any version as `BUNDLER_VERSION`
2. Reinstall the bundler


```yml:.circleci/config.yml
version: 2
jobs:
  build:
    docker:
      # specify the version you desire here
      - image: circleci/ruby:2.6.0-node-browsers
        environment:
          # 1
          BUNDLER_VERSION: 2.0.1

      # Specify service dependencies here if necessary
      # CircleCI maintains a library of pre-built images
      # documented at https://circleci.com/docs/2.0/circleci-images/
      # - image: circleci/postgres:9.4

    working_directory: ~/repo

    steps:
      - checkout

      # 2
      - run:
          name: setup bundler
          command: |
            sudo gem update --system
            sudo gem uninstall bundler
            sudo rm /usr/local/bin/bundle
            sudo rm /usr/local/bin/bundler
            sudo gem install bundler

      # •••

      - run:
          name: install dependencies
          command: |
            bundle install --jobs=4 --retry=3 --path vendor/bundle
```


## References

- https://bundler.io/blog/2019/01/04/an-update-on-the-bundler-2-release.html
- https://discuss.circleci.com/t/using-bundler-2-0-during-ci-fails/27411
#025 Tips to Dockerize any web app
Tags: docker, devops, tutorial
Published: 2020-06-28 13:48:21

# Introduction

this is part 25 from the journey it's a long journey(360 day) so go please check previous parts , and if you need to walk in the journey with me please make sure to follow because I may post more than once in 1 Day but surely I will post daily at least one 😍.

And I will cover lot of tools as we move on.
***

# Tips

![tips](https://dev-to-uploads.s3.amazonaws.com/i/62d8y410oudo66s085fr.jpeg)

1. Choose A good image
The good image is the smallest one that make the job done , my favorite is alpine.
there others just search for lightweight distros you will find a lot.

2. Install only what you are going to use
Do not install apps that you are not going to use like developement tools such as vim plugins and what ever.
It's not only about space , also it's about security the more you use the more you make your system vulnerable for more exploits.

3. Run containers the you want only
Don't have multiple containers running in background that your not using , we talk before about how to stop containers.

4. make sure to use the ports your app really want , because more ports = more ways to get into your system.

5. make sure to every thing to be automated , so user doesn't want to excute any command in able to make that container will work perfectly , using an entrypoint that we talk about also.

6. make sure to setup .env to store all environment variables , also we see them in postgres example.

7. Do not save any data inside the container , instead use volumes that we talk about later . Also make sure to configure the permissions.

8. make sure that your container send logs directly to *stdout* , then you can access them using 
```bash 
docker logs
```

9. read this website [12 factor](https://12factor.net/) carefully :)

***

# End

this is the end of docker , there are more advanced later. I will make sure that I will do an full app from A to Z using all DevOps tools.
Next tool is Kubernetes! stay tuned :)
Bootstrap 5
Tags: webdev, beginners, html, css
Published: 2020-06-28 13:47:03

The latest alpha for Bootstrap 5 was released, bringing it close to a release version. It's worth checking out some of the changes and features already announced. I've put together a quick video going through the major items and a summary of what to check out.

{% youtube zYhhz_agkpA %}
<strong>[Youtube: Bootstrap 5](https://youtu.be/zYhhz_agkpA)</strong>

* Dropping jQuery
* Dropping IE support
* Adding CSS variables
* Increasing SVG icons to over 1000
* New styling, colours, etc
* Better form design
* New sizing for containers, columns and gutters
* Utilities API

* Much more!

Their current website address for the v5 library is here:
https://v5.getbootstrap.com/

## Follow and support me: 
Special thanks if you subscribe to my channel :)
* [🎞️ Youtube](https://www.youtube.com/channel/UCvM5YYWwfLwpcQgbRr68JLQ?sub_confirmation=1)
* [🐦 Twitter](https://twitter.com/adrian_twarog)
* [💬 Discord](https://discord.gg/nGdThpE)
* [❤ Patreon](https://www.patreon.com/adriantwarog)

## Want to see more:
I will try to post new great content every day. Here are the latest items:
* [Adobe XD to Fully Responsive WordPress Site](https://dev.to/adriantwarog/adobe-xd-to-fully-responsive-wordpress-site-16e0)
* [Adobe XD to HTML Full Process](https://dev.to/adriantwarog/adobe-xd-to-html-full-process-ao6)
* [Full Tutorial on how to use SASS to improve your CSS](https://dev.to/adriantwarog/full-tutorial-on-how-to-use-sass-to-improve-your-css-57on)
* [Creating a Mobile Design and Developing it](https://dev.to/adriantwarog/creating-a-mobile-design-and-developing-it-5c4o)
How to customize the Notification in CKEditor
Tags: ckeditor5, ckeditor
Published: 2020-06-28 13:32:09


## Premises

- [ckeditor5-vue](https://github.com/ckeditor/ckeditor5-vue)

## Customize it via `extraPlugins`

According to [documentation](https://ckeditor.com/docs/ckeditor5/latest/api/module_ui_notification_notification-Notification.html#function-showWarning), you can customize notification's behavior like this.


```
<template>
  <ckeditor :config="editorConfig" />
</template>

<script lang="ts">
import Vue from 'vue';
import CKEditor from '@ckeditor/ckeditor5-vue';
import ClassicEditor from '@ckeditor/ckeditor5-build-classic';


export default Vue.extend({
  components: {
    ckeditor: CKEditor.component,
  },
  data() {
    return {
      editorConfig: {
        extraPlugins: [
          editor => {
           const notifications = editor.plugins.get('Notification');
           notifications.on('show:warning', (evt, _data) => {
             evt.stop();
           });
          };
        ],
      },
    };
  },
});
</script>
```
Confusion of new managers.
Tags: tech, note
Published: 2020-06-28 13:30:59

---
title:  Confusion of new managers.
published: true
description: 
tags: Tech,Note

---

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

I recently read an article about management and made some notes to share with you

### As a new manager the following four types of statements are the most common

* A last resort I can’t do technology for a lifetime
  * many seniors have transferred to management, and I have to change.

* Success in the eyes of others
  *  If you can be a company executive, others will think of me as an excellent and successful person.

* Not disappointing the expectations of the organization
  * The superior said that I am suitable for management, and I cannot live up to his expectations for me.

* Subjective daydreaming about management
  *  You don’t need to do everything by yourself, just arrange for the subordinates to do it, it should be easier.

No matter which of the above four categories, it is difficult for you to go a long way in management. because the above four types of statements all belong to the category of "external drive".

### It is time to consider your own internal motivation and real demands, three important questions to help you make a judgment.

* Do you agree with the value of management?
  * I think management work is not as valuable as technical work, and solving problems through technical means is the coolest thing. 
  * Even if many people think you are suitable for management, if you do not think management is valuable, you will not be happy to do it for a long time.

* Are you passionate about management and enjoying these jobs?
  * Do you enjoy being responsible for the coordination and promotion of a large project? will its successful launch give you a strong sense of accomplishment?
  * Have you ever thought about what kind of processes and mechanisms can deal with the omissions in team work?

* Do you value growth in management?
  * Every manager starts from the technical backbone or business backbone. Prior to this, there was not much learning and accumulation of management, which means that you have good management plasticity, and it also means that you have too much 

### Things need learning and training.

There is a lot of awareness and ability to expand management

* Greater responsibility.

* A more stereoscopic perspective

* A more flexible way of thinking.

#### Seems to be challenges and requirements, so what can I get?

* First of all when you reach a larger platform, your ability and vision will be greatly improved

*  Secondly not only become stronger you also have a team, you can handle bigger and more complicated things and make greater achievements. 

* This will give you a stronger sense of accomplishment.

* Your influence has increased significantly

* Your abilities, achievements, and influence have been comprehensively improved, and you have received more spiritual and material rewards.

Hope it can help you :)
Easy peasy perfect square
Tags: todayilearned, javascript, beginners
Published: 2020-06-28 13:27:42

The question is to return true if the number is perfect square otherwise false. 
A **perfect square** is an integer that is the square of an integer.
Javascript provides numerous ways to write a code for this. I will let you know that this is what I did:
```
const isSquare = (n) => {
    return  (Math.sqrt(n) === Math.ceil(Math.sqrt(n)));
}
```

Below is the solution that impressed me, because it is simple Math my brain couldn't get hold of first: 
```
const isSquare = function(n){
  return Math.sqrt(n) % 1 === 0;
}
```

And it is clever and also follows the best practices!

Checking the datatype would also work using `isInteger`. But you never know when it would get obsolete! Languages change but the Math around remains the same! Choose better!
COVID19 Security Best Practices
Tags: covid19, cybersecurity, cryptography, mobilesecurity
Published: 2020-06-28 12:35:59

**Computing & Entertainment device recommendations:**
-Upgrade to a Modern Operating System and Keep it Up-To-Date.
-Exercise Secure User Habits.
-Leverage Security Software.
-Safeguard against Eavesdropping.
-Protect Passwords.
-Limit Use of the Administrator Account.
-Employ Firewall Capabilities.
-Implement WPA2 on the Wireless Network.
-Limit Administration to the Internal Network.

**Online behavior recommendations:**
-Follow Email Best Practices.
-Take Precautions on Social Networking Sites.
-Authentication Safeguards.
-Exercise Caution when Accessing Public Hotspots.
-Do Not Exchange Home and Work Content.
-Use Separate Devices for Different Activities.
-Upgrade to a Modern Browser and Keep it Up to Date.

**Securing Wired Home Networks:**
-Change default password on the Internet router.
-Ensure device cannot be administered from outside the home network.
-Configure the device to silently ignore unsolicited requests sent to it.
-Check for updates and apply them periodically.
-Disable built-in wireless access points (APs) that are not used.

**Securing Wireless Home Networks:**
-Use strong encryption to protect communications.
-Use a WPA2, WPA, or WEP key.
-Permit access for only particular wireless network cards.
-Change the default service set identifier (SSID).
-Disable SSID broadcasts from the wireless AP.
-Disable AP administration through wireless communications.

**Securing BYOD Telework PCs:**
-Software Updates.
-Use Accounts with Limited Privileges.
-Protect Accounts with Passwords.
-Protect User Sessions from Unauthorized Physical Access.
-Disable Unneeded Networking Features.
-Limit the Use of Remote Access Utilities.
-Install and Configure Antivirus Software.
-Use Personal Firewalls.
-Enable and Configure Content Filtering Software.
-Use a different brand of web browser for telework.
-Block popup windows.
-Enable phishing filter capabilities.
-Remove unneeded browser plug-ins.
-Protect sensitive information stored by the browser.
-Prevent website passwords from being recalled automatically.
-Run web browsers with the least privileges possible.
-Use third-party security and privacy enhancing plug-ins.

**Securing BYOD Telework Mobile Devices:**
-Limit access to the device.
-Disable necessary networking capabilities except when they are needed.
-Keep devices updated.
-Configure applications to support security.
-Download and run apps only from authorized app stores.
-Do not jailbreak or root the device.
-Do not connect the device to an unknown charging station.
-Use an isolated, protected, and encrypted environment that is supported and managed by the organization to access the organization’s data and services.

*Reference: NIST, NSA*
Javascript for Beginners
Tags: javascript, codenewbie, beginners, tutorial
Published: 2020-06-28 13:16:00

From today I am going to start writing blogs on the fundamental concepts of JavaScript. 

Each day, I aim to publish a post that consists of a detailed explanation of the javascript concepts. 

My blog is going to be for someone who is completely new to the Javascript. 

If you have already some basic knowledge of javascript, This might not be helpful for you. 

Tomorrow I am going to cover the following topics.
  1. What is Javascript?
  2. How to Run Javascript code in Script tag, browser console, 
    external file.