<?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>Data Science East Africa Big Data and AI Summit -Opening Remarks</title>
      <dc:creator>Mwenda Harun Mbaabu</dc:creator>
      <pubDate>Thu, 21 May 2026 22:38:58 +0000</pubDate>
      <link>https://dev.to/grayhat/data-science-east-africa-big-data-and-ai-summit-opening-remarks-343d</link>
      <guid>https://dev.to/grayhat/data-science-east-africa-big-data-and-ai-summit-opening-remarks-343d</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;Good morning everyone.&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Distinguished speakers, panelists, guests, partners, students, professionals, data enthusiasts, and everyone who has taken the time to be here today — welcome to the Data Science East Africa Big Data and AI Summit.&lt;/p&gt;

&lt;p&gt;My name is Harun Mwenda, and as the founder of this initiative, I am truly honored to stand before you today.&lt;/p&gt;

&lt;p&gt;First, I want to say thank you.&lt;/p&gt;

&lt;p&gt;Thank you for showing up. Thank you for believing in this vision. Thank you for choosing to spend your time in a room full of people who are learning, building, connecting, and thinking about the future of data, AI, analytics, and technology in Africa.&lt;/p&gt;

&lt;p&gt;Today is not just another tech event.&lt;/p&gt;

&lt;p&gt;Today is about something bigger.&lt;/p&gt;

&lt;p&gt;It is about bringing together beginners, students, professionals, data analysts, data engineers, data scientists, machine learning engineers, AI builders, business intelligence developers, and industry leaders into one room — not just to talk about technology, but to talk about opportunity.&lt;/p&gt;

&lt;p&gt;The Data Science East Africa Big Data and AI Summit was created to help people understand the data industry, learn from professionals already doing the work, discover modern tools, build practical projects, and see where the future is going.&lt;/p&gt;

&lt;p&gt;And that is very important.&lt;/p&gt;

&lt;p&gt;Because for a long time, many people have heard words like data science, artificial intelligence, big data, machine learning, analytics, business intelligence, and automation — but for many beginners, these words can feel far away.&lt;/p&gt;

&lt;p&gt;They can sound complicated.&lt;/p&gt;

&lt;p&gt;They can sound like something reserved for people in big companies, people with advanced degrees, or people who have been in tech for many years.&lt;/p&gt;

&lt;p&gt;But the truth is this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The future of data and AI in Africa will not be built by outsiders alone.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It will be built by us.&lt;/p&gt;

&lt;p&gt;It will be built by the students who are starting today.&lt;/p&gt;

&lt;p&gt;It will be built by the beginners who are still confused but willing to learn.&lt;/p&gt;

&lt;p&gt;It will be built by the professionals who are already working and want to grow.&lt;/p&gt;

&lt;p&gt;It will be built by the engineers, analysts, founders, freelancers, researchers, trainers, and problem-solvers who decide that Africa must not only consume technology — Africa must also build technology.&lt;/p&gt;

&lt;p&gt;That is why we are here.&lt;/p&gt;

&lt;p&gt;We are here because data is no longer just a technical skill. Data is now a language of business, government, healthcare, education, finance, agriculture, climate, security, logistics, and almost every serious decision being made today.&lt;/p&gt;

&lt;p&gt;Organizations are asking questions every day:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is happening in our business?&lt;/li&gt;
&lt;li&gt;Why is it happening?&lt;/li&gt;
&lt;li&gt;What can we predict?&lt;/li&gt;
&lt;li&gt;What can we automate?&lt;/li&gt;
&lt;li&gt;How can we serve people better?&lt;/li&gt;
&lt;li&gt;How can we reduce cost?&lt;/li&gt;
&lt;li&gt;How can we use AI responsibly?&lt;/li&gt;
&lt;li&gt;How can we turn information into action?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And behind all those questions, there is a need for skilled people.&lt;/p&gt;

&lt;p&gt;People who can collect data.&lt;/p&gt;

&lt;p&gt;People who can clean data.&lt;/p&gt;

&lt;p&gt;People who can analyze data.&lt;/p&gt;

&lt;p&gt;People who can build dashboards.&lt;/p&gt;

&lt;p&gt;People who can build data pipelines.&lt;/p&gt;

&lt;p&gt;People who can train models.&lt;/p&gt;

&lt;p&gt;People who can build AI agents and bots.&lt;/p&gt;

&lt;p&gt;People who can explain insights clearly.&lt;/p&gt;

&lt;p&gt;People who can solve real problems.&lt;/p&gt;

&lt;p&gt;That is the opportunity we are talking about today.&lt;/p&gt;

&lt;p&gt;But I also want to be honest.&lt;/p&gt;

&lt;p&gt;This field is exciting, but it is not easy.&lt;/p&gt;

&lt;p&gt;You will not become a great data analyst, data engineer, data scientist, or AI engineer by only watching videos.&lt;/p&gt;

&lt;p&gt;You will not grow by only collecting certificates.&lt;/p&gt;

&lt;p&gt;You will not stand out by only copying tutorial projects.&lt;/p&gt;

&lt;p&gt;You grow by building.&lt;/p&gt;

&lt;p&gt;You grow by practicing.&lt;/p&gt;

&lt;p&gt;You grow by asking questions.&lt;/p&gt;

&lt;p&gt;You grow by failing, debugging, improving, and trying again.&lt;/p&gt;

&lt;p&gt;You grow by working on real problems.&lt;/p&gt;

&lt;p&gt;And one of the biggest goals of this summit is to help us move from theory to practice.&lt;/p&gt;

&lt;p&gt;That is why today’s program is very intentional.&lt;/p&gt;

&lt;p&gt;We will begin by understanding what it means to become a BI Developer and Data Analyst.&lt;/p&gt;

&lt;p&gt;We will then look at the future of data, AI, and analytics in Africa.&lt;/p&gt;

&lt;p&gt;We will have a panel discussion on careers in data and the future of work, where we will talk about breaking into the industry, growing, monetizing skills, and understanding how AI is changing careers.&lt;/p&gt;

&lt;p&gt;We will also hear about competitive data science and AI challenges, freelancing, personal career journeys, building projects that solve real problems, and later in the day, we will have a practical session on building AI agents and bots.&lt;/p&gt;

&lt;p&gt;So I encourage you: do not just sit and listen.&lt;/p&gt;

&lt;p&gt;Engage.&lt;/p&gt;

&lt;p&gt;Ask questions.&lt;/p&gt;

&lt;p&gt;Talk to the person seated next to you.&lt;/p&gt;

&lt;p&gt;Introduce yourself.&lt;/p&gt;

&lt;p&gt;Tell people what you are learning.&lt;/p&gt;

&lt;p&gt;Tell people what you are building.&lt;/p&gt;

&lt;p&gt;Connect with the speakers.&lt;/p&gt;

&lt;p&gt;Connect with the panelists.&lt;/p&gt;

&lt;p&gt;Connect with fellow attendees.&lt;/p&gt;

&lt;p&gt;Because sometimes, the most valuable thing you leave with is not only knowledge. Sometimes it is a connection, a mentor, a collaborator, a project partner, or even a new opportunity.&lt;/p&gt;

&lt;p&gt;To the beginners in the room, I want to say this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do not be intimidated.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Everyone who is now experienced was once a beginner.&lt;/p&gt;

&lt;p&gt;Every expert once struggled with basic concepts.&lt;/p&gt;

&lt;p&gt;Every professional once had a first project.&lt;/p&gt;

&lt;p&gt;Every speaker you see today has a journey.&lt;/p&gt;

&lt;p&gt;So do not compare your chapter one with someone else’s chapter ten.&lt;/p&gt;

&lt;p&gt;Instead, learn.&lt;/p&gt;

&lt;p&gt;Take notes.&lt;/p&gt;

&lt;p&gt;Ask questions.&lt;/p&gt;

&lt;p&gt;Be curious.&lt;/p&gt;

&lt;p&gt;Be willing to start small.&lt;/p&gt;

&lt;p&gt;Your first dashboard may not be perfect.&lt;/p&gt;

&lt;p&gt;Your first model may not be accurate.&lt;/p&gt;

&lt;p&gt;Your first project may look simple.&lt;/p&gt;

&lt;p&gt;Your first SQL query may break.&lt;/p&gt;

&lt;p&gt;Your first Python script may throw errors.&lt;/p&gt;

&lt;p&gt;That is okay.&lt;/p&gt;

&lt;p&gt;What matters is that you keep building.&lt;/p&gt;

&lt;p&gt;To the professionals in the room, I want to challenge you as well.&lt;/p&gt;

&lt;p&gt;Let us not only grow individually. Let us also open doors for others.&lt;/p&gt;

&lt;p&gt;Mentor someone.&lt;/p&gt;

&lt;p&gt;Share knowledge.&lt;/p&gt;

&lt;p&gt;Give honest feedback.&lt;/p&gt;

&lt;p&gt;Create opportunities.&lt;/p&gt;

&lt;p&gt;Recommend someone.&lt;/p&gt;

&lt;p&gt;Build communities.&lt;/p&gt;

&lt;p&gt;Because the data ecosystem in East Africa will only grow if those who are ahead help those who are coming up.&lt;/p&gt;

&lt;p&gt;To our speakers and panelists, thank you for giving your time, your knowledge, your stories, and your experience. Your presence here matters. The people in this room are not only looking for information; many of them are looking for direction. And today, your words may help someone choose a path, start a project, apply for an opportunity, or believe in themselves again.&lt;/p&gt;

&lt;p&gt;To everyone who helped organize this event, thank you. Events like this take planning, sacrifice, coordination, pressure, and many moving parts. I appreciate every person who contributed to making this possible.&lt;/p&gt;

&lt;p&gt;As we begin, I want us to remember one thing:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Africa does not lack talent.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Africa does not lack ideas.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Africa does not lack problems to solve.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What we need is more execution, more exposure, more collaboration, more confidence, and more spaces like this where people can learn from each other and build together.&lt;/p&gt;

&lt;p&gt;That is what Data Science East Africa is about.&lt;/p&gt;

&lt;p&gt;It is about community.&lt;/p&gt;

&lt;p&gt;It is about skills.&lt;/p&gt;

&lt;p&gt;It is about visibility.&lt;/p&gt;

&lt;p&gt;It is about building solutions.&lt;/p&gt;

&lt;p&gt;It is about preparing people for the future of work.&lt;/p&gt;

&lt;p&gt;It is about making sure that as data and AI continue to shape the world, East Africa is not left behind.&lt;/p&gt;

&lt;p&gt;So today, I invite you to be present.&lt;/p&gt;

&lt;p&gt;Listen deeply.&lt;/p&gt;

&lt;p&gt;Network intentionally.&lt;/p&gt;

&lt;p&gt;Ask boldly.&lt;/p&gt;

&lt;p&gt;Learn practically.&lt;/p&gt;

&lt;p&gt;And most importantly, leave this room with a decision to do something with what you learn.&lt;/p&gt;

&lt;p&gt;Start that project.&lt;/p&gt;

&lt;p&gt;Improve that portfolio.&lt;/p&gt;

&lt;p&gt;Reach out to that mentor.&lt;/p&gt;

&lt;p&gt;Join that community.&lt;/p&gt;

&lt;p&gt;Apply for that opportunity.&lt;/p&gt;

&lt;p&gt;Build that solution.&lt;/p&gt;

&lt;p&gt;Because the future will not only belong to people who talk about AI and data.&lt;/p&gt;

&lt;p&gt;It will belong to people who can use them to solve real problems.&lt;/p&gt;

&lt;p&gt;Once again, welcome to the Data Science East Africa Big Data and AI Summit.&lt;/p&gt;

&lt;p&gt;Thank you for being here, and I wish all of us a powerful, practical, and inspiring day.&lt;/p&gt;

&lt;p&gt;Thank you.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>community</category>
      <category>data</category>
      <category>datascience</category>
    </item>
    <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>
  </channel>
</rss>
