teleren/devto huggingface dataset:
AWS CLI での EC2 起動時の UnauthorizedOperation エラー
Tags: aws, japanes
Published: 2020-03-02 14:18:35

---
date = 2020-03-02T23:02:16+09:00
description = "AWS CLI で aws ec2 run-instances コマンドを実行した際の UnauthorizedOperation エラーの解決方法です。"
---

## 実行したコマンド

```shell
aws ec2 run-instances
```

## エラー内容
`An error occurred (UnauthorizedOperation) when calling the RunInstances operation: You are not authorized to perform this operation.`

### エラーメッセージ全体

```
An error occurred (UnauthorizedOperation) when calling the RunInstances operation: You are not authorized to perform this operation. Encoded authorization failure message: tpNG4Ag3__Co44EMHx-vIkiZHCEGsJXC5WKyizyBzLUqbeLeeTRqDOPoOKB7hkdIpQSxBf2TBSfDgWKLUB5Ra7XAlq1e5ctNRyxcLkvA7kDs4b1CxVah5Yo3IxafEU5KQAD2uN5sHeCwZe2sd4IJUZkOiSNv_w_dSUfOUihgQ80_CJtpb1_lB6vxKRbd7XWAmsLspeun1Q7L3rJJCS8Y0BTVKlKXPDMOIhpjc--cYLsB1MZ0ZCq178BNgFKzv747Ky4NgN4VRUywI1MYiLy9uWzeKc_wGgLM2mJ6JJB8hBvAHprbKQin_J1tuuINAnF85gvFkY6-ieBZ5slajmW69m6WbzqF3ylx50YF9bj_JMDHJtMBVFvT9jgXJz9UDJJVok_D_Lh1oH8A-dC123n9_dDAJrQmo7QZ4oTAQJmP8MBSFvjHRhAEu7Ed4GpKXZyFZPk-IFORkRACNB1a-Wdm3CaYr4-wA8Icu-0g4Vw4BTvnVPlK8Z3MXE4nuIXJivrUh6LvMgftJRqzYWAPaZnL9uM5oLmhlG4OxYQI6e01UYUqf9kanyDQtrVQipEXGnDZQA
```

## 原因
起動する EC2 に インスタンスプロファイルを設定していたが、`iam:PassRole` 権限が無かった。

## 解決方法
AWS CLIを実行するIAMユーザーのポリシーに `iam:PassRole` の権限を付与します。

## 参考
https://aws.amazon.com/jp/blogs/security/granting-permission-to-launch-ec2-instances-with-iam-roles-passrole-permission/


## 補足
エラーメッセージの `Encoded authorization failure message: ` 以降に出力されている文字列はエンコードされているので、
`aws sts decode-authorization-message` コマンドでデコードする必要があります。

### 参考
https://dev.classmethod.jp/cloud/aws/sts-decode-authorization-message/
RTS game development - Week #4
Tags: csharp, unity3d, gamedev
Published: 2020-03-02 14:17:50


Current state: **__9 000 lines__** of code over **__80__** files

I've made some progress since the last update, so let's see what I did.

--------------------

#**Attack heatmap**#

Heatmap which shows where are shots being fired on the field. That shall help AI to organise itself to be more passive or active in certain situations. 

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


--------------------

#**Fog of War**#

Fog of war was very painful at first, but the solution I've found seems to be robust. A post-processing effect gets the world position of every pixel. Then compares it with all known unit positions and their Line of Sight. Based on that it determinates if the pixel should get dimmed or be fully clear.

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

--------------------

#**Minimap**#

Shader based minimap which displays coloured circles. The future plan is to have actual textures instead of pure colours.

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

--------------------

#**Soldier stances**#

The units can change their ***"Cover state"*** and that affects the damage they can receive and how much they are detectable.

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

--------------------

#**Bomber**#

A plane flies through the map and drops the bomb right at the correct time, so it hits the ground at the target. First, I made it physically based, so had calculated some very basic physics formulas to get when to drop the bomb. But that had many limitations so eventually, I ended up with a custom curve which the bomb follows and the result is satisfying enough.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/7p6rv02fe69oygiu57t2.png)

--------------------

#**Helicopters**#

Very nice helicopter motor was made. It has its own momentum and feels natural. The helicopters can transport units.

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


--------------------


#*Future plans*#

- The unit squad should get more segmented with different weapons and similar differences.
- There should be a selectable main tent.
- Units should have a conic vision instead of a circle vision.

...

I hope you found it at least a little interesting, till next time...
Python next() function
Tags: python, beginners
Published: 2020-03-02 14:04:10

In this article we'll discuss the <a href="https://python.org">Python</a> `next()` function. The Python next() function returns an iterator to the next item. If you have an iterable, it makes sense to use the next() function.

The next() syntax is:

```python
next (iterator [, default])
```
Where the parameters are:

* Iterator: <a href="https://pythonbasics.org/iterable/">iterables</a>
* Default: optional, used to set the default return value when there is no next element, if not set, and no next element is found it triggers the StopIteration exception.

The function return the current object in the iteratable.

### examples

The following example shows how to use the next of:

```python
#!/usr/bin/python
#-*- coding: UTF-8 -*-

# First get Iterator object:
it = iter ([1, 2, 3, 4, 5])

# Cycle:
while True:
    try:
        # Get the next value:
        x = next(it)
        print(x)
    except StopIteration:
        # Encounter StopIteration loop exits
        break
```

The output is:

```
    1
    2
    3
    4
    5
```

It raises a `StopIteration` exception that you must catch, because otherwise the program stops abruptly (an exception is an 'error' that occurs while the program is running).

```python
>>> 
>>> nums = [1,2,3,4,5,6]
>>> it = iter(nums)
>>> while True:
...     x = next(it)
...     print(x)
... 
1
2
3
4
5
6
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
StopIteration
>>> 
```

So catch the `StopIteration` exception with a <a href="https://pythonbasics.org/try-except/">try-except</a> block.

```python
>>> nums = [1,2,3,4,5,6]
>>> it = iter(nums)
>>> while True:
...     try:
...         x = next(it)
...         print(x)
...     except StopIteration:
...         break
... 
```

**Related links:**
* <a href="https://gumroad.com/l/dcsp">Learn Python programming</a>
* <a href="https://docs.python.org/3.5/library/functions.html#next">Python docs next() reference</a>
Weekly Links – 3/2
Tags: links, cloud, datastudio, jupyter
Published: 2020-03-02 17:36:23

---
title: Weekly Links – 3/2
published: true
date: 2020-03-02 14:00:27 UTC
tags: Links,cloud,data studio,jupyter
canonical_url: 
---

Hello all, here’s another round of weekly links. And its been a crazy week but with no travel which is awesome. Especially given all the concerns with travel and viruses.

![](http://www.welldocumentednerd.com/wp-content/uploads/2020/03/during-cold-and5236536026398475788.jpg)

Down to business…

- [Using dotnet for apache spark](https://devblogs.microsoft.com/dotnet/using-net-for-apache-spark-to-analyze-log-data/) : I love seeing these kinds of technology integrations especially because they make it easier to mix new technologies with traditional app dev.
- [Streaming and batching with Cosmos SDK](https://devblogs.microsoft.com/dotnet/using-net-for-apache-spark-to-analyze-log-data/) : Cosmos is way more versatile than most people give it credit for, and here’s another chance showing that kind of support.
- [GitHub Actions](https://channel9.msdn.com/Shows/On-NET/Streaming-and-Batching-with-the-Cosmos-DB-SDK-for-NET) : Really awesome to see how github actions are expanding.
- [Zero Trust White paper](https://channel9.msdn.com/Shows/Visual-Studio-Toolbox/GitHub-Actions) : Really fascinating documentation on zero trust in the cloud which really is the future for security.
- [Supply Chain Risk Management](https://devblogs.microsoft.com/azuregov/supply-chain-risk-management-for-zero-trust-with-microsoft-azure-6-of-6/) : A great part of a series on zero trust.
- [Insider Threat Model](https://devblogs.microsoft.com/azuregov/supply-chain-risk-management-for-zero-trust-with-microsoft-azure-6-of-6/) : a fascinating read in the series on zero trust.
- [Using Jupyter Notebooks in Azure Data Studio](https://channel9.msdn.com/Shows/Azure-Friday/How-to-use-Jupyter-Notebooks-in-Azure-Data-Studio) : Very awesome integration and a practical uses case for notebooks. 

### Fun Stuff

I’ve made no secret of my Fandom attached to dungeons and dragons and recently the opening cinematic for baldurs gate 3 dropped and it is amazing. It can be found [here](https://youtu.be/_hqgv0pU0EM).
Python id () function
Tags: python, beginners
Published: 2020-03-02 13:49:08

<a href="https://python.org">Python</a> stores all of its data in the computers memory. The memory is a block that is divided into sub blocks, where each block has an address.

![memory address](https://dev-to-uploads.s3.amazonaws.com/i/ndbhc7hlqprrter6ulz3.png)

In Python, the id() function is used to obtain the memory address of the object. 

Because Python is a high-level programming language, you usually don't need memory addresses. The value can be any <a href="https://pythonbasics.org/variables/">variable</a>, including a <a href="https://pythonbasics.org/strings/">string</a>.

The syntax of the id() function is:

```python
    id([object])
```
The parameter it takes is the object. It returns the memory address of the object. Conceptually it's the same as a memory address in C, but depending on the implementation of Python it may not be.

### Examples

The following examples show id to use:

```python
>>> x = "python"
>>> id(x)
139738512291632
>>> y = "programming"
>>> id(y)
139738511022192
>>> 
```

Python is quite smart with memory. If the value is the same, it will use the same memory address

```python
>>> x = 10
>>> y = 10
>>> z = 10
>>> id(x)
9302464
>>> id(y)
9302464
>>> id(z)
9302464
>>> 
```
These all point to the same location in memory, which is why their values are the same.

If the values are unique, the memory addresses will be different, because they point to different locations in memory:

```python
>>> x = 10
>>> y = 11
>>> z = 12
>>> id(x)
9302464
>>> id(y)
9302496
>>> id(z)
9302528
>>> 
```

**Related links:**
* <a href="https://docs.python.org/3.5/library/functions.html#id">id function in docs</a>
* <a href="https://gumroad.com/l/dcsp">Learn Python</a>
AI Career Lab and Expo @ODSC East 2020
Tags: machinelearning, career, python
Published: 2020-03-02 13:41:31

Whether you are trying to kick-start or accelerate your data science career, the ODSC AI Career Lab & Expo 2020 is the place to be.
http://bit.ly/2uKGqBg

Come listen to experts discuss the unique aspects of the hiring process in the Data Science domain, get mentor advice about the best path to a career in AI, and get closer to landing your dream job.

Companies will be interviewing on site!

30+ hiring partners will be seeking talented individuals to fill their open positions, including Stanley Black & Decker, Aetna, CVS Health, Liberty Mutual, Nielsen, Guidewell, P&G, Verizon, The National Geospatial-Intelligence Agency, National Grid, Nationwide Building Society, Vistaprint, Fifth Third Bank, and Bose. And we’ll be confirming more in the weeks to come.

10+ educational institutions, including USC Viterbi School of Engineering, Hult International Business School, Boston College, Merrimack College, Harvard - Institute for Applied Computational Science, Harvard - Business Analytics Program will be showcasing their programs specifically for data science domain.

And you won’t want to miss this chance to network with your peers and share career insights.

Check https://odsc.com/boston/career-expo/ for the detailed schedule!

ODSC AI Career Lab & Expo 2020 is ideal for job seekers from both the tech and business fields. You should consider attending if you're a developer, marketer, data scientist, software engineer, data engineer, data analyst, business analyst, product manager or in another related field.

*** This pass gives you access to ODSC AI Career Lab & Expo 2020 only.

*** This event is free to all ODSC Ticket Holders. If you are interested in participating in the general ODSC East 2020 conference please click https://odsc.com/boston/ to purchase your All Access Conference Pass.

If you are an employer that is interested in hiring, please email your inquiries to hiring@odsc.com.
Python hex() function, convert decimal to hexadecimal
Tags: python, beginners
Published: 2020-03-02 13:34:11

The <a href="https://python.org">Python</a> hex() function is used to convert decimal to hexadecimal integers, as a string.

* You may know <a href="https://pythonspot.com/binary-numbers-and-logical-operators/">binary</a> is base 2 (0,1). 
* A decimal number is base 10 (0,1,2,3,4,5,6,7,8,9). 
* A <a href="https://en.wikipedia.org/wiki/Hexadecimal">hexadecimal</a> is base 16 (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F).

They are just different ways of representing the same number in a computer.

For instance

Hexadecimal |  Decimal | Binary |
--|----|------|
A | 10 | 1010 |
B | 11 | 1011 |
C | 12 | 1100 |
10  | 16 | 10000 |
11  | 17 | 10001 |
12  | 18 | 10010 |

### Syntax

The syntax of the hex function is:

```python
    hex(x)
```

Parameter Description:

* *x* decimal integer (base 10)

### return value

Returns the hexadecimal number expressed as a <a href="https://pythonbasics.org/strings/">string</a>

### examples

The following example shows the hex() function in use. It converts the given numbers in decimal into a hexadecimal number:

```python
    >>> hex(255)
    '0xff'
    >>> hex(-42)
    '-0x2a'
    >>> hex(1L)
    '0x1L'
    >>> hex(12)
    '0xc'
    >>> type(hex (12))
    <Class 'str'> # String
```

Compare these with the above table:

```python
>>> hex(3)
'0x3'
>>> hex(10)
'0xa'
>>> hex(11)
'0xb'
>>> hex(12)
'0xc'
>>> 
```

Computers sometimes put `0x` in front, that means the number is a hexadecimal number. For binary it puts `0b` in front (try with `bin(10)`).

You can also do this for numbers in a <a href="https://pythonbasics.org/list/">list</a>:

```python
>>> numbers = [20,10,40,30,60,50,80,70]
>>> for num in numbers:
...     hex(num)
... 
'0x14'
'0xa'
'0x28'
'0x1e'
'0x3c'
'0x32'
'0x50'
'0x46'
>>> 
```
How to submit a Webflow form to the Webflow CMS
Tags: showdev, nocode, visualdevelopment
Published: 2020-03-02 13:33:04

A major limitation with Webflow is using a form and having that info submitted directly into your Webflow CMS.

Having this ability opens so many doors with what you can do on Webflow, yet it's been asked from the community for years, and Webflow doesn't have this feature on their roadmap.

So I decided to figure out how to quickly, and easily, solve this problem. By adding Zapier into the mix it become trivial.

Here is my 10 minute screencast walking through exactly how to do this:

{% youtube QwBrH5Lq11k %}

Go to my site and [find the full post and download the step-by-step PDF guide](https://nocodequest.com/commenting-system-with-webflow-and-zapier/).
Python dir() function
Tags: python, beginners
Published: 2020-03-02 13:04:08


<a href="https://python.org">Python</a> *dir()* function returns a list of properties of a module. You can install modules with <a href="https://pythonbasics.org/how-to-use-pip-and-pypi/">pip</a>, but Python comes with a lot of installed modules.

To use a module, you can use the `import` keyword. If you want to import the os module, the syntax is: `import os`

If you are new to Python, you may like <a href="https://gumroad.com/l/dcsp">this book</a>

### Syntax

The dir() function syntax is:

```python
    dir([object])
```
Parameter Description:

* Object: objects, variables, types.

### return value

Returns a list of properties of the module.

Without arguments, return the list of names in the current local scope. With an argument, attempt to return a list of valid attributes for that object.

### examples

The following example demonstrates the use of dir:

```python
    >>> dir () # get a list of attributes for the current module
    [ '__Builtins__', '__doc__', '__name__', '__package__', 'arr', 'myslice']
    >>>
    >>> dir ([]) # view the list of methods
    [ '__Add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', ' __getslice__ ',' __gt__ ',' __hash__ ',' __iadd__ ',' __imul__ ',' __init__ ',' __iter__ ',' __le__ ',' __len__ ',' __lt__ ',' __mul__ ',' __ne__ ',' __new__ ' , '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', ' count ',' extend ',' index ',' insert ',' pop ',' remove ',' reverse ',' sort ']
    >>>
```

If you run dir() without arguments, it shows the methods in the current scope (see hello and okay in the returned list, scroll right)

```python
Python 3.7.5 (default, Nov 20 2019, 09:21:52) 
[GCC 9.2.1 20191008] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> def hello():
...     pass
... 
>>> def okay():
...     pass
... 
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'hello', 'okay']
>>> 
```

To look inside a module:

```python
>>> import math
>>> dir(math)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
>>> 
```

**Related links:**
* <a href="https://pythonbasics.org/modules/">Modules in Python</a>
* <a href="https://docs.python.org/3.5/library/functions.html#dir">dir function in python docs</a>
What is Cloud Computing
Published: 2020-03-02 07:16:01

Cloud computing is a process of utilizing a network server for performing operations like storing accessing processing of data from or to a database rather than using a local server or computer data. The word “cloud” itself refers to the establishment of servers across the internet for access.

<strong>What is cloud computing</strong>:

Establishment of a virtual data and usage of its access for our purposes without any actual physical components. Cloud computing is purely based on the sharing of resources for our performances. These resources are can be accessed virtually by communication of servers.

<strong>Types of Cloud Computing</strong>:

<strong><em>Public Cloud</em></strong> - A cloud provider owns and manages all the hardware, software and supporting infrastructure provided to access them and manage accounts using a web browser. Microsoft Azure is one of the examples of the public cloud. The  [Azure tutorial](https://intellipaat.com/blog/tutorial/microsoft-azure-tutorial/) gives a brief explanation. As it is operated by third-party cloud service providers to deliver resources such as services and storage through the Internet.

<strong><em>Private Cloud</em></strong> -This is a cloud that mainly consists of a private network. Even if it asks for the third-party to involve in its resources only through the private network of the organization it is possible to access the servers and storage devices. These cloud computing resources are exclusively used by a single organization.

<strong><em>Hybrid cloud</em></strong> -This cloud is a combination of both public and private clouds. It allows the data and application to pass through the public cloud and private cloud.

<strong>Satya Nadella</strong> on Cloud Computing

Microsoft Corp. chief executive Satya Nadella on Tuesday indicated his company is betting big on cloud and artificial intelligence (AI), or ‘intelligent cloud’, in India.

Microsoft intends to make its cloud computing platform  [Azure](https://intellipaat.com/blog/what-is-microsoft-azure/) “the world’s computer", Nadella said at the Future Decoded summit in Bengaluru. Microsoft Azure has 57 data centre regions globally, with three centres in Pune, Chennai and Mumbai.
Daily Developer Jokes - Monday, Mar 2, 2020
Tags: jokes, dailydeveloperjokes
Published: 2020-03-02 13:00:19

---
title: "Daily Developer Jokes - Monday, Mar 2, 2020"
description: "Check out today's daily developer joke! (a project by Fred Adams at xtrp.io)"
series: "Daily Developer Jokes"
cover_image: "https://private.xtrp.io/projects/DailyDeveloperJokes/thumbnail_generator/?date=Monday%2C%20Mar%202%2C%202020"
published: true
tags: #jokes, #dailydeveloperjokes
---

Generated by Daily Developer Jokes, a project by [Fred Adams](https://xtrp.io/) ([@xtrp](https://dev.to/xtrp) on DEV)

___Read about Daily Developer Jokes on [this blog post](https://xtrp.io/blog/2020/01/12/daily-jokes-bot-release/), and check out the [Daily Developer Jokes Website](https://dailydeveloperjokes.github.io/).___
### Today's Joke is...
![Joke Image](https://private.xtrp.io/projects/DailyDeveloperJokes/public_image_server/images/5e1258d992c4e.png)

---
*Have a joke idea for a future post? Email ___[xtrp@xtrp.io](mailto:xtrp@xtrp.io)___ with your suggestions!*

*This joke comes from [Dad-Jokes GitHub Repo by Wes Bos](https://github.com/wesbos/dad-jokes) (thank you!), whose owner has given me permission to use this joke with credit.*

<!-- 
Joke text:
___Q:___ How do programming pirates pass method parameters?

___A:___ Varrrrarrrgs.
 -->
[No Code] Connect your static forms to Telegram or other favourite messenger
Tags: showdev
Published: 2020-03-02 12:52:19

Hello fellow developers,

I am excited to share [my side project](https://www.producthunt.com/posts/form2chat) - a form backend that allows to get notified of form submissions to the messenger of your choice: Telegram, Viber, Facebook Messenger, Slack, etc. 📨

The other day, my friend, who is a private entrepreneur and works most of the time on her own, asked me to add a contact form to her static website. It was important for her to be able to get notified about new leads as fast as possible. Also, she is usually away from her laptop most of the day. Given those conditions, notifications to the Telegram mobile app seemed like an ideal solution for her.

This is how this small project started, I work on it with my friend and later then we added integrations with Viber, Facebook Messenger, Slack and Zapier.

I hope [our project](https://www.producthunt.com/posts/form2chat) will help people who work on the highly competitive markets and need to reach out to their leads as soon as possible.

Would be very happy to get your feedback and to to answer all questions! Thank you :)
Python dict() function
Tags: python, beginners
Published: 2020-03-02 12:50:46

<a href="https://python.org">Python</a> dict() function is used to create a dictionary. A <a href="https://pythonbasics.org/dictionary/">dictionary</a> is different than a list, it is a set of key-value pairs. 

Each key has a unique value and you can quickly get a value using the key. Keys must be unique, but values don't need to be. 

In older versions of Python dictionaries were not in insertion order, but with the newest Python they are.

### Syntax

The dict() function syntax is:
```python
    class dict(** kwarg)
    class dict(mapping, ** kwarg)
    class dict(iterable, ** kwarg)
```
Parameter Description:

* kwargs: Keyword
* Mapping: container elements.
* Iterable: iterables.


### return value

Returns a dictionary.

### examples

The following example demonstrates the use of dict:

```python
    >>> dict() # Create an empty dictionary
    {}
    >>> dict(a = 'a', b = 'b', t = 't') # incoming keyword
    { 'A': 'a', 'b': 'b', 't': 't'}
    >>>
    >>> dict(zip ([ 'one', 'two', 'three'], [1, 2, 3])) 
    { 'Three': 3, 'two': 2, 'one': 1}
    >>>
    >>> dict([( 'one', 1), ( 'two', 2), ( 'three', 3)]) 
    { 'Three': 3, 'two': 2, 'one': 1}
    >>>
    >>>
```

After creation of the dictionary, you can retrieve values or loop over it.

```python
>>> m = dict([( 'one', 1), ( 'two', 2), ( 'three', 3)]) 
>>> m['one']
1
>>> m['two']
2
>>> m['three']
3
>>> for k, v in m.items():
...     print(f"{k} => {v}")
... 
one => 1
two => 2
three => 3
>>> 
```

**Related links:**
* <a href="https://gumroad.com/l/dcsp">Python book with exercises</a>
* <a href="https://pythonprogramminglanguage.com/">Learn Python programming</a>