teleren/devto huggingface dataset:
Semantic Versioning and Changelog
Tags: changelog, project, management
Published: 2021-07-27 00:31:00

[[Clique aqui para ler em português]](https://medium.com/walternascimentobarroso-pt/versionamento-sem%C3%A2ntico-e-changelog-74f3ed425034)

All projects should have a semantic versioning, so it would facilitate the use of specific versions as dependencies and old versions for specific platforms or even avoid that bug that appeared in the X.Y.Z version of the project.

## Semantic Versioning

Simple set of rules and requirements that determine how version numbers are assigned and in turn incremented.

* **MAJOR:** when you make incompatible API changes;
* **MINOR:** when you add backward-compatible functionality;
* **PATCH:** when you fix backward compatible bugs.

You can read more about the specification at: https://semver.org/

## Changelog

When you are going to update a project and want to know what has changed, you go after all the previous releases and the changelog is a file that makes this easier for you and your users.

### How to make a good changelog?

#### Fundamental principles

* Changelogs are for humans, not machines.
* There must be an entry for each version.
* Changes of the same type must be grouped together.
* Versions and sections must be linked (with links).
* The latest version comes first.
* The release date of each version is displayed.
* Mention whether you follow semantic versioning.

#### Types of changes

Create your tags to help view the changelog, if you need help here are some patterns:

{% gist https://gist.github.com/walternascimentobarroso/531f6bf84852f35652cb6ef1f9cd36b4 %}

You can read more about it at: https://keepachangelog.com/

***

## Thanks for reading!

If you have any questions, complaints or tips, you can leave them here in the comments. I will be happy to answer!

😊😊 See you! 😊😊

***

## Support Me

[Youtube - WalterNascimentoBarroso](https://www.youtube.com/channel/UCXm0xRtDRrdnvkW24WmkBqA)
[Github - WalterNascimentoBarroso](https://github.com/walternascimentobarroso)
[Codepen - WalterNascimentoBarroso](https://codepen.io)
Introducing Grok (VSCode Extension) - Mind Map for Development
Tags: tooling, vscode, productivity, discuss
Published: 2021-07-27 00:26:10

Hi everyone, 
We built Grok internally for our engineering team at our startup, AdaptiLab, and we've really enjoyed using and improving it. That startup was recently acquired by CoderPad and after receiving positive feedback from devs from other companies using the tool, we decided to start working on Grok fulltime.

We recently release a public version of Grok to the VSCode marketplace. Grok helps developer teams organize and understand their codebase. You can create visual and navigable "Flows" in the IDE with code, markdown, and image cells. Use these Flows to track work and context while developing or refactoring, and share Flows with teammates or in PRs to give information and explain decisions.

![Graph Flow](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4ghw236ij1bblgmmmdgk.png)

We recently released a feature that will allow users to save Flows directly to the repo (as a .grok.json file). Once this file is committed, teammates can pull from the repo and view or edit the Flow from their Grok extension. This allows asynchronous collaboration on top of Grok Flows. 

If you'd like to learn more about Grok, please checkout our website at: https://www.trygrok.com/. 

You can also download Grok directly from the VSCode Marketplace at: https://marketplace.visualstudio.com/items?itemName=Adaptilab.grok

Please let me know if you have any questions and we'd really appreciate any feedback on ways we can improve the tool. Thanks!
How to add or change the password for a user in Linux?
Tags: resource
Published: 2021-07-27 00:00:00

---
  title: How to add or change the password for a user in Linux?
  published: true
  tags: Resource
  date: Tue Jul 27 2021 05:30:00 GMT+0530 (India Standard Time)
  canonical_url: https://melvingeorge.me/blog/add-change-password-user-linux
  cover_image: https://melvingeorge.me/_next/static/images/main-1a5b6d9cd982b77ffd1d47930c00f445.jpg
  ---
  [Originally posted here!](https://melvingeorge.me/blog/add-change-password-user-linux)
  
To add or change a password for a user in Linux, you can use the `passwd` command followed by a space and the `username` in Linux.

For example, let's say you want to add or change the password of the user `john`, you can use the `passwd` command like this,

```bash
# Add or change the password for a user
sudo passwd john
```

- This will show you a prompt where you can set or change the password for the user, in our case `john`.
- Sometimes you may need to use the `sudo` command before the `passwd` command to obtain the correct privileges to execute the command.

Try executing the above command in this [online terminal](https://linuxcontainers.org/lxd/try-it/) to see the result.

### Feel free to share if you found this useful 😃.

---
Delete an Azure AD B2C tenant programmatically
Tags: security, identity, azure, azuread
Published: 2021-07-26 23:15:21

There are many cases where you may want to programmatically delete an Azure AD B2C instance programmatically. Luckily, most of what we need to do is doable via MS Graph APIs. Quick reminder that MS Graph may not be available for client accounts that use B2C to sign up/in but it's available to admin accounts and can be used to automate or manage a B2C tenant. With that in mind, we're good to go!

## Prerequisites
- .NET Core (3.1 or later)
- VS Code
- An Azure AD B2C tenant

## Necessary steps
Unlike other Azure Resources, Azure AD and B2C require more work to be deleted. When attempting to delete a B2C tenant, the portal present us with a list of actions that need to be completed before we're allowed to blast the resource off the face of the earth. Example below:

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

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

Subsequently, we will be tackling these one at a time and in most cases, there will be an associated video stream to show you how we went about it. If you don't want to see me and JP struggling through the process, you can jump straight to the blog post and code repository:

- [Delete all users in an Azure AD Tenant](https://dev.to/425show/delete-all-users-in-an-azure-ad-tenant-programmatically-3k33)
- Delete all app registrations in an Azure AD Tenant
- Delete all associated Azure subscriptions in an Azure AD Tenant
- Delete all identity providers in an Azure AD Tenant
- Delete all user flows in an azure AD Tenant

As always, reach out to us if you have any questions and don't forget to join our [Discord](aka.ms/425Show/Discord/join)
Algorithms and Scripting: Problems and Notes Part 2:
Tags: javascript, algorithms
Published: 2021-07-26 22:44:41

Currently a Monday, time is 6:00 PM I'm feeling pretty tired but I must continue this habit of learning and studying if I wanna be someone for my family and myself.
 
* Anyways Let's continue, this challenge in particular is one where you have to take each character, get its pair and return the results in a 2nd array.
* The base pairs are a pair of AT and CG. Match the missing element to the provided character and return the character as the first element in each array.
* Basically for `ATCGA` return [["A", "T"], ["T","A"], ["C", "G"],["G","C"],["A","T"]] 

* Problem:
```
function pair(str) {
  
}

pairElement("GCG");
```
* Answer:
```
function pair(str) {
let letters = str.split("")

function singleLetter(initial) {
if (initial === "G") {
  return "C"
} else if (initial === "C") {
  return "G"
} else if (initial === "A") {
  return "T"
} else if (initial=== "T") {
  return "A";
 }
}


return letters.map(letter => {
  let result = [letter, singleLetter(letter)]
  return result;
})


 
}

console.log(pairElement("ATCGA")); will display [["A", "T"], ["T","A"], ["C", "G"],["G","C"],["A","T"]] 
```
Again this doesn't have to be this complicated, there's other ways to solve this problem. Like, defining an object with all pair possibilities, which allows us to easily find by key or value.


#### What's the missing letter?
* What we have to do here is find the missing letter in the passed letter range and return it.
* If all letters are there then just return undefined.
* Problem:
```
function fearNotLetter(str) {
  return str;
}

fearNotLetter("abce");
```
* Answer:
```
function fearNotLetter(str) {
  let alphabet = "abcdefghijklmnopqrstuvwxyz";
  let startAt = alphabet.indexOf(str[0]); 
  let letters = alphabet.slice(startAt); 
  
  for (let i = 0; i < str.length; i++) {
    if (letters[i] !== str[i]) { // <-- basically checks if (s !== s), (t !== t), (u !== v) etc.
      return letters[i];
    }
  }
  return undefined;
}

console.log(fearNotLetter("stvwx")); will display u
```
Day 416 : Onward
Tags: hiphop, code, coding, lifelongdev
Published: 2021-07-26 22:38:29

_liner notes_:
- Saturday : Worked on the side project a little. Then next I knew, it was time to do the radio show. Time was just flying by. The recording of this week's show is at https://kNOwBETTERHIPHOP.com

![Radio show episode image of an illustration of a display for Food Not Bombs with tables with pamphlets and pots of food with a banner and signs with the words July 24th 2021 Back to the Code](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wue878vuf17lsxl6vv22.jpg)

- Sunday : Did my live online study group side project thing, https://untilit.works . All my code worked. I was able to push a quick update to the code. Spoke about some topics I found interesting. I was able to post short video clips to Twitter and Instagram. I didn't get a chance to finish the automated video analysis to create a summary, tags and a transcript. I was able to send a request to the API and get back an id that I saved to the database and can then send to get the details  I'm looking for. I got real close, but we move onward!

- Professional : Had a couple of meetings today. Updated a blog post. Helped out with a community question. Did some work on an upcoming blog post. Not too much coding to start off the week.

- Personal : Spent last night working on the dashboard for https://untilit.works. Now that I can make calls to the video analysis API and store the id. I want to be able to call it from the dashboard and get the data from past videos. I'm thinking if I can get it done manually on previous videos, it should also work automatically right after the live show since they are going to be the same functions, just called differently. We'll see. Ended the night watching an episode of "Fire Force", "Kevin Can F Himself", and "Rick and Morty".

![The plains of Silale Swamps, Tanzania with a huge field of green grass and three trees with an elephant underneath them.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/66ftxs8z5g7i2o0k4u3b.jpg)

Tonight, I'm looking to watch "Fire Force" while eating dinner, then work on the dashboard for my side project. If I have time, I may go through some tracks for the radio show. I also noticed that it looks like my site https://otech.events isn't getting rid of events that have passed. I'll have to look into that as well.

Have a great night!

peace piece
Dwane / conshus
https://dwane.io / https://HIPHOPandCODE.com
{% youtube KCDV8YEuvrg %}
Understanding "truthiness" by comparing it to "falsiness"
Tags: beginners, javascript
Published: 2021-07-26 22:08:40

### What is truthiness?

If you write a statement where you are testing if something is true or not--like an `if` statement that uses a logical operator like `||`, `!`, or `&&`--you expect that statement to return a boolean value of `true` or `false`.  Sometimes it doesn't resolve to a boolean value--true or false--yet, nevertheless, it gets *interpreted* like a boolean value. We call those values "truthy" or "falsey". 

In Javascript, we can list all the falsy values. They are: 
* `null`
* `undefined`
* `NaN` (Not a Number)
* `""` (empty string)
* `false`
* `0`

There is not a corresponding list of "truthy" values, because all values are truthy unless they are defined as fasly or are one of the examples listed above.

We can, however, demonstrate "truthiness" by showing examples of `if` statements that resolve to truthy values. Let's start!

---

## An empty string is falsy, but an empty array or empty object is truthy
This is because an empty string is nothingness, but an empty array is still a container and an empty object is still a container. The array and object can be filled with content at a later point.

```javascript
if ("") {
  console.log("hello") // (nothing)
}

if ({}){
  console.log("hello") // hello
}
if ([]){
  console.log("hello") // hello
}
```
---
## `0` is falsy, but `"0"` is truthy
This is because the value of 0 is zero, and therefore nothing, but "0" is a string with a single character that looks like a zero.

```javascript
if (0){
  console.log("hello") // (nothing)
}

if ("0") {
  console.log("hello") // hello
}
```
---
## `false` is falsy, but `true` is truthy
*I can't explain why this is, I just accept it.*
```javascript
if (false){
  console.log("hello") // (nothing)
}

if (true) {
  console.log("hello") // hello
}
```
How to estimate the development cost
Published: 2021-07-26 22:07:32

    One of the most difficult things in software development is determining how long it will take to work on a new product and how much it will cost. Why is it so hard? The answer is not too obvious.
    Estimating the cost of a new product is fundamentally difficult, and people are not very good at predicting events accurately. No project repeats another, each is unique not only in its goals, but also in the countless features that shape it. Often a problem that is simple at first glance turns out to be much more complicated from the inside, and sometimes it requires serious technical improvements to solve it. And, undoubtedly, in any project there are always many unknowns that arise already in the process of working on it.
In addition, there are no identical people - no customers, no developers, no users. We all start working with our baggage of knowledge, experience, values, expectations, willingness to take risks and adaptability.
    Writing quality software is bread and butter for developers; creating a cool software product is a much more complex undertaking for everyone involved.
    At DECIUS we work very closely with both customers and developers. This helps us use https://diceus.com/how-to-estimate-software-development-costs/  techniques that keep the client confident in meeting deadlines and accurately estimating project costs. We are constantly working on planning and adapting the project from the initial general level down to the smallest detail, if it allows you to avoid unnecessary costs and implement controlled changes.
Lyve Cloud hackathon Submission - 1st Place
Published: 2022-12-09 14:09:37

---
title: Lyve Cloud hackathon Submission - 1st Place
published: true
date: 2021-07-26 21:43:56 UTC
tags: 
canonical_url: https://blog.niradler.com/lyve-cloud-hackathon-submission-1st-place
---

_Introducing a new approach to cloud storage. Lyve Cloud from Seagate is your simple, trusted and efficient storage as a service. Long-term cost predictability means youll never be surprised by your cloud bill. Put your data to work with always-on availability, world-class security, and cloud flexibility from the global leader in mass data storage management._

What is [s3-syncer](https://github.com/niradler/s3-syncer)?

s3 synchronization automation, deploy syncer to your AWS account and connect to the bucket you wish to sync with Lyve Cloud storage. using an s3 notification syncer will reflect any change in the source bucket and also in the target bucket and keep them in sync.

Demo: [https://www.loom.com/share/11e098376d8548ddb35a1f6ec4266e2e](https://www.loom.com/share/11e098376d8548ddb35a1f6ec4266e2e)

Presentation:

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vR3rMQPLogjc_DeJSEJjzKPfC17tjhBbSU9bBBa3yh2tUBpcdB_75fV97eQaudwIpu8kmGZ4QWgX5uO/embed?start=false&amp;loop=false&amp;delayms=3000" width="960" height="569"></iframe>

[https://www.israelclouds.com/news/seagate-cloud-hackathon-winners  
https://lyvehack.startisrael.co.il/  
https://www.linkedin.com/posts/niradler\_first-place-had-a-great-experience-activity-6831281878838849538-mUp5](https://www.israelclouds.com/news/seagate-cloud-hackathon-winners%EF%BF%BChttps://lyvehack.startisrael.co.il/%EF%BF%BChttps://www.linkedin.com/posts/niradler_first-place-had-a-great-experience-activity-6831281878838849538-mUp5)

![](https://media-exp1.licdn.com/dms/image/C4D22AQG-CD9_VptqeA/feedshare-shrink_1280/0/1628704518241?e=1672876800&v=beta&t=g1jn22Rl2-U_Tfhk6HMFGvpyiBe1T7tQoSAmWNkOWxY)
3 Hacks that can get you Hired at any Tech Company. 
Published: 2021-07-26 13:16:09

For many years I've been seeing so many developers suffer landing a job in the tech industry. Let me share with you 3 hacks on how you could land your job as a developer in any company. 
1.) Proof of work; Let's be honest, there are many people with the title Developer & have little practice in the field. Consistency & Practice create perfection in your craft, & this is why having a proof of work will better serve any developer, having a hard time landing a job. 
2.) Being Unique; During the past decade we've had many people doubt the internet space & ignore the great advantages the internet provides to anyone. Pre-covid all that's changed, I think the world came to realize the internet is here to stay & change everything. That leaves us with the race of developers applying at big tech companies looking for opportunities to grow & a high paying salary. The only thing that will distinguish you from the many developers at your interview, is being unique. 
3.) Credentials; Okay this is a very important factor, if you want to be hired by a company, you will need credentials. You may ask why? Because every company needs to know what kind of credibility you have before making the important decision to bring you on board. What can I do you ask.? Work on building small projects for small companies or startups even if it means lower salary. This will build your reputation & by no time companies like Google will want to hire you. Attract your customer, & companies are your customers. Once you do these 3 things you'll be on your way to success.! Best of luck everyone!
Sparky's Tool Tips: TFS Auto Shelve
Tags: tfs, sourcecontrol, dotnet, productivity
Published: 2021-07-26 21:02:40

This may be the most useful tool I've blogged about, and probably the simplest...

[TFS Auto Shelve for Visual Studio](https://marketplace.visualstudio.com/items?itemName=Vercellone.TFSAutoShelveforVisualStudio) is a Visual Studio 2019 extension that periodically shelves pending changes to Team Foundation System or Azure DevOps source control.

I can't count how many times I've used it to retrieve code files I've accidentally deleted, or files where I've started making changes and saved my mind and wanted to "roll back" to a previous version that hadn't been checked in.

You use the Visual Studio "Tools | Options | TFS Auto Shelve" menu to configure how often you want to shelve, how many shelvesets to keep, and how they should be named.
![TFS Auto Shelve Options](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i5yoda7xwuz6h9rz3jdx.png)

The name is defined using placeholders, and the default name is "Auto-{0}":

- {0}: WorkspaceInfo.Name (machine name for me - I'm not sure if it's something different for other installations)
- {1}: WorkspaceInfo.OwnerName
- {2}: DateTime.Now
- {3}: Domain of WorkspaceInfo.OwnerName
- {4}: UserName of WorkspaceInfo.OwnerName

You can retrieve shelved files via the Visual Studio "File | Source Control | Find | Find Shelvesets" menu:

!["Find Shelvesets" window, showing shelvesets saved by TFS Auto Shelve](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p1llp2r568p84ai3whgi.png)

(I've used my incredible graphic skills😉 on the screenshot to block out information specific to the company where I work.)

You can see from the screenshot above that there were no shelvesets created overnight or over the weekend. Iit's smart enough to only create them while you're actively using Visual Studio. 

The extension adds two items to the Visual Studio "Team" menu. The first shows you whether the extension is running, and the second lets you create an on-demand shelveset:

![Teams / TFS Auto Shelve Visual Studio menu](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w96tachr1q6wyw3k0kvs.png)
Docker Tutorial for beginners

Tags: docker, containers, linux, devops
Published: 2021-07-26 20:47:47

## Part One: Introduction to Containerization and Docker

### 1 - What is Containerization ?

Containerization is packaging up your product (software, web app ... etc) with all its dependencies in a self-contained package so that it can be run uniformly and consistently on any infrastructure without going through troublesome setup process example: missing dependencies... etc.

### 2 - The Need for Containerization:


 > That's weird; it's working fine on my machine


Let's take a real life example, weeks ago, we have developed a travel scheduling app that can store information about trips, clients and the billings, and also can show you the different place that you can visit, awesome hah!

To implement that we need some dependencies to be installed, for example:

- Node.js.

- Express.js.

- Redis.

Installing node.js and Express.js is really simple, anyone can do it, but how about Redis, it's really a pain in the ass for a beginner. let's assume that you succeeded into installing all those tools, okay that's cool.

But you are working with a group, you are using Linux, and for sure there's someone from your teammates who use Windows, another problem came up, Now you have to consider the inconsistencies of how these two different operating systems handle paths, Or the fact that popular technologies like Nginx are not well optimized to run on Windows. Some technologies like Redis don't even come pre-built for Windows.

Even if you get through the entire development phase, what if the person responsible for managing the servers follows the wrong deployment procedure?

All these issues can be solved if only you could somehow:

- Develop and run the application inside an isolated environment (known as a container) that matches your final deployment environment.

- Put your application inside a single file (known as an image) along with all its dependencies and necessary deployment configurations.

- And share that image through a central server (known as a registry) that is accessible by anyone with proper authorization.

Your teammates now, will be able to download the image from the registry, run the exact same application within an isolated environment (container) free from the platform specific inconsistencies, or even deploy directly on a server, since the image comes with all the proper production configurations. How awesome is that!

To conclude, the idea of containerization is to put your application inside a self-contained package, making it portable and reproducible across various environment and infrastructure, it's like putting your product inside box and give it to everyone who want to use it wherever he is and whenever he wants.

### 3 - What is Docker:

Docker is an open-source containerization platform that allows you to containerize your applications, share them using public or private registries, and also to orchestrate them.

Now, Docker is not the only containerization tool on the market, it's just the most popular one.