teleren/devto huggingface dataset:
Lisa Crispin releases a free course on 'Test Automation in DevOps'
Tags: testing, devops, tutorial, beginners
Published: 2019-08-29 16:14:23

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/r4qtep8uxjnukxfut5sb.jpg)

Recently, Lisa Crispin - co-author, with Janet Gregory, of 'More Agile Testing: Learning Journeys for the Whole Team', and 'Agile Testing: A Practical Guide for Testers and Agile Teams' - published a new, free course on Test Automation University for learning more about Test Automation in DevOps.

In this course, Lisa provides guidance to learn the different ways a team can use test automation to successfully deliver business value to customers frequently at a sustainable pace. She covers some basic concepts and terminology about DevOps, continuous delivery, and continuous deployment as well as techniques for operability and learning from production use.

Lisa also talks about automation strategy for DevOps, how to use automation - both for testing before and after release - to reduce risk and guide the development process. She also shares some ways to shorten feedback loops for the team itself.

To learn more and dive into the tutorial, head over to https://testautomationu.applitools.com/test-automation-in-devops/
Free Tools for Creating Great Content
Tags: webdesign, freetools, contentcreation, media
Published: 2019-10-17 04:01:14

---
title: Free Tools for Creating Great Content
published: true
date: 2019-08-29 16:12:15 UTC
tags: web design, free tools, content creation, media
cover_image: https://i1.wp.com/geekyminds.co.in/wp-content/uploads/2019/08/free-tools-for-creating-great-content.jpeg
canonical_url: https://geekyminds.co.in/free-tools-for-creating-great-content/
---

Creating great content requires out-of-the-box ideas and a lot of research, effort and time to reach the correct audience. There is an endless number of tools for creating the content you want to deliver and some of them are incredibly costly. 

While there may not always be a perfect free alternative, here are some free services which provide typography tools, stock photo and videos, royalty free music and some other useful apps we use for content creation.

[Continue reading "Free Tools for Creating Great Content"](https://geekyminds.co.in/free-tools-for-creating-great-content/)

The post [Free Tools for Creating Great Content](https://geekyminds.co.in/free-tools-for-creating-great-content/) appeared first on [GeekyMinds](https://geekyminds.co.in).
How do you handle role/permissions updates with JWT?
Tags: security, jwt, rest, discuss
Published: 2019-08-29 15:59:23

---
title: How do you handle role/permissions updates with JWT?
published: true
description: What is your approach to feed back your user's UX about authorization changes?
tags: security,jwt,rest,discussion
---

Usually, JWT implementations in a REST Api backend save the user roles and/or permissions inside the JWT token claims. In this cases, clients make use of this claims to restrict user's interaction with some of the app features.

There are some user, or server, actions that update the user's authorization roles/permissions. However, **the last emitted JWT token has not expired yet** so it still has the old roles/permissions in it's claims.

How do you or your team handle this scenarios in order to update user's authorization in client side apps?

I've seen many options out there:
- Create a token version and update it in server side to compare with new request
- Keep token lifetime short
- Use refresh token mechanism and invalidate the user's current token

I want to hear you...
5 Minute Solution for Viewing Logs in a Laravel App
Tags: laravel, php, tutorial
Published: 2019-08-29 15:43:48

### Introduction
Hi All, it’s been a few months since my last Laravel related post. So I decided to write something small to get back into the schedule. I plan to publish something every month or even more frequently.

We have all been there, your Laravel app isn't working as expected and you want to get to logs as fast as possible. In most situations we may not have easy access to the log files because we need an ssh client to connect to the server, then navigate to the logs and finally view the last entry in there. It's always a pain in the neck to do this. In this post, I want to show you my simple solution to viewing logs from within the app. I implemented this on a recent client project and it works quite well.

As always, if you have a better implementation, please share, I would love to know about it.

### TLDR;
Here’s the overview of my solution. I have a route to a page, who’s controller reads that day’s log file and sends to the view. The view has 2 parts to it, first, it has a form to change the date of the currently viewed file and secondly the part where the logs are shown.

Pretty simple aye. If it was not clear enough, check the code from below.

### Code

First off, add a route where you want to display the log file entries
![Route file content](https://i.imgur.com/hZ22Hcy.png)

Then comes the controller, below is the logic for the controller. Here we get the date for when we need the logs for. Then we extract information about the file and it's contents and send it to the view.

![Controller file contents](https://i.imgur.com/TDQp1QZ.png)


Here in the view, we have 2 parts, one to change the date of the Log file and the other is to view the actual Log file's contents.
![View file contents](https://i.imgur.com/AgfUdSi.png)

Once you put everything together, you will have your own Log Viewer. The image below is what I have after adding some CSS. Not bad for like 5 minutes of work, ah.
![Final result](https://i.imgur.com/UhphURe.png)

### Conclusion
I hope this solution is of some use to you. If you have a better solution to do the same, do let them know. I am more than glad to try it.

**Related resources**

 - [https://laravel.com/docs/6.0/errors](https://laravel.com/docs/6.0/errors)
 - [https://github.com/rap2hpoutre/laravel-log-viewer](https://github.com/rap2hpoutre/laravel-log-viewer)
 - [https://github.com/ARCANEDEV/LogViewer](https://github.com/ARCANEDEV/LogViewer)

That's all for now. Talk to you in the next one.
More about me at [SimplestWeb.in](https://simplestweb.in/?utm_campaign=LCJobs-launch-article)
Ads In Your Linters
Tags: discuss, javascript, opensource, healthydebate
Published: 2019-08-29 15:17:17

There has been some [discussion](https://www.reddit.com/r/javascript/comments/cvo87k/popular_javascript_library_starts_showing_ads_in/) on Reddit and likely Twitter/HN/elsewhere about this topic, but I hadn't seen it come up here yet.

The problem: [standard](https://standardjs.com/), a widely used and highly opinionated linter for JavaScript, recently started including advertisements served straight to your terminal when you install the tool, as reported by [ZDNet](https://www.zdnet.com/article/popular-javascript-library-starts-showing-ads-in-its-terminal/).  Check out that article for a screengrab of a banner that gets served, pushing [LogRocket](https://logrocket.com/).

Naturally, this is *controversial*.  One one hand, some of these OSS projects are underfunded, and need to monetize more effectively if they hope to continue providing value.  On the other hand, *there's now ads in your freaking terminal too*.  Do you want these clogging up your CI/CD logs?  Is this yet another step towards the dystopia of cyberpunk hysteria?  Or, is it just not a big deal?  We can choose to use or not use this product, and should do so and move on without getting up in arms.

How do you feel about this practice?  Will you be removing `standard` from your toolset as a result?  How should the ecosystem as a whole handle this idea?

I don't write a *ton* of JavaScript, but when I do I generally have used `standard`.  I'm still not sure whether or not this news will change that preference.

*Photo by Darren Chan on Unsplash*
Shamir's Secret Sharing Scheme in JavaScript
Tags: security, javascript, authentication, passwords
Published: 2019-08-29 14:51:40

Passwords are kryptonite to security so they need to be strong and never reused. Developers agree with that last sentence then don't give their users a way to safely back up a strong password. We should offer users the ability to recover a strong password using [Shamir's Secret Sharing Scheme](https://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing). Users can then confidently use a unique strong password knowing they will not become locked out. 

What exactly is Shamir's Secret Sharing Scheme? It is a form of secret splitting where we distribute a password as a group of shares. The original password can be reconstructed only when a sufficient threshold of shares are recombined together. Here is example code showing how this works using the [shamir](https://www.npmjs.com/package/shamir) library: 

```javascript
const { split, join } = require('shamir');
const { randomBytes } = require('crypto');

// the total number of shares
const PARTS = 5;
// the minimum required to recover
const QUORUM = 3;
// you can use any polyfill to covert between string and Uint8Array
const utf8Encoder = new TextEncoder();
const utf8Decoder = new TextDecoder();
 
function doIt() {
    const secret = 'hello there';
    const secretBytes = utf8Encoder.encode(secret);
    // parts is a object whos keys are the part number and 
    // values are shares of type Uint8Array
    const parts = split(randomBytes, PARTS, QUORUM, secretBytes);
    // we only need QUORUM parts to recover the secret
    // to prove this we will delete two parts
    delete parts[2];
    delete parts[3];
    // we can join three parts to recover the original Unit8Array
    const recovered = join(parts);
    // prints 'hello there'
    console.log(utf8Decoder.decode(recovered));
}
```

Cryptocurrency wallets use Shamir's Secret Sharing to enable users to back up their passphrases. This solves the problem that if someone dies the bitcoins can be passed to friends and family. How might you use this approach to protect a bitcoin passphrase that is worth a cool ten million dollars? You could generate five shares and set a threshold of three. You can then send two shares to two trusted friends, write down two shares on paper then store them in separate secure locations, and give the final share to your lawyer. It would then be very hard for someone else to obtain three shares to steal your bitcoins. Your last will and testament document can state how to recover the bitcoins if you die. 

Isn't it time your app enforced a strong password and also gave people the choice of using Shamir's Secret Sharing Scheme to back it up?
Discuss: Your preferred Cloud Service
Tags: discuss, aws, azure
Published: 2019-08-29 14:48:54

I recently got an increasing interest for learning some Cloud Computing services out there.

Since there are 3 main players, AWS, Google Cloud Platform and Azure. I was wondering, what is your preference? 

What are the pros and cons you've noticed while working with one of these platforms. And which would you recommend the most to others/new people?

Would also be great to know the key differences between the platforms and the skill level required to start working with one of these services.

Let's discuss!
Saint Tropez
Published: 2019-08-29 14:48:35

I could just tell how good a piece of music is going to be from the first 10 seconds. And listening to St. Tropez from J.Cole gave me a bragging right for my claim. I simply took interest in the song and since then became fascinated about ST. TROPEZ, in France (check timbu.com/france). What's so special about this place that made J.Cole title a whole track after it? 

In general, fresh air, water, blue sky, and peaceful habitat are some of the elements that make life beautiful. In St. Tropez, there are plenty of those. With over 40 beaches, you can expect to see different kinds of yacht and people from all around the world. But the best time to be there is around May or June when you have different big personalities from around the world come in in their expensive yacht to catch some relaxation. You never can tell who you'll meet in your boat cruise and strike some awesome deals with.

Don't get me wrong, St. Tropez is not good only for seeing or meeting rich folks. Whatever your status is, be rest assured you're gonna have the time of your life there. Play some "boules", go fishing and enjoy your exquisite meal at Les Amandiers maybe, visit The Chateau De La Moutte and Sait-Tropez Citadel. Everywhere you go there is rich in history. 

Go around the world and one place you'll definitely like to visit another time is St. Tropez. But like J.Cole said: "I'll like to go to St. Tropez"!
Meet The Board: Alex Reyes
Tags: showdev
Published: 2019-08-29 14:44:51

---
title: Meet The Board: Alex Reyes
published: true
description: 
tags: showdev
---

Alex Reyes is a 13 year Air Force Veteran with expertise in logistics, program management, and human resources. He is currently serving on the Recruiting Operations team at Facebook focused on the Veteran and Disability talent communities. Throughout his career in Talent Acquisition, Alex has connected countless professionals to their next career opportunity through resume writing, mentorship, and networking. 

Alex brings a skillset that all new engineers need when they are starting: a look behind the curtain. Knowing how recruiters think, speak and use their time constraints to look for talent at the highest level will help any troop looking at how to get the job at the beginning of their career. Thank you for supporting #VetsWhoCode!
Flowcharts for incident response
Tags: linux, sysops
Published: 2019-08-29 14:18:11

Does this sound familiar?

> The alarms are flashing.<br>The clients are emailing.<br>Upper management is calling.<br>Line managers are DM-ing.<br><br>**You** are trying to juggle all of this while trying to follow a 50-line paragraph of troubleshooting text...  

Let's borrow the [Graphviz](https://www.graphviz.org) tools from the systems architect to make easier-to-follow incident response plans.



```dot
digraph Jira_Outage 
{
  {
    first_notification [ 
      label="Notification of a Jira outage from any channel" 
      shape=rect
    ] 

    pc_browser [ 
      label="Does Jira load in a PC Browser?" 
      shape=rect 
    ]
    yes_pc_browser [ 
      label="Yes" 
      shape=rect 
    ]

    no_pc_browser [ 
      label="No" 
      shape=rect 
    ]

    linux_server_browser [ 
      label="Does Jira load in\nFirefox from a Linux server?" 
      shape=rect 
    ]

    user_ssh_connect [
      label="Does SSH-ing to jira.internal.hostname connect?" 
      shape=rect 
    ]

    yes_user_ssh_connect [ 
      label="Yes"
      shape=rect
    ]

    no_user_ssh_connect [
      label="No"
      shape=rect 
    ]

    debug_screen [
        label="Jira shows an unexpected screen."
        shape=rect
    ]

    pingable [
      label="Does jira.internal.hostname ping?"
      shape=rect
    ]

    host_down [
      label="Application host is down.\n\n\Attempt to restart application."
      shape=rect
    ]

    yes_ping [
      label="Yes"
      shape=rect
    ]

    no_ping [
      label="No"
      shape=rect
    ]

    site_down [
      label="Site is down.\n\nSwitch to backup site."
      shape=rect
    ]

    first_notification -> pc_browser

    pc_browser -> no_pc_browser
    pc_browser -> yes_pc_browser 
    no_pc_browser -> user_ssh_connect
    yes_pc_browser -> debug_screen

    user_ssh_connect -> no_user_ssh_connect
    user_ssh_connect -> yes_user_ssh_connect

    yes_user_ssh_connect -> linux_server_browser
    no_user_ssh_connect -> pingable

    pingable -> no_ping
    pingable -> yes_ping

    yes_ping -> host_down
    no_ping -> site_down

    linux_server_browser -> site_down
    debug_screen -> host_down

  }
}
```

into handsome instructional flowcharts like this:

{% gist https://gist.github.com/lbonanomi/712ea96ccfb292dbdc4dd3ded87a494f %}


I'm sure you're wondering why I prefer Graphviz to any of the plethora of free SVG diagramming tools. Besides fundamental masochism, using `dot` allows for automatic document (re)generation in the face of hosts being added/deleted/changed.
My Experience Working on ADC
Tags: andela, javascript, node, vscode
Published: 2019-08-29 14:10:51

ADC, Oh GOD this term literally freaked me out! The first time I heard of it was from a colleague who mind you I had just met and to make matters worse, my first time to step in the pre Bootcamp room was the 3rd day of week 2, so you can imagine how taken aback I was, trying to figure out whether it was some sort of feature I had forgotten to work on which is mandatory. So you know when someone asks you a question you don't know but just because you don't want to come off dumb and confused you decide to google search the term before replying?. "ADC. Stands for "Analog-to-Digital Converter" . YAP! that's what I got from google. He specifically asked me how far I was with the ADC, I told him I will do it later that's if we are supposed to do it. I went on telling him how I was done with the first challenge, seriously i kept on yapping until I decided to ask what the hell he was laughing at! "ADC stands for Andela Development Challenge, you know that right?", he said. Haha YAP! I know what y'all are thinking! Am literally thinking the same thing right now. How clueless can one be? But seriously though, there is no way I would have guessed the meaning of ADC in a million years and in case you are wondering, am done with challenge 4 of the ADC hahaha (quote the sarcasm).

I started off well, I got to learn new technologies, git workflow, pivotal tracker and nodejs which I thought was about nodding like literally nodding your head. wellpoint of correction, i learnt that it is a run-time environment that executes javascript and this got me all so excited and then I learnt about babel meaning that I had to learn conventional ES6 js because node doesn't fully understand some of ES6 codes, so basically, babel is more of a translator of javascript from ES6 to ES5.
My Experience Working on ADC
Tags: javascript, andela
Published: 2019-08-29 14:10:48

ADC, a word or an abbreviation to mean something well, ADC is in full is Andela developer challenge. The first time I ever heard this I was scared only to find out that it is the Andela Developer Challenge funny!!! haha. Now back to my experience of working on ADC it is fun, I have been able to learn a lot of new developments in tech especially node and pivotal tracker and I am absolutely in love with it even though it was hard this whole Andela project has kept me going and going the sky is even not the limit for Andela is my target.

ADC has made me fall in love with my dream of becoming a top-class developer for I have always dreamt of becoming an Andela Fellow. let me just explain briefly why this ADC is different from the rest I have attended initially i have applied for Andela till it closed in Uganda about 11 times and failed to go through and didn't go through still at cycle 7 but this ADC just made me fall in love with my code my work rendering my Vanilla Javascript though Node it's runtime environment.

Briefly, about Pivotal Tracker which through this ADC I have learned like super well it has made working on my projects easier. Funny bit my pre-boot camp facilitator called Dodo has contributed so much in helping me with resources that helped me write code especially my stories perfectly, at first it was hard but later I actually started having fun
Experience I got with Andela in the preBootCamp.
Tags: github
Published: 2019-08-29 13:58:44

Andela is developing talented software developers in Africa. Before starting applying at Andela, I din't even knew what was Andela and what they were doing. One thing I knew was that, Andela was giving an opportunity to young Africans to learn by challenging them. 

As I am someone who likes to learn by challenges, that was the reason I applied at Andela to be challenged. After some tests I was then invited to join the pre-boot-camp. So far in the pre boot-camp we get to know many things that help us in our ADC(Andela Developer Challenge) and in our every day life. Even though many of them were new to me, this didn't stopped me following the right path to know and understand them more. 

I get to know new things technically like project management tools like github and pivotal tracker, sql,... , and morally which are even more interesting like working in team, helping people who need help, reach out whenever you need a help, try to do every thing to the maximum as I can and much more I can't list.

Now I am looking forward to gain much more experience which can help me improving my career and becoming a professional developer.
Daily Challenge #52 - Building a Pyramid
Tags: challenge
Published: 2019-08-29 13:51:48

---
title: Daily Challenge #52 - Building a Pyramid
published: true
series: Daily Challenge
description: Write a function that will build a pyramid of n height.
tags: challenge
---

**Challenge**
Write a function that will draw a pyramid. The function should take one integer parameter that will describe how many lines tall the pyramid should be.

This challenge is simple, but requires a bit of reflection to get it right. Here is [an example in Node.js hosted on Repl.it](https://repl.it/repls/GrayHandmadeApplicationprogram).

**Example**
`pyramid(5);`
![](https://i.imgur.com/H5Y7U7R.png)

Good luck!

***
_This challenge comes from [@aminnairi](https://dev.to/aminnairi) here on DEV! Want to propose a challenge idea for a future post?  Email **yo+challenge@dev.to** with your suggestions!_