<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mwenda Harun Mbaabu</title>
    <description>The latest articles on DEV Community by Mwenda Harun Mbaabu (@grayhat).</description>
    <link>https://dev.to/grayhat</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F308943%2F6176ef93-aba6-4b7f-9857-8a5c4602b519.jpg</url>
      <title>DEV Community: Mwenda Harun Mbaabu</title>
      <link>https://dev.to/grayhat</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/grayhat"/>
    <language>en</language>
    <item>
      <title>Understanding Data Modeling in Power BI: Joins, Relationships, and Schemas Explained.</title>
      <dc:creator>Mwenda Harun Mbaabu</dc:creator>
      <pubDate>Sun, 29 Mar 2026 19:43:41 +0000</pubDate>
      <link>https://dev.to/grayhat/understanding-data-modeling-in-power-bi-joins-relationships-and-schemas-explained-5bim</link>
      <guid>https://dev.to/grayhat/understanding-data-modeling-in-power-bi-joins-relationships-and-schemas-explained-5bim</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;Introduction.&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Today we will be discussing data modeling in Power BI, one of the most important skills for building effective dashboards.&lt;/p&gt;

&lt;p&gt;Many beginners focus on visuals, but good dashboards come from good data models.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In this article, you will learn:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What data modeling is&lt;/li&gt;
&lt;li&gt;SQL joins and how they work&lt;/li&gt;
&lt;li&gt;Power BI relationships and how they differ from joins&lt;/li&gt;
&lt;li&gt;Fact vs Dimension tables&lt;/li&gt;
&lt;li&gt;Star, Snowflake, and Flat schemas&lt;/li&gt;
&lt;li&gt;Step-by-step how to implement everything in Power BI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What is Data Modeling?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Data modeling is the process of structuring your data so it can be easily analyzed and visualized.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl8ecmjm50hd9qrdhla7p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl8ecmjm50hd9qrdhla7p.png" alt=" " width="800" height="768"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Understanding Linux in Data Engineering: Practical Use Cases Explained Simply</title>
      <dc:creator>Mwenda Harun Mbaabu</dc:creator>
      <pubDate>Sun, 29 Mar 2026 12:23:56 +0000</pubDate>
      <link>https://dev.to/grayhat/understanding-linux-in-data-engineering-practical-use-cases-explained-simply-g28</link>
      <guid>https://dev.to/grayhat/understanding-linux-in-data-engineering-practical-use-cases-explained-simply-g28</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;Introduction to power bi&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;For the past two weeks i have been &lt;strong&gt;exploring&lt;/strong&gt; data &lt;strong&gt;engineering&lt;/strong&gt; at &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Facnb9gmvgj6rwlta23v0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Facnb9gmvgj6rwlta23v0.png" alt=" " width="800" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  &lt;strong&gt;Introduction&lt;/strong&gt;
&lt;/h6&gt;

</description>
    </item>
    <item>
      <title>Supermarket Sales and Customer Insights Dashboard — A Practical Power BI Project Guide.</title>
      <dc:creator>Mwenda Harun Mbaabu</dc:creator>
      <pubDate>Wed, 04 Feb 2026 12:21:21 +0000</pubDate>
      <link>https://dev.to/luxdevhq/supermarket-sales-and-customer-insights-dashboard-a-practical-power-bi-project-guide-4o7p</link>
      <guid>https://dev.to/luxdevhq/supermarket-sales-and-customer-insights-dashboard-a-practical-power-bi-project-guide-4o7p</guid>
      <description>&lt;p&gt;This technical article walks you step by step through a &lt;strong&gt;beginner-friendly Power BI project&lt;/strong&gt; using a real-world supermarket transactions dataset. By the end of this guide, you will know &lt;strong&gt;where to download the data&lt;/strong&gt;, &lt;strong&gt;how to prepare it&lt;/strong&gt;, and &lt;strong&gt;how to build an interactive dashboard&lt;/strong&gt; that answers real business questions.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Project Overview&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In this project, you will analyze supermarket transaction data and transform it into an &lt;strong&gt;interactive Power BI dashboard&lt;/strong&gt;. The focus is not just on visuals, but on &lt;strong&gt;answering business questions clearly and professionally&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You will act as a &lt;strong&gt;Junior Data Analyst&lt;/strong&gt;, converting raw transaction records into insights that business stakeholders can explore without using spreadsheets.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Dataset Download&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;You can download the dataset to be used in this project &lt;a href="https://github.com/LuxDevHQ/Data0" rel="noopener noreferrer"&gt;here&lt;/a&gt;, &lt;a href="https://github.com/LuxDevHQ/Data" rel="noopener noreferrer"&gt;https://github.com/LuxDevHQ/Data&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dataset contents:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Three years of supermarket transaction data
&lt;/li&gt;
&lt;li&gt;Multiple store locations (Australia)
&lt;/li&gt;
&lt;li&gt;Individual transaction-level records
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Columns include:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Product Name
&lt;/li&gt;
&lt;li&gt;Quantity Sold
&lt;/li&gt;
&lt;li&gt;Total Sales Amount
&lt;/li&gt;
&lt;li&gt;Payment Method
&lt;/li&gt;
&lt;li&gt;Customer Type (Member / Non-Member)
&lt;/li&gt;
&lt;li&gt;Store Location
&lt;/li&gt;
&lt;li&gt;Transaction Date
&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;📌 &lt;strong&gt;&lt;a href="https://github.com/LuxDevHQ/Data0" rel="noopener noreferrer"&gt;Download the dataset&lt;/a&gt;&lt;/strong&gt;  &lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Business Questions This Project Answers&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Before opening Power BI, it is important to understand &lt;strong&gt;what questions the dashboard should answer&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1. Sales Performance&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;What is the total sales amount across all stores?&lt;/li&gt;
&lt;li&gt;How do sales trend over time (monthly and yearly)?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2. Product Analysis&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Which products generate the highest revenue?&lt;/li&gt;
&lt;li&gt;How do apple sales compare across different payment methods?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3. Customer Behavior&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;How much do members vs non-members spend?&lt;/li&gt;
&lt;li&gt;Which customer type contributes more to total revenue?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4. Payment Method Insights&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Which payment method is used most frequently?&lt;/li&gt;
&lt;li&gt;How does revenue differ by payment method?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5. Store Performance&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Which store location generates the highest sales?&lt;/li&gt;
&lt;li&gt;How does customer behavior vary by store?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These questions will guide every step of the analysis.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Step 1: Load the Data into Power BI&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;Power BI Desktop&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Get Data → Text/CSV&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;code&gt;supermarket_transactions.csv&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Load the data into Power BI&lt;/li&gt;
&lt;li&gt;Review column names and preview the data&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;At this stage, do not build visuals yet. First, ensure the data is correct.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Step 2: Data Cleaning in Power Query&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Open &lt;strong&gt;Transform Data&lt;/strong&gt; to enter Power Query.&lt;/p&gt;

&lt;p&gt;Perform the following actions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Remove unnecessary or duplicate columns&lt;/li&gt;
&lt;li&gt;Fix incorrect data types:

&lt;ul&gt;
&lt;li&gt;Dates → Date&lt;/li&gt;
&lt;li&gt;Sales &amp;amp; Quantity → Decimal / Whole Number&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Rename columns for clarity (e.g. &lt;code&gt;Total Sales Amount&lt;/code&gt;)&lt;/li&gt;

&lt;li&gt;Check for missing or inconsistent values&lt;/li&gt;

&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ Clean data is critical. Poor data quality leads to misleading dashboards.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Step 3: Data Modeling&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Once the data is clean:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Confirm all columns have correct data types&lt;/li&gt;
&lt;li&gt;Ensure the table structure is logical&lt;/li&gt;
&lt;li&gt;No complex relationships are required for this project (single-table model)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This project focuses on &lt;strong&gt;analysis and visualization&lt;/strong&gt;, not complex modeling.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Step 4: Create Beginner-Level DAX Measures.&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Create the following measures in &lt;strong&gt;Model view&lt;/strong&gt; or &lt;strong&gt;Report view&lt;/strong&gt;:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
DAX
Total Sales =
SUM(supermarket_transactions[Total Sales Amount])

Total Quantity Sold =
SUM(supermarket_transactions[Quantity])

Average Transaction Value =
AVERAGE(supermarket_transactions[Total Sales Amount])

Sales by Customer Type =
SUM(supermarket_transactions[Total Sales Amount])


&amp;gt; ⚠️  These measures will power your KPI cards and charts. 

## **Step 5: Build the Power BI Dashboard**

Create a **1–2 page interactive Power BI dashboard** using the visuals listed below. The dashboard should be designed for **business users**, not technical users.

---

### **Required Visuals**

#### **KPI Cards**
- Total Sales  
- Total Quantity Sold  
- Average Transaction Value  

---

#### **Charts**
- **Bar Chart:** Sales by Product  
- **Bar Chart:** Sales by Store Location  
- **Pie or Column Chart:** Payment Method Distribution  
- **Line Chart:** Sales Trend Over Time  

---

#### **Slicers**
- Store Location  
- Product  
- Customer Type  
- Date  

&amp;gt; 🎯 **Design Principle:**  
&amp;gt; The goal is **clarity, not decoration**. Every visual should answer a specific business question.

---

## **Step 6: Validate Your Results**

Before submitting your work, verify the following:

- Confirm all totals match your **Excel analysis**
- Test all slicers and filters for correct behavior
- Check visual titles, labels, and number formatting
- Ensure visuals respond correctly to user interactions

---

### **Your Final Submission Should Include**

- Record a **4-minute walkthrough video** using **Loom**
- The video should demonstrate a **fully functional Power BI dashboard**
- Briefly explain:
  - The dataset used
  - Key visuals and filters
  - Main business insights and conclusions
- Upload the recording to **Loom** and copy the shareable link
- Submit the **Loom video link via WhatsApp** to **0796 448 232**

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
    </item>
    <item>
      <title>An Introduction to Linux for Data Engineers: Using Vi and Nano Editors with Practical Examples</title>
      <dc:creator>Mwenda Harun Mbaabu</dc:creator>
      <pubDate>Wed, 21 Jan 2026 19:24:35 +0000</pubDate>
      <link>https://dev.to/grayhat/an-introduction-to-linux-for-data-engineers-using-vi-and-nano-editors-with-practical-examples-3mm6</link>
      <guid>https://dev.to/grayhat/an-introduction-to-linux-for-data-engineers-using-vi-and-nano-editors-with-practical-examples-3mm6</guid>
      <description></description>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Mwenda Harun Mbaabu</dc:creator>
      <pubDate>Fri, 16 Jan 2026 18:48:53 +0000</pubDate>
      <link>https://dev.to/grayhat/-3h0</link>
      <guid>https://dev.to/grayhat/-3h0</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/mburu_champ" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3710367%2F7ba4569d-5f6b-4e44-bb89-9d74fbb294f0.jpg" alt="mburu_champ"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/mburu_champ/a-beginners-guide-mastering-git-github-and-basic-workflows-2ccl" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;A Beginner’s Guide: Mastering Git, GitHub, and Basic Workflows&lt;/h2&gt;
      &lt;h3&gt;Mburu ・ Jan 16&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#luxdevhq&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#datascience&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#git&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>luxdevhq</category>
      <category>datascience</category>
      <category>beginners</category>
      <category>git</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Mwenda Harun Mbaabu</dc:creator>
      <pubDate>Thu, 15 Jan 2026 20:37:55 +0000</pubDate>
      <link>https://dev.to/grayhat/-5c4o</link>
      <guid>https://dev.to/grayhat/-5c4o</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/victormungai97" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F255646%2F68dfaa28-ae2a-497a-a2e7-8f454463c87b.jpeg" alt="victormungai97"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/victormungai97/my-journey-at-luxdev-academy-overview-269g" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;My Journey at LuxDevHQ: Overview&lt;/h2&gt;
      &lt;h3&gt;Victor Kamau ・ Jan 13&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#luxdevhq&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#datascience&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#learning&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#productivity&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>luxdevhq</category>
      <category>datascience</category>
      <category>learning</category>
      <category>productivity</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Mwenda Harun Mbaabu</dc:creator>
      <pubDate>Mon, 27 Oct 2025 12:20:34 +0000</pubDate>
      <link>https://dev.to/grayhat/-23ad</link>
      <guid>https://dev.to/grayhat/-23ad</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/patrickkinoti" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3402784%2F6f076b98-4a50-4243-a33b-e6d3bed4adda.jpeg" alt="patrickkinoti"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/patrickkinoti/understanding-the-differences-between-subqueries-ctes-and-stored-procedures-3b75" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Understanding the Differences Between Subqueries, CTEs, and Stored Procedures&lt;/h2&gt;
      &lt;h3&gt;Patrick Kinoti ・ Sep 8&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#luxdevhq&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>luxdevhq</category>
    </item>
    <item>
      <title>Good work George</title>
      <dc:creator>Mwenda Harun Mbaabu</dc:creator>
      <pubDate>Thu, 28 Aug 2025 09:58:16 +0000</pubDate>
      <link>https://dev.to/grayhat/good-work-george-4a2k</link>
      <guid>https://dev.to/grayhat/good-work-george-4a2k</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/georgecodes_/key-concepts-every-data-engineer-should-master-3bpc" class="crayons-story__hidden-navigation-link"&gt;Key Concepts Every Data Engineer Should Master&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/georgecodes_" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3396809%2F1b0f3889-7641-400b-9dab-43aa5d94c24d.png" alt="georgecodes_ profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/georgecodes_" class="crayons-story__secondary fw-medium m:hidden"&gt;
              George
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                George
                
              
              &lt;div id="story-author-preview-content-2768047" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/georgecodes_" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3396809%2F1b0f3889-7641-400b-9dab-43aa5d94c24d.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;George&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/georgecodes_/key-concepts-every-data-engineer-should-master-3bpc" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 11 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/georgecodes_/key-concepts-every-data-engineer-should-master-3bpc" id="article-link-2768047"&gt;
          Key Concepts Every Data Engineer Should Master
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/datascience"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;datascience&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/dataengineering"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;dataengineering&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/olap"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;olap&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/partitioning"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;partitioning&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/georgecodes_/key-concepts-every-data-engineer-should-master-3bpc" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;4&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/georgecodes_/key-concepts-every-data-engineer-should-master-3bpc#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>datascience</category>
      <category>dataengineering</category>
      <category>olap</category>
      <category>partitioning</category>
    </item>
    <item>
      <title>Good work Joy</title>
      <dc:creator>Mwenda Harun Mbaabu</dc:creator>
      <pubDate>Wed, 27 Aug 2025 09:15:26 +0000</pubDate>
      <link>https://dev.to/grayhat/good-work-joy-70h</link>
      <guid>https://dev.to/grayhat/good-work-joy-70h</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/joy_akinyi_115689d7dff92f/deploying-anaconda-with-jupyterlab-on-an-azure-vm-for-team-collaboration-4e8n" class="crayons-story__hidden-navigation-link"&gt;Deploying Anaconda with JupyterLab on an Azure VM for Team Collaboration&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/joy_akinyi_115689d7dff92f" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3374426%2Fdcb3331c-d283-4254-b97c-6b77b286f8c4.png" alt="joy_akinyi_115689d7dff92f profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/joy_akinyi_115689d7dff92f" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Joy Akinyi
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Joy Akinyi
                
              
              &lt;div id="story-author-preview-content-2801247" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/joy_akinyi_115689d7dff92f" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3374426%2Fdcb3331c-d283-4254-b97c-6b77b286f8c4.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Joy Akinyi&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/joy_akinyi_115689d7dff92f/deploying-anaconda-with-jupyterlab-on-an-azure-vm-for-team-collaboration-4e8n" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 26 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/joy_akinyi_115689d7dff92f/deploying-anaconda-with-jupyterlab-on-an-azure-vm-for-team-collaboration-4e8n" id="article-link-2801247"&gt;
          Deploying Anaconda with JupyterLab on an Azure VM for Team Collaboration
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/anaconda"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;anaconda&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/azure"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;azure&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/jupyterlab"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;jupyterlab&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/joy_akinyi_115689d7dff92f/deploying-anaconda-with-jupyterlab-on-an-azure-vm-for-team-collaboration-4e8n" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;8&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/joy_akinyi_115689d7dff92f/deploying-anaconda-with-jupyterlab-on-an-azure-vm-for-team-collaboration-4e8n#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>anaconda</category>
      <category>azure</category>
      <category>jupyterlab</category>
    </item>
    <item>
      <title>Good work</title>
      <dc:creator>Mwenda Harun Mbaabu</dc:creator>
      <pubDate>Wed, 27 Aug 2025 09:15:00 +0000</pubDate>
      <link>https://dev.to/grayhat/good-work-3bfk</link>
      <guid>https://dev.to/grayhat/good-work-3bfk</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/oliver_samuel_028c6f65ad6/setting-up-a-linux-vm-on-azure-with-uv-and-anaconda-for-multi-user-access-4g3b" class="crayons-story__hidden-navigation-link"&gt;Setting Up a Linux VM on Azure with uv and Anaconda for Multi-User Access&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/oliver_samuel_028c6f65ad6" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3393962%2F0252b000-257e-4383-9c4d-badf238400b9.jpg" alt="oliver_samuel_028c6f65ad6 profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/oliver_samuel_028c6f65ad6" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Oliver Samuel
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Oliver Samuel
                
              
              &lt;div id="story-author-preview-content-2797674" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/oliver_samuel_028c6f65ad6" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3393962%2F0252b000-257e-4383-9c4d-badf238400b9.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Oliver Samuel&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/oliver_samuel_028c6f65ad6/setting-up-a-linux-vm-on-azure-with-uv-and-anaconda-for-multi-user-access-4g3b" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 25 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/oliver_samuel_028c6f65ad6/setting-up-a-linux-vm-on-azure-with-uv-and-anaconda-for-multi-user-access-4g3b" id="article-link-2797674"&gt;
          Setting Up a Linux VM on Azure with uv and Anaconda for Multi-User Access
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/oliver_samuel_028c6f65ad6/setting-up-a-linux-vm-on-azure-with-uv-and-anaconda-for-multi-user-access-4g3b" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;6&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/oliver_samuel_028c6f65ad6/setting-up-a-linux-vm-on-azure-with-uv-and-anaconda-for-multi-user-access-4g3b#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>azure</category>
      <category>linux</category>
      <category>virtualmachine</category>
      <category>multiplatform</category>
    </item>
    <item>
      <title>Deploying Anaconda on Ubuntu Server in the Cloud (Azure VM for Team Collaboration)</title>
      <dc:creator>Mwenda Harun Mbaabu</dc:creator>
      <pubDate>Fri, 22 Aug 2025 08:48:56 +0000</pubDate>
      <link>https://dev.to/grayhat/deploying-anaconda-on-ubuntu-server-in-the-cloud-azure-vm-for-team-collaboration-52k</link>
      <guid>https://dev.to/grayhat/deploying-anaconda-on-ubuntu-server-in-the-cloud-azure-vm-for-team-collaboration-52k</guid>
      <description>&lt;p&gt;In the data engineering and data science space, &lt;strong&gt;reproducibility&lt;/strong&gt; and &lt;strong&gt;environment management&lt;/strong&gt; are just as critical as writing efficient code. Few things derail productivity faster than &lt;em&gt;dependency hell&lt;/em&gt; when different projects require conflicting versions of Python libraries. This is where &lt;strong&gt;Anaconda&lt;/strong&gt; comes in.  &lt;/p&gt;

&lt;p&gt;Anaconda is more than just a Python distribution; it’s a complete ecosystem. It ships with &lt;strong&gt;conda&lt;/strong&gt;, a powerful package and environment manager, and includes over a thousand preinstalled scientific libraries such as &lt;strong&gt;NumPy, pandas, scikit-learn, TensorFlow, and Jupyter Notebook&lt;/strong&gt;. For engineers and scientists working across machine learning pipelines, ETL processes, or analytics workflows, Anaconda provides a clean, isolated, and dependable environment right out of the box.  &lt;/p&gt;

&lt;p&gt;In this article, we’ll walk through the &lt;strong&gt;step-by-step installation of Anaconda on Ubuntu&lt;/strong&gt;, so you can get started quickly with a stable and well-managed Python setup on your local machine or a remote Linux server.  &lt;/p&gt;




&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Ubuntu 20.04, 22.04, or later
&lt;/li&gt;
&lt;li&gt;Sudo privileges
&lt;/li&gt;
&lt;li&gt;At least 3–4 GB of free disk space
&lt;/li&gt;
&lt;li&gt;Basic familiarity with the Linux terminal
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Step 1: Update Your System
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt upgrade &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Step 2: Install Utilities
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;wget curl git &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Step 3: Download the Anaconda Installer
&lt;/h2&gt;

&lt;p&gt;Check the &lt;a href="https://www.anaconda.com/download" rel="noopener noreferrer"&gt;Anaconda download page&lt;/a&gt; for the latest version. Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Step 4: Verify Integrity (Optional)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sha256sum &lt;/span&gt;Anaconda3-2024.02-1-Linux-x86_64.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Compare the hash with the official checksum on Anaconda’s site.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 5: Run the Installer
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bash Anaconda3-2024.02-1-Linux-x86_64.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Press &lt;strong&gt;Enter&lt;/strong&gt; to review the license
&lt;/li&gt;
&lt;li&gt;Type &lt;strong&gt;yes&lt;/strong&gt; to accept
&lt;/li&gt;
&lt;li&gt;Choose the installation directory (default: &lt;code&gt;~/anaconda3&lt;/code&gt;)
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Step 6: Initialize Anaconda
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;~/anaconda3/bin/conda init
&lt;span class="nb"&gt;source&lt;/span&gt; ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Step 7: Verify Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;conda &lt;span class="nt"&gt;--version&lt;/span&gt;
python &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Step 8: Create a Virtual Environment (Recommended)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;conda create &lt;span class="nt"&gt;--name&lt;/span&gt; myenv &lt;span class="nv"&gt;python&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;3.11
conda activate myenv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Mini Project: Extract Cryptocurrency Data with Python
&lt;/h1&gt;

&lt;p&gt;Now that Anaconda is installed and running, let’s put it to the test with a small project: &lt;strong&gt;fetching live cryptocurrency prices&lt;/strong&gt; from a public API.&lt;/p&gt;

&lt;p&gt;We’ll use the &lt;a href="https://www.coingecko.com/en/api" rel="noopener noreferrer"&gt;CoinGecko API&lt;/a&gt;, which is free and doesn’t require an API key.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 1: Install Dependencies
&lt;/h2&gt;

&lt;p&gt;Inside your conda environment, install &lt;code&gt;requests&lt;/code&gt; and &lt;code&gt;pandas&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;conda &lt;span class="nb"&gt;install &lt;/span&gt;requests pandas
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Step 2: Write the Python Script
&lt;/h2&gt;

&lt;p&gt;Create a file called &lt;code&gt;crypto_data.py&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;

&lt;span class="c1"&gt;# Define the API endpoint
&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.coingecko.com/api/v3/coins/markets&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="c1"&gt;# Define parameters
&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;vs_currency&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;usd&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ids&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bitcoin,ethereum,cardano,solana&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;order&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;market_cap_desc&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;per_page&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;page&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;sparkline&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;# Fetch data
&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;status_code&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;DataFrame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;columns&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;symbol&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;current_price&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;market_cap&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;total_volume&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;timestamp&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Error fetching data:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;status_code&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Step 3: Run the Script
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python crypto_data.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        id symbol  current_price    market_cap   total_volume           timestamp
0   bitcoin    btc        59000.0  1.1e+12      3.5e+10      2025-08-22 12:30:45
1  ethereum    eth         3100.0  4.0e+11      2.2e+10      2025-08-22 12:30:45
2   cardano    ada            0.7  2.5e+10      1.1e+09      2025-08-22 12:30:45
3    solana    sol         110.0  5.0e+10      8.9e+09      2025-08-22 12:30:45
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Step 4: Extend the Project
&lt;/h2&gt;

&lt;p&gt;Ideas to enhance the script:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Save results to a &lt;strong&gt;CSV file&lt;/strong&gt; for historical tracking.
&lt;/li&gt;
&lt;li&gt;Schedule the script with &lt;strong&gt;cron&lt;/strong&gt; to run every hour/day.
&lt;/li&gt;
&lt;li&gt;Visualize crypto price trends using &lt;strong&gt;Matplotlib or Seaborn&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Integrate with a dashboard tool (like &lt;strong&gt;Jupyter Notebook&lt;/strong&gt;) for analysis.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;By installing Anaconda on Ubuntu, you’ve set up a reliable Python environment ready for data engineering and data science projects. We then tested the setup by pulling live cryptocurrency market data using Python and the CoinGecko API.  &lt;/p&gt;

&lt;p&gt;With conda managing environments, you can easily extend this workflow — whether for building &lt;strong&gt;ETL pipelines&lt;/strong&gt;, analyzing financial data, or running &lt;strong&gt;machine learning models&lt;/strong&gt; — without worrying about dependency conflicts. Anaconda gives you the freedom to focus on insights, not environment headaches. &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Good work</title>
      <dc:creator>Mwenda Harun Mbaabu</dc:creator>
      <pubDate>Wed, 20 Aug 2025 19:09:53 +0000</pubDate>
      <link>https://dev.to/grayhat/good-work-92j</link>
      <guid>https://dev.to/grayhat/good-work-92j</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/njeri_kimaru/excels-strengths-and-weaknesses-in-predictive-analysis-and-the-role-of-excel-in-making-data-driven-12if" class="crayons-story__hidden-navigation-link"&gt;Excel’s Strengths and Weaknesses in Predictive Analysis and the Role of Excel in Making Data-Driven Business Decisions&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/njeri_kimaru" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3402741%2F93188859-acfe-4fd3-8462-d9762fcdcc6d.jpeg" alt="njeri_kimaru profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/njeri_kimaru" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Njeri Kimaru
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Njeri Kimaru
                
              
              &lt;div id="story-author-preview-content-2767605" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/njeri_kimaru" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3402741%2F93188859-acfe-4fd3-8462-d9762fcdcc6d.jpeg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Njeri Kimaru&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/njeri_kimaru/excels-strengths-and-weaknesses-in-predictive-analysis-and-the-role-of-excel-in-making-data-driven-12if" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 11 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/njeri_kimaru/excels-strengths-and-weaknesses-in-predictive-analysis-and-the-role-of-excel-in-making-data-driven-12if" id="article-link-2767605"&gt;
          Excel’s Strengths and Weaknesses in Predictive Analysis and the Role of Excel in Making Data-Driven Business Decisions
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/data"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;data&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/analytics"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;analytics&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/njeri_kimaru/excels-strengths-and-weaknesses-in-predictive-analysis-and-the-role-of-excel-in-making-data-driven-12if" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;10&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/njeri_kimaru/excels-strengths-and-weaknesses-in-predictive-analysis-and-the-role-of-excel-in-making-data-driven-12if#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>data</category>
      <category>analytics</category>
    </item>
  </channel>
</rss>
