teleren/devto huggingface dataset:
From Notes to Node
Published: 2021-03-28 22:16:21

I feel like I should preference everything I’m about to say with this is my first Blog post ever in Life so please take it easy on me . Hopefully by the end of this read you’ll kind of understand my logic in choosing Software Development.In order to know the why I think it’s Important to first know a little bit of my background. Born and Raised in St.Louis ,MO the oldest of mothers children. I always had a love for creating. Starting out with a love for music I played 3 different types of saxophone all through high school. The infatuation of not only learning to play written music but also composing my own. It was my first time where I could honestly say I created something not only I but others could enjoy and benefit from. I figured the feeling of satisfaction I get from creating must come in other forms as well. However as you get older and Life begins to set in . I like many people began to focus on making a living taking care of family. You kind of let those things fade over time . After countless jobs and what felt like meaningless underpaid positions . I had a thought. It must be some kind of way where I Could both do something that embraces both my creativity and maybe make a decent living. While searching Al Gores internet Software Development peaked my interest. I got the idea from coming across the need for websites. I noticed in the increase in small business and the overall uptick in entrepreneurship. I thought maybe this could be the start of something great. I noticed One thing that separates  successful business ventures from failed one are the platforms there presented on. I believe I can use this fore mentioned creativity to help people enlarge their platforms. We’ll at least that’s the goal . Although I must admit it a lot harder than I what I thought it would be. It feels like the right way to go. I guess to be honest the “ why “behind why I chose this area of expertise is multi faceted and ever evolving. But one thing is for sure like music the possibilities with software development are endless .
Contribute to Open Source
Tags: webdev, opensource, webcomponents, btopro
Published: 2021-03-28 22:03:44

# What is it?
Open Source is code made public for others to freely use and make. This brings together a community to help each other learn and grow together.

#Find something to contribute to
In order to help the open source community, I would recommend finding github repositories made to help you. [This one](https://github.com/elmsln/lrnwebcomponents) was created by {% user btopro %} in order to help others learn web components.

#Fork and clone it
In order to start contributing you need to take that repo and edit it. This can be done by forking, cloning, and locally installing it. For this repository, you need to run it with yarn instead of npm, which the readme explains how to do. Make sure that you install [it](https://classic.yarnpkg.com/en/docs/install/) first. Then you can run yarn in any element.

#Contribute!
Now that you've found a repo and have it locally, you can edit it. Make the element better somehow and push it back to the original branch. This is what contributing is - congrats!

# Watch my video explanation
{% youtube A00OTjClKPk %}
100 Bytes Of Wisdom: Day 35
Tags: career, journey, advice
Published: 2021-03-28 21:48:34

---
title: 100 Bytes Of Wisdom: Day 35
published: true
description: Bytes of Wisdom is a new project by Sam Jarman that brings together snippets of advice for software engineers
tags: career, journey, advice
//cover_image: https://direct_url_to_image.jpg
---

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

Naturally, with all the help you get from mentors, you should feel obliged to pay it back. While I don’t think you need to or should pay mentors (with the exception of Career Coaches) paying it back in any way you can is the right thing to do. Obviously, start simple, buy the coffee/lunch you're having. Then, if they need help with beta testing their latest app or software, get in there and help them out. Do a bit of marketing for them, retweet them or tell your friends. Be friendly, and it won't go unnoticed.

The next thing is to remember this value you're getting out of a mentor. One day, someone will come to you for help too. They're seeking a mentor. Remember what your best mentors did for you and do it for them. Pay it forward.

Heads up: As with any terse bit of advice, there will be exceptions of course, and subtleties and nuance that can't possibly be captured in a Byte of Wisdom. This has been what I've experienced, I'd love to hear yours in the comments too!

You can catch up with all the other bytes at http://bytesofwisdom.com/
Sinatra Web APP
Tags: sideprojects, ruby
Published: 2021-03-28 21:21:40

This blog post will be discussing the process of completing my second flatiron coding project.  It will go into detail on the project I created and the difficulties I encountered. 

This project focused on using Sinatra (which is an alternative to other Ruby web application frameworks such as Ruby on Rails) and developing a web application. As soon I heard the word "web application" my mind went to the many social media sites I've encountered. So it was then that I decided that I would be building the inner workings of a social media site( currently this is nowhere near a fully functional social media site, yet). 

Sinatra was an eye-opener to the world of servers, ULR's, GET and POST requests, etc. Working with Sinatra also help to fortify my attention to detail, specifically when it came to creating forms (in HTML using erb files). While making forms it was important to make sure we understood the name attribute in those forms,  so that we could collect users' input on the back end. Essentially, grasping all of this new information and applying it to our labs was difficult and tedious. 

This project consisted of building Models, Controllers, and Views. 
Models are where I created my objects( Users, and Posts) with that I had to establish their relationship (belongs to, has many, etc.) because that would determine where my foreign-key would go or if I need a Join table. Then I created my tables for my database (all done using Active records).  
Next, I used my controllers to handle the GET and POST request from the URL.  Also within my controller was the majority of my Ruby code, so I had to:
 Validate the uniqueness of the user login attribute (username or email).
Ensure that the user was signed in and can view certain view pages
Ensure that users can edit and delete only their own resources - not resources created by other users.
create my objects so that I may access them on my view. fils (AKA HTML/erb files)
and much more...
In conjunction with my controller actions, I had to build corresponding Views. This is where the HTML and some minor ruby code would go (Fun Fact: erb files allow you to uses ruby code inside HTML). The View is also what the user will be interacting with, and inputting data for us to collect in our controllers. 

End Result: 
I created the beginnings of a social media site called The Hive, where users are able to:  
Sign Up
Login
Logout
Create, Edit, or Delete Post 
(hope to add more features like a profile View, and add some CSS. to provide for a better UX experience )

Link to my GitHub coming soon. 
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uram0pmma7y9on1q0alx.png)
5 reasons why you should Kanban(ize) your organization's Anti-Racism commitments
Tags: ux, agile, devops, blacklivesmatter
Published: 2021-03-28 21:05:37


If you work in tech, there's a good chance that your company made some new commitments in the area of diversity, equity and inclusion over the last year. But how are they tracking progress and responsibility for their commitments? And is anyone ever going to be held accountable if the commitments never get done?  
     
Consider using a [Kanban framework](https://dev.to/pavelku/why-kanban-board-is-the-trend-of-2021-1o14). Here are five reasons that it will help. 
 
**1. Agenda Setting**
Set the agenda for your racial justice work up front— just like you would with a product. Start by acknowledging your backlog and your capacity. You’re not working on all of your anti-racism priorities at once, so you don’t get credit for projects that are just ideas or incomplete tasks. Announcing that you *intend* to build a component of your team's current project is meaningless until you do it. Likewise, it's not anti-racism until a productive output has shipped. 
  
**2. Creating Context** 
Think about anti-racism work the same way you think about product—shipping new features, improving old ones, and maximizing efficiency. If anti-racism is like a product, is your team accelerating the right number of organizational tasks to make it a company-wide reality? Or are we still just releasing statements and doing implicit bias training?
  
**3. Acknowledging Interconnectedness**
Helps recognize dependency between parties because–justice-oriented work has layers of strategy operating simultaneously. Often, their success is dependent on the timely delivery of other influence.
  
**4. Tracking Impediments** 
Kanban-style tracking gives you visual tools to identify impediments (blockers) to progress. If you’re not tracking and recording the organizational anti-racism agenda items and conversations that have been blocked, you’re not being as effectively anti-racist as possible.
  
**5. Forcing Daily Action** 
Kanban-oriented DEI planning allows you to think of anti-racism as a daily task list where your team is expected to produce tangible results. This forces teams to swarm around blocked tasks to push them thru. White supremacy wants you to wait until tomorrow— don’t fall for it.
   
_____________
*Interested in learning more about "shipping" no-bullshit organizational anti-racism commitments as deliberately and precisely as you build software? Contact <krezacdennis@hey.com>*
Do you have another source of income other than the programming day job?
Tags: discuss, productivity, career
Published: 2021-03-28 21:01:35

---
title: Do you have another source of income other than the programming day job?
published: true
description: 
tags: discuss, productivity, career
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ja955gu5s24ssfy7dxtr.png
---
Do you have another source of income other than the programming day job? Do you have any passive income? How do you make money from your side hussle? 

Please share your experiences and suggestions on how to earn extra money as a programmer.
A Blogging Platform Where Everyone Gets Paid
Tags: blockchain, cryptocurrency, blogging, publish0x
Published: 2021-03-28 20:30:39

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5xxfffctlsnqesu4z2k4.jpeg)


In the world of content creation, it is important to be a member of several content creation sites. Dev To is an excellent platform for all things tech.

### Enter an Alternative Platform
> No, you do not need to remove DevTo from your content creation strategy.  In fact, you should actually pick your blogging platform based on your target audience!

Did you know there is a blogging platform out there named [Publish0x](https://www.publish0x.com/?a=GRb4852nbB&tid=devto), with the mission of paying both content creators and readers for their time? They pay in cryptocurrency, but the money is real!  

#### How do I get paid?

They have 2 ways you can upvote a blog - tipping, or liking. Likes are similar to the kudos you can give on this platform, but tipping pays everyone involved!  You have a limited number of tips each day, and these are rate-limited throughout the day as well. Tips are free, and come from Publish0x's rewards pool.  The concept is unique and amazing - the standard tip is 80% of the tip to the content creator, and 20% to the content reader, but you can adjust the tip based on how valuable you feel the content is.  This is a platform that pays everyone for their time!

#### What types of things will I find on Publish0x?

Anything, really. But this blogging platform is cryptocurrency heavy, and so it's an excellent platform to follow for Crypto news and trends.  [If you haven't seen this platform, you're not risking anything by giving it a shot](https://www.publish0x.com/?a=GRb4852nbB&tid=devto)!
Introduction to the most popular language Javascript🚀
Tags: programming, javascript, beginners, webdev
Published: 2021-03-28 19:39:44


## What is Javascript?

JavaScript is the world's most popular programming language.
Javascript is initially created to make web pages alive.
All the javascript programs are known as scripts.

## Who Created Javascript?
The first-ever JavaScript was created by Brendan Eich at Netscape.

<mark>Javascript and Java are not the same.</mark>

## Why is it called JavaScript?
When javascript is initially created it was known as "Live Script" but at that time the most popular language is java. so it was decided that positioning LiveScript as <mark>Javascript</mark>.

Nowadays, JavaScript can execute on both the platform, the browser side as well as the server-side, or on any device that has a  program called [the JavaScript engine](https://en.wikipedia.org/wiki/JavaScript_engine).

#### Here are some popular JavaScript engines :
* Chrome’s [V8engine](https://v8.dev/)
* Firefox’s [SpiderMonkey](https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey)
* Safari’s [JavaScriptCore](https://developer.apple.com/documentation/javascriptcore)
* Edge’s [Chakra](https://github.com/microsoft/ChakraCore)~ Edge has recently embraced Chromium‘s V8 engine.

## Why JavaScript is so popular?

* Javascript is popular because it is fully integrated with HTML/CSS.
* JavaScript supports both functional programming and object-oriented programming (OOP).
* Javascript is supported by all major browsers and enabled by default.

***
Please do share and your feedback/comments about the article will be welcomed, always :)

Keep learning! 🤖
How To Install Docker on Red Hat
Tags: docker, redhat, devops
Published: 2021-03-28 18:55:50

I needed to install Docker on a Red Hat server. I know Red Hat recommends Podman, but honestly I didn't prefer the switch. I'm just used to docker and it works for me, besides; nothing -at least at the time of writing this article- matches Docker Swarm or docker compose using Podman.

My main challenge was that the server was on an internal only network in my organization with no direct access to internet. I couldn't simply install it using `yum` from Docker repo online. I had to install things manually.

The method below would also work if you can't directly install Docker on your Red Hat / Debian / CentOS for any reason. I simply followed the official docker guide and used the package for CentOS, and it works just fine. However, there is just one gotcha along the way.

You can start here using the [official Docker guide](https://docs.docker.com/engine/install/centos/#install-from-a-package) on how to install from RPM package files.

Just visit the [following link](https://download.docker.com/linux/centos/8/x86_64/stable/Packages/) and download the latest version of each of the four packages:
1. containerd.io-{VERSION}.el8.x86_64.rpm
2. docker-ce-{VERSION}.el8.x86_64.rpm
3. docker-ce-cli-{VERSION}.el8.x86_64.rpm
4. docker-ce-rootless-extras-{VERSION}.el8.x86_64.rpm

In my case I couldn't use `wget` to download the packages directly to my server. I had to download them to my local laptop, then transfer them to my Red Hat server using `scp`. I created a folder under temp for the installation packages.

```
scp package.rpm remote_username@10.10.0.10:/temp/docker
```

After the packages are in the remote directory, you simply need to run `yum` to install the packages. However, you must install all packages with **ONE** command:
```
sudo yum install docker-ce-<VERSION_STRING>.rpm docker-ce-cli-<VERSION_STRING>.rpm docker-ce-rootless-extras-<VERSION_STRING>.rpm containerd<VERSION_STRING>.rpm
```

This is not mentioned in the documentation, and if you try to install them one by one, yum can't figure out dependencies offline.

Once here, you just need to start docker:
```
sudo systemctl start docker
```
Congrats. If you didn't get any glaring ERROR messages, you should have docker happily running on your Red hat server! :)
What are your end-to-end testing struggles?
Tags: webdev, testing, discuss, productivity
Published: 2021-03-28 18:49:25

Hello everybody!

I've been struggling with end-to-end testing a lot in the last few years, since it's an unnecessary complex step in a product pipeline. At my job, we still don't have a end-to-end testing solution, even though we tried a lot of solutions, but none of them were perfect. And if they were, it was extremely time consuming to set up.

I'd like to hear about your thoughts, did you ever struggle with this? Do you already have a perfect solution that works for you? What can be done to make this task easier and not so dreading?

Looking forward to hear about your experiences!
Collections in java
Tags: java, interface
Published: 2021-03-28 18:48:33

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vdv78nxvc7n3u7ttsa8i.png)
---
##Collections:
######Put all your eggs in one basket and watch that basket.
######  -Mark Twain
**Collection**: is a data structure for holding elements.
**Collection<<T>T>**: is the highest level of the java's framework for collection. 

-Two main interfaces that extend *Collection<<T>T>* interface:
1.**Set<<T>T>** interface: 
  1. Does not allow duplication
  2. Does not impose an order on the elements 
       
2.**List<<T>T>** interface: (Allow duplication)
  1. Allow duplication
  2. Impose an order on the elements  
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uq4qa2smu95hs0gclghy.png)

 -Two Abstract classes used (for convenience) to implement *Set<<T>T>* and *List<<T>T>* interface:
1.**AbstractSet<<T>T>**
2.**AbstractList<<T>T>**

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

-Another Abstract class implements *Collection<<T>T>* interface which is  **AbstractCollection<<T>T>**, and it is a *skeleton* class for the *Collection<<T>T>* interface
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5l371dfokcjebhvgem2k.png)

-If you want a class that implement The Set<<t>t> interface, use the class **HashSet<<T>T>**
**HashSet<<T>T>**: is the *concrete* class implements the Set interface.
It can be used as a base class if you want to implement the Set interface.
-It is implemented using  a hash table.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tduihu02ek8mv51aa954.png)

-If you want a *concrete* class that implement The List<<t>t> interface, use 
 either the class **ArrayList<<T>T>** or **Vector<<T>T>**
They can be used as a base class if you want to implement the Set interface using your own class.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/41b2mgr5xr85hl2e8fhw.png)
how i get channel banner using youtube api in javascript?
Published: 2021-03-28 18:39:05

i am using this code please help me to get channel banner?

<h1 class="site_heading">Live Sub Counter</h1>
<form class="form-inline">
    <input type="text" id="channel_id" placeholder="Channel ID (UCC2-EIXX2LSYInLPSR3kxPQ)">
    <input type="button" onclick="result(document.getElementById('channel_id').value)" value="Count">
</form>
<div class="main_content">
    <span id="channel_name"></span></br>
    <span id="sub_count"></span>
</div>
<script>
function result(channel_id)
{
	if (channel_id === "")
	{
		return alert("Please enter a Channel ID");
	}
	document.getElementById("channel_id").value = "";
	
	//for the request
	request_data(channel_id);
}

function request_data(channel_id)
{
	var xhttp = new XMLHttpRequest();
	xhttp.onreadystatechange = function()
	{
		if (this.readyState == 4 && this.status == 200)
		{
			var output = this.responseText;
			output = JSON.parse(output);
			document.getElementById("channel_name").innerHTML = output.items[0].snippet["title"];
			document.getElementById("sub_count").style.display = "inline";
			if(output.items[0].statistics["hiddenSubscriberCount"] === true)
			{
				console.log("Subscriber count is hidden by the channel");
			   	return document.getElementById("sub_count").innerHTML = "N/A";
			}
			document.getElementById("sub_count").innerHTML = output.items[0].statistics["subscriberCount"];
		}
		else if(this.readyState == 4)
		{
			return console.log(JSON.parse(this.responseText)["error"]["message"]);
		}
	};
	xhttp.open("GET", "https://www.googleapis.com/youtube/v3/channels?part=snippet,statistics&id="+channel_id+"&key=AIzaSyDxF-lYhQOFbcA1qd22DMbmgoVRFzAE3hQ", true);
	xhttp.send();
	setTimeout(request_data, 2500);
}
</script>
Add PDF OLE object into a Slide
Tags: csharp, programming, productivity, ole
Published: 2021-03-28 18:30:43

See how to embed a document (e.g. PDF, Word, Spreadsheet) in a Presentation Slide. 

```csharp
string filePath = @"c:\sample.ppt";
string filePathEmbedded = @"c:\embedded.pdf";
string filePathOut = @"c:\output\result.ppt";

int pageNumber = 2;
OlePresentationOptions olePresentationOptions = new OlePresentationOptions(filePathEmbedded, pageNumber);
olePresentationOptions.X = 10;
olePresentationOptions.Y = 10;

using (Merger merger = new Merger(filePath))
{
    merger.ImportDocument(olePresentationOptions);
    merger.Save(filePathOut);
}
```
All you have to do is to add GroupDocs.Merger for .NET [API](https://products.groupdocs.com/merger/net) reference in your (new or existing) .NET project, pass the source PPT/PPTX file and the PDF that you want to embed to the API.
Style Guides and Rules
Tags: programming, style, process, google
Published: 2021-03-28 18:22:36

#### INTRODUCTION
To ensure the time and scale resiliency of a codebase, style guides and rules are followed in any organization. This also ensures that the focus shifts on what to say in code from how to say it. 

> It doesn't matter what we choose as the style elements but more importantly the fact that we have chosen.

**Rules**
Rules are more like laws and cannot be violated. They are enforceable and can be disregarded only on a need basis after discussion with the group of persons responsible to ensure style consistency in the organization a.k.a style arbiters.
Style arbiters ensure that style decisions are made with consensus and driven by objectives rather than merely personal preferences. Each decision made should be documented in a reason document to ensure style rules and guides are updated as and when needed in the future.
**Guides**
Guides on the other hand are a collection of recommendations and best practices.
##### TIPS
* As such, each language should have an independent style document, but if possible as many elements as possible should be kept the same. 
* Optimize for the code reader rather than the code writer.
* If just a few engineers are getting something wrong, it doesn't deserve to be part of the style document. 
* Expect engineers to leave explicit evidence of the intended behavior of code.
* Be consistent, it enables expert chunking (a cognitive process that helps in grouping pieces of information in chunks rather than individually).
* Consistency starts locally. `file-level` > `team-level` > `larger-project-level` etc. 
* Consistency is vital but adaptation is the key. 
* Avoid error-prone and surprising constructs.
* Concede to practicalities when needed.
* Change style document based on the solution to existing code and not some hypothetical use case. 
* Enforcement should be automated, using tools like `clang-tidy` for C++.
* Some code formatters: 
    * C++: `clang-format`
    * Python: `yapf`
    * Buildsystems: `buildifier`


#### REFERENCES:
1. Chapter 8: Style Guides and Rules, Book: Software Engineering at Google, Publisher: OReilly.
2. Header Image: https://www.pexels.com/photo/orange-and-white-seashell-on-white-surface-33234/