Are you looking for an alternative to bash? Are you looking for something more user-friendly? Then look no further because you just found the golden fish!
Fish (friendly interactive shell) is a smart and user-friendly command line shell that works on Linux, MacOS, and other operating systems. Use it for everyday work in your terminal and for scripting. Scripts written in fish are less cryptic than their equivalent bash versions.
Fish’s user-friendly features
Suggestions Fish will suggest commands that you have written before. This boosts productivity when typing same commands often.
Sane scripting Fish avoids using cryptic characters. This provides a clearer and friendlier syntax.
Completion based on man pages Fish will autocomplete parameters based on the the command’s man page.
Syntax highlighting Fish will highlight command syntax to make it visually friendly.
Installation
Fedora Workstation
Use the dnf command to install fish:
$ sudo dnf install fish
Make fish your default shell by installing the util-linux-user package and then running the chsh (change shell) command with the appropriate parameters:
You will need to log out and back in for this change to take effect.
Fedora Silverblue
Because this is not GUI application, you will need to layer it using rpm-ostree. Use the following command to install fish on Fedora Silverblue:
$ rpm-ostree install fish
On Fedora Silverblue you will need to reboot your PC to switch to the new ostree image.
If you want to make fish your main shell on Fedora Silverblue, the easiest way is to update the /etc/passwd file. Find your user and change /bin/bash to /usr/bin/fish.
You will need root privileges to edit the /etc/passwd file. Also you will need to log out and back in for this change to take effect.
Configuration
The per-user configuration file for fish is ~/.config/fish/config.fish. To make configuration changes for all users, edit /etc/fish/config.fish instead.
The per-user configuration file must be created manually. The installation scripts will not create ~/.config/fish/config.fish.
Here are a couple configuration examples shown alongside their bash equivalents to get you started:
Creating aliases
~/.bashrc:
alias ll=’ls -lh’
~/.config/fish/config.fish:
alias ll=’ls -lh’
Setting environment variables
~/.bashrc:
export PATH=$PATH:~/bin
~/.config/fish/config.fish:
set -gx PATH $PATH ~/bin
Working with fish
When fish is configured as your default shell, the command prompt will look similar to what is shown in the below image. If you haven’t configured fish to be your default shell, just run the fish command to start it in your current terminal session.
As you start typing commands, you will notice the syntax highlighting:
Cool, isn’t it?
You will also see commands being suggested as you type. For example, start typing the previous command a second time:
Notice the gray text that appears as you type. The gray text is fish suggesting the command you wrote before. To autocomplete it, just press CTRL+F.
Get argument suggestions based on the preceding command’s man page by typing a dash (–) and then the TAB key:
If you press TAB once, it will show you the first few suggestions (or every suggestion, if there are only a few arguments available). If you press TAB a second time, it will show you all suggestions. If you press TAB three times consecutively, it will switch to interactive mode and you can select an argument using the arrow keys.
Otherwise, fish works similar to most other shells. The remaining differences are well documented. So it shouldn’t be difficult to find other features that you may be interested in.
Make fish even more powerful
Make the fish even more powerful with powerline. Powerline adds command execution time, colored git status, current git branch and much more to fish’s interface.
Before installing powerline for fish, you must install Oh My Fish. Oh My Fish extends fish’s core infrastructure to enable the installation of additional plugins. The easiest way to install Oh My Fish is to use the curl command:
If you don’t want to pipe the installation commands directly to curl, see the installation section of Oh My Fish’s README for alternative installation methods.
Fish’s powerline plugin is bobthefish. Bobthefish requires the powerline-fonts package.
On Fedora Workstation:
> sudo dnf install powerline-fonts
On Fedora Silverblue:
> rpm-ostree install powerline-fonts
On Fedora Silverblue you will have to reboot to complete the installation of the fonts.
After you have installed the powerline-fonts package, install bobthefish:
> omf install bobthefish
Now you can experience the full awesomeness of fish with powerline:
Additional resources
Check out these web pages to learn even more about fish:
If you never managed to get your hands on it, or didn’t feel like forking over the $39.99 recommended retail price, you might want to consider this brand new digital version. A listing on Amazon has revealed that the book is arriving digitally this April, with the release date currently set for the 14th.
Please note that some links on this page are affiliate links, which means if you click them and make a purchase we may receive a small percentage of the sale. Please read our FTC Disclosure for more information.
We actually posted a book review for Hyrule Historia way back in 2013; if you’re wanting to know more about it, make sure to give that a good read. Here’s a snippet:
Packed with information and lavishly produced, Hyrule Historia was always going to be a standout publication. However, its depth and detail have surprised even us. Few video game franchises could ever hope to support such a weighty and significant book, and even if you’ve only a passing interest in the adventures of Link, this should be a permanent addition to your coffee table or bookshelf. Our fingers are crossed that the same treatment can be offered to other key Nintendo properties in the future.
Tempted by this digital version? Did you grab a copy of the physical book back in the day? Let us know in the usual place.
Posted by: xSicKxBot - 03-10-2020, 09:21 AM - Forum: Lounge
- No Replies
The Division 2 Is Going Down For Maintenance Ahead Of Season 1 Update
The Division 2 servers will be down for an estimated three hours of maintenance on Tuesday, March 10 at 12:30 AM PST / 3:30 AM EST / 07:30 AM GMT. The downtime will be used to fix an issue that occurred after last week's release of the Warlords of New York expansion on PlayStation 4, Xbox One, and PC.
The issue in question relates to new gear set blueprints not being granted as control point rewards. So before you try to wrestle back control of New York from the Rikers, Cleaners, and so on, you might want to wait until after Tuesday's downtime to ensure that you're rewarded for your efforts.
"These fixes are part of the ongoing efforts to fix bugs discovered since the launch of Warlords of New York and we are working on further changes/fixes that require additional time and will be deployed once ready," Ubisoft wrote in a forum post. If the community has its way, one possible future change should revolve around the renewed bullet sponginess of enemies. This has been one of the key complaints since Warlords of New York launched, with enemies and gadgets on higher difficulties taking far too long to defeat for even the most well-rounded squad. This post from Reddit shows how even a Support Station can soak up damage from multiple players:
To Ash FREEbie, Thea: The Awakening 80% OFF, Crypto Sale Day 1
Thea: The Awakening - Slavic myth & monstrosity at 80% OFF
[www.indiegala.com] There are Strigas and Baba Yaga's aplenty, but there are no heroes, no monster slayers, and no great armies capable to banish them. https://youtu.be/oTk79MpbBfU
A new FREEbie is here!
[freebies.indiegala.com] Our newest FREEbie, To Ash, is an old-school RPG made to question your acceptance of mortality.
Crypto Sale Day 1: Graffiti Games Publisher Sale, up to -80%
Posted by: xSicKxBot - 03-10-2020, 03:20 AM - Forum: Windows
- No Replies
Microsoft donates $1M to Puget Sound’s COVID-19 Response Fund
As the world grapples with COVID-19, local officials and businesses here in the Puget Sound are taking necessary and unprecedented steps to protect public health, ease anxiety and prevent the spread of the virus. Conferences and events have been postponed or canceled, large meetings limited, and employers are asking their employees to work from home. While these moves to stem COVID-19 are critical, we realize they come with an economic and societal price. A price that is especially high for those closest to the crisis and members of our community already facing health and economic disparities.
Last week, we announced in the Puget Sound region that we’ve asked our employees who can work from home to do so. While reducing the number of people on our campuses has also reduced the need for onsite support from hourly workers supporting our operations, we will continue to pay them their regular wages, whether their services are needed or not. It’s encouraging to see Amazon, Expedia, Facebook, Google, and Salesforce announce that they’ll do the same. As large corporations we can take this step and should. But not all businesses will be able to do so.
As our community focuses on public health needs during the COVID-19 outbreak, it’s important that we also rally together to address the unmet economic needs developing around us. That’s why we’re partnering today with the two largest broad-based regional foundations to strengthen the community’s safety net through this crisis. The Seattle Foundation, United Way of King County, Microsoft, Amazon and Starbucks, in coordination with King County and the City of Seattle, will launch a regional COVID-19 Response Fund (CRF) to address the emerging community needs of COVID-19. . Microsoft is making an initial $1 million anchor donation to help launch this effort immediately.
Given that the outbreak will impact many communities that are already facing health and economic disparities, the fund will provide financial support to nonprofits and community-based organizations on the frontlines of the response. This support will include rental assistance to keep people housed; help ensure children, seniors and families have access to food; and support healthcare workers on the front line.
In addition to contributing to the COVID-19 Response Fund, our employees want to and can play a vital role. We will encourage and facilitate employee donations to support these efforts, which will be matched by the company on a dollar-per-dollar basis.
Criteria for the initial emergency response stage are being developed to ensure the dollars are allocated in a targeted, agile and responsive manner where the dollars are needed most. Initial grants will support organizations doing work with priority populations, such as: people without sick leave or health insurance; medically fragile populations; hourly and gig economy workers; healthcare workers and people with limited English-language proficiency. The group will raise funds throughout the epidemic and recovery phases, to allocate resources as needs emerge and evolve.
Microsoft’s products and services can also play a vital role in supporting people and organizations through this crisis, especially for public health officials working tirelessly to reduce the impact of COVID-19 and businesses and universities that are moving to remote meetings and classes. Across the global economy, we’re working to enable people to work remotely without sacrificing collaboration, productivity and security.
While local philanthropy has an important role to play, the COVID-19 crisis requires more funding than the corporate and philanthropic sector can contribute. There is clearly a need for additional state and government assistance. We look forward to working with state, county and local leaders who have been playing such an important and vital role in recent days.
In times of trouble, the greater Seattle community has a strong track record of pulling together. This is a time that calls for the community to come together once again.
Posted by: xSicKxBot - 03-10-2020, 03:20 AM - Forum: Windows
- No Replies
How technology is transforming home health care
young caregiver showing something to senior woman, 90 years old, on a digital tablet
Public health organizations are chartered with ensuring the health and well-being of individuals, families, and communities. Their scope of responsibility is wide-ranging and varies from country to country, and they are required to provide direct healthcare services to their citizens, including epidemiology and disease prevention.
In the area of providing care, public health organizations, along with their commercial health counterparts, face a variety of challenges: a virtual explosion in the amount of collected information; fragmentation of data and formats across providers and care teams; spiraling cost escalation; and a shortage of staff and resources to keep up with the workload caused in large part by an aging population.
The World Health Organization (WHO) estimates that by 2050, 22% of the population will be over the age of 60. The WHO further states that health systems need to be realigned to meet the needs of the aging population and that all countries need an integrated system of long-term care.1
Public health officials and practitioners continue to assess new technologies to help them transform healthcare services to keep up with these growing demands. Technology, when combined with new and novel approaches, enables public health organizations to drive down costs and improve health outcomes. In-home care is a way to address these challenges, contain costs, and improve the patient’s overall well-being and care experience. This is an area undergoing rapid digital transformation as public health organizations adopt modern technologies.
Aspects of home care employing modern technologies include:
Remote Patient Monitoring helps create and maintain a full picture of a patient’s health and well-being by connecting devices in the field and harnessing the power of the Internet of Things (IoT) to track wellness and detect, troubleshoot, and resolve patient issues in real-time. Example: Care-givers are equipping elderly patient’s homes with sensors embedded in the floor and furniture for issues ranging from “slip and fall” detection to signal an alert to the caregiver if the patient has remained in bed for an extended period of time. These sensors, combined with wearable technologies that monitor the patient’s vital signs (e.g. heart rate, respiration, blood pressure, etc.), can provide vital information to the patient’s care team.
Mobile Care Worker helps health organizations carry out their extended mission by building a customized mobile care solution based on a health customer’s specific needs and priorities to serve residents in their homes. Additionally, IoT and other technologies, along with the care-giver’s mobile device can provide oversight to ensure these visits are carried out when and where they are scheduled (in an electronic visit verification scenario—an important compliance aspect of home care for many public health agencies). Example: Certain countries have begun empowering postal workers with capabilities to check on remote elderly patients with mobile care solutions to collect information to update health records while out on regularly recurring routes. This helps to maximize existing efficiencies and empower staff to be impactful in new ways.
Virtual Consult utilizes enablement and configuration within Microsoft Teams to facilitate a telehealth solution that can reduce onboarding time, consolidate communication and collaboration agility, and ease user adoption for an organization. Example: Traveling to a patient’s home is time-consuming and can be costly—especially in rural communities where the travel distances can be significant from one patient’s home to another. Virtual consultations are becoming a more popular complement to—and sometimes replacement of—in-home visits made possible by the video-teleconference capabilities within Microsoft Teams. Common scenarios include: • Checking in on the patient when receiving a non-emergency alert (e.g. elevated blood pressure). Video allows the caregiver to check in on the patient and observe their state in a way that a phone call cannot; • Behavioral Counseling: video enables the counselor to pick up on non-verbal cues in a way audio-only (e.g. phone call) interactions cannot.
Healthcare Bot employs an AI-powered service for healthcare that integrates medical content from trusted sources, including details on conditions, symptoms, medications, types of doctors, procedures, and more. Example: AI-driven technology can be leveraged to provide automated triage functionality to respond to and interact with patients during a time of crisis. Questions that assess the levels of pain and types of injuries, while recording the information in healthcare standard terminology are invaluable to care teams who will need to follow up with patients based on need and severity.
Operational Analytics embrace predictive models and innovative technologies to create actionable insights and outputs to better manage individual and population health outcomes. Example: Streamlined operations and reduced costs are benefits of analytics models enabling healthcare care executives and clinicians to share information and analyze structured & unstructured data. This empowers them to make more informed choices at the point of decision by utilizing improved KPI’s such as medical quality and patient safety.
Public health solutions create experiences that give residents control over their health data and provide insights that facilitate self-care and family support. Technology-driven solutions deepen patient insights to gain a 360-degree view of care metrics and enable a personalized care continuum.
Care teams at different levels within the municipality are able to connect with patients, increase communication and collaborate more efficiently in real-time to address issues from benign single-patient monitoring through pandemic-level crises that necessitate a broader reach and level of interaction. Delivering a connected and personalized customer service experience to empower care teams is an evolving requirement, and Microsoft provides solutions to enable secure, compliant collaboration and faster decisions, as well as help care teams to form, communicate, and do more for their residents.
Posted by: xSicKxBot - 03-10-2020, 03:19 AM - Forum: Lounge
- No Replies
Call Of Duty: Warzone's Battle Royale Map Looks Massive
Warzone rolls out into Call of Duty: Modern Warfare on Tuesday, March 10--the new mode will include two game types, Plunder and the long-rumored Battle Royale. Both Plunder and Battle Royale will take place on a massive-looking map. If you're looking to plan ahead, Infinity Ward has revealed an overview of the map via Twitter.
The map (below) is a large area of Verdansk, with mountainous regions in the north and a body of water in the south. It's pocketed with several landmarks, including the Atlas Superstore, a stadium, lumber yard, quarry, and racing track. A dotted line appears to show the playable area, which in battle royale fashion will shrink as the match proceeds.
Warzone will be free-to-play, so you can jump in and join the battle royale even if you don't own the main Modern Warfare game. It will support up to 150 players, and Modern Warfare owners will get access a few hours early. There are other benefits to being in the Modern Warfare player pool as well, since non-owners will have a huge download size. New players will need to download an 80-100GB download, while MW players can get the mode with a 15-22GB one.
Feature: Nintendo Life eShop Selects – February 2020
Yet another month has flown by (and a whole other week at this point), and there were plenty of cracking games flooding onto the Switch’s eShop over that time.
These awards aim to celebrate the best of Nintendo’s digital store, giving some love and attention to the games that could so easily be missed in the Switch’s ever-growing library.
So, let’s get started! Here are the best Switch eShop games of February 2020!
Honourable Mentions:
While these titles didn’t quite make our top three this month, they’re still certainly worth checking out.
Publisher: My.com / Developer: Allods Team
Release Date: 18th Feb 2020 (USA) / 18th Feb 2020 (UK/EU)
Taking third spot this month is Warface, a first-person shooter which launched on the Switch eShop out of nowhere last month. The game might not be as polished as the AAA shooters skipping Switch, but it does offer solid asymmetrical online FPS action to Switch in a way that no other shooter has managed thus far.
If you’re looking for a new online shooter to try, it really wouldn’t hurt to give this a chance – did we mention it’s free?
Publisher: Arc System Works / Developer: Arc System Works
Release Date: 20th Feb 2019 (USA) / 20th Feb 2019 (UK/EU)
The retro fans amongst the Nintendo Life team fell in love with Double Dragon & Kunio-kun Retro Brawler Bundle this month, sending it into second place in our round-up. In our review, we praised the collection’s local multiplayer shenanigans, truly impressive quality of life improvements and plenty more besides.
If you’re concerned about this one being a cheap, quick compilation of old ROMS, think again; it goes well beyond this thanks to proper curation of the source material and is well worth checking out.
Publisher: Capcom / Developer: Capcom
Release Date: 20th Feb 2020 (USA) / 20th Feb 2020 (UK/EU)
Taking first place this month is Devil May Cry 3 Special Edition, a special edition release of Devil May Cry 3 on Switch – what do you mean, ‘the title already gave that away’? While it’s definitely aged in places, we found that the game’s turbo-charged, combo-heavy action feels as fresh today as it did back in 2005 when we checked it out for review.
If you’re yet to experience Devil May Cry 3 in any form, we heartily recommend giving this Switch port a chance, and its new Freestyle mode – which lets players swap combat styles on the fly at any point during the action – might just entice those who have played it before, too.
How we decide our eShop Selects top three: As we reach the end of every month, the Nintendo Life staff vote on their favourite titles from a list of games selected by the editorial team. To qualify for this list, these games must have been released primarily as a digital Nintendo Switch eShop title in that particular month, and must have been reviewed on Nintendo Life; we select the qualifying games based on their review scores.
Staff are then asked to vote for three games that they think deserve to sit right at the very top of that list; first choice gets 3 points, second choice gets 2 points, and third choice gets 1 point. These votes are then tallied to create a top three list, with the overall winner taking that month’s top prize.
Random: Meet The World’s First Legitimate “Bellionaire” In Animal Crossing
Although most people stopped playing the original Animal Crossing on the GameCube a long time ago, there’s still a dedicated community out there speedrunning the game. One of these individuals, known as ‘BrianMp16’ on YouTube and Twitch, recently achieved a rather significant milestone in the game.
He claims to have become the “first legitimate Animal Crossing bellionaire” in the original release. The challenge was to earn one billion bells so he could then receive the post office model – the most expensive item, valued at 999,999,999.
The main reason no one else has gone for this is because you can simply type in a Nook Code in 30 seconds and receive the Post Model that way.
According to his post over on Reddit, this task apparently took him more than two months and 180 hours to achieve. Instead of using glitches or codes, he played the Stalk Market and shifted a lot of turnips on a regular basis. In an FAQ prior to completion, BrianMp16 said it had always been his “dream” to legitimately obtain every item in the game. And in case you’re wondering what happens when you save up this much, you receive a message of congratulations from the post office (see above).
Now that he’s 100% the original title, Brian is ready to move onto Animal Crossing: New Horizons when it arrives later this month. He’s also used his new in-game status to help raise funds (in real life) for animals affected by the Nashville tornados in North America. You can read more about this over on Reddit.
How can you add more elements to a given list? Use the append() method in Python. This tutorial shows you everything you need to know to help you master an essential method of the most fundamental container data type in the Python programming language.
Definition and Usage
The list.append(x) method—as the name suggests—appends element x to the end of the list.
Here’s a short example:
>>> l = []
>>> l.append(42)
>>> l
[42]
>>> l.append(21)
>>> l
[42, 21]
In the first line of the example, you create the list l. You then append the integer element 42 to the end of the list. The result is the list with one element [42]. Finally, you append the integer element 21 to the end of that list which results in the list with two elements [42, 21].
Syntax
You can call this method on each list object in Python. Here’s the syntax:
list.append(element)
Arguments
Argument
Description
element
The object you want to append to the list.
Code Puzzle
Now you know the basics. Let’s deepen your understanding with a short code puzzle—can you solve it?
# Puzzle
nums = [1, 2, 3]
nums.append(nums[:]) print(len(nums))
# What's the output of this code snippet?
You can check out the solution on the Finxter app. (I know it’s tricky!)
You can see that the append() method also allows for other objects. But be careful: you cannot append multiple elements in one method call. This will only add one new element (even if this new element is a list by itself). Instead, to add multiple elements to your list, you need to call the append() method multiple times.
Python List append() At The Beginning
What if you want to use the append() method at the beginning: you want to “append” an element just before the first element of the list.
Well, you should work on your terminology for starters. But if you insist, you can use the insert() method instead.
The insert(i, x) method inserts an element x at position i in the list. This way, you can insert an element to each position in the list—even at the first position. Note that if you insert an element at the first position, each subsequent element will be moved by one position. In other words, element i will move to position i+1.
Python List append() Multiple or All Elements
But what if you want to append not one but multiple elements? Or even all elements of a given iterable. Can you do it with append()? Well, let’s try:
>>> l = [1, 2, 3]
>>> l.append([4, 5, 6])
>>> l
[1, 2, 3, [4, 5, 6]]
The answer is no—you cannot append multiple elements to a list by using the append() method. But you can use another method: the extend() method:
>>> l = [1, 2, 3]
>>> l.extend([1, 2, 3])
>>> l
[1, 2, 3, 1, 2, 3]
You call the extend() method on a list object. It takes an iterable as an input argument. Then, it adds all elements of the iterable to the list, in the order of their occurrence.
Python List append() vs extend()
I shot a small video explaining the difference and which method is faster, too:
The method list.append(x) adds element x to the end of the list.
The method list.extend(iter) adds all elements in iter to the end of the list.
The difference between append() and extend() is that the former adds only one element and the latter adds a collection of elements to the list.
You can see this in the following example:
>>> l = []
>>> l.append(1)
>>> l.append(2)
>>> l
[1, 2]
>>> l.extend([3, 4, 5])
>>> l
[1, 2, 3, 4, 5]
In the code, you first add integer elements 1 and 2 to the list using two calls to the append() method. Then, you use the extend method to add the three elements 3, 4, and 5 in a single call of the extend() method.
Which method is faster — extend() vs append()?
To answer this question, I’ve written a short script that tests the runtime performance of creating large lists of increasing sizes using the extend() and the append() methods.
Our thesis is that the extend() method should be faster for larger list sizes because Python can append elements to a list in a batch rather than by calling the same method again and again.
I used my notebook with an Intel® Core i7-8565U 1.8GHz processor (with Turbo Boost up to 4.6 GHz) and 8 GB of RAM.
Then, I created 100 lists with both methods, extend() and append(), with sizes ranging from 10,000 elements to 1,000,000 elements. As elements, I simply incremented integer numbers by one starting from 0.
Here’s the code I used to measure and plot the results: which method is faster—append() or extend()?
import time def list_by_append(n): '''Creates a list & appends n elements''' lst = [] for i in range(n): lst.append(n) return lst def list_by_extend(n): '''Creates a list & extends it with n elements''' lst = [] lst.extend(range(n)) return lst # Compare runtime of both methods
list_sizes = [i * 10000 for i in range(100)]
append_runtimes = []
extend_runtimes = [] for size in list_sizes: # Get time stamps time_0 = time.time() list_by_append(size) time_1 = time.time() list_by_extend(size) time_2 = time.time() # Calculate runtimes append_runtimes.append((size, time_1 - time_0)) extend_runtimes.append((size, time_2 - time_1)) # Plot everything
import matplotlib.pyplot as plt
import numpy as np append_runtimes = np.array(append_runtimes)
extend_runtimes = np.array(extend_runtimes) print(append_runtimes)
print(extend_runtimes) plt.plot(append_runtimes[:,0], append_runtimes[:,1], label='append()')
plt.plot(extend_runtimes[:,0], extend_runtimes[:,1], label='extend()') plt.xlabel('list size')
plt.ylabel('runtime (seconds)') plt.legend()
plt.savefig('append_vs_extend.jpg')
plt.show()
The code consists of three high-level parts:
In the first part of the code, you define two functions list_by_append(n) and list_by_extend(n) that take as input argument an integer list size n and create lists of successively increasing integer elements using the append() and extend() methods, respectively.
In the second part of the code, you compare the runtime of both functions using 100 different values for the list size n.
In the third part of the code, you plot everything using the Python matplotlib library.
Here’s the resulting plot that compares the runtime of the two methods append() vs extend(). On the x axis, you can see the list size from 0 to 1,000,000 elements. On the y axis, you can see the runtime in seconds needed to execute the respective functions.
The resulting plot shows that both methods are extremely fast for a few tens of thousands of elements. In fact, they are so fast that the time() function of the time module cannot capture the elapsed time.
But as you increase the size of the lists to hundreds of thousands of elements, the extend() method starts to win:
For large lists with one million elements, the runtime of the extend() method is 60% faster than the runtime of the append() method.
The reason is the already mentioned batching of individual append operations.
However, the effect only plays out for very large lists. For small lists, you can choose either method. Well, for clarity of your code, it would still make sense to prefer extend() over append() if you need to add a bunch of elements rather than only a single element.
Python List append() vs insert()
Python List append() vs concatenate()
Python List append() If Not Exists
Python List append() Return New List
Python List append() Time Complexity, Memory, and Efficiency