teleren/devto huggingface dataset:
Configure and manage Azure Key Vault
Tags: azure, security
Published: 2019-04-22 16:07:39

---
title: Configure and manage Azure Key Vault
published: true
description: Secure data and applications
tags: #Azure, #Security
---
**Manage access and permissions to secrets, certificates, and keys to Key Vault**
- You control access to a key vault through two interfaces: the management plane and the data plane
- Management plane:
    - Operations: create and delete vaults, update access policies, retrieve vault properties
    - Authentication: Azure AD
    - Authorization: RBAC
- Data plane: 
    - Operations: view and manage certificates, keys, and secrets
    - Authentication: Azure AD
    - Authorization: Key vault access policies

**Manage certificates**
Azure Key Vault–supported x509 certificate capabilities:
    - Creation of certificates:
        - Support for exportable and nonexportable private keys in PFX or PEM format
        - Autogeneration of addressable key and secret associated with the certificate
    - Secure storage and management without interaction with private keys
    - Policy-based lifecycle management:
        - Autogeneration of a default policy following certificate import (customers must definenew policies when creating certificates)
        - Support for vault-level access control
    - Auditing and notifications
        - Support for certificate contacts
    - Automatic renewal
![Alt text of image](https://thepracticaldev.s3.amazonaws.com/i/gd90h9ejvjun65px785h.png)

**Configure an HSM key-generation solution**
- Primary characteristics of Azure hardware security modules:
    - Comply with Federal Information Processing Standard (FIPS) 140-2 Level 2 security standard
    - Host cryptographic material managed by Azure Key Vault
    - Support cryptographic operations within the HSM boundaries
    - Support secure transfer of existing keys in Bring Your Own Key (BYOK) scenarios
- Transferring HSM-protected keys:
    - A customer generates a key in their on-premises environment
    - The customer uses a target key vault to generate a nonexportable Key Exchange Key
    - The customer encrypts the key with the Key Exchange Key and binds it to the vault by using an HSM-specific toolset
    - The customer transfers the key into the key vault

**Upload a secret**
![Alt text of image](https://thepracticaldev.s3.amazonaws.com/i/3egv3f9stj7ddlnxf7ct.png)

**Configure key rotation**
- A key vault allows you to update keys and secrets without affecting the behavior of your application
- You can rotate secrets in several ways:
    - As part of a manual process
    - Programmatically by using REST API
    - Through an Azure Automation script
Git, GitHub and how to keep your secrets... secret!
Tags: showdev, security, githunt, git
Published: 2019-04-30 08:19:03

---
title: Git, GitHub and how to keep your secrets... secret!
published: true
description: API keys, database credentials, private keys, ... leaked publicly on GitHub
tags: #showdev #security #githunt #git
---

Hey dev, 
 * Have you ever wondered what to do in case you leak sensitive information in public source code?
 * What can be done so that it doesn't happen?

{% github https://github.com/GitGuardian/APISecurityBestPractices %}

**Did we miss anything?**

Let us know in the comments!

**Useful?**

⭐ the repos ;)
Async Await Vs Promises, which one is better ? *panic*
Tags: javascript, node, react, developer
Published: 2019-04-30 08:09:17

---
title: Async Await Vs Promises, which one is better ? *panic*
published: true
description: Why you should be using Async-Await in your code
tags: #javascript #node #react #developer
---

Firstly - they're the same 😀

They (async awaits) are the mystery that makes every asynchronous file look pretty. They bring joy to the eyes of anyone who one saw the same joy when moving away from callback hell.

<img src="https://media.giphy.com/media/105oA1tkTBSy9a/giphy.gif" />

You guessed it, this is yet another blog about async await vs promises. But don’t worry i’ll keep it very short and hopefully this is the last one you'll need to read.

If you’re hear because you’re a little confused as to what happens or how Async Await works so magically — this abstracted explanation can shed a little better light.

Firstly lets create a promise:

```javascript
const getData = new Promise((resolve, reject) => {
  // crazy calculation that takes 10 seconds and spits out the      //number 55
  const data = 55;
  if (data) {
     resolve (55);
  } else {
     reject ("Error state");
  }
})
```
Suppose we want to call this function — the way we’d interface with it is to work with the resolve callbacks output.

Maybe there’s a button, that, when clicked on calls a `fetchInfo` function — if we were to then resolve our code with promises using the `then` property, we’d end up landing with:

```javascript
const fetchInfo = getData().then((data) => {
    return fetchFromDB(id).then((dbData) => {
      return `This is the dbData: ${dbData}`
    })
})
```
Now that doesn’t look too bad… but it can look better with Async Await — have a see yourself. The Async Await equivalent of the above
```javascript
const fetchInfo = async () => {
   const id = await getData();
   const dbData = await fetchFromDB(id);
   return `This is the dbData: ${dbData}`
}
```

I guess thats it — plain and simple a side by side comparison.

The core of Async-Await a pattern adapted from C#, is to linearise code readability, because sometimes getting lost in `thens` can make it difficult to follow code paths.

By wrapping a function in async, JS reads it to be a promise and the await within the function acts as the `equivalent` of then, to resolve the `getData` promise

---
Follow me on [LinkedIn](https://linkedin.com/in/vaibhavnamburi) || [Twitter](https://twitter.com/veebuv), heaps more articles to come

If you've got a topic you'd like me to write on - tweet me 😀

Also, I'd always love feedback on this in the comments 👇 if this helped you - support the article by hitting that ❤️
[Notice] Rainforest v.2 will be activated at block height 915,000
Tags: microbitcoin, opensource, blockchain, mining
Published: 2019-04-30 07:40:26

---
title: [Notice] Rainforest v.2 will be activated at block height 915,000
published: true
description: Rainforest v.2 will be activated at block height 915,000. Estimated for May 7th at 00:42 UTC
tags: MicroBitcoin, Opensource, Blockchain, mining
---

Details of the update can be found here
https://mbc.wiki/d/27-rfv2-upgrade-notes

Pools, exchanges, and all node holders update your daemon to the latest release

Node Update
NEWEST Rainforest v2 Release 
https://github.com/MicroBitcoinOrg/MicroBitcoin/releases/tag/0.16.7  

Rainforest v2 Countdown Tracker
https://microbitcoinorg.github.io/upgrade/
Hamburger Icons Animations
Tags: codepen, hamburger, icons, animations
Published: 2019-04-30 06:33:05

---
title: Hamburger Icons Animations
published: true
tags: codepen, hamburger, icons, animations
---


{% codepen https://codepen.io/ahmadbassamemran/pen/VQwPGr %}

<h1>Hamburger Icons Animations</h1>
<hr/>
[Do Not Forget To Like & Subscribe In The Channel:](https://www.youtube.com/AhmadEmran?sub_confirmation=1)
<hr/>
{% youtube x-XauU_nVA0 %}
Harness the Power of IoT in Transportation Industry
Tags: iot, iotinfographics, iotsolutions
Published: 2019-04-30 06:06:07

---
title: Harness the Power of IoT in Transportation Industry
published: True
description: The contribution of the transportation connectivity to the entire world is simply matchless.
tags: IoT, IoT Infographics, IoT Solutions
---
The contribution of the transportation connectivity to the entire world is simply matchless. Be it shipping products overseas, travelling across the globe, booking of everyday public transport, simplifying fleet industry operations or more, the transportation industry has evidently advanced the comfort levels of human life in noteworthy ways. Through the impactful IoT solutions, every challenge that used to disturb the operations of the transportation industry can now be dealt with strong work strategies. Making decisions for revising transportation processes based on the humidity & temperature, average speed, freight monitoring status, operating data, pressure and more has now become uncomplicated with IoT intelligence.

In IoT, the connectivity of a large number of devices effortlessly design perfect strategies for the transportation industry that successfully deal with any changes in the volatile environment. The fitting IoT solution for this industry is the one which sends customized alerts & notifications to the operators, automates regular tasks & advantageous device monitoring, makes the industry related architecture modular, flexible, scalable & standardized and channelizes artificial intelligence in favor of the goals set by the transportation service providers. Thus, tapping onto the capabilities of IoT to unclog the pathways for the transportation sector is just a wise decision away!

<a href="https://www.biz4intellia.com/iot-in-transportation/">IoT Solution for Transportation</a>

<img src="https://4.bp.blogspot.com/-FwYH1V-rAnw/XMflX14fBEI/AAAAAAAAAP4/fOKmc-W36rYP6ivhpttVC_fepRaM3KGfACLcBGAs/s640/Harness%2Bthe%2BPower%2Bof%2BIoT%2Bin%2BTransportation%2BIndustry.jpg" alt="Harness the Power of IoT in Transportation Industry">
Photos+:  A chrome extension to download photos from Google Photos in the best possible quality.
Tags: githunt, showdev, webdev, javascript
Published: 2019-04-30 05:01:42

---
title: Photos+:  A chrome extension to download photos from Google Photos in the best possible quality.
published: true
description: It allows you to download photos (from photos.google.com) in better quality than the default download button.
tags: githunt, showdev, webdev, javascript
---


If you are an Android user, chances are that you are using Google Photos to backup your photos. Google Photos is a great application and provides high quality unlimited free storage for your photos and has a lot of other neat features such as face recognition and great sharing options!

Recently, I have been spending a lot of time in Google Photos remembering past memories with a friend. I tried downloading some of the photos and realized that the quality of the photos was not that great.

I played around with the URL and changed some parameters to see if that changes the quality. To my surprise changing the parameters worked and I was able to download photos in much better quality than the default "Download" button provided.

So I made a chrome extension which adds a new button on each photo which will download the photos from https://photos.google.com in the best quality possible!

If you like it please consider dropping a ⭐. It would mean a lot to me!

Needless to say, PRs and suggestions are most welcome. ❤️❤️

{% github anamritraj/google-photos-plus %}
The issue with export default
Tags: javascript, react, vue, scale
Published: 2019-04-30 04:28:46

---
title: The issue with export default
published: true
description: A quick take on the many little ways to ensure consistency
tags: #javascript #react #vue #scale
---


"Wait there's an issue with `export default` ?" - that was my reaction too

The issue with `export default` comes down with consistency and scalability. Almost everything is perfect when you build code to serve you and your tester, but when things grow, your team grows you need to ensure practices and patterns are built for scale.

One of the most **important** patterns for scale is modularization and componentization, the words popularised by React, Vue and the likes. The concept of decoupling and separation of concerns is extremely important in this quest for scale, anyway - after teaching and going through 1000's of pull requests in my career a common issue I'd notice is the lack of consistencies when *export default* is used to expose a component.

```javascript
export default (obj) => _.reduce(obj, (accum, val, key) => {
    if (!key) return accum;
    accum[key] = val;
    return accum;
}, {}) 

```
Here we've got a simple function that rids an object of any empty/null values. For the sake of this blog, we have this in a helpers folder and call it *cleanObject.helpers.js*

All is dandy, except for when you start seeing people import this one helper in all sorts of ways across the project

```javascript
// One file
import cleanObject from '@/helpers/cleanObject.helpers'
// Another file
import ObjectCleaner from '@/helpers/cleanObject.helpers'
// One more
import NullChecker from '@/helpers/cleanObject.helpers'
```
Sure you can expect people to put it quite literal to the name of the file, however that happens not as often as expected.

> Well whats the magical hyped up fix for all of this ?

Easy, just stop export defaulting, go with `export const`, because now that you've got named functions you're exporting, the importer is constrained to the naming convention defined by the author, which maintains consistency.

Or another way to do it, is to export the function in a hashmap/object
```javascript
// ... code
export default { cleanObject: <name of function above> }

```

There you go, a nice and easy fix to making your code patterns more consistent 💪

<img src="https://media.giphy.com/media/ikMSB7JPYY1jy/giphy.gif" />

---

Follow me on [LinkedIn](https://linkedin.com/in/vaibhavnamburi) || [Twitter](https://twitter.com/veebuv), heaps more articles to come

If you've got a topic you'd like me to write on - tweet me 😀

Also, I'd always love feedback on this and if it was helpful in the comments 👇
Configure Xdebug + PHP 7 + Nginx + Any Linux Distribution
Tags: php, debugging, linux, xdebug
Published: 2019-04-30 03:20:14

---
title: Configure Xdebug + PHP 7 + Nginx + Any Linux Distribution
published: true 
description: Configuring Xdebug with PHP 7+ and NGNIX in all Linux Distributions
tags: PHP,debugging,Linux,XDebug
---

Xdebug deepens debugging PHP apps and websites to a level you can’t receive from the manual process of using code level 

```
var_dump()
```

### Get your php.ini
Next output your php.ini information into a file or place you can get the information from. I like to save mine to a file called **php-info.txt**

```
sudo php -i > ~/php-info.txt
```

### Use the Xdebug Wizard
Send the text file information into the wizard at Xdebug Wizard. Then follow the instructions the wizard supplies.

### Install php-xdebug

This will connect the php with xdebug to the editor also you can configure like editors and remote configurations.

#### Debian based distributions( Debian, Ubuntu, Linux Mint)

```
sudo apt install php-xdebug
```

#### Arch Linux

```
sudo pacman -Sy xdebug
```



### Edit xdebug.ini
Now edit the **xdebug.ini**

```
sudo nano /etc/php/7.0/mods-available/xdebug.ini
```

Then paste the following configuration

```
zend_extension=/usr/lib/php/20151012/xdebug.so
xdebug.remote_autostart = 1
xdebug.remote_enable = 1
xdebug.remote_handler = dbgp
xdebug.remote_host = 127.0.0.1
xdebug.remote_log = /tmp/xdebug_remote.log
xdebug.remote_mode = req
xdebug.remote_port = 9005 #this can be modified
```

### Restart the services

```
sudo systemctl restart php7.0-fpm
sudo systemctl restart nginx
```

### Configure the editor

In my case, I am using Sublime Text 3 so installed xdebug package using package control

Restart the sublime text.

***That’s all. You have configured Xdebug successfully !!!***

If you have any issues, Just comment below

this article originally published on [Hashnode](https://thamaraiselvam.com/configure-xdebug-php-7-nginx-any-linux-distribution-cjutjwkqh001ssns1f53yt2ez)
Skill as a Function of Interest
Tags: practice, skill, talent
Published: 2019-04-30 01:13:12

I've long grappled with the idea that some people are inherently better or worse at certain skills than others. [Some people believe it](https://blog.codinghorror.com/how-to-become-a-better-programmer-by-not-programming/), but it *feels* wrong. I want to believe that everyone is equal, but that doesn't seem to be true. For example, I had a much easier time picking up programming than any sort of social or musical talent. For others, the experience has been the opposite.

Lately, I've come to a different conclusion. I wasn't born a programmer any more than I was, for example, a musician. **The key difference was that I continued to write code enthusiastically even [when I wasn't any good](https://scratch.mit.edu/users/PullJosh/projects/?page=last).** Even the simplest progress was exciting for me, which wasn't true of other skills. That excitement fueled me to continue practicing programming even when it was hard.

**I believe that skill is a direct function of practice, and engaged practice is a direct function of interest.** *If,* in an alternate universe, I had spent 5,000 hours practicing music (like I have with programming), I would probably be pretty good. But I *can't* practice that much because I don't have the interest to sustain it.

In a way, this is the most beautiful insight of all. The only challenges you can't overcome are the ones you don't *want* to overcome. I take comfort in that.
How to extract features from a library
Tags: javascript, node, webdev, opensource
Published: 2019-04-29 02:29:34

---
title: How to extract features from a library
published: true
description: How to extract functions from a fat library? i.e. three.js. We need a tool to do it automatically.
tags: javascript,node.js,webdev,opensource
---

I've tried to extract features from open source library for a long time, i.e. `PIXI.Transform` from pixi.js or component of component library. In most cases, it's not difficult thing because most of these files haven't a complicated dependence tree. But I have some trouble when extract `THREE.TextGeometry` from three.js recently. You know, three.js is a fat library.
In fact, it's a simple work. There are some of implementations in open source community already, but I didn't find one of them can do these things directly. So I have to write a tool, it has features as follow:
- Find dependencies of file.
- Copy these dependencies as output according to the original directory structure.

## 1. Find dependencies

There are a number of libraries that can detect dependencies of file, but most of them return relative path to the dependency. For further work, an absolute path should be a better choice. So I resolve the relative path to an absolute path.

## 2. Copy dependencies

When we got absolute paths of all the dependent files, the rest work is so simple. Just need to copy all of them to the output directory. But there are something we need to pay attention to, for ensuring the directory structure is correct after copied, we should get the topmost level directory of these dependent files, base on that directory, we can build down the whole structure.

##Conclusion

After these steps, a negligible tool comes. It saved me from extracting 30+ dependencies of `THREE.TextGeometry`. I can't image how much time will be taken without this tool. In daily work, it can helps a lot when migrate some file with dependence to another place.

If you are interested in it, you can find more information about it in [hiway](https://github.com/liajoy/hiway).
Status of Ruby on Rails
Published: 2019-04-30 00:50:11

---
title: Status of Ruby on Rails
published: true
description: 
tags: 
---

I've been on the path of learning Ruby on Rails for a while now. I have built an online portfolio and a few other apps, however, I don't see a lot of job openings in the market for this language any more, and the jobs are that are available, are always requesting senior developers. My goal is to work with a company to get the idea of what it's like to work in a team environment, and then freelance, and eventually have my own start up. So the question, Is ROR still a good language to focus on? Or is it best to move onto something like Node.js? Opinions?
How to Identify Your Knowledge Gaps in Under an Hour
Tags: learning, technology, frameworks, jobs
Published: 2019-04-30 00:02:17

---
title: How to Identify Your Knowledge Gaps in Under an Hour
published: true
description: "Whether you're looking to move up in your career or are simply interested in learning more about your field, finding the gaps in your knowledge is a lot easier than you think."
cover_image: https://firebasestorage.googleapis.com/v0/b/ashleemboyer-2018.appspot.com/o/images%2Fknowledge.jpg?alt=media&token=7346c71a-a3fc-48fc-9b21-6882166632dd
tags: learning, technology, frameworks, jobs
canonical_url: https://ashleemboyer.com/how-to-identify-your-knowledge-gaps-in-under-an-hour
---

*Originally posted on [my personal blog](https://ashleemboyer.com/how-to-identify-your-knowledge-gaps-in-under-an-hour).*

The vast knowledge of the tech world can be so overwhelming. People throw out buzzwords all the time on Twitter: Kubernetes, Rails, React, Angular, Elixir, etc. What are all of these things and how does everyone else know about them?

If you're like me and don't know that many people in your area who are part of the same industry, it can be hard to figure out what frameworks everyone is hyping up through regular discussion. It doesn't have to be that hard, though. The internet is *right here*! You might be wondering, "But how am I supposed to know what words to Google for results about things I have no clue about?"

It's so easy, you already have the answer in your head. Just go over to a job search site (I'm recommending [Glassdoor](www.glassdoor.com) because it helps you get a good idea of salaries and whether or not companies are credible), search for either your current job title or the one you're interested in getting, then grab some good job listings.

You'll want to look at listings for positions that are higher than your current one. For example, being a junior-level front-end web developer, I might look at some senior-level positions. As another example, I'm really interested in learning more about web UI/UX, but don't know any of the terminology or what jobs with that focus even look like. I might search for "UX Researcher", "UX Designer", or "UX Intern" in that case.

Use all of these flashy and intimidating job listings to your benefit. The more buzzwords, the better. Also, don't be afraid to dream big. Who knows what you may come across?

---

Did you know I have a newsletter? 📬

If you want to get notified when I publish new blog posts or make major project announcements, head over to [https://ashleemboyer.com/newsletter](https://ashleemboyer.com/newsletter).

---

*[Image](https://unsplash.com/photos/Oaqk7qqNh_c) by [Patrick Tomasso](https://unsplash.com/@impatrickt) on [Unsplash](https://unsplash.com)*