# feed_data

id: 7a7ce68a-1dec-4cb0-ba14-cc7f3f0c3316
url: https://www.nasa.gov/rss/dyn/breaking_news.rss
title: NASA Breaking News
group_id: 5ba66bdc-22cd-4924-9389-104d85c2247e
feed_type: MediaRss
description: A RSS news feed containing the latest NASA news articles and press releases.
language: en-us
original_document:
<?xml version="1.0" encoding="utf-8" ?> <rss version="2.0" xml:base="http://www.nasa.gov/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:media="http://search.yahoo.com/mrss/"> <channel> <title>NASA Breaking News</title>
 <description>A RSS news feed containing the latest NASA news articles and press releases.</description>
 <link>http://www.nasa.gov/</link>
 <atom:link rel="self" href="http://www.nasa.gov/rss/dyn/breaking_news.rss" />
 <language>en-us</language>
 <managingEditor>jim.wilson@nasa.gov</managingEditor>
 <webMaster>brian.dunbar@nasa.gov</webMaster>
 <docs>http://blogs.harvard.edu/tech/rss</docs>
 <item> <title>Florida Students to Hear from NASA Astronauts Aboard Space Station</title>
 <link>http://www.nasa.gov/press-release/florida-students-to-hear-from-nasa-astronauts-aboard-space-station-0</link>
 <description>NASA astronauts aboard the International Space Station will speak to students from St. Mark’s Episcopal School in Palm Beach Gardens, Florida.</description>
 <enclosure url="http://www.nasa.gov/sites/default/files/styles/1x1_cardfeed/public/thumbnails/image/iss069e003902.jpeg?itok=Y-BrH2Nh" length="3185100" type="image/jpeg" />
 <guid isPermaLink="false">http://www.nasa.gov/press-release/florida-students-to-hear-from-nasa-astronauts-aboard-space-station-0</guid>
 <pubDate>Wed, 24 May 2023 14:46 EDT</pubDate>
 <source url="http://www.nasa.gov/rss/dyn/breaking_news.rss">NASA Breaking News</source>
 <dc:identifier>487341</dc:identifier>
</item>
 <item> <title>NASA, Department of Education Partnership Strengthens STEM Education</title>
 <link>http://www.nasa.gov/press-release/nasa-department-of-education-partnership-strengthens-stem-education</link>
 <description>NASA and the U.S. Department of Education signed a memorandum of understanding on Wednesday, strengthening the collaboration between the two agencies, including efforts to increase access to high-quality STEM and space education to students and schools across the nation.</description>
 <enclosure url="http://www.nasa.gov/sites/default/files/styles/1x1_cardfeed/public/thumbnails/image/mou_dept_ed_signing.jpg?itok=18fbPIXP" length="603032" type="image/jpeg" />
 <guid isPermaLink="false">http://www.nasa.gov/press-release/nasa-department-of-education-partnership-strengthens-stem-education</guid>
 <pubDate>Wed, 24 May 2023 11:07 EDT</pubDate>
 <source url="http://www.nasa.gov/rss/dyn/breaking_news.rss">NASA Breaking News</source>
 <dc:identifier>487334</dc:identifier>
</item>
 <item> <title>NASA Mission to Study Ice Clouds, Help Observe Our Dynamic Atmosphere</title>
 <link>http://www.nasa.gov/press-release/nasa-mission-to-study-ice-clouds-help-observe-our-dynamic-atmosphere</link>
 <description>NASA has selected a new mission to help humanity better understand Earth’s dynamic atmosphere – specifically, ice clouds that form at high altitudes throughout tropical and sub-tropical regions. The PolSIR instrument – short for Polarized Submillimeter Ice-cloud Radiometer – will study such ice clouds to determine how and why they change throughout</description>
 <enclosure url="http://www.nasa.gov/sites/default/files/styles/1x1_cardfeed/public/thumbnails/image/640328main_iss016-e-27426_full_0.jpg?itok=09yw06rw" length="738109" type="image/jpeg" />
 <guid isPermaLink="false">http://www.nasa.gov/press-release/nasa-mission-to-study-ice-clouds-help-observe-our-dynamic-atmosphere</guid>
 <pubDate>Mon, 22 May 2023 12:37 EDT</pubDate>
 <source url="http://www.nasa.gov/rss/dyn/breaking_news.rss">NASA Breaking News</source>
 <dc:identifier>487305</dc:identifier>
</item>
 <item> <title>NASA to Provide Live Coverage of Space Station Cargo Launch, Docking</title>
 <link>http://www.nasa.gov/press-release/nasa-to-provide-live-coverage-of-space-station-cargo-launch-docking-2</link>
 <description>NASA will provide live launch and docking coverage of the Roscosmos Progress 84 cargo spacecraft carrying about three tons of food, fuel, and supplies for the Expedition 69 crew aboard the International Space Station.</description>
 <enclosure url="http://www.nasa.gov/sites/default/files/styles/1x1_cardfeed/public/thumbnails/image/iss068e046973large.jpeg?itok=EiGLMy_n" length="82424" type="image/jpeg" />
 <guid isPermaLink="false">http://www.nasa.gov/press-release/nasa-to-provide-live-coverage-of-space-station-cargo-launch-docking-2</guid>
 <pubDate>Mon, 22 May 2023 10:34 EDT</pubDate>
 <source url="http://www.nasa.gov/rss/dyn/breaking_news.rss">NASA Breaking News</source>
 <dc:identifier>487301</dc:identifier>
</item>
 <item> <title>Axiom Space Private Astronauts Headed to International Space Station</title>
 <link>http://www.nasa.gov/press-release/axiom-space-private-astronauts-headed-to-international-space-station</link>
 <description>Four private astronauts are in orbit following the successful launch of Axiom Mission 2 (Ax-2), the second all private astronaut mission to the International Space Station. Axiom Space astronauts lifted off at 5:37 p.m. EDT on Sunday, May 21, from Launch Complex 39A at NASA’s Kennedy Space Center in Florida.</description>
 <enclosure url="http://www.nasa.gov/sites/default/files/styles/1x1_cardfeed/public/thumbnails/image/axiom_2_launch_1.jpg?itok=gtf445OG" length="139958" type="image/jpeg" />
 <guid isPermaLink="false">http://www.nasa.gov/press-release/axiom-space-private-astronauts-headed-to-international-space-station</guid>
 <pubDate>Sun, 21 May 2023 16:37 EDT</pubDate>
 <source url="http://www.nasa.gov/rss/dyn/breaking_news.rss">NASA Breaking News</source>
 <dc:identifier>487296</dc:identifier>
</item>
 <item> <title>NASA Extends Nancy Grace Roman Space Telescope Science Operations</title>
 <link>http://www.nasa.gov/press-release/nasa-extends-nancy-grace-roman-space-telescope-science-operations</link>
 <description>NASA has awarded a contract extension to the Association of Universities for Research in Astronomy Space Telescope Science Institute in Baltimore for the support services required for the agency’s Nancy Grace Roman Space Telescope Science Operations.</description>
 <enclosure url="http://www.nasa.gov/sites/default/files/styles/1x1_cardfeed/public/thumbnails/image/nasa_meatball_1_2.jpeg?itok=0sWmrdS3" length="85798" type="image/jpeg" />
 <guid isPermaLink="false">http://www.nasa.gov/press-release/nasa-extends-nancy-grace-roman-space-telescope-science-operations</guid>
 <pubDate>Fri, 19 May 2023 15:24 EDT</pubDate>
 <source url="http://www.nasa.gov/rss/dyn/breaking_news.rss">NASA Breaking News</source>
 <dc:identifier>487290</dc:identifier>
</item>
 <item> <title>NASA Selects Winners, Announces Final Phase of Space Food Challenge</title>
 <link>http://www.nasa.gov/press-release/nasa-selects-winners-announces-final-phase-of-space-food-challenge</link>
 <description>NASA has announced eight winning teams and awarded $750,000 in prizes in the second phase of the agency&#039;s Deep Space Food Challenge. The winning teams will move on to compete in the third and final phase of the challenge.</description>
 <enclosure url="http://www.nasa.gov/sites/default/files/styles/1x1_cardfeed/public/thumbnails/image/img_0011.jpg?itok=prgBEdxN" length="3457148" type="image/jpeg" />
 <guid isPermaLink="false">http://www.nasa.gov/press-release/nasa-selects-winners-announces-final-phase-of-space-food-challenge</guid>
 <pubDate>Fri, 19 May 2023 12:59 EDT</pubDate>
 <source url="http://www.nasa.gov/rss/dyn/breaking_news.rss">NASA Breaking News</source>
 <dc:identifier>487287</dc:identifier>
</item>
 <item> <title>NASA Selects Blue Origin as Second Artemis Lunar Lander Provider</title>
 <link>http://www.nasa.gov/press-release/nasa-selects-blue-origin-as-second-artemis-lunar-lander-provider</link>
 <description>To develop a human landing system for the agency’s Artemis V mission to the Moon, NASA has selected Blue Origin of Kent, Washington. Through Artemis, NASA will explore more of the Moon than ever before, uncovering more scientific discoveries, and preparing for future astronaut missions to Mars.</description>
 <enclosure url="http://www.nasa.gov/sites/default/files/styles/1x1_cardfeed/public/thumbnails/image/bluemoon_nasa_option_2023-05-19_01.29.31_0.jpg?itok=pbyv8VUf" length="17922495" type="image/jpeg" />
 <guid isPermaLink="false">http://www.nasa.gov/press-release/nasa-selects-blue-origin-as-second-artemis-lunar-lander-provider</guid>
 <pubDate>Fri, 19 May 2023 10:40 EDT</pubDate>
 <source url="http://www.nasa.gov/rss/dyn/breaking_news.rss">NASA Breaking News</source>
 <dc:identifier>487283</dc:identifier>
</item>
 <item> <title>NASA, Rocket Lab Announce Coverage for Second TROPICS Launch</title>
 <link>http://www.nasa.gov/press-release/nasa-rocket-lab-announce-coverage-for-second-tropics-launch</link>
 <description>After successfully launching the first pair of small satellites earlier this month from New Zealand, NASA and Rocket Lab are now targeting no earlier than 1:30 a.m. EDT Monday, May 22 (5:30 p.m. NZST), to launch the second pair of storm tracking CubeSats into orbit.</description>
 <enclosure url="http://www.nasa.gov/sites/default/files/styles/1x1_cardfeed/public/thumbnails/image/tropicslaunch_0.jpg?itok=inJsR953" length="1298401" type="image/jpeg" />
 <guid isPermaLink="false">http://www.nasa.gov/press-release/nasa-rocket-lab-announce-coverage-for-second-tropics-launch</guid>
 <pubDate>Tue, 16 May 2023 15:38 EDT</pubDate>
 <source url="http://www.nasa.gov/rss/dyn/breaking_news.rss">NASA Breaking News</source>
 <dc:identifier>487231</dc:identifier>
</item>
 <item> <title>NASA to Select Second Lunar Lander Partner for Artemis Moon Mission</title>
 <link>http://www.nasa.gov/press-release/nasa-to-select-second-lunar-lander-partner-for-artemis-moon-mission</link>
 <description>During an event at 10 a.m. EDT Friday, May 19, at NASA Headquarters in Washington, the agency will announce the company selected to develop a sustainable human landing system for the Artemis V Moon mission. The human landing system will take astronauts to and from Gateway in lunar orbit to the surface and back to the lunar space station as part of</description>
 <enclosure url="http://www.nasa.gov/sites/default/files/styles/1x1_cardfeed/public/thumbnails/image/taking_in_the_view_surface_from_hls_0.jpg?itok=4hfmfnal" length="162415" type="image/jpeg" />
 <guid isPermaLink="false">http://www.nasa.gov/press-release/nasa-to-select-second-lunar-lander-partner-for-artemis-moon-mission</guid>
 <pubDate>Tue, 16 May 2023 10:33 EDT</pubDate>
 <source url="http://www.nasa.gov/rss/dyn/breaking_news.rss">NASA Breaking News</source>
 <dc:identifier>487215</dc:identifier>
</item>
</channel>
</rss>


id: 57db369e-3f86-4e01-a122-6026940a1b7f
url: https://journals.plos.org/plosone/feed/atom
title: PLOS ONE
group_id: 5ba66bdc-22cd-4924-9389-104d85c2247e
feed_type: Atom
copyright: All PLOS articles are Open Access.
image_url: https://journals.plos.org/plosone/resource/img/favicon.ico
original_document:
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>PLOS ONE</title>
  <link rel="alternate" href="https://journals.plos.org/plosone/" />
  <author>
    <name>PLOS</name>
    <uri>https://journals.plos.org/plosone/</uri>
    <email>webmaster@plos.org</email>
  </author>
  <subtitle type="text">accelerating the publication of peer-reviewed science</subtitle>
  <id>https://journals.plos.org/plosone/feed/atom</id>
  <rights>All PLOS articles are Open Access.</rights>
  <icon>https://journals.plos.org/plosone/resource/img/favicon.ico</icon>
  <logo>https://journals.plos.org/plosone/resource/img/favicon.ico</logo>
  <updated>2023-05-25T19:34:19Z</updated>
  <entry>
    <title>Retraction: A Novel Copper Chelate Modulates Tumor Associated Macrophages to Promote Anti-Tumor Response of T Cells</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286555" title="Retraction: A Novel Copper Chelate Modulates Tumor Associated Macrophages to Promote Anti-Tumor Response of T Cells" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286555.PDF" title="(PDF) Retraction: A Novel Copper Chelate Modulates Tumor Associated Macrophages to Promote Anti-Tumor Response of T Cells" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286555.XML" title="(XML) Retraction: A Novel Copper Chelate Modulates Tumor Associated Macrophages to Promote Anti-Tumor Response of T Cells" />
    <author>
      <name>The PLOS ONE Editors</name>
    </author>
    <id>10.1371/journal.pone.0286555</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by The PLOS ONE Editors &lt;/p&gt;</content>
  </entry>
  <entry>
    <title>Expression of Concern: MiRNAs Predict the Prognosis of Patients with Triple Negative Breast Cancer: A Meta-Analysis</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286445" title="Expression of Concern: MiRNAs Predict the Prognosis of Patients with Triple Negative Breast Cancer: A Meta-Analysis" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286445.PDF" title="(PDF) Expression of Concern: MiRNAs Predict the Prognosis of Patients with Triple Negative Breast Cancer: A Meta-Analysis" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286445.XML" title="(XML) Expression of Concern: MiRNAs Predict the Prognosis of Patients with Triple Negative Breast Cancer: A Meta-Analysis" />
    <author>
      <name>The PLOS ONE Editors</name>
    </author>
    <id>10.1371/journal.pone.0286445</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by The PLOS ONE Editors &lt;/p&gt;</content>
  </entry>
  <entry>
    <title>Occupational radiation exposure dose and associated factors among radiology personnel in Eastern Amhara, Ethiopia</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286400" title="Occupational radiation exposure dose and associated factors among radiology personnel in Eastern Amhara, Ethiopia" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286400.PDF" title="(PDF) Occupational radiation exposure dose and associated factors among radiology personnel in Eastern Amhara, Ethiopia" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286400.XML" title="(XML) Occupational radiation exposure dose and associated factors among radiology personnel in Eastern Amhara, Ethiopia" />
    <author>
      <name>Tadesse Guangul Alemayehu</name>
    </author>
    <author>
      <name>Getahun Gebre Bogale</name>
    </author>
    <author>
      <name>Getaw Walle Bazie</name>
    </author>
    <id>10.1371/journal.pone.0286400</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Tadesse Guangul Alemayehu, Getahun Gebre Bogale, Getaw Walle Bazie&lt;/p&gt;
Background &lt;p&gt;Ionizing radiation is being used more frequently in medicine, which has been linked to recognized biological effects such as cancer and mortality. Radiology services are becoming more widely available in Ethiopian health facilities but there is no compiled record of worker’s radiation dose. So, assessing the magnitude and identifying the associated factors of occupational radiation exposure dose among radiology personnel help to design strategies for radiation protection.&lt;/p&gt; Objective &lt;p&gt;The study was designed to assess the occupational radiation exposure dose and associated factors among radiology personnel in eastern Amhara, northeast Ethiopia, 2021.&lt;/p&gt; Methods &lt;p&gt;Cross-sectional study was conducted from March 25 to April 30, 2021, in 57 health institutions among 198 radiology personnel. The study comprised all eligible radiology personnel. The data were collected using an electronic-based (Google form) self-administered questionnaire, and document review. The data were entered into an excel spread sheet and then, exported to Stata 14 software. Linear regression model was used to analyse the data after checking its assumptions. Variables with a p-value &lt; 0.25 were entered into a multiple linear regression analysis, and those with a p-value &lt; 0.05 were judged significant. VIF was used to check for multi-collinearity. Coefficient of determination was used to check the model fitness.&lt;/p&gt; Results &lt;p&gt;The mean (± SD) annual shallow and deep dose equivalents of radiology personnel were 1.20 (± 0.75) and 1.02 (± 0.70) mSv, respectively. Body mass index (β = 0.104, 95% CI: 0.07, 0.14), practice of timing (β = -0.43, 95% CI: -0.73, -0.13), working experience (β = -0.04, 95% CI: -0.048, -0.032), and practice of distancing (β = -0.26, 95% CI: -0.49, -0.17) were found to be statistically significant factors of annual deep dose equivalent. In addition, body mass index (β = 0.113, 95% CI: 0.08, 0.15), practice of timing (β = -0.62 95% CI: -0.93, -0.31) and, working experience (β = -0.044, 95% CI: -0.053, -0.036 had statistically significant associations with annual shallow dose equivalent.&lt;/p&gt; Conclusion &lt;p&gt;The annual dose equivalents were two times higher than the global average of annual per caput effective dose due to medical exposure. Body mass index, practice of timing, working experience, and practice of distancing were factors of occupational radiation exposure dose. Strategies focusing on increasing the skill, experience, and lifestyle of radiology personnel would be supreme important means to reduce occupational radiation exposure dose.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>Induction of pro-inflammatory genes by fibronectin DAMPs in three fibroblast cell lines: Role of TAK1 and MAP kinases</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286390" title="Induction of pro-inflammatory genes by fibronectin DAMPs in three fibroblast cell lines: Role of TAK1 and MAP kinases" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286390.PDF" title="(PDF) Induction of pro-inflammatory genes by fibronectin DAMPs in three fibroblast cell lines: Role of TAK1 and MAP kinases" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286390.XML" title="(XML) Induction of pro-inflammatory genes by fibronectin DAMPs in three fibroblast cell lines: Role of TAK1 and MAP kinases" />
    <author>
      <name>Pranav Maddali</name>
    </author>
    <author>
      <name>Anthony Ambesi</name>
    </author>
    <author>
      <name>Paula J. McKeown-Longo</name>
    </author>
    <id>10.1371/journal.pone.0286390</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Pranav Maddali, Anthony Ambesi, Paula J. McKeown-Longo&lt;/p&gt;

Changes in the organization and structure of the fibronectin matrix are believed to contribute to dysregulated wound healing and subsequent tissue inflammation and tissue fibrosis. These changes include an increase in the EDA isoform of fibronectin as well as the mechanical unfolding of fibronectin type III domains. In previous studies using embryonic foreskin fibroblasts, we have shown that fibronectin’s EDA domain (FnEDA) and the partially unfolded first Type III domain (FnIII-1c) function as Damage Associated Molecular Pattern (DAMP) molecules to stimulate the induction of inflammatory cytokines by serving as agonists for Toll-Like Receptor-4 (TLR4). However, the role of signaling molecules downstream of TLR-4 such as TGF-β Activated Kinase 1 (TAK1) and Mitogen activated protein kinases (MAPK) in regulating the expression of fibronectin DAMP induced inflammatory genes in specific cell types is not known. In the current study, we evaluate the molecular steps regulating the fibronectin driven induction of inflammatory genes in three human fibroblast cell lines: embryonic foreskin, adult dermal, and adult kidney. The fibronectin derived DAMPs each induce the phosphorylation and activation of TAK1 which results in the activation of two downstream signaling arms, IKK/NF-κB and MAPK. Using the specific inhibitor 5Z-(7)-Oxozeanol as well as siRNA, we show TAK1 to be a crucial signaling mediator in the release of cytokines in response to fibronectin DAMPs in all three cell types. Finally, we show that FnEDA and FnIII-1c induce several pro-inflammatory cytokines whose expression is dependent on both TAK1 and JNK MAPK and highlight cell-type specific differences in the gene-expression profiles of the fibroblast cell-lines.</content>
  </entry>
  <entry>
    <title>Association of dietary sodium intake with impaired fasting glucose in adult cancer survivors: A population-based cross-sectional study</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286346" title="Association of dietary sodium intake with impaired fasting glucose in adult cancer survivors: A population-based cross-sectional study" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286346.PDF" title="(PDF) Association of dietary sodium intake with impaired fasting glucose in adult cancer survivors: A population-based cross-sectional study" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286346.XML" title="(XML) Association of dietary sodium intake with impaired fasting glucose in adult cancer survivors: A population-based cross-sectional study" />
    <author>
      <name>Kyuwoong Kim</name>
    </author>
    <author>
      <name>Hamee Kim</name>
    </author>
    <author>
      <name>Tae Joon Jun</name>
    </author>
    <author>
      <name>Young-Hak Kim</name>
    </author>
    <id>10.1371/journal.pone.0286346</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Kyuwoong Kim, Hamee Kim, Tae Joon Jun, Young-Hak Kim&lt;/p&gt;
Background &lt;p&gt;Dietary sodium intake is a crucial lifestyle factor that should be assessed in adult cancer survivors due to their increased risk of adverse health outcomes compared to the general population. However, its with impaired fasting glucose (IFG) in adult cancer survivors remains unclear. This study aimed to investigate the association of dietary sodium intake categorized by the American Heart Association (AHA) recommendation with IFG in the community-dwelling adult cancer survivors.&lt;/p&gt; Methods &lt;p&gt;A total of 1,052 adult cancer survivors without diabetes were identified from the sixth and seventh Korea National Health and Nutrition Examination Survey (KNHANES), 2013–2018. Data on dietary sodium intake was categorized as &lt;1,500 mg/day, 1,500–2,999 mg/day, 2,300–3,999 mg/day, and ≥4,000 mg/day according to the AHA recommendation. A multiple logistic regression model adjusted for demographic, lifestyle, and health status was used to compute odds ratios (OR) and 95% confidence intervals (95% CI) for IFG according to dietary sodium intake categories.&lt;/p&gt; Results &lt;p&gt;After adjusting for confounding variables identified in the KNHANES, the adjusted OR among the adult cancer survivors who consumed 1,500–2,999 mg/day, 2,300–3,999 mg/day, and ≥4,000 mg/day of dietary sodium were 1.16 (95% CI: 0.25–5.27), 1.93 (95% CI: 0.40–9.37), and 2.67 (95% CI: 0.59–12.18), respectively, as compared to those who consumed &lt;1,500 mg/day (&lt;i&gt;P&lt;/i&gt; value for trend = 0.036).&lt;/p&gt; Conclusion &lt;p&gt;Among community-dwelling adult cancer survivors, high dietary sodium intake was marginally associated with increased odds of IFG. Well-designed cohort studies or randomized clinical trials are needed to establish more epidemiologic evidence on this association in adult cancer survivors.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>Sociodemographic disparities in concomitant left atrial appendage occlusion during cardiac valve operations</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286337" title="Sociodemographic disparities in concomitant left atrial appendage occlusion during cardiac valve operations" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286337.PDF" title="(PDF) Sociodemographic disparities in concomitant left atrial appendage occlusion during cardiac valve operations" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286337.XML" title="(XML) Sociodemographic disparities in concomitant left atrial appendage occlusion during cardiac valve operations" />
    <author>
      <name>Ayesha P. Ng</name>
    </author>
    <author>
      <name>Nikhil Chervu</name>
    </author>
    <author>
      <name>Yas Sanaiha</name>
    </author>
    <author>
      <name>Amulya Vadlakonda</name>
    </author>
    <author>
      <name>Elsa Kronen</name>
    </author>
    <author>
      <name>Peyman Benharash</name>
    </author>
    <id>10.1371/journal.pone.0286337</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Ayesha P. Ng, Nikhil Chervu, Yas Sanaiha, Amulya Vadlakonda, Elsa Kronen, Peyman Benharash&lt;/p&gt;
Background &lt;p&gt;Sociodemographic disparities in atrial fibrillation (AF) management and thromboembolic prophylaxis have previously been reported, which may involve inequitable access to left atrial appendage occlusion (LAAO) during cardiac surgery. The present study aimed to evaluate the association of LAAO utilization with sex, race, and hospital region among patients with AF undergoing heart valve operations.&lt;/p&gt; Methods &lt;p&gt;Adults with AF undergoing valve replacement/repair in the 2012–2019 National Inpatient Sample were identified and stratified based on concurrent LAAO. Multivariable linear and logistic regressions were developed to identify factors associated with LAAO utilization. Mortality, complications including stroke and thromboembolism, hospitalization costs and length of stay (LOS) were secondarily assessed.&lt;/p&gt; Results &lt;p&gt;Of 382,580 patients undergoing valve operations, 18.7% underwent concomitant LAAO. Over the study period, the proportion of female patients receiving LAAO significantly decreased from 44.8% to 38.9% (p&lt;0.001). Upon risk adjustment, female (AOR 0.93 [95% CI 0.89–0.97]) and Black patients (0.91 [0.83–0.99]) had significantly reduced odds of undergoing LAAO compared to males and Whites, respectively. Additionally, hospitals in the Midwest (1.38 [1.24–1.51]) and West (1.26 [1.15–1.36]) had increased likelihood of LAAO whereas Northeast hospitals (0.85 [0.77–0.94)] had decreased odds relative to the South. Furthermore, LAAO was associated with decreased stroke (0.71 [0.60–0.84]) and thromboembolism (0.68 [0.54–0.86]), $4,200 reduction in costs and 1-day decrement in LOS.&lt;/p&gt; Conclusions &lt;p&gt;Female and Black patients had significantly lower odds while Midwest and Western hospitals had greater odds of LAAO utilization. Enhancing access to LAAO during valvular surgery is warranted to improve clinical and financial outcomes for patients with AF.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>Variable responses to top-down and bottom-up control on multiple traits in the foundational plant, &lt;i&gt;Spartina alterniflora&lt;/i&gt;</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286327" title="Variable responses to top-down and bottom-up control on multiple traits in the foundational plant, &lt;i&gt;Spartina alterniflora&lt;/i&gt;" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286327.PDF" title="(PDF) Variable responses to top-down and bottom-up control on multiple traits in the foundational plant, &lt;i&gt;Spartina alterniflora&lt;/i&gt;" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286327.XML" title="(XML) Variable responses to top-down and bottom-up control on multiple traits in the foundational plant, &lt;i&gt;Spartina alterniflora&lt;/i&gt;" />
    <author>
      <name>Stephanie R. Valdez</name>
    </author>
    <author>
      <name>Pedro Daleo</name>
    </author>
    <author>
      <name>David S. DeLaMater III</name>
    </author>
    <author>
      <name>Brian R. Silliman</name>
    </author>
    <id>10.1371/journal.pone.0286327</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Stephanie R. Valdez, Pedro Daleo, David S. DeLaMater III, Brian R. Silliman&lt;/p&gt;

While the effects of top-down and bottom-up forces on aboveground plant growth have been extensively examined, less is known about the relative impacts of these factors on other aspects of plant life history. In a fully-factorial, field experiment in a salt marsh in Virginia, USA, we manipulated grazing intensity (top-down) and nutrient availability (bottom-up) and measured the response in a suite of traits for smooth cordgrass (&lt;i&gt;Spartina alterniflora&lt;/i&gt;). The data presented within this manuscript are unpublished, original data that were collected from the same experiment presented in Silliman and Zieman 2001. Three categories of traits and characteristics were measured: belowground characteristics, litter production, and reproduction, encompassing nine total responses. Of the nine response variables measured, eight were affected by treatments. Six response variables showed main effects of grazing and/ or fertilization, while three showed interactive effects. In general, fertilization led to increased cordgrass belowground biomass and reproduction, the former of which conflicts with predictions based on resource competition theory. Higher grazing intensity had negative impacts on both belowground biomass and reproduction. This result contrasts with past studies in this system that concluded grazer impacts are likely relegated to aboveground plant growth. In addition, grazers and fertilization interacted to alter litter production so that litter production disproportionately increased with fertilization when grazers were present. Our results revealed both predicted and unexpected effects of grazing and nutrient availability on understudied traits in a foundational plant and that these results were not fully predictable from understanding the impacts on aboveground biomass alone. Since these diverse traits link to diverse ecosystem functions, such as carbon burial, nutrient cycling, and ecosystem expansion, developing future studies to explore multiple trait responses and synthesizing the ecological knowledge on top-down and bottom-up forces with trait-based methodologies may provide a promising path forward in predicting variability in ecosystem function.</content>
  </entry>
  <entry>
    <title>Prediction of university fund revenue and expenditure based on fuzzy time series with a periodic factor</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286325" title="Prediction of university fund revenue and expenditure based on fuzzy time series with a periodic factor" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286325.PDF" title="(PDF) Prediction of university fund revenue and expenditure based on fuzzy time series with a periodic factor" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286325.XML" title="(XML) Prediction of university fund revenue and expenditure based on fuzzy time series with a periodic factor" />
    <author>
      <name>Yueqian Shen</name>
    </author>
    <author>
      <name>Xiaoxia Ma</name>
    </author>
    <author>
      <name>Yajing Sun</name>
    </author>
    <author>
      <name>Sheng Du</name>
    </author>
    <id>10.1371/journal.pone.0286325</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Yueqian Shen, Xiaoxia Ma, Yajing Sun, Sheng Du&lt;/p&gt;

Financial management and decision-making of universities play an essential role in their development. Predicting fund revenue and expenditure of universities can provide a necessary basis for funds risk prevention. For the lack of solid data reference for financial management and funds risk prevention in colleges and universities, this paper presents a prediction model of University fund revenue and expenditure based on fuzzy time series with a periodic factor. Combined with the fuzzy time series, this prediction method introduces the periodic factor of university funds. The periodic factor is used to adjust the proportion of the predicted value of the fuzzy time series and the periodic observation value. A fund revenue prediction model and a fund expenditure prediction model are constructed, and an experiment is carried out with the actual financial data of a university in China. The experimental result shows the effectiveness of the proposed model, which can provide solid references for financial management and funds risk prevention in universities.</content>
  </entry>
  <entry>
    <title>Patterns and predictors of adherence to follow-up health guidance invitations in a general health check-up program in Japan: A cohort study with an employer-sponsored insurer database</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286317" title="Patterns and predictors of adherence to follow-up health guidance invitations in a general health check-up program in Japan: A cohort study with an employer-sponsored insurer database" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286317.PDF" title="(PDF) Patterns and predictors of adherence to follow-up health guidance invitations in a general health check-up program in Japan: A cohort study with an employer-sponsored insurer database" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286317.XML" title="(XML) Patterns and predictors of adherence to follow-up health guidance invitations in a general health check-up program in Japan: A cohort study with an employer-sponsored insurer database" />
    <author>
      <name>Yuichiro Mori</name>
    </author>
    <author>
      <name>Kunihiro Matsushita</name>
    </author>
    <author>
      <name>Kosuke Inoue</name>
    </author>
    <author>
      <name>Shingo Fukuma</name>
    </author>
    <id>10.1371/journal.pone.0286317</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Yuichiro Mori, Kunihiro Matsushita, Kosuke Inoue, Shingo Fukuma&lt;/p&gt;
Background &lt;p&gt;Japan has conducted a nationwide annual health check-up program since 2008, focusing on metabolic syndrome and subsequent health guidance in individuals at high risk for cardiovascular disease. However, the adherence rate to health guidance invitations was assumed to be low in previous reports. Therefore, this study aimed to characterize adherence patterns in the program and identify major predictors of adherence to health guidance invitations.&lt;/p&gt; Methods &lt;p&gt;We studied 186,316 adults (aged 40–74 years) who were included in a nationwide employer-sponsored insurer’s database in Japan at the beginning of the fiscal year 2017. We first described adherence to health check-ups, the proportion of individuals with high cardiovascular risk, and adherence to health guidance invitations. Predictors of adherence to the invitation were then identified among eligible high-risk individuals.&lt;/p&gt; Results &lt;p&gt;In 2017, 71.7% of the study population (n = 133,573) underwent health check-ups, among whom 23.2% (n = 30,979) were invited for health guidance because of their high cardiovascular risk. Among those individuals, 35.2% (n = 10,614) received health guidance. Predictors of improved adherence to health guidance invitation were older age, more concerning blood pressure or laboratory data results, and self-reported motivation for a lifestyle change.&lt;/p&gt; Conclusion &lt;p&gt;Though 70% of eligible adults attended Japan’s annual cardiovascular risk check-ups, only 35% of individuals with high cardiovascular risk adhered to health guidance invitations. Future policy reforms to improve adherence to this program should target younger individuals and those with mild stages of hypertension, diabetes, or dyslipidemia.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>Microanatomical organization of hepatic venous lymphatic system in humans</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286316" title="Microanatomical organization of hepatic venous lymphatic system in humans" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286316.PDF" title="(PDF) Microanatomical organization of hepatic venous lymphatic system in humans" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286316.XML" title="(XML) Microanatomical organization of hepatic venous lymphatic system in humans" />
    <author>
      <name>Kotaro Umemura</name>
    </author>
    <author>
      <name>Hiroshi Shimoda</name>
    </author>
    <author>
      <name>Keinosuke Ishido</name>
    </author>
    <author>
      <name>Norihisa Kimura</name>
    </author>
    <author>
      <name>Taiichi Wakiya</name>
    </author>
    <author>
      <name>Takuji Kagiya</name>
    </author>
    <author>
      <name>Kentaro Sato</name>
    </author>
    <author>
      <name>Yuto Mitsuhashi</name>
    </author>
    <author>
      <name>Seiji Watanabe</name>
    </author>
    <author>
      <name>Hirokazu Narita</name>
    </author>
    <author>
      <name>Tomohiro Chiba</name>
    </author>
    <author>
      <name>Kenichi Hakamada</name>
    </author>
    <id>10.1371/journal.pone.0286316</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Kotaro Umemura, Hiroshi Shimoda, Keinosuke Ishido, Norihisa Kimura, Taiichi Wakiya, Takuji Kagiya, Kentaro Sato, Yuto Mitsuhashi, Seiji Watanabe, Hirokazu Narita, Tomohiro Chiba, Kenichi Hakamada&lt;/p&gt;

Lymphatic fluid drains from the liver via the periportal lymphatic, hepatic venous lymphatic, and superficial lymphatic systems. We performed a postmortem study to clarify the three-dimensional structure and flow dynamics of the human hepatic venous lymphatic system, as it still remains unclear. Livers were excised whole from three human cadavers, injected with India ink, and sliced into 1-cm sections from which veins were harvested. The distribution of lymphatic vessels was observed in 5 μm sections immunostained for lymphatic and vascular markers (podoplanin and CD31, respectively) using light microscopy. Continuity and density of lymphatic vessel distribution were assessed in en-face whole-mount preparations of veins using stereomicroscopy. The structure of the external hepatic vein wall was assessed with scanning electron microscopy (SEM). The lymphatic dynamics study suggested that lymphatic fluid flows through an extravascular pathway around the central and sublobular veins. A lymphatic vessel network originates in the wall of sublobular veins, with a diameter greater than 110 μm, and the peripheral portions of hepatic veins and continues to the inferior vena cava. The density distribution of lymphatic vessels is smallest in the peripheral portion of the hepatic vein (0.03%) and increases to the proximal portion (0.22%, p = 0.012) and the main trunk (1.01%, p &lt; 0.001), correlating positively with increasing hepatic vein diameter (Rs = 0.67, p &lt; 0.001). We revealed the three-dimensional structure of the human hepatic venous lymphatic system. The results could improve the understanding of lymphatic physiology and liver pathology.</content>
  </entry>
  <entry>
    <title>The analysis of infrared high-speed motion capture system on motion aesthetics of aerobics athletes under biomechanics analysis</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286313" title="The analysis of infrared high-speed motion capture system on motion aesthetics of aerobics athletes under biomechanics analysis" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286313.PDF" title="(PDF) The analysis of infrared high-speed motion capture system on motion aesthetics of aerobics athletes under biomechanics analysis" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286313.XML" title="(XML) The analysis of infrared high-speed motion capture system on motion aesthetics of aerobics athletes under biomechanics analysis" />
    <author>
      <name>Yaoyu Qiu</name>
    </author>
    <author>
      <name>Yingrong Guan</name>
    </author>
    <author>
      <name>Shuang Liu</name>
    </author>
    <id>10.1371/journal.pone.0286313</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Yaoyu Qiu, Yingrong Guan, Shuang Liu&lt;/p&gt;

This paper uses an infrared high-speed motion capture system based on deep learning to analyze difficult movements, which helps aerobics athletes master difficult movements more accurately. Firstly, changes in joint angle, speed of movement, and ground pressure are used to analyze the impact and role of motion fluency and completion based on a biomechanical perspective. Moreover, based on the existing infrared high-speed motion capture systems, the Restricted Boltzmann Machine (RBM) model is introduced to construct an unsupervised similarity framework model. Next, the motion data is reorganized based on three-dimensional information to adapt to the model’s input. Then, the framework performs similar frame matching to obtain a set of candidate frames that can be used as motion graph nodes. After the infrared high-speed motion capture system and inertial sensors are simultaneously applied to subjects, the multi-correlation coefficients (CMC) values of the hip, knee, and ankle angles are 0.94 ± 0.06, 0.98 ± 0.01, and 0.87 ± 0.09, respectively. The two systems show a high degree of correlation in the measurement results, and the knee joint is the most significant correlation. Finally, a motion graph is constructed to control its trajectory and adjust its motion pattern. The infrared high-speed motion capture system optimized for deep learning can extract features from human bone data and capture motion more accurately, helping trainers to fully understand difficult movements.</content>
  </entry>
  <entry>
    <title>Validating midwifery professionals’ scope of practice and competency: A multi-country study comparing national data to international standards</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286310" title="Validating midwifery professionals’ scope of practice and competency: A multi-country study comparing national data to international standards" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286310.PDF" title="(PDF) Validating midwifery professionals’ scope of practice and competency: A multi-country study comparing national data to international standards" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286310.XML" title="(XML) Validating midwifery professionals’ scope of practice and competency: A multi-country study comparing national data to international standards" />
    <author>
      <name>Suchandrima Chakraborty</name>
    </author>
    <author>
      <name>Niranjan Saggurti</name>
    </author>
    <author>
      <name>Richard Adanu</name>
    </author>
    <author>
      <name>Delia A. B. Bandoh</name>
    </author>
    <author>
      <name>Mabel Berrueta</name>
    </author>
    <author>
      <name>Jewel Gausman</name>
    </author>
    <author>
      <name>Ernest Kenu</name>
    </author>
    <author>
      <name>Nizamuddin Khan</name>
    </author>
    <author>
      <name>Ana Langer</name>
    </author>
    <author>
      <name>Carolina Nigri</name>
    </author>
    <author>
      <name>Magdalene A. Odikro</name>
    </author>
    <author>
      <name>Veronica Pingray</name>
    </author>
    <author>
      <name>Sowmya Ramesh</name>
    </author>
    <author>
      <name>Paula Vázquez</name>
    </author>
    <author>
      <name>Caitlin R. Williams</name>
    </author>
    <author>
      <name>Charlotte E. Warren</name>
    </author>
    <author>
      <name>R. Rima Jolivet</name>
    </author>
    <id>10.1371/journal.pone.0286310</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Suchandrima Chakraborty, Niranjan Saggurti, Richard Adanu, Delia A. B. Bandoh, Mabel Berrueta, Jewel Gausman, Ernest Kenu, Nizamuddin Khan, Ana Langer, Carolina Nigri, Magdalene A. Odikro, Veronica Pingray, Sowmya Ramesh, Paula Vázquez, Caitlin R. Williams, Charlotte E. Warren, R. Rima Jolivet&lt;/p&gt;
Background &lt;p&gt;There is a global shortage of midwives, whose services are essential to meet the healthcare needs of pregnant women and newborns. Evidence suggests that if enough midwives, trained and regulated to global standards, were deployed worldwide, maternal, and perinatal mortality would decline significantly. Health workforce planning estimates the number of midwives needed to achieve population coverage of midwifery interventions. However, to provide a valid measure of midwifery care coverage, an indicator must consider not only the raw number of midwives, but also their scope and competency. The tasks midwives are authorized to deliver and their competency to perform essential skills and behaviors provide crucial information for understanding the availability of safe, high-quality midwifery services. Without reliable estimates for an adequate midwifery workforce, progress toward ending preventable maternal and perinatal mortality will continue to be uneven. The International Labor Organization (ILO) and the International Confederation of Midwives (ICM) suggest standards for midwifery scope of practice and competencies. This paper compares national midwifery regulations, scope, and competencies in three countries to the ILO and ICM standards to validate measures of midwife density. We also assess midwives’ self-reported skills/behaviors from the ICM competencies and their acquisition.&lt;/p&gt; Methods and findings &lt;p&gt;We compared midwives’ scope of practice in Argentina, Ghana, and India to the ILO Tasks and ICM Essential Competencies for Midwifery Practice. We compared midwives self-reported skills/behaviors with the ICM Competencies. Univariate and bivariate analysis was conducted to describe the association between midwives’ skills and selected characteristics. National scopes of practice matched two ILO tasks in Argentina, four in India, and all in Ghana. National standards partially reflected ICM skills in Categories 2, 3, and 4 (pre-pregnancy and antenatal care; care during labor and birth; and ongoing care of women and newborns, respectively) in Argentina (range 11% to 67%), mostly in India (range 74% to 100%) and completely in Ghana (100% match). 1,266 midwives surveyed reported considerable variation in competency for skills and behaviors across ICM Category 2, 3, and 4. Most midwives reported matching skills and behaviors around labor and childbirth (Category 2). Higher proportions of midwives reported gaining basic skills through in-service training and on-job-experience than in pre-service training.&lt;/p&gt; Conclusion &lt;p&gt;Estimating the density of midwives needed for an adequate midwifery workforce capable of providing effective population coverage is predicated on a valid numerator. A reliable and valid count of midwives to meet population needs assumes that each midwife counted has the authority to exercise the same behaviors and reflects the ability to perform them with comparable competency. Our results demonstrate variation in midwifery scopes of practice and self-reported competencies in comparison to global standards that pose a threat to the reliability and validity of the numerator in measures of midwife density, and suggest the potential for expanded authorization and improved education and training to meet global reference standards for midwifery practice has not been fully realized. Although the universally recognized standard, this study demonstrates that the complex, composite descriptions of skills and behaviors in the ICM competencies make them difficult to use as benchmark measures with any precision, as they are not defined or structured to serve as valid measures for assessing workforce competency. A simplified, content-validated measurement system is needed to facilitate evaluation of the competency of the midwifery workforce.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>Treatment burden in individuals living with and beyond cancer: A systematic review of qualitative literature</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286308" title="Treatment burden in individuals living with and beyond cancer: A systematic review of qualitative literature" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286308.PDF" title="(PDF) Treatment burden in individuals living with and beyond cancer: A systematic review of qualitative literature" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286308.XML" title="(XML) Treatment burden in individuals living with and beyond cancer: A systematic review of qualitative literature" />
    <author>
      <name>Rosalind Adam</name>
    </author>
    <author>
      <name>Revathi Nair</name>
    </author>
    <author>
      <name>Lisa F. Duncan</name>
    </author>
    <author>
      <name>Esyn Yeoh</name>
    </author>
    <author>
      <name>Joanne Chan</name>
    </author>
    <author>
      <name>Vaselisa Vilenskaya</name>
    </author>
    <author>
      <name>Katie I. Gallacher</name>
    </author>
    <id>10.1371/journal.pone.0286308</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Rosalind Adam, Revathi Nair, Lisa F. Duncan, Esyn Yeoh, Joanne Chan, Vaselisa Vilenskaya, Katie I. Gallacher&lt;/p&gt;
Background &lt;p&gt;Individuals with cancer are being given increasing responsibility for the self-management of their health and illness. In other chronic diseases, individuals who experience treatment burden are at risk of poorer health outcomes. Less is known about treatment burden and its impact on individuals with cancer. This systematic review investigated perceptions of treatment burden in individuals living with and beyond cancer.&lt;/p&gt; Methods and findings &lt;p&gt;Medline, CINAHL and EMBASE databases were searched for qualitative studies that explored treatment burden in individuals with a diagnosis of breast, prostate, colorectal, or lung cancer at any stage of their diagnostic/treatment trajectory. Descriptive and thematic analyses were conducted. Study quality was assessed using a modified CASP checklist. The review protocol was registered on PROSPERO (CRD42021145601). Forty-eight studies were included. Health management after cancer involved cognitive, practical, and relational work for patients. Individuals were motivated to perform health management work to improve life-expectancy, manage symptoms, and regain a sense of normality. Performing health care work could be empowering and gave individuals a sense of control. Treatment burden occurred when there was a mismatch between the resources needed for health management and their availability. Individuals with chronic and severe symptoms, financial challenges, language barriers, and limited social support are particularly at risk of treatment burden. For those with advanced cancer, consumption of time and energy by health care work is a significant burden.&lt;/p&gt; Conclusion &lt;p&gt;Treatment burden could be an important mediator of inequities in cancer outcomes. Many of the factors leading to treatment burden in individuals with cancer are potentially modifiable. Clinicians should consider carefully what they are asking or expecting patients to do, and the resources required, including how much patient time will be consumed.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>Predictors of discharge to home/community following inpatient-rehabilitation in a US national sample of Guillain-Barre-Syndrome patients</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286296" title="Predictors of discharge to home/community following inpatient-rehabilitation in a US national sample of Guillain-Barre-Syndrome patients" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286296.PDF" title="(PDF) Predictors of discharge to home/community following inpatient-rehabilitation in a US national sample of Guillain-Barre-Syndrome patients" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286296.XML" title="(XML) Predictors of discharge to home/community following inpatient-rehabilitation in a US national sample of Guillain-Barre-Syndrome patients" />
    <author>
      <name>David S. Kushner</name>
    </author>
    <author>
      <name>Doug Johnson-Greene</name>
    </author>
    <author>
      <name>Elizabeth R. Felix</name>
    </author>
    <author>
      <name>Cheryl Miller</name>
    </author>
    <author>
      <name>Maite K. Cordero</name>
    </author>
    <author>
      <name>Stacy A. Thomashaw</name>
    </author>
    <id>10.1371/journal.pone.0286296</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by David S. Kushner, Doug Johnson-Greene, Elizabeth R. Felix, Cheryl Miller, Maite K. Cordero, Stacy A. Thomashaw&lt;/p&gt;
Background &lt;p&gt;Guillain-Barre-Syndrome (GBS), an autoimmune polyneuropathy causing acute flaccid paralysis, is a rare condition with1-2 cases per 100,000 annually (approximately 5000 cases/year) in the United States (US). There is a paucity of published data regarding patient outcomes in association with discharge destinations following inpatient-rehabilitation (IR) in this patient population, thus this study.&lt;/p&gt; Objectives &lt;p&gt;To analyze IR efficacy, and possible predictors of discharge to home/community in a US-national-sample of GBS patients.&lt;/p&gt; Methods &lt;p&gt;Retrospective-observational-cohort study of 1304 GBS patients admitted to IR comparing discharge disposition destinations (community/home, skilled-nursing-facility [SNF], or return to acute-care) by demographic (age, gender) and clinical variables (length-of-stay [LOS], case-mix-index [CMI], and Functional-Independence-Measure [FIM] score changes). Multinomial-logistic-regression and discriminant-function-analysis were performed to determine model fit in predicting discharge destination.&lt;/p&gt; Results &lt;p&gt;81.8% were discharged to home/community- average LOS 19-days, total-FIM-gain 43.2; 9.8% discharged to SNFs- average LOS 27.5-days, total-FIM-gain 27.2; and 8.4% discharged to acute-care- average LOS 15.4-days and total-FIM-gain 16.5, (F = 176, p &lt; .001). Stepwise-linear-regression for prediction of community discharge showed change in FIM-Bed/chair/wheelchair-Transfers was the most significant predictor (Wald = 42.2; p &lt; .001), followed by CMI (Wald = 26.9; p &lt; .001), change in FIM-walking/wheelchair (Wald = 14.9; p &lt; .001), and age (Wald = 9.5; p &lt; .002). Using discriminant-function-analysis to test model validity for predicting discharge disposition, FIM-change for Bed/chair/wheelchair Transfers, Walking, and Self-Care as predictors resulted in a classification rate of 78.1%, 92% of variance explained, and Eigenvalue of .53 (p &lt; .001).&lt;/p&gt; Conclusions &lt;p&gt;Total-FIM scores improved in all groups, and most patients were discharged to home/community suggesting IR efficacy. The ability to transfer bed/chair/wheelchair was the most important predictive factor associated with discharge destination.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>Different disease inoculations cause common responses of the host immune system and prokaryotic component of the microbiome in &lt;i&gt;Acropora palmata&lt;/i&gt;</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286293" title="Different disease inoculations cause common responses of the host immune system and prokaryotic component of the microbiome in &lt;i&gt;Acropora palmata&lt;/i&gt;" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286293.PDF" title="(PDF) Different disease inoculations cause common responses of the host immune system and prokaryotic component of the microbiome in &lt;i&gt;Acropora palmata&lt;/i&gt;" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286293.XML" title="(XML) Different disease inoculations cause common responses of the host immune system and prokaryotic component of the microbiome in &lt;i&gt;Acropora palmata&lt;/i&gt;" />
    <author>
      <name>Benjamin D. Young</name>
    </author>
    <author>
      <name>Stephanie M. Rosales</name>
    </author>
    <author>
      <name>Ian C. Enochs</name>
    </author>
    <author>
      <name>Graham Kolodziej</name>
    </author>
    <author>
      <name>Nathan Formel</name>
    </author>
    <author>
      <name>Amelia Moura</name>
    </author>
    <author>
      <name>Gabrielle L. D’Alonso</name>
    </author>
    <author>
      <name>Nikki Traylor-Knowles</name>
    </author>
    <id>10.1371/journal.pone.0286293</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Benjamin D. Young, Stephanie M. Rosales, Ian C. Enochs, Graham Kolodziej, Nathan Formel, Amelia Moura, Gabrielle L. D’Alonso, Nikki Traylor-Knowles&lt;/p&gt;

Reef-building corals contain a complex consortium of organisms, a holobiont, which responds dynamically to disease, making pathogen identification difficult. While coral transcriptomics and microbiome communities have previously been characterized, similarities and differences in their responses to different pathogenic sources has not yet been assessed. In this study, we inoculated four genets of the Caribbean branching coral &lt;i&gt;Acropora palmata&lt;/i&gt; with a known coral pathogen (&lt;i&gt;Serratia marcescens&lt;/i&gt;) and white band disease. We then characterized the coral’s transcriptomic and prokaryotic microbiomes’ (prokaryiome) responses to the disease inoculations, as well as how these responses were affected by a short-term heat stress prior to disease inoculation. We found strong commonality in both the transcriptomic and prokaryiomes responses, regardless of disease inoculation. Differences, however, were observed between inoculated corals that either remained healthy or developed active disease signs. Transcriptomic co-expression analysis identified that corals inoculated with disease increased gene expression of immune, wound healing, and fatty acid metabolic processes. Co-abundance analysis of the prokaryiome identified sets of both healthy-and-disease-state bacteria, while co-expression analysis of the prokaryiomes’ inferred metagenomic function revealed infected corals’ prokaryiomes shifted from free-living to biofilm states, as well as increasing metabolic processes. The short-term heat stress did not increase disease susceptibility for any of the four genets with any of the disease inoculations, and there was only a weak effect captured in the coral hosts’ transcriptomic and prokaryiomes response. Genet identity, however, was a major driver of the transcriptomic variance, primarily due to differences in baseline immune gene expression. Despite genotypic differences in baseline gene expression, we have identified a common response for components of the coral holobiont to different disease inoculations. This work has identified genes and prokaryiome members that can be focused on for future coral disease work, specifically, putative disease diagnostic tools.</content>
  </entry>
  <entry>
    <title>Electron microscopy imaging and mechanical characterization of T47D multicellular tumor spheroids–Older spheroids reduce interstitial space and become stiffer</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286291" title="Electron microscopy imaging and mechanical characterization of T47D multicellular tumor spheroids–Older spheroids reduce interstitial space and become stiffer" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286291.PDF" title="(PDF) Electron microscopy imaging and mechanical characterization of T47D multicellular tumor spheroids–Older spheroids reduce interstitial space and become stiffer" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286291.XML" title="(XML) Electron microscopy imaging and mechanical characterization of T47D multicellular tumor spheroids–Older spheroids reduce interstitial space and become stiffer" />
    <author>
      <name>Mathangi Madhavan</name>
    </author>
    <author>
      <name>Devina Jaiswal</name>
    </author>
    <author>
      <name>Sarah Karlberg</name>
    </author>
    <author>
      <name>Alexis Duggan</name>
    </author>
    <author>
      <name>Hassan A. Almarshad</name>
    </author>
    <author>
      <name>Kevin P. Claffey</name>
    </author>
    <author>
      <name>Kazunori Hoshino</name>
    </author>
    <id>10.1371/journal.pone.0286291</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Mathangi Madhavan, Devina Jaiswal, Sarah Karlberg, Alexis Duggan, Hassan A. Almarshad, Kevin P. Claffey, Kazunori Hoshino&lt;/p&gt;

Multicellular cancer spheroids are an &lt;i&gt;in vitro&lt;/i&gt; tissue model that mimics the three-dimensional microenvironment. As spheroids grow, they develop the gradients of oxygen, nutrients, and catabolites, affecting crucial tumor characteristics such as proliferation and treatment responses. The measurement of spheroid stiffness provides a quantitative measure to evaluate such structural changes over time. In this report, we measured the stiffness of size-matched day 5 and day 20 tumor spheroids using a custom-built microscale force sensor and conducted transmission electron microscopy (TEM) imaging to compare the internal structures. We found that older spheroids reduce interstitial spaces in the core region and became significantly stiffer. The measured elastic moduli were 260±100 and 680±150 Pa, for day 5 and day 20 spheroids, respectively. The day 20 spheroids showed an optically dark region in the center. Analyzing the high-resolution TEM images of spheroid middle sections across the diameter showed that the cells in the inner region of the day 20 spheroids are significantly larger and more closely packed than those in the outer regions. On the other hand, the day 5 spheroids did not show a significant difference between the inner and outer regions. The observed reduction of the interstitial space may be one factor that contributes to stiffer older spheroids.</content>
  </entry>
  <entry>
    <title>Dyspnea induced by inspiratory loading limits dual-tasking in healthy young adults</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286265" title="Dyspnea induced by inspiratory loading limits dual-tasking in healthy young adults" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286265.PDF" title="(PDF) Dyspnea induced by inspiratory loading limits dual-tasking in healthy young adults" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286265.XML" title="(XML) Dyspnea induced by inspiratory loading limits dual-tasking in healthy young adults" />
    <author>
      <name>Stephanie R. Chauvin</name>
    </author>
    <author>
      <name>Jessica Otoo-Appiah</name>
    </author>
    <author>
      <name>Anna Zheng</name>
    </author>
    <author>
      <name>Chris H. Ibrahim</name>
    </author>
    <author>
      <name>James E. Ma</name>
    </author>
    <author>
      <name>Dmitry Rozenberg</name>
    </author>
    <author>
      <name>W. Darlene Reid</name>
    </author>
    <id>10.1371/journal.pone.0286265</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Stephanie R. Chauvin, Jessica Otoo-Appiah, Anna Zheng, Chris H. Ibrahim, James E. Ma, Dmitry Rozenberg, W. Darlene Reid&lt;/p&gt;
Objectives &lt;p&gt;Dyspnea is a common and multidimensional experience of healthy adults and those with respiratory disorders. Due to its neural processing, it may limit or interfere with cognition, which may be examined with a dual-task paradigm. The aim of this study was to compare single-task performance of Stroop Colour and Word Test (SCWT) or inspiratory threshold loading (ITL) to their combined dual-task performance. Secondly, whether mood was related to dyspnea or cognitive performance was also evaluated.&lt;/p&gt; Materials &amp; methods &lt;p&gt;A virtual pre-post design examined single (SCWT and ITL) and dual-task (SCWT+ITL) performance. For ITL, a Threshold Trainer™ was used to elicit a “somewhat severe” rating of dyspnea. The SCWT required participants to indicate whether a colour-word was congruent or incongruent with its semantic meaning. The Depression, Anxiety and Stress Scale-21 (DASS-21) was completed to assess mood. Breathing frequency, Borg dyspnea rating, and breathing endurance time were ascertained.&lt;/p&gt; Results &lt;p&gt;Thirty young healthy adults (15F, 15M; median age = 24, IQR [23–26] years) completed the study. SCWT+ITL had lower SCWT accuracy compared to SCWT alone (98.6%, [97.1–100.0] vs 99.5%, [98.6–100.0]; p = 0.009). Endurance time was not different between ITL and SCWT+ITL (14.5 minutes, [6.9–15.0]) vs 13.7 minutes, [6.1–15.0]; p = 0.59). DASS-21 scores positively correlated with dyspnea scores during ITL (rho = 0.583, p&lt;0.001) and SCWT+ITL (rho = 0.592, p&lt;0.001).&lt;/p&gt; Conclusions &lt;p&gt;ITL significantly reduced dual-task performance in healthy young adults. Lower mood was associated with greater perceived dyspnea during single and dual-task ITL. Considering the prevalence of dyspnea in respiratory disorders, the findings of this dual task paradigm warrant further exploration to inform dyspnea management during daily activities.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>Developing engaged and ‘teamful’ leaders: A randomized controlled trial of the 5R identity leadership program</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286263" title="Developing engaged and ‘teamful’ leaders: A randomized controlled trial of the 5R identity leadership program" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286263.PDF" title="(PDF) Developing engaged and ‘teamful’ leaders: A randomized controlled trial of the 5R identity leadership program" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286263.XML" title="(XML) Developing engaged and ‘teamful’ leaders: A randomized controlled trial of the 5R identity leadership program" />
    <author>
      <name>S. Alexander Haslam</name>
    </author>
    <author>
      <name>Jordan Reutas</name>
    </author>
    <author>
      <name>Sarah V. Bentley</name>
    </author>
    <author>
      <name>Blake McMillan</name>
    </author>
    <author>
      <name>Madison Lindfield</name>
    </author>
    <author>
      <name>Mischel Luong</name>
    </author>
    <author>
      <name>Kim Peters</name>
    </author>
    <author>
      <name>Niklas K. Steffens</name>
    </author>
    <id>10.1371/journal.pone.0286263</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by S. Alexander Haslam, Jordan Reutas, Sarah V. Bentley, Blake McMillan, Madison Lindfield, Mischel Luong, Kim Peters, Niklas K. Steffens&lt;/p&gt;

The social identity approach to leadership argues that leaders’ capacity to influence and inspire others is grounded in a shared sense of social identity (or ‘us-ness’) that those leaders create, advance, represent, and embed for the groups they lead. The approach therefore argues that a key task for leaders is to develop insights and skills of (social) identity leadership that allow them to motivate and mobilize groups and transform them into a potent social and organizational force. In contrast to other approaches and programs which focus on leaders’ leader identity (their ‘I-ness’), the 5R leadership development program supports the development of leaders’ social identity by raising awareness of the importance of social identity (‘we-ness’) for leadership and taking leaders through structured activities that help them build engaged and inclusive teams. The present research assessed the benefits of facilitated and learner self-directed versions of the 5R program (&lt;i&gt;N&lt;/i&gt;s = 27, 22 respectively) relative to a no-treatment control (&lt;i&gt;N&lt;/i&gt; = 27). Results (including those of an intention-to-treat analysis; &lt;i&gt;N&lt;/i&gt; = 76) indicated that, relative to leaders in the control condition, those who participated in both forms of 5R reported large increases in identity leadership knowledge, as well as medium-sized increases in both team engagement (a compound factor comprised of team identification, team OCB, team efficacy, and work engagement) and ‘teamfulness’ (comprised of team reflexivity, team psychological safety, team goal clarity, and inclusive team climate). We reflect on the importance of teamfulness for leadership and team functioning and on the value of programs that help leaders develop this.</content>
  </entry>
  <entry>
    <title>A new NASH model in aged mice with rapid progression of steatohepatitis and fibrosis</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286257" title="A new NASH model in aged mice with rapid progression of steatohepatitis and fibrosis" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286257.PDF" title="(PDF) A new NASH model in aged mice with rapid progression of steatohepatitis and fibrosis" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286257.XML" title="(XML) A new NASH model in aged mice with rapid progression of steatohepatitis and fibrosis" />
    <author>
      <name>Xuecheng Li</name>
    </author>
    <author>
      <name>Yi Lu</name>
    </author>
    <author>
      <name>Xiaoshuang Liang</name>
    </author>
    <author>
      <name>Xiaofei Zhou</name>
    </author>
    <author>
      <name>Dirui Li</name>
    </author>
    <author>
      <name>Zan Zhang</name>
    </author>
    <author>
      <name>Yunchao Niu</name>
    </author>
    <author>
      <name>Shuaishuai Liu</name>
    </author>
    <author>
      <name>Ling Ye</name>
    </author>
    <author>
      <name>Rufeng Zhang</name>
    </author>
    <id>10.1371/journal.pone.0286257</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Xuecheng Li, Yi Lu, Xiaoshuang Liang, Xiaofei Zhou, Dirui Li, Zan Zhang, Yunchao Niu, Shuaishuai Liu, Ling Ye, Rufeng Zhang&lt;/p&gt;

Non-alcoholic fatty liver disease (NAFLD) has a high prevalence worldwide, with a significant proportion of patients progressing into non-alcoholic steatohepatitis (NASH) and further into cirrhosis and hepatocellular carcinoma (HCC). Most of the current animal models of NASH have limitations, such as incompatibility with human pathogenesis characteristics or long induction periods, which severely limit the development of new drugs and preclinical studies for NASH. We investigated the progression of NASH and fibrosis, as well as metabolic indicators, at different time points in aged mice induced by the Gubra Amylin NASH (GAN) diet, a high-fat, high-sugar, high-cholesterol diet, and attempted to establish a rapid and useful mouse model of NASH. Young and aged C57BL/6 mice were induced on a normal chow or GAN diet for 12 and 21 weeks, respectively. After 12 weeks of induction, aged mice developed NASH, including hepatic steatosis, lobular inflammation and hepatic ballooning, and the phenotype was more severe compared with young mice. After 21 weeks of induction, aged mice developed hepatic fibrosis, which greatly shortened the induction time compared with young mice. Furthermore, analysis of immune cell infiltration in the liver by flow cytometry elucidated the changes of multiple immune cells during the pathogenesis of NASH. These findings suggest that aged mice may develop NASH and fibrosis more rapidly under GAN diet induction, which may significantly shorten the period for preclinical studies of NASH.</content>
  </entry>
  <entry>
    <title>Effects of heat degradation of betanin in red beetroot (&lt;i&gt;Beta vulgaris&lt;/i&gt; L.) on biological activity and antioxidant capacity</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286255" title="Effects of heat degradation of betanin in red beetroot (&lt;i&gt;Beta vulgaris&lt;/i&gt; L.) on biological activity and antioxidant capacity" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286255.PDF" title="(PDF) Effects of heat degradation of betanin in red beetroot (&lt;i&gt;Beta vulgaris&lt;/i&gt; L.) on biological activity and antioxidant capacity" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286255.XML" title="(XML) Effects of heat degradation of betanin in red beetroot (&lt;i&gt;Beta vulgaris&lt;/i&gt; L.) on biological activity and antioxidant capacity" />
    <author>
      <name>Daisuke Muramatsu</name>
    </author>
    <author>
      <name>Hirofumi Uchiyama</name>
    </author>
    <author>
      <name>Hideaki Higashi</name>
    </author>
    <author>
      <name>Hiroshi Kida</name>
    </author>
    <author>
      <name>Atsushi Iwai</name>
    </author>
    <id>10.1371/journal.pone.0286255</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Daisuke Muramatsu, Hirofumi Uchiyama, Hideaki Higashi, Hiroshi Kida, Atsushi Iwai&lt;/p&gt;

Betanin is a red pigment of red beetroot (&lt;i&gt;Beta vulgaris&lt;/i&gt; L.), providing the beneficial effects to maintain human health. Betanin is involved in the characteristic red color of red beetroot, and used as an edible dye. Betanin is known to be a highly unstable pigment, and water solutions of betanin are nearly fully degraded after heating at 99°C for 60 min in the experimental conditions of this study. The present study investigated the effects of red beetroot juice (RBJ) and betanin on immune cells, and found that stimulation with RBJ and betanin induces interleukin (IL)-1β, IL-8, and IL-10 mRNA in a human monocyte derived cell line, THP-1 cells. This mRNA induction after stimulation with RBJ and betanin was not significantly changed after heat treatment when attempting to induce degradation of the betanin. Following these results, the effects of heat degradation of betanin on the inhibition of lipopolysaccharide (LPS) induced nitric oxide (NO) production in RAW264 cells and the antioxidant capacity were investigated. The results showed that the inhibition activity of RBJ and betanin with the LPS induced NO production is not altered after heat degradation of betanin. In addition, the results of FRAP (ferric reducing antioxidant power) and DPPH (1,1-Diphenyl-2-picrylhydrazyl) assays indicate that a not inconsiderable degree of the antioxidant capacity of RBJ and betanin remained after heat degradation of betanin. These results suggest that it is important to consider the effects of degradation products of betanin in the evaluation of the beneficial effects of red beetroot on health.</content>
  </entry>
  <entry>
    <title>Development and characterization of a copolymeric micelle containing soluble and insoluble model drugs</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286251" title="Development and characterization of a copolymeric micelle containing soluble and insoluble model drugs" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286251.PDF" title="(PDF) Development and characterization of a copolymeric micelle containing soluble and insoluble model drugs" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286251.XML" title="(XML) Development and characterization of a copolymeric micelle containing soluble and insoluble model drugs" />
    <author>
      <name>Farhad Mohammadi</name>
    </author>
    <author>
      <name>Alireza Moradi</name>
    </author>
    <author>
      <name>Fatemeh Tavakoli</name>
    </author>
    <author>
      <name>Samaneh Rahmati</name>
    </author>
    <author>
      <name>Rashin Giti</name>
    </author>
    <author>
      <name>Vahid Ramezani</name>
    </author>
    <id>10.1371/journal.pone.0286251</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Farhad Mohammadi, Alireza Moradi, Fatemeh Tavakoli, Samaneh Rahmati, Rashin Giti, Vahid Ramezani&lt;/p&gt;
Objectives &lt;p&gt;Micelles are nano-sized particles with a core-shell structure that are made by natural or synthetic polymers or copolymers. The aim of this study was to develop and characterize a copolymeric micelle using two polymers loaded with hydrophilic and lipophilic drugs.&lt;/p&gt; Methods &lt;p&gt;Poly(ethylene glycol) and poly(ε-caprolactone) (PEG-PCL) were used to form a copolymeric micelle which was further loaded with either moxifloxacin or clarithromycin as hydrophilic and lipophilic drug samples, respectively. Characterization tests were done including fourier transform-infrared (FT-IR) spectroscopy, proton nuclear magnetic resonance (&lt;sup&gt;1&lt;/sup&gt;H NMR) spectroscopy, encapsulation efficiency, particle size, zeta potential, polydispersity index, transmission electron microscopy, and &lt;i&gt;in-vitro&lt;/i&gt; release test.&lt;/p&gt; Results &lt;p&gt;The construction of the copolymer was confirmed by the results of FT-IR and &lt;sup&gt;1&lt;/sup&gt;H NMR spectroscopy tests. The encapsulation efficiency test exhibited that loading was about 50% for twelve formulations. Particle size, zeta potential, polydispersity index, and transmission electron microscopy confirmed the formation of monodispersed, uniform, and nano-sized micelles with a few negative charges. The kinetic model of release was fitted to the Higuchi model.&lt;/p&gt; Conclusions &lt;p&gt;Polymeric micelles consisting of PEG-PCL copolymer were loaded with adequate concentrations of hydrophilic (moxifloxacin) and lipophilic (clarithromycin) model drugs, with a mean particle size under 300 nm. Therefore, copolymeric micelles can be used as a suitable drug delivery system for mucous membranes and skin.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>New insights into the recent collapse of Eastern Baltic cod from historical data on stock health</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286247" title="New insights into the recent collapse of Eastern Baltic cod from historical data on stock health" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286247.PDF" title="(PDF) New insights into the recent collapse of Eastern Baltic cod from historical data on stock health" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286247.XML" title="(XML) New insights into the recent collapse of Eastern Baltic cod from historical data on stock health" />
    <author>
      <name>Margit Eero</name>
    </author>
    <author>
      <name>Keith Brander</name>
    </author>
    <author>
      <name>Tatjana Baranova</name>
    </author>
    <author>
      <name>Uwe Krumme</name>
    </author>
    <author>
      <name>Krzysztof Radtke</name>
    </author>
    <author>
      <name>Jane W. Behrens</name>
    </author>
    <id>10.1371/journal.pone.0286247</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Margit Eero, Keith Brander, Tatjana Baranova, Uwe Krumme, Krzysztof Radtke, Jane W. Behrens&lt;/p&gt;

The Eastern Baltic cod (&lt;i&gt;Gadus morhua&lt;/i&gt;) stock is currently in a very poor state, with low biomass and adverse trends in several life history and demographic parameters. This raises concern over whether and to what level recovery is possible. Here, we look for new insights from a historical perspective, extending the time series of various stock health indicators back to the 1940s, i.e. to the beginning of intensive exploitation of the Eastern Baltic cod. The historical data confirm that the stock deterioration in recent years is unprecedented, as all indicators are presently in their worst states on record. Cod body condition and energy reserves were equally low in the 1940s–1950s, accompanied by high parasitic liver worm infection, comparable to that measured in recent years. However, other stock parameters (size structure, size at maturity, stock distribution) are currently in their worst states over the past 80 years. In contrast, the state of cod in the 1970s to early 1990s that is often perceived as a desirable target, was exceptional, with the most favorable indicator levels in the time series. Long-term observation data reveal concurrent or asynchronous trends in different indicators of stock health and to what extent these have coincided with changes in possible external drivers. In this way, the extended time series contribute to ongoing research on understanding the collapse of the cod and its recovery potential.</content>
  </entry>
  <entry>
    <title>Assessment of severity scoring systems for predicting mortality in critically ill patients receiving continuous renal replacement therapy</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286246" title="Assessment of severity scoring systems for predicting mortality in critically ill patients receiving continuous renal replacement therapy" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286246.PDF" title="(PDF) Assessment of severity scoring systems for predicting mortality in critically ill patients receiving continuous renal replacement therapy" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286246.XML" title="(XML) Assessment of severity scoring systems for predicting mortality in critically ill patients receiving continuous renal replacement therapy" />
    <author>
      <name>Hyunmyung Park</name>
    </author>
    <author>
      <name>Jihyun Yang</name>
    </author>
    <author>
      <name>Byung Chul Chun</name>
    </author>
    <id>10.1371/journal.pone.0286246</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Hyunmyung Park, Jihyun Yang, Byung Chul Chun&lt;/p&gt;

The incidence of acute kidney injury (AKI) is increasing every year and many patients with AKI admitted to the intensive care unit (ICU) require continuous renal replacement therapy (CRRT). This study compared and analyzed severity scoring systems to assess their suitability in predicting mortality in critically ill patients receiving CRRT. Data from 612 patients receiving CRRT in four ICUs of the Korea University Medical Center between January 2016 and November 2018 were retrospectively collected. The mean age of all patients was 67.6 ± 14.8 years, and the proportion of males was 59.6%. The endpoints were in-hospital mortality and 7-day mortality from the day of CRRT initiation to the date of death. The Program to Improve Care in Acute Renal Disease (PICARD), Demirjian’s, Acute Physiology and Chronic Health Evaluation (APACHE) II, Simplified Acute Physiology Score (SAPS) 3, Sequential Organ Failure Assessment (SOFA), Multiple Organ Dysfunction Score (MODS), and Liano’s scores were used to predict mortality. The in-hospital and 7-day mortality rates in the study population were 72.7% and 45.1%, respectively. The area under the receiver operator characteristic curve (AUROC) revealed the highest discrimination ability for Demirjian’s score (0.770), followed by Liano’s score (0.728) and APACHE II (0.710). The AUROC curves for the SAPS 3, MODS, and PICARD were 0.671, 0.665, and 0.658, respectively. The AUROC of Demirjian’s score was significantly higher than that of the other scores, except for Liano’s score. The Hosmer-Lemeshow test on Demirjian’s score showed a poor fit in our analysis; however, it was more acceptable than general severity scores. Kidney-specific severity scoring systems showed better performance in predicting mortality in critically ill patients receiving CRRT than general severity scoring systems.</content>
  </entry>
  <entry>
    <title>Mapping the cultural divides of England and Wales: Did the geographies of ‘Belonging’ act as a brake on British Urbanisation, 1851–1911?</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286244" title="Mapping the cultural divides of England and Wales: Did the geographies of ‘Belonging’ act as a brake on British Urbanisation, 1851–1911?" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286244.PDF" title="(PDF) Mapping the cultural divides of England and Wales: Did the geographies of ‘Belonging’ act as a brake on British Urbanisation, 1851–1911?" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286244.XML" title="(XML) Mapping the cultural divides of England and Wales: Did the geographies of ‘Belonging’ act as a brake on British Urbanisation, 1851–1911?" />
    <author>
      <name>Joseph Day</name>
    </author>
    <id>10.1371/journal.pone.0286244</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Joseph Day&lt;/p&gt;

Although both the analysis of regional culture and urbanisation are long-standing preoccupations in geography, few studies have considered the relationship between the two, the former traditionally being a topic in cultural geography, while the latter is usually interpreted and analysed as a process in economic geography. Taking evidence from the 1851–1911 censuses of England and Wales, this article analyses individual migration paths to identify stable regions of human interaction by applying a sophisticated community-detection algorithm. By accurately mapping the regions within which the majority of migration occurred between 1851 and 1911 and arguing that the stability of these geographies is evidence of more than just mutable communities but rather of persistent regional cultures, this article responds to previous studies that have sought to identify the cultural provinces of England and Wales. Indeed, by demonstrating that the regions bear a striking resemblance to those that have long been hypothesised as being distinct cultural provinces of England and Wales, this article empirically corroborates their existence. In order to further demonstrate that the regions constitute cultural provinces, this paper incorporates these boundaries into a spatial interaction model (SIM). The results of the SIM not only shows that the boundaries between the regions limited the number of migrants that crossed them–over and above that explained by control variables–and therefore represented the boundaries of cultural provinces, demarcating discrete regions of human interaction–but that such boundaries disproportionately restricted rural-urban migrants, thereby slowing the pace at which England and Wales urbanised. This paper therefore demonstrates that urbanisation should not only be interpreted as only an economic phenomenon, but a cultural one also, and that if urbanisation is to be fully understood, individuals’ attachment to place as a component of their identity, ought to be formally incorporated into models of migration.</content>
  </entry>
  <entry>
    <title>Children’s suggestibility for neutral arbitrary actions in the context of norm violations</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286241" title="Children’s suggestibility for neutral arbitrary actions in the context of norm violations" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286241.PDF" title="(PDF) Children’s suggestibility for neutral arbitrary actions in the context of norm violations" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286241.XML" title="(XML) Children’s suggestibility for neutral arbitrary actions in the context of norm violations" />
    <author>
      <name>Elena Vaporova</name>
    </author>
    <author>
      <name>Norbert Zmyj</name>
    </author>
    <id>10.1371/journal.pone.0286241</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Elena Vaporova, Norbert Zmyj&lt;/p&gt;

This study investigated children’s false memories for neutral arbitrary actions. Five- to six-year-olds (&lt;i&gt;N&lt;/i&gt; = 32) were taught four arbitrary actions, each following specific rules. The children then watched a televised adult performing eight actions: the four familiar actions while violating one aspect of each rule script and four unfamiliar actions. Suggestive and non-suggestive questions about all witnessed actions were asked, followed by forced-choice test questions to measure the false memory effect. The likelihood of forming false memories was higher in the suggestive condition than in the non-suggestive condition. There was no effect of previously acquired knowledge about the rules of the actions and no interaction between rule knowledge and suggestion. The results are discussed in light of previous findings in related fields of false memory research.</content>
  </entry>
  <entry>
    <title>A novel privacy-preserving biometric authentication scheme</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286215" title="A novel privacy-preserving biometric authentication scheme" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286215.PDF" title="(PDF) A novel privacy-preserving biometric authentication scheme" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286215.XML" title="(XML) A novel privacy-preserving biometric authentication scheme" />
    <author>
      <name>Xuechun Mao</name>
    </author>
    <author>
      <name>Ying Chen</name>
    </author>
    <author>
      <name>Cong Deng</name>
    </author>
    <author>
      <name>Xiaqing Zhou</name>
    </author>
    <id>10.1371/journal.pone.0286215</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Xuechun Mao, Ying Chen, Cong Deng, Xiaqing Zhou&lt;/p&gt;

Most existing secure biometric authentication schemes are server-centric, and users must fully trust the server to store, process, and manage their biometric data. As a result, users’ biometric data could be leaked by outside attackers or the service provider itself. This paper first constructs the EDZKP protocol based on the inner product, which proves whether the secret value is the Euclidean distance of the secret vectors. Then, combined with the Cuproof protocol, we propose a novel user-centric biometric authentication scheme called BAZKP. In this scheme, all the biometric data remain encrypted during authentication phase, so the server will never see them directly. Meanwhile, the server can determine whether the Euclidean distance of two secret vectors is within a pre-defined threshold by calculation. Security analysis shows BAZKP satisfies completeness, soundness, and zero-knowledge. Based on BAZKP, we propose a privacy-preserving biometric authentication system, and its evaluation demonstrates that it provides reliable and secure authentication.</content>
  </entry>
  <entry>
    <title>Cardiac RNase Z edited via CRISPR-Cas9 drives heart hypertrophy in &lt;i&gt;Drosophila&lt;/i&gt;</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286214" title="Cardiac RNase Z edited via CRISPR-Cas9 drives heart hypertrophy in &lt;i&gt;Drosophila&lt;/i&gt;" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286214.PDF" title="(PDF) Cardiac RNase Z edited via CRISPR-Cas9 drives heart hypertrophy in &lt;i&gt;Drosophila&lt;/i&gt;" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286214.XML" title="(XML) Cardiac RNase Z edited via CRISPR-Cas9 drives heart hypertrophy in &lt;i&gt;Drosophila&lt;/i&gt;" />
    <author>
      <name>Ekaterina Migunova</name>
    </author>
    <author>
      <name>Saathvika Rajamani</name>
    </author>
    <author>
      <name>Stefania Bonanni</name>
    </author>
    <author>
      <name>Fei Wang</name>
    </author>
    <author>
      <name>Chao Zhou</name>
    </author>
    <author>
      <name>Edward B. Dubrovsky</name>
    </author>
    <id>10.1371/journal.pone.0286214</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Ekaterina Migunova, Saathvika Rajamani, Stefania Bonanni, Fei Wang, Chao Zhou, Edward B. Dubrovsky&lt;/p&gt;

Cardiomyopathy (CM) is a group of diseases distinguished by morphological and functional abnormalities in the myocardium. It is etiologically heterogeneous and may develop via cell autonomous and/or non-autonomous mechanisms. One of the most severe forms of CM has been linked to the deficiency of the ubiquitously expressed RNase Z endoribonuclease. RNase Z cleaves off the 3’-trailer of both nuclear and mitochondrial primary tRNA (pre-tRNA) transcripts. Cells mutant for RNase Z accumulate unprocessed pre-tRNA molecules. Patients carrying RNase Z variants with reduced enzymatic activity display a plethora of symptoms including muscular hypotonia, microcephaly and severe heart hypertrophy; still, they die primarily due to acute heart decompensation. Determining whether the underlying mechanism of heart malfunction is cell autonomous or not will provide an opportunity to develop novel strategies of more efficient treatments for these patients. In this study, we used CRISPR-TRiM technology to create &lt;i&gt;Drosophila&lt;/i&gt; models that carry cardiomyopathy-linked alleles of &lt;i&gt;RNase Z&lt;/i&gt; only in the cardiomyocytes. We found that this modification is sufficient for flies to develop heart hypertrophy and systolic dysfunction. These observations support the idea that the &lt;i&gt;RNase Z&lt;/i&gt; linked CM is driven by cell autonomous mechanisms.</content>
  </entry>
  <entry>
    <title>Implementation outcomes and strategies for delivering evidence-based hypertension interventions in lower-middle-income countries: Evidence from a multi-country consortium for hypertension control</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286204" title="Implementation outcomes and strategies for delivering evidence-based hypertension interventions in lower-middle-income countries: Evidence from a multi-country consortium for hypertension control" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286204.PDF" title="(PDF) Implementation outcomes and strategies for delivering evidence-based hypertension interventions in lower-middle-income countries: Evidence from a multi-country consortium for hypertension control" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286204.XML" title="(XML) Implementation outcomes and strategies for delivering evidence-based hypertension interventions in lower-middle-income countries: Evidence from a multi-country consortium for hypertension control" />
    <author>
      <name>Joyce Gyamfi</name>
    </author>
    <author>
      <name>Juliet Iwelunmor</name>
    </author>
    <author>
      <name>Shivani Patel</name>
    </author>
    <author>
      <name>Vilma Irazola</name>
    </author>
    <author>
      <name>Angela Aifah</name>
    </author>
    <author>
      <name>Ashlin Rakhra</name>
    </author>
    <author>
      <name>Mark Butler</name>
    </author>
    <author>
      <name>Rajesh Vedanthan</name>
    </author>
    <author>
      <name>Giang Nguyen Hoang</name>
    </author>
    <author>
      <name>Monicah Nyambura</name>
    </author>
    <author>
      <name>Hoa Nguyen</name>
    </author>
    <author>
      <name>Cuc Nguyen</name>
    </author>
    <author>
      <name>Kwaku Poku Asante</name>
    </author>
    <author>
      <name>Solomon Nyame</name>
    </author>
    <author>
      <name>Kwame Adjei</name>
    </author>
    <author>
      <name>John Amoah</name>
    </author>
    <author>
      <name>Kingsley Apusiga</name>
    </author>
    <author>
      <name>Kezia Gladys Amaning Adjei</name>
    </author>
    <author>
      <name>Manuel Ramierz-Zea</name>
    </author>
    <author>
      <name>Diego Hernandez</name>
    </author>
    <author>
      <name>Meredith Fort</name>
    </author>
    <author>
      <name>Hanspria Sharma</name>
    </author>
    <author>
      <name>Prashant Jarhyan</name>
    </author>
    <author>
      <name>Emmanuel Peprah</name>
    </author>
    <author>
      <name>Gbenga Ogedegbe</name>
    </author>
    <id>10.1371/journal.pone.0286204</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Joyce Gyamfi, Juliet Iwelunmor, Shivani Patel, Vilma Irazola, Angela Aifah, Ashlin Rakhra, Mark Butler, Rajesh Vedanthan, Giang Nguyen Hoang, Monicah Nyambura, Hoa Nguyen, Cuc Nguyen, Kwaku Poku Asante, Solomon Nyame, Kwame Adjei, John Amoah, Kingsley Apusiga, Kezia Gladys Amaning Adjei, Manuel Ramierz-Zea, Diego Hernandez, Meredith Fort, Hanspria Sharma, Prashant Jarhyan, Emmanuel Peprah, Gbenga Ogedegbe&lt;/p&gt;

Guidance on contextually tailored implementation strategies for the prevention, treatment, and control of hypertension is limited in lower-middle income countries (Lower-MIC). To address this limitation, we compiled implementation strategies and accompanying outcomes of evidence-based hypertension interventions currently being implemented in five Lower-MIC. The Global Research on Implementation and Translation Science (GRIT) Coordinating Center (CC) (GRIT-CC) engaged its global network sites at Ghana, Guatemala, India, Kenya, and Vietnam. Purposively sampled implementation science experts completed an electronic survey assessing implementation outcomes, in addition to implementation strategies used in their ongoing hypertension interventions from among 73 strategies within the Expert Recommendations for Implementing Change (ERIC). Experts rated the strategies based on highest priority to their interventions. We analyzed the data by sorting implementation strategies utilized by sites into one of the nine domains in ERIC and summarized the data using frequencies, proportions, and means. Seventeen implementation experts (52.9% men) participated in the exercise. Of Proctor’s implementation outcomes identified across sites, all outcomes except for appropriateness were broadly assessed by three or more countries. Overall, 59 out of 73 (81%) strategies were being utilized in the five countries. The highest priority implementation strategies utilized across all five countries focused on evaluative and iterative strategies (e.g., identification of context specific barriers and facilitators) to delivery of patient- and community-level interventions, while the lowest priority was use of financial and infrastructure change strategies. More capacity building strategies (developing stakeholder interrelationships, training and educating stakeholders, and supporting clinicians) were incorporated into interventions implemented in India and Vietnam than Ghana, Kenya, and Guatemala. Although robust implementation strategies are being used in Lower -MICs, there is minimum use of financial and infrastructure change strategies. Our study contributes to the growing literature that demonstrates the use of Expert Recommendations for Implementing Change (ERIC) implementation strategies to deliver evidence-based hypertension interventions in Lower-MICs and will inform future cross-country data harmonization activities in resource-constrained settings.</content>
  </entry>
  <entry>
    <title>Integrating human papillomavirus testing as a point-of care service using GeneXpert platforms: Findings and lessons from a Kenyan pilot study (2019–2020)</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286202" title="Integrating human papillomavirus testing as a point-of care service using GeneXpert platforms: Findings and lessons from a Kenyan pilot study (2019–2020)" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286202.PDF" title="(PDF) Integrating human papillomavirus testing as a point-of care service using GeneXpert platforms: Findings and lessons from a Kenyan pilot study (2019–2020)" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286202.XML" title="(XML) Integrating human papillomavirus testing as a point-of care service using GeneXpert platforms: Findings and lessons from a Kenyan pilot study (2019–2020)" />
    <author>
      <name>Valerian Mwenda</name>
    </author>
    <author>
      <name>Joan-Paula Bor</name>
    </author>
    <author>
      <name>Mary Nyangasi</name>
    </author>
    <author>
      <name>James Njeru</name>
    </author>
    <author>
      <name>Sharon Olwande</name>
    </author>
    <author>
      <name>Patricia Njiri</name>
    </author>
    <author>
      <name>Marc Arbyn</name>
    </author>
    <author>
      <name>Steven Weyers</name>
    </author>
    <author>
      <name>Philippe Tummers</name>
    </author>
    <author>
      <name>Marleen Temmerman</name>
    </author>
    <id>10.1371/journal.pone.0286202</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Valerian Mwenda, Joan-Paula Bor, Mary Nyangasi, James Njeru, Sharon Olwande, Patricia Njiri, Marc Arbyn, Steven Weyers, Philippe Tummers, Marleen Temmerman&lt;/p&gt;
Background &lt;p&gt;Globally, cervical cancer is a major public health problem, with about 604,000 new cases and over 340,000 deaths in 2020. In Kenya, it is the leading cause of cancer deaths, with over 3,000 women dying in 2020 alone. Both the Kenyan cancer screening guidelines and the World Health Organization’s Global Cervical Cancer Elimination Strategy recommend human papillomavirus (HPV) testing as the primary screening test. However, HPV testing is not widely available in the public healthcare system in Kenya. We conducted a pilot study using a point of care (POC) HPV test to inform national roll-out.&lt;/p&gt; Methods &lt;p&gt;The pilot was implemented from October 2019 to December 2020, in nine health facilities across six counties. We utilized the GeneXpert platform (Cepheid, Sunnyvale, CA, USA), currently used for TB, Viral load testing and early infant diagnosis for HIV, for HPV screening. Visual inspection with acetic acid (VIA) was used for triage of HPV-positive women, as recommended in national guidelines. Quality assurance (QA) was performed by the National Oncology Reference Laboratory (NORL), using the COBAS 4800 platform (Roche Molecular System, Pleasanton, CF, USA). HPV testing was done using either self or clinician-collected samples. We assessed the following screening performance indicators: screening coverage, screen test positivity, triage compliance, triage positivity and treatment compliance. Test agreement between local GeneXpert and central comparator high-risk HPV (hrHPV) testing for a random set of specimens was calculated as overall concordance and kappa value. We conducted a final evaluation and applied the Nominal Group Technique (NGT) to identify implementation challenges and opportunities.&lt;/p&gt; Key findings &lt;p&gt;The screening coverage of target population was 27.0% (4500/16,666); 52.8% (2376/4500) were between 30–49 years of age. HPV positivity rate was 22.8% (1027/4500). Only 10% (105/1027) of HPV positive cases were triaged with VIA/VILI; 21% (22/105) tested VIA/VILI positive, and 73% (16/22) received treatment (15 received cryotherapy, 1 was referred for biopsy). The median HPV testing turnaround time (TAT) was 24 hours (IQR 2–48 hours). Invalid sample rate was 2.0% (91/4500). Concordance between the Cepheid and COBAS was 86.2% (kappa value = 0.71). Of 1042 healthcare workers, only 5.6% (58/1042) were trained in cervical cancer screening and treatment, and only 69% (40/58) of those trained were stationed at service provision areas. Testing capacity was identifed as the main challenge, while the community strategy was the main opportunity.&lt;/p&gt; Conclusion &lt;p&gt;HPV testing can be performed on GeneXpert as a near point of care platform. However, triage compliance and testing TAT were major concerns. We recommend strengthening of the screening-triage-treatment cascade and expansion of testing capacity, before adoption of a GeneXpert-based HPV screening among other near point of care platforms in Kenya.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>Socio-ecological predictors of dietary inflammatory scores and associations with childhood and adolescent adiposity: A protocol for a rapid scoping review of observational studies</title>
    <link rel="alternate" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0286200" title="Socio-ecological predictors of dietary inflammatory scores and associations with childhood and adolescent adiposity: A protocol for a rapid scoping review of observational studies" />
    <link rel="related" type="application/pdf" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286200.PDF" title="(PDF) Socio-ecological predictors of dietary inflammatory scores and associations with childhood and adolescent adiposity: A protocol for a rapid scoping review of observational studies" />
    <link rel="related" type="text/xml" href="https://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0286200.XML" title="(XML) Socio-ecological predictors of dietary inflammatory scores and associations with childhood and adolescent adiposity: A protocol for a rapid scoping review of observational studies" />
    <author>
      <name>Kristina Vingrys</name>
    </author>
    <author>
      <name>Helen McCarthy</name>
    </author>
    <author>
      <name>Ricardo Segurado</name>
    </author>
    <author>
      <name>James R. Hébert</name>
    </author>
    <author>
      <name>Catherine M. Phillips</name>
    </author>
    <id>10.1371/journal.pone.0286200</id>
    <updated>2023-05-25T14:00:00Z</updated>
    <published>2023-05-25T14:00:00Z</published>
    <content type="html">&lt;p&gt;by Kristina Vingrys, Helen McCarthy, Ricardo Segurado, James R. Hébert, Catherine M. Phillips&lt;/p&gt;
Introduction &lt;p&gt;Diet-related inflammation is associated with adiposity. Obesity and inflammation in early life may have adverse health outcomes in later life; however, the socio-ecological predictors of a pro-inflammatory diet in childhood and adolescence are not well understood. This rapid scoping review aims to summarise the current state of research from observational studies investigating socio-ecological predictors (childhood, parental, familial, demographic and chronobiological risk factors) and their association with diet-associated inflammation and adiposity in children and adolescents.&lt;/p&gt; Methods &lt;p&gt;This scoping review will be conducted using the frameworks based on the Joanna Briggs Institute and Arksey and O’Malley and the Population, Concept and Context (PCC) mnemonic. Searches were conducted in OVID Medline, Cinahl and Embase, with adaptations as required. The piloted study selection process will utilise two reviewers for study selection, with reference lists checked for included studies. A third reviewer will moderate disagreements. Data will be extracted by one reviewer and calibrated by a second reviewer.&lt;/p&gt; Results &lt;p&gt;The results will be reported using the Preferred Reporting Items for Systematic reviews and Meta-Analyses extension for Scoping Reviews (PRISMA-ScR) checklist and PRISMA-ScR flow diagram. The main findings will be synthesised into themes and concepts narratively. Tables and graphs will present frequencies, study details and categorical descriptions.&lt;/p&gt; Discussion &lt;p&gt;This scoping review will provide an overview of the research conducted to date regarding predictors of diet-related inflammation in childhood and their associations with adiposity. Better understanding of the factors associated with a more inflammatory diet in childhood may be useful for clinicians and policy makers when designing and implementing health interventions.&lt;/p&gt;</content>
  </entry>
</feed>


id: 4bd73a29-4fa4-4ec9-9f97-f0a0036607b8
url: https://itsfoss.com/feed
title: It's FOSS
group_id: 5ba66bdc-22cd-4924-9389-104d85c2247e
feed_type: MediaRss
description: Making You a Better Linux User
image_url: https://itsfoss.com/favicon.png
original_document:
<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[It's FOSS]]></title><description><![CDATA[Making You a Better Linux User]]></description><link>https://itsfoss.com/</link><image><url>https://itsfoss.com/favicon.png</url><title>It&apos;s FOSS</title><link>https://itsfoss.com/</link></image><generator>Ghost 5.49</generator><lastBuildDate>Thu, 25 May 2023 19:34:59 GMT</lastBuildDate><atom:link href="https://itsfoss.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff]]></title><description><![CDATA[Changes to Pip mechanism, stress testing CPU and other Linux tips and tutorials in this edition of FOSS Weekly.]]></description><link>https://itsfoss.com/newsletter/foss-weekly-23-21/</link><guid isPermaLink="false">646c7d0f86dbb1af91231cec</guid><category><![CDATA[Newsletter]]></category><dc:creator><![CDATA[Abhishek Prakash]]></dc:creator><pubDate>Thu, 25 May 2023 04:42:38 GMT</pubDate><media:content url="https://itsfoss.com/content/images/2023/05/FOSS-WEEKLY-23-21.png" medium="image"/><content:encoded><![CDATA[<img src="https://itsfoss.com/content/images/2023/05/FOSS-WEEKLY-23-21.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"><p>It seems like Pip is changing its behavior to avoid conflicts with native Linux packages. The change is now present in Ubuntu 23.10 and Fedora 38, where you&apos;ll <a href="https://itsfoss.com/externally-managed-environment/">run into an error while using Pip</a>.</p><p>And we have new badges for Pro members &#x1F918;</p><p><strong>&#x1F4AC; Let&apos;s see what else you have in this edition of FOSS Weekly:</strong></p><ul><li>Addressing the Pip issue in Ubuntu 23.10</li><li>Stress testing CPU</li><li>And other Linux news, videos, puzzles and, of course, memes!</li></ul><hr><h2 id="%F0%9F%93%B0-linux-news">&#x1F4F0; Linux news</h2><ul><li>Lightweight distro Bodhi Linux <a href="https://www.bodhilinux.com/release/7-0-0/?ref=itsfoss.com">released version 7.0 beta</a>.</li><li>Fedora 36 has reached end of life. Existing users should <a href="https://itsfoss.com/upgrade-fedora-version/">upgrade to a newer version</a>.</li><li>Cloudflare has launched a <a href="https://news.itsfoss.com/cloudflare-open-source-sponsorship/?ref=itsfoss.com">new sponsorship program for OSS projects</a>.</li></ul><p>Twitter&apos;s original co-founder Jack Dorsey&apos;s Bluesky recently open-sourced their Web, Android, and iOS applications.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/bluesky-social-open-source/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Bluesky Social: A Decentralized Twitter Alternative Takes an Open-Source Approach</div><div class="kg-bookmark-description">A Twitter replacement in the works with better fundamentals and approach in place?</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"><span class="kg-bookmark-author">It&apos;s FOSS News</span><span class="kg-bookmark-publisher">Sourav Rudra</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://news.itsfoss.com/content/images/2023/05/bluesky-open-source-twitter-alternative.jpg" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"></div></a></figure><hr><h2 id="%F0%9F%A7%A0-what-we%E2%80%99re-thinking-about">&#x1F9E0; What we&#x2019;re thinking about</h2><p>This is going to resonate with many long-time Ubuntu users.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://hackaday.com/2023/05/22/dear-ubuntu/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Dear Ubuntu&#x2026;</div><div class="kg-bookmark-description">Dear Ubuntu, I hope this letter finds you well. I want to start by saying that our time together has been one of creativity and entertainment, a time in which you gave me the tools to develop a new&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://hackaday.com/wp-content/themes/hackaday-2/img/hackaday-logo_1024x1024.png?v=3" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"><span class="kg-bookmark-author">Hackaday</span><span class="kg-bookmark-publisher">Jenny List</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://hackaday.com/wp-content/uploads/2023/05/dear-ubuntu-featured-e1684772890716.jpg" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"></div></a></figure><hr><h2 id="%F0%9F%A7%AE-tutorials">&#x1F9EE; Tutorials</h2><p>You cannot use Pip for installing Python packages in Ubuntu 23.10. At least not directly. Here&apos;s why and what you can do about it.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/externally-managed-environment/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Externally Managed Environment Error With Pip in Ubuntu 23.10</div><div class="kg-bookmark-description">Seeing an &#x201C;externally managed environment&#x201D; error while using Pip in Ubuntu 23.10? Here&#x2019;s what you can do about this error.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/handling-externally-managed-env-pip.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"></div></a></figure><p>When building a new system, stress testing the CPU is a way to check your processor&apos;s performance capabilities under heavy load.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/stress-test-cpu-linux/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How to Stress Test CPU in Linux</div><div class="kg-bookmark-description">Want to stress test your CPU in Linux? Here&#x2019;s how you can do it effortlessly.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Sagar Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/cpu-stress-test.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"></div></a></figure><p>Brave has the picture-in-picture mode. It&apos;s just not obvious like Firefox. Here&apos;s how to use it.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/picture-in-picture-brave/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How to Use Picture in Picture Mode in Brave Browser</div><div class="kg-bookmark-description">Brave has picture-in-picture mode but it&#x2019;s so hidden that you feel like there is no PIP support at all. Here&#x2019;s how to enable and use it.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2022/09/enable-pip-mode-in-brave.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"></div></a></figure><h2 id="%F0%9F%93%B9-what-we-are-watching">&#x1F4F9; What we are watching</h2><p>2 videos in 2 weeks... now we are rolling &#x26F9;&#xFE0F;</p><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/lZ_0NSJHa0k?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="10 ASCII Games You Can Play in Linux Terminal [For Retro Arcade Game Lovers]"></iframe></figure><hr><h2 id="%E2%9C%A8-application-highlights">&#x2728; Application highlights</h2><p>VidCutter is a nifty tool for trimming and merging videos on Linux. That&apos;s it. No fancy video editing features here.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/vidcutter-video-editor-linux/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Easily Trim Videos With VidCutter in Linux</div><div class="kg-bookmark-description">Learn how to install and use VidCutter, a simple open source tool for trimming and merging videos in Linux.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/vidcutter-video-trimmer-linux-app.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"></div></a></figure><hr><h2 id="%F0%9F%92%A1quick-linux-tip">&#x1F4A1;Quick Linux tip</h2><p>The usual way of hiding files from normal view is to add dot (.) before the filenames.</p><p>In Nautilus and perhaps some other file managers, you can <a href="https://itsfoss.com/hide-files-folders-linux/">hide multiple files and folders without renaming them</a>.</p><p>All you have to do is to create a text file named <code>.hidden</code> and add the names of the folders and files you want to hide to this file.</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/image-13.png" class="kg-image" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff" loading="lazy" width="795" height="417" srcset="https://itsfoss.com/content/images/size/w600/2023/05/image-13.png 600w, https://itsfoss.com/content/images/2023/05/image-13.png 795w" sizes="(min-width: 720px) 720px"></figure><p>Now, <strong>close your file explorer and start it again</strong>. The files and directories mentioned in the <code>.hidden</code> file will be hidden and can only be viewed with Ctrl+H keys.</p><hr><h2 id="%F0%9F%A7%A9-puzzle-for-pro-members-only">&#x1F9E9; Puzzle (for Pro members only)</h2><p>This week you have scrambled e&#x336;g&#x336;g&#x336;s&#x336; words. The puzzle is composed of various Linux-related terms and applications.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/puzzle/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Puzzle of The Week: Scrambled Words Puzzle #1</div><div class="kg-bookmark-description">Exercise those &#x2018;little gray cells&#x2019; of yours and solve this puzzle.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/puzzle-of-the-week.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"></div></a></figure><hr><h2 id="%F0%9F%9B%8D%EF%B8%8F-interesting-offer">&#x1F6CD;&#xFE0F; Interesting offer</h2><p>Unleash the creative power of Blender, the free and open-source software tool for 3D artists, with this bundle of books from Packt.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.humblebundle.com/books/blender-animation-and-games-packt-books?partner=itsfoss&amp;ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Humble Tech Book Bundle: Blender Animation and Games by Packt</div><div class="kg-bookmark-description">We&#x2019;ve teamed up with Packt for our newest bundle. Get books like Game Development with Blender and Godot. Plus, pay what you want &amp; support charity!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cdn.humblebundle.com/static/hashed/03df0490a53d595fd930f9fff52038366d60a05d.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"><span class="kg-bookmark-author">Humble Bundle</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://hb.imgix.net/7f272b3fc868b9d190ad8e9da7031f7c69b960d3.jpg?auto=compress,format&amp;h=630&amp;w=1200&amp;s=1ea5184912b92c0fa0ffd93b722adbea" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"></div></a></figure><hr><h2 id="%F0%9F%A4%A3-meme-of-the-week">&#x1F923; Meme of the week</h2><p>Linux can be very welcoming to new users!</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/wholesomm.png" class="kg-image" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff" loading="lazy" width="1080" height="1080" srcset="https://itsfoss.com/content/images/size/w600/2023/05/wholesomm.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/wholesomm.png 1000w, https://itsfoss.com/content/images/2023/05/wholesomm.png 1080w" sizes="(min-width: 720px) 720px"></figure><hr><h2 id="%F0%9F%97%93%EF%B8%8F-tech-trivia">&#x1F5D3;&#xFE0F; Tech Trivia</h2><p>On May 24, 1844, Samuel Morse sent the first telegraph over a line from Washington, D.C. to Baltimore. He sent &apos;What hath God wrought&apos; to his partner Alfred Vail, who retransmitted the same message back to Morse. </p><p>The famous Morse code is named after Samuel Morse.</p><hr><h2 id="%F0%9F%86%95-fossverse-updates">&#x1F195; FOSSverse updates</h2><p>Now the Pro members get honor badges displayed with their names in both Community and the Comments sections.</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://itsfoss.com/content/images/2023/05/itsfoss-pro-member-badge.png" width="515" height="117" loading="lazy" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"></div><div class="kg-gallery-image"><img src="https://itsfoss.com/content/images/2023/05/itsfoss-pro-member-badges.png" width="421" height="114" loading="lazy" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"></div></div></div><figcaption>Pro members get special badges in comments and community</figcaption></figure><p>I guess that gives you one more reason to <a href="https://itsfoss.com/signup/">upgrade to It&apos;s FOSS Pro membership</a> &#x1F609; </p><hr><h2 id="%E2%9D%A4%EF%B8%8F-enjoying-foss-weekly">&#x2764;&#xFE0F; Enjoying FOSS Weekly?</h2><p><strong>Forward it to Linux-using friends</strong> and encourage them to subscribe (hint: <a href="https://itsfoss.com/signup/">it&apos;s here</a>).</p><p><a href="https://itsfoss.com/#/portal/signup">Become a Pro member</a> and show your support &#x1F64F;</p><p><strong>Something else?</strong> Share it with me by pressing the reply button.</p><p>Keep on Linux-ing with It&apos;s FOSS :)</p>]]></content:encoded></item><item><title><![CDATA[How to Stress Test CPU in Linux]]></title><description><![CDATA[Want to stress test your CPU in Linux? Here's how you can do it effortlessly.]]></description><link>https://itsfoss.com/stress-test-cpu-linux/</link><guid isPermaLink="false">6461c03c1679c31c16e80895</guid><category><![CDATA[Tutorial]]></category><dc:creator><![CDATA[Sagar Sharma]]></dc:creator><pubDate>Wed, 24 May 2023 05:51:32 GMT</pubDate><media:content url="https://itsfoss.com/content/images/2023/05/cpu-stress-test.png" medium="image"/><content:encoded><![CDATA[<img src="https://itsfoss.com/content/images/2023/05/cpu-stress-test.png" alt="How to Stress Test CPU in Linux"><p>Stress testing your CPU is one of the best ways to check your processor&apos;s performance capabilities under heavy load and the system&apos;s temperature when that happens.</p><p>When you stress test the CPU, you can monitor the system&apos;s resources to see how they behave with the CPU at its peak workload. While the performance will not change compared to what the processor is capable of, the temperature may affect its operation if it is not well-equipped.</p><p><strong>Stress testing is essential for enthusiasts when building a new system</strong>, especially if you plan to overclock the CPU later.</p><p>For instance, if your CPU gets too hot too quickly during the stress test. You need a better cooling solution by changing the CPU cooler, using a better airflow cabinet, etc.</p><p>Now that you have an idea about the benefits, I will walk you through the following ways to stress test the CPU in Linux:</p><ul><li><strong>Using GtkStressTesting (GUI method)</strong></li><li><strong>Using stress and s-tui utility (CLI method)</strong></li></ul><p>So let&apos;s start with the first one.</p><h2 id="stress-test-linux-cpu-using-gui-method-%F0%9F%96%A5%EF%B8%8F">Stress test Linux CPU using GUI method &#x1F5A5;&#xFE0F;</h2><p>If you prefer using a GUI solution over the terminal, I have just the easiest method for you to stress-test your system. &#xA0; </p><p>There is a GUI utility <strong>GtkStressTesting, </strong>which helps you stress test and monitor temperature simultaneously. It provides various presets to stress-test the system and provides an ability to choose how many cores you want to work with during the test.</p><div class="kg-card kg-callout-card kg-callout-card-red"><div class="kg-callout-emoji">&#x1F6A7;</div><div class="kg-callout-text">This tool is no more actively maintained on <a href="https://gitlab.com/leinardi/gst?ref=itsfoss.com">GitLab</a>. But it works as expected.</div></div><p>GtkStressTesting is available as a Flatpak, so if you haven&apos;t already enabled Flatpak support, refer to our <a href="https://itsfoss.com/flatpak-guide/">Flatpak setup guide</a>.</p><p>Once you have enabled Flatpak support, the GtkStressTesting utility can be installed using the following via the terminal (if not software center)</p><pre><code>flatpak install flathub com.leinardi.gst</code></pre><p>After the installation, you can start the GtkStressTesting utility from the system menu. </p><p>Here, I would recommend you click on the <code>Read all</code> button and enter the sudo password so the utility can fetch all the information of your system:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/Allow-read-all-premissions-for-GtkStressTesting.png" class="kg-image" alt="How to Stress Test CPU in Linux" loading="lazy" width="1423" height="815" srcset="https://itsfoss.com/content/images/size/w600/2023/05/Allow-read-all-premissions-for-GtkStressTesting.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/Allow-read-all-premissions-for-GtkStressTesting.png 1000w, https://itsfoss.com/content/images/2023/05/Allow-read-all-premissions-for-GtkStressTesting.png 1423w" sizes="(min-width: 720px) 720px"></figure><p>From here, you can choose how long you want to stress test your system (you can always stop the process if the temp gets too high) and choose the max number available in the <code>Workers: Auto</code>.</p><p>I went for <strong>12 cores and 5 mins of stress testing</strong>:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/05/choose-time-and-cores-to-stress-test-the-CPU-in-linux.png" class="kg-image" alt="How to Stress Test CPU in Linux" loading="lazy" width="1173" height="670" srcset="https://itsfoss.com/content/images/size/w600/2023/05/choose-time-and-cores-to-stress-test-the-CPU-in-linux.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/choose-time-and-cores-to-stress-test-the-CPU-in-linux.png 1000w, https://itsfoss.com/content/images/2023/05/choose-time-and-cores-to-stress-test-the-CPU-in-linux.png 1173w" sizes="(min-width: 720px) 720px"><figcaption>(Click to enlarge image)</figcaption></figure><p>Once you are done, click on the start button and monitor the temperatures, and if they reach beyond 90, stop the stress testing.</p><p>My system went to 85 max during stress testing:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/stress-test-Linux-CPU-usng-GUI-1.png" class="kg-image" alt="How to Stress Test CPU in Linux" loading="lazy" width="1308" height="1052" srcset="https://itsfoss.com/content/images/size/w600/2023/05/stress-test-Linux-CPU-usng-GUI-1.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/stress-test-Linux-CPU-usng-GUI-1.png 1000w, https://itsfoss.com/content/images/2023/05/stress-test-Linux-CPU-usng-GUI-1.png 1308w" sizes="(min-width: 720px) 720px"></figure><p>Pretty easy way to stress test the CPU. Isn&apos;t it? &#x1F609;</p><h2 id="stress-test-linux-cpu-using-the-terminal">Stress test Linux CPU using the Terminal </h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/stress-test.gif" class="kg-image" alt="How to Stress Test CPU in Linux" loading="lazy" width="1042" height="642" srcset="https://itsfoss.com/content/images/size/w600/2023/05/stress-test.gif 600w, https://itsfoss.com/content/images/size/w1000/2023/05/stress-test.gif 1000w, https://itsfoss.com/content/images/2023/05/stress-test.gif 1042w" sizes="(min-width: 720px) 720px"></figure><p>You&apos;d need two utilities to stress test using a terminal: <strong><a href="https://itsfoss.com/stress-terminal-ui/">s-tui</a></strong> and <strong>stress</strong>. </p><p>You can get these tools installed from the default repositories or <a href="https://itsfoss.com/install-pip-ubuntu/">using pip</a>. It is easier with default repositories if you are okay with using an older version of the tool (a tad bit).</p><p>Here are the commands that will help you install them on popular Linux distros:</p><p><strong>For Ubuntu/Debian base:</strong></p><pre><code>sudo apt install s-tui stress </code></pre><p><strong>For Arch Linux:</strong></p><pre><code>sudo pacman -S s-tui stress</code></pre><p><strong>For Fedora/RHEL:</strong></p><pre><code>sudo dnf install s-tui stress</code></pre><p><strong>If you want to use pip </strong>for the latest version, here is the command:</p><pre><code>pip install s-tui --user</code></pre><p>Once you are done with the installation, launch the s-tui utility in the terminal:</p><pre><code>s-tui</code></pre><p>And you would be met with the following:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/monitor-clock-speed--load-and-CPU-utilization-in-Linux.png" class="kg-image" alt="How to Stress Test CPU in Linux" loading="lazy" width="1803" height="1006" srcset="https://itsfoss.com/content/images/size/w600/2023/05/monitor-clock-speed--load-and-CPU-utilization-in-Linux.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/monitor-clock-speed--load-and-CPU-utilization-in-Linux.png 1000w, https://itsfoss.com/content/images/size/w1600/2023/05/monitor-clock-speed--load-and-CPU-utilization-in-Linux.png 1600w, https://itsfoss.com/content/images/2023/05/monitor-clock-speed--load-and-CPU-utilization-in-Linux.png 1803w" sizes="(min-width: 720px) 720px"></figure><p>You can use the mouse or keyboard arrow keys to navigate through the menu, so click on the <code>Stres options</code> and choose how long you want to stress test the system<strong> (in seconds):</strong></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/05/set-time-for-how-long-to-stress-test-CPU-in-Linux.png" class="kg-image" alt="How to Stress Test CPU in Linux" loading="lazy" width="1683" height="886" srcset="https://itsfoss.com/content/images/size/w600/2023/05/set-time-for-how-long-to-stress-test-CPU-in-Linux.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/set-time-for-how-long-to-stress-test-CPU-in-Linux.png 1000w, https://itsfoss.com/content/images/size/w1600/2023/05/set-time-for-how-long-to-stress-test-CPU-in-Linux.png 1600w, https://itsfoss.com/content/images/2023/05/set-time-for-how-long-to-stress-test-CPU-in-Linux.png 1683w" sizes="(min-width: 720px) 720px"><figcaption>(Click to enlarge image)</figcaption></figure><p>And finally, select the <code>Stress</code> option, and it will start the stress testing for a specified period:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/05/stress-test-Linux-CPU-using-terminal.png" class="kg-image" alt="How to Stress Test CPU in Linux" loading="lazy" width="1578" height="983" srcset="https://itsfoss.com/content/images/size/w600/2023/05/stress-test-Linux-CPU-using-terminal.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/stress-test-Linux-CPU-using-terminal.png 1000w, https://itsfoss.com/content/images/2023/05/stress-test-Linux-CPU-using-terminal.png 1578w" sizes="(min-width: 720px) 720px"><figcaption>(Click to enlarge image)</figcaption></figure><p>And if the temperature gets out of control, you can click on the <code>Quit</code> button to stop the stress test manually. Additionally, if you want to store the data in the <code>.csv</code> format, the tool gives you the feature.</p><p>To store the data, all you have to do is append the <code>-c</code> flag while starting the s-tui utility as shown:</p><pre><code>s-tui -c</code></pre><p>And if you want to save the file with a name to your liking, you&apos;d have to use the <code>--csv-file</code> flag as shown:</p><pre><code>s-tui --csv-file &lt;name of file&gt;.csv</code></pre><p>For example, here, I named the file <code>Hello.scv</code>:</p><pre><code>s-tui --csv-file Hello.scv</code></pre><p>You can explore more about the tool on its <a href="https://github.com/amanusk/s-tui?ref=itsfoss.com">GitHub page</a>.</p><p><strong>Suggested Read &#x1F4D6;</strong></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/linux-system-monitoring-tools/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">7 System Monitoring Tools for Linux That are Better Than Top</div><div class="kg-bookmark-description">Top command is good but there are better alternatives. Take a look at these system monitoring tools that are similar to top, but better than it.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="How to Stress Test CPU in Linux"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2020/08/system-monitoring-tools-linux.jpg" alt="How to Stress Test CPU in Linux"></div></a></figure><h2 id="happy-system-happy-life-%F0%9F%98%81">Happy System, Happy Life &#x1F601;</h2><p>Not every user realizes the benefits of a stress test. Sometimes it scares them off with the idea of their system reaching its limits for no reason.</p><p>However, the test will help you quickly evaluate and monitor your system&apos;s condition. Things like <strong>abnormal temperature spikes</strong> and CPU being unable to handle what it is should help you identify hardware issues early on.</p><p>In either case, you can refer to our temperature monitoring resource if you want to <a href="https://itsfoss.com/check-laptop-cpu-temperature-ubuntu/">keep your CPU monitor in check</a> without performing stress tests.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/check-laptop-cpu-temperature-ubuntu/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How To Check CPU Temperature in Ubuntu Linux</div><div class="kg-bookmark-description">This quick tutorial shows you how to check the CPU temperature on Ubuntu and other Linux distributions with a help of a tool called Psensor. Overheating of laptops is a common issue one faces these days. Monitoring hardware temperature&#xA0;may help you diagnose why your laptop is getting overh&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="How to Stress Test CPU in Linux"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2015/05/check-cpu-temp.jpeg" alt="How to Stress Test CPU in Linux"></div></a></figure><p>You can also check out some of the <a href="https://itsfoss.com/linux-system-monitoring-tools/">system monitoring tools</a> or <a href="https://itsfoss.com/htop-alternatives/">htop alternatives</a> for Linux to keep an eye on your system resources.</p><p>&#x1F4AC; <em>What do you think about stress testing your CPU in Linux? Do you think we should do it? Share your thoughts on it in the comments below.</em></p>]]></content:encoded></item><item><title><![CDATA[Handling Externally Managed Environment Error With Pip in Ubuntu 23.04]]></title><description><![CDATA[Seeing an "externally managed environment" error while using Pip in Ubuntu 23.04? Here's what you can do about this error.]]></description><link>https://itsfoss.com/externally-managed-environment/</link><guid isPermaLink="false">646b63a486dbb1af912316d1</guid><category><![CDATA[Troubleshoot]]></category><dc:creator><![CDATA[Abhishek Prakash]]></dc:creator><pubDate>Tue, 23 May 2023 06:59:09 GMT</pubDate><media:content url="https://itsfoss.com/content/images/2023/05/handling-externally-managed-env-pip.png" medium="image"/><content:encoded><![CDATA[<img src="https://itsfoss.com/content/images/2023/05/handling-externally-managed-env-pip.png" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04"><p>I recently upgraded to Ubuntu 23.04. Things are mostly smooth. However, recently I encountered an issue that was not present in the previous version.</p><p>I was trying to install a package using Pip, a command line based Python package manager. It works great usually but it threw an error this time:</p><p><strong>error: externally-managed-environment</strong></p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/externally-managed-environment.png" class="kg-image" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04" loading="lazy" width="928" height="679" srcset="https://itsfoss.com/content/images/size/w600/2023/05/externally-managed-environment.png 600w, https://itsfoss.com/content/images/2023/05/externally-managed-environment.png 928w" sizes="(min-width: 720px) 720px"></figure><p>Here&apos;s the complete error message if you want to read it:</p><pre><code>&#xD7; This environment is externally managed
&#x2570;&#x2500;&gt; To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
</code></pre><p>And if you read the details, you&apos;ll understand why you see this error.</p><h2 id="reason-behind-the-externally-managed-environment-error">Reason behind the &apos;Externally Managed Environment&apos; Error</h2><p>Ubuntu 23.04, Fedora 38 and probably other recent distribution versions are implementing this enhancement on the use of Python packages.</p><p>The change has been done to avoid the &quot;conflict between OS package managers and Python-specific package management tools like pip. These conflicts include both Python-level API incompatibilities and conflicts over file ownership.&quot;</p><p>More details can be find on <a href="https://peps.python.org/pep-0668?ref=itsfoss.com">this page</a>. </p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://peps.python.org/pep-0668?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">PEP 668 &#x2013; Marking Python base environments as &#x201C;externally managed&#x201D; | peps.python.org</div><div class="kg-bookmark-description">Python Enhancement Proposals (PEPs)</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://peps.python.org/_static/py.png" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04"><span class="kg-bookmark-author">peps.python.org</span></div></div></a></figure><h2 id="what-are-your-options">What are your options?</h2><p>You can do three things when you try to install a Python package and see this error. </p><ol><li>Install the native package</li><li>Create virtual environments in Python</li><li>Use Pipx (recommended)</li></ol><p>Let&apos;s see them one by one.</p><h3 id="option-1-go-for-native-package">Option 1: Go for native package</h3><p>I understand that Pip gives a comfortable way of installing Python packages. However, some Python applications are also packaged as APT or other native packages. Search for it in your distribution&apos;s repositories and install it from there if it is available.</p><p>For example, I was trying to install WoeUSB-ng. If I was using Arch Linux, the same package is available from AUR.</p><h3 id="option-2-use-python-virtual-environment">Option 2: Use Python virtual environment</h3><p>If you must use a Python package, you have to isolate it in <a href="https://itsfoss.com/python-setup-linux/">Python virtual environment</a>.</p><p>With the help of virtual environments, you can use different versions of package dependencies and Python. This way, you avoid any conflicts between the packages.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4CB;</div><div class="kg-callout-text">This method is suitable for software developers and programmers working on Python projects.</div></div><p>Let&apos;s quickly see how you do it. Usually, Python should already have the tool for creating virtual environments.</p><p>Use the command below to create a virtual environment for your project. Replace <code>project_name</code> with your project&apos;s name, of course.</p><pre><code>python3 -m venv .venv/project_name</code></pre><p><strong>If you see venv errors related</strong>, you may have to install it.</p><pre><code>sudo apt install python3-venv
</code></pre><p>Now, you&apos;ll see a directory named <code>.env</code> in your home directory and inside the .env, you&apos;ll have the project directory. &#xA0;</p><p>Here&apos;s the exciting part. Each project directory will have its own copy of Python and Pip in it. </p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/python-virtual-env-example.png" class="kg-image" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04" loading="lazy" width="872" height="366" srcset="https://itsfoss.com/content/images/size/w600/2023/05/python-virtual-env-example.png 600w, https://itsfoss.com/content/images/2023/05/python-virtual-env-example.png 872w" sizes="(min-width: 720px) 720px"></figure><p>That&apos;s your virtual Python environment. You can use this &apos;local binary&apos; for installing Python packages using Pip inside this virtual environment like this:</p><pre><code>.venv/project_name/bin/pip install package_name</code></pre><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/use-pip-in-python-virtual-environment.png" class="kg-image" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04" loading="lazy" width="872" height="462" srcset="https://itsfoss.com/content/images/size/w600/2023/05/use-pip-in-python-virtual-environment.png 600w, https://itsfoss.com/content/images/2023/05/use-pip-in-python-virtual-environment.png 872w" sizes="(min-width: 720px) 720px"></figure><p>Remember that the installed Python package won&apos;t be available system wide. </p><p>This was only a brief example of virtual environments in Python. Here&apos;s a detailed guide if you want to learn more on it.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://realpython.com/python-virtual-environments-a-primer/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Python Virtual Environments: A Primer &#x2013; Real Python</div><div class="kg-bookmark-description">In this tutorial, you&#x2019;ll learn how to use a Python virtual environment to manage your Python projects. You&#x2019;ll also dive deep into the structure of virtual environments built using the venv module, as well as the reasoning behind using virtual environments.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://realpython.com/static/favicon.68cbf4197b0c.png" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04"><span class="kg-bookmark-author">Real Python</span><span class="kg-bookmark-publisher">Real Python</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://files.realpython.com/media/Python-Virtual-Environments_Watermarked.4c787192d42f.jpg" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04"></div></a></figure><h3 id="3-use-pipx-tool-recommended">3. Use Pipx tool (recommended)</h3><p>What you saw above involves manual work. Pipx automates it. </p><p>It automatically creates a new virtual environment for each app you install. Not only that. It also creates a link to it in <code>.local/bin</code>. This way, the user who installed the package can run it from anywhere in the command line.</p><p>I guess that&apos;s what most desktop Linux users want here.</p><p>Install pipx on Ubuntu using this command:</p><pre><code>sudo apt install pipx</code></pre><p>It will probably install a huge number of dependencies:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/install-pipx.png" class="kg-image" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04" loading="lazy" width="1198" height="763" srcset="https://itsfoss.com/content/images/size/w600/2023/05/install-pipx.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/install-pipx.png 1000w, https://itsfoss.com/content/images/2023/05/install-pipx.png 1198w" sizes="(min-width: 720px) 720px"></figure><p>Now <a href="https://itsfoss.com/add-directory-to-path-linux/">add it to the PATH</a> so that you can run from anywhere.</p><pre><code>pipx ensurepath
</code></pre><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/pipx-ensurepath.png" class="kg-image" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04" loading="lazy" width="996" height="409" srcset="https://itsfoss.com/content/images/size/w600/2023/05/pipx-ensurepath.png 600w, https://itsfoss.com/content/images/2023/05/pipx-ensurepath.png 996w" sizes="(min-width: 720px) 720px"></figure><div class="kg-card kg-callout-card kg-callout-card-red"><div class="kg-callout-emoji">&#x270B;</div><div class="kg-callout-text">You must close the terminal and log back in for the changes to occur.</div></div><p>Great! Now you can install Python packages using Pipx instead of Pip:</p><pre><code>pipx install package_name</code></pre><p>Here&apos;s an example.</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/pipx-install-example.png" class="kg-image" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04" loading="lazy" width="858" height="330" srcset="https://itsfoss.com/content/images/size/w600/2023/05/pipx-install-example.png 600w, https://itsfoss.com/content/images/2023/05/pipx-install-example.png 858w" sizes="(min-width: 720px) 720px"></figure><div class="kg-card kg-callout-card kg-callout-card-green"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">To remove a package installed with pipx, use <code>pipx uninstall package_name</code> command.</div></div><h2 id="conclusion">Conclusion</h2><p>Pip is a good tool for getting Python packages on the system. I think it was always meant for Python programmers, not for the end users. Clearly, it cannot be used as a replacement for the native distribution packages and the Python devs have made it clear.</p><p>The good thing is that alternatives exist for both programmers and end users.</p><p>I hope this tutorial helped you understand and overcome the externally-managed-environment error with Pip in Linux.</p><p>Please let me know if you have questions or suggestions.</p>]]></content:encoded></item><item><title><![CDATA[FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More]]></title><description><![CDATA[Introducing FOSSverse, concluding Rust Basics series and looking at the upcoming KDE Plasma 6 features.]]></description><link>https://itsfoss.com/newsletter/foss-weekly-23-20/</link><guid isPermaLink="false">6465a1e35859950507d48347</guid><category><![CDATA[Newsletter]]></category><dc:creator><![CDATA[Abhishek Prakash]]></dc:creator><pubDate>Thu, 18 May 2023 07:10:03 GMT</pubDate><media:content url="https://itsfoss.com/content/images/2023/05/foss-weekly-23-20.png" medium="image"/><content:encoded><![CDATA[<img src="https://itsfoss.com/content/images/2023/05/foss-weekly-23-20.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"><p>FOSSverse? What&apos;s that?</p><p>It&apos;s basically the idea of unifying all things It&apos;s FOSS with a single member account. When logged in to It&apos;s FOSS, you can automatically log in to the comment section with the same profile. That was the first part.</p><p>The same member account is now valid on the <a href="https://itsfoss.community/?ref=itsfoss.com">It&apos;s FOSS Community</a>. You don&apos;t have to manage a separate account for the Community anymore. Pro members also get &apos;Pro&apos; badge on their profile in the Community.</p><p>Still not part of the It&apos;s FOSS Community? That&apos;s the place where you can ask your questions and clear your doubts. <a href="https://itsfoss.community/?ref=itsfoss.com">Do join</a>.</p><p>In the last step towards FOSSverse, the same member account will also be valid on It&apos;s FOSS News. Pro member accounts are already synced between the portals.</p><p>Eventually, you will have the same identity across the FOSSverse (all It&apos;s FOSS web portals). I am super excited about it &#x1F929; and I welcome your feedback on this idea.</p><p><strong>&#x1F4AC; Let&apos;s see what you have in this edition of FOSS Weekly:</strong></p><ul><li>First look at Fedora-based risiOS Linux distro</li><li>Concluding the Rust series</li><li>Linux Mint update guide</li><li>And other Linux news, videos, puzzles and, of course, memes!</li></ul><hr><h2 id="%F0%9F%93%B0-linux-news">&#x1F4F0; Linux News</h2><ul><li>GNOME is <a href="https://news.itsfoss.com/gnome-terminal-console/?ref=itsfoss.com">considering to bring back the old Terminal application</a> to replace the new Console.</li><li>At the same time, GNOME is all <a href="https://news.itsfoss.com/loupe-image-viewer/?ref=itsfoss.com">set to replace the default image viewer</a> with the new Loupe app.</li><li><a href="https://news.itsfoss.com/ubuntu-riscv-visionfive-2/?ref=itsfoss.com">Ubuntu is now available on StarFive VisionFive 2</a>, a high-performance RISC-V single-board computer.</li><li>Ubuntu 23.10 is bringing the <a href="https://news.itsfoss.com/ubuntu-23-10-ppa/?ref=itsfoss.com">much-required change in the PPA mechanism</a>.</li></ul><p>The upcoming KDE Plasma 6 has some interesting features in the bag.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/kde-plasma-6-dev/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">KDE Plasma 6 Plans Revealed: Includes 5 New Exciting Default Settings</div><div class="kg-bookmark-description">KDE Plasma 6 sounds impressive. Learn what&#x2019;s in store for you.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"><span class="kg-bookmark-author">It&apos;s FOSS News</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://news.itsfoss.com/content/images/2023/05/kde-plasma-6-defaults.jpg" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"></div></a></figure><hr><h2 id="%F0%9F%A7%A0-what-we%E2%80%99re-thinking-about">&#x1F9E0; What we&#x2019;re thinking about</h2><p>Modern problems require modern solutions (not in the meme sense).</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.phoronix.com/news/Asahi-Linux-Stop-X.Org?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Asahi Linux To Users: Please Stop Using X.Org</div><div class="kg-bookmark-description">Asahi Linux lead developer Hector Martin issued a lengthy post encouraging users of this Apple Silicon focused Linux distribution to stop using X.Org as Wayland is the future.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.phoronix.com/android-chrome-192x192.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"><span class="kg-bookmark-author">Phoronix</span><span class="kg-bookmark-publisher">Michael Larabel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.phoronix.net/image.php?id=apple-m2-december&amp;image=m2_december_1" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"></div></a></figure><hr><h2 id="%F0%9F%9B%8D%EF%B8%8F-interesting-offers-for-linux-users">&#x1F6CD;&#xFE0F; Interesting offers for Linux users</h2><p>Linux Foundation is running a limited-time offer which should be helpful for people looking to make a career in Linux and DevOps. Check the <a href="https://shareasale.com/r.cfm?b=2339200&amp;u=747593&amp;m=59485&amp;urllink=&amp;afftrack=&amp;ref=itsfoss.com">details here</a>.</p><figure class="kg-card kg-image-card kg-card-hascaption"><a href="https://shareasale.com/r.cfm?b=2339200&amp;u=747593&amp;m=59485&amp;urllink=&amp;afftrack=&amp;ref=itsfoss.com"><img src="https://itsfoss.com/content/images/2023/05/Training_Promo-Graphics_May23_1200x62_01.png" class="kg-image" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More" loading="lazy" width="1200" height="628" srcset="https://itsfoss.com/content/images/size/w600/2023/05/Training_Promo-Graphics_May23_1200x62_01.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/Training_Promo-Graphics_May23_1200x62_01.png 1000w, https://itsfoss.com/content/images/2023/05/Training_Promo-Graphics_May23_1200x62_01.png 1200w" sizes="(min-width: 720px) 720px"></a><figcaption>Affiliate Link</figcaption></figure><p>The folks over at No Starch Press have yet another useful bundle, this time for learning Python programming. Be sure to check it out; a portion of the proceeds go to the <a href="https://www.python.org/psf-landing/?ref=itsfoss.com">Python Software Foundation</a>.</p><figure class="kg-card kg-bookmark-card kg-card-hascaption"><a class="kg-bookmark-container" href="https://www.humblebundle.com/books/python-no-starch-books?partner=itsfoss&amp;ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Humble Tech Book Bundle: Python by No Starch</div><div class="kg-bookmark-description">We&#x2019;ve teamed up with No Starch Press for our newest bundle. Get books like Python for Kids and Beyond the Basic Stuff with Python. Plus, pay what you want &amp; support charity!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cdn.humblebundle.com/static/hashed/03df0490a53d595fd930f9fff52038366d60a05d.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"><span class="kg-bookmark-author">Humble Bundle</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://hb.imgix.net/75e1c3e16619e8c9f5ef6ddb93f3bbc0c3b098e1.png?auto=compress,format&amp;h=630&amp;w=1200&amp;s=d4c213287d9081c0d63c17f1eef0f4a8" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"></div></a><figcaption>Last 4 days to get it</figcaption></figure><hr><h2 id="%F0%9F%A7%AE-tutorials">&#x1F9EE; Tutorials</h2><p>The Rust Basics Series comes to an end. The last chapter consists of a relatively complex program that covers most of the concepts you learned in the earlier chapters of the series.</p><p>A new Rust series for intermediate users will be published after a pause. Stay Rusty.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/milestone-rust-program/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Rust Basics Series #8: Write the Milestone Rust Program</div><div class="kg-bookmark-description">In the final chapter of the Rust Basics Series, recall the concepts you learned and write a somewhat complex Rust program.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Pratham Patel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/sample-program-in-rust.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"></div></a></figure><p>While the Updater tool is straightforward, it may still seem overwhelming to absolutely new Linux Mint users. And hence this guide.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/linux-mint-update/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Beginner&#x2019;s Guide to System Updates in Linux Mint</div><div class="kg-bookmark-description">New to Linux Mint? It has an excellent system updater tool. Learn about this tool and the best practices you should follow.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Sagar Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/system-updates-in-linux-mint.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"></div></a></figure><p>On a distrohopping spree? Be good and avoid these &apos;sins&apos;.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/distrohopping-issues/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">7 Deadly Sins of Linux Distrohopping</div><div class="kg-bookmark-description">What are you doing wrong with distro-hopping? Can you do it better? Yes, you can. Here, we tell you how.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/7-deadly-sins-of-distrohopping.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"></div></a></figure><h2 id="%F0%9F%93%B9-what-we-are-watching">&#x1F4F9; What we are watching</h2><p>Or more like what we are showing because we have a new video on our YouTube channel after a long time :)</p><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/DpFU4MRBCm4?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="Rhino Linux review"></iframe></figure><hr><h2 id="%E2%9C%A8-project-highlights">&#x2728; Project highlights</h2><p>New week, new Linux distro. It&apos;s not that I try to introduce you to a new distro each week. It just happens involuntarily. Trust me &#x1F609;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/risi-os/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">risiOS: An Easy-to-Use Fedora-based Linux Distribution</div><div class="kg-bookmark-description">Are you a fan of Fedora? You might like risiOS for its tweaks and out-of-the-box utilities.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"><span class="kg-bookmark-author">It&apos;s FOSS News</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://news.itsfoss.com/content/images/2023/05/risiOS-first-look.jpg" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"></div></a></figure><p>Just a reminder that a new reminder app is in works &#x1F638;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/reminders/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Reminders: A Nifty Open-Source Linux App To Help You Get Things Done</div><div class="kg-bookmark-description">You&#x2019;re doing the best you can, but reminders can still help!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"><span class="kg-bookmark-author">It&apos;s FOSS News</span><span class="kg-bookmark-publisher">Sourav Rudra</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://news.itsfoss.com/content/images/2023/05/reminders-first-look.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"></div></a></figure><hr><h2 id="%F0%9F%A4%A3-meme-of-the-week">&#x1F923; Meme of the week</h2><p>The meme complements the Distrohopping article :)</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/memes-2.png" class="kg-image" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More" loading="lazy" width="1080" height="1080" srcset="https://itsfoss.com/content/images/size/w600/2023/05/memes-2.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/memes-2.png 1000w, https://itsfoss.com/content/images/2023/05/memes-2.png 1080w" sizes="(min-width: 720px) 720px"></figure><hr><h2 id="%F0%9F%97%93%EF%B8%8F-tech-trivia">&#x1F5D3;&#xFE0F; Tech Trivia</h2><p>On May 13, 1980, Digital Equipment Corporation, Intel, and Xerox jointly announced the Ethernet network specification. Ethernet is still the predominant networking standard.</p><hr><h2 id="%F0%9F%A7%A9-puzzle-for-pro-members-only">&#x1F9E9; Puzzle (for Pro members only)</h2><p>A new crossword that challenges you to identify computing legends.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/puzzle/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Puzzle of The Week</div><div class="kg-bookmark-description">Exercise those &#x2018;little gray cells&#x2019; of yours and solve this puzzle.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/puzzle-of-the-week.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"></div></a></figure><hr><h2 id="%E2%9D%A4%EF%B8%8F-enjoying-foss-weekly">&#x2764;&#xFE0F; Enjoying FOSS Weekly?</h2><p><strong>Forward it to Linux-using friends</strong> and encourage them to subscribe (hint: <a href="https://itsfoss.com/signup/">it&apos;s here</a>).</p><p>Become a Pro member and show your support &#x1F64F;</p><p>Share the newsletter and the articles in Linux communities on Reddit and other platforms.</p><p><strong>Something else?</strong> Share it with me by pressing the reply button.</p><p>Enjoy FOSSverse :)</p>]]></content:encoded></item><item><title><![CDATA[Beginner's Guide to System Updates in Linux Mint]]></title><description><![CDATA[New to Linux Mint? It has an excellent system updater tool. Learn about this tool and the best practices you should follow.]]></description><link>https://itsfoss.com/linux-mint-update/</link><guid isPermaLink="false">645dbde969df0b089126721d</guid><category><![CDATA[Linux Mint]]></category><dc:creator><![CDATA[Sagar Sharma]]></dc:creator><pubDate>Tue, 16 May 2023 15:36:20 GMT</pubDate><media:content url="https://itsfoss.com/content/images/2023/05/system-updates-in-linux-mint.png" medium="image"/><content:encoded><![CDATA[<img src="https://itsfoss.com/content/images/2023/05/system-updates-in-linux-mint.png" alt="Beginner&apos;s Guide to System Updates in Linux Mint"><p>Keeping your system updated is essential for any operating system. Linux Mint is no different.</p><p>Linux Mint has a robust update system. It provides timely security patches for the kernel and other software packages. That&apos;s not it. You also get updates on the applications you installed using the Software Manager tool.</p><p>Basically, apart from security patches, your system receives new features, bug fixes, improved hardware support, performance enhancement, and a lot more.</p><p>While the Updater tool is straightforward, it may still seem overwhelming if you are new to Linux Mint. </p><p>This is why we at It&apos;s FOSS came up with this beginner&apos;s guide idea. It will give you some ideas about using this tool and the best practices you should follow.</p><p>So in this guide, I will explain how you can perform the system updates in Linux Mint and will walk you through the following:</p><ul><li>Create backups using Timeshift <strong>(optional yet recommended)</strong></li><li>Prioritizing and installing updates (know the different types of updates)</li><li>Restore from the Timeshift backup (if the update messed up the system)</li><li>Adding the fastest mirrors<strong> (</strong>optional but good to know<strong>)</strong></li></ul><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4CB;</div><div class="kg-callout-text">While you can use the apt command, the focus of this tutorial is on the GUI tool.</div></div><h2 id="linux-mint-update-manager">Linux Mint Update Manager</h2><p>When there are updates available for your system, you&apos;ll notice a &apos;secure&apos; symbol with red dot on it in the bottom right corner of the screen (notification area).</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/05/linux-mint-update-notification.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="658" height="246" srcset="https://itsfoss.com/content/images/size/w600/2023/05/linux-mint-update-notification.png 600w, https://itsfoss.com/content/images/2023/05/linux-mint-update-notification.png 658w"><figcaption>Linux Mint system update notification</figcaption></figure><p>If you click on it, you&apos;ll see the available system updates. By default, all updates are selected to be installed. You can deselect some (if you know what you are doing).</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/05/linux-mint-update-manager.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="812" height="610" srcset="https://itsfoss.com/content/images/size/w600/2023/05/linux-mint-update-manager.png 600w, https://itsfoss.com/content/images/2023/05/linux-mint-update-manager.png 812w" sizes="(min-width: 720px) 720px"><figcaption>Linux Mint Update Manager</figcaption></figure><p>Before you learn more about the types of updates and their installation, I would like to talk about backups.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4CB;</div><div class="kg-callout-text">This article is about updating the Linux Mint system. It is not about <a href="https://itsfoss.com/upgrade-linux-mint-version/">upgrading Mint to a newer version</a>. That is a different topic.</div></div><h2 id="create-timeshift-backup-optional-yet-recommended">Create Timeshift backup (optional yet recommended)</h2><p>Linux Mint is a stable distro as it is based on the long-term support version of Ubuntu. Updates you install will rarely create problems.</p><p>Rarely but possible. Say you forced power off the system while it was installing package updates. It is possible that it may mess up the perfectly working system. </p><p>Precaution is better than cure. So I recommend making regular backups. If nothing else, make a backup before applying updates.</p><p>Linux Mint comes preinstalled with <a href="https://itsfoss.com/backup-restore-linux-timeshift/">Timeshift backup application</a>. It is a third-party tool but is highly recommended by Mint developers. </p><p>To create a backup, start the Timeshift from the system menu:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/open-timeshift-in-Linux-Mint.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="847" height="591" srcset="https://itsfoss.com/content/images/size/w600/2023/05/open-timeshift-in-Linux-Mint.png 600w, https://itsfoss.com/content/images/2023/05/open-timeshift-in-Linux-Mint.png 847w" sizes="(min-width: 720px) 720px"></figure><p>If you haven&apos;t used it before, it will ask you several questions before allowing you to create a backup.</p><p>First, it will ask you which type of backup you want to create. There are two options: RSYNC and BTRFS.</p><p>RSYNC is based upon hard links and can work on any filesystem, whereas BTRFS is only used for the <a href="https://itsfoss.com/btrfs/">BTRFS filesystem</a>.</p><p>If you don&apos;t know what to choose, <strong>select RSYNC</strong> as it would work just fine:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/Choose-type-of-snapshot-in-timeshift.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="1111" height="674" srcset="https://itsfoss.com/content/images/size/w600/2023/05/Choose-type-of-snapshot-in-timeshift.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/Choose-type-of-snapshot-in-timeshift.png 1000w, https://itsfoss.com/content/images/2023/05/Choose-type-of-snapshot-in-timeshift.png 1111w" sizes="(min-width: 720px) 720px"></figure><p>Next, it will ask you where you want to store the snapshots. </p><p>If you have multiple drives, it would show multiple options but for most users, there will be a single option. In my case, it was vda3:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/select-location-to-store-snapshots.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="1111" height="674" srcset="https://itsfoss.com/content/images/size/w600/2023/05/select-location-to-store-snapshots.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/select-location-to-store-snapshots.png 1000w, https://itsfoss.com/content/images/2023/05/select-location-to-store-snapshots.png 1111w" sizes="(min-width: 720px) 720px"></figure><p>Now, it will ask you to choose the directories that need backing up. </p><p>By default, it will exclude all the files inside the home directory and I recommend you do the same.</p><div class="kg-card kg-callout-card kg-callout-card-red"><div class="kg-callout-emoji">&#x1F6A7;</div><div class="kg-callout-text">Timeshift is primarily used for backing up system settings. Using it to backup personal files in home directory will take up a huge amount of disk space and is impractical. Use DejaDup for personal file backups on an external disk.</div></div><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/05/select-directories-that-needs-to-be-included-in-the-backup-1.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="876" height="662" srcset="https://itsfoss.com/content/images/size/w600/2023/05/select-directories-that-needs-to-be-included-in-the-backup-1.png 600w, https://itsfoss.com/content/images/2023/05/select-directories-that-needs-to-be-included-in-the-backup-1.png 876w" sizes="(min-width: 720px) 720px"><figcaption>Exclude home directories</figcaption></figure><p>Once done, it will show you a page informing the setup is complete.</p><p>Now, you can create a backup by clicking on the <code>Create</code> button:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/click-on-create-snapshot.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="968" height="542" srcset="https://itsfoss.com/content/images/size/w600/2023/05/click-on-create-snapshot.png 600w, https://itsfoss.com/content/images/2023/05/click-on-create-snapshot.png 968w" sizes="(min-width: 720px) 720px"></figure><p>It may take a while, based on your choices during the setup.</p><p>Once done, the snapshot will reflect in the Timeshift:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/Listing-created-backup-in-Timeshift.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="968" height="542" srcset="https://itsfoss.com/content/images/size/w600/2023/05/Listing-created-backup-in-Timeshift.png 600w, https://itsfoss.com/content/images/2023/05/Listing-created-backup-in-Timeshift.png 968w" sizes="(min-width: 720px) 720px"></figure><p>Great! So now you have created the backup. Let&apos;s go back to the system updater.</p><h2 id="installing-updates">Installing updates </h2><p>First, open the update manager from the system menu:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/open-update-manager-in-Linux-Mint.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="847" height="593" srcset="https://itsfoss.com/content/images/size/w600/2023/05/open-update-manager-in-Linux-Mint.png 600w, https://itsfoss.com/content/images/2023/05/open-update-manager-in-Linux-Mint.png 847w" sizes="(min-width: 720px) 720px"></figure><p>Here, you will find a list of packages that need to be updated and all of them will be selected by default (I would recommend you go with the same).</p><p>But if you want, you can uncheck software updates or kernel updates if you want to stick to that specific version only.</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/List-outdated-packages-in-Linux-Mint.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="937" height="612" srcset="https://itsfoss.com/content/images/size/w600/2023/05/List-outdated-packages-in-Linux-Mint.png 600w, https://itsfoss.com/content/images/2023/05/List-outdated-packages-in-Linux-Mint.png 937w" sizes="(min-width: 720px) 720px"></figure><p>To make things simple, in Linux Mint, the updates are divided into three categories:</p><ul><li>Security patches <strong>(Highest priority and indicated by</strong> <code><strong>&#x1F6E1;</strong></code><strong> ): </strong>You are supposed to install the security patches immediately as it is supposed to save you from your system&apos;s current vulnerability.</li><li>Kernel updates <strong>(Medium priority and indicated by </strong><code>&#x1F5F2;</code><strong>):</strong> New kernel brings hardware support for new hardware, bug fixes for your current kernel, and may also have performance improvement.</li><li>Software updates <strong>(Lowest priority and indicated by </strong><code>&#x2B06;</code><strong>): </strong>These updates are meant to roll out new features and bug fixes in your software.</li></ul><p><strong>Again, I will advise you to go with the defaults!</strong></p><p>Once you are done selecting, click on the <code>Install Updates</code> button, enter the password and it will start the installation of new packages:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/Update-Linux-Mint-using-Update-Manager.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="1458" height="814" srcset="https://itsfoss.com/content/images/size/w600/2023/05/Update-Linux-Mint-using-Update-Manager.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/Update-Linux-Mint-using-Update-Manager.png 1000w, https://itsfoss.com/content/images/2023/05/Update-Linux-Mint-using-Update-Manager.png 1458w" sizes="(min-width: 720px) 720px"></figure><p>That&apos;s it! The system is updated!</p><h2 id="rollback-if-the-system-crashed-after-the-update-backup-required">Rollback if the system crashed after the update (Backup required)</h2><p>If you can access the GUI, you can easily roll back to the previous state using the Timeshift backup you had created earlier.</p><p>First, open the Timeshift from the system menu and it will show the created snapshots backup you took in the past:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/List-available-snapshots-in-timeshift.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="980" height="604" srcset="https://itsfoss.com/content/images/size/w600/2023/05/List-available-snapshots-in-timeshift.png 600w, https://itsfoss.com/content/images/2023/05/List-available-snapshots-in-timeshift.png 980w" sizes="(min-width: 720px) 720px"></figure><p>To restore to the previous state, select the snapshot and click on the <code>Restore</code> button:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/select-and-restore-the-snapshot.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="980" height="617" srcset="https://itsfoss.com/content/images/size/w600/2023/05/select-and-restore-the-snapshot.png 600w, https://itsfoss.com/content/images/2023/05/select-and-restore-the-snapshot.png 980w" sizes="(min-width: 720px) 720px"></figure><p>Next, it will ask you to select the targeted devices. I would recommend going with the selected options:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/select-target-device-to-restore-to.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="903" height="572" srcset="https://itsfoss.com/content/images/size/w600/2023/05/select-target-device-to-restore-to.png 600w, https://itsfoss.com/content/images/2023/05/select-target-device-to-restore-to.png 903w" sizes="(min-width: 720px) 720px"></figure><p>Click on the next button and it will start the restoration process!</p><div class="kg-card kg-callout-card kg-callout-card-green"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">If your system does not boot, you can use a live Linux Mint USB, boot from it and install Timeshift in the live environment. Run Timeshift and it should detect the Timeshift backups present on the hard disk. You can restore it from here.</div></div><h2 id="add-the-fastest-mirrors-to-speed-up-the-download-optional">Add the fastest mirrors to speed up the download (optional)</h2><p>Selecting the fastest mirror is nothing but choosing the closest server to you, which will eventually reduce the latency and get you a faster experience.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4CB;</div><div class="kg-callout-text">That&apos;s how it should work in theory. But sometimes, sticking to the main server is more reliable because the closest server may not always perform the best continuously. This is why this is an optional step.</div></div><p>To add the fastest mirror, first, open the software sources from the system menu and enter the password when asked:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/Open-software-sources-in-Linux-Mint-1.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="1329" height="798" srcset="https://itsfoss.com/content/images/size/w600/2023/05/Open-software-sources-in-Linux-Mint-1.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/Open-software-sources-in-Linux-Mint-1.png 1000w, https://itsfoss.com/content/images/2023/05/Open-software-sources-in-Linux-Mint-1.png 1329w" sizes="(min-width: 720px) 720px"></figure><p>Once you do that, you&apos;d have to do the following:</p><ol><li>Select the first mirror (labeled as Main)</li><li>Wait for some seconds and choose the fastest mirror</li><li>Click on apply </li><li>Now, choose the second mirror (labeled as Base)</li><li>Choose the fastest mirror and click on the apply button</li></ol><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/Select-fastest-mirrors-to-download-packages-faster-in-Linux-Mint.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="1739" height="1155" srcset="https://itsfoss.com/content/images/size/w600/2023/05/Select-fastest-mirrors-to-download-packages-faster-in-Linux-Mint.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/Select-fastest-mirrors-to-download-packages-faster-in-Linux-Mint.png 1000w, https://itsfoss.com/content/images/size/w1600/2023/05/Select-fastest-mirrors-to-download-packages-faster-in-Linux-Mint.png 1600w, https://itsfoss.com/content/images/2023/05/Select-fastest-mirrors-to-download-packages-faster-in-Linux-Mint.png 1739w" sizes="(min-width: 720px) 720px"></figure><p>Once done, it will show the message saying, &quot;Your configuration changed, click OK to update your APT cache.&quot; </p><p>Click on the OK button and it will start updating the cache and will activate the fastest mirrors you chose recently:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/Enable-the-fastest-mirrors-for-Linux-Mint.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="822" height="567" srcset="https://itsfoss.com/content/images/size/w600/2023/05/Enable-the-fastest-mirrors-for-Linux-Mint.png 600w, https://itsfoss.com/content/images/2023/05/Enable-the-fastest-mirrors-for-Linux-Mint.png 822w" sizes="(min-width: 720px) 720px"></figure><p>That&apos;s it! </p><h2 id="update-everything-at-once-for-intermediate-to-advanced-users">Update everything at once (for intermediate to advanced users)</h2><p>The Update Manager works on the deb packages through the apt command line utility.</p><p>But Linux packages are also fragmented. There are Snap, Flatpaks and AppImages. Using multiple package managers means updating each type of package manually.</p><p>This is where you can use a terminal utility called Topgrade which will update everything at once. Sounds interesting? Here&apos;s the detailed guide:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/topgrade/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Upgrade Various Kinds of Packages in Linux at Once With Topgrade</div><div class="kg-bookmark-description">Here&#x2019;s how you can upgrade various packages in Linux at once, using a nifty tool i.e topgrade.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="Beginner&apos;s Guide to System Updates in Linux Mint"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Sagar Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2022/09/topgrade-cli-tool-ubuntu.png" alt="Beginner&apos;s Guide to System Updates in Linux Mint"></div></a></figure><p>Now, you should have a good idea about the system update process in Linux Mint.</p><p><em>&#x1F5E8; Please let me know if you learned something new in this tutorial. Also, if I missed something you think I should have mentioned, please mention it in the comments.</em></p>]]></content:encoded></item><item><title><![CDATA[Rust Basics Series #8: Write the Milestone Rust Program]]></title><description><![CDATA[In the final chapter of the Rust Basics Series, recall the concepts you learned and write a somewhat complex Rust program.]]></description><link>https://itsfoss.com/milestone-rust-program/</link><guid isPermaLink="false">63f61b626f09afb69b01b77f</guid><category><![CDATA[Rust]]></category><dc:creator><![CDATA[Pratham Patel]]></dc:creator><pubDate>Mon, 15 May 2023 05:27:52 GMT</pubDate><media:content url="https://itsfoss.com/content/images/2023/05/sample-program-in-rust.png" medium="image"/><content:encoded><![CDATA[<img src="https://itsfoss.com/content/images/2023/05/sample-program-in-rust.png" alt="Rust Basics Series #8: Write the Milestone Rust Program"><p>So long, we have covered a handful of fundamental topics about programming in Rust. Some of these topics are <a href="https://itsfoss.com/rust-variables">variables, mutability, constants</a>, <a href="https://itsfoss.com/rust-data-types-01">data types</a>, <a href="https://itsfoss.com/rust-functions">functions</a>, <a href="https://itsfoss.com/rust-conditional-statements">if-else statements</a> and <a href="https://itsfoss.com/rust-loops">loops</a>.</p><p>In the final chapter of the Rust Basics series, let us now write a program in Rust that uses these topics so their real-world use can be better understood. Let&apos;s work on a <em>relatively simple</em> program to order fruits from a fruit mart.</p><h2 id="the-basic-structure-of-our-program">The basic structure of our program</h2><p>Let us first start by greeting the user and informing them about how to interact with the program.</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>fn main() {
    println!(&quot;Welcome to the fruit mart!&quot;);
    println!(&quot;Please select a fruit to buy.\n&quot;);
    
    println!(&quot;\nAvailable fruits to buy: Apple, Banana, Orange, Mango, Grapes&quot;);
    println!(&quot;Once you are done purchasing, type in &apos;quit&apos; or &apos;q&apos;.\n&quot;);
}
</code></pre></section><!--kg-card-end: html--><h2 id="getting-user-input">Getting user input</h2><p>The above code is very simple. At the moment, you do not know what to do next because you do not know what the user wants to do next. </p><p>So let&apos;s add code that accepts the user input and stores it somewhere to parse it later, and take the appropriate action based on the user input.</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>use std::io;

fn main() {
    println!(&quot;Welcome to the fruit mart!&quot;);
    println!(&quot;Plase select a fruit to buy.\n&quot;);
    
    println!(&quot;Available fruits to buy: Apple, Banana, Orange, Mango, Grapes&quot;);
    println!(&quot;Once you are done purchasing, type in &apos;quit&apos; or &apos;q&apos;.\n&quot;);
    
    // get user input
    let mut user_input = String::new();
    io::stdin()
        .read_line(&amp;mut user_input)
        .expect(&quot;Unable to read user input.&quot;);
}</code></pre></section><!--kg-card-end: html--><p>There are three new elements that I need to tell you about. So let&apos;s take a shallow dive into each of these new elements.</p><h3 id="1-understanding-the-use-keyword">1. Understanding the &apos;use&apos; keyword</h3><p>On the first line of this program, you might have noticed the use (haha!) of a new keyword called <code>use</code>. The <code>use</code> keyword in Rust is similar to the <code>#include</code> directive in C/C++ and the <code>import</code> keyword in Python. Using the <code>use</code> keyword, we &quot;import&quot; the <code>io</code> (input output) module from the Rust standard library <code>std</code>.</p><p>You might be wondering why importing the <em>io</em> module was necessary when you could use the <code>println</code> macro to <em>output</em> something to STDOUT. Rust&apos;s standard library has a module called <code>prelude</code> that gets automatically included. The prelude module contains all the commonly used functions that a Rust programmer might need to use, like the <code>println</code> macro. (You can read more about <code>std::prelude</code> module <a href="https://doc.rust-lang.org/std/prelude/index.html?ref=itsfoss.com">here</a>.)</p><p>The <code>io</code> module from the Rust standard library <code>std</code> is necessary to accept user input. Hence, a <code>use</code> statement was added to the 1<sup>st</sup> line of this program.</p><h3 id="2-understanding-the-string-type-in-rust">2. Understanding the String type in Rust</h3><p>On line 11, I create a new mutable variable called <code>user_input</code> that, as its name suggests, will be used to store the user input down the road. But on the same line, you might have noticed something new (haha, again!).</p><p>Instead of declaring an empty string using double quotes with nothing between them (<code>&quot;&quot;</code>), I used the <code>String::new()</code> function to create a new, empty string.</p><p>The difference between using <code>&quot;&quot;</code> and <code>String::new()</code> is something that you will learn later in the Rust series. For now, know that, with the use of the <code>String::new()</code> function, you can create a String that is <strong><em>mutable</em></strong> and lives on the <strong><em>heap</em></strong>.</p><p>If I had created a string with <code>&quot;&quot;</code>, I would get something called a &quot;String slice&quot;. The String slice&apos;s contents are on the heap too, but the string itself is <strong>immutable</strong>. So, even if the variable itself is mutable, the actual data stored as a string is immutable and needs to be <em>overwritten</em> instead of modification.</p><h3 id="3-accepting-the-user-input">3. Accepting the user input</h3><p>On line 12, I call the <code>stdin()</code> function that is part of <code>std::io</code>. If I had not included the <code>std::io</code> module in the beginning of this program, this line would be <code>std::io::stdin()</code> instead of <code>io::stdin()</code>.</p><p>The <code>stdin()</code> function returns an input handle of the terminal. The <code>read_line()</code> function grabs onto that input handle and, as its name suggests, reads a line of input. This function takes in a reference to a mutable string. So, I pass in the <code>user_input</code> variable by preceding it with <code>&amp;mut</code>, making it a mutable reference.</p><div class="kg-card kg-callout-card kg-callout-card-red"><div class="kg-callout-emoji">&#x26A0;&#xFE0F;</div><div class="kg-callout-text">The <code>read_line()</code> function has a <em>quirk</em>. This function stops reading the input <strong><em>after</em></strong> the user presses the Enter/Return key. Therefore, this function also records that newline character (<code>\n</code>) and a trailing newline is stored in the mutable string variable that you passed in.<br><br>So please, either account for this trailing newline when dealing with it or remove it.</div></div><h2 id="a-primer-on-error-handling-in-rust">A primer on error handling in Rust</h2><p>Finally, there is an <code>expect()</code> function at the end of this chain. Let&apos;s divert a bit to understand why this function is called.</p><p>The <code>read_line()</code> function returns an Enum called <code>Result</code>. I will get into Enums in Rust later on but know that Enums are very powerful in Rust. This <code>Result</code> Enum returns a value that informs the programmer if an error occurred when the user input was being read.</p><p>The <code>expect()</code> function takes this <code>Result</code> Enum and checks if the result was okay or not. If no error occurs, nothing happens. But if an error did occur, the message that I passed in (<code>&quot;Unable to read user input.&quot;</code>) will be printed to STDERR and <em>the program will exit</em>.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4CB;</div><div class="kg-callout-text"><strong>All the new concepts that I have briefly touched on will be covered in a new Rust series later.</strong></div></div><p>Now that you hopefully understand these newer concepts, let&apos;s add more code to increase the functionality.</p><h2 id="validating-user-input">Validating user input</h2><p>I surely accepted the user&apos;s input but I have not validated it. In the current context, validation means that the user inputs some &quot;command&quot; that <em>we expect to handle</em>. At the moment, the commands are of two &quot;categories&quot;.</p><p>The first category of the command that the user can input is the name of fruit that the user wishes to buy. The second command conveys that the user wants to quit the program.</p><p>So our task now is to make sure that the input from the user does not diverge from the <em>acceptable commands</em>.</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>use std::io;

fn main() {
    println!(&quot;Welcome to the fruit mart!&quot;);
    println!(&quot;Plase select a fruit to buy.\n&quot;);
    
    println!(&quot;Available fruits to buy: Apple, Banana, Orange, Mango, Grapes&quot;);
    println!(&quot;Once you are done purchasing, type in &apos;quit&apos; or &apos;q&apos;.\n&quot;);
    
    // get user input
    let mut user_input = String::new();
    io::stdin()
        .read_line(&amp;mut user_input)
        .expect(&quot;Unable to read user input.&quot;);
        
    // validate user input
    let valid_inputs = [&quot;apple&quot;, &quot;banana&quot;, &quot;orange&quot;, &quot;mango&quot;, &quot;grapes&quot;, &quot;quit&quot;, &quot;q&quot;];
    user_input = user_input.trim().to_lowercase();
    let mut input_error = true;
    for input in valid_inputs {
        if input == user_input {
            input_error = false;
            break;
        }
    }
}</code></pre></section><!--kg-card-end: html--><p>To make validation easier, I created an array of string slices called <code>valid_inputs</code> (on line 17). This array contains the names of all the fruits that are available for purchase, along with the string slices <code>q</code> and <code>quit</code> to let the user convey if they wish to quit.</p><p>The user may not know how we expect the input to be. The user may type &quot;Apple&quot; or &quot;apple&quot; or &quot;APPLE&quot; to tell that they intend to purchase Apples. It is our job to handle this correctly. </p><p>On line 18, I trim the trailing newline from the <code>user_input</code> string by calling the <code>trim()</code> function on it. And to handle the previous problem, I convert all the characters to lowercase with the <code>to_lowercase()</code> function so that &quot;Apple&quot;, &quot;apple&quot; and &quot;APPLE&quot; all end up as &quot;apple&quot;.</p><p>Now on line 19, I create a mutable boolean variable called <code>input_error</code> with the initial value of <code>true</code>. Later on line 20, I create a <code>for</code> loop that iterates over all the elements (string slices) of the <code>valid_inputs</code> array and stores the iterated pattern inside the <code>input</code> variable.</p><p>Inside the loop, I check if the user input is equal to one of the valid strings, and if it is, I set the value of <code>input_error</code> boolean to <code>false</code> and break out of the for loop.</p><h2 id="dealing-with-invalid-input">Dealing with invalid input</h2><p>Now is time to deal with an invalid input. This can be done by moving some of the code inside an infinite loop and <em>continuing</em> said infinite loop if the user gives an invalid input.</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>use std::io;

fn main() {
    println!(&quot;Welcome to the fruit mart!&quot;);
    println!(&quot;Plase select a fruit to buy.\n&quot;);
    
    let valid_inputs = [&quot;apple&quot;, &quot;banana&quot;, &quot;orange&quot;, &quot;mango&quot;, &quot;grapes&quot;, &quot;quit&quot;, &quot;q&quot;];
    
    &apos;mart: loop {
        let mut user_input = String::new();

        println!(&quot;\nAvailable fruits to buy: Apple, Banana, Orange, Mango, Grapes&quot;);
        println!(&quot;Once you are done purchasing, type in &apos;quit&apos; or &apos;q&apos;.\n&quot;);

        // get user input
        io::stdin()
            .read_line(&amp;mut user_input)
            .expect(&quot;Unable to read user input.&quot;);
        user_input = user_input.trim().to_lowercase();

        // validate user input
        let mut input_error = true;
        for input in valid_inputs {
            if input == user_input {
                input_error = false;
                break;
            }
        }

        // handle invalid input
        if input_error {
            println!(&quot;ERROR: please enter a valid input&quot;);
            continue &apos;mart;
        }
    }
}</code></pre></section><!--kg-card-end: html--><p>Here, I moved some of the code inside the loop and re-structured the code a bit to better deal with this introduction of the loop. Inside the loop, on line 31, I <code>continue</code> the <code>mart</code> loop if the user entered an invalid string.</p><h2 id="reacting-to-users-input">Reacting to user&apos;s input</h2><p>Now that everything else is handled, time to actually write code about purchasing fruits from the fruit market and quit when the user wishes.</p><p>Since you also know which fruit the user chose, let&apos;s ask how much they intend to purchase and inform them about the format of entering the quantity.</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>use std::io;

fn main() {
    println!(&quot;Welcome to the fruit mart!&quot;);
    println!(&quot;Plase select a fruit to buy.\n&quot;);
    
    let valid_inputs = [&quot;apple&quot;, &quot;banana&quot;, &quot;orange&quot;, &quot;mango&quot;, &quot;grapes&quot;, &quot;quit&quot;, &quot;q&quot;];
    
    &apos;mart: loop {
        let mut user_input = String::new();
        let mut quantity = String::new();

        println!(&quot;\nAvailable fruits to buy: Apple, Banana, Orange, Mango, Grapes&quot;);
        println!(&quot;Once you are done purchasing, type in &apos;quit&apos; or &apos;q&apos;.\n&quot;);

        // get user input
        io::stdin()
            .read_line(&amp;mut user_input)
            .expect(&quot;Unable to read user input.&quot;);
        user_input = user_input.trim().to_lowercase();

        // validate user input
        let mut input_error = true;
        for input in valid_inputs {
            if input == user_input {
                input_error = false;
                break;
            }
        }

        // handle invalid input
        if input_error {
            println!(&quot;ERROR: please enter a valid input&quot;);
            continue &apos;mart;
        }
        
        // quit if user wants to
        if user_input == &quot;q&quot; || user_input == &quot;quit&quot; {
            break &apos;mart;
        }

        // get quantity
        println!(
            &quot;\nYou choose to buy \&quot;{}\&quot;. Please enter the quantity in Kilograms.
(Quantity of 1Kg 500g should be entered as &apos;1.5&apos;.)&quot;,
            user_input
        );
        io::stdin()
            .read_line(&amp;mut quantity)
            .expect(&quot;Unable to read user input.&quot;);
    }
}</code></pre></section><!--kg-card-end: html--><p>On line 11, I declare another mutable variable with an empty string and on line 48, I accept input from the user, but this time the quantity of said fruit that the user intends to buy.</p><h3 id="parsing-the-quantity">Parsing the quantity</h3><p>I just added code that takes in quantity in a known format, but that data is stored as a string. I need to extract the float out of that. Lucky for us, it can be done with the <code>parse()</code> method.</p><p>Just like the <code>read_line()</code> method, the <code>parse()</code> method returns the <code>Result</code> Enum. The reason why the <code>parse()</code> method returns the <code>Result</code> Enum can be easily understood with what we are trying to achieve.</p><p>I am accepting a string from users and trying to convert it to a float. A float has two possible values in it. One is the floating point itself and the second is a decimal number.</p><p>While a String can have alphabets, a float does not. So, if the user entered something <em>other</em> than the [optional] floating point and the decimal number(s), the <code>parse()</code> function will return an error.</p><p>Hence, this error needs to be handled too. We will use the <code>expect()</code> function to deal with this.</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>use std::io;

fn main() {
    println!(&quot;Welcome to the fruit mart!&quot;);
    println!(&quot;Plase select a fruit to buy.\n&quot;);
    
    let valid_inputs = [&quot;apple&quot;, &quot;banana&quot;, &quot;orange&quot;, &quot;mango&quot;, &quot;grapes&quot;, &quot;quit&quot;, &quot;q&quot;];
    
    &apos;mart: loop {
        let mut user_input = String::new();
        let mut quantity = String::new();

        println!(&quot;\nAvailable fruits to buy: Apple, Banana, Orange, Mango, Grapes&quot;);
        println!(&quot;Once you are done purchasing, type in &apos;quit&apos; or &apos;q&apos;.\n&quot;);

        // get user input
        io::stdin()
            .read_line(&amp;mut user_input)
            .expect(&quot;Unable to read user input.&quot;);
        user_input = user_input.trim().to_lowercase();

        // validate user input
        let mut input_error = true;
        for input in valid_inputs {
            if input == user_input {
                input_error = false;
                break;
            }
        }

        // handle invalid input
        if input_error {
            println!(&quot;ERROR: please enter a valid input&quot;);
            continue &apos;mart;
        }
        
        // quit if user wants to
        if user_input == &quot;q&quot; || user_input == &quot;quit&quot; {
            break &apos;mart;
        }

        // get quantity
        println!(
            &quot;\nYou choose to buy \&quot;{}\&quot;. Please enter the quantity in Kilograms.
(Quantity of 1Kg 500g should be entered as &apos;1.5&apos;.)&quot;,
            user_input
        );
        io::stdin()
            .read_line(&amp;mut quantity)
            .expect(&quot;Unable to read user input.&quot;);

        let quantity: f64 = quantity
            .trim()
            .parse()
            .expect(&quot;Please enter a valid quantity.&quot;);

    }
}</code></pre></section><!--kg-card-end: html--><p>As you can see, I store the parsed float in the variable <code>quantity</code> by making use of variable shadowing. To inform the <code>parse()</code> function that the intention is to parse the string into <code>f64</code>, I manually annotate the type of the variable <code>quantity</code> as <code>f64</code>.</p><p>Now, the <code>parse()</code> function will parse the String and return a <code>f64</code> or an error, that the <code>expect()</code> function will deal with.</p><h2 id="calculating-the-price-final-touch-ups">Calculating the price + final touch ups</h2><p>Now that we know which fruit the user wants to buy and its quantity, it is time to perform those calculations now and let the user know about the results/total.</p><p>For the sake of realness, I will have two prices for each fruit. The first price is the retail price, which we pay to fruit vendors when we buy in small quantities. The second price for fruit will be the wholesale price, when someone buys fruits in bulk.</p><p>The wholesale price will be determined if the order is greater than the minimum order quantity to be considered as a wholesale purchase. This minimum order quantity varies for every fruit. The prices for each fruit will be in Rupees per Kilogram.</p><p>With that logic in mind, down below is the program in its final form.</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>use std::io;

const APPLE_RETAIL_PER_KG: f64 = 60.0;
const APPLE_WHOLESALE_PER_KG: f64 = 45.0;

const BANANA_RETAIL_PER_KG: f64 = 20.0;
const BANANA_WHOLESALE_PER_KG: f64 = 15.0;

const ORANGE_RETAIL_PER_KG: f64 = 100.0;
const ORANGE_WHOLESALE_PER_KG: f64 = 80.0;

const MANGO_RETAIL_PER_KG: f64 = 60.0;
const MANGO_WHOLESALE_PER_KG: f64 = 55.0;

const GRAPES_RETAIL_PER_KG: f64 = 120.0;
const GRAPES_WHOLESALE_PER_KG: f64 = 100.0;

fn main() {
    println!(&quot;Welcome to the fruit mart!&quot;);
    println!(&quot;Please select a fruit to buy.\n&quot;);

    let mut total: f64 = 0.0;
    let valid_inputs = [&quot;apple&quot;, &quot;banana&quot;, &quot;orange&quot;, &quot;mango&quot;, &quot;grapes&quot;, &quot;quit&quot;, &quot;q&quot;];

    &apos;mart: loop {
        let mut user_input = String::new();
        let mut quantity = String::new();

        println!(&quot;\nAvailable fruits to buy: Apple, Banana, Orange, Mango, Grapes&quot;);
        println!(&quot;Once you are done purchasing, type in &apos;quit&apos; or &apos;q&apos;.\n&quot;);

        // get user input
        io::stdin()
            .read_line(&amp;mut user_input)
            .expect(&quot;Unable to read user input.&quot;);
        user_input = user_input.trim().to_lowercase();

        // validate user input
        let mut input_error = true;
        for input in valid_inputs {
            if input == user_input {
                input_error = false;
                break;
            }
        }

        // handle invalid input
        if input_error {
            println!(&quot;ERROR: please enter a valid input&quot;);
            continue &apos;mart;
        }

        // quit if user wants to
        if user_input == &quot;q&quot; || user_input == &quot;quit&quot; {
            break &apos;mart;
        }

        // get quantity
        println!(
            &quot;\nYou choose to buy \&quot;{}\&quot;. Please enter the quantity in Kilograms.
(Quantity of 1Kg 500g should be entered as &apos;1.5&apos;.)&quot;,
            user_input
        );
        io::stdin()
            .read_line(&amp;mut quantity)
            .expect(&quot;Unable to read user input.&quot;);
        let quantity: f64 = quantity
            .trim()
            .parse()
            .expect(&quot;Please enter a valid quantity.&quot;);

        total += calc_price(quantity, user_input);
    }

    println!(&quot;\n\nYour total is {} Rupees.&quot;, total);
}

fn calc_price(quantity: f64, fruit: String) -&gt; f64 {
    if fruit == &quot;apple&quot; {
        price_apple(quantity)
    } else if fruit == &quot;banana&quot; {
        price_banana(quantity)
    } else if fruit == &quot;orange&quot; {
        price_orange(quantity)
    } else if fruit == &quot;mango&quot; {
        price_mango(quantity)
    } else {
        price_grapes(quantity)
    }
}

fn price_apple(quantity: f64) -&gt; f64 {
    if quantity &gt; 7.0 {
        quantity * APPLE_WHOLESALE_PER_KG
    } else {
        quantity * APPLE_RETAIL_PER_KG
    }
}

fn price_banana(quantity: f64) -&gt; f64 {
    if quantity &gt; 4.0 {
        quantity * BANANA_WHOLESALE_PER_KG
    } else {
        quantity * BANANA_RETAIL_PER_KG
    }
}

fn price_orange(quantity: f64) -&gt; f64 {
    if quantity &gt; 3.5 {
        quantity * ORANGE_WHOLESALE_PER_KG
    } else {
        quantity * ORANGE_RETAIL_PER_KG
    }
}

fn price_mango(quantity: f64) -&gt; f64 {
    if quantity &gt; 5.0 {
        quantity * MANGO_WHOLESALE_PER_KG
    } else {
        quantity * MANGO_RETAIL_PER_KG
    }
}

fn price_grapes(quantity: f64) -&gt; f64 {
    if quantity &gt; 2.0 {
        quantity * GRAPES_WHOLESALE_PER_KG
    } else {
        quantity * GRAPES_RETAIL_PER_KG
    }
}
</code></pre></section><!--kg-card-end: html--><p>Compared to the previous iteration, I made some changes...</p><p>The fruit prices may fluctuate, but for the lifecycle of our program, these prices will not fluctuate. So I store the retail and wholesale prices of each fruit in constants. I define these constants outside the <code>main()</code> functions (i.e. globally) because I will not calculate the prices for each fruit inside the <code>main()</code> function. These constants are declared as <code>f64</code> because they will be multiplied with <code>quantity</code> which is <code>f64</code>. Recall, Rust doesn&apos;t have implicit type casting ;)</p><p>After storing the fruit name and the quantity that the user wants to purchase, the <code>calc_price()</code> function is called to calculate the price of said fruit in the user provided quantity. This function takes in the fruit name and the quantity as its parameters and returns the price as <code>f64</code>.</p><p>Looking inside the <code>calc_price()</code> function, it is what many people call a wrapper function. It is called a wrapper function because it calls other functions to do its dirty laundry.</p><p>Since each fruit has a different minimum order quantity to be considered as a wholesale purchase, to ensure that the code can be maintained easily in the future, the actual price calculation for each fruit is split in separate functions for each individual fruit.</p><p>So, all that the <code>calc_price()</code> function does is to determine which fruit was chosen and call the respective function for chosen fruit. These fruit-specific functions accept only one argument: quantity. And these fruit-specific functions return the price as <code>f64</code>.</p><p>Now, <code>price_*()</code> functions do only one thing. They check if the order quantity is greater than the minimum order quantity to be considered as a wholesale purchase for said fruit. If it is such, <code>quantity</code> is multiplied by the fruit&apos;s wholesale price per Kilogram. Otherwise, <code>quantity</code> is multiplied by the fruit&apos;s retail price per Kilogram.</p><p>Since the line with multiplication does not have a semi-colon at the end, the function returns the resulting product.</p><p>If you look closely at the function calls of the fruit-specific functions in the <code>calc_price()</code> function, these function calls do not have a semi-colon at the end. Meaning, the value returned by the <code>price_*()</code> functions will be returned by the <code>calc_price()</code> function to its caller.</p><p>And there is only one caller for <code>calc_price()</code> function. This is at the end of the <code>mart</code> loop where the returned value from this function is what is used to increment the value of <code>total</code>.</p><p>Finally, when the <code>mart</code> loop ends (when the user inputs <code>q</code> or <code>quit</code>), the value stored inside the variable <code>total</code> gets printed to the screen and the user is informed about the price he/she has to pay.</p><h2 id="conclusion">Conclusion</h2><p>With this post, I have used all the previously explained topics about the Rust programming language to create a simple program that still somewhat demonstrates a real-world problem.</p><p>Now, the code that I wrote can definitely be written in a more idiomatic way that best uses Rust&apos;s loved features but I haven&apos;t covered them yet! </p><p>So stay tuned for follow-up <strong>Take Rust to The Next Level series</strong> and learn more of the Rust programming language!</p><p>The Rust Basics series concludes here. I welcome your feedback.</p>]]></content:encoded></item><item><title><![CDATA[7 Deadly Sins of Distrohopping]]></title><description><![CDATA[What are you doing wrong with distro-hopping? Can you do it better? Yes, you can. Here, we tell you how.]]></description><link>https://itsfoss.com/distrohopping-issues/</link><guid isPermaLink="false">6458eed869df0b089125eeec</guid><category><![CDATA[List]]></category><dc:creator><![CDATA[Ankush Das]]></dc:creator><pubDate>Fri, 12 May 2023 04:00:57 GMT</pubDate><media:content url="https://itsfoss.com/content/images/2023/05/7-deadly-sins-of-distrohopping.png" medium="image"/><content:encoded><![CDATA[<img src="https://itsfoss.com/content/images/2023/05/7-deadly-sins-of-distrohopping.png" alt="7 Deadly Sins of Distrohopping"><p>Distro hopping is the habit of regularly trying new Linux distributions to explore for fun or to find the perfect distro for you. </p><p>After all, there are <a href="https://itsfoss.com/what-is-linux/">hundreds of Linux distributions</a> and new ones are released regularly. Your FOMO (fear of missing out) kicks in and you go on to try the latest buzz of the Linux town.</p><p>No matter why you do it, whether you hate it or like it, people make a few mistakes, which makes the experience of distro hopping hellish.</p><p>What can those be? Let me take you through it:</p><h2 id="1-not-taking-backups">1. Not Taking Backups</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/backup-distro.png" class="kg-image" alt="7 Deadly Sins of Distrohopping" loading="lazy" width="800" height="450" srcset="https://itsfoss.com/content/images/size/w600/2023/05/backup-distro.png 600w, https://itsfoss.com/content/images/2023/05/backup-distro.png 800w" sizes="(min-width: 720px) 720px"></figure><p>Well, you thought of changing the distro, and because of the excitement, you did it.</p><p>But, if you do not have a backup of your important/frequently accessible stuff, you might have to configure things and organize the data you need on your system.</p><p>So, if you have a backup, no matter what you do, the data you need always stays accessible and helps you quickly hop from one distro to another.</p><h2 id="2-not-checking-graphics-driver-support">2. Not Checking Graphics Driver Support</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/graphics-card-distro.png" class="kg-image" alt="7 Deadly Sins of Distrohopping" loading="lazy" width="800" height="450" srcset="https://itsfoss.com/content/images/size/w600/2023/05/graphics-card-distro.png 600w, https://itsfoss.com/content/images/2023/05/graphics-card-distro.png 800w" sizes="(min-width: 720px) 720px"></figure><p>Users often forget about the compatibility of a distro with the GPU on their system and end up complaining about the distro.</p><p>You must ensure that your distro has out-of-the-box support for your graphics card. </p><p>If you have an Nvidia graphics card like me, you should only prefer distributions that offer an ISO with Nvidia support or have the support built-in and available in the boot menu.</p><p>For instance, you need to <a href="https://itsfoss.com/nvidia-linux-mint/">install Nvidia drivers on Linux Mint</a>. While it is an easy and hassle-free process for the most part, not everyone would want to make an effort. You could go with <a href="https://pop.system76.com/?ref=itsfoss.com">Pop!_OS</a> or <a href="https://itsfoss.com/getting-started-with-ubuntu/">Ubuntu</a>, which works well with Nvidia graphics cards by default.</p><h2 id="3-hoping-things-to-be-better">3. Hoping Things to be Better </h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/hoping-distro.png" class="kg-image" alt="7 Deadly Sins of Distrohopping" loading="lazy" width="800" height="450" srcset="https://itsfoss.com/content/images/size/w600/2023/05/hoping-distro.png 600w, https://itsfoss.com/content/images/2023/05/hoping-distro.png 800w" sizes="(min-width: 720px) 720px"></figure><p>Nobody else can perfectly pick what you need and what you might like.</p><p>So, do not go with anyone&apos;s suggestion. Do your research, and pick the distro you want to try next.</p><p>Even though you know what you want, do not expect the experience to be better than your current distro. The distributions differ in many aspects. </p><p><strong>Your next distribution can solve a problem you had and add issues you did not. </strong>It is better to assume that you might have troubles you did not anticipate. </p><p>So, fasten your seatbelt if you distro hop.</p><h2 id="4-installing-distros-on-bare-metal">4. Installing Distros on Bare Metal</h2><p><strong>Do not install the distro</strong> and <strong>replace your current distro.</strong></p><p>If you directly change the distro on your workstation, things might break, and you might spend time fixing them first, even before learning or experiencing the best parts of the Linux distribution.</p><p>Instead, you should try the distro using the <strong>live environment </strong>or <strong>a virtual machine</strong>.</p><p>Usually, you get a live environment from the boot menu or a &quot;Try&quot; option to test things before installing a Linux distribution.</p><p>Also, you can try <a href="https://itsfoss.com/why-linux-virtual-machine/">Linux distros using a virtual machine</a>. With a VM, you can learn about the distro and test things without hassle.</p><p>With that option, you do not need to change your host. You can test all the essentials like <strong>network connectivity, app availability, pre-installed utilities</strong>, and more without needing to ditch the current distro.</p><p><strong>Suggested Read &#x1F4D6;</strong></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/why-linux-virtual-machine/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">10 Reasons to Run Linux in Virtual Machines</div><div class="kg-bookmark-description">You can run any operating system as a virtual machine to test things out or for a particular use case. When it comes to Linux, it is usually a better performer as a virtual machine when compared to other operating systems. Even if you hesitate to install Linux on bare</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="7 Deadly Sins of Distrohopping"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2022/04/reasons-to-install-linux-in-virtualmachines.jpg" alt="7 Deadly Sins of Distrohopping"></div></a></figure><h2 id="5-ignoring-your-use-case">5. Ignoring Your Use-Case</h2><p>The choices of distros available can make things confusing.</p><p>One part or feature of a distro could have had your attention, leading you to think that the rest suits you.</p><p>Any distribution you want to try next should perfectly suit your requirements. If it offers something more or different, it may not necessarily be a bonus for you.</p><p>For instance, a distro could offer more customizability, which is always good. But if you do not need that control, the options included could be overwhelming or seem like bloatware to you soon enough.</p><p>You can explore the <a href="https://itsfoss.com/best-linux-distributions/">best Linux distros</a> and analyze them based on their specialties mentioned in the article.</p><p>One example is a specific use case of looking for a <a href="https://itsfoss.com/lightweight-linux-beginners/">lightweight distro</a> that runs well on old computers:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/lightweight-linux-beginners/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">16 Best Lightweight Linux Distributions for Older Computers</div><div class="kg-bookmark-description">Don&#x2019;t throw your old computer just yet. Use a lightweight Linux distro and revive that decades-old system.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="7 Deadly Sins of Distrohopping"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2015/08/light-linux-distros.jpg" alt="7 Deadly Sins of Distrohopping"></div></a></figure><p>Or are you looking for something secure, reliable, and future-proof?</p><p><a href="https://itsfoss.com/immutable-linux-distros/">Immutable Linux distributions</a> should serve you well.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/immutable-linux-distros/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">11 Future-Proof Immutable Linux Distributions</div><div class="kg-bookmark-description">Immutability is a concept in trend. Take a look at what are the options you have for an immutable Linux distribution.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="7 Deadly Sins of Distrohopping"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/03/list-of-immutable-linux-distros--1-.png" alt="7 Deadly Sins of Distrohopping"></div></a></figure><p>Or...</p><p>Do you want to play games? There are options for that too!</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/linux-gaming-distributions/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Best Distributions for Gaming on Linux</div><div class="kg-bookmark-description">If you are a hardcore PC gamer, Linux might not be your first choice. That&#x2019;s fair because Linux isn&#x2019;t treated as a first-class citizen when it comes to gaming. You won&#x2019;t find the most awaited games of the year available on Linux natively. Not to forget that</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="7 Deadly Sins of Distrohopping"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2022/10/best-linux-gaming-distributions.png" alt="7 Deadly Sins of Distrohopping"></div></a></figure><p>In a nutshell, do not pick a distro that does not suit to your use cases.</p><h2 id="6-changing-your-daily-driving-tools">6. Changing Your Daily Driving Tools</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/daily-drivers-distro.png" class="kg-image" alt="7 Deadly Sins of Distrohopping" loading="lazy" width="800" height="450" srcset="https://itsfoss.com/content/images/size/w600/2023/05/daily-drivers-distro.png 600w, https://itsfoss.com/content/images/2023/05/daily-drivers-distro.png 800w" sizes="(min-width: 720px) 720px"></figure><p>Along with the distro, some users change the tools they use to get work daily.</p><p>Considering the tools affect your user experience significantly, it will eventually change your workflow. You may have done it to experiment with new things. But you should stick to the tools that always work for you.</p><p>Maybe you are already using the <a href="https://itsfoss.com/essential-linux-applications/">best essential apps</a> available, why change?</p><p>If the tool does not work as intended with the new distro, only then you should look for alternatives.</p><h2 id="7-not-picking-a-desktop-environment">7. Not Picking a Desktop Environment</h2><p>There are a couple of things that can help you narrow down the choices you have for installing Linux distros on your system.</p><p>And the <a href="https://itsfoss.com/what-is-desktop-environment/">desktop environment</a> is a big one.</p><p>Of course, you should explore the <a href="https://itsfoss.com/best-linux-desktop-environments/">best desktop environments</a> available before making a favorite. Once you select one, you do not have to distro hop much compared to when you wanted to try distro with any desktop environment.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/best-linux-desktop-environments/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">8 Best Desktop Environments For Linux</div><div class="kg-bookmark-description">A list of the best Linux Desktop Environments with their pros and cons. Have a look and see which desktop environment you should use.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="7 Deadly Sins of Distrohopping"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2016/04/best-linux-desktop-environments.jpg" alt="7 Deadly Sins of Distrohopping"></div></a></figure><h2 id="should-you-stop-distrohopping">Should You Stop Distrohopping?</h2><p>It is not bad that you want to explore options and see what fits you best.</p><p>However, how you hop from one distro to another could make the process troublesome, and you may end up complaining.</p><p>You should <strong>follow the above pointers</strong> mentioned in this article and try distros using a <strong>virtual machine</strong> before you want to switch.</p><p>Now, you should have a seamless experience with the distro hopping journey. </p><p><em>&#x1F4AC; Share your distro-hopping adventures in the comments below. Do you do it or not?</em></p>]]></content:encoded></item><item><title><![CDATA[FOSS Weekly #23.19: New Zinc Distro, Terminal Fonts, Tux Story and More]]></title><description><![CDATA[There is a new distro in the town, again. Learn about it in this edition of FOSS Weekly newsletter.]]></description><link>https://itsfoss.com/newsletter/foss-weekly-23-19/</link><guid isPermaLink="false">645b4a9369df0b089125f5df</guid><category><![CDATA[Newsletter]]></category><dc:creator><![CDATA[Abhishek Prakash]]></dc:creator><pubDate>Thu, 11 May 2023 05:59:26 GMT</pubDate><media:content url="https://itsfoss.com/content/images/2023/05/foss-weekly-23-19.png" medium="image"/><content:encoded><![CDATA[<img src="https://itsfoss.com/content/images/2023/05/foss-weekly-23-19.png" alt="FOSS Weekly #23.19: New Zinc Distro, Terminal Fonts, Tux Story and More"><p>A few readers have notified me that they end up with Cloudflare errors while visiting It&apos;s FOSS webpages on Google Chrome. I have investigated the issue and cleaned up the cache. Nothing conclusive was found. </p><p>So, I doubled up the CPU strength to 8-core. This should guard against a sudden influx of traffic which increases the CPU load and prevents the site from being inaccessible momentarily.</p><p>However, if you still encounter this issue, please let me know. </p><p><strong>&#x1F4AC; Let&apos;s see what else you have in this edition of FOSS Weekly:</strong></p><ul><li>First look at Zinc, an Ubuntu-based distro</li><li>Continuation of the Rust series and beautiful font suggestions</li><li>More Linux news, videos, and of course, memes!</li></ul><hr><h2 id="%F0%9F%93%B0-linux-news">&#x1F4F0; Linux News</h2><p>Open source project management tool Mattermost has <a href="https://news.itsfoss.com/mattermost-ai/?ref=itsfoss.com">revealed its plans to power AI-enhanced collaboration</a>.</p><p>GNOME Files is set to <a href="https://news.itsfoss.com/gnome-column-chooser/?ref=itsfoss.com">drop the old-school column chooser</a> and replace it with a modern rework.</p><p>It seems that the <a href="https://news.itsfoss.com/roblox-linux-end/?ref=itsfoss.com">time of Roblox has come to an abrupt end on Linux</a>, it was already never officially supported, but now even the workarounds won&apos;t work.</p><hr><h2 id="%F0%9F%A7%A0-what-we%E2%80%99re-thinking-about">&#x1F9E0; What we&#x2019;re thinking about</h2><p>Some developers are not happy that people upload their open source projects on GitHub, which is then used to train Microsoft&apos;s GitHub Copilot AI.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nogithub.codeberg.page/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Please don&#x2019;t upload my code on GitHub</div><div class="kg-bookmark-description">This is a call to open source developers to not upload the work of others on GitHub.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nogithub.codeberg.page/favicon.svg" alt="FOSS Weekly #23.19: New Zinc Distro, Terminal Fonts, Tux Story and More"><span class="kg-bookmark-author">No GitHub</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nogithub.codeberg.page/icon-color.png" alt="FOSS Weekly #23.19: New Zinc Distro, Terminal Fonts, Tux Story and More"></div></a></figure><hr><h2 id="%F0%9F%9B%8D%EF%B8%8F-interesting-offer">&#x1F6CD;&#xFE0F; Interesting offer</h2><p>The folks over at No Starch Press have yet another useful bundle, this time for learning Python programming. Be sure to check it out; a portion of the proceeds go to the <a href="https://www.python.org/psf-landing/?ref=itsfoss.com">Python Software Foundation</a>.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.humblebundle.com/books/python-no-starch-books?partner=itsfoss&amp;ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Humble Tech Book Bundle: Python by No Starch</div><div class="kg-bookmark-description">We&#x2019;ve teamed up with No Starch Press for our newest bundle. Get books like Python for Kids and Beyond the Basic Stuff with Python. Plus, pay what you want &amp; support charity!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cdn.humblebundle.com/static/hashed/03df0490a53d595fd930f9fff52038366d60a05d.png" alt="FOSS Weekly #23.19: New Zinc Distro, Terminal Fonts, Tux Story and More"><span class="kg-bookmark-author">Humble Bundle</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://hb.imgix.net/75e1c3e16619e8c9f5ef6ddb93f3bbc0c3b098e1.png?auto=compress,format&amp;h=630&amp;w=1200&amp;s=d4c213287d9081c0d63c17f1eef0f4a8" alt="FOSS Weekly #23.19: New Zinc Distro, Terminal Fonts, Tux Story and More"></div></a></figure><hr><h2 id="%F0%9F%A7%AE-tutorials">&#x1F9EE; Tutorials</h2><p>The Rust Basics Series has nearly reached its end. This is the penultimate chapter of the series.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/rust-loops/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Rust Basics Series #7: Using Loops in Rust</div><div class="kg-bookmark-description">Loops are another way of handling control flow of your programs. Learn about for, while and &#x2018;loop&#x2019; loops in Rust.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.19: New Zinc Distro, Terminal Fonts, Tux Story and More"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Pratham Patel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/loops-in-rust-programming-language.png" alt="FOSS Weekly #23.19: New Zinc Distro, Terminal Fonts, Tux Story and More"></div></a></figure><p>Explore some alternative fonts and customize your terminal.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/fonts-linux-terminal/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">10 Best Fonts for Linux Terminal</div><div class="kg-bookmark-description">Get the best font for your terminal to improve the look, and readability, and have a fun experience with the terminal.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.19: New Zinc Distro, Terminal Fonts, Tux Story and More"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/best-fonts-for-terminal.png" alt="FOSS Weekly #23.19: New Zinc Distro, Terminal Fonts, Tux Story and More"></div></a></figure><p>This tool may interest you if you have a simple need for trimming and merging video clips.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/vidcutter-video-editor-linux/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Easily Trim Videos With VidCutter in Linux</div><div class="kg-bookmark-description">Learn how to install and use VidCutter, a simple open source tool for trimming and merging videos in Linux.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.19: New Zinc Distro, Terminal Fonts, Tux Story and More"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/vidcutter-video-trimmer-linux-app.png" alt="FOSS Weekly #23.19: New Zinc Distro, Terminal Fonts, Tux Story and More"></div></a></figure><h2 id="%F0%9F%93%B9-what-we-are-watching">&#x1F4F9; What we are watching</h2><p>Of course, it is.</p><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/499jqHWZ-Ts?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="Is Linux Mint BETTER Than Windows?"></iframe></figure><hr><h2 id="%E2%9C%A8-project-highlights">&#x2728; Project highlights</h2><p>We also looked at a new Ubuntu-based distro that doesn&apos;t offer Snap out-of-the-box! Yes, that is a feature these days.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/zinc-distro/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Zinc: A New Ubuntu-Based Distro With Nemo File Manager and XFCE Desktop</div><div class="kg-bookmark-description">An Ubuntu-based distro with some default twists that you might like. What do you think?</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png" alt="FOSS Weekly #23.19: New Zinc Distro, Terminal Fonts, Tux Story and More"><span class="kg-bookmark-author">It&apos;s FOSS News</span><span class="kg-bookmark-publisher">Sourav Rudra</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://news.itsfoss.com/content/images/2023/05/zinc-first-look.png" alt="FOSS Weekly #23.19: New Zinc Distro, Terminal Fonts, Tux Story and More"></div></a></figure><p>Want an ad-free music player for your smartphone? Well, then, this can be your daily driver!</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/blackhole-music-app/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Upgrade Your Music Experience with This Spotify-like Open Source Mobile Music Player</div><div class="kg-bookmark-description">BlackHole is an interesting open-source music player for mobile phones.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png" alt="FOSS Weekly #23.19: New Zinc Distro, Terminal Fonts, Tux Story and More"><span class="kg-bookmark-author">It&apos;s FOSS News</span><span class="kg-bookmark-publisher">Sourav Rudra</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://news.itsfoss.com/content/images/2023/05/blackhole-music-app.png" alt="FOSS Weekly #23.19: New Zinc Distro, Terminal Fonts, Tux Story and More"></div></a></figure><hr><h2 id="%F0%9F%A4%A3-meme-of-the-week">&#x1F923; Meme of the week</h2><p>The brain is one of the most important parts of a human body, after all.</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/memes1.png" class="kg-image" alt="FOSS Weekly #23.19: New Zinc Distro, Terminal Fonts, Tux Story and More" loading="lazy" width="1080" height="1080" srcset="https://itsfoss.com/content/images/size/w600/2023/05/memes1.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/memes1.png 1000w, https://itsfoss.com/content/images/2023/05/memes1.png 1080w" sizes="(min-width: 720px) 720px"></figure><hr><h2 id="%F0%9F%97%93%EF%B8%8F-linux-trivia">&#x1F5D3;&#xFE0F; Linux Trivia</h2><p>On May 9, 1996, Linus Torvalds <a href="https://lkml.iu.edu/hypermail/linux/kernel/9605/0855.html?ref=itsfoss.com">described in a mailing list</a> his conception of what he believes should be the logo for Linux.</p><blockquote>So when you think &quot;penguin&quot;, you should be imagining a slighly overweight penguin (*), sitting down after having gorged itself, and having just burped. It&apos;s sitting there with a beatific smile - the world is a good place to be when you have just eaten a few gallons of raw fish and you can feel another &quot;burp&quot; coming. </blockquote><p>Yeah! That&apos;s the <a href="https://itsfoss.com/tux-trivia/">story behind the Linux logo Tux</a>. Here are some more.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/tux-trivia/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Some Incredible Stories Around Tux: Our Lovable Linux Mascot!</div><div class="kg-bookmark-description">We&#x2019;ve all heard about our favorite Linux Mascot! In this Linux trivia series, I&#x2019;ve scoured every nook and corner of the web I could reach out to, to dig up some old archives to gather some interesting trivia about our cute and friendly penguin, starting from its early</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.19: New Zinc Distro, Terminal Fonts, Tux Story and More"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Avimanyu Bandyopadhyay</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2019/02/history-of-linux-logo-mascot.png" alt="FOSS Weekly #23.19: New Zinc Distro, Terminal Fonts, Tux Story and More"></div></a></figure><hr><h2 id="%F0%9F%A7%A9-puzzle-for-pro-members-only">&#x1F9E9; Puzzle (for Pro members only)</h2><p>There is a different kind of puzzle this way. It may not be as time taking as a crossword, though.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/puzzle/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Puzzle of The Week</div><div class="kg-bookmark-description">Exercise those &#x2018;little gray cells&#x2019; of yours and solve this puzzle.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.19: New Zinc Distro, Terminal Fonts, Tux Story and More"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/puzzle-of-the-week.png" alt="FOSS Weekly #23.19: New Zinc Distro, Terminal Fonts, Tux Story and More"></div></a></figure><hr><h2 id="%E2%9D%A4%EF%B8%8F-enjoying-foss-weekly">&#x2764;&#xFE0F; Enjoying FOSS Weekly?</h2><p><strong>Forward it to Linux-using friends</strong> and encourage them to subscribe (hint: <a href="https://itsfoss.com/signup/">it&apos;s here</a>).</p><p>Become a Pro member and show your support &#x1F64F;</p><p>Share the newsletter and the articles in Linux communities on Reddit and other platforms.</p><p><strong>Something else?</strong> Share it with me by pressing the reply button.</p><p>Keep loving Linux :)</p>]]></content:encoded></item><item><title><![CDATA[Rust Basics Series #7: Using Loops in Rust]]></title><description><![CDATA[Loops are another way of handling control flow of your programs. Learn about for, while and 'loop' loops in Rust.]]></description><link>https://itsfoss.com/rust-loops/</link><guid isPermaLink="false">63f5f2e96f09afb69b01b586</guid><category><![CDATA[Rust]]></category><dc:creator><![CDATA[Pratham Patel]]></dc:creator><pubDate>Sun, 07 May 2023 04:43:32 GMT</pubDate><media:content url="https://itsfoss.com/content/images/2023/05/loops-in-rust-programming-language.png" medium="image"/><content:encoded><![CDATA[<img src="https://itsfoss.com/content/images/2023/05/loops-in-rust-programming-language.png" alt="Rust Basics Series #7: Using Loops in Rust"><p>In the <a href="https://itsfoss.com/rust-if-else/">previous article</a> of the Rust series, I went over the use of if and else keywords to handle the control flow of your Rust program. </p><p>That is one way of handling the control flow of your program. The other way you can do this is by using loops. So let us look at loops in this follow-up article.</p><h2 id="loops-available-in-rust">Loops available in Rust</h2><p>The Rust programming language has three different loops based on what you want to achieve and what is available:</p><ul><li>for</li><li>while</li><li>loop</li></ul><p>I presume that you are familiar with <code>for</code> and <code>while</code> but <code>loop</code> might be new here. Let&apos;s start with familiar concepts first.</p><h2 id="the-for-loop">The for loop</h2><p>The <code>for</code> loop is primarily used to iterate over something called an iterator.</p><p>This iterator can be made from anything, from an array, a vector (will be covered soon!), a range of values, or anything custom. The sky is the limit here.</p><p>Let us look at the syntax of the <code>for</code> loop.</p><pre><code class="language-rust">for iterating_variable in iterator {
    &lt;statement(s)&gt;;
}</code></pre><p>The <code>iterating_variable</code> is more generally known as <code>i</code> in most other programming language tutorials ;)</p><p>And an <code>iterator</code>, as I said, can be really anything that tells what the next value is, if any.</p><p>Let&apos;s understand this using a program.</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>fn main() {
    let my_arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

    println!(&quot;iteration over an array&quot;);
    for element in my_arr {
        println!(&quot;{}&quot;, element);
    }

    println!(&quot;\niteration over a real iterator&quot;);
    for element in my_arr.iter() {
        println!(&quot;{}&quot;, element);
    }

    println!(&quot;\nPython-style range&quot;);
    for element in 0..10 {
        println!(&quot;{}&quot;, element);
    }
}</code></pre></section><!--kg-card-end: html--><p>Here, I have declared an array that holds 10 numbers, from 0 to 9. On the <code>for</code> loop that is on line 5, I simply specify this array as the iterator and Rust automatically handles iteration over all the elements of this array for me. No fancy <code>my_arr[i]</code> magic is needed.</p><p>But on line 10, I call the <code>.iter()</code> function on the array. This is an explicit mention of getting an iterator based on the values that <code>my_arr</code> consists of. The only difference between this loop and the loop on line 5 is that here you are being explicit by calling the <code>.iter()</code> function on the array.</p><p>Calling the <code>.iter()</code> function on a data type, <em>in this context,</em> isn&apos;t strictly necessary. Since this is an array, which is a data type provided by the language itself, Rust already knows how to handle it. But you <em>will</em> need it with custom data types.</p><p>Finally, on line 15, we have a for loop that loops over a range. Well sort of. If you look closely, this range will look very similar to the Slice &quot;type&quot;. Rust knows about this too and handles iteration <em>for</em> you (haha, get it?).</p><p>The output looks like following:</p><pre><code>iteration over an array
0
1
2
3
4
5
6
7
8
9

iteration over a real iterator
0
1
2
3
4
5
6
7
8
9

Python-style range
0
1
2
3
4
5
6
7
8
9</code></pre><h2 id="the-while-loop">The while loop</h2><p>The <code>while</code> loop can be thought to be very similar to an <code>if</code> conditional statement. With the <code>if</code> statement, provided that the user-provided condition evaluates to <code>true</code>, the code in the <code>if</code> statement&apos;s body is executed <em>once</em>.</p><p>But with the <code>while</code> loop, if the condition evaluates to <code>true</code>, the loop starts looping over the loop body. The loop will continue its iteration as long as the condition keeps on evaulating to <code>true</code>.</p><p>The <code>while</code> loop stops only when the loop has completed the execution of all statements in the current iteration and upon checking the condition, it evaluates to <code>false</code>.</p><p>Let&apos;s look at the syntax of a while loop...</p><pre><code class="language-rust">while condition {
    &lt;statement(s)&gt;;
}</code></pre><p>See? Very similar to an <code>if</code> conditional statement! No <code>else</code> blocks though ;)</p><p>Let&apos;s look at a program to understand this better.</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>fn main() {
    let mut var = 0;

    while var &lt; 3 {
        println!(&quot;{var}&quot;);
        var += 1;
    }
}
</code></pre></section><!--kg-card-end: html--><p>I have a mutable variable, <code>var</code>, with an initial value of 0. The <code>while</code> loop will loop as long as the value stored in the mutable variable <code>var</code> is less than 3.</p><p>Inside the loop, <code>var</code>&apos;s value gets printed and later on, its value gets incremented by 1.</p><p>Below is the output of the code written above:</p><pre><code>0
1
2</code></pre><h2 id="the-loop">The loop </h2><p>Rust has an infinite loop. Yes, one with no condition for starting and no condition to stop. It just continues looping over and over again till infinity. But of course, has triggers to stop the loop execution from the code itself.</p><p>The syntax for this infinite loop is as follows:</p><pre><code class="language-rust">loop {
    &lt;statement(s)&gt;;
}</code></pre><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4CB;</div><div class="kg-callout-text">These loops are mostly used in GUI software where exiting is an <em>explicit</em> operation.</div></div><p>Before I even give you an example, since this loop is quite special, let&apos;s first look at how to <em>exit</em> it :p</p><p>To stop the execution of an infinite loop, the <code>break</code> keyword is used inside the loop.</p><p>Let&apos;s look at an example where only whole numbers between 0 and 3 (inclusive) are printed to the program output.</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>fn main() {
    let mut var = 0;

    loop {
        if var &gt; 3 {
            break;
        }

        println!(&quot;{}&quot;, var);
        var += 1;
    }
}
</code></pre></section><!--kg-card-end: html--><p>The best way to interpret this particular example is to look at it as an unnecessarily expanded form of a <code>while</code> loop ;)</p><p>You have a mutable variable <code>var</code> with an initial value of 0 that is used as an iterator, kind of. The infinite loop starts with an <code>if</code> condition that <em>should </em><code><em>var</em></code><em>&apos;s value be greater than 3, the </em><code><em>break</em></code><em> keyword should be executed</em>. Later on, like the previous example of the <code>while</code> loop, <code>var</code>&apos;s value is printed to the stdout and then its value is incremented by 1.</p><p>It produces the following output:</p><pre><code>0
1
2
3</code></pre><h2 id="labelled-loops">Labelled loops</h2><p>Let&apos;s say there are two infinite loops, one nested in the other. For some reason, the exit condition is checked in the innermost loop but this exit condition is for exiting out of the outermost loop.</p><p>In such a case, labelling the loop(s) might be beneficial.</p><div class="kg-card kg-callout-card kg-callout-card-green"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">The use of labels <code>break</code> and <code>continue</code> keywords are not exclusive to the infinite loop. They can be used with all three loops that the Rust language offers.</div></div><p>Following is how to label a loop.</p><pre><code class="language-rust">&apos;label: loop {}</code></pre><p>To tell the compiler that a loop is being labelled, start with a single quote character, type the label for it, and follow it with a colon. Then, continue with how you regularly define a loop.</p><p>When you need to break certain loop, simply specify the loop label like so:</p><pre><code class="language-rust">    break &apos;label;</code></pre><p>Let&apos;s take a look at an example to better understand this.</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>fn main() {
    let mut a = 0;
    let mut b = 0;

    &apos;parent: loop {
        a += 1;

        loop {
            println!(&quot;a: {}, b: {}&quot;, a, b);
            b += 1;

            if a + b == 10 {
                println!(&quot;\n{} + {} = 10&quot;, a, b);
                break &apos;parent;
            }
        }
    }
}</code></pre></section><!--kg-card-end: html--><p>Here, I took two mutable variables <code>a</code> and <code>b</code> with the initial values set to 0 for both.</p><p>Later down, the outer-most loop is labelled <code>parent</code>. The &apos;parent&apos; loop increments the value of varaible <code>a</code> by 1 and has an inner/child loop.</p><p>This child loop (on line 8) prints the values of variables <code>a</code> and <code>b</code>. Inside this loop, the value of <code>b</code> gets incremented by 1. And the exit condition is that <code>a + b == 10</code>. Meaning whenever the values stored in variables <code>a</code> and <code>b</code>, when added together, result in 10, the <code>parent</code> loop is broken. Even though the <code>break</code> condition on line 14 &quot;belongs&quot; to the inner loop, it breaks the <code>parent</code> loop.</p><p>Let&apos;s look at the program output now.</p><pre><code>a: 1, b: 0
a: 1, b: 1
a: 1, b: 2
a: 1, b: 3
a: 1, b: 4
a: 1, b: 5
a: 1, b: 6
a: 1, b: 7
a: 1, b: 8

1 + 9 = 10
</code></pre><p>As evident from the program output, the loop stops as soon as <code>a</code> and <code>b</code> have the values 1 and 9 respectively.</p><h2 id="the-continue-keyword">The continue keyword</h2><p>If you have already used loops in any other programming language like C/C++/Java/Python, you might already know the use of the <code>continue</code> keyword.</p><p>While the <code>break</code> keyword is to stop the loop execution completely, the <code>continue</code> keyword is used to &quot;skip&quot; the <strong>current iteration</strong> of loop execution and start with the next iteration (if the conditions permit).</p><p>Let&apos;s look at an example to understand how the <code>continue</code> keyword works.</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>fn main() {
    for i in 0..10 {
        if i % 2 == 0 {
            continue;
        }
        println!(&quot;{}&quot;, i)
    }
}</code></pre></section><!--kg-card-end: html--><p>In the code above, I have a <code>for</code> loop that iterates over whole numbers between 0 and 9 (inclusive). As soon as the loop starts, I put a conditional check to see if the number is even or not. If the number is even, the <code>continue</code> keyword is executed.</p><p>But if the number is odd, the number gets printed to the program output.</p><p>Let&apos;s first look at the output of this program.</p><pre><code>1
3
5
7
9
</code></pre><p>As you can see, the loop appears to have been &quot;going on&quot; even though there clearly are even numbers between 0 and 9. But because I used the <code>continue</code> keyword, the loop execution stopped when that keyword was encountered.</p><p>The loop skipped whatever was under it and continued with the next iteration. That&apos;s why even numbers are not printed, but all odd numbers between 0 and 9 are printed to the proogram output.</p><h2 id="conclusion">Conclusion</h2><p>To conclude this long article, I demonstrated the use of 3 different loops: <code>for</code>, <code>while</code> and <code>loop</code>. I also discussed two keywords that affect the control flow of these loops: <code>break</code> and <code>continue</code>. </p><p>I hope that you now understand the appropriate use case for each loop. Please let me know if you have any questions.</p>]]></content:encoded></item><item><title><![CDATA[10 Beautiful Fonts for Your Linux Terminal]]></title><description><![CDATA[Get the best font for your terminal to improve the look, and readability, and have a fun experience with the terminal.]]></description><link>https://itsfoss.com/fonts-linux-terminal/</link><guid isPermaLink="false">6451f84b71e1e408c0cee4c5</guid><category><![CDATA[Terminal]]></category><category><![CDATA[Customization]]></category><dc:creator><![CDATA[Ankush Das]]></dc:creator><pubDate>Fri, 05 May 2023 05:34:09 GMT</pubDate><media:content url="https://itsfoss.com/content/images/2023/05/best-fonts-for-terminal.png" medium="image"/><content:encoded><![CDATA[<img src="https://itsfoss.com/content/images/2023/05/best-fonts-for-terminal.png" alt="10 Beautiful Fonts for Your Linux Terminal"><p>Picking the perfect font is crucial for many things, whether you are a programmer, system administrator, or a Linux user fond of the terminal.</p><p><a href="https://itsfoss.com/change-terminal-font-ubuntu/">Changing the terminal font</a> helps you achieve the following:</p><ul><li><strong>An aesthetically pleasing look of your terminal</strong></li><li><strong>Enhances readability</strong></li><li><strong>Reduces eye strain</strong></li></ul><p>Sounds good. But how can you choose the perfect font? There are hundreds and thousands of options out there.</p><p>For starters, you can select a <strong>font optimized for technical documents or coding</strong> because those have good readability. Next, you can filter <strong>foss projects</strong> (if that matters to you) and check if those <strong>fonts scale well</strong> with high-resolution monitors (per your requirements).</p><p>Fret not; to give you a head start, we have picked some of the best fonts fit for coding, offering good readability while also looking good at the same time.</p><h2 id="1-cascadia">1. Cascadia</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/cascadia.png" class="kg-image" alt="10 Beautiful Fonts for Your Linux Terminal" loading="lazy" width="822" height="572" srcset="https://itsfoss.com/content/images/size/w600/2023/05/cascadia.png 600w, https://itsfoss.com/content/images/2023/05/cascadia.png 822w" sizes="(min-width: 720px) 720px"></figure><p><a href="https://github.com/microsoft/cascadia-code?ref=itsfoss.com">Cascadia</a> is a font by Microsoft, used by default for Visual Studio Code, one of the <a href="https://itsfoss.com/best-modern-open-source-code-editors-for-linux/">best open-source code editors</a>.</p><p>It includes coding ligature support and offers three variants: standard, mono, and a version supporting embedded powerline symbols.</p><h2 id="2-fira-code">2. Fira Code</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/fira-code.png" class="kg-image" alt="10 Beautiful Fonts for Your Linux Terminal" loading="lazy" width="822" height="572" srcset="https://itsfoss.com/content/images/size/w600/2023/05/fira-code.png 600w, https://itsfoss.com/content/images/2023/05/fira-code.png 822w" sizes="(min-width: 720px) 720px"></figure><p><a href="https://github.com/tonsky/FiraCode?ref=itsfoss.com">Fira Code</a> is a monospaced font with programming ligature and ASCII support. </p><p>It is regularly fine-tuned to support letter pairs and better punctuation output.</p><h2 id="3-hack">3. Hack</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/hack.png" class="kg-image" alt="10 Beautiful Fonts for Your Linux Terminal" loading="lazy" width="822" height="572" srcset="https://itsfoss.com/content/images/size/w600/2023/05/hack.png 600w, https://itsfoss.com/content/images/2023/05/hack.png 822w" sizes="(min-width: 720px) 720px"></figure><p><a href="https://github.com/source-foundry/Hack?ref=itsfoss.com">Hack</a> is another monospaced font tailored for source codes. </p><p>You get ASCII, powerline support, and the usual styles for <strong>bold, italic, and bold italic.</strong></p><p>If you notice its GitHub page, they provide instructions to improve the font rendering for certain Linux distributions.</p><h2 id="4-inconsolata">4. Inconsolata</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/inconsolata.png" class="kg-image" alt="10 Beautiful Fonts for Your Linux Terminal" loading="lazy" width="822" height="572" srcset="https://itsfoss.com/content/images/size/w600/2023/05/inconsolata.png 600w, https://itsfoss.com/content/images/2023/05/inconsolata.png 822w" sizes="(min-width: 720px) 720px"></figure><p><br><a href="https://fonts.google.com/specimen/Inconsolata?ref=itsfoss.com">Inconsolata</a> is a clear monospace font tailored for great readability. You can find it as one of the options in the Google Font family.</p><p>The font offers several styles useful for <a href="https://itsfoss.com/linux-terminal-emulators/">terminal emulators</a> and coding purposes.</p><h2 id="5-iosevka">5. Iosevka</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/Iosevka-.png" class="kg-image" alt="10 Beautiful Fonts for Your Linux Terminal" loading="lazy" width="822" height="572" srcset="https://itsfoss.com/content/images/size/w600/2023/05/Iosevka-.png 600w, https://itsfoss.com/content/images/2023/05/Iosevka-.png 822w" sizes="(min-width: 720px) 720px"></figure><p><a href="https://github.com/be5invis/Iosevka?ref=itsfoss.com">Iosevka</a> is a clean-looking versatile open-source font built to write code and use in terminals and technical documents.</p><p>You can get installation instructions from its GitHub page for other platforms, including Linux.</p><h2 id="6-jetbrains-mono">6. JetBrains mono</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/jetbrains-mono.png" class="kg-image" alt="10 Beautiful Fonts for Your Linux Terminal" loading="lazy" width="822" height="572" srcset="https://itsfoss.com/content/images/size/w600/2023/05/jetbrains-mono.png 600w, https://itsfoss.com/content/images/2023/05/jetbrains-mono.png 822w" sizes="(min-width: 720px) 720px"></figure><p>The free and open-source typeface is tailored for developers, i.e., <a href="https://github.com/JetBrains/JetBrainsMono?ref=itsfoss.com">JetBrains Mono</a>.</p><p>As the name suggests, it is the default font used by the popular developer tools under <a href="https://www.jetbrains.com/?ref=itsfoss.com">JetBrains</a>.</p><h2 id="7-meslo-nf">7. Meslo NF</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/mesloNF.png" class="kg-image" alt="10 Beautiful Fonts for Your Linux Terminal" loading="lazy" width="822" height="572" srcset="https://itsfoss.com/content/images/size/w600/2023/05/mesloNF.png 600w, https://itsfoss.com/content/images/2023/05/mesloNF.png 822w" sizes="(min-width: 720px) 720px"></figure><p>Meslo NF is a font that supports ASCII and icons well in the terminal. </p><p>A part of &quot;<a href="https://github.com/ryanoasis/nerd-fonts/?ref=itsfoss.com">Nerd Fonts</a>&quot; collection on GitHub, which features good-looking fonts for coding and terminal. You can find the font among the assets in its <a href="https://github.com/ryanoasis/nerd-fonts/releases/tag/v3.0.0?ref=itsfoss.com">GitHub releases</a> section.</p><p>It looks excellent in shells like Zsh, fish, and others. You can check out our article on lesser-known <a href="https://itsfoss.com/shells-linux/">Linux shells</a> to explore others.</p><p><strong>Suggested Read &#x1F4D6;</strong></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/shells-linux/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Beyond Bash: 9 Lesser-Known Linux Shells and Their Capabilities</div><div class="kg-bookmark-description">You probably already know about the popular shells like bash and zsh. Let us explore some interesting and unique shells.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="10 Beautiful Fonts for Your Linux Terminal"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Sreenath</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/01/lesser-known-shells.png" alt="10 Beautiful Fonts for Your Linux Terminal"></div></a></figure><h2 id="8-monoid">8. Monoid</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/moniosome.png" class="kg-image" alt="10 Beautiful Fonts for Your Linux Terminal" loading="lazy" width="876" height="665" srcset="https://itsfoss.com/content/images/size/w600/2023/05/moniosome.png 600w, https://itsfoss.com/content/images/2023/05/moniosome.png 876w" sizes="(min-width: 720px) 720px"></figure><p><a href="https://larsenwork.com/monoid/?ref=itsfoss.com">Monoid</a> is another open-source font that aims to be useful for coding. With the usual ligature support and light-dark variants, it should be a nice choice for terminals.</p><h2 id="9-ubuntu-monospace">9. Ubuntu Monospace</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/ubuntu-monospace.png" class="kg-image" alt="10 Beautiful Fonts for Your Linux Terminal" loading="lazy" width="822" height="572" srcset="https://itsfoss.com/content/images/size/w600/2023/05/ubuntu-monospace.png 600w, https://itsfoss.com/content/images/2023/05/ubuntu-monospace.png 822w" sizes="(min-width: 720px) 720px"></figure><p>We all love Ubuntu&apos;s default font, i.e., <a href="https://design.ubuntu.com/font?ref=itsfoss.com">Ubuntu Monospace</a>. It is optimized for many languages, high-resolution screens, and good readability.</p><p>You do not need to install it if you already use Ubuntu.</p><h2 id="10-sourcecode-pro">10. SourceCode Pro</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/source-code-pro.png" class="kg-image" alt="10 Beautiful Fonts for Your Linux Terminal" loading="lazy" width="822" height="572" srcset="https://itsfoss.com/content/images/size/w600/2023/05/source-code-pro.png 600w, https://itsfoss.com/content/images/2023/05/source-code-pro.png 822w" sizes="(min-width: 720px) 720px"></figure><p><a href="https://github.com/adobe-fonts/source-code-pro?ref=itsfoss.com">Source Code Pro</a> is a good mix of everything. While it is optimized for coding environments and developed by Adobe, it offers good readability and look-for terminals.</p><p><strong>Recommended Read &#x1F4D6;</strong></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/linux-terminal-emulators/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Top 14 Terminal Emulators for Linux (With Extra Features or Amazing Looks)</div><div class="kg-bookmark-description">Want a terminal that looks cool or has extra features? Here are the best Linux terminal emulators you can get.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="10 Beautiful Fonts for Your Linux Terminal"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2021/03/best-terminal-emulators.png" alt="10 Beautiful Fonts for Your Linux Terminal"></div></a></figure><h2 id="how-to-install-these-fonts">How to Install These Fonts?</h2><p>You can easily install a font by downloading the TTF or OTF file and then double-clicking on them to open it using Font Viewer to install. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/05/image-6.png" class="kg-image" alt="10 Beautiful Fonts for Your Linux Terminal" loading="lazy" width="800" height="463" srcset="https://itsfoss.com/content/images/size/w600/2023/05/image-6.png 600w, https://itsfoss.com/content/images/2023/05/image-6.png 800w" sizes="(min-width: 720px) 720px"><figcaption>Double click on the ttf file to install it</figcaption></figure><p>To install multiple fonts simultaneously, you can make a new <code>.fonts</code> folder in the home directory and put the font files there. You can check out our guide on <a href="https://itsfoss.com/install-fonts-ubuntu/"><strong>installing new fonts</strong></a> for more detailed information.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/install-fonts-ubuntu/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How to Install New Fonts in Ubuntu and Other Linux Distros</div><div class="kg-bookmark-description">Wondering how to install additional fonts in Ubuntu Linux? Here is a screenshot tutorial to show you how to easily install new fonts.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="10 Beautiful Fonts for Your Linux Terminal"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2015/01/Install-new-fonts-ubuntu.png" alt="10 Beautiful Fonts for Your Linux Terminal"></div></a></figure><h2 id="more-ways-to-customize-terminal">More ways to customize terminal</h2><p>Here are a few more ways to customize the look and feel of your terminal.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/customize-linux-terminal/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">5 Tweaks to Customize the Look of Your Linux Terminal</div><div class="kg-bookmark-description">Want a beautiful-looking Linux terminal? Here are several ways to tweak the look and feel of your current terminal and make it look beautiful.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="10 Beautiful Fonts for Your Linux Terminal"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2021/02/linux-terminal-customization.jpg" alt="10 Beautiful Fonts for Your Linux Terminal"></div></a></figure><p>Another interesting tool that automatically changes the color scheme of the terminal based on your desktop wallpaper. How cool is that!</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/pywal/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Automatically Change Color Scheme of Your Linux Terminal Based on Your Wallpaper</div><div class="kg-bookmark-description">If you are It&#x2019;s FOSS newsletter subscriber, you already know that we have started a new &#x2018;Terminal Tuesday&#x2019; series. In this, you&#x2019;ll get to read about command line tools or tips/tricks to help you in the terminal. Terminal is not all about serious work, it can be</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="10 Beautiful Fonts for Your Linux Terminal"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2020/08/pywal-linux.jpg" alt="10 Beautiful Fonts for Your Linux Terminal"></div></a></figure><p>&#x1F4AC;<em>What is your favorite on the list? Do you have better suggestions? Do share your thoughts in the comments below.</em></p>]]></content:encoded></item><item><title><![CDATA[FOSS Weekly #23.18: Ubuntu 18.04 to Discontinue, Debian 12 Features, Qemu VM and More]]></title><description><![CDATA[Ubuntu 18.04 is ending soon and Debian 12 is coming soon. And the puzzles make a comeback on It's FOSS but with a twist.]]></description><link>https://itsfoss.com/newsletter/foss-weekly-23-18/</link><guid isPermaLink="false">64522bab71e1e408c0cee55e</guid><category><![CDATA[Newsletter]]></category><dc:creator><![CDATA[Abhishek Prakash]]></dc:creator><pubDate>Thu, 04 May 2023 06:37:46 GMT</pubDate><media:content url="https://itsfoss.com/content/images/2023/05/foss-weekly-23-18.png" medium="image"/><content:encoded><![CDATA[<img src="https://itsfoss.com/content/images/2023/05/foss-weekly-23-18.png" alt="FOSS Weekly #23.18: Ubuntu 18.04 to Discontinue, Debian 12 Features, Qemu VM and More"><p>Ubuntu 18.04 LTS is reaching its end of life by the end of the month. What to do now? We have a <a href="https://news.itsfoss.com/ubuntu-18-04-eol/?ref=itsfoss.com">few suggestions</a>. Debian 12 is gearing up for next month&apos;s launch. Time to <a href="https://news.itsfoss.com/debian-12-features/?ref=itsfoss.com">check its features</a>.</p><p>The motto of It&apos;s FOSS is to educate on Linux and open source. And this is why I don&apos;t want to restrict access to educational content. However, I also want to give &apos;something extra&apos; to our Pro members to thank them for their support.</p><p>For that, <a href="https://itsfoss.com/puzzle/">we have created a puzzles section</a>. Pro members can log in with their accounts and play the puzzles (crossword, find the word, etc.) online. This is fun content. So the paying supporters get extra, and everyone gets to read and learn from the educational content. </p><p>Win-win&#x1F918;</p><p><strong>&#x1F4AC; Let&apos;s see what else you have in this edition of FOSS Weekly:</strong></p><ul><li>We continue our Rust Basics series</li><li>An early look at GNOME&apos;s new camera app</li><li>Interview with Stu Keroff, a teacher who built Linux-based computer lab</li><li>More Linux news, videos, and of course, memes!</li></ul><hr><h2 id="%F0%9F%93%B0-linux-news">&#x1F4F0; Linux News</h2><p>Linux Mint 21.02 <a href="https://news.itsfoss.com/linux-mint-21-2-tooltips/?ref=itsfoss.com">to feature</a> revamped tooltips and notifications.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/ubuntu-18-04-eol/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Ubuntu 18.04 is Reaching End of Life: Here&#x2019;s What You Can Do</div><div class="kg-bookmark-description">Ubuntu 18.04 is reaching end of life soon. Here&#x2019;s what you need to know.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png" alt="FOSS Weekly #23.18: Ubuntu 18.04 to Discontinue, Debian 12 Features, Qemu VM and More"><span class="kg-bookmark-author">It&apos;s FOSS News</span><span class="kg-bookmark-publisher">Sourav Rudra</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://news.itsfoss.com/content/images/2023/05/ubuntu-18-04-eol.png" alt="FOSS Weekly #23.18: Ubuntu 18.04 to Discontinue, Debian 12 Features, Qemu VM and More"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/debian-12-features/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Debian 12 &#x2018;Bookworm&#x2019; New Features and Release Date</div><div class="kg-bookmark-description">Debian 12 is due for release soon. Learn more about its features and the release date.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png" alt="FOSS Weekly #23.18: Ubuntu 18.04 to Discontinue, Debian 12 Features, Qemu VM and More"><span class="kg-bookmark-author">It&apos;s FOSS News</span><span class="kg-bookmark-publisher">Sourav Rudra</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://news.itsfoss.com/content/images/2023/04/debian-12-new-features.png" alt="FOSS Weekly #23.18: Ubuntu 18.04 to Discontinue, Debian 12 Features, Qemu VM and More"></div></a></figure><hr><h2 id="%F0%9F%8E%99%EF%B8%8Finterview-with-stu-keroff">&#x1F399;&#xFE0F;Interview With Stu Keroff</h2><p>Meet the teacher who makes learning Linux cool and exciting for students.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/interview-stu-keroff/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x201C;Meet the Techs of Tomorrow Where They Are Today&#x201D;: A Conversation With Stu Keroff</div><div class="kg-bookmark-description">Meet the teacher who makes learning Linux cool and exciting for students.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png" alt="FOSS Weekly #23.18: Ubuntu 18.04 to Discontinue, Debian 12 Features, Qemu VM and More"><span class="kg-bookmark-author">It&apos;s FOSS News</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://news.itsfoss.com/content/images/2023/04/interview-with-stu-teacher.png" alt="FOSS Weekly #23.18: Ubuntu 18.04 to Discontinue, Debian 12 Features, Qemu VM and More"></div></a></figure><h2 id="%F0%9F%A7%AE-tutorials">&#x1F9EE; Tutorials</h2><p>Learn how to use conditional statements effectively in the sixth edition of our Rust Basics series.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/rust-if-else/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Rust Basics Series #6: Using If Else</div><div class="kg-bookmark-description">You can control the flow of your program by using conditional statements. Learn to use if-else in Rust.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.18: Ubuntu 18.04 to Discontinue, Debian 12 Features, Qemu VM and More"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Pratham Patel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/conditonal-statements-in-rust-programming-language.png" alt="FOSS Weekly #23.18: Ubuntu 18.04 to Discontinue, Debian 12 Features, Qemu VM and More"></div></a></figure><p>Qemu is one of the fastest hypervisors out there for Linux. Learn to use it on Ubuntu (and perhaps other Linux distributions).</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/qemu-ubuntu/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How to Install and Use Qemu on Ubuntu</div><div class="kg-bookmark-description">Learn how to properly install Qemu in Ubuntu and then configure a Linux distro in VM.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.18: Ubuntu 18.04 to Discontinue, Debian 12 Features, Qemu VM and More"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Sagar Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/04/install-qemu-on-ubuntu.png" alt="FOSS Weekly #23.18: Ubuntu 18.04 to Discontinue, Debian 12 Features, Qemu VM and More"></div></a></figure><hr><h2 id="%F0%9F%93%B9-what-we-are-watching">&#x1F4F9; What we are watching</h2><p>If you recently installed Ubuntu 23.04, you could benefit from this video.</p><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/n265uqEqCIg?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="10 Essential Things to Do After Installing Ubuntu 23.04 Lunar Lobster"></iframe></figure><hr><h2 id="%E2%9C%A8-application-highlights">&#x2728; Application highlights</h2><p>GNOME is working on revamping another of its core tool.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/gnome-snapshot/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Say Cheese to the Future: Snapshot is GNOME&#x2019;s Next-Gen Camera App</div><div class="kg-bookmark-description">A new GNOME camera app starts sailing to replace the classic Cheese utility.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png" alt="FOSS Weekly #23.18: Ubuntu 18.04 to Discontinue, Debian 12 Features, Qemu VM and More"><span class="kg-bookmark-author">It&apos;s FOSS News</span><span class="kg-bookmark-publisher">Sourav Rudra</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://news.itsfoss.com/content/images/2023/05/snapshot-gnome-app.jpg" alt="FOSS Weekly #23.18: Ubuntu 18.04 to Discontinue, Debian 12 Features, Qemu VM and More"></div></a></figure><p>Control your Linux machine remotely using these tools! &#x1F5A5;&#xFE0F;&#x1F427;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/remote-desktop-tools/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">8 Best Remote Desktop Tools for Linux</div><div class="kg-bookmark-description">Here, we list the best remote desktop tools for Linux along with their pros and cons.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.18: Ubuntu 18.04 to Discontinue, Debian 12 Features, Qemu VM and More"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/list-of-remote-desktop-tools.png" alt="FOSS Weekly #23.18: Ubuntu 18.04 to Discontinue, Debian 12 Features, Qemu VM and More"></div></a></figure><hr><h2 id="%F0%9F%9B%8D%EF%B8%8F-interesting-offer">&#x1F6CD;&#xFE0F; Interesting offer</h2><p>The folks over at No Starch Press have yet another useful bundle, this time for learning Python programming.</p><p>Be sure to check it out; a portion of the proceeds go to the <a href="https://www.python.org/psf-landing/?ref=itsfoss.com">Python Software Foundation</a>.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.humblebundle.com/books/python-no-starch-books?partner=itsfoss&amp;ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Humble Tech Book Bundle: Python by No Starch</div><div class="kg-bookmark-description">We&#x2019;ve teamed up with No Starch Press for our newest bundle. Get books like Python for Kids and Beyond the Basic Stuff with Python. Plus, pay what you want &amp; support charity!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cdn.humblebundle.com/static/hashed/03df0490a53d595fd930f9fff52038366d60a05d.png" alt="FOSS Weekly #23.18: Ubuntu 18.04 to Discontinue, Debian 12 Features, Qemu VM and More"><span class="kg-bookmark-author">Humble Bundle</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://hb.imgix.net/75e1c3e16619e8c9f5ef6ddb93f3bbc0c3b098e1.png?auto=compress,format&amp;h=630&amp;w=1200&amp;s=d4c213287d9081c0d63c17f1eef0f4a8" alt="FOSS Weekly #23.18: Ubuntu 18.04 to Discontinue, Debian 12 Features, Qemu VM and More"></div></a></figure><hr><h2 id="%F0%9F%A4%A3-meme-of-the-week">&#x1F923; Meme of the week</h2><p>There is an impostor among us! Ubuntu users will understand :)</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/memes-1.png" class="kg-image" alt="FOSS Weekly #23.18: Ubuntu 18.04 to Discontinue, Debian 12 Features, Qemu VM and More" loading="lazy" width="1080" height="1080" srcset="https://itsfoss.com/content/images/size/w600/2023/05/memes-1.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/memes-1.png 1000w, https://itsfoss.com/content/images/2023/05/memes-1.png 1080w" sizes="(min-width: 720px) 720px"></figure><hr><h2 id="%F0%9F%97%93%EF%B8%8F-trivia">&#x1F5D3;&#xFE0F; Trivia</h2><p>The 4th of May is observed as Star Wars Day. The date originates from the pun &quot;May the Fourth be with you&quot;, a variant of the famous Star Wars catchphrase &quot;May the Force be with you&quot;. </p><p>We, FOSSers, could rephrase it as &apos;May the FOSS be with you&apos;?</p><hr><h2 id="%F0%9F%A7%A9-puzzle-for-pro-members-only">&#x1F9E9; Puzzle (for Pro members only)</h2><p>This week&apos;s puzzle is a crossword consisting of popular open source applications for Linux.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/puzzle/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Puzzle of The Week</div><div class="kg-bookmark-description">Exercise those &#x2018;little gray cells&#x2019; of yours and solve this puzzle.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.18: Ubuntu 18.04 to Discontinue, Debian 12 Features, Qemu VM and More"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/puzzle-of-the-week.png" alt="FOSS Weekly #23.18: Ubuntu 18.04 to Discontinue, Debian 12 Features, Qemu VM and More"></div></a></figure><hr><h2 id="%E2%9D%A4%EF%B8%8F-enjoying-foss-weekly">&#x2764;&#xFE0F; Enjoying FOSS Weekly?</h2><p><strong>Forward it to Linux-using friends</strong> and encourage them to subscribe (hint: <a href="https://itsfoss.com/signup/">it&apos;s here</a>).</p><p>Become a Pro member and show your support &#x1F64F;</p><p><strong>Something else?</strong> Share it with me by pressing the reply button.</p><p>Keep on learning with It&apos;s FOSS :)</p>]]></content:encoded></item><item><title><![CDATA[8 Best Remote Desktop Tools for Linux]]></title><description><![CDATA[Here, we list the best remote desktop tools for Linux along with their pros and cons.]]></description><link>https://itsfoss.com/remote-desktop-tools/</link><guid isPermaLink="false">63a95b043f0e45a074ffb9c7</guid><category><![CDATA[Software Recommendation]]></category><dc:creator><![CDATA[Ankush Das]]></dc:creator><pubDate>Wed, 03 May 2023 07:42:05 GMT</pubDate><media:content url="https://itsfoss.com/content/images/2023/05/list-of-remote-desktop-tools.png" medium="image"/><content:encoded><![CDATA[<img src="https://itsfoss.com/content/images/2023/05/list-of-remote-desktop-tools.png" alt="8 Best Remote Desktop Tools for Linux"><p>Remotely connecting to a computer has several advantages. Maybe you want to help troubleshoot an issue on your friend&apos;s desktop, or maybe you want to use another desktop session remotely for work.</p><p>Whatever your use case is, remote desktop tools on Linux allow you to connect easily. Of course, every tool is built differently. So, you can pick the one that suits your personal or professional requirements.</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x270B;</div><div class="kg-callout-text"><strong>Non-FOSS Warning!</strong> Some applications mentioned here are not open source. They have been included in the context of Linux usage. Such applications are duly marked.</div></div><p>Here are the best remote desktop tools for Linux:</p><h2 id="1-remmina">1. Remmina</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/04/remmina.png" class="kg-image" alt="8 Best Remote Desktop Tools for Linux" loading="lazy" width="1481" height="681" srcset="https://itsfoss.com/content/images/size/w600/2023/04/remmina.png 600w, https://itsfoss.com/content/images/size/w1000/2023/04/remmina.png 1000w, https://itsfoss.com/content/images/2023/04/remmina.png 1481w" sizes="(min-width: 720px) 720px"></figure><p><a href="https://remmina.org/?ref=itsfoss.com">Remmina</a> is a versatile free and open-source remote desktop client with <strong>support for various protocols</strong> that include RDP, VNC, SPICE, X2GO, SSH, and HTTP(S). </p><p>If you want a capable open-source remote desktop tool, you cannot go wrong with it. </p><p>Along with the protocol support, it has features to let you easily take screenshots, resume connection, scale quality, configure resolutions, and more.</p><p>Moreover, the features can be extended with the help of plugins.</p><p><strong>Pros:</strong></p><ul><li>Written in GTK, providing native support to Linux distributions.</li><li>Quick connections are set up through the server address.</li><li>Ability to save connection profiles</li><li>Support for multiple protocols</li><li>Plugin to extend functionalities like Kiosk mode, Proxy support, terminal emulator, and more.</li></ul><p><strong>Cons:</strong></p><ul><li>Available only for Linux</li><li>It may not be very easy to use for new users</li></ul><p><strong>Installation </strong>&#x1F4E5; </p><p>Reminna is available in most of the distribution repositories. However, to ensure you get the latest version, you can install it as a Flatpak via <a href="https://flathub.org/apps/org.remmina.Remmina?ref=itsfoss.com">Flathub</a> or Snap, as you prefer. </p><p>For Flatpak, you can use the following command (if not using the software center) or follow our <a href="https://itsfoss.com/flatpak-guide/">Flatpak guide</a> to set it up.</p><pre><code>flatpak install flathub org.remmina.Remmina</code></pre><p><strong>Suggested Read &#x1F4D6;</strong></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/set-up-ssh-ubuntu/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Complete Guide to Configuring SSH in Ubuntu</div><div class="kg-bookmark-description">SSH has become the default method of accessing a remote Linux server these days. SSH stands for Secure Shell and it&#x2019;s a powerful, efficient, and popular network protocol used to establish communication between two computers in a remote fashion. And let&#x2019;s not forget the secure part of its</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="8 Best Remote Desktop Tools for Linux"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Chris Patrick Carias Stas</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2021/05/set-up-ssh-ubuntu.jpg" alt="8 Best Remote Desktop Tools for Linux"></div></a></figure><h2 id="2-gnome-connections">2. GNOME Connections</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/04/gnome-connections.png" class="kg-image" alt="8 Best Remote Desktop Tools for Linux" loading="lazy" width="1025" height="737" srcset="https://itsfoss.com/content/images/size/w600/2023/04/gnome-connections.png 600w, https://itsfoss.com/content/images/size/w1000/2023/04/gnome-connections.png 1000w, https://itsfoss.com/content/images/2023/04/gnome-connections.png 1025w" sizes="(min-width: 720px) 720px"></figure><p><a href="https://apps.gnome.org/en-GB/app/org.gnome.Connections/?ref=itsfoss.com">GNOME Connections</a> is a <strong>straightforward app</strong> that lets you quickly connect to a remote desktop using RDP/VNC protocol.</p><p>It does not support other protocols or any fancy features. You get a simple one-click app with support for scaling, bandwidth tweaks, and a couple more options.</p><p><strong>Pros:</strong></p><ul><li>Easy to use and simple</li><li>Tailored for GNOME but can work on other desktop environments</li></ul><p><strong>Cons:</strong></p><ul><li>It does not support many protocols</li><li>It may not offer all kinds of functionalities for most, and no plugin support</li></ul><p><strong>Installation </strong>&#x1F4E5; </p><p>You can install GNOME Connections through <a href="https://flathub.org/apps/org.gnome.Connections?ref=itsfoss.com">Flathub</a> on any distro of your choice.</p><p>If you already have Flatpak setup, use the command below to install it via the terminal:</p><pre><code>flatpak install flathub org.gnome.Connections</code></pre><h2 id="3-x2go">3. X2Go</h2><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/05/x2go-client.png" class="kg-image" alt="8 Best Remote Desktop Tools for Linux" loading="lazy" width="844" height="682" srcset="https://itsfoss.com/content/images/size/w600/2023/05/x2go-client.png 600w, https://itsfoss.com/content/images/2023/05/x2go-client.png 844w" sizes="(min-width: 720px) 720px"><figcaption>x2go screenshot</figcaption></figure><p><a href="https://wiki.x2go.org/doku.php/start?ref=itsfoss.com">X2Go</a> is an open-source, cross-platform remote desktop client with a client-server architecture. The remote machine must have an X2Go server installed, which should be a Linux system. And you can have X2Go client installed on any platform of your choice and then connect using it to the Linux remote system.</p><p>You can connect to Windows as well, using the client software, because you do not have the server available to be installed for other platforms.</p><p>So, X2Go is an excellent choice for users frequently connecting to Linux computers.</p><p><strong>Pros:</strong></p><ul><li>Linux server support</li><li>Cross-platform clients</li><li>SSH access, printer sharing, clipboard mode, and sound support</li></ul><p><strong>Cons:</strong></p><ul><li>It uses a modified <a href="https://en.wikipedia.org/wiki/NX_technology?ref=itsfoss.com">NX 3 protocol</a> and does not support other protocols</li></ul><p><strong>Installation </strong>&#x1F4E5; </p><p>X2Go client is available in the software center for Ubuntu. Alternatively, you can use the below command in Debian-based Linux distribution.</p><pre><code>sudo get install x2goclient</code></pre><p>To install the x2go server, use the below command:</p><pre><code>sudo add-apt-repository ppa:x2go/stable
sudo apt update
sudo apt install x2goserver x2goserver-xsession</code></pre><p>You can explore more on its <a href="https://wiki.x2go.org/doku.php/doc:installation:x2goserver?ref=itsfoss.com">official documentation</a>. </p><p><strong>Suggested Read &#x1F4D6;</strong></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/improve-privacy/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">11 Ways to Improve Your Privacy</div><div class="kg-bookmark-description">Bring your A game to improve your privacy online, whether you are a Linux user or not. Follow these tips for a secure experience!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="8 Best Remote Desktop Tools for Linux"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/04/ways-to-enhance-your-privacy.png" alt="8 Best Remote Desktop Tools for Linux"></div></a></figure><h2 id="4-krdc">4. KRDC</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/krdc.png" class="kg-image" alt="8 Best Remote Desktop Tools for Linux" loading="lazy" width="985" height="542" srcset="https://itsfoss.com/content/images/size/w600/2023/05/krdc.png 600w, https://itsfoss.com/content/images/2023/05/krdc.png 985w" sizes="(min-width: 720px) 720px"></figure><p><a href="https://apps.kde.org/krdc/?ref=itsfoss.com">KRDC</a> is a <strong>free and open-source remote desktop tool built by KDE</strong>. You can find it pre-installed in some KDE-powered distributions and install it on any distribution.</p><p>It supports two protocols that include RDP and VNC. You have all the essential options like scaling and remote session management.</p><p><strong>Pros:</strong></p><ul><li>Easy to use</li><li>Remember connection history</li><li>Native Linux support</li><li>Scaling support</li></ul><p><strong>Cons:</strong></p><ul><li>No cross-platform availability; Linux only</li></ul><p><strong>Installation </strong>&#x1F4E5; </p><p>You can find KRDC from KDE&apos;s Discover Center or install it using <a href="https://flathub.org/apps/org.kde.krdc?ref=itsfoss.com">Flathub</a> or Snap.</p><p>If you want to install the Flatpak via the terminal, use the command below:</p><pre><code>flatpak install flathub org.kde.krdc</code></pre><h2 id="5-tigervnc">5. TigerVNC</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/tigervnc-viewer.png" class="kg-image" alt="8 Best Remote Desktop Tools for Linux" loading="lazy" width="688" height="361" srcset="https://itsfoss.com/content/images/size/w600/2023/05/tigervnc-viewer.png 600w, https://itsfoss.com/content/images/2023/05/tigervnc-viewer.png 688w"></figure><p>TigerVNC is a free and open-source remote computer connection tool with a client-server architecture.</p><p>In other words, you need to install the server on the remote computer and the client program to connect from.</p><p>The client program is pretty simple, with essential options like display settings and multiple tweaks for compression. TigerVNC manages to <strong>provide you with a fast experience</strong> for the remote connection compared to some other options.</p><p><strong>Pros:</strong></p><ul><li>Cross-platform</li><li>Fast performance</li></ul><p><strong>Cons:</strong></p><ul><li>GUI feels dated</li><li>It does not support multiple protocols</li></ul><p><strong>Installation </strong>&#x1F4E5; </p><p>You can find packages from its <a href="https://github.com/TigerVNC/tigervnc/releases?ref=itsfoss.com">GitHub releases section</a> or grab the binaries on <a href="https://sourceforge.net/projects/tigervnc/files/stable/1.13.1/?ref=itsfoss.com">SourceForge</a>. Refer to our <a href="https://itsfoss.com/install-deb-files-ubuntu/">deb file installation</a> article if you need help with it.</p><h2 id="6-teamviewer-not-foss-">6. TeamViewer (Not FOSS)</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/teamviewer-linux.png" class="kg-image" alt="8 Best Remote Desktop Tools for Linux" loading="lazy" width="648" height="541" srcset="https://itsfoss.com/content/images/size/w600/2023/05/teamviewer-linux.png 600w, https://itsfoss.com/content/images/2023/05/teamviewer-linux.png 648w"></figure><p><a href="https://www.teamviewer.com/en/products/teamviewer/?ref=itsfoss.com">TeamViewer</a> is a <strong>popular tool </strong>available cross-platform, even with the option to connect through mobile devices. Interestingly, there&apos;s <strong>a web client available. So, to connect to other systems, you do not need the client installed on your computer.</strong></p><p>It is one of the oldest remote desktop-sharing tools out there. While it mentions <strong>experimental Wayland support exists, TeamViewer recommends an Xorg session</strong>.</p><p>Users frequently use TeamViewer for remote support and collaboration. While it is free for personal use cases, it needs a commercial license for businesses and enterprises.</p><p>Unlike some other options, you do not need an IP address. With TeamViewer installed on the remote computer, you get a <strong>unique ID</strong>, share it with the user you want to authorize connecting remotely, and that&apos;s it!</p><p><strong>Pros:</strong></p><ul><li>Intuitive user experience</li><li>Good for beginners</li><li>Mobile support</li></ul><p><strong>Cons:</strong></p><ul><li>Need to create an account to enable desktop sharing</li><li>Not a lightweight tool</li><li>Not open-source</li></ul><p><strong>Installation </strong>&#x1F4E5; </p><p>TeamViewer provides binaries for Linux distributions for easy installation. You can grab the .deb package for Ubuntu or refer to our <a href="https://itsfoss.com/teamviewer-linux/">TeamViewer guide</a> for help.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/teamviewer-linux/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How to Install and Use TeamViewer on Linux [Complete Guide]</div><div class="kg-bookmark-description">Brief: Step-by-step beginner&#x2019;s guide to installing TeamViewer on Linux. It also explains how to use TeamViewer on Linux. TeamViewer is a remote desktop application primarily used to connect to a different system quickly and securely. It lets you remotely connect to someone&#x2019;s desktop, transfer f&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="8 Best Remote Desktop Tools for Linux"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Sreenath</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2017/11/install-teamviewer-on-linux.png" alt="8 Best Remote Desktop Tools for Linux"></div></a></figure><h2 id="7-anydesk-not-foss-">7. AnyDesk (Not FOSS)</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/anydesk-linux.png" class="kg-image" alt="8 Best Remote Desktop Tools for Linux" loading="lazy" width="1245" height="763" srcset="https://itsfoss.com/content/images/size/w600/2023/05/anydesk-linux.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/anydesk-linux.png 1000w, https://itsfoss.com/content/images/2023/05/anydesk-linux.png 1245w" sizes="(min-width: 720px) 720px"></figure><p><a href="https://anydesk.com/?ref=itsfoss.com">AnyDesk</a> is one of the industry-leading remote desktop tools with a nice feature set and secure access.</p><p>You can use it for free, along with mobile support for Android and iOS. You will need to purchase a license to unlock all of its features.</p><p><strong>Pros:</strong></p><ul><li>Cross-platform support</li><li>Mobile support</li></ul><p><strong>Cons:</strong></p><ul><li>Limited functionality for free</li><li>Not open-source</li></ul><p><strong>Installation </strong>&#x1F4E5; </p><p>You can find binaries for all kinds of Linux distributions on its <a href="https://anydesk.com/en/downloads/linux?ref=itsfoss.com">download page</a>, supporting Ubuntu, openSUSE, and RHEL.</p><h2 id="8-apache-guacamole">8. Apache Guacamole</h2><p><a href="https://guacamole.apache.org/?ref=itsfoss.com">Apache Guacamole</a> is a special remote desktop tool for cloud systems (or servers).</p><p>If your server runs an operating system, you can install Apache Guacamole and access it from any other platform via the web browser. Hence, it pitches itself as a clientless remote desktop gateway.</p><p><strong>Pros:</strong></p><ul><li>Tailored for cloud computing</li><li>Free and open-source</li></ul><p><strong>Cons:</strong></p><ul><li>A specialized tool not fit for everyone</li></ul><p><strong>Recommended Read &#x1F4D6;</strong></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/essential-linux-applications/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Best Linux Software: 39 Essential Linux Apps [2023]</div><div class="kg-bookmark-description">What are the must-have applications for Linux? The answer is subjective. Here, we&#x2019;ve listed some of the best options.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="8 Best Remote Desktop Tools for Linux"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/04/essential-linux-apps.png" alt="8 Best Remote Desktop Tools for Linux"></div></a></figure><h2 id="wrapping-up">Wrapping Up</h2><p>There are some more open-source options like <a href="https://www.freerdp.com/?ref=itsfoss.com">FreeRDP</a> and <a href="http://www.xrdp.org/?ref=itsfoss.com">XRDP</a>. FreeRDP did not work for me, but it is actively maintained. So, you can give it a try.</p><p>XRDP needs to be installed from the source. Feel free to look at it if you want to go through the hassle of <a href="https://itsfoss.com/install-software-from-source-code/">compiling from source</a>.</p><p><strong>&#x1F5E8; <em>Let us know which one prefer from the list or if you have something else to suggest. We might update the list with your suggestion.</em></strong></p>]]></content:encoded></item><item><title><![CDATA[Rust Basics Series #6: Conditional Statements]]></title><description><![CDATA[You can control the flow of your program by using conditional statements. Learn to use if-else in Rust.]]></description><link>https://itsfoss.com/rust-if-else/</link><guid isPermaLink="false">63eb248f07eb195c59be7d21</guid><category><![CDATA[Rust]]></category><dc:creator><![CDATA[Pratham Patel]]></dc:creator><pubDate>Mon, 01 May 2023 04:38:35 GMT</pubDate><media:content url="https://itsfoss.com/content/images/2023/05/conditonal-statements-in-rust-programming-language.png" medium="image"/><content:encoded><![CDATA[<img src="https://itsfoss.com/content/images/2023/05/conditonal-statements-in-rust-programming-language.png" alt="Rust Basics Series #6: Conditional Statements"><p>In the <a href="https://itsfoss.com/rust-functions">previous article</a> in this series, you looked at Functions. In this article, let&apos;s look at managing the control flow of our Rust program using conditional statements.</p><h2 id="what-are-conditional-statements">What are conditional statements?</h2><p>When writing some code, one of the most common tasks is to perform a check for certain conditions to be <code>true</code> or <code>false</code>. &quot;If the temperature is higher than 35&#xB0;C, turn on the air conditioner.&quot;</p><p>By using keywords like <code>if</code> and <code>else</code> (sometimes in combination), a programmer can change what the program does based on conditions like the number of arguments provided, the options passed from the command line, the names of files, error occurrence, etc.</p><p>So it is critical for a programmer to know control flow in any language, let alone in Rust.</p><h3 id="conditional-operators">Conditional operators</h3><p>The following table shows all the frequently used operators for an individual condition:</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th><strong>Operator</strong></th>
<th><strong>Example</strong></th>
<th><strong>Interpretation</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td><code>&gt;</code></td>
<td><code>a &gt; b</code></td>
<td><code>a</code> is <strong>greater</strong> than <code>b</code></td>
</tr>

    <tr>
<td><code>&lt;</code></td>
<td><code>a &lt; b</code></td>
<td><code>a</code> is <strong>less</strong> than <code>b</code></td>
</tr>

<tr>
<td><code>==</code></td>
<td><code>a == b</code></td>
<td><code>a</code> is <strong>equal</strong> to <code>b</code></td>
</tr>
<tr>
<td><code>!=</code></td>
<td><code>a != b</code></td>
<td><code>a</code> is <strong>not equal</strong> to <code>b</code></td>
</tr>
<tr>
<td><code>&gt;=</code></td>
<td><code>a &gt;= b</code></td>
<td><code>a</code> is <strong>greater than</strong> OR <strong>equal</strong> to <code>b</code></td>
</tr>
<tr>
<td><code>&lt;=</code></td>
<td><code>a &lt;= b</code></td>
<td><code>a</code> is <strong>less than</strong> OR <strong>equal</strong> to <code>b</code></td>
</tr>
</tbody>
</table><!--kg-card-end: html--><p>And following is the table for logical operators, they are used between one or more conditions:</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th>Operator</th>
<th>Example</th>
<th>Interpretation</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>||</code> (Logical OR)</td>
<td><code>COND1 || COND2</code></td>
<td>At least one of the condition <code>COND1</code> or <code>COND2</code> evaluates to <code>true</code></td>
</tr>
<tr>
<td><code>&amp;&amp;</code> (Logical AND)</td>
<td><code>COND1 &amp;&amp; COND2</code></td>
<td><strong>All</strong> conditions evaluate to <code>true</code></td>
</tr>
<tr>
<td><code>!</code> (Logical NOT)</td>
<td><code>!COND</code></td>
<td>Opposite boolean value of what <code>COND</code> evaluates to</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4CB;</div><div class="kg-callout-text">Like in Mathematics, you can use parentheses (round brackets) to specify the precedence of an operation compared to others.</div></div><h2 id="using-if-else">Using if else</h2><p>To handle the basic flow of Rust code, two keywords are used: <code>if</code> and <code>else</code>. This helps you create two &quot;execution paths&quot; based on the state of the provided condition.</p><p>The syntax of a simple if block with an alternative execution path is as follows:</p><pre><code class="language-rust">if condition {
    &lt;statement(s)&gt;;
} else {
    &lt;statement(s)&gt;;
}</code></pre><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4CB;</div><div class="kg-callout-text">When only one condition is provided, enclosing it in round brackets is not compulsory. The use of round brackets is optional, according to the syntax. You should still use them to specify precedence and for better readability.</div></div><p>Let&apos;s look at an example.</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>fn main() {
    let a = 36;
    let b = 25;

    if a &gt; b {
        println!(&quot;a is greater than b&quot;);
    } else {
        println!(&quot;b is greater than a&quot;);
    }
}</code></pre></section><!--kg-card-end: html--><p>Here, I have declared two integer variables <code>a</code> and <code>b</code> with the values &apos;36&apos; and &apos;25&apos;. On line 5, I check if the value stored in variable <code>a</code> is greater than the value stored in variable <code>b</code>. If the condition evaluates to <code>true</code>, the code on line 6 will be executed. If the condition evaluates to <code>false</code>, due to the fact that we have an <code>else</code> block (which is optional), the code on line 8 will get executed.</p><p>Let&apos;s verify this by looking at the program output.</p><pre><code>a is greater than b</code></pre><p>Perfect!</p><p>Let&apos;s modify the value of variable <code>a</code> to be less than value of variable <code>b</code> and see what happens. I will change <code>a</code>&apos;s value to &apos;10&apos;. Following is the output after this modification:</p><pre><code>b is greater than a</code></pre><p>But, what if I store the same value in variables <code>a</code> and <code>b</code>? To see this, I will set both variables&apos; value to be &apos;40&apos;. Following is the output after this particular modification:</p><pre><code>b is greater than a</code></pre><p>Huh? Logically, this doesn&apos;t make any sense... :(</p><p>But this can be improved! Continue reading.</p><h2 id="using-else-if-conditional">Using &apos;else if&apos; conditional</h2><p>Like any other programming language, you can put an <code>else if</code> block to provide more than two execution paths. The syntax is as follows:</p><pre><code class="language-rust">if condition {
    &lt;statement(s)&gt;;
} else if condition {
    &lt;statement(s)&gt;;
} else {
    &lt;statement(s)&gt;;
}</code></pre><p>Now, with the use of an <code>else if</code> block, I can improve the logic of my program. Following is the modified program.</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>fn main() {
    let a = 40;
    let b = 40;

    if a == b {
        println!(&quot;a and b are equal&quot;);
    } else if a &gt; b {
        println!(&quot;a is greater than b&quot;);
    } else {
        println!(&quot;b is greater than a&quot;);
    }
}</code></pre></section><!--kg-card-end: html--><p>Now, the logic of my program is correct. It has handled all edge cases (that I can think of). The condition where <code>a</code> is equal to <code>b</code> is handled on line 5. The condition where <code>a</code> might be greater than <code>b</code> is handled on line 7. And, the condition where <code>a</code> is less than <code>b</code> is intrinsically handled by the <code>else</code> block on line 9.</p><p>Now, when I run this code, I get the following output:</p><pre><code>a and b are equal</code></pre><p>Now that&apos;s perfect!</p><h2 id="example-find-the-greatest">Example: Find the greatest</h2><p>I know that the use of <code>if</code> and <code>else</code> is easy, but let us look at one more program. This time, let&apos;s compare three numbers. I will also make use of a logical operator in this instance!</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>fn main() {
    let a = 73;
    let b = 56;
    let c = 15;

    if (a != b) &amp;&amp; (a != c) &amp;&amp; (b != c) {
        if (a &gt; b) &amp;&amp; (a &gt; c) {
            println!(&quot;a is the greatest&quot;);
        } else if (b &gt; a) &amp;&amp; (b &gt; c) {
            println!(&quot;b is the greatest&quot;);
        } else {
            println!(&quot;c is the greatest&quot;);
        }
    }
}</code></pre></section><!--kg-card-end: html--><p>This might look complicated at first sight, but fear not; I shall explain this!</p><p>Initially, I declare three variables <code>a</code>, <code>b</code> and <code>c</code> with random values that I could think of at that time. Then, on line 6, I check for the condition where no variable&apos;s value is same as any other variable. First, I check the values of <code>a</code> and <code>b</code>, then <code>a</code> and <code>c</code> and then <code>b</code> and <code>c</code>. This way I can be sure that there are no duplicate values stored in either variable.</p><p>Then, on line 7, I check if the value stored in variable <code>a</code> is the greatest. If that condition evaluates to <code>true</code>, code on line 8 gets executed. Otherwise the execution path on line 9 is checked.</p><p>On line 9, I check if the value stored in variable <code>b</code> is the greatest. If this condition evaluates to <code>true</code>, code on line 10 gets executed. If this condition is also <code>false</code>, then it means only one thing. Neither variable <code>a</code>, nor variable <code>b</code> is the greatest among all 3.</p><p>So naturally, in the <code>else</code> block, I print that the variable <code>c</code> holds the greatest value.</p><p>Let&apos;s verify this with the program output:</p><pre><code>a is the greatest</code></pre><p>And this is as expected. Try and modify the values assigned to each variable and test it out yourself! :)</p><h2 id="conclusion">Conclusion</h2><p>You learned to use if and else statements. Before you go on making your own AI with lost of if else-if statements (haha), let&apos; learn about loops in Rust in the next chapter of the series.</p><p>Stay tuned.</p>]]></content:encoded></item><item><title><![CDATA[11 Ways to Improve Your Privacy]]></title><description><![CDATA[Bring your A game to improve your privacy online, whether you are a Linux user or not. Follow these tips for a secure experience!]]></description><link>https://itsfoss.com/improve-privacy/</link><guid isPermaLink="false">6434f11315fc7e086e74c353</guid><category><![CDATA[Privacy]]></category><category><![CDATA[Guides]]></category><dc:creator><![CDATA[Ankush Das]]></dc:creator><pubDate>Sun, 30 Apr 2023 06:17:31 GMT</pubDate><media:content url="https://itsfoss.com/content/images/2023/04/ways-to-enhance-your-privacy.png" medium="image"/><content:encoded><![CDATA[<img src="https://itsfoss.com/content/images/2023/04/ways-to-enhance-your-privacy.png" alt="11 Ways to Improve Your Privacy"><p>Slowly, users are moving to privacy-focused solutions instead of convenient options.</p><p>Why? Simply because many have realized the worth of their personal data.</p><p>Of course, protecting your privacy does not mean staying anonymous. But, taking control of privacy means that you do not share essential information with unauthorized parties while keeping your sensitive data private from everyone.</p><p>You can improve privacy on all kinds of devices you use. Here, I shall provide some proven methods to enhance privacy easily. </p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4CB;</div><div class="kg-callout-text">The tips mentioned can be followed for every type of device and OS, not just Linux. You don&apos;t necessarily need to follow each and every point. These are mere suggestions. See, what works for you.</div></div><h2 id="1-secure-hide-your-email">1. Secure &amp; Hide Your Email </h2><p>Your email address is connected to everything online, whether banking or a cloud storage platform.</p><p>If your email remains private, you get less spam and fewer attempts to take over your account or trick you into downloading a malicious file from your email.</p><p>I think you get what I mean &#x1F643;</p><p>But&#x2026; you share your email address with every essential app/service you use. </p><p><strong>So, how can you not share them but still use them?</strong></p><p>You can use <strong>email aliases</strong> to keep your actual email address private. We have a list of <a href="https://itsfoss.com/protect-email-address/">tools to help protect your email address</a>. Choose any options like SimpleLogin or use the email alias addresses your email provider allows creating.</p><p>Also, try using <a href="https://itsfoss.com/secure-private-email-services/">secure email services</a> like Tutanota or <a href="https://itsfoss.click/protonmail?ref=itsfoss.com">ProtonMail</a> for the best experience.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4CB;</div><div class="kg-callout-text">This article includes affiliate links, which give us a small commission if you purchase some services like Proton VPN, at no extra cost to you.</div></div><p><strong>Suggested Read &#x1F4D6;</strong></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/secure-private-email-services/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Best Secure Email Services For Privacy Concerned People</div><div class="kg-bookmark-description">Can you call Gmail, Outlook, YahooMail etc secure email services? Well, they&#x2019;re definitely secure in the way that your data is (usually) safe from outside attackers. But when we talk of secure email service, the focus is on data security and privacy. Most of these free email services snoop</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="11 Ways to Improve Your Privacy"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2019/08/secure-email-services.png" alt="11 Ways to Improve Your Privacy"></div></a></figure><h2 id="2-secure-your-internet">2. Secure Your Internet</h2><p>With an exposed or insecure internet connection, an attacker can snoop on your web activity and potentially use it to gain vital information or affect your device data.</p><p>So, it is essential to keep your internet secure.</p><p>To achieve that, you can do a few things like:</p><ul><li>Use a secure or encrypted DNS like <a href="https://nextdns.io/?ref=itsfoss.com">NextDNS</a> or <a href="https://controld.com/?ref=itsfoss.com">ControlD</a></li><li>Use a VPN to encrypt your internet connection</li></ul><p><a href="https://go.getproton.me/aff_c?offer_id=10&amp;aff_id=1173&amp;ref=news.itsfoss.com">ProtonVPN</a> and Mullvad VPN would be two excellent options, offering open-source clients and Linux support.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/best-vpn-linux/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Best VPN Services for Privacy Minded Linux Users</div><div class="kg-bookmark-description">No matter whether you use Linux or Windows, ISPs spy all the time. Also, it is often your Internet Service Provider who enforces annoying restrictions, and throttles speed while tracking your online activity. I&#x2019;m not sure what might be the cause of a privacy breach for you &#x2013; but when</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="11 Ways to Improve Your Privacy"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2019/05/best-vpn-linux.png" alt="11 Ways to Improve Your Privacy"></div></a></figure><h2 id="3-secure-your-search-activity">3. Secure Your Search Activity</h2><p>Everyone utilizes a search engine to find what they are looking for.</p><p>For most of them, it is Google. It is the most popular website on the planet as of now.</p><p>But, it collects some of your data to improve its searchability and may also personalize the search results per your likes and other factors.</p><p>However, if you want an entirely private search experience and non-personalized results, <a href="https://itsfoss.com/privacy-search-engines/">privacy-friendly search engines</a> should be helpful.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/privacy-search-engines/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">10 Privacy Oriented Alternative Search Engines To Google</div><div class="kg-bookmark-description">Brief: In this age of the internet, you can never be too careful with your privacy. Use these alternative search engines that do not track you. Google &#x2014; unquestionably the best search engine out there (for most)- uses powerful and intelligent algorithms (including A.I. implementations) to let u&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="11 Ways to Improve Your Privacy"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2017/11/privacy-search-engine.png" alt="11 Ways to Improve Your Privacy"></div></a></figure><h2 id="4-use-a-privacy-focused-browser">4. Use a Privacy-Focused Browser</h2><p>Just like you use search engines, the browser is a vital means of the interaction process.</p><p>A browser with solid privacy and security features should help you enhance your browsing experience.</p><p>Personally, I could point you to <strong>Vivaldi, Firefox, and Brave</strong>. If you are keen to explore more options, look at our list of the <a href="https://itsfoss.com/best-browsers-ubuntu-linux/">best browsers for Linux</a>.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/best-browsers-ubuntu-linux/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Top 10 Best Browsers for Ubuntu Linux</div><div class="kg-bookmark-description">What are your options when it comes to web browsers for Linux? Here are the best web browsers you can pick for Ubuntu and other Linux distros.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="11 Ways to Improve Your Privacy"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2021/09/web-browser-ubuntu.png" alt="11 Ways to Improve Your Privacy"></div></a></figure><h2 id="5-do-not-install-a-program-you-dont-know">5. Do Not Install a Program You Don&apos;t Know</h2><p>Whether you use Linux or any other operating system, you should not install anything you are unaware of. Not all programs are privacy-friendly.</p><p>Some do not collect any data at all, and some do.</p><p>Yes, there are certain green flags that you can look for before picking a new software to install. Some of them include:</p><ul><li>It has a decent number of users (not entirely new).</li><li>It is incredibly popular.</li><li>It is open source and has a stable release.</li></ul><p>Some other pointers that you can keep in mind:</p><ul><li>Even if the program is proprietary, you should check out its popularity and privacy policy. </li><li>Usually, best to avoid new software tools.</li><li>Do not download email attachments without separately verifying them.</li><li>Download software from its official channels. Do not use third-party distribution websites to download packages unless they officially recommend it.</li></ul><h2 id="6-utilize-all-privacy-tweaks-and-options">6. Utilize All Privacy Tweaks and Options</h2><p>Every app, every operating system, and every service that you use provides some amount of privacy control.</p><p>For instance, you can hide your Instagram account from the public and only accept followers you know/want.</p><p>Similarly, when possible, I recommend you head to &#x201C;<strong>Privacy settings</strong>&#x201D; on your mobile phone, Linux desktop, and everything else.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/04/ubuntu-privacy.png" class="kg-image" alt="11 Ways to Improve Your Privacy" loading="lazy" width="1006" height="627" srcset="https://itsfoss.com/content/images/size/w600/2023/04/ubuntu-privacy.png 600w, https://itsfoss.com/content/images/size/w1000/2023/04/ubuntu-privacy.png 1000w, https://itsfoss.com/content/images/2023/04/ubuntu-privacy.png 1006w" sizes="(min-width: 720px) 720px"><figcaption>Privacy settings on Ubuntu Linux</figcaption></figure><p>It can be anything, deleting your old files, disabling diagnostics information sharing, and so on. If it sounds feasible to you, use the available option to your advantage.</p><h2 id="7-use-secure-password-managers">7. Use Secure Password Managers</h2><p>Passwords and credentials are at the center of everything. If you need to ensure they are well-protected and organized, use a good password manager.</p><p>I usually suggest <a href="https://bitwarden.com/?ref=itsfoss.com">Bitwarden</a> and KeePassXC for all kinds of users. </p><p>If you prefer keeping things offline, <a href="https://keepassxc.org/?ref=itsfoss.com">KeePassXC</a> is available cross-platform. And, if you want a cloud-based solution, Bitwarden should not disappoint.</p><p>You can also explore some <a href="https://itsfoss.com/password-managers-linux/">password managers for Linux users</a>.</p><h2 id="8-keep-your-notes-secure">8. Keep Your Notes Secure</h2><p>Taking notes can be a habit for some, and it can be a good/bad one.</p><p>Why do I say that? Well, notes often have sensitive information, sometimes passwords or PINs.</p><p>So, if you make sure that your notes are secure, it is one of the easiest ways to boost your privacy game.</p><p>Recommendations will include <a href="https://standardnotes.com/?ref=itsfoss.com">Standard Notes</a> and <a href="https://cryptpad.fr/?ref=itsfoss.com">CryptPad</a>. You can explore other options with end-to-end encryption or a variety of features:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/note-taking-apps-linux/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Looking for Some Good Note Taking Apps on Linux? Here are the Best Notes Apps we Found for You</div><div class="kg-bookmark-description">No matter what you do &#x2014; taking notes is always a good habit. Yes, there are a lot of note taking apps to help you achieve that. But, what about some open-source note taking apps for Linux? Fret not, you don&#x2019;t need to endlessly search the Internet to find the</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="11 Ways to Improve Your Privacy"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2020/05/Note-Taking-Apps-linux.jpg" alt="11 Ways to Improve Your Privacy"></div></a></figure><h2 id="9-store-or-backup-on-a-private-cloud-platform">9. Store or Backup on a Private Cloud Platform</h2><p>Not everyone has the time or patience to maintain/configure a RAID setup to store/backup data at home.</p><p>So, cloud storage services are the usual solution.</p><p>My personal recommendations include <a href="https://mega.nz/aff=cGWF0mqjBJ0?ref=itsfoss.com">Mega</a> (end-to-end encryption), and <a href="https://partner.pcloud.com/r/1935?ref=itsfoss.com">pCloud</a>. But I suggest you check out our <a href="https://itsfoss.com/cloud-services-linux/">list of cloud storage services</a> to explore better options.</p><p>Additionally, you can encrypt your files before uploading them to the cloud thanks to solutions like <a href="https://cryptomator.org/?ref=itsfoss.com">Cryptomator</a>.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/cloud-services-linux/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Top 10 Best Free Cloud Storage Services for Linux</div><div class="kg-bookmark-description">Which cloud service is the best for Linux? Check out this list of free cloud storage services that you can use in Linux.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="11 Ways to Improve Your Privacy"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2016/02/Linux-cloud-services.jpg" alt="11 Ways to Improve Your Privacy"></div></a></figure><h2 id="10-use-private-messengers">10. Use Private Messengers</h2><p>You can always utilize open-source and encrypted messengers like <a href="https://www.signal.org/?ref=itsfoss.com">Signal</a> (cross-platform) to secure your communications.</p><p>There are <a href="https://itsfoss.com/private-whatsapp-alternatives/">multiple WhatsApp alternatives</a> that you can explore for personal use.</p><p>If it is for your business, <a href="https://itsfoss.com/open-source-slack-alternative/">open source Slack alternatives</a> should help.</p><p><strong>Suggested Read &#x1F4D6;</strong></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/best-matrix-clients/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">9 Best Matrix Clients for Decentralized Messaging</div><div class="kg-bookmark-description">Matrix is an open network standard tailored for secure decentralized real-time communication. It is published and maintained by a non-profit, Matrix.org Foundation. They aim to create an open, independent, and evolving communication platform. If an application supports the Matrix protocol,&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="11 Ways to Improve Your Privacy"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2022/06/best-matrix-clients.jpg" alt="11 Ways to Improve Your Privacy"></div></a></figure><h2 id="11-specialized-distributions">11. Specialized Distributions </h2><p>If you are adventurous and want to try an entirely different operating system tailored to give you a private experience, you can pick <a href="https://tails.boum.org/?ref=itsfoss.com">Tails OS</a>, <a href="https://www.whonix.org/?ref=itsfoss.com">Whonix</a>, and similar options.</p><p>Some are built to erase your activity as soon as you finish it. And some of them feature special security features, which could be overwhelming for daily usage. </p><p>If you are curious, explore the <a href="https://itsfoss.com/privacy-focused-linux-distributions/">best privacy-focused Linux distributions</a>.</p><p>&#x1F928; <strong>Still, confused about what you want to do? </strong></p><p>I have a separate article listing some of the best browsers, VPNs, messengers, etc., for privacy-focused users. You can always refer to that if you cannot decide what you want to pick to take control of your privacy.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/privacy-tools"><div class="kg-bookmark-content"><div class="kg-bookmark-title">12 Simple Tools to Protect Your Privacy</div><div class="kg-bookmark-description">Quick ways to enhance online privacy? Use these simple tools to take control of your data easily.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="11 Ways to Improve Your Privacy"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2022/02/privacy-tools-ft.jpg" alt="11 Ways to Improve Your Privacy"></div></a></figure>]]></content:encoded></item><item><title><![CDATA[Install and Use Qemu on Ubuntu]]></title><description><![CDATA[Learn how to properly install Qemu in Ubuntu and then configure a Linux distro in VM.]]></description><link>https://itsfoss.com/qemu-ubuntu/</link><guid isPermaLink="false">643632e70e8d58f1afef844c</guid><category><![CDATA[Tutorial]]></category><category><![CDATA[Ubuntu]]></category><dc:creator><![CDATA[Sagar Sharma]]></dc:creator><pubDate>Sat, 29 Apr 2023 10:07:17 GMT</pubDate><media:content url="https://itsfoss.com/content/images/2023/04/install-qemu-on-ubuntu.png" medium="image"/><content:encoded><![CDATA[<img src="https://itsfoss.com/content/images/2023/04/install-qemu-on-ubuntu.png" alt="Install and Use Qemu on Ubuntu"><p>If you need to run Linux virtual machines, Qemu is one of the fastest hypervisors out there, if not the fastest.</p><p>Along with the speed, you also get excellent configuration options. Even if you are not an advanced user, it gives you enough room for tweaks.</p><p>In this tutorial, I will walk you through:</p><ul><li>Installing Qemu and KVM on Ubuntu </li><li>Installing another distro on Qemu</li><li>Enabling shared folder, auto-resize, and copy-paste in Qemu (optional but makes your VM experience smoother)</li></ul><p>So let&apos;s start with the installation.</p><h2 id="installing-qemu-and-kvm-on-ubuntu">Installing Qemu and KVM on Ubuntu</h2><div class="kg-card kg-callout-card kg-callout-card-red"><div class="kg-callout-emoji">&#x270B;</div><div class="kg-callout-text">Before jumping to the installation, let&apos;s check whether your machine supports the virtualization or not.&#xA0;</div></div><p>To do so, use the following command:</p><pre><code>LC_ALL=C lscpu | grep Virtualization</code></pre><p>If you have an intel processor, it should bring the following output:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/04/check-where-the-computer-supports-hardware-based-virtualization-or-not.png" class="kg-image" alt="Install and Use Qemu on Ubuntu" loading="lazy" width="837" height="141" srcset="https://itsfoss.com/content/images/size/w600/2023/04/check-where-the-computer-supports-hardware-based-virtualization-or-not.png 600w, https://itsfoss.com/content/images/2023/04/check-where-the-computer-supports-hardware-based-virtualization-or-not.png 837w" sizes="(min-width: 720px) 720px"></figure><p>And if you have an AMD processor, it should get you the following output:</p><pre><code>Virtualization:                  AMD-V</code></pre><p>Also, <a href="https://linuxhandbook.com/check-cpu-info-linux/?ref=itsfoss.com">make sure your system has multiple cores</a> so that you can allocate some to your VM and still have enough to power the host machine. </p><p>And if you&apos;re not sure, use the following command and the<strong> output should be more than zero:</strong></p><pre><code>egrep -c &apos;(vmx|svm)&apos; /proc/cpuinfo</code></pre><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/04/Check-total-number-of-cores-and-threads-of-system-in-linux.png" class="kg-image" alt="Install and Use Qemu on Ubuntu" loading="lazy" width="837" height="141" srcset="https://itsfoss.com/content/images/size/w600/2023/04/Check-total-number-of-cores-and-threads-of-system-in-linux.png 600w, https://itsfoss.com/content/images/2023/04/Check-total-number-of-cores-and-threads-of-system-in-linux.png 837w" sizes="(min-width: 720px) 720px"></figure><p>Once you are all set, you can install Qemu and KVM on Ubuntu using the following command:</p><pre><code>sudo apt install qemu qemu-kvm virt-manager bridge-utils</code></pre><p><strong>Reboot your system </strong>once the installation is over.</p><h3 id="add-user-to-appropriate-groups">Add user to appropriate groups</h3><p>To make Qemu work, you&apos;d have to <a href="https://learnubuntu.com/add-user-group/?ref=itsfoss.com">add your user to two groups</a>: <code>libvirt-kvm</code> and <code>libvirt</code>.</p><p>To do so, use the following commands one by one:</p><pre><code>sudo useradd -g $USER libvirt</code></pre><pre><code>sudo useradd -g $USER libvirt-kvm</code></pre><p>Next, enable and start the <code>libvirt</code> service:</p><pre><code>sudo systemctl enable libvirtd.service &amp;&amp; sudo systemctl start libvirtd.service</code></pre><p>That&apos;s it! The installation of Qemu is done. </p><h2 id="installing-another-linux-virtually-with-qemu">Installing another Linux virtually with Qemu</h2><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4CB;</div><div class="kg-callout-text">Please download the ISO file of the Linux distro you want to install in Qemu VM.</div></div><p>First, open the Virtual Machine Manager from the system menu:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/04/Start-Qemu-from-the-system-menu-1.png" class="kg-image" alt="Install and Use Qemu on Ubuntu" loading="lazy" width="1070" height="236" srcset="https://itsfoss.com/content/images/size/w600/2023/04/Start-Qemu-from-the-system-menu-1.png 600w, https://itsfoss.com/content/images/size/w1000/2023/04/Start-Qemu-from-the-system-menu-1.png 1000w, https://itsfoss.com/content/images/2023/04/Start-Qemu-from-the-system-menu-1.png 1070w" sizes="(min-width: 720px) 720px"></figure><p>Next, click on the File menu and choose the <code>New Virtual Machine</code> option:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/04/Create-new-VM-in-Qemu.png" class="kg-image" alt="Install and Use Qemu on Ubuntu" loading="lazy" width="794" height="312" srcset="https://itsfoss.com/content/images/size/w600/2023/04/Create-new-VM-in-Qemu.png 600w, https://itsfoss.com/content/images/2023/04/Create-new-VM-in-Qemu.png 794w" sizes="(min-width: 720px) 720px"><figcaption>Click File -&gt; New Virtual Machine</figcaption></figure><p>From here, choose the first option <code>Local install media</code> which will allow you to choose the ISO from your file manager:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/04/Choose-the-local-ISO-file-to-create-new-VM-in-Qemu.png" class="kg-image" alt="Install and Use Qemu on Ubuntu" loading="lazy" width="523" height="560"><figcaption>Select Local Install Media</figcaption></figure><p>Next, you will be asked to add the ISO file. Here, <strong>click on the Browse button; it</strong> will open a new prompt, and there, <strong>click on the browse local.</strong></p><p>It will open the file manager and from there, select the ISO file:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/04/Import-the-ISO-file-in-QEMU.png" class="kg-image" alt="Install and Use Qemu on Ubuntu" loading="lazy" width="1108" height="816" srcset="https://itsfoss.com/content/images/size/w600/2023/04/Import-the-ISO-file-in-QEMU.png 600w, https://itsfoss.com/content/images/size/w1000/2023/04/Import-the-ISO-file-in-QEMU.png 1000w, https://itsfoss.com/content/images/2023/04/Import-the-ISO-file-in-QEMU.png 1108w" sizes="(min-width: 720px) 720px"></figure><p><strong>In most cases, the ISO file will be detected but if you find a situation where it does not detect it automatically, follow the given steps:</strong></p><ol><li>Uncheck the Automatically detect from the source option</li><li>Choose the <code>Generic Linux</code> option </li></ol><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/04/Deal-with-ISO-not-detected-in-Qemu.png" class="kg-image" alt="Install and Use Qemu on Ubuntu" loading="lazy" width="938" height="560" srcset="https://itsfoss.com/content/images/size/w600/2023/04/Deal-with-ISO-not-detected-in-Qemu.png 600w, https://itsfoss.com/content/images/2023/04/Deal-with-ISO-not-detected-in-Qemu.png 938w" sizes="(min-width: 720px) 720px"></figure><p>Next, you will be asked to allocate memory and storage as per your needs. I would recommend going with a minimum of 2 cores, 4 GB of RAM, and 25 GB of storage for the desktop version:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/04/Allocate-RAM--cores-and-storage-space-to-VM-in-Qemu.png" class="kg-image" alt="Install and Use Qemu on Ubuntu" loading="lazy" width="816" height="831" srcset="https://itsfoss.com/content/images/size/w600/2023/04/Allocate-RAM--cores-and-storage-space-to-VM-in-Qemu.png 600w, https://itsfoss.com/content/images/2023/04/Allocate-RAM--cores-and-storage-space-to-VM-in-Qemu.png 816w" sizes="(min-width: 720px) 720px"><figcaption>Allocate resources to VM</figcaption></figure><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4CB;</div><div class="kg-callout-text">Except for the disk space, system resources like CPU and RAM are only used when running the OS in VM.</div></div><p>And finally, give the appropriate name to your VM; once done, click on the finish button:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/04/Name-your-VM-in-Qemu.png" class="kg-image" alt="Install and Use Qemu on Ubuntu" loading="lazy" width="603" height="560" srcset="https://itsfoss.com/content/images/size/w600/2023/04/Name-your-VM-in-Qemu.png 600w, https://itsfoss.com/content/images/2023/04/Name-your-VM-in-Qemu.png 603w"><figcaption>Name your VM</figcaption></figure><p>It will load the ISO, so you can start the installation from here. </p><p>That&apos;s done. You may enjoy your VM but you&apos;ll even enjoy it better if you enable shared folder, clipboard sharing, etc. The following few sections show how to do that.</p><h2 id="enabling-shared-folders-in-qemu-optional">Enabling shared folders in Qemu (optional)</h2><p>In this section, I will show you how you can share the existing directory of the host machine with the VM. </p><p>To do so, you&apos;d have to perform the following:</p><ul><li>Adding a shared filesystem through VM settings in Qemu</li><li>Mounting the FS in the VM </li></ul><p>So first, open the Virtual Machine Manager from the system menu, select the VM, and click the <code>Open</code> button to manage the console:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/04/open-the-settings-for-VM-in-Qemu.png" class="kg-image" alt="Install and Use Qemu on Ubuntu" loading="lazy" width="1153" height="360" srcset="https://itsfoss.com/content/images/size/w600/2023/04/open-the-settings-for-VM-in-Qemu.png 600w, https://itsfoss.com/content/images/size/w1000/2023/04/open-the-settings-for-VM-in-Qemu.png 1000w, https://itsfoss.com/content/images/2023/04/open-the-settings-for-VM-in-Qemu.png 1153w" sizes="(min-width: 720px) 720px"></figure><p>Now, click on the info button, select the <code>Memory</code> and enable the shared memory:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/04/enable-shared-memory-in-Qemu.png" class="kg-image" alt="Install and Use Qemu on Ubuntu" loading="lazy" width="1024" height="718" srcset="https://itsfoss.com/content/images/size/w600/2023/04/enable-shared-memory-in-Qemu.png 600w, https://itsfoss.com/content/images/size/w1000/2023/04/enable-shared-memory-in-Qemu.png 1000w, https://itsfoss.com/content/images/2023/04/enable-shared-memory-in-Qemu.png 1024w" sizes="(min-width: 720px) 720px"></figure><p>Next, click on the <code>Add Hardware</code> button, select the <code>Filesystem</code> option.</p><p>Here, you&apos;d have to do the following:</p><ul><li>Add a path to the directory you want to share in the <code>Source path</code> section</li><li>Add the name of the directory in the <code>Target path</code> section</li></ul><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/04/enable-shared-directory-in-Qemu.png" class="kg-image" alt="Install and Use Qemu on Ubuntu" loading="lazy" width="1477" height="801" srcset="https://itsfoss.com/content/images/size/w600/2023/04/enable-shared-directory-in-Qemu.png 600w, https://itsfoss.com/content/images/size/w1000/2023/04/enable-shared-directory-in-Qemu.png 1000w, https://itsfoss.com/content/images/2023/04/enable-shared-directory-in-Qemu.png 1477w" sizes="(min-width: 720px) 720px"></figure><p>Once done, click on the Finish button and start the VM. <a href="https://itsfoss.com/make-directories/">Create a directory</a> in the same location with the same name and location in the VM</p><p>In VM, open the terminal and use the following syntax to mount the shared directory:</p><pre><code>sudo mount -t virtiofs sharename path/to/shared/directory</code></pre><p>In my case, it was the <code>Downloads</code> directory, so I will be using the following:</p><pre><code>sudo mount -t virtiofs Downloads /home/sagar/Downloads</code></pre><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/04/use-shared-folders-in-Qemu.png" class="kg-image" alt="Install and Use Qemu on Ubuntu" loading="lazy" width="837" height="130" srcset="https://itsfoss.com/content/images/size/w600/2023/04/use-shared-folders-in-Qemu.png 600w, https://itsfoss.com/content/images/2023/04/use-shared-folders-in-Qemu.png 837w" sizes="(min-width: 720px) 720px"></figure><p>That&apos;s it! </p><p><strong>But that&apos;s a temporary solution.</strong> </p><p>To make it permanent, you&apos;d have to make create an entry in <code>/etc/fstab</code> In the VM.</p><p>To do so, first, open the <code>/etc/fstab</code> config file using the following:</p><pre><code>sudo nano /etc/fstab</code></pre><p><a href="https://linuxhandbook.com/beginning-end-file-nano/?ref=itsfoss.com">Go to the end of the file in the nano text editor</a> using <code>Alt + /</code> and use the following syntax to create an entry:</p><pre><code>sharename           path/to/shared/directory    virtiofs    defaults        0       0</code></pre><p>Here&apos;s what my config looks like:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/04/Make-shared-folders-in-Qemu-permenent.png" class="kg-image" alt="Install and Use Qemu on Ubuntu" loading="lazy" width="989" height="220" srcset="https://itsfoss.com/content/images/size/w600/2023/04/Make-shared-folders-in-Qemu-permenent.png 600w, https://itsfoss.com/content/images/2023/04/Make-shared-folders-in-Qemu-permenent.png 989w" sizes="(min-width: 720px) 720px"></figure><p>Once done, <a href="https://linuxhandbook.com/nano-save-exit/?ref=itsfoss.com">save changes and exit from the nano</a> text editor.</p><p>Here I&apos;ve shown how I created a new file in my host machine in the <code>Downloads</code> directory and the changes were reflected in my VM:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/04/use-shared-folder-in-Qemu.gif" class="kg-image" alt="Install and Use Qemu on Ubuntu" loading="lazy" width="1063" height="507" srcset="https://itsfoss.com/content/images/size/w600/2023/04/use-shared-folder-in-Qemu.gif 600w, https://itsfoss.com/content/images/size/w1000/2023/04/use-shared-folder-in-Qemu.gif 1000w, https://itsfoss.com/content/images/2023/04/use-shared-folder-in-Qemu.gif 1063w" sizes="(min-width: 720px) 720px"></figure><p>So now you can use this shared folder to transfer files between the host and VM without any issues!</p><h2 id="enabling-shared-clipboard-in-qemu-optional">Enabling shared clipboard in Qemu (optional)</h2><p>To enable the shared clipboard, all you have to do is install the &#xA0;<code>spice-vdagent</code> utility in the VM.</p><p>So if your VM is Ubuntu/Debian based, you can use the following:</p><pre><code>sudo apt install spice-vdagent</code></pre><p>For Arch base:</p><pre><code>sudo pacman -S spice-vdagent</code></pre><p>For Fedora-based distros:</p><pre><code>sudo yum install spice-vdagent</code></pre><p>Once you are done with the installation, <strong>reboot your VM</strong>, and the clipboard should work as intended!</p><h2 id="enabling-auto-resize-in-qemu-optional">Enabling auto-resize in Qemu (optional)</h2><p>The auto-resize feature is nothing but when you resize the VM window, the VM display will adapt to the change in size immediately:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/04/Auto-resize-in-Qemu-1.gif" class="kg-image" alt="Install and Use Qemu on Ubuntu" loading="lazy" width="1114" height="881" srcset="https://itsfoss.com/content/images/size/w600/2023/04/Auto-resize-in-Qemu-1.gif 600w, https://itsfoss.com/content/images/size/w1000/2023/04/Auto-resize-in-Qemu-1.gif 1000w, https://itsfoss.com/content/images/2023/04/Auto-resize-in-Qemu-1.gif 1114w" sizes="(min-width: 720px) 720px"></figure><p>To enable the auto-resize in Qemu, you will have to follow 2 simple steps:</p><ol><li>Click on the <code>View</code> (from top menubar)</li><li>Select the <code>Scale Display</code> option and choose the <code>Always</code> option</li></ol><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/Enable_auto-resize_in_Qemu.png" class="kg-image" alt="Install and Use Qemu on Ubuntu" loading="lazy" width="1121" height="791" srcset="https://itsfoss.com/content/images/size/w600/2023/05/Enable_auto-resize_in_Qemu.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/Enable_auto-resize_in_Qemu.png 1000w, https://itsfoss.com/content/images/2023/05/Enable_auto-resize_in_Qemu.png 1121w" sizes="(min-width: 720px) 720px"></figure><p>That&apos;s it from my side.</p><h2 id="want-to-use-a-plug-and-play-version-of-qemu">Want to use a plug-and-play version of Qemu?</h2><p>In this tutorial, I went through how you can manually install a VM in Qemu but what if I tell you that you can automate the whole process, like allocating storage, RAM, etc?</p><p>Yes, it gives the same efficiency but comes in handy when you want to create a new VM ASAP! The tool is called Quickgui and we have a dedicated tutorial for the installation:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/quickgui/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Create Virtual Machines Easily With QEMU-based Quickgui</div><div class="kg-bookmark-description">Quickgui aims to be a simpler alternative to VirtualBox and help create virtual machines quickly. Let us take a look at it.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="Install and Use Qemu on Ubuntu"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2021/11/Quickgui.png" alt="Install and Use Qemu on Ubuntu"></div></a></figure><p>I hope you will find this guide helpful. And if you have any queries, feel free to ask in the comments.</p>]]></content:encoded></item></channel></rss>


id: f05cc384-29d3-4f78-9585-71a378c7afb4
url: https://advisories.ncsc.nl/rss/advisories
title: NCSC Beveiligingsadviezen
group_id: 5ba66bdc-22cd-4924-9389-104d85c2247e
feed_type: Rss_2_0
description: Beveiligingsadviezen van het NCSC aan organisaties in de vitale sector
language: nl-NL
copyright: Copyright 2023 - NCSC-NL
original_document:
<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0"
 xmlns:blogChannel="http://backend.userland.com/blogChannelModule"
>

<channel>
<title>NCSC Beveiligingsadviezen</title>
<link>https://advisories.ncsc.nl/rss/advisories</link>
<description>Beveiligingsadviezen van het NCSC aan organisaties in de vitale sector</description>
<language>nl-NL</language>
<copyright>Copyright 2023 - NCSC-NL</copyright>
<lastBuildDate>Thu, 25 May 2023 21:35:11 +0200</lastBuildDate>
<webMaster>taranis@ncsc.nl</webMaster>

<item>
<title>NCSC-2023-0258 [1.00] [M/H] Kwetsbaarheden verholpen in Zyxel firewalls</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0258</link>
<description>Zyxel heeft kwetsbaarheden verholpen in de firmware van firewall series ATP, USG FLEX, VPN en ZyWall/USG. Een ongeauthenticeerde kwaadwillende kan de kwetsbaarheden misbruiken om een Denial-of-Service te veroorzaken, en mogelijk ook om willekeurige code uit te voeren op het kwetsbare systeem.
</description>
<guid isPermaLink="false">NCSC-2023-0258 [1.00]</guid>
<pubDate>Thu, 25 May 2023 14:31:06 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0257 [1.00] [M/H] Kwetsbaarheid verholpen in GitLab Enterprise Edition en Community Edition</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0257</link>
<description>GitLab heeft een kwetsbaarheid verholpen in GitLab 16.0.0. Een ongeauthenticeerde kwaadwillende op afstand kan de kwetsbaarheid misbruiken om toegang te krijgen tot willekeurige bestanden op de server via een path-traversal.</description>
<guid isPermaLink="false">NCSC-2023-0257 [1.00]</guid>
<pubDate>Thu, 25 May 2023 14:01:53 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0256 [1.00] [M/H] ZeroDay kwetsbaarheid verholpen in Barracuda Email Security Gateway</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0256</link>
<description>Barracuda Networks heeft een kwetsbaarheid verholpen in de Email Security Gateway appliance (ESG). De kwetsbaarheid stelt een ongeauthenticeerde kwaadwillende in staat om zich toegang te verschaffen tot het kwetsbare systeem en willekeurige code uit te voeren.</description>
<guid isPermaLink="false">NCSC-2023-0256 [1.00]</guid>
<pubDate>Thu, 25 May 2023 13:27:32 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0255 [1.00] [M/H] Kwetsbaarheid verholpen in BitDefender</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0255</link>
<description>BitDefender heeft een kwetsbaarheid verholpen in Bitdefender Total Security, Bitdefender Internet Security en Bitdefender Antivirus Plus. Een kwaadwillende kan de kwetsbaarheid misbruiken om zichzelf verhoogde rechten toe te kennen en mogelijk willekeurige code uit te voeren met rechten van het systeem.
</description>
<guid isPermaLink="false">NCSC-2023-0255 [1.00]</guid>
<pubDate>Thu, 25 May 2023 13:26:56 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0254 [1.00] [M/H] Kwetsbaarheid verholpen in VMWare NSX-T</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0254</link>
<description>VMWare heeft een kwetsbaarheid verholpen in NSX-T. Een ongeauthenticeerde kwaadwillende kan de kwetsbaarheid misbruiken om een Cross-Site-Scripting-aanval uit te voeren op de achterliggende applicaties. Een dergelijke aanval kan leiden tot uitvoer van willekeurige code in de context van de browser van het slachtoffer, of toegang tot gevoelige informatie.</description>
<guid isPermaLink="false">NCSC-2023-0254 [1.00]</guid>
<pubDate>Thu, 25 May 2023 13:26:11 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0253 [1.00] [H/H] Kwetsbaarheid verholpen in WordPress Essential Addons for Elementor-plugin</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0253</link>
<description>Er is een kwetsbaarheid verholpen in Essential Addons for Elementor, een populaire WordPress-plugin met meer dan een miljoen actieve installaties. De kwetsbaarheid stelt ongeauthenticeerde kwaadwillenden in staat om het wachtwoord van willekeurige gebruikers op de getroffen site opnieuw in te stellen, waardoor ze in feite beheerdersrechten krijgen. De verkregen toegang kan worden misbruikt voor het verkrijgen van toegang tot gevoelige informatie of mogelijk het uitvoeren van willekeurige code op de onderliggende webserver.</description>
<guid isPermaLink="false">NCSC-2023-0253 [1.00]</guid>
<pubDate>Wed, 24 May 2023 15:58:32 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0252 [1.00] [M/H] Kwetsbaarheid verholpen in MikroTik RouterOS</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0252</link>
<description>MikroTik heeft een kwetsbaarheid verholpen in RouterOS. Een ongeauthenticeerde kwaadwillende kan de kwetsbaarheid mogelijk misbruiken voor het uitvoeren van willekeurige code. Hiertoe dient malafide netwerkverkeer naar het kwetsbare apparaat te worden verzonden.</description>
<guid isPermaLink="false">NCSC-2023-0252 [1.00]</guid>
<pubDate>Wed, 24 May 2023 14:48:46 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0251 [1.00] [M/H] Kwetsbaarheid ontdekt in Keepass</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0251</link>
<description>Er is een kwetsbaarheid ontdekt in Keepass v2. Een lokale kwaadwillende kan de kwetsbaarheid misbruiken om het master password te achterhalen. De kwaadwillende moet hiervoor al toegang hebben tot de lokale omgeving van het slachtoffer.</description>
<guid isPermaLink="false">NCSC-2023-0251 [1.00]</guid>
<pubDate>Mon, 22 May 2023 10:47:04 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0250 [1.00] [M/H] Kwetsbaarheden verholpen in Mitel MiVoice Connect</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0250</link>
<description>Mitel heeft kwetsbaarheden verholpen in diverse componenten van MiVoice Connect, zoals Mobility router, Edge Gateway, HQ en DVS. Een kwaadwillende kan de kwetsbaarheden misbruiken voor het uitvoeren van willekeurige code binnen de context van de applicatie. Voor het uitvoeren van code als administrator moet de kwaadwillende over voorafgaande authenticatie en autorisaties beschikken.
</description>
<guid isPermaLink="false">NCSC-2023-0250 [1.00]</guid>
<pubDate>Fri, 19 May 2023 13:17:41 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0249 [1.00] [M/H] Kwetsbaarheid verholpen in CUPS</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0249</link>
<description>OpenPrinting heeft een kwetsbaarheid verholpen in CUPS. Een kwaadwillende met toegang tot de printserver, en de mogelijkheid om printers aan te maken, kan de kwetsbaarheid misbruiken om willekeurige code uit te voeren met rechten van de printserver.
</description>
<guid isPermaLink="false">NCSC-2023-0249 [1.00]</guid>
<pubDate>Fri, 19 May 2023 13:17:18 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0248 [1.00] [M/H] Kwetsbaarheden verholpen in cisco Small Business Switch</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0248</link>
<description>Cisco heeft kwetsbaarheden verholpen in een aantal series Small Business Switches. De kwetsbaarheden bevinden zich in de webinterface en stellen een ongeauthenticeerde kwaadwillende in staat om een Denial-of-Service te veroorzaken, of om willekeurige code uit te voeren als root. De kwaadwillende moet hiervoor wel toegang hebben tot de webinterface van de switch. Het is goed gebruik een dergelijke interface niet publiek toegankelijk te hebben.
</description>
<guid isPermaLink="false">NCSC-2023-0248 [1.00]</guid>
<pubDate>Fri, 19 May 2023 10:56:51 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0247 [1.00] [M/H] Kwetsbaarheden verholpen in Cisco Identity Services Engine (ISE)</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0247</link>
<description>Cisco heeft kwetsbaarheden verholpen in Identity Services Engine (ISE). Een kwaadwillende kan de kwetsbaarheden misbruiken om aanvallen uit te voeren die kunnen leiden tot de volgende categorie&#xEB;n schade:

Manipulatie van gegevens
Omzeilen van beveiligingsmaatregel
(Remote) code execution (Administrator/Root rechten)
Toegang tot systeemgegevens
Verhoogde gebruikersrechten
</description>
<guid isPermaLink="false">NCSC-2023-0247 [1.00]</guid>
<pubDate>Fri, 19 May 2023 10:56:23 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0246 [1.00] [M/M] Kwetsbaarheden verholpen in Tracker Software PDF-Xchange</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0246</link>
<description>Tracker Software heeft kwetsbaarheden verholpen in PDF-Xchange. Een kwaadwillende kan de kwetsbaarheden misbruiken om een Denial-of-Service te veroorzaken en mogelijk code uit te voeren met rechten van het slachtoffer. De kwaadwillende moet hiervoor het slachtoffer misleiden een malafide bestand te openen.
</description>
<guid isPermaLink="false">NCSC-2023-0246 [1.00]</guid>
<pubDate>Fri, 19 May 2023 10:56:09 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0245 [1.00] [M/H] Kwetsbaarheden verholpen in Apple MacOS</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0245</link>
<description>Apple heeft diverse kwetsbaarheden verholpen in MacOS. Een kwaadwillende kan de kwetsbaarheden misbruiken om aanvallen uit te voeren die kunnen leiden tot de volgende categorie&#xEB;n schade:

Denial-of-Service (DoS)
Omzeilen van beveiligingsmaatregel
(Remote) code execution (Administrator/Root rechten)
(Remote) code execution (Gebruikersrechten)
Toegang tot gevoelige gegevens
Toegang tot systeemgegevens
Verhoogde gebruikersrechten
</description>
<guid isPermaLink="false">NCSC-2023-0245 [1.00]</guid>
<pubDate>Fri, 19 May 2023 10:55:55 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0244 [1.00] [M/H] Kwetsbaarheden verholpen in Apple iOS en iPadOS</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0244</link>
<description>Apple heeft kwetsbaarheden verholpen in iOS en iPadOS. Een kwaadwillende kan de kwetsbaarheden misbruiken om aanvallen uit te voeren die kunnen leiden tot de volgende categorie&#xEB;n schade:

Denial-of-Service (DoS)
Omzeilen van beveiligingsmaatregel
(Remote) code execution (Administrator/Root rechten)
(Remote) code execution (Gebruikersrechten)
Toegang tot gevoelige gegevens
Toegang tot systeemgegevens
Verhoogde gebruikersrechten
</description>
<guid isPermaLink="false">NCSC-2023-0244 [1.00]</guid>
<pubDate>Fri, 19 May 2023 10:55:36 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0243 [1.01] [M/H] Kwetsbaarheden verholpen in Google Chrome en Microsoft Edge</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0243</link>
<description>Google heeft kwetsbaarheden verholpen in Chrome. Een kwaadwillende kan de kwetsbaarheden misbruiken om een Denial-of-Service te veroorzaken, willekeurige code uit te voeren in de scope van de browser, of om toegang te krijgen tot gevoelige gegevens in de scope van de browser. De kwaadwillende moet hiervoor het slachtoffer misleiden om een malafide webpagina te openen.
</description>
<guid isPermaLink="false">NCSC-2023-0243 [1.01]</guid>
<pubDate>Fri, 19 May 2023 10:55:21 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0242 [1.00] [M/H] Kwetsbaarheden verholpen in Trend Micro Apex One</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0242</link>
<description>Trend Micro heeft kwetsbaarheden verholpen in Apex One. Een kwaadwillende kan de kwetsbaarheden misbruiken om zich verhoogde rechten toe te kennen, toegang te krijgen tot gevoelige informatie of willekeurige code uit te voeren met rechten van het kwetsbare systeem.
</description>
<guid isPermaLink="false">NCSC-2023-0242 [1.00]</guid>
<pubDate>Wed, 17 May 2023 13:28:18 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0241 [1.00] [M/M] Kwetsbaarheden verholpen in diverse Autodesk producten</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0241</link>
<description>Autodesk heeft kwetsbaarheden verholpen in diverse producten. Een kwaadwillende kan de kwetsbaarheden misbruiken om willekeurige code uit te voeren binnen de kwetsbare applicatie door het injecteren van een malafide pskernel.dll. Het plaatsen van een dergelijke malafide .dll-bestand vereist social engineering, of misbruik van een andere kwetsbaarheid die het plaatsen van systeembestanden mogelijk maakt zonder tussenkomst van het slachtoffer.
</description>
<guid isPermaLink="false">NCSC-2023-0241 [1.00]</guid>
<pubDate>Mon, 15 May 2023 12:51:37 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0240 [1.00] [M/H] Kwetsbaarheid verholpen in Netapp SnapCenter</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0240</link>
<description>Netapp heeft een kwetsbaarheid verholpen in SnapCenter. Een ongeauthenticeerde kwaadwillende kan de kwetsbaarheid misbruiken om zich toegang te verschaffen tot de backup-omgeving met beheerdersrechten. Hiermee kan de kwaadwillende toegang krijgen tot gevoelige informatie, data manipuleren of een Denial-of-Service veroorzaken.
</description>
<guid isPermaLink="false">NCSC-2023-0240 [1.00]</guid>
<pubDate>Mon, 15 May 2023 10:02:22 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0239 [1.00] [M/H] Kwetsbaarheden verholpen in VMWare Aria</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0239</link>
<description>VMWare heeft kwetsbaarheden verholpen in Aria (voorheen: vRealize). Een kwaadwillende kan de kwetsbaarheden misbruiken om willekeurige commando&#x27;s uit te voeren als &#x27;root&#x27;. Voor succesvol misbruik is het noodzakelijk dat de kwaadwillende reeds over verhoogde rechten beschikt.</description>
<guid isPermaLink="false">NCSC-2023-0239 [1.00]</guid>
<pubDate>Fri, 12 May 2023 14:10:06 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0231 [1.01] [M/M] Kwetsbaarheden verholpen in Mozilla Firefox en Thunderbird</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0231</link>
<description>Mozilla heeft kwetsbaarheden verholpen in Firefox, Firefox ESR en Thunderbird. Een kwaadwillende kan de kwetsbaarheden mogelijk misbruiken om aanvallen uit te voeren die kunnen leiden tot de volgende categorie&#xEB;n schade:

Denial-of-Service (DoS)
Omzeilen van beveiligingsmaatregel
(Remote) code execution (Gebruikersrechten)
Spoofing
Toegang tot systeemgegevens
</description>
<guid isPermaLink="false">NCSC-2023-0231 [1.01]</guid>
<pubDate>Thu, 11 May 2023 15:12:02 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0238 [1.00] [M/H] Kwetsbaarheid verholpen in IBM Websphere</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0238</link>
<description>IBM heeft een kwetsbaarheid verholpen in Websphere Application Server. Een kwaadwillende kan de kwetsbaarheid misbruiken om een XML External Entity-aanval uit te voeren. Door het aanbieden van een malafide XML-bestand kan de kwaadwillende een Denial-of-Service veroorzaken, of mogelijk toegang krijgen tot gevoelige informatie.
</description>
<guid isPermaLink="false">NCSC-2023-0238 [1.00]</guid>
<pubDate>Thu, 11 May 2023 15:11:43 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0237 [1.00] [M/H] Kwetsbaarheden verholpen in Aruba Networks ArubaOS en InstantOS</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0237</link>
<description>Aruba Networks heeft kwetsbaarheden verholpen in systemen die draaien op ArubaOS en InstantOS. Een ongeauthenticeerde kwaadwillende kan de kwetsbaarheden misbruiken om een Denial-of-Service te veroorzaken, toegang te krijgen tot systeemgegevens of code uit te voeren op het onderliggende systeem met gebruikersrechten.</description>
<guid isPermaLink="false">NCSC-2023-0237 [1.00]</guid>
<pubDate>Thu, 11 May 2023 10:34:42 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0236 [1.00] [M/H] Kwetsbaarheid verholpen in de Linux Kernel</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0236</link>
<description>Er is een kwetsbaarheid verholpen in de kernel van linux. De kwetsbaarheid bevindt zich in de module netfilter. Deze module wordt door de kernel gebruikt om netwerkverkeer te verwerken, routeren en filteren. Deze module is alleen in gebruik wanneer het betrokken systeem daadwerkelijk actief netwerkverkeer manipuleert, omdat het bijvoorbeeld als router, gateway of proxy is geconfigureerd.</description>
<guid isPermaLink="false">NCSC-2023-0236 [1.00]</guid>
<pubDate>Thu, 11 May 2023 10:34:27 +0200</pubDate>
</item>
<item>
<title>NCSC-2023-0235 [1.00] [L/H] Firmware- en Intel Boot Guard-keys uitgelekt bij ransomware-aanval op MSI</title>
<link>https://advisories.ncsc.nl/advisory?id=NCSC-2023-0235</link>
<description>Eind maart is hardwarefabrikant MSI getroffen door een ransomware-aanval. Als gevolg van deze ransomware-aanval zijn volgens beveiligingsbedrijf Binarly private keys uitgelekt die worden gebruikt voor het digitaal ondertekenen van firmware voor moederborden. Tevens zijn private keys gecompromitteerd die door Intel Boot Guard worden gebruikt.</description>
<guid isPermaLink="false">NCSC-2023-0235 [1.00]</guid>
<pubDate>Wed, 10 May 2023 15:16:23 +0200</pubDate>
</item>
</channel>
</rss>


id: dff24746-468f-4e5a-9ed3-101096eefce7
url: http://fedoramagazine.org/feed/
title: Fedora Magazine
group_id: 5ba66bdc-22cd-4924-9389-104d85c2247e
feed_type: Rss_2_0
language: en-US
description:
Guides, information, and news about the Fedora operating system for users, developers, system administrators, and community members.

original_document:
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Fedora Magazine</title>
	<atom:link href="http://fedoramagazine.org/feed/" rel="self" type="application/rss+xml" />
	<link>https://fedoramagazine.org/</link>
	<description>Guides, information, and news about the Fedora operating system for users, developers, system administrators, and community members.</description>
	<lastBuildDate>Thu, 18 May 2023 23:36:13 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.2</generator>
	<item>
		<title>The Community Platform Engineering F2F 2023 Experience – Part II</title>
		<link>https://fedoramagazine.org/the-community-platform-engineering-f2f-2023-experience-part-ii/</link>
					<comments>https://fedoramagazine.org/the-community-platform-engineering-f2f-2023-experience-part-ii/#comments</comments>
		
		<dc:creator><![CDATA[Akashdeep Dhar]]></dc:creator>
		<pubDate>Mon, 15 May 2023 08:00:00 +0000</pubDate>
				<category><![CDATA[Fedora Project community]]></category>
		<category><![CDATA[CPE]]></category>
		<guid isPermaLink="false">https://fedoramagazine.org/?p=38357</guid>

					<description><![CDATA[20 Mar 2023 &#8211; 23 Mar 2023 &#8211; Barcelona, Spain Intro If you have not already &#8211; now is the best time to read through the first part of the event report before getting into the second part here. Day 2Wednesday, 22nd March 2023The team members decided to start a bit late on the second [&#8230;]]]></description>
										<content:encoded><![CDATA[
<blockquote class="wp-block-quote">
<p>20 Mar 2023 &#8211; 23 Mar 2023</p>
<cite>&#8211; Barcelona, Spain</cite></blockquote>



<span id="more-38357"></span>



<p><strong>Intro</strong></p>



<p>If you have not already &#8211; now is the best time to read through the <a href="https://fedoramagazine.org/the-community-platform-engineering-f2f-2023-experience-part-i/" target="_blank" rel="noreferrer noopener">first part</a> of the event report before getting into the second part here. </p>



<figure class="wp-block-image size-large"><a href="https://fedoramagazine.org/wp-content/uploads/2023/05/20230323_115842-scaled.jpg"><img decoding="async" width="1024" height="511" src="https://fedoramagazine.org/wp-content/uploads/2023/05/20230323_115842-1024x511.jpg" alt="" class="wp-image-38362" srcset="https://fedoramagazine.org/wp-content/uploads/2023/05/20230323_115842-1024x511.jpg 1024w, https://fedoramagazine.org/wp-content/uploads/2023/05/20230323_115842-300x150.jpg 300w, https://fedoramagazine.org/wp-content/uploads/2023/05/20230323_115842-768x383.jpg 768w, https://fedoramagazine.org/wp-content/uploads/2023/05/20230323_115842-1536x766.jpg 1536w, https://fedoramagazine.org/wp-content/uploads/2023/05/20230323_115842-2048x1021.jpg 2048w, https://fedoramagazine.org/wp-content/uploads/2023/05/20230323_115842-816x407.jpg 816w, https://fedoramagazine.org/wp-content/uploads/2023/05/20230323_115842-400x200.jpg 400w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption"><strong>From left to right</strong> &#8211; Actually, never mind &#8211; there are too many people there.</figcaption></figure>



<p><strong>Day 2</strong><br /><strong><em>Wednesday, 22nd March 2023<br /></em></strong>The team members decided to start a bit late on the second day to ensure that everyone gets enough rest after the adventurous first day. Once the joint breakfast was completed in the hotel restaurant, the members started heading off to the office by 10 in the morning. They were were gracefully served Catalonian snacks by <a href="https://accounts.fedoraproject.org/user/lenkaseg/" target="_blank" rel="noreferrer noopener">Lenka Segura</a>, Japanese souvenirs by <a href="https://accounts.fedoraproject.org/user/dkirwan/" target="_blank" rel="noreferrer noopener">David Kirwan</a>, and German sweets by <a href="https://accounts.fedoraproject.org/user/jbley/" target="_blank" rel="noreferrer noopener">Julia Bley</a> for the duration of the meeting. <a href="https://accounts.fedoraproject.org/user/mattdm/" target="_blank" rel="noreferrer noopener">Matthew Miller</a> started the second day with his talk about the Fedora Project strategy and how <a href="https://docs.fedoraproject.org/en-US/cpe/" target="_blank" rel="noreferrer noopener">Community Platform Engineering</a> fits into the picture. This talk was followed by the one by <a href="https://accounts.fedoraproject.org/user/humaton/" target="_blank" rel="noreferrer noopener">Tomas Hrcka</a> about how the <a href="https://docs.pagure.org/releng/" target="_blank" rel="noreferrer noopener">Fedora Release Engineering team</a> addresses its responsibilities. The team took a short break after the first couple of sessions, before heading into the next set.</p>



<figure class="wp-block-image size-large"><a href="https://fedoramagazine.org/wp-content/uploads/2023/05/IMG_1723-scaled.jpg"><img decoding="async" loading="lazy" width="1024" height="768" src="https://fedoramagazine.org/wp-content/uploads/2023/05/IMG_1723-1024x768.jpg" alt="" class="wp-image-38359" srcset="https://fedoramagazine.org/wp-content/uploads/2023/05/IMG_1723-1024x768.jpg 1024w, https://fedoramagazine.org/wp-content/uploads/2023/05/IMG_1723-300x225.jpg 300w, https://fedoramagazine.org/wp-content/uploads/2023/05/IMG_1723-768x576.jpg 768w, https://fedoramagazine.org/wp-content/uploads/2023/05/IMG_1723-1536x1152.jpg 1536w, https://fedoramagazine.org/wp-content/uploads/2023/05/IMG_1723-2048x1536.jpg 2048w, https://fedoramagazine.org/wp-content/uploads/2023/05/IMG_1723-816x612.jpg 816w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption"><strong>From left to right</strong> &#8211; <a href="https://accounts.fedoraproject.org/user/lenkaseg/" target="_blank" rel="noreferrer noopener">Lenka Segura</a>  <a href="https://accounts.fedoraproject.org/user/mattdm/" target="_blank" rel="noreferrer noopener">Matthew Miller</a>  <a href="https://accounts.fedoraproject.org/user/asamalik/" target="_blank" rel="noreferrer noopener">Adam Samalik</a>  <a href="https://accounts.fedoraproject.org/user/tdawson/" target="_blank" rel="noreferrer noopener">Troy Dawson</a></figcaption></figure>



<p>After a short break, the team continued with three lightning talks delivered about <a href="https://www.redhat.com/en/technologies/cloud-computing/openshift" target="_blank" rel="noreferrer noopener">OpenShift</a> operators by <a href="https://accounts.fedoraproject.org/user/dkirwan/" target="_blank" rel="noreferrer noopener">David Kirwan</a>, <a href="https://packit.dev/" target="_blank" rel="noreferrer noopener">Packit</a> by <a href="https://accounts.fedoraproject.org/user/lachmanfrantisek/" target="_blank" rel="noreferrer noopener">Frantisek Lachman</a> and <a href="https://accounts.fedoraproject.org/user/lbarczio/" target="_blank" rel="noreferrer noopener">Laura Barcziova</a>, and <a href="https://pulpproject.org/" target="_blank" rel="noreferrer noopener">Pulp</a> by <a href="https://accounts.fedoraproject.org/user/msuchy/" target="_blank" rel="noreferrer noopener">Miroslav</a><a href="https://accounts.fedoraproject.org/user/msuchy/"> Suchy</a>. Miroslav Suchy delivered a thought-provoking talk about the scope of tooling for the Community Platform Engineering team, and how it contributes to <a href="https://fedoraproject.org/" target="_blank" rel="noreferrer noopener">Fedora Linux</a>. With that, the folks dispersed into small groups for lunch. Once they were back in the office, <a href="https://accounts.fedoraproject.org/user/csomh/" target="_blank" rel="noreferrer noopener">Hunor Csomortáni</a> delivered a talk about revisiting source-git and the plans for unifying package sources in the pipeline. This was followed by a talk by <a href="https://accounts.fedoraproject.org/user/carlwgeorge/" target="_blank" rel="noreferrer noopener">Carl George</a> about the <a href="https://docs.fedoraproject.org/en-US/epel/" target="_blank" rel="noreferrer noopener">EPEL</a> 10 plans for improvements that would be coming very soon. The final interesting talk of the day was delivered by <a href="https://accounts.fedoraproject.org/user/bstinson/" target="_blank" rel="noreferrer noopener">Brian Stinson</a> about the expectations of <a href="https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux" target="_blank" rel="noreferrer noopener">RHEL</a> from Fedora Linux and <a href="http://centosproject.org/" target="_blank" rel="noreferrer noopener">CentOS</a><a href="http://centosproject.org/"> Stream</a>.</p>



<figure class="wp-block-image size-large"><a href="https://fedoramagazine.org/wp-content/uploads/2023/05/IMG20230321190020_01-scaled.jpg"><img decoding="async" loading="lazy" width="1024" height="576" src="https://fedoramagazine.org/wp-content/uploads/2023/05/IMG20230321190020_01-1024x576.jpg" alt="" class="wp-image-38360" srcset="https://fedoramagazine.org/wp-content/uploads/2023/05/IMG20230321190020_01-1024x576.jpg 1024w, https://fedoramagazine.org/wp-content/uploads/2023/05/IMG20230321190020_01-300x169.jpg 300w, https://fedoramagazine.org/wp-content/uploads/2023/05/IMG20230321190020_01-768x432.jpg 768w, https://fedoramagazine.org/wp-content/uploads/2023/05/IMG20230321190020_01-1536x864.jpg 1536w, https://fedoramagazine.org/wp-content/uploads/2023/05/IMG20230321190020_01-2048x1152.jpg 2048w, https://fedoramagazine.org/wp-content/uploads/2023/05/IMG20230321190020_01-816x459.jpg 816w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption"><strong>From left to right</strong> &#8211; <a href="https://accounts.fedoraproject.org/user/ekidney" target="_blank" rel="noreferrer noopener">Emma Kidney</a>  <a href="https://accounts.fedoraproject.org/user/dfan/" target="_blank" rel="noreferrer noopener">David Fan</a>  <a href="https://accounts.fedoraproject.org/user/zlopez/" target="_blank" rel="noreferrer noopener">Michal Konecny</a>  <a href="https://accounts.fedoraproject.org/user/t0xic0der/" target="_blank" rel="noreferrer noopener">Akashdeep Dhar</a>  <a href="https://accounts.fedoraproject.org/user/jnsamyak/" target="_blank" rel="noreferrer noopener">Samyak Jain</a>  <a href="https://accounts.fedoraproject.org/user/dkirwan/" target="_blank" rel="noreferrer noopener">David Kirwan</a></figcaption></figure>



<p>In the evening, at around 19:00, the team members left for a regional burger restaurant, <a href="https://www.tripadvisor.com/Restaurant_Review-g187497-d7223439-Reviews-Tio_Joe-Barcelona_Catalonia.html" target="_blank" rel="noreferrer noopener">Tio Joe’s</a>. This had been booked in advance and was near the hotel premises . With toasts made to the team members that were now united after a long time, they not only enjoyed the appetizing food that was served but also the company of the friends that they had bonded with over the course of the last couple days. </p>



<p>Once the dinner was over, at around 21:30, some folks headed back to the hotel for a respite. The remainder went to the <a href="https://trompokaraokebar.com/">Trompos </a><a href="https://trompokaraokebar.com/" target="_blank" rel="noreferrer noopener">Karaoke</a><a href="https://trompokaraokebar.com/"> Bar</a> to participate in the fun karaoke night session organized by <a href="https://accounts.fedoraproject.org/user/abompard/" target="_blank" rel="noreferrer noopener">Aurelien Bompard</a>. People queued up their songs and soon began to collaborate in performing their favorite songs in duos and in choirs.  This was a fitting end to the night, as late as 02:00, and a fun look at their singing preferences.</p>



<p><strong>Day 3</strong><strong><br /></strong><strong><em>Thursday, 23rd March 2023</em></strong></p>



<p>This was the day of departure for a lot of people. Since they would miss out on the sessions on this third day, it was incredibly light in terms of the agenda and activities. Many of the team members checked out of their hotel rooms after breakfast at 09:00 and left their luggage with the hotel before leaving for the office.</p>



<p> <a href="https://accounts.fedoraproject.org/user/smattejiet/" target="_blank" rel="noreferrer noopener">Stefan Mattejiet</a> started off the last day with his discussion session about CPE Futurespective, and understanding what direction the team should head in the coming times. The interesting discussion felt a lot inspired by the established logic model planning structure used for <a href="https://docs.fedoraproject.org/en-US/council/" target="_blank" rel="noreferrer noopener">Fedora Council</a> community initiatives. This structure starts off with planning the general objectives first and then going back to the implementation details later.&nbsp;</p>



<figure class="wp-block-image size-large"><a href="https://fedoramagazine.org/wp-content/uploads/2023/05/20230323_104914-scaled.jpg"><img decoding="async" loading="lazy" width="1024" height="768" src="https://fedoramagazine.org/wp-content/uploads/2023/05/20230323_104914-1024x768.jpg" alt="" class="wp-image-38358" srcset="https://fedoramagazine.org/wp-content/uploads/2023/05/20230323_104914-1024x768.jpg 1024w, https://fedoramagazine.org/wp-content/uploads/2023/05/20230323_104914-300x225.jpg 300w, https://fedoramagazine.org/wp-content/uploads/2023/05/20230323_104914-768x576.jpg 768w, https://fedoramagazine.org/wp-content/uploads/2023/05/20230323_104914-1536x1152.jpg 1536w, https://fedoramagazine.org/wp-content/uploads/2023/05/20230323_104914-2048x1536.jpg 2048w, https://fedoramagazine.org/wp-content/uploads/2023/05/20230323_104914-816x612.jpg 816w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption"><strong>From left to right</strong> &#8211; <a href="https://accounts.fedoraproject.org/user/arrfab" target="_blank" rel="noreferrer noopener">Fabian Arrotin</a>  <a href="https://accounts.fedoraproject.org/user/james/" target="_blank" rel="noreferrer noopener">James Antill</a>  <a href="https://accounts.fedoraproject.org/user/asaleh/" target="_blank" rel="noreferrer noopener">Adam Saleh</a>  <a href="https://accounts.fedoraproject.org/user/carlwgeorge/" target="_blank" rel="noreferrer noopener">Carl George</a>  <a href="https://accounts.fedoraproject.org/user/humaton/" target="_blank" rel="noreferrer noopener">Tomas Hrcka</a></figcaption></figure>



<p>The next session was hosted by <a href="https://accounts.fedoraproject.org/user/amoloney/" target="_blank" rel="noreferrer noopener">Aoife Moloney</a> who kicked off an interesting discussion about the limited-scope projects that the team undertakes and the maintainers for the applications that the team takes care of. The members participated in pointing out the things that currently work great and those that could use some improvements. This was the last planned session for the day and the group assembled to be a part of the “Community Platform Engineering family picture”. After that, they dispersed into small groups to have their lunches in their preferred places. </p>



<p>With no more planned talks after lunchtime, the team members were divided into smaller groups for breakout rooms to participate in more detailed discussions. <a href="https://accounts.fedoraproject.org/user/zlopez" target="_blank" rel="noreferrer noopener">Michal Konecny</a> lead the one for the infrastructure and release engineering team.&nbsp;</p>



<figure class="wp-block-image size-large"><a href="https://fedoramagazine.org/wp-content/uploads/2023/05/Group-Stories.jpeg"><img decoding="async" loading="lazy" width="1024" height="653" src="https://fedoramagazine.org/wp-content/uploads/2023/05/Group-Stories-1024x653.jpeg" alt="" class="wp-image-38361" srcset="https://fedoramagazine.org/wp-content/uploads/2023/05/Group-Stories-1024x653.jpeg 1024w, https://fedoramagazine.org/wp-content/uploads/2023/05/Group-Stories-300x191.jpeg 300w, https://fedoramagazine.org/wp-content/uploads/2023/05/Group-Stories-768x490.jpeg 768w, https://fedoramagazine.org/wp-content/uploads/2023/05/Group-Stories-816x520.jpeg 816w, https://fedoramagazine.org/wp-content/uploads/2023/05/Group-Stories.jpeg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption"><strong>From left to right</strong> &#8211; <a href="https://accounts.fedoraproject.org/user/zlopez/" target="_blank" rel="noreferrer noopener">Michal Konecny</a>  <a href="https://accounts.fedoraproject.org/user/carlwgeorge/" target="_blank" rel="noreferrer noopener">Carl George</a>  <a href="https://accounts.fedoraproject.org/user/t0xic0der/" target="_blank" rel="noreferrer noopener">Akashdeep Dhar</a>  <a href="https://accounts.fedoraproject.org/user/dkirwan/" target="_blank" rel="noreferrer noopener">David Kirwan</a>  <a href="https://accounts.fedoraproject.org/user/nphilipp/" target="_blank" rel="noreferrer noopener">Nils Philippsen</a>  <a href="https://accounts.fedoraproject.org/user/arrfab/" target="_blank" rel="noreferrer noopener">Fabian Arrotin</a>  <a href="https://accounts.fedoraproject.org/user/tdawson/" target="_blank" rel="noreferrer noopener">Troy Dawson</a>  <a href="https://accounts.fedoraproject.org/user/dherrera/" target="_blank" rel="noreferrer noopener">Diego Herrera</a></figcaption></figure>



<p>The team started slowly thinning down even more in the late afternoon, with the members bidding farewell to each other in the office and returning to the hotel. Some members decided to stay longer to explore Barcelona a bit more. Others began collecting their luggage from the hotel and leaving for the airport. With “goodbyes” waved to teammates and “resolves” about the next thing, the members departed from the face-to-face meeting with a new zeal and energy to contribute in an even better way to the community. </p>



<p>Even with minor hiccups and some teammates not being able to join the event, the meeting event turned out to be a grand success &#8211; both in uniting the members and in strategizing the team&#8217;s efforts. The members of the team surely look forward to the next time they get together.&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fedoramagazine.org/the-community-platform-engineering-f2f-2023-experience-part-ii/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<enclosure url="https://fedoramagazine.org/wp-content/uploads/2023/05/Platform-Engrg-F2F-2023_pt-2-300x127.jpg" length="9768" type="image/jpg" />	</item>
		<item>
		<title>Make use of Btrfs snapshots to upgrade Fedora Linux with easy fallback</title>
		<link>https://fedoramagazine.org/make-use-of-btrfs-snapshots-to-upgrade-fedora-linux-with-easy-fallback/</link>
					<comments>https://fedoramagazine.org/make-use-of-btrfs-snapshots-to-upgrade-fedora-linux-with-easy-fallback/#comments</comments>
		
		<dc:creator><![CDATA[Stuart D Gathman]]></dc:creator>
		<pubDate>Fri, 12 May 2023 08:00:00 +0000</pubDate>
				<category><![CDATA[FAQs and Guides]]></category>
		<category><![CDATA[btrfs]]></category>
		<category><![CDATA[snapshot]]></category>
		<category><![CDATA[system-upgrade]]></category>
		<guid isPermaLink="false">https://fedoramagazine.org/?p=38259</guid>

					<description><![CDATA[Use a Btrfs snapshot as a fallback in case of any problems with a system upgrade. Think of it as a "save game" for your computer!]]></description>
										<content:encoded><![CDATA[
<p>Back in 2018, a <a href="https://fedoramagazine.org/use-lvm-upgrade-fedora/" target="_blank" rel="noreferrer noopener">previous article</a> demonstrated how to use LVM to clone the root filesystem before upgrading Fedora Linux so as to have a fallback in the unlikely event that something goes wrong. Today, the default Fedora Workstation install uses Btrfs. Now you can use a Btrfs snapshot to make creating a bootable fallback much easier. Note that converting or migrating a system to Btrfs from another filesystem is outside the scope of this article.</p>



<span id="more-38259"></span>



<h2 class="wp-block-heading">Check that root filesystem is Btrfs</h2>



<p>This example uses a Pinebook aarch64 laptop. Before proceeding, first make sure that Btrfs is being used for the root (system) filesystem. Not every spin or image uses Btrfs by default.</p>



<pre class="wp-block-preformatted">$ df -T
Filesystem     Type     1K-blocks     Used Available Use% Mounted on
devtmpfs       devtmpfs      4096        0      4096   0% /dev
tmpfs          tmpfs       998992        0    998992   0% /dev/shm
tmpfs          tmpfs       399600     6360    393240   2% /run
/dev/mmcblk2p3 btrfs     56929280 39796116  15058348  73% /
tmpfs          tmpfs       998996       24    998972   1% /tmp
tmpfs          tmpfs      5242880        0   5242880   0% /var/lib/mock
/dev/mmcblk2p3 btrfs     56929280 39796116  15058348  73% /f34
/dev/mmcblk2p3 btrfs     56929280 39796116  15058348  73% /home
/dev/mmcblk2p2 ext4        996780   551888    376080  60% /boot
/dev/mmcblk2p1 vfat        194348    31648    162700  17% /boot/efi
tmpfs          tmpfs       199796      100    199696   1% /run/user/1000
tmpfs          tmpfs       199796       84    199712   1% /run/user/0</pre>



<h2 class="wp-block-heading">List the existing Btrfs subvolumes</h2>



<p>The above example output shows that the file system mounted on &#8220;root&#8221; (&#8220;/&#8221;) is type Btrfs. Notice that three mountpoints show the same backing device and the same <em>Used</em> and <em>Available</em> blocks. This is because they are parts (subvolumes) mounted from a single Btrfs filesystem. The <em>/f34</em> subvolume is my bootable snapshot from last year.</p>



<p>A default Fedora Btrfs install creates one Btrfs filesystem with two subvolumes &#8212; <em>root</em> and <em>home</em> &#8212; mounted on / and /home respectively. Let&#8217;s see what other subvolumes I&#8217;ve added:</p>



<pre class="wp-block-preformatted">$ sudo btrfs subvol list /
ID 272 gen 110428 top level 5 path root
ID 273 gen 110426 top level 5 path home
ID 300 gen 109923 top level 5 path f34
ID 301 gen 95852 top level 5 path home.22Jul26
ID 302 gen 95854 top level 5 path f36.22Jul26</pre>



<p>There is an <em>f34</em> subvol from the last system-upgrade and two readonly snapshots of <em>home</em> and <em>f36</em>. The easiest way to add and delete snapshots is to mount the Btrfs root. I will update the system and create a new snapshot of the current f36 <em>root</em> subvolume. If you have renamed your <em>root</em> subvolume, then you presumably know enough to adjust the following example accordingly for your system.</p>



<h2 class="wp-block-heading">Create the Btrfs fallback snapshot</h2>



<pre class="wp-block-preformatted">$ sudo dnf update --refresh
... lots of stuff updated (reboot if kernel updated)
$ sudo mkdir -p /mnt/root
$ sudo mount /dev/mmcblk2p3 /mnt/root
$ cd /mnt/root
$ ls
f34  f36.22Jul26  home  home.22Jul26  root
$ sudo btrfs subvol snapshot root f36
Create a snapshot of 'root' in './f36'</pre>



<p>Because Btrfs snapshots are filesystem based, it is not necessary to &#8220;sync&#8221; before the snapshot, as I recommended for LVM. To boot from the new subvol as a fallback, you will need to edit /mnt/root/f36/etc/fstab with your favorite editor. If you are a beginner, nano is a dirt simple text editor with minimal features. Here are some lines from my <em>fstab</em> file:</p>



<pre class="wp-block-preformatted">LABEL=PINE		/    btrfs   subvol=root,compress=zstd:1        1 1
UUID=e31667fb-5b6f-48d9-aa90-f2fd6aa5f005 /boot ext4    defaults        1 2
UUID=75DB-5832          /boot/efi               vfat    umask=0077,shortname=winnt 0 2
LABEL=PINE		/home    btrfs   subvol=home,compress=zstd:1    1 1
LABEL=SWAP swap			swap	discard=once	0 0</pre>



<p>Change <em>subvol=root</em> to <em>subvol=f36</em>. This change is to the file in the snapshot, not your production <em>fstab</em>. You can compare them with <kbd>diff /etc/fstab /mnt/root/f36/etc/fstab</kbd>. In my case, I also deleted my <em>f34</em> snapshot from last year with <kbd>sudo btrfs subvol delete f34</kbd>.</p>



<h2 class="wp-block-heading">Test the Btrfs fallback snapshot</h2>



<p>Now you are ready to test the fallback. You could use <a href="https://fedoramagazine.org/setting-kernel-command-line-arguments-with-fedora-30/" target="_blank" rel="noreferrer noopener">grubby</a> or edit an entry in /boot/loader/entries to change <em>subvol=root</em> to <em>subvol=f36</em>. But in the interest of safety for beginners, I will have you edit the GRUB entry at boot time instead. Check out  <a href="https://fedoramagazine.org/boot-earlier-kernel/" target="_blank" rel="noreferrer noopener">this article on GRUB</a> for tips on getting to the GRUB menu.  Once you are there, press the <strong>e</strong> key to edit the default kernel entry. Don&#8217;t worry &#8212; your changes are in volatile memory only. If you mess up, reboot to start over. Just like with fstab, find <em>subvol=root</em> and change it to <em>subvol=f36</em>. Press <strong>F10</strong> or <strong>Ctrl</strong>+<strong>X</strong> to boot your modified entry. With these changes, the system should boot into your new snapshot. Look at /etc/fstab to make sure you are booting from the right subvol, or enter <kbd>mount | grep subvol</kbd> to see what subvolume is mounted on &#8220;/&#8221;. </p>



<h2 class="wp-block-heading">Do the Fedora Linux system upgrade</h2>



<p>If your fallback is working, reboot back to your normal root filesystem (and confirm as above). Then proceed with the standard system-upgrade outlined on the <a href="https://docs.fedoraproject.org/en-US/quick-docs/dnf-system-upgrade/" target="_blank" rel="noreferrer noopener">wiki page</a>. TIP: Before running <kbd>dnf system-upgrade reboot</kbd>, make another snapshot of root. Call it something like <em>root.dl</em>. That way, you don&#8217;t have to download five gigabytes of packages again should you discover that there wasn&#8217;t enough free space. The snapshot will not take up any additional space because all but the downloaded packages are shared with <em>root</em> and <em>f36</em>. About that sharing of disk blocks … <br /><br /><kbd>dnf system-upgrade</kbd> gets confused about free space as reported by Btrfs because the f36 files in the <em>root</em> subvolume use the same disk locations as the same files in the <em>f36</em> subvolume. So removing them from the <em>root</em> subvolume during the upgrade process doesn&#8217;t actually free up any space. If you run out of space, and you reboot &#8212; the graphical user interface (GUI) won&#8217;t start. Use <strong>Ctrl</strong>+<strong>Alt</strong>+<strong>F2</strong> to login on a text console and practice your command line interface skills. Figuring out what to remove to free up space or how to expand the root filesystem is beyond the scope of this article (mine is often on an LVM volume and can be expanded). Having more than 50% free for the upgrade is a safe bet.</p>



<h2 class="wp-block-heading">Recovery</h2>



<p>Should something go wrong, you can reboot and edit the GRUB entry to boot the fallback. If you are a beginner, you&#8217;ll want some hand holding if you do end up needing to change the GRUB entry on disk (so you don&#8217;t have to edit at each boot). It is straight forward to delete or rename the broken <em>root</em> subvol.  Snapshot the <em>f36</em> subvol (or the <em>root.dl</em> snapshot) to try the system-upgrade process again. Here is an example of starting over after booting into the fallback system on subvol f36:</p>



<pre class="wp-block-preformatted">$ mount | grep subvol
$ sudo mount /dev/mmcblk2p3 /mnt/root
$ cd /mnt/root
$ sudo mv root root.failed
$ sudo btrfs subvol snapshot f36 root
Create a snapshot of 'f36' in './root'

Don't forget to edit /mnt/root/root/etc/fstab to change the subvol mounted on "/" to "root".</pre>



<p>As it turns out, the new kernel-6.2.11 for f38 did not boot on my Pinebook after the system-upgrade!  (Don&#8217;t worry, ARM is an alternative CPU architecture for Fedora Linux &#8212; this is very unlikely to happen to you on a mainstream device.) I was indeed able to boot back to f36 by editing the GRUB entry for kernel-6.2.10 at boot time as described above. I am now using f38 again &#8212; but with kernel-6.2.10 from f36. </p>



<p><strong>Update</strong>: <em>kernel-6.2.12 is out and it works on the Pinebook.</em></p>



<h2 class="wp-block-heading">Expiration</h2>



<p>As you update the f38 system, it will eventually want to delete the last f36 kernel from /boot. That is normally not a problem, as by that time you have settled into f38, and the f36 snapshot is just an archive.  If you want to keep your fork (f36 snapshot) bootable indefinitely, you should preserve a working f36 kernel under /boot. The simplest way to do so is to set <em>installonly_limit=0</em> in /etc/dnf/dnf.conf and manually remove old kernels. It is simple and safe (but annoying).<br /><br />Outline of a more complex solution (not for beginners): Run <kbd>find /boot -name "*fc36*"</kbd> to list all the kernel and GRUB files for your f36 subvolume snapshot that are under /boot (which is not in the snapshot). Copy them to a backup location (I would mount the f36 subvolume and copy to a backup directory there). While booted from f38, for each f36 kernel version, use dnf to remove that specific kernel version (for example, <kbd>dnf remove kernel-core-5.19.11-200.fc36</kbd>).  Do not remove the f38 kernels! Now restore the f36 kernels you saved to /boot. The f38 system doesn&#8217;t know about f36 kernels anymore, and it will not remove them from /boot.<br /><br />The problem with that method is the danger of accidentally removing the running f38 kernel. If anyone has a better method, let me know in the comments.</p>



<h2 class="wp-block-heading">Future directions</h2>



<p>Those comfortable with modifying GRUB entries might consider creating a snapshot subvolume named <em>f38</em>, modifying the current GRUB entry to boot into that, rebooting, and running the system-upgrade in that subvolume. Then always name the subvol for the root filesystem after the Fedora Linux release it contains. I did not do that for this article for two reasons.</p>



<ol>
<li>Naming the current active subvolume <em>root</em> matches the Fedora Linux default.</li>



<li>Sticking with <em>root</em> for the current subvol does not require any permanent changes outside of the normal system-upgrade procedure.</li>
</ol>



<p>As this article has demonstrated, readonly snapsnots are useful as local restore points in case things go wrong when making significant system changes (such as a system release upgrade). These snapshots can also be sent to a remote backup using Btrfs&#8217; <em>send</em> subcommand. (And if the remote backup device already contains previous backups, Btrfs can do an incremental send that only transmits changed files to save time and space.) If you intend to archive these snapshots long term, the key to not getting confused about which ones are which and what order to restore them is to use a consistent naming convention. See the article on <a href="https://fedoramagazine.org/btrfs-snapshots-backup-incremental/" target="_blank" rel="noreferrer noopener">Btrfs snapshots for backup</a> for more information about using Btrfs&#8217; <em>send</em> command to create backups.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fedoramagazine.org/make-use-of-btrfs-snapshots-to-upgrade-fedora-linux-with-easy-fallback/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
		<enclosure url="https://fedoramagazine.org/wp-content/uploads/2023/04/forkedtree-300x127.jpg" length="15234" type="image/jpg" />	</item>
		<item>
		<title>Use FIDO U2F security keys with Fedora Linux</title>
		<link>https://fedoramagazine.org/use-fido-u2f-security-keys-with-fedora-linux/</link>
					<comments>https://fedoramagazine.org/use-fido-u2f-security-keys-with-fedora-linux/#comments</comments>
		
		<dc:creator><![CDATA[Alexander Wellbrock]]></dc:creator>
		<pubDate>Wed, 10 May 2023 08:00:00 +0000</pubDate>
				<category><![CDATA[FAQs and Guides]]></category>
		<category><![CDATA[CTAP]]></category>
		<category><![CDATA[CTAP1]]></category>
		<category><![CDATA[FIDO]]></category>
		<category><![CDATA[FIDO2]]></category>
		<category><![CDATA[Security Key]]></category>
		<category><![CDATA[U2F]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[WebAuthn]]></category>
		<category><![CDATA[YubiKey]]></category>
		<guid isPermaLink="false">https://fedoramagazine.org/?p=38200</guid>

					<description><![CDATA[A FIDO U2F security key is a small USB and/or NFC based device. It is a hardware security token with modules for many security related use-cases. There are several brands of FIDO compliant keys, including NitroKey, SoloKey v2, and YubiKey. FIDO, in contrast to proprietary protocols like Yubico OTP, is hardware token agnostic and the [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>A FIDO U2F security key is a small USB and/or NFC based device. It is a hardware security token with modules for many security related use-cases. There are several brands of FIDO compliant keys, including NitroKey, SoloKey v2, and YubiKey. FIDO, in contrast to proprietary protocols like Yubico OTP, is hardware token agnostic and the tools used are manufacturer independent.</p>



<p>This post introduces the FIDO protocol(s) and shows how to install and enable a FIDO U2F security key as an alternative authentication factor for logging into a terminal, GDM, or authenticating for sudo.</p>



<span id="more-38200"></span>



<p>For YubiKeys, especially older ones <em>without</em> FIDO2/U2F support, see the previous post titled &#8220;<a href="https://fedoramagazine.org/how-to-use-a-yubikey-with-fedora-linux/">How to use a YubiKey with Fedora Linux</a>&#8220;.</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-fedora-magazine wp-block-embed-fedora-magazine"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="c3WsreIZcz"><a href="https://fedoramagazine.org/how-to-use-a-yubikey-with-fedora-linux/">How to use a YubiKey with Fedora Linux</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" title="&#8220;How to use a YubiKey with Fedora Linux&#8221; &#8212; Fedora Magazine" src="https://fedoramagazine.org/how-to-use-a-yubikey-with-fedora-linux/embed/#?secret=10dooDXm0Y#?secret=c3WsreIZcz" data-secret="c3WsreIZcz" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<p>This post will not cover storing OpenPGP keys or X.509 certificates because those features are hardware dependent and not part of the FIDO U2F standard.</p>



<h2 class="wp-block-heading">Keep a backup security key</h2>



<p>As soon as you start working with security tokens you have to account for the potential to lock yourself out of accounts tied to these tokens. As hardware security tokens are unique and designed to be extremely hard to copy you cannot just make a backup of it like you can with software vaults like KeePass or AndOTP. Consequently, all registrations you make with your primary key you should immediately repeat with a second backup key that you will store in a secure location, maybe even a safe.</p>



<p>In practice this means you will need to register both hardware tokens with your Linux and web accounts, generate OpenSSH private keys twice, and upload both OpenSSH public keys to the servers and services you use (for example, GitHub).</p>



<p>Should you lose a key, you&#8217;ll want to use your second key to sign in on every service the keys are registered with, remove the lost key, and register a new one. This is especially true for password-less logins using a FIDO2 protocol.</p>



<h2 class="wp-block-heading">FIDO2, U2F and the FIDO Alliance</h2>



<p>FIDO2 is a collection of standards maintained by the <a href="https://fidoalliance.org" target="_blank" rel="noreferrer noopener">FIDO Alliance</a>. The FIDO Alliance hopes to eventually get rid of passwords altogether and instead provide procedures to authenticate users securely through multiple factors but without the need for passwords.</p>



<p>The standard consists of the World Wide Web Consortium&#8217;s (W3C) Web Authentication (WebAuthn) and the FIDO Alliance&#8217;s Client-to-Authenticator Protocol (CTAP). WebAuthn is a standard API to request and process public key challenges for authentication. With this, browsers send a challenge to a client which then produces a response with a private key that the challenger then verifies using a previously exchanged public key. How the challenge answer is produced is unknown to the service and it is controlled by the CTAP. The user might be prompted for several verification methods like biometrics, PIN, or presence check (or some combination of these methods). These checks are the same for authentication as they are when registering the key with the service.</p>



<p>A access PIN to protect any interaction with the hardware token is optional and it is unset by default. Most keys will self-invalidate after eight sequential failed attempts at entering the access PIN. The only way to recover an invalidated key and set a new PIN is to reset the key. However, when a key is reset, all its service registrations will be lost!</p>



<p>A FIDO2 key also supports the FIDO U2F protocol (now renamed CTAP1). This protocol is designed for second- or multi-factor (but not password-less) authentication. Linux&#8217;s PAM authentication system can also be configured to use the U2F protocol. Although FIDO U2F is not designed for password-less authentication, the U2F PAM module does allow password-less authentication.</p>



<h2 class="wp-block-heading">Security implications</h2>



<p>FIDO2 / U2F works by tying the security key to your user account. Most keys have a basic presence-check which is enabled / used by default. They typically perform a presence-check by lighting up and prompting you to touch the key. A FIDO2 PIN is optional and it will be unset by default. When the key is registered for signing in to your Linux account or for using sudo, it is sufficient to have the device and key physically present. A FIDO2 PIN is an important additional verification step to ensure that only you can use the key for authentication.</p>



<blockquote class="wp-block-quote">
<p>Wait! Now I have to keep track of an additional PIN? Isn&#8217;t this just a shorter password?</p>
<cite>The concerned reader</cite></blockquote>



<p>A FIDO2 PIN is not a password. It is a short, easy-to-remember phrase. This is not a problem because:</p>



<ol>
<li>You need physical access to the key <em>and</em> you need to know the PIN.</li>



<li>Failing to enter the PIN eight times will invalidate the key which makes it hard to brute-force.</li>
</ol>



<p>On the contrary, you can now use a secure password stored in a password manager that you don&#8217;t need to remember.</p>



<p>A 2016 case study by Google, titled &#8220;<em><a href="http://fc16.ifca.ai/preproceedings/25_Lang.pdf" target="_blank" rel="noreferrer noopener">Security Keys: Practical Cryptographic Second Factors for the Modern Web</a></em>&#8220;, shows security keys effectively protect users from password reuse, phishing and man-in-the-middle attacks.</p>



<h2 class="wp-block-heading">User authentication using PAM</h2>



<p>Local system authentication uses <a href="https://www.redhat.com/sysadmin/pluggable-authentication-modules-pam" target="_blank" rel="noreferrer noopener">Pluggable Authentication Modules (PAM)</a>. The PAM module for U2F devices (and hence authentication) is <em>pam_u2f</em>. Whether your key supports FIDO2 or FIDO U2F will depend on its firmware version and hardware model.</p>



<p>The setup is as follows:</p>



<ol>
<li>Install the PAM module.</li>



<li>Register a key with your user account.</li>



<li>Use <em>authselect</em> to activate smart card support in PAM.</li>
</ol>



<p><a href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_authentication_and_authorization_in_rhel/configuring-user-authentication-using-authselect_configuring-authentication-and-authorization-in-rhel" target="_blank" rel="noreferrer noopener">Authselect</a> is a tool for configuring PAM with reproducible profiles. By using authselect&#8217;s profiles, manually altering configuration files under the /etc/pam.d directory can be avoided.</p>



<h2 class="wp-block-heading">Dependencies</h2>



<p>The required packages are available in the official repositories.</p>



<pre class="wp-block-preformatted">[…]$ sudo dnf install pam-u2f pamu2fcfg fido2-tools</pre>



<h3 class="wp-block-heading">Set a FIDO2 PIN on your key</h3>



<p>The FIDO2 standard defines an optional PIN for access protection. There is no PUK or other way to restore a lost or invalidated PIN so make sure you have a backup approach for authentication. If the PIN is invalidated through sequential entry of invalid PINs, the only way to recover is to reset the key. However, resetting your key removes all its credentials and disconnects it from all previously registered services.</p>



<p>The <em>fido2-tools</em> package contains a tool to set the FIDO2 PIN of your key: <em>fido2-token</em>. Get a list of currently connected FIDO2 devices with <kbd>fido2-token -L</kbd> and set a new pin with <kbd>fido2-token -C &lt;/path/to/device&gt;</kbd>:</p>



<pre class="wp-block-preformatted">[…]$ fido2-token -L
/dev/hidraw1: vendor=0x1050, product=0x0407 (Yubico YubiKey OTP+FIDO+CCID)
[…]$ fido2-token -C /dev/hidraw1
Enter current PIN for /dev/hidraw1: 
Enter new PIN for /dev/hidraw1:</pre>



<h3 class="wp-block-heading"><strong>Register the security key with your local account(s)</strong></h3>



<p>Use the tool <em>pamu2fcfg</em> to retrieve a configuration line that goes into ~/.config/Yubico/u2f_keys. <em>pam_u2f</em> is a Yubico-provided, generic module for U2F keys, hence the Yubico specific default configuration path. Each configuration line in this file consists of a username and a key-specific credential / config part separated by colons. Be sure to only use one line per user.</p>



<pre class="wp-block-preformatted">fedora-user:owBYtPIH2yzjlSQaRrVcxB...Pg==,es256,+presence+pin[:another key for this user]</pre>



<p>If the key is PIN protected you&#8217;ll be asked to enter the PIN for this operation. Use the following for the initial registration of your first key:</p>



<pre class="wp-block-preformatted">[…]$ mkdir -p ~/.config/Yubico
[…]$ pamu2fcfg --pin-verification &gt; ~/.config/Yubico/u2f_keys</pre>



<p>To add another key (for example, your backup key) to this single-user configuration, use the following command:</p>



<pre class="wp-block-preformatted">[…]$ pamu2fcfg --nouser --pin-verification &gt;&gt; ~/.config/Yubico/u2f_keys</pre>



<p><em>pam_u2f</em> also supports the use of a central authentication file. In that case, be sure to use one line per user and to keep all the keys of a given user on the same line. If two lines reference the same username only the last one will be used! Have a look at the <a href="https://manpages.org/pam_u2f/8" target="_blank" rel="noreferrer noopener">pam_u2f man page</a> for all available options.</p>



<h2 class="wp-block-heading">Configure PAM with authselect</h2>



<p><strong><a href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_authentication_and_authorization_in_rhel/configuring-user-authentication-using-authselect_configuring-authentication-and-authorization-in-rhel" target="_blank" rel="noreferrer noopener">authselect</a></strong> is a tool for controling your system&#8217;s PAM configuration. It introduces profiles as an additional layer of abstraction. One authselect profile can change several PAM configuration files. Profiles have parameters that control additional features and behaviors like enabling FIDO U2F security keys. A detailed tour of <em>authselect</em> is planned for a future article.</p>



<p>Display the currently active <em>authselect</em> profile. With the SSSD (System Security Service Daemon) profile selected and U2F support enabled, the output might resemble the following:</p>



<pre class="wp-block-preformatted">[…]$ authselect current
Profile ID: sssd
Enabled features:
- with-pam-u2f</pre>



<p>Activate FIDO U2F support in PAM using <em>authselect</em> with the <em>with-pam-u2f</em> flag:</p>



<pre class="wp-block-preformatted">[…]$ sudo authselect select sssd with-pam-u2f</pre>



<p>If you also want to use your fingerprint reader you have to enable both features:</p>



<pre class="wp-block-preformatted">[…]$ sudo authselect select sssd with-pam-u2f with-fingerprint</pre>



<p>This activates the <em>sssd</em> profile with <em>pam_u2f</em> and fingerprint reader support. For example, when using sudo on a terminal with the above authselect profile configuration, you&#8217;ll first be asked for a fingerprint and if that fails for the U2F key. GDM, however, will use the U2F key first.</p>



<h2 class="wp-block-heading">Unlocking the GNOME keyring daemon</h2>



<p>When using biometrics, a U2F key, or any other method that does not require a passphrase to sign in to GNOME, the <em>Login</em> keyring cannot be unlocked automatically. This is because, by default, the keyring passphrase is set to the same value as your login passphrase. Normally, PAM passes your login passphrase to the keyring daemon. Since you are not entering a passphrase when authenticating via methods such as biometrics or U2F keys, there is no passphrase for PAM to pass to the keyring daemon. There is no straight forward solution to this problem.</p>



<p>If you use LUKS encryption for your home partition and operate a single-user system, you could remove the passphrase from your keyring. This will leave your gnome keyring unencrypted at the file level. But it will still be encrypted at the block level by LUKS. LUKS encryption is equivalent to the default file-based keyring encryption on a single-user system since the keyring&#8217;s encryption is only designed to protect its contents from offline access. The keyring will be decrypted / unlocked after login either way and any runtime application or malware can potentially access the keyring&#8217;s contents after it is unlocked. Since LUKS is also an offline protection mechanism, it can be considered an equivalent alternative to the keyring&#8217;s normal file-based encryption.</p>



<p>LUKS encryption and the keyring&#8217;s normal file-based encryption are not equivalent if your system is used by multiple users. In the case of a multi-user system with the keyrings protected only by LUKS, any user with authorization to decrypt the disk and boot the system will be able to access any other user&#8217;s keyring on that same system.</p>



<p>Removing the GNOME <em>Login</em> keyring passphrase is straight forward. Just set a new empty password and the keyring will be unlocked and it will be stored unencrypted at the file level. The graphical utility <em>seahorse</em> (also called <em>Passwords and Keys</em>) can be used to set a blank password on your GNOME <em>Login</em> keyring.</p>



<h2 class="wp-block-heading">Lookout and other use-cases</h2>



<p>Upcoming articles will explore how to use FIDO2/U2F keys for unlocking LUKS-encrypted disks using the U2F Dracut plugin.</p>



<p>OpenSSH 8.2+ supports the use of <em>ed25519-sk</em> security keys. This topic has already been touched upon in the previous article titled &#8220;<a href="https://fedoramagazine.org/how-to-use-a-yubikey-with-fedora-linux/">How to use a YubiKey with Fedora Linux</a>&#8220;.</p>



<p>Note that FIDO2/U2F is an authentication standard. There are other use-cases for security tokens (primarily established by Yubico) like (T)OTP, PIV (for x509 key management) or OpenPGP which are not covered in general but on a hardware by hardware basis.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fedoramagazine.org/use-fido-u2f-security-keys-with-fedora-linux/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
		<enclosure url="https://fedoramagazine.org/wp-content/uploads/2023/05/FIDO_U2F_keys-1-300x127.jpg" length="17498" type="image/jpg" />	</item>
		<item>
		<title>Trying different desktop environments using &#8220;rpm-ostree rebase&#8221;</title>
		<link>https://fedoramagazine.org/trying-different-desktop-environments-using-rpm-ostree/</link>
					<comments>https://fedoramagazine.org/trying-different-desktop-environments-using-rpm-ostree/#comments</comments>
		
		<dc:creator><![CDATA[Jakub Sierżęga]]></dc:creator>
		<pubDate>Mon, 08 May 2023 08:00:00 +0000</pubDate>
				<category><![CDATA[Fedora Project community]]></category>
		<guid isPermaLink="false">https://fedoramagazine.org/?p=38288</guid>

					<description><![CDATA[Fedora Linux Workstation features a GNOME desktop environment which is an easy to use, intuitive, and efficient desktop environment. But this is not the only option if you would like to use Fedora Linux. There are other spins that provide alternative desktop environments like KDE, XFCE, Cinnamon, etc. This article describes how you can try [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Fedora Linux Workstation features a GNOME desktop environment which is an easy to use, intuitive, and efficient desktop environment. But this is not the only option if you would like to use Fedora Linux. There are other spins that provide alternative desktop environments like KDE, XFCE, Cinnamon, etc. This article describes how you can try different desktop environments if you are using an OSTree based Fedora Linux spins.</p>



<span id="more-38288"></span>



<h2 class="wp-block-heading">Main version of Fedora Workstation</h2>



<p>If you installed a non-OSTree Fedora Workstation or one of the Spins and would like to try different desktop environment, you have some possibilities:</p>



<ul>
<li>install different desktop environment using <em>dnf</em></li>



<li>dual boot multiple spins of Fedora</li>
</ul>



<p>If you choose the first option, you have to install another desktop environment by using the <em>dnf install </em>command. This technique enables you to select which desktop environment you would like to use on the login screen after system boots. Using this method will pull in a lot of dependencies. This is  especially true when you have a GTK based desktop environment (like GNOME) and install a QT based (like KDE), or vice-versa. It can be difficult to completely uninstall one of the installed desktop environment if you are not satisfied with them.</p>



<p>Another issue with this is that system apps may be doubled in the application menu on each environment. For example, if you have installed GNOME and install KDE, you have Nautilus and Dolphin for browsing files, GNOME Terminal and Konsole for terminal emulation, etc. You have to remember which app to use on which environment, because apps from KDE behave worse on GNOME and vice-versa.</p>



<p>If you choose the second option, you have to make some free unpartitioned space on your hard drive to install another Fedora spin alongside one you are currently using. In this way, the systems are separated from each other and the system apps will not be doubled. You can decide to share the <em>/home</em> partition between them. This technique enables you select the system to use in the bootloader menu before system boots. But if you use this method, you have to maintain these systems separately (for example installing updates) and it consumes a lot of free space on the hard drive.</p>



<h2 class="wp-block-heading">OSTree based version of Fedora Workstation</h2>



<p>Some variants of Fedora Linux are OSTree based. OSTree provides immutability and transactional upgrades with the possibility of rollback in case something goes wrong. You can read more about it in <a href="https://fedoramagazine.org/pieces-of-fedora-silverblue/" target="_blank" rel="noreferrer noopener">this great article.</a> Right now, we have three OSTree based Fedora Workstation variants:</p>



<ul>
<li>Silverblue &#8211; provides GNOME desktop environment</li>



<li>Kinoite &#8211; provides KDE Plasma desktop environment</li>



<li>Sericea &#8211; provides Sway window manager (not recommended for beginners)</li>
</ul>



<p>If you are running one of these variants of Fedora Linux, you can easily switch your system to another OSTree compatible one to try different desktop environment. This process is similar to doing a system upgrade. OSTree guarantees that the operation is transactional (finishes successfully or nothing is changed) and you are able to rollback if you are not satisfied with the change. The operation does not consume much space on the hard drive, and system apps are not doubled.</p>



<h3 class="wp-block-heading">How to use OSTree rebase to switch to a new variant</h3>



<p>To start, I recommend executing the following command to pin the current deployment. This makes certain it will not be deleted automatically in the future and provides the ability to roll back to it. </p>



<pre class="wp-block-preformatted">$ sudo ostree admin pin 0</pre>



<p>If you have a pending update, the command may fail with the message:</p>



<pre class="wp-block-preformatted">error: Cannot pin staged deployment</pre>



<p>In this case, reboot your system to apply pending updates,  and try again.</p>



<p>After pinning the deployment, execute:</p>



<pre class="wp-block-preformatted">$ ostree remote refs fedora</pre>



<p>It outputs a list of all available branches that you can rebase into. Every branch has an architecture, version, and the name of the variant. Select carefully. In the following examples I assume you would like to rebase into the current stable version of Fedora for x86_64 (version 38). </p>



<ul>
<li>for Fedora Silverblue, use fedora:fedora/38/x86_64/silverblue</li>



<li>for Fedora Kinoite, use fedora:fedora/38/x86_64/kinoite</li>



<li>for Fedora Sericea, use fedora:fedora/38/x86_64/sericea</li>
</ul>



<p>Choose the branch you wish to rebase into and execute the following command (change the branch name provided in the example if necessary):</p>



<pre class="wp-block-preformatted">$ rpm-ostree rebase fedora:fedora/38/x86_64/kinoite</pre>



<p>When  this command succeeds, restart the system to begin using the new desktop environment. If it fails, the system should continue to work unmodified thanks to transactional updates provided by OSTree.  </p>



<h3 class="wp-block-heading">Undo the rebase into an OSTree variant</h3>



<p>If you are not satisfied with the new environment the following command will return you to your original variant:</p>



<pre class="wp-block-preformatted">rpm-ostree rollback</pre>



<p>Restart your system once again to switch back to the previous variant of Fedora.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fedoramagazine.org/trying-different-desktop-environments-using-rpm-ostree/feed/</wfw:commentRss>
			<slash:comments>14</slash:comments>
		
		
		<enclosure url="https://fedoramagazine.org/wp-content/uploads/2023/05/try_de_using_ostree_rebase-300x127.jpg" length="12932" type="image/jpg" />	</item>
		<item>
		<title>New AWS storage type for Fedora Linux</title>
		<link>https://fedoramagazine.org/new-aws-storage-type-for-fedora-linux/</link>
					<comments>https://fedoramagazine.org/new-aws-storage-type-for-fedora-linux/#comments</comments>
		
		<dc:creator><![CDATA[Major Hayden]]></dc:creator>
		<pubDate>Fri, 05 May 2023 08:00:00 +0000</pubDate>
				<category><![CDATA[Fedora Project community]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Cloud]]></category>
		<guid isPermaLink="false">https://fedoramagazine.org/?p=38326</guid>

					<description><![CDATA[Fedora Linux now has a better performing default storage option at a lower cost on AWS.]]></description>
										<content:encoded><![CDATA[
<p>If you filter Fedora Linux AWS images using a script, you might notice a change in the image names. The Fedora Cloud SIG recently updated the image publishing configuration to use the latest generation storage option and simplify the image listings.</p>



<span id="more-38326"></span>



<p>This involves two changes:</p>



<ul>
<li>Replacing <em>gp2</em> storage with <em>gp3</em> storage by default for new images</li>



<li>Removing <em>standard</em> storage from new images</li>
</ul>



<h2 class="wp-block-heading">What&#8217;s the benefit of these changes?</h2>



<p>The <em>gp3</em> storage type appeared in 2020 and switching to that storage type for Fedora Linux users means more consistent performance for a lower cost. (For more details, read Corey Quinn&#8217;s <a href="https://www.lastweekinaws.com/blog/the-best-release-of-reinvent-2020/" target="_blank" rel="noreferrer noopener">helpful blog post</a>.)</p>



<p>Removing <em>standard</em> storage from new image uploads means we&#8217;re creating half the AMIs we created before and it reduces the number of images you need to review when launching an instance. Finding the right Fedora Linux image for your deployment should be a little easier.</p>



<h2 class="wp-block-heading">What if I really like the other storage types?</h2>



<p>When you launch your instance, you can choose any storage type that is compatible with your instance in your preferred region. Although Fedora Linux images will have <em>gp3</em> set as the default, you can choose from any other storage type at launch time.</p>



<h2 class="wp-block-heading">How should I adjust my scripts that look for Fedora Linux images on AWS?</h2>



<p>The format of the image names remains the same, but you&#8217;ll notice a new string in the storage type portion of the image name. As an example, here&#8217;s what you would see before the change was made:</p>



<pre class="wp-block-preformatted">Fedora-Cloud-Base-Rawhide-20230503.n.0.aarch64-hvm-us-east-1-standard-0
Fedora-Cloud-Base-Rawhide-20230503.n.0.aarch64-hvm-us-east-1-gp2-0
Fedora-Cloud-Base-Rawhide-20230503.n.0.x86_64-hvm-us-east-1-standard-0
Fedora-Cloud-Base-Rawhide-20230503.n.0.x86_64-hvm-us-east-1-gp2-0</pre>



<p>After the change, there is only one image per release and architecture:</p>



<pre class="wp-block-preformatted">Fedora-Cloud-Base-Rawhide-20230504.n.0.aarch64-hvm-us-east-1-gp3-0
Fedora-Cloud-Base-Rawhide-20230504.n.0.x86_64-hvm-us-east-1-gp3-0</pre>



<h2 class="wp-block-heading">Why was this change made?</h2>



<p>The Fedora Cloud SIG wants to make the Fedora Linux cloud experience the best it can possibly be on every public cloud platform. This change gives Fedora Linux a better performing default storage option at a lower cost, reduces the overhead from creating AMIs on AWS, and simplifies the Fedora Linux image listings.</p>



<p>Read the Fedora change proposals for <a href="https://fedoraproject.org/wiki/Changes/CloudEC2ImagesNoStandardStorage">removing standard storage</a> and <a href="https://fedoraproject.org/wiki/Changes/CloudEC2gp3">switching the default to gp3</a> for a lot more detail. As always, you can find members of the Fedora Cloud SIG and join our group on <a href="https://chat.fedoraproject.org/#/room/#cloud:fedoraproject.org">Fedora Matrix</a> or on Libera IRC in <kbd>#fedora-cloud</kbd>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fedoramagazine.org/new-aws-storage-type-for-fedora-linux/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<enclosure url="https://fedoramagazine.org/wp-content/uploads/2023/05/clouds-300x127.jpg" length="9526" type="image/jpg" />	</item>
		<item>
		<title>Contribute at the Fedora Linux Test Week for Kernel 6.3</title>
		<link>https://fedoramagazine.org/contribute-at-the-fedora-linux-test-week-for-kernel-6-3/</link>
					<comments>https://fedoramagazine.org/contribute-at-the-fedora-linux-test-week-for-kernel-6-3/#comments</comments>
		
		<dc:creator><![CDATA[Sumantro Mukherjee]]></dc:creator>
		<pubDate>Wed, 03 May 2023 17:14:51 +0000</pubDate>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Fedora Contributor Community]]></category>
		<category><![CDATA[Fedora Project community]]></category>
		<category><![CDATA[Kernel test week]]></category>
		<category><![CDATA[testing]]></category>
		<guid isPermaLink="false">https://fedoramagazine.org/?p=38302</guid>

					<description><![CDATA[The kernel team is working on final integration for Linux kernel 6.3. This version was just recently released, and will arrive soon in Fedora Linux. As a result, the Fedora Linux kernel and QA teams have organized a test week from Sunday, May 07, 2023 to Sunday, May 14, 2023. Refer to the wiki page [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>The kernel team is working on final integration for Linux kernel 6.3. This version was just recently released, and will arrive soon in Fedora Linux. As a result, the Fedora Linux kernel and QA teams have organized a test week from Sunday, May 07, 2023 to Sunday, May 14, 2023. Refer to the wiki page in this article for links to the test images you’ll need to participate. Please continue reading for details.</p>



<span id="more-38302"></span>



<h2 class="wp-block-heading"><strong>How does a test week work?</strong></h2>



<p>A test week is an event where anyone can help make sure changes in Fedora Linux work well in an upcoming release. Fedora community members often participate, and the public is welcome at these events. If you’ve never contributed before, this is a perfect way to get started.</p>



<p>To contribute, you only need to be able to do the following things:</p>



<ul>
<li> Download test materials, which include some large files</li>



<li> Read and follow directions step by step</li>
</ul>



<p>The&nbsp;<a href="http://fedoraproject.org/wiki/Test_Day:2023-05-07_Kernel_6.3_Test_Week" target="_blank" rel="noreferrer noopener">wiki page</a>&nbsp;for the kernel test day has a lot of good information on what and how to test. After you’ve done some testing, you can log your results in the <a href="https://testdays.fedoraproject.org/events/157" target="_blank" rel="noreferrer noopener">test day&nbsp;web application</a>. If you’re available on or around the days of the event, please do some testing and report your results. We have <a href="https://docs.fedoraproject.org/en-US/quick-docs/kernel/howto-kernel-testday/" target="_blank" rel="noreferrer noopener">a document which provides&nbsp;all the necessary steps</a>.</p>



<p>Happy testing, and we hope to see you on one of the  test days.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fedoramagazine.org/contribute-at-the-fedora-linux-test-week-for-kernel-6-3/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
		<enclosure url="https://fedoramagazine.org/wp-content/uploads/2023/03/Test_Days-300x127.jpg" length="8537" type="image/jpg" />	</item>
		<item>
		<title>Anaconda Installer Partitioning and Storage Survey Results</title>
		<link>https://fedoramagazine.org/anaconda-installer-partitioning-and-storage-survey-results/</link>
					<comments>https://fedoramagazine.org/anaconda-installer-partitioning-and-storage-survey-results/#comments</comments>
		
		<dc:creator><![CDATA[Flo Forno]]></dc:creator>
		<pubDate>Wed, 26 Apr 2023 08:00:00 +0000</pubDate>
				<category><![CDATA[Fedora Project community]]></category>
		<guid isPermaLink="false">https://fedoramagazine.org/?p=38230</guid>

					<description><![CDATA[Back in late January, we distributed a survey focusing on partitioning preferences for Anaconda Installer (OS Installer for RHEL, CentOS, and Fedora). We were able to get 1269 responses! Thank you to all who participated. The data we collected will help the Anaconda team continue to provide an installer that best suits the majority’s needs. [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Back in late January, we distributed a survey focusing on partitioning preferences for Anaconda Installer (OS Installer for RHEL, CentOS, and Fedora). We were able to get 1269 responses! Thank you to all who participated. The data we collected will help the Anaconda team continue to provide an installer that best suits the majority’s needs.</p>



<p>Given the high participation rate, we’re excited to share the main results and findings with you!</p>



<span id="more-38230"></span>



<h2 class="wp-block-heading">Who are our users?</h2>



<p>First, we wanted to understand who the users are. The most common answers to demographic-style questions gave us the following results:</p>



<ul>
<li>96% (of 1138 responses) are <em>desktop/workstation Linux users</em></li>



<li>Have <em>11+ years of experience</em> using Linux (50% of 1138 responses)</li>



<li>90% <em>use Fedora</em> (sometimes in combination with RHEL, CentOS, Ubuntu, or Debian)</li>
</ul>



<p>450 users identify as having an <em>Intermediate level of expertise</em> with Linux storage partitioning</p>



<figure class="wp-block-image"><a href="https://lh4.googleusercontent.com/Ll0JKMqRRkk27QDAkiVWSOKCtTw5WxEK_YcanAg4y4GQVSb1gy3mLzrFH1_3qz0pg9RfzZDQClWirxs_VktGYNJVmokeTCcnyVo5w1tl7ogQvppMVtzkA7va3E3viVjrTCVxRntmketBJIZYfEgbN-k"><img decoding="async" src="https://lh4.googleusercontent.com/Ll0JKMqRRkk27QDAkiVWSOKCtTw5WxEK_YcanAg4y4GQVSb1gy3mLzrFH1_3qz0pg9RfzZDQClWirxs_VktGYNJVmokeTCcnyVo5w1tl7ogQvppMVtzkA7va3E3viVjrTCVxRntmketBJIZYfEgbN-k" alt=""/></a></figure>



<p><em>n=1138</em></p>



<figure class="wp-block-image"><a href="https://lh6.googleusercontent.com/Kh84MgBt1ruL7EPpOvlMKjGXCr95src1RNIfIF0wUc8Mn0ToU1CK9AXlRlr9Z-DJQa0IYyLbtA7ccNr2Zm4B9PLEzjSKjloxRAOweYGZjPv7mDlNkAlZrP85iqEIzekLASZAeZLm2nzdqnHVW1oDCvs"><img decoding="async" src="https://lh6.googleusercontent.com/Kh84MgBt1ruL7EPpOvlMKjGXCr95src1RNIfIF0wUc8Mn0ToU1CK9AXlRlr9Z-DJQa0IYyLbtA7ccNr2Zm4B9PLEzjSKjloxRAOweYGZjPv7mDlNkAlZrP85iqEIzekLASZAeZLm2nzdqnHVW1oDCvs" alt=""/></a></figure>



<p><em>n=1109</em></p>



<p>These data points mean that most of you have been using Linux with Fedora (not exclusively) on a desktop/workstation for over a decade! That’s impressive! But when it comes to Linux storage partitioning there is still quite a bit to learn &#8211; and we are here to make that easier.&nbsp;</p>



<h2 class="wp-block-heading">What storage and partitioning is used?</h2>



<h3 class="wp-block-heading">Storage</h3>



<p>Once we got a better picture of who our participants were, we asked questions regarding your current storage and partitioning set up. For example, we uncovered that when it comes to identifying the disks you will use for your installation, most of you are mainly interested in the disk name, size, and the sizes of partitions. This helps the team decide which data is more helpful to present on the disk selection screen.&nbsp;</p>



<figure class="wp-block-image"><a href="https://lh3.googleusercontent.com/gK84djPSEqq1uUdpyOd6u_EsvyRtmFXoK142g8WtM9EJa-TGEFUGxKmNuo1Lq82Xcs-yivZWaen8jaBoDGBL7q2Bf16eL4Bo3Plk3mYnPhXC9-gvYfrIajZ7TcZE0_qZTuQYtd0C16cCYP5jt94lf0Q"><img decoding="async" src="https://lh3.googleusercontent.com/gK84djPSEqq1uUdpyOd6u_EsvyRtmFXoK142g8WtM9EJa-TGEFUGxKmNuo1Lq82Xcs-yivZWaen8jaBoDGBL7q2Bf16eL4Bo3Plk3mYnPhXC9-gvYfrIajZ7TcZE0_qZTuQYtd0C16cCYP5jt94lf0Q" alt=""/></a></figure>



<p><em>n=969</em></p>



<h3 class="wp-block-heading">Partitioning</h3>



<p>Then, we asked questions about your preferences and expectations regarding partitioning. From studies in the past, we kept seeing an almost even preference for auto-partitioning and custom partitioning because of the different needs they each fulfill. However, this survey clarified that there is a slightly stronger preference for auto-partitioning, but many of you made it clear that you need the Installer to allow <em>some </em>customizations to partitioning. The team is certainly keeping this in mind. In fact, we asked you “How do you prefer to create partitions (storage layout) during the installation process?” and most of the multiple-choice responses were split between “Installer creates the partitions for me”, “Installer creates partitions based on my set preferences”, or “I modify the partitions proposed by the installer”. These three options indicate some form of auto-partition, leading to the combined 70% of 964 responses preferring auto-partitioning.&nbsp;</p>



<figure class="wp-block-image"><a href="https://lh6.googleusercontent.com/JBiUci5JMpnxIwmqTzUBt465-REV36IjuzcIRciJRpunKLMlbHdiWigTDiQQpFxBY2Gkby0pA9HZE4OT3oKtpaYytndbgu2ZsiRjzJNZpaJ_a8YkA526btuLhtaDgfp56-uNuzlwSkb4WbjgsVXF37I" rel="noreferrer noopener"><img decoding="async" src="https://lh6.googleusercontent.com/JBiUci5JMpnxIwmqTzUBt465-REV36IjuzcIRciJRpunKLMlbHdiWigTDiQQpFxBY2Gkby0pA9HZE4OT3oKtpaYytndbgu2ZsiRjzJNZpaJ_a8YkA526btuLhtaDgfp56-uNuzlwSkb4WbjgsVXF37I" alt=""/></a></figure>



<h2 class="wp-block-heading">Next steps for Anaconda</h2>



<p>Finally, we wanted your input on what the next steps for Anaconda should be. The team has been considering a few different approaches, and most of you ranked the “Ability to select pre-defined partitioning configuration options with streamlined steps” as your #1 choice, closely followed by “Ability to customize details of partitioning”. This tells us that you are expecting a more guided experience for partitioning, especially given that most of you also feel there is a lot left to learn about Linux storage partitioning. Be on the lookout for what’s next with Anaconda!</p>



<h2 class="wp-block-heading">Thanks to all who participated</h2>



<p>Again, thank you to all who took the time to fill out the survey. You have provided the team with plenty of data to consider for the future of Anaconda Installer.&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fedoramagazine.org/anaconda-installer-partitioning-and-storage-survey-results/feed/</wfw:commentRss>
			<slash:comments>23</slash:comments>
		
		
		<enclosure url="https://fedoramagazine.org/wp-content/uploads/2023/04/anaconda-survey-results-300x127.jpg" length="13127" type="image/jpg" />	</item>
		<item>
		<title>The Community Platform Engineering F2F 2023 Experience – Part I</title>
		<link>https://fedoramagazine.org/the-community-platform-engineering-f2f-2023-experience-part-i/</link>
					<comments>https://fedoramagazine.org/the-community-platform-engineering-f2f-2023-experience-part-i/#comments</comments>
		
		<dc:creator><![CDATA[Akashdeep Dhar]]></dc:creator>
		<pubDate>Mon, 24 Apr 2023 08:00:00 +0000</pubDate>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[CPE]]></category>
		<guid isPermaLink="false">https://fedoramagazine.org/?p=38177</guid>

					<description><![CDATA[Are you curious about who is on Fedora's Community Platform Engineering team and what they do? If so, read this post to find out!]]></description>
										<content:encoded><![CDATA[
<blockquote class="wp-block-quote"><p><em>20 Mar 2023 &#8211; 23 Mar 2023</em></p><cite><em>Barcelona, Spain</em></cite></blockquote>



<h2 class="wp-block-heading">Intro</h2>



<p>The <a href="https://docs.fedoraproject.org/en-US/cpe/" target="_blank" rel="noreferrer noopener">Community Platform Engineering team</a> is a Red Hat-sponsored team dedicated to the <a href="https://fedoraproject.org/" target="_blank" rel="noreferrer noopener">Fedora Project</a> and <a href="https://centosproject.org/" target="_blank" rel="noreferrer noopener">CentOS Project</a> that contributes to developing limited-scoped projects called initiatives, maintaining the community infrastructure, and helping manage releases of our offerings. As a remote-only team, the members were unable to get many opportunities to strategize the next big thing as a team and to bond with their fellow teammates beyond the scope of the designated work. Owing to the fact that the last team face-to-face meeting took place in Waterford City, Ireland in 2019, it became necessary for the team to meet up again when the travel restrictions started loosening up. After all, the popular saying “absence makes the heart grow fonder” applies to everyone &#8212; even to community members and teammates, right?</p>



<p>Barcelona, Spain was selected as the destination for the team face-to-face meeting and the duration was picked to be from 20th March 2023 to 23rd March 2023. As this was going to be one of the first times that people started embarking on travels again after a long spell of inactivity during COVID-19, the management made sure to begin the travel planning and event management well in advance to account for everyone in the team. This was no small feat to achieve considering the fact that the team had grown significantly since the last team face-to-face meeting; both in terms of member counts and scope diversity. The common accommodation point was chosen to be <a href="https://www.abbahoteles.com/en/destinations/hotel-balmoral/hotel.html" target="_blank" rel="noreferrer noopener">Hotel Abba Balmoral, Barcelona</a> for the entire team, which is located at the very heart of the city and around a walking distance from the nearest <a href="https://www.redhat.com/en/about/office-locations?tab=emea" target="_blank" rel="noreferrer noopener">Red Hat office</a>.</p>



<h2 class="wp-block-heading">Day 0</h2>



<p>Whilst a few team members flew into Barcelona on Sunday, many flew in throughout the day and took a cab to the hotel on Monday. As nothing was planned on the agenda for the day, it was spent by the teammates mostly getting to know each other, snacking on regional delicacies, and resting after the long flights people had gone through to get here. It was surprising to see just how many team members were getting to meet each other for the first time here and could not before, either because they were new to the team or were working on greatly different things. Some members decided to recce the Red Hat office located close by to the hotel at Travessera de Garcia, Barcelona, and snacking joints while others decided to rest up during the afternoon before heading together to the planned dinner at 1930 in a local Indian restaurant.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://fedoramagazine.org/wp-content/uploads/2023/04/20230320_225257-scaled.jpg"><img decoding="async" loading="lazy" width="1024" height="768" src="https://fedoramagazine.org/wp-content/uploads/2023/04/20230320_225257-1024x768.jpg" alt="" class="wp-image-38181" srcset="https://fedoramagazine.org/wp-content/uploads/2023/04/20230320_225257-1024x768.jpg 1024w, https://fedoramagazine.org/wp-content/uploads/2023/04/20230320_225257-300x225.jpg 300w, https://fedoramagazine.org/wp-content/uploads/2023/04/20230320_225257-768x576.jpg 768w, https://fedoramagazine.org/wp-content/uploads/2023/04/20230320_225257-1536x1152.jpg 1536w, https://fedoramagazine.org/wp-content/uploads/2023/04/20230320_225257-2048x1536.jpg 2048w, https://fedoramagazine.org/wp-content/uploads/2023/04/20230320_225257-816x612.jpg 816w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption>From left to right &#8211; <a href="https://accounts.fedoraproject.org/user/dherrera/" target="_blank" rel="noreferrer noopener">Diego Herrera</a>, <a href="https://accounts.fedoraproject.org/user/nphilipp/" target="_blank" rel="noreferrer noopener">Nils Philippsen</a>, <a href="https://accounts.fedoraproject.org/user/zlopez/" target="_blank" rel="noreferrer noopener">Michal Konecny</a>, <a href="https://accounts.fedoraproject.org/user/tdawson/" target="_blank" rel="noreferrer noopener">Troy Dawson</a>, <a href="https://accounts.fedoraproject.org/user/phsmoura/" target="_blank" rel="noreferrer noopener">Pedro Moura</a>, Stefan Mattejiet, and <a href="https://accounts.fedoraproject.org/user/t0xic0der/" target="_blank" rel="noreferrer noopener">Akashdeep Dhar</a></figcaption></figure></div>


<p>With the evening finding its way into the day, the team united at the hotel lobby at 1900 and started heading over to the authentic Indian restaurant called <a href="https://bar-bar.es/" target="_blank" rel="noreferrer noopener">Bar Bar</a>, which was again a walking distance from the hotel. Being a cuisine that most of the teammates did not try previously, <a href="https://fedoraproject.org/wiki/User:T0xic0der" target="_blank" rel="noreferrer noopener">Akashdeep Dhar</a> volunteered to guide folks through the menu &#8211; suggesting delicacies to try (or avoid) based on their preferences of flavor. For a team consisting of members hailing from across a variety of time zones and countries, having food and sharing anecdotes was indeed a magically unifying experience. After the dinner got over, some people stayed back to click pictures with the friends they made, some headed off for some more snacks in a nearby cafe and the remaining folks returned back to the hotel to get some much-needed respite.</p>



<h2 class="wp-block-heading">Day 1</h2>



<p>After the team had a joint breakfast from around 0700 to 0900, the members started heading off to the office in small groups to start off with the first (official) day of the event. Once all members settled down in a meeting room, the face-to-face meeting started off with the opening delivered by Stefan Mattejiet, following which a fun session was conducted to understand how well the members know each other by drawing each other’s faces. The next session was conducted by <a href="https://fedoraproject.org/wiki/User:T0xic0der" target="_blank" rel="noreferrer noopener">Akashdeep Dhar</a> where he talked about the importance of mentorship within the team as well as in the community and organized an activity where the team, divided into multiple subteams, were asked to enact different scenarios of mentor-mentee interactions. Following that they dispersed into small groups and headed to their preferred places for lunch.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://fedoramagazine.org/wp-content/uploads/2023/04/20230321_135355-1-scaled.jpg"><img decoding="async" loading="lazy" width="1024" height="768" src="https://fedoramagazine.org/wp-content/uploads/2023/04/20230321_135355-1-1024x768.jpg" alt="" class="wp-image-38180" srcset="https://fedoramagazine.org/wp-content/uploads/2023/04/20230321_135355-1-1024x768.jpg 1024w, https://fedoramagazine.org/wp-content/uploads/2023/04/20230321_135355-1-300x225.jpg 300w, https://fedoramagazine.org/wp-content/uploads/2023/04/20230321_135355-1-768x576.jpg 768w, https://fedoramagazine.org/wp-content/uploads/2023/04/20230321_135355-1-1536x1152.jpg 1536w, https://fedoramagazine.org/wp-content/uploads/2023/04/20230321_135355-1-2048x1536.jpg 2048w, https://fedoramagazine.org/wp-content/uploads/2023/04/20230321_135355-1-816x612.jpg 816w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption>From left to right &#8211; <a href="https://fedoraproject.org/wiki/User:Sgallagh" target="_blank" rel="noreferrer noopener">Stephen Gallagher</a>, <a href="https://fedoraproject.org/wiki/User:Abompard" target="_blank" rel="noreferrer noopener">Aurelien Bompard</a>, <a href="https://accounts.fedoraproject.org/user/ekidney/" target="_blank" rel="noreferrer noopener">Emma Kidney</a>, <a href="https://fedoraproject.org/wiki/User:T0xic0der" target="_blank" rel="noreferrer noopener">Akashdeep Dhar</a>, <a href="https://fedoraproject.org/wiki/User:Zlopez" target="_blank" rel="noreferrer noopener">Michal Konecny</a>, <a href="https://fedoraproject.org/wiki/User:Jnsamyak" target="_blank" rel="noreferrer noopener">Samyak Jain</a>, <a href="https://accounts.fedoraproject.org/user/dfan/" target="_blank" rel="noreferrer noopener">David Fan</a> and <a href="https://accounts.fedoraproject.org/user/arrfab" target="_blank" rel="noreferrer noopener">Fabian Arrotin</a></figcaption></figure></div>


<p>Once the team members were back in the office, <a href="https://fedoraproject.org/wiki/User:Zlopez" target="_blank" rel="noreferrer noopener">Michal Konecny</a> started off the next session about how knowledge can be effectively shared in the team, which proved to be really helpful. This was added to by the next session conducted jointly by <a href="https://accounts.fedoraproject.org/user/amoloney/" target="_blank" rel="noreferrer noopener">Aoife Moloney</a>, <a href="https://fedoraproject.org/wiki/User:Kevin" target="_blank" rel="noreferrer noopener">Kevin Fenzi</a>, and <a href="https://accounts.fedoraproject.org/user/jbley/?" target="_blank" rel="noreferrer noopener">Julia Bley</a>, around understanding what the team skills are and what their interests lie in. The members were lining up their creative thoughts as sticky notes that were grouped under a certain focus topic. As we moved on to the later parts of the day, <a href="https://fedoraproject.org/wiki/User:Tdawson" target="_blank" rel="noreferrer noopener">Troy Dawson</a> organized a group story session where we came together to come up with fun stories and it was really surprising to see how creative people could get using just one or two words. Finally, <a href="https://fedoraproject.org/wiki/User:Mattdm" target="_blank" rel="noreferrer noopener">Matthew Miller</a> gave us a brief yet interesting run through the history of 35 Fedora Linux releases in around 35 minutes.&nbsp;</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><a href="https://fedoramagazine.org/wp-content/uploads/2023/04/image2.jpeg"><img decoding="async" loading="lazy" src="https://fedoramagazine.org/wp-content/uploads/2023/04/image2-768x1024.jpeg" alt="" class="wp-image-38178" width="767" height="1023" srcset="https://fedoramagazine.org/wp-content/uploads/2023/04/image2-768x1024.jpeg 768w, https://fedoramagazine.org/wp-content/uploads/2023/04/image2-225x300.jpeg 225w, https://fedoramagazine.org/wp-content/uploads/2023/04/image2-1152x1536.jpeg 1152w, https://fedoramagazine.org/wp-content/uploads/2023/04/image2-816x1088.jpeg 816w, https://fedoramagazine.org/wp-content/uploads/2023/04/image2.jpeg 1200w" sizes="(max-width: 767px) 100vw, 767px" /></a><figcaption><a href="https://accounts.fedoraproject.org/user/mattdm/" target="_blank" rel="noreferrer noopener">Matthew Miller</a> giving a run-through of 35 releases of Fedora Linux in 35 minutes</figcaption></figure></div>


<p>With the last talk having been completed, the team members headed back to the hotel for a brief respite before they reunited again for a touring walk at 1630. When the team got to <a href="https://en.wikipedia.org/wiki/Pla%C3%A7a_de_Catalunya" target="_blank" rel="noreferrer noopener">Plaça de Catalunya</a>, the members were divided into two groups and were provided with a couple of tour guides who took them through the famous historical structures of Barcelona. It was an enriching experience to get to know about the history that led to the creation of these fascinating architectural creations and the team members took plenty of photographs to retain the memories. The tour got over by around 1930 after which the team members went to a local restaurant, <a href="https://www.tripadvisor.es/Restaurant_Review-g187497-d814881-Reviews-Taller_de_Tapas_Rambla_Catalunya-Barcelona_Catalonia.html" target="_blank" rel="noreferrer noopener">Taller de Tapas</a> to enjoy regional Spanish cuisine. A wide variety of mouth-watering <a href="https://en.wikipedia.org/wiki/Tapas" target="_blank" rel="noreferrer noopener">Tapas delicacies</a> were served with drinks, culminating the first day of the meeting on a high note.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fedoramagazine.org/the-community-platform-engineering-f2f-2023-experience-part-i/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<enclosure url="https://fedoramagazine.org/wp-content/uploads/2023/04/barcelona-city-beach-300x127.jpg" length="9244" type="image/jpg" />	</item>
		<item>
		<title>Changes to the ELN kernel RPM NVR</title>
		<link>https://fedoramagazine.org/changes-eln-kernel-rpm-nvr/</link>
					<comments>https://fedoramagazine.org/changes-eln-kernel-rpm-nvr/#comments</comments>
		
		<dc:creator><![CDATA[Prarit Bhargava]]></dc:creator>
		<pubDate>Fri, 21 Apr 2023 08:00:00 +0000</pubDate>
				<category><![CDATA[Fedora Project community]]></category>
		<guid isPermaLink="false">https://fedoramagazine.org/?p=38157&#038;preview=true&#038;preview_id=38157</guid>

					<description><![CDATA[Red Hat is excited to announce significant changes to ELN (Enterprise Linux Next) kernel RPM NVR (Name, Version, Release) in the kernel-ark project.  This change will be to limited to the kernel-ark ELN RPMs and does not impact Fedora.  If you don’t use Fedora ELN builds you can likely stop reading as this change won’t [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Red Hat is excited to announce significant changes to ELN (Enterprise Linux Next) kernel RPM NVR (Name, Version, Release) in the kernel-ark project.  This change will be to limited to the kernel-ark ELN RPMs and <strong>does not impact Fedora</strong>.  If you don’t use Fedora ELN builds  you can likely stop reading as this change won’t affect you. </p>



<span id="more-38157"></span>



<h2 class="wp-block-heading">What is the kernel-ark project?</h2>



<p>The <a href="https://gitlab.com/cki-project/kernel-ark" target="_blank" rel="noreferrer noopener">kernel-ark project</a> is an upstream kernel-based repository from which the Fedora kernel RPMs are built (<a href="https://cki-project.gitlab.io/kernel-ark/" target="_blank" rel="noreferrer noopener">contributions welcomed!</a>).&nbsp; This project is also used by the Centos Stream and Red Hat Enterprise Linux (RHEL) maintainers to implement, test, and verify code that is destined to be used in Centos Stream and RHEL. In other words, the kernel-ark repository contains code that is enabled to build several different kernels which may contain unique code for different use cases.&nbsp; The kernel RPMs used for CentOS Stream and RHEL are commonly referred to as the ‘ELN’ (Enterprise Linux Next) RPMs.</p>



<h2 class="wp-block-heading">Why are there ELN RPMs?&nbsp; Why can’t Centos Stream and Red Hat use Fedora RPMs?</h2>



<p>While Fedora Linux is the source of a lot of code that lands in CentOS Stream and later RHEL, the kernel configuration used in each operating system is unique.&nbsp; Fedora Linux is configured to achieve its specific goals and targets.&nbsp; CentOS Stream and RHEL do the same but for a slightly different set of goals and targets.</p>



<p>The differences are significant enough that the Fedora Linux, Centos Stream, and RHEL kernel maintainers recognized the need for separate RPMs targeted for Fedora and those targeted for Centos Stream and RHEL.&nbsp; Examples of these differences are <a href="https://cki-project.gitlab.io/kernel-ark/faq.html#i-am-booting-an-eln-rhel-kernel-on-fedora-or-vice-versa-and-the-kernel-won-t-boot-what-do-i-do-now" target="_blank" rel="noreferrer noopener">BTRFS is enabled in Fedora Linux but not in ELN</a> and there are some <a href="https://gitlab.com/cki-project/kernel-ark/-/blob/os-build/drivers/message/fusion/mptsas.c#L5391" target="_blank" rel="noreferrer noopener">specific devices</a> that are disabled in ELN but are enabled in Fedora Linux.</p>



<p>Red Hat uses kernel-ark’s ELN RPMs to continuously test upstream changes with a Red Hat specific configuration.&nbsp; This enables Red Hat to monitor performance and resolve issues before they make it into a Red Hat Enterprise Linux (RHEL) release.&nbsp; In accordance with Red Hat’s long established ‘upstream first’ policy, all fixes and suggestions for improvements are sent back to the upstream kernel community.&nbsp; This benefits the entire Linux community with improvements due to issues resolved in ELN.</p>



<p>This structure also allows Red Hat to test and make changes without affecting the Fedora Linux kernel except in a positive or desired way, such as through bug fixes.&nbsp; Fedora Linux,  CentOS Stream, and RHEL have the opportunity to accept or reject changes easily.</p>



<h2 class="wp-block-heading">What ELN NVR changes are being made?</h2>



<p>Before explaining the changes to the ELN kernel rpm NVR, it is important to understand what an NVR is.&nbsp; All RPMs have <a href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/packaging_and_distributing_software/packaging-software_packaging-and-distributing-software#ref_spec-file-preamble-items_assembly_what-a-spec-file-is" target="_blank" rel="noreferrer noopener"><strong>N</strong>ame, <strong>V</strong>ersion, and <strong>R</strong>elease (NVR) directives</a> that describe the RPM package.&nbsp; In the case of the Fedora Linux kernel RPMs the Name is ‘kernel’ and the Version is the kernel’s uname (aka UTSNAME or the kernel version).&nbsp; The last field, the Release, contains additional upstream tagging information (release candidate tags), a monotonically increasing build number, and a distribution tag.&nbsp; The NVR is separate from the kernel’s uname and the uname is not generated from it.&nbsp; Instead, we have traditionally generated the NVR from the uname.</p>



<p>For example, for a recent Fedora Linux kernel build,</p>



<pre class="wp-block-preformatted">$ rpm -qi kernel-6.3.0-0.rc5.42.fc39.src.rpm</pre>



<p>Name: kernel<br />Version: 6.3.0<br />Release: 0.rc5.42.fc39</p>



<p>In the next few weeks, the Centos Stream and RHEL maintainers will introduce <strong>ELN RPMs that have new kernel Name, Version, and Release (NVR) directives that are unique to the ELN builds. </strong>&nbsp;<strong>This change has no impact on the kernel uname.</strong>&nbsp; The net result of the change is that the version number will have more meaning to CentOS Stream and RHEL builds, instead of being solely based on the kernel uname.&nbsp; For example, an ELN kernel may have NVR kernel-redhat-1.0.39.eln which packages a kernel with a kernel uname of 6.3.0-39.eln.</p>



<p><strong>We have already decided that the new ‘Name’ directive for the ELN kernel NVR will be changed from ‘kernel’ to ‘kernel-redhat’</strong>. More information on the Version and Release directive changes will be released in the following months as they are finalized by the Centos Stream and RHEL kernel maintainers.&nbsp; You can follow these discussions on the <a href="https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org/" target="_blank" rel="noreferrer noopener">Fedora Kernel Mailing List</a>.</p>



<h2 class="wp-block-heading">Why is the ELN NVR being changed?</h2>



<p>The new ELN NVR will allow for better coordination of feature introduction, bug fixes, and CVE resolutions in future versions of Centos Stream and RHEL.&nbsp; More information on these improvements to the Centos Stream and RHEL ecosystems will be released in the upcoming months.&nbsp;</p>



<h2 class="wp-block-heading">How is Fedora Linux impacted?</h2>



<p><strong>Fedora Linux is not impacted by these changes.</strong>&nbsp;&nbsp;</p>



<p>Since the inception of the kernel-ark project, the Fedora Linux, Centos Stream, and RHEL maintainers have been extraordinarily careful to ensure that Fedora Linux kernel builds are not impacted by ELN kernel builds (and vice-versa) in the kernel-ark project.&nbsp; The commitment to prevent cross-OS issues is strictly enforced by the maintainers.&nbsp; Due to the maintainers continued diligence, there is no impact to Fedora Linux.</p>



<h2 class="wp-block-heading">How can I obtain Fedora Linux or ELN kernels?</h2>



<p>Fedora Linux and ELN kernels can be downloaded from <a href="https://koji.fedoraproject.org/koji/packageinfo?packageID=8" target="_blank" rel="noreferrer noopener">Fedora Project’s koji instance</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fedoramagazine.org/changes-eln-kernel-rpm-nvr/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<enclosure url="https://fedoramagazine.org/wp-content/uploads/2023/04/ELN-Kernel-RPM-NVR-300x127.jpg" length="16412" type="image/jpg" />	</item>
		<item>
		<title>How to rebase to Fedora Linux 38 on Silverblue</title>
		<link>https://fedoramagazine.org/how-to-rebase-to-fedora-linux-38-on-silverblue/</link>
					<comments>https://fedoramagazine.org/how-to-rebase-to-fedora-linux-38-on-silverblue/#comments</comments>
		
		<dc:creator><![CDATA[Michal Konečný]]></dc:creator>
		<pubDate>Wed, 19 Apr 2023 08:00:00 +0000</pubDate>
				<category><![CDATA[New in Fedora]]></category>
		<category><![CDATA[Using Software]]></category>
		<category><![CDATA[fedora 38]]></category>
		<category><![CDATA[rebase]]></category>
		<category><![CDATA[silverblue]]></category>
		<guid isPermaLink="false">https://fedoramagazine.org/?p=38204</guid>

					<description><![CDATA[Fedora Silverblue is&#160;an operating system for your desktop built&#160;on Fedora Linux. It’s excellent for daily use, development, and container-based workflows. It offers&#160;numerous advantages&#160;such as being able to roll back in case of any problems. If you want to update or rebase to Fedora Linux 38 on your Fedora Silverblue system (these instructions are similar for [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Fedora Silverblue is&nbsp;<a href="https://docs.fedoraproject.org/en-US/fedora-silverblue/" target="_blank" rel="noreferrer noopener">an operating system for your desktop built&nbsp;on Fedora Linux</a>. It’s excellent for daily use, development, and container-based workflows. It offers&nbsp;<a href="https://fedoramagazine.org/give-fedora-silverblue-a-test-drive/" target="_blank" rel="noreferrer noopener">numerous advantages</a>&nbsp;such as being able to roll back in case of any problems. If you want to update or rebase to Fedora Linux 38 on your Fedora Silverblue system (these instructions are similar for Fedora Kinoite), this article tells you how. It not only shows you what to do, but also how to revert things if something unforeseen happens.</p>



<span id="more-38204"></span>



<h2 class="wp-block-heading">Update your existing system</h2>



<p>Prior to actually doing the rebase to Fedora Linux 38, you should apply any pending updates. Enter the following in the terminal:</p>



<pre class="wp-block-preformatted">$ rpm-ostree update</pre>



<p>or install updates through GNOME Software and reboot.</p>



<h2 class="wp-block-heading">Rebasing using GNOME Software</h2>



<p>GNOME Software shows you that there is new version of Fedora Linux available on the Updates screen.</p>



<figure class="wp-block-image size-large"><img decoding="async" loading="lazy" width="1024" height="680" src="https://fedoramagazine.org/wp-content/uploads/2023/04/image-1024x680.png" alt="" class="wp-image-38205" srcset="https://fedoramagazine.org/wp-content/uploads/2023/04/image-1024x680.png 1024w, https://fedoramagazine.org/wp-content/uploads/2023/04/image-300x199.png 300w, https://fedoramagazine.org/wp-content/uploads/2023/04/image-768x510.png 768w, https://fedoramagazine.org/wp-content/uploads/2023/04/image-816x542.png 816w, https://fedoramagazine.org/wp-content/uploads/2023/04/image.png 1203w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Fedora 38 update available</figcaption></figure>



<p>First thing you need to do is download the new image, so click on the&nbsp;<em>Download</em>&nbsp;button. This will take some time. When it’s done you will see that the update is ready to install.</p>



<figure class="wp-block-image size-large"><img decoding="async" loading="lazy" width="1024" height="680" src="https://fedoramagazine.org/wp-content/uploads/2023/04/image-1-1024x680.png" alt="" class="wp-image-38206" srcset="https://fedoramagazine.org/wp-content/uploads/2023/04/image-1-1024x680.png 1024w, https://fedoramagazine.org/wp-content/uploads/2023/04/image-1-300x199.png 300w, https://fedoramagazine.org/wp-content/uploads/2023/04/image-1-768x510.png 768w, https://fedoramagazine.org/wp-content/uploads/2023/04/image-1-816x542.png 816w, https://fedoramagazine.org/wp-content/uploads/2023/04/image-1.png 1203w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Fedora 38 update ready to install</figcaption></figure>



<p>Click on the&nbsp;<em>Restart &amp; Upgrade</em>&nbsp;button. This step will take only a few moments and the computer will be restarted when the update is completed. After the restart you will end up in new and shiny release of Fedora Linux 38. Easy, isn’t it?</p>



<h2 class="wp-block-heading">Rebasing using terminal</h2>



<p>If you prefer to do everything in a terminal, then this part of the guide is for you.</p>



<p>Rebasing to Fedora Linux 38 using the terminal is easy. First, check if the 38 branch is available:</p>



<pre class="wp-block-preformatted">$ ostree remote refs fedora</pre>



<p>You should see the following in the output:</p>



<pre class="wp-block-preformatted">fedora:fedora/38/x86_64/silverblue</pre>



<p>If you want to pin the current deployment (meaning that this deployment will stay as an option in GRUB until you remove it), you can do it by running:</p>



<pre class="wp-block-preformatted"># 0 is entry position in rpm-ostree status
$ sudo ostree admin pin 0</pre>



<p>To remove the pinned deployment use the following command:</p>



<pre class="wp-block-preformatted"># 2 is entry position in rpm-ostree status
$ sudo ostree admin pin --unpin 2</pre>



<p>Next, rebase your system to the Fedora Linux 38 branch.</p>



<pre class="wp-block-preformatted">$ rpm-ostree rebase fedora:fedora/38/x86_64/silverblue</pre>



<p>Finally, the last thing to do is restart your computer and boot to Fedora Linux 38.</p>



<h2 class="wp-block-heading">How to roll back</h2>



<p>If anything bad happens—for instance, if you can’t boot to Fedora Linux 38 at all—it’s easy to go back. At boot time, pick the entry in the GRUB menu for the version prior to Fedora Linux 38 and your system will start in that previous version rather than Fedora Linux 38. If you don’t see the GRUB menu, try to press ESC during boot. To make the change to the previous version permanent, use the following command:</p>



<pre class="wp-block-preformatted">$ rpm-ostree rollback</pre>



<p>That’s it. Now you know how to rebase Fedora Silverblue to Fedora Linux 38 and roll back. So why not do it today?</p>



<h2 class="wp-block-heading">FAQ</h2>



<p>Because there are similar questions in comments for each article about rebasing to newer version of Silverblue I will try to answer them in this section.</p>



<p><strong>Question: Can I skip versions during rebase of Fedora? For example from Fedora 36 Silverblue to Fedora 38 Silverblue?</strong></p>



<p>Answer: Although it could be sometimes possible to skip versions during rebase, it is not recommended. You should always update to one version above (37-&gt;38 for example) to avoid unnecessary errors.</p>



<p><strong>Question: I have&nbsp;<a href="https://rpmfusion.org/">rpm-fusion</a>&nbsp;layered and I got errors during rebase. How should I do the rebase?</strong></p>



<p>Answer: If you have&nbsp;<a href="https://rpmfusion.org/">rpm-fusion</a>&nbsp;layered on your Silverblue installation, you should do the following before rebase:</p>



<p>

<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">rpm-ostree update --uninstall rpmfusion-free-release --uninstall rpmfusion-nonfree-release --install rpmfusion-free-release --install rpmfusion-nonfree-release</div></div>

</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fedoramagazine.org/how-to-rebase-to-fedora-linux-38-on-silverblue/feed/</wfw:commentRss>
			<slash:comments>37</slash:comments>
		
		
		<enclosure url="https://fedoramagazine.org/wp-content/uploads/2021/04/silverblue-rebase-300x127.jpg" length="6958" type="image/jpg" />	</item>
	</channel>
</rss>


