teleren/devto huggingface dataset:
The Incredible Struggle of Software Pioneer Kateryna Yushchenko
Tags: history, womenintech, computerscience, software
Published: 2022-04-24 21:03:33

---
title: The Incredible Struggle of Software Pioneer Kateryna Yushchenko
published: true
date: 2022-04-08 07:27:51 UTC
tags: history,womenintech,computerscience,software
canonical_url: 
---

[Kateryna Yushchenko](https://en.wikipedia.org/wiki/Kateryna_Yushchenko_%28scientist%29) was born in Ukraine on the 8th of December 1919 just after the Russian Revolution. She studied Mathematics and in the 1950s became involved in the [MESM](https://en.wikipedia.org/wiki/MESM) project, the Soviet Union’s first computer.

![_Kateryna Yushchenko_](https://cdn-images-1.medium.com/max/199/1*b7EQof1ueNHWI_y08SE5BQ.jpeg)

As a result of this work, in 1955 Yushchenko created the [Address Programming Language](https://en.wikipedia.org/wiki/Address_programming_language), one of World’s the first high-level programming languages. It was incredibly advanced for its time and contained features that wouldn’t be seen in other programming languages for nearly a decade.

Yushchenko’s story isn’t a simple one of genius meets opportunity though, like many great people, particularly great women, her path to success was one of struggle.

- In 1937 her father was arrested for being a Ukrainian Nationalist. This led to the imprisonment of both Kateryna’s parents. They served ten years and were only released after Stalin’s death due to a lack of evidence.
- At 17 Kateryna was expelled from Kyiv University, because of her parents ‘crimes’, and she had to move to Uzbekistan to complete her studies.
- During World War Two she had to work in a factory producing scopes for tank guns.
- She returned to Ukraine after the war and gained her PHD in 1950, 14 years after her studies began, she was 31.

Kateryna not only had to contend with being a woman in an age when feminism was in its infancy but also a World full of turmoil. Her story and her contribution to software development are incredible. She rightly deserves to be regarded as one of the most important people in the history of computer science.

----

**Useful Resources:**

- [http://en.uacomputing.com/persons/yushenko/](http://en.uacomputing.com/persons/yushenko/)
Getting Started with the React Signature Pad Component
Tags: react, webdev
Published: 2022-04-08 07:24:15

Learn how easily you can create and configure the [React Signature Pad](https://www.syncfusion.com/react-ui-components/react-signature) component of Syncfusion using the create-react-app command. This video also explains how to draw smooth signatures as vector outline strokes using the variable-width Bezier curve interpolation. You can also learn how to save signatures as images and clear the signature in the pad. You can use your finger, pen, or mouse on desktop and mobile devices to draw your own signature. 

**Product Overview**: https://www.syncfusion.com/react-ui-components/react-signature

**Download an example from GitHub**: https://github.com/SyncfusionExamples/getting-started-with-the-react-signature-component

Refer to the following documentation for the Syncfusion React Signature Pad component: https://ej2.syncfusion.com/react/documentation/signature/getting-started/

Check out this online example of the Syncfusion React Signature Pad component: https://ej2.syncfusion.com/react/demos/#/bootstrap5/signature/default

{% youtube Nj5V4iKLgv4 %}
Feel that something is missing in Dev.to?
Tags: discuss, showdev, help, welcome
Published: 2022-04-08 07:01:49

I like **Dev.to** more than **medium**, the most important reason is its simplicity and free.

I recently met many friends in the Dev community.

It's a little sad when you think that there is no other way but to comment option to talk to them.

I think it would be nice if it had a message option.

Do you think it would be nice if there was something innovative like this?

Maybe it would be nice if there was something like that?

---

Do you have any other idea to improve this further? 

For example in Dev.to + Direct Msg + show/hide Followers Count + (Discord + WhatsApp = mix ) + Trello + your idea.

But we always make it simple and user friendly the user interface.

Now we just focus on the main features only 🎯

---

New one coming soon 🤫
Real-Time Applications via AWS Serverless GraphQL APIs
Tags: aws, serverless, realtime, graphql
Published: 2022-04-08 06:53:09

𝙀𝙣𝙝𝙖𝙣𝙘𝙚𝙙 𝙛𝙞𝙡𝙩𝙚𝙧𝙞𝙣𝙜 in Amazon Web Services (AWS) 𝘼𝙥𝙥𝙎𝙮𝙣𝙘 allows for more flexibility when 𝙙𝙚𝙫𝙚𝙡𝙤𝙥𝙞𝙣𝙜 𝙧𝙚𝙖𝙡-𝙩𝙞𝙢𝙚 𝙖𝙥𝙥𝙡𝙞𝙘𝙖𝙩𝙞𝙤𝙣𝙨 and building engaging digital experiences for your users, such as:
(1) 𝙜𝙖𝙢𝙞𝙣𝙜 leaderboards,
(2) 𝙚-𝙡𝙚𝙖𝙧𝙣𝙞𝙣𝙜,
(3) 𝙨𝙤𝙘𝙞𝙖𝙡 media,
(4) 𝙡𝙞𝙫𝙚 𝙨𝙩𝙧𝙚𝙖𝙢𝙞𝙣𝙜,
(5) 𝙨𝙥𝙤𝙧𝙩𝙨,
(6) 𝙢𝙚𝙙𝙞𝙖,
(7) 𝙖𝙪𝙙𝙞𝙚𝙣𝙘𝙚 𝙚𝙣𝙜𝙖𝙜𝙚𝙢𝙚𝙣𝙩,
(8) 𝙞𝙣𝙩𝙚𝙧𝙖𝙘𝙩𝙞𝙫𝙚 𝙘𝙝𝙖𝙩 rooms,
(9) 𝙄𝙤𝙏 𝙙𝙖𝙨𝙝𝙗𝙤𝙖𝙧𝙙𝙨 𝙛𝙤𝙧 𝙘𝙤𝙣𝙣𝙚𝙘𝙩𝙚𝙙 𝙘𝙖𝙧𝙨,
(10) 𝙝𝙚𝙖𝙡𝙩𝙝𝙘𝙖𝙧𝙚,
(11) 𝙨𝙢𝙖𝙧𝙩 𝙝𝙤𝙢𝙚𝙨, and more.

𝘼𝙥𝙥𝙎𝙮𝙣𝙘:
(1) is 𝙛𝙪𝙡𝙡𝙮 𝙨𝙚𝙧𝙫𝙚𝙧𝙡𝙚𝙨𝙨 and 𝙨𝙘𝙖𝙡𝙚𝙨 𝙬𝙞𝙩𝙝 𝙮𝙤𝙪𝙧 𝙖𝙥𝙥𝙡𝙞𝙘𝙖𝙩𝙞𝙤𝙣’𝙨 𝙙𝙚𝙢𝙖𝙣𝙙.
(2) helps you 𝙞𝙢𝙥𝙧𝙤𝙫𝙚 𝙮𝙤𝙪𝙧 𝙧𝙚𝙖𝙡-𝙩𝙞𝙢𝙚 𝙪𝙨𝙚𝙧 𝙚𝙭𝙥𝙚𝙧𝙞𝙚𝙣𝙘𝙚 with no need to worry about managing WebSockets connections and the infrastructure required to provide real-time data at scale.

Thanks to Ed Lima for his blog post
𝘾𝙧𝙚𝙖𝙩𝙚 𝙧𝙚𝙖𝙡-𝙩𝙞𝙢𝙚 𝙖𝙥𝙥𝙡𝙞𝙘𝙖𝙩𝙞𝙤𝙣𝙨 𝙫𝙞𝙖 𝙨𝙚𝙧𝙫𝙚𝙧𝙡𝙚𝙨𝙨 𝙒𝙚𝙗𝙎𝙤𝙘𝙠𝙚𝙩𝙨 𝙬𝙞𝙩𝙝 𝙣𝙚𝙬 𝘼𝙒𝙎 𝘼𝙥𝙥𝙎𝙮𝙣𝙘 𝙂𝙧𝙖𝙥𝙝𝙌𝙇 𝙨𝙪𝙗𝙨𝙘𝙧𝙞𝙥𝙩𝙞𝙤𝙣𝙨 𝙛𝙞𝙡𝙩𝙚𝙧𝙞𝙣𝙜 𝙘𝙖𝙥𝙖𝙗𝙞𝙡𝙞𝙩𝙞𝙚𝙨
https://lnkd.in/g_9RUp8N


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b6no4mhaedgf1az4rz15.png)
100 Days of Code: The Complete Python Pro Bootcamp for 2022 - Day 4 (Rock Paper Scissors)
Published: 2022-04-08 06:39:50

Exercise 4.1 - Heads or Tails

import random

random_side = random.randint(0, 1)
if random_side == 1:
  print("Heads")
else:
  print("Tails")

Exercise 4.2 - Banker Roulette

- When running the code it will ask for a seed number. import random

- List of names to use are Angela, Ben, Jenny, Michael, Chole

import random

🚨 Don't change the code below 👇
test_seed = int(input("Create a seed number: "))
random.seed(test_seed)

-Split string method
names_string = input("Give me everybody's names, separated by a comma. ")
names = names_string.split(", ")
🚨 Don't change the code above 👆

Write your code below this line 👇

-Get total items in a list using len(). 
num_items = len(names)

-Generate random numbers between 0 and the last index
random_choice = random.randint(0, num_items -1)

-Pick a random person to pay selected from random_choice
pay_the_bill = names[random_choice]

print(pay_the_bill + " is going to buy the meal today!")

Exercise 4.3 - Treasure Map

row1 = ["⬜️","️⬜️","️⬜️"]
row2 = ["⬜️","⬜️","️⬜️"]
row3 = ["⬜️️","⬜️️","⬜️️"]
map = [row1, row2, row3]
print(f"{row1}\n{row2}\n{row3}")

position = input("Where do you want to put the treasure? ")

-write your code below
horizontal = int(position[0])
vertical = int(position[1])

map[vertical - 1][horizontal - 1] = "X"
-write your code above

**Project 4 - Rock, Paper, Scissors**

rock = '''
    _______
---'   ____)
      (_____)
      (_____)
      (____)
---.__(___)
'''

paper = '''
    _______
---'   ____)____
          ______)
          _______)
         _______)
---.__________)
'''

scissors = '''
    _______
---'   ____)____
          ______)
       __________)
      (____)
---.__(___)
'''


-Write your code below this line 👇

import random

player_choice = input("Enter a choice (rock, paper or scissors)? ")
possible_actions = ("rock", "paper", "scissors")
computer_choice = random.choice(possible_actions)

print(f"\nYou chose {player_choice}, computer chose {computer_choice}.\n")

if player_choice == computer_choice:
  print ("You both chose the same! Its a Tie ")
elif player_choice == "rock":
  if computer_choice == "scissors":
    print("Rock smashes scissors. You lose")
  else:
    print("Paper covers Rock, You Win")
elif player_choice == "paper":
  if computer_choice == "rock":
    print("Paper covers Rock. You Win")
  else:
    print("Scissors cuts Paper, You lose")
elif player_choice == "scissors":
  if computer_choice == "rock":
    print("Rock smashes Scissors, You lose")
  else:
    print("Scissors cuts paper, You win")
else:
  print("You typed an invalid choice....Try again")
Is the KoreTrak Pro Watch Scam or Legit? Smartwatch or a Fitness Tracker?
Tags: health
Published: 2022-04-08 06:35:22

 I'm only kidding, here are the facts you should understand as it respects doing that. I don't intend to be so sharp with you. It's a hallmark of a stunning KoreTrak Pro. Hey which one to follow? I would actually have more [KoreTrak Pro](https://ipsnews.net/business/2021/09/23/koretrak-pro-fitness-tracker-really-work-or-a-hoax-price-features-benefits-and-complaints/) Fitness Tracker if that was that hot. You may think that I'm giving you a con job. I've studied tons of that and found that to be incorrect. Thanks again to KoreTrak Pro Fitness Tracker for some fabulous guesses. These were thrilling secrets. You need to always be KoreTrak Pro Fitness Tracker-ing. Some KoreTrak Pro Fitness Tracker businesses have seen revenue decrease by a quarter during the recession. I was running late for an appointment. I thought it was quite hefty. I use KoreTrak Pro Fitness Tracker first thing each day. It is not the point. I have been doing this since last week and I cannot believe how much better KoreTrak Pro Fitness Tracker is. That blew up! Don't cop out. For some reason I keep coming back to that decoy. Sounds backward? it's not. 

[](https://ipsnews.net/business/2021/09/23/koretrak-pro-fitness-tracker-really-work-or-a-hoax-price-features-benefits-and-complaints/)https://ipsnews.net/business/2021/09/23/koretrak-pro-fitness-tracker-really-work-or-a-hoax-price-features-benefits-and-complaints/
Kubernetes Testing Framework
Tags: kubernetes, testing, gitops, cicd
Published: 2022-04-08 06:26:29

𝙏𝙚𝙨𝙩𝙠𝙪𝙗𝙚:
(1) natively integrates 𝙩𝙚𝙨𝙩 𝙤𝙧𝙘𝙝𝙚𝙨𝙩𝙧𝙖𝙩𝙞𝙤𝙣 𝙖𝙣𝙙 𝙚𝙭𝙚𝙘𝙪𝙩𝙞𝙤𝙣 into 𝙆𝙪𝙗𝙚𝙧𝙣𝙚𝙩𝙚𝙨 and your 𝘾𝙄/𝘾𝘿/𝙂𝙞𝙩𝙊𝙥𝙨 𝙥𝙞𝙥𝙚𝙡𝙞𝙣𝙚.
(2) 𝙙𝙚𝙘𝙤𝙪𝙥𝙡𝙚𝙨 𝙩𝙚𝙨𝙩 𝙖𝙧𝙩𝙞𝙛𝙖𝙘𝙩𝙨 and execution from CI/CD tooling; tests are meant to be part of your clusters state and can be executed as needed:
- 𝙆𝙪𝙗𝙚𝙘𝙩𝙡 plugin
- 𝙀𝙭𝙩𝙚𝙧𝙣𝙖𝙡𝙡𝙮 𝙩𝙧𝙞𝙜𝙜𝙚𝙧𝙚𝙙 𝙫𝙞𝙖 𝘼𝙋𝙄 (CI, external tooling, etc)
- 𝘼𝙪𝙩𝙤𝙢𝙖𝙩𝙞𝙘𝙖𝙡𝙡𝙮 𝙤𝙣 𝙙𝙚𝙥𝙡𝙤𝙮𝙢𝙚𝙣𝙩 of annotated/labeled services/pods/etc (WIP)

𝙏𝙚𝙨𝙩𝙠𝙪𝙗𝙚 𝙖𝙙𝙫𝙖𝙣𝙩𝙖𝙜𝙚𝙨:
(1) 𝘼𝙫𝙤𝙞𝙙𝙨 𝙫𝙚𝙣𝙙𝙤𝙧 𝙡𝙤𝙘𝙠-𝙞𝙣 for test orchestration and execution in CI/CD pipelines
(2) Makes it easy to 𝙤𝙧𝙘𝙝𝙚𝙨𝙩𝙧𝙖𝙩𝙚 𝙖𝙣𝙙 𝙧𝙪𝙣 𝙖𝙣𝙮 𝙠𝙞𝙣𝙙 𝙤𝙛 𝙩𝙚𝙨𝙩𝙨 - functional, load/performance, security, compliance, etc. in your clusters, without having to wrap them in docker-images or providing network access
(3) Makes it possible to 𝙙𝙚𝙘𝙤𝙪𝙥𝙡𝙚 𝙩𝙚𝙨𝙩 𝙚𝙭𝙚𝙘𝙪𝙩𝙞𝙤𝙣 𝙛𝙧𝙤𝙢 𝙗𝙪𝙞𝙡𝙙 𝙥𝙧𝙤𝙘𝙚𝙨𝙨𝙚𝙨; engineers should be able to run specific tests whenever needed
Centralizes 𝙖𝙡𝙡 𝙩𝙚𝙨𝙩 𝙧𝙚𝙨𝙪𝙡𝙩𝙨 𝙞𝙣 𝙖 𝙘𝙤𝙣𝙨𝙞𝙨𝙩𝙚𝙣𝙩 𝙛𝙤𝙧𝙢𝙖𝙩 for "𝙖𝙘𝙩𝙞𝙤𝙣𝙖𝙗𝙡𝙚 𝙌𝘼 𝙖𝙣𝙖𝙡𝙮𝙩𝙞𝙘𝙨"
(4) Provides a 𝙢𝙤𝙙𝙪𝙡𝙖𝙧 𝙖𝙧𝙘𝙝𝙞𝙩𝙚𝙘𝙩𝙪𝙧𝙚 for adding new types of 𝙩𝙚𝙨𝙩𝙨 𝙖𝙣𝙙 𝙚𝙭𝙚𝙘𝙪𝙩𝙤𝙧𝙨

𝙆𝙪𝙗𝙚𝙧𝙣𝙚𝙩𝙚𝙨-𝙣𝙖𝙩𝙞𝙫𝙚 𝙛𝙧𝙖𝙢𝙚𝙬𝙤𝙧𝙠 𝙛𝙤𝙧 𝙩𝙚𝙨𝙩 𝙙𝙚𝙛𝙞𝙣𝙞𝙩𝙞𝙤𝙣 𝙖𝙣𝙙 𝙚𝙭𝙚𝙘𝙪𝙩𝙞𝙤𝙣
https://lnkd.in/gyKmNJDr

Thanks to Bruno Lopes for his video
𝙄𝙣𝙩𝙧𝙤 𝙩𝙤 𝙏𝙚𝙨𝙩𝙠𝙪𝙗𝙚 - 𝘾𝙡𝙤𝙪𝙙-𝙉𝙖𝙩𝙞𝙫𝙚 𝙏𝙚𝙨𝙩𝙞𝙣𝙜 𝙁𝙧𝙖𝙢𝙚𝙬𝙤𝙧𝙠 𝙛𝙤𝙧 𝙆𝙪𝙗𝙚𝙧𝙣𝙚𝙩𝙚𝙨
https://lnkd.in/g3tbTX7h


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mf4kgfbpp9rusejxoney.png)
Add font ligatures to your Alacritty
Tags: linux, beginners, programming, productivity
Published: 2022-04-08 04:54:17

> _This article helps you to enable font ligatures on your Alacritty terminal._


We know that Alacritty does not support font ligatures. However, we stick to it due to its performance excellence.

Although, you have good news! Someone made it possible. See the fork of the Alacritty repository with the added font ligatures.
```
https://github.com/zenixls2/alacritty
```

## Tl;dr
To solve the problem, let's build the repository and install the output binary on our system. Below are the steps to your destiny.

1. Clone the repository and build it
2. Backup the existing binary and install the new one.

## How to do it?
Before we clone and build the repo, you should make sure you have the necessary build tools to build the application. The Rust is used to write the Alacritty. Therefore, you must ensure you have `cargo` installed on your system
```sh
 sudo apt install cargo
```

- Now, let's clone the repo using the below command.
```sh
git clone https://github.com/zenixls2/alacritty
```
- Use the following commands to build.
```sh
cd alacritty
git checkout ligature
cargo build --release
```
- If all goes well, this should place a binary at `target/release/alacritty`

### Install the binary

We got the binary file after the build. Now, we only need to move it to the right place. For that, we should backup the existing binary file and use the new one.

- Backup the existing binary using this command
```sh
sudo mv /usr/bin/alacritty /usr/bin/alacritty.bak
```

- Then, let's copy our build binary to the `/usr/bin` folder.
```sh
sudo cp ./target/release/alacritty /usr/bin
```
- Also make sure you have the right font-family on your alacritty config.
```
font:
  normal:
    family: Fira Code
    style: Regular
  bold:
    family: Fira Code
    style: Bold
  italic:
    family: Fira Code
    style: Italic
```

There you go!

Relaunch the terminal and see the magic.

## Conclusion
We have covered all the steps to enable the font ligatures on the alacritty terminal. Hope this article helps you.
WN14: What is the best piece of content you found?
Tags: career, productivity, learning
Published: 2022-04-08 06:25:12

Another week has passed, and here we want to get the best pieces of content you found during the week!

It really can be anything:

- videos
- posts
- tweets
- books
- motivation
- etc.

Share anything that added value to your journey and could add value to other people's journey.

So, what is the best piece of content you found this week?
Structure of URL
Tags: url
Published: 2022-04-08 06:25:05

![anatomyurl](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lritstukvf83lfhypwtq.png)

**Protocol :** A URL's protocol also known as transfer protocol or scheme regulates how data is sent between the host and a web browser.
```jsx
//example
http , https , tcp ,smtp
```

**Subdomain :** Subdomains that are a little more subtle, exhibiting a relative dependence and being a component of a higher level domain. eg. 

```jsx
//example
www.example.com , mail.example-smtp.com
```

**Domain name :** The Domain Name System uses a domain name as a registered identifying  string to create a distinct region of authority and autonomy. eg. 
```jsx
//example
google.com , dev.to
```
**Second-level domain :** A second-level domain is a domain that is immediately behind a top-level domain. 
```jsx
//example
www.example.**second-level**.in , www.example.**blogging**.io
```
**Top-Level Domain :** A top-level domain is a domain which is at the top of the Domain Name System hierarchy. 
```jsx
//example
.com ,.in ,.net , .io 
```
**Path :** The path specifies the precise location of a page, post, file, or other item. It is frequently comparable to the website's underlying file structure. 
```jsx
//example
/home , /dashboard , /settings
```

![anatomyurl](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7j5ulvfil3buix1kd91n.png)
 
**Query String (Params) :** Depending on the implementation, parameters are found at the very end of the URL or within the path. URL parameters are expressed as key/value pairs that begin with a '?' and are separated by an ampersand '&.' 
```css
//example
https://www.example.com/settings?username=name , https://www.example.com/settings?email=email@gmail.com&id=09
```

**Fragement identifier :** A precise location within an HTML page.
```jsx
//example
 www.example.in#latest
```
How will you understand Large Opensource Code base ?
Tags: opensource, programming, discuss
Published: 2022-04-08 06:05:46

Can you guys share how will you understand large open source code base the efficient way ?

For me, I first run the project locally and browse code and create mind map for each function to know who calls who and understand the flow and logging each parameters to know exactly what data its going to process.

How about you guys ? maybe you have much more efficient ways of doing please share on comments :)
Pocket Options Vs. Expert Option - which one is better?
Published: 2022-04-08 06:01:17

Pocket Option and Expert Options are reputable brokers that offer trading in binary options. Let's review both of them one by one. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8n7yhp8h00vg2r5c5q3k.png)
**Pocket Options**

Pocket Option was founded in 2017 that supports more than 100 financial assets. Millions of people have already registered on the broker site since now. Also, it is regulated with FMRRC. Let's discuss the significant points about the broker in this Pocket Option review. 

●	The minimum amount is $50, and the minimum trading value is $1.
●	You can earn bonuses with the hike by 50%.
●	Multiple deposit options are available. 
●	Multiple OS compatibility.
●	It offers a demo account for in-depth learning.
●	Social trading is available.
●	Friendly customer care support via chat, mail, and phone call.
●	Available in more than 95 countries, including the USA. 

**Expert Options**

In this Pocket Option Vs. Expert Option comparison, we have already discussed Pocket Options. This broker was founded in 2014 and regulated by VFSC & FMRRC. Let's continue with the second one. 

●	The minimum deposit is $10.
●	The minimum trading amount is $1
●	It offers bonuses with a 100% hike.
●	Support most of the financial assets.
●	A demo account is available just like others.
●	US and UK Traders are not accepted.
●	Compatible with Android, iPhone, Windows, and macOS.
●	Payout up to 95% is the highest in the market. 

**Which is better?**
 
If you have gone through all the brokers' points, you will notice that there is no significant difference between them. Both brokers are regulated with authorized licenses that eliminate the trust issue. We have tried to justify the opinion with small ExpertOption and [Pocket Option review](![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z8cod5taug7pkelasqxu.png)
 ).

You can go for any one of them as per our requirement and the affordability of the minimum deposit. 
 
**Bottom line**

Binary Options is one of the forms of internet trading that trades based on binary results. Pocket or Expert Options are equally result-driven and offer friendly customer service.
Sketch-icons makes it simple to import icons
Tags: sketch, icons
Published: 2022-04-08 05:43:22

Sketch icons is a completely open-source icon set with 600+ icons that makes it easy for individuals to utilise icons. The Sketch-icons Web Component is a simple and effective way to incorporate Sketch icons into your app. The component will dynamically load an SVG for each icon, ensuring that your app only requests the icons it requires.

Website : https://sketch-icons.netlify.app/

## Installation

```bash
npm i sketch-icons
# or
yarn add sketch-icons
```

## Usage

```jsx
import { PlayFill } from "sketch-icons";

class Icons extends React.Component {
  render() {
    return (
      <h2>
        Here's a <PlayFill />
      </h2>
    );
  }
}
```

## Using CDN

If you want to use the icons in your project, you can use the CDN. Add the following cdn to your HTML file.

```html
<link
  rel="stylesheet"
  type="text/css"
  href="https://unpkg.com/sketch-icons@0.1.11/dist/cdn/icons.css"
/>
```

## Example

To utilize the pre-built icon from the sketch icons bundle, populate the `class` property on the `i` tag

```html
<head>
  ...
  <link
    rel="stylesheet"
    type="text/css"
    href="https://unpkg.com/sketch-icons@0.1.11/dist/cdn/icons.css"
  />
  ...
</head>
<body>
  ...
  <i class="sk sk-alarm-fill"></i>
  ...
</body>
```

## Using CSS Selector

You can change the properties of icon using the css selector. The selector is `.sk-` followed by the icon name.

```css
.sk-alarm-fill {
  color: red;
  font-size: 35px;
}
```

## Properties

| Property    | Attribute                    | Default   |
| ----------- | ---------------------------- | --------- |
| color       | `color="color"`              | `#2A2238` |
| height      | `height={height}`            | `32`      |
| width       | `width={width}`              | `32`      |
| stroke      | `stroke="stroke-color"`      | `#2A2238` |
| strokeWidth | `strokeWidth="stroke-width"` | `1.5`     |

```jsx
import { ArrowUpCircle, ArrowDown } from "sketch-icons";

class Icons extends React.Component {
  render() {
    return (
      <h2>
        Go Up <ArrowUpCircle height={100} width={100} />
        Move Down <ArrowDown stroke="blue" strokeWidth="0.1" color="#ffffff" />
      </h2>
    );
  }
}
```


## Icons

Click here to see all [sketch-icons](https://sketch-icons.netlify.app/)
Install docker and docker-compose on ubuntu 20.04
Tags: docker
Published: 2022-04-08 05:39:14

---
title: Install docker and docker-compose on ubuntu 20.04
published: true
description: 
tags: docker
cover_image: https://images.unsplash.com/photo-1605745341112-85968b19335b?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxzZWFyY2h8MXx8ZG9ja2VyfGVufDB8fDB8fA%3D%3D&auto=format&fit=crop&w=500&q=60
---
## Docker

Add dependency and install prerequisite packages
``` bash
apt update
apt install -y apt-transport-https ca-certificates curl software-properties-common
```

Add docker repository 

``` bash
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
```

Install Docker
```
apt install docker-ce
systemctl status docker

```


## Docker compose
``` bash
mkdir -p ~/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
docker compose version
```
LeetCode 26: Remove Duplicates from Sorted Array
Tags: javascript, algorithms, programming, node
Published: 2022-04-08 05:27:51

Let's talk about removing duplicates. Normally, removing duplicates from a sorted array would be quick work. You just add each value to a set. Since all values in sets must be unique you simply return the values contained in the set. This was not a valid solution for this problem.

The problem states that you have to modify the array in place. That means I can't create another data structure to store my values when I find any duplicates. Admittedly, the solution is still straightforward. I have not had the pleasure of using the splice() function in JavaScript too many times, so it took me a bit longer than I would have liked until I rediscovered it.

Now we will build the solution. I'll explain it first with some pseudocode, and then present the actual code below.

- Loop through the array
- The array size will change when we remove an element, so we need to use a variable to store the initial array length
- check if i is greater than or equal to array.length
- break if true
- check if i equals i+1
- if true, remove element at index i with splice()
- decrement i to recheck that same position in case of further duplicates

Like I said, pretty straightforward. I tend to overthink these algorithm problems. That's why I'm practicing!

Solution:
```js
var removeDuplicates = function(nums) {
    let numsLength = nums.length;
    for (let i = 0; i < numsLength; i++) {
        if (i >= nums.length) {
            break;
        }
        if (nums[i] === nums[i + 1]) {
            nums.splice(i, 1);
            i--;
        }
    }
};
```

Hope you learned something!! Have a great day and remember to GO OUTSIDE :)