teleren/devto huggingface dataset:
How to download courses from Linkedin Learning with python
Tags: python, opensource, linkedin, github
Published: 2021-03-29 08:41:21

In this tutorial we will see how to download Linkedin learning courses with a simple cli tool. Just a quick setup and you will be able to download videos and courses.

## Prerequisites

We will need Python3.

- [Python 3](https://www.tutorialdocs.com/tutorial/python3/setup-guide.html)

## Now, what's next?

Open your terminal or command line and download a python package from PyPi called `llvd` which stands for Linkedin Learning Video Downloader

    $ pip install llvd

If you have multiple versions of python installed in your system, use **pip3** instead.

```cli

    $ llvd --help

```

If the above command does not fail, you can continue with the tutorial

## To download a course:

- Log in to the Linkedin Learning app.
- Search for any course.
![sc2](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7bxhalsbnp1milpdo8y6.png)
 
- Navigate to the course of your choice.
- Copy its slug.

![one](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ih00o32yax4cz2ls78bf.png)
 
 
- Open your terminal or command line.
- Copy the command given below and replace `course-slug` with your copied course slug and run it

```cli

    $ llvd -c "course-slug" -r 720

```

`llvd` creates separate folders for each course you download, groups all videos by chapters, and renames all downloaded videos with video names so that they will be ordered properly.

To download a course you have to specify its name (`-c` flag ).

## How it looks like in action

<p>
    <img src="https://raw.githubusercontent.com/knowbee/hosting/master/assets/progress_llvd.png" width="auto" height="auto"/>
</p>

## Available features with this tool

- Cookie-based authentication
- Download a course and all its exercises
- Group videos by chapters
- Ability to download video subtitles(by specifying `--caption` flag)
- Ability to resume failed downloads
- Option to choose video format (360p, 540p, 720p) using `-r` flag

## Cookie-based Authentication

- Click on the options in google chrome (top right with 3 vertical dots).
- After this, click on more tools followed by Developer Tools (you can also reach here by using the keyboard combination — `ctrl+shift+I`).

- Now once you’ve gained access to the developer tools, navigate to the Application tab, and copy the value of two cookies from there named `li_at` and `JSESSIONID` respectively.

- Create a cookies.txt file to a place you want to download your courses then paste in the values of `li_at` and `JSESSIONID` as shown below.

  ```sh
  li_at=xxxxx
  JSESSIONID="ajax:xxxxxx"
  ```


```cli

      $ llvd -c "course-slug" -r 720 --cookies

```

### Download the course with subtitles

Use the `--caption` flag to download videos with subtitles

```cli

    $ llvd -c "course-slug" -r 720 --caption
```

or

```cli

    $ llvd -c "course-slug" -r 720 -ca
```

## Wrapping up

If you liked this tutorial you might as well head over to Github and leave a star to this awesome open source project [llvd](https://github.com/knowbee/llvd)

Thanks for reading 😊!
Enhance your code reading experience on GitHub
Tags: github, opensource, webdev, javascript
Published: 2021-03-29 08:29:38

TL;DR - I created a chrome extension to modify font styles of code text on GitHub to make my life a bit easier. 

[GitHub Repository](https://github.com/ceoshikhar/better-github), a star is really appreciated 😀

# Demo
<img src="https://github.com/ceoshikhar/better-github/blob/main/assets/demo.gif?raw=true" />

# Motivation

As almost everyone out there, I love to spend a good amount of time on GitHub to manage my personal and professional projects but I also love to just explore other people's projects as well. It's fun to learn how other great developers do their magic.

So I end up spending a lot of my time reading code on GitHub, SPOILER ALERT! But I had one very specific problem which was kind of annoying me. The font styles of code text on GitHub. I had two problems:

1. The font size was very small. I had to pay real close attention to read the code. I know I can just increase the zoom but it makes rest of the app out of proportion. I just wanted to increase the `font-size` of the code text.
2. Kind of very specific to me but as a lover of aesthetic, I wanted my GitHub font of code text to match my code editor font. 

# How I did it

As everyone, first I started to look on the internet to find something that would solve my above problems. After a few hit and trials with the existing solutions, nothing really actually solved it. 

So I decided, fuck it, let me do it myself. I had no idea how chrome extensions are built, the chrome API, etc. All I knew was, I had a problem, I knew what the solution I wanted and luckily I have been programming in JS/TS for the past few months and this is the language needed to make the extension. 

Initially the extension was very specific to my need. It had no UI interface. Although, it did solve my problem. It would change the `font-family` and `font-size` of the code text elements on the DOM to whatever font name and font size I provided. It was hard coded, so If I needed to alter it, I had to change the source code, reload the extension, refresh the GitHub page for it to update. 

It was uhh..., okay for me, but then I decided to take it to a next level. A UI interface( browser action popup ) which opens when you click on the extension icon. It let's you enter font name and font size and apply them instantly to all the GitHub tabs open. Again, I did this to save my time when I wanted to make changes to my custom font styles. 

So finally, today, I am releasing this extension to public as I think its decent enough. Check out the [GitHub Repository](https://github.com/ceoshikhar/better-github) on how you can install the extension, currently it's not published on the chrome store.
What’s New in webMethods 10.7 webinar
Tags: webinar, webmethods, integration, release
Published: 2021-03-30 14:36:15

---
title: What’s New in webMethods 10.7 webinar
published: true
date: 2021-03-29 08:27:39 UTC
tags: #webinar, #webmethods, #integration, #release
canonical_url: https://tech.forums.softwareag.com/t/what-s-new-in-webmethods-10-7-webinar/240087
---

We are excited to announce the launch of webMethods 10.7. In this webinar we will cover the new capabilities of the 10.7 release. Please join Subhash Ramachandran, SVP of Product Management, who will present many exciting highlights, including:

- A brand-new look for the Integration Server administration and monitoring console
- [AppMesh](https://www.softwareag.com/en_corporate/platform/integration-apis/service-mesh-architecture.html) (leveraging API Gateway & Microgateway) for simplifying service mesh implementations
- Cross-version support and zero downtime fixes for Universal Messaging Active/Active cluster
- Cloud file transfer support security enhancements for ActiveTransfer
- Docker image creation through Installer and Upgrade tools and assessment guide
- Metering application for viewing transaction usage

We will also showcase the evolution of the cloud-based [webMethods.io](http://webMethods.io) platform, including highlights from all of the Integration, B2B and API Management SaaS releases, such as:

- Multi-cloud & Multi-region availability
- Multi-persona user experience and smart mapping in [webMethods.io Integration](https://www.softwareag.com/en_corporate/platform/integration-apis/api-integration-platform.html)
- Self-service trading partner on-boarding in webMethods.io B2B
- Geo based routing & Zero downtime upgrades for webMethods.io API
- End-to-end hybrid monitoring across cloud and on-premises
- New Connectors & Recipes

**Join us and see the powerful new things you can do in the webMethods platform!**

> **Register now:**
> 
> - [April 15, 2021 - 2PM Eastern US Time](https://info.softwareag.com/webMethods-10.7-webinar_2pm.html)
> - [April 15, 2021 - 8AM Eastern US Time | 2PM Central Europe Time](https://info.softwareag.com/webMethods-10.7-webinar.html)

[Read full topic](https://tech.forums.softwareag.com/t/what-s-new-in-webmethods-10-7-webinar/240087)
Long - An esoteric language
Tags: language, project, esoteric
Published: 2021-03-29 08:06:37

Have you ever thought of creating a programming language just for fun? Yes, I made an attempt to create my own Esoteric Programming Language based on ASCII characters.

## What is an esoteric language?
Esoteric programming languages are weird languages created just for fun rather than for practical use.

Some examples include Befunge
```
 "dlroW olleH">:v
              ^,_@
```
LOLCODE
```
HAI
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
KTHXBYE
```
and Shakespeare
```
Act I: Hamlet's insults and flattery.
```

<hr>

## Long
Long is a simple,  useless, minimal esoteric programming language created for fun. The language is based on `ASCII` characters. You can find the code in [GitHub](https://github.com/pranavbaburaj/long)
```brainfuck
72+#29+#7+##3+#79-# 55+#24+#3+#6-#8-#68-#1+# ;
```

<hr>

## How long works ??
The long programming language works like this:

- Takes the file to run
- The lexer breaks down the code into specific tokens and store them in an array
- The tokens are grouped into different commands.
- The commands are executed 

<hr>

## How to use it??
Using long is pretty simple. You just have to create a project and run it.

To create a project, run 
```
long new
```
and answer all the prompts and you are ready to go. To run the project, get into the project directory and run `long run`(Make sure you have the right file mentioned in the `entry-point` field in the `long.json` file). Or, you can directly mention the file name like this,

```
long <path-to-file>
```


The language works based on the value which is incremented and decremented

The main commands in the language are the following,
`#` for printing the current character
`!` for setting the value to 0
`+`, `-`, `*`, `/` for arithmetic operations

Arithmetic operations can be performed on the value which is initially set to 0. You can print out the current value converted to a character with the print command(`#`).

For example:
```brainfuck
72+# 33+# ;
```
Result:
```
Hi
```
This piece of code will increase the value by 72 and print the value out. Again, the value is incremented by 33 and printed out.

<hr>

### Feel free to contribute on [GitHub](https://github.com/pranavbaburaj/long)

<hr>

To reach me just ping me on [Discord](https://discord.com/users/763820556491161650) and also, don't forget to join my [Discord server](https://discord.gg/vzcNRVrHR5).

Hope you got something new today. Thank you for scrolling and have a nice day.
That thing is a test
Published: 2021-03-29 08:02:58

Yeah, I'm testing it. What's wrong?

I'll even try to add an image.

![lunettes-rondes-geek-double-foyers](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mxgsjdelysksyoah67p2.jpg)

```
Maybe some code now?
```

There we go.
Web Components, what are they?
Published: 2021-03-29 08:01:36

## What are Web Components?
Web components, in short, are lines of code that you can create or pull from someone else's creations that allow you to have a universal design. For example, they can be headers for websites, a media player on a website, or even an entire small application. This is extremely important because it guarantees that the look and function of each component will be the same regardless of browser, platform, or version. This just became a possibility recently when there was a standard created to run these types of Web Components.

![Web components compatibility chart](https://jaxenter.com/wp-content/uploads/2019/05/figure_1-1024x482.png)

## Why would we use Web Components?
Web Components are key components of website building and future-proofing. Like mentioned before, the universal design that Web Components allow helps to reduce time and difficulty when implementing a website. The improved designs and accessibility of them permit developers to focus on the creation while not having to worry about compatibility issues between different platforms. 

## Who uses Web Components?
After just a few years of normalizing Web Components, they have increased in popularity greatly and are only going to become more popular as time goes on. They are used on a wide scale from small, very low traffic websites to large corporations like Comcast. This is because they can be used to create practically anything. Companies like EA use them for design aspects on their websites and other sites like YouTube use them for functional aspects like playlists.

### Here are some great sources to consider getting more information about Web Components
* [Let's Build Web Components! Part 1: The Standards](https://dev.to/bennypowers/lets-build-web-components-part-1-the-standards-3e85)
* [Unbundled web components part 1: Context of WCs @ PSU](https://dev.to/btopro/part-1-how-penn-state-unbundles-web-components-for-cdn-deployments-20di)
* [An Introduction to Web Components](https://css-tricks.com/an-introduction-to-web-components/)
* [Web Components Basics and Performance Benefits](https://medium.com/@spkamboj/web-components-basics-and-performance-benefits-f7537c908075)

### Web Component Walkthrough and Breakdown
[Web Component Video](https://www.youtube.com/watch?v=xlYZ0wAcR6E&ab_channel=Aero)
Docker installation NO_PUBKEY error on ubuntu focal
Tags: docker, ubuntu
Published: 2021-03-29 08:00:53

If you try to complete [official docker](https://docs.docker.com/engine/install/ubuntu) installation manual and get this error on ubuntu 20 focal distro:
```bash
GPG error: https://download.docker.com/linux/ubuntu focal InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7EA0A9C3F273FCD8
```
You could better try [Digital Ocean manual](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04) with such way of adding docker gpg key and repo:
```bash
# Add key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# Add repo
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
```
Ctrl+Shift+A in Windows Terminal to launch Azure CLI authentication
Tags: azure, cloud, terminal, windows
Published: 2021-03-29 07:56:11

I found logging into Azure via CLI a repetitive task but not a long one. I did however utilised Windows Terminal Actions to create key bindings to type in the login command.

## Configuring settings.json

1. Launch **Windows Terminal**;
2. Select the **down arrow** next to the add tab option and select **Settings**;
![azloginterm3.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1616960718731/nDXdmM75W.png)
3. The **settings.json** file will open up with your default code editor. Within the file you need to add the below line of code:
```json
    "actions": [
        { "command": { "action": "sendInput", "input": "az login\return" }, "keys": "ctrl+shift+a" }
    ],
``` 
Add this code in a place appropriate, it should look something like this:
![azloginterm1.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1616955273483/dJtr-AEQe.png)
Once the code has been included in the file, save it and relaunch Windows Terminal (any errors, review and correct).

## How to launch

Now your ready to sign in to Azure CLI using the key bindings, launch Windows Terminal and hold down the following keys:
**Ctrl + Shift + A**

Once you do this, the below will display on your terminal:
![azloginterm2.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1616955429980/afjTdh-x0.png)

You will also have a web browser window appear asking you to login to Azure to authenticate.

## What else can you do

You can amend the command line field so you can include some more information to include as part of the authentication. Find all sign in methods from  [Microsoft Azure CLI documentation](https://docs.microsoft.com/en-us/cli/azure/authenticate-azure-cli). There is other ways to improve on this or to do something different but remember to consider security before implementing these, you do not want to reduce security to improve convenience.
Password Manager using LWC
Tags: javascript, lightningwebcomponents, reactnative, salesforcedev
Published: 2021-03-29 07:50:36

Total time taken - 28 hours (including intermittent breaks :P )

This is Password manager application which can be used for internal teams to store their credentials as a Lightning App.

This application performs basic functionalities of a password manager Create password records, Update them, store and delete them along with generation of random passwords and exporting them to CSV (send to current user via Email attachment).

This uses Lightning message service to relay the selections made on the list to other components.

Link to Git repo:
https://lnkd.in/g2YpiGm

The whole purpose of this application is to showcase flexibility of using LWC for various functionalities.
First-Class Function interview question
Tags: html, javascript, functional, css
Published: 2021-03-29 07:45:49

Why we use the first-class function that really needed in JavaScript.

1.A simple definition of the first-class function is a function that can be passed as an argument to another function.

2.And also returned by another function in JavaScript.

3.or also can be assigned the variable to function.

Some Example with the first-class function:- 

function with a variable 
```
const foo = function() {
   console.log("foobar");
}
// Invoke it using the variable
foo();
```
A returned a function using the first-class function

```
function sayHello() {
   return function() {
      console.log("Hello!");
   }
}
sayHello()();
```

Thank you!
OhSnap! This How To Pin Footers in React
Tags: react, css, beginners, webdev
Published: 2021-03-29 07:41:55

*The "OhSnap!" series explores bite-sized tips that you can apply today.*

---


##"How to pin the darn footer to the darn bottom of the darn page???" 


It's a common problem where the amount of content on the page does not go past the viewport/fold of the screen. This in turn causes the footer to rather annoyingly pop-up to the middle of the page. 

{% codesandbox react-footer-not-pinned-7mso6 %}



##Luckly, there is a simple solution...

####1 — Segment the page's HTML/JSX in two sections
```html
<div className="content-container"> 
  •••
</div>
<footer className="footer--pin">
  •••
</footer>
```

* All the main page content should be placed in a div that has a "content-container" class. 

* All the footer content should be in a `footer` element as per best practices and assigned a "footer--pin" class. 

*(Names for these classes are of course up to you.)*

---

####2 — Get the actual height of the footer

![Footer Height in Google Chrome Dev Tools](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jwhxmiae0ywy9d51bi13.png)


* The actual height is `margin-top` + `border-top` + `padding-top` +  `content` + `padding-bottom` + `border-bottom` + `margin-bottom`

* You can find this with the [Chrome DevTools](https://developers.google.com/web/tools/chrome-devtools) box model section.

---


####3 — Add `.content-container` style properties
```css
.content-container {
  min-height: calc(100vh - 34px);
}
```

* Using `calc()` we are saying that the content div should take up 100% of the viewport, **minus the height of the footer**.

* This will force the content container to take up all the available screen space, minus the footer height, which in effect pushes down the footer. 

---


####4 — Add `.footer--pin` style properties
```css
.footer--pin {
  position: relative;
  left: 0;
  bottom: 0;
}
```

* Set the footer to a `relative` position and pin to the bottom and left. 

###Result
{% codesandbox react-footer-pinned-s54ky %}

The great thing is that the footer also stays pinned at the bottom, even when more content is added to the page.

---

##More Resources 

* [Sticky Footer, Five Ways](https://css-tricks.com/couple-takes-sticky-footer/)

* [React page keep footer at the bottom of the page](https://stackoverflow.com/questions/39857425/react-page-keep-footer-at-the-bottom-of-the-page)


---

*Thumbnail designed with [Figma](https://www.figma.com/)*
How I converted RSS to Instagram stories
Tags: android, mobile, ios
Published: 2021-03-29 07:39:48

RSS is quite old technology, but still many people use it. I like RSS, but RSS apps are old fashioned and uncomfortable for me. There are much better designs to read a content than boring news list. The one of them are stories. You may know this from Instagram or Snapchat. So, I decided to create a converter.

```html
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
	...
	<item>
		<title>Title</title>
		<link>link.html</link>
		<description>Description</description>
		<pubDate>Fri, 12 Mar 2021 12:00:00 GMT</pubDate>
		<!-- But, where is an image? 😣 -->
	</item>
	...
```

I wanted to put a title and a short description in each story. Almost all RSS channels deliver this data. But the main problem is with pictures of articles. Some channels delivers pictures, but most don't. I think, the most important in the stories are images. The picture passes quicker information than the text, and I think this is the heart of stories. So what do with feeds witch don't provide images?

```html
<!DOCTYPE HTML>
<html>
	<head>
		...
		<meta property="og:title" content="Title" />
		<meta property="og:image" content="image.jpg" />
		<!-- Ok, I see an image now! 😍 -->
		...
```

We can find the cover image in... HTML social tags of the article. I noticed that, almost every news website has social tags. So I created RSS reader with scraping feature. The result is awesome. I have thousands RSS feeds with nice cover images now.

**This is a short story how I created Stories Now.** 🚀 Modern RSS Reader. It's available for Android and iOS for free. You may download it from:
- 💿 [Google Play](http://play.google.com/store/apps/details?id=com.n4no.storiesNow) for Android, or
- 📀 [App Store](http://apps.apple.com/pl/app/stories-now/id1557096867) for iPhone, or
- [App Website](https://n4no.com/projects/storiesNow/).

Check [my 🐦 Twitter](https://twitter.com/b4rtaz).
Does not laravel eloquent have query like WhereNotHas operation?
Tags: eloquent, query, laravel, sql
Published: 2021-03-29 07:33:18

I want to distinguish 2 queries when one field is null or not null.
Let me see one table named 'report'.
This table has some fields including 'setting' field.
When the value of 'setting' is null in row of 'report' table, The query is $query->whereHas('Setting', function($query){ $query->where('some_id', $home)}).
When the value of 'setting' is not null, The query is $query->whereHas('Device', function($query){ $query->where('some_id', $home)}).
'setting' is the reference id of table Setting.
That is to say, I want to have exculsive query in according to setting.
I made one query, but the result is not as I want.

$query = Report::query();
$query->doesntHave('Setting')->whereHas('Device', function ($q) use ($home){
                $q->where('some_id', $home);
            })
            ->orWhereHas('Setting', function ($q) use ($home) {
                $q->where('some_id', $home);
            });

Is there any way to have query like I want?
Recommendations for a mechanical keyboard
Tags: discuss, keyboards, keebs
Published: 2021-03-29 07:27:59

Hey folks! 
I am looking to buy a mechanical keyboard. I am a beginner to this and I'm overwhelmed by all the different options out there. 
What would you recommend? And what does one factor in when buying a mechanical keeb? :D

If you already have a mechanical keyboard, showcase your setup?