<?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: Ajani luke Kariuki</title>
    <description>The latest articles on DEV Community by Ajani luke Kariuki (@ajani_lukekariuki_79255c).</description>
    <link>https://dev.to/ajani_lukekariuki_79255c</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%2F3708616%2F93c08d17-bd45-47f5-9487-244fef34447d.jpg</url>
      <title>DEV Community: Ajani luke Kariuki</title>
      <link>https://dev.to/ajani_lukekariuki_79255c</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ajani_lukekariuki_79255c"/>
    <language>en</language>
    <item>
      <title>Connecting powerbi to postgresql</title>
      <dc:creator>Ajani luke Kariuki</dc:creator>
      <pubDate>Wed, 18 Mar 2026 06:21:32 +0000</pubDate>
      <link>https://dev.to/ajani_lukekariuki_79255c/connecting-powerbi-to-postgresql-3j6f</link>
      <guid>https://dev.to/ajani_lukekariuki_79255c/connecting-powerbi-to-postgresql-3j6f</guid>
      <description>&lt;h1&gt;
  
  
  connecting power bi to sql databases: a summary
&lt;/h1&gt;

&lt;h2&gt;
  
  
  introduction
&lt;/h2&gt;

&lt;p&gt;Connecting power bi directly to a database creates a reliable data pipeline. instead of manually importing files, data can be refreshed automatically, allowing analysts to focus more on insights rather than data handling.&lt;/p&gt;




&lt;h2&gt;
  
  
  connecting power bi to a local postgresql database
&lt;/h2&gt;

&lt;p&gt;the process of connecting to a local database follows a few simple steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;open power bi and click "get data"&lt;/li&gt;
&lt;li&gt;select postgresql database from the database options&lt;/li&gt;
&lt;li&gt;enter server details (e.g. localhost or localhost:port)&lt;/li&gt;
&lt;li&gt;input database name&lt;/li&gt;
&lt;li&gt;authenticate using your username and password&lt;/li&gt;
&lt;li&gt;select tables to load or transform data using power query&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;this allows you to import and work with your database tables directly in power bi.&lt;/p&gt;




&lt;h2&gt;
  
  
  connecting to a cloud database (aiven postgresql)
&lt;/h2&gt;

&lt;p&gt;cloud platforms like :contentReference[oaicite:0]{index=0} allow databases to be hosted online instead of locally.&lt;/p&gt;

&lt;p&gt;to connect:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;log in and obtain connection details&lt;/li&gt;
&lt;li&gt;download the ssl certificate for secure communication&lt;/li&gt;
&lt;li&gt;use power bi "get data" → postgresql database&lt;/li&gt;
&lt;li&gt;enter the host, port, and database name&lt;/li&gt;
&lt;li&gt;authenticate and load tables&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ssl certificates ensure secure data transfer over the internet when connecting to cloud databases.&lt;/p&gt;




&lt;h2&gt;
  
  
  building the data model
&lt;/h2&gt;

&lt;p&gt;once data is loaded:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;power bi detects relationships using primary and foreign keys&lt;/li&gt;
&lt;li&gt;relationships can also be created manually&lt;/li&gt;
&lt;li&gt;proper modeling connects fact tables (e.g. sales) with dimension tables (e.g. customers, products)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;this structure allows power bi to generate meaningful insights.&lt;/p&gt;




&lt;h2&gt;
  
  
  why sql skills matter for power bi analysts
&lt;/h2&gt;

&lt;p&gt;sql is essential for effective data analysis in power bi:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;data retrieval: fetch only relevant data using queries&lt;/li&gt;
&lt;li&gt;full control: access exactly the data needed without relying on exports&lt;/li&gt;
&lt;li&gt;handling complexity: perform advanced logic and cleaning more efficiently&lt;/li&gt;
&lt;li&gt;industry standard: widely used across all data platforms&lt;/li&gt;
&lt;li&gt;data preparation: simplify joins, transformations, and calculations before loading into power bi&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  conclusion
&lt;/h2&gt;

&lt;p&gt;Strong data modeling and sql knowledge enhance performance, improve data handling, and enable deeper insights. sql acts as the foundation that allows analysts to efficiently interact with databases before visualization in power bi.&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>database</category>
      <category>postgres</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>PostgreSQL Joins and Window Function</title>
      <dc:creator>Ajani luke Kariuki</dc:creator>
      <pubDate>Mon, 02 Mar 2026 12:12:26 +0000</pubDate>
      <link>https://dev.to/ajani_lukekariuki_79255c/postgresql-joins-and-window-function-2mnj</link>
      <guid>https://dev.to/ajani_lukekariuki_79255c/postgresql-joins-and-window-function-2mnj</guid>
      <description>&lt;h2&gt;
  
  
  Understanding JOINS in PostgreSQL
&lt;/h2&gt;

&lt;p&gt;Joins let you merge data from multiple tables (or views) by linking them through related columns.&lt;br&gt;
The choice of join type depends mainly on:&lt;/p&gt;

&lt;p&gt;Which rows you want to keep (including unmatched ones)&lt;br&gt;
How the tables relate to each other&lt;/p&gt;

&lt;h2&gt;
  
  
  Main Join Types
&lt;/h2&gt;

&lt;h2&gt;
  
  
  CROSS JOIN
&lt;/h2&gt;

&lt;p&gt;Creates the Cartesian product - every row from the first table pairs with every row from the second.&lt;br&gt;
No ON clause needed.&lt;/p&gt;

&lt;p&gt;Example result: 5 rows × 5 rows = 25 rows.SQLSELECT p.project_name, e.name, e.salary&lt;br&gt;
FROM sales_data.projects p&lt;br&gt;
CROSS JOIN sales_data.employees e;&lt;/p&gt;

&lt;h2&gt;
  
  
  INNER JOIN
&lt;/h2&gt;

&lt;p&gt;Returns only matching rows from both tables. Non-matching rows are excluded&lt;br&gt;
SELECT emp.name, dep.department_name&lt;br&gt;
FROM sales_data.employees emp&lt;br&gt;
INNER JOIN sales_data.departments dep&lt;br&gt;
ON emp.department_id = dep.department_id;&lt;/p&gt;

&lt;h2&gt;
  
  
  LEFT JOIN (LEFT OUTER JOIN)
&lt;/h2&gt;

&lt;p&gt;Keeps all rows from the left table, plus matching rows from the right.&lt;/p&gt;

&lt;p&gt;SELECT *FROM sales_data.projects p&lt;br&gt;
LEFT JOIN sales_data.employees e&lt;br&gt;
ON p.employee_id = e.employee_id;&lt;/p&gt;

&lt;h2&gt;
  
  
  RIGHT JOIN (RIGHT OUTER JOIN)
&lt;/h2&gt;

&lt;p&gt;Keeps all rows from the right table, plus matching rows from the left. &lt;br&gt;
SELECT *FROM sales_data.projects p&lt;br&gt;
RIGHT JOIN sales_data.employees e&lt;br&gt;
ON p.employee_id = e.employee_id;&lt;/p&gt;

&lt;h2&gt;
  
  
  FULL JOIN (FULL OUTER JOIN)
&lt;/h2&gt;

&lt;p&gt;Returns all rows from both tables. Places NULL where no match exists.SELECT *&lt;br&gt;
FROM sales_data.projects p&lt;br&gt;
FULL JOIN sales_data.employees e&lt;br&gt;
ON p.employee_id = e.employee_id;&lt;/p&gt;

&lt;h2&gt;
  
  
  Enhancing Joins
&lt;/h2&gt;

&lt;p&gt;Add filtering, sorting, etc.:&lt;br&gt;
SELECT *&lt;br&gt;
FROM sales_data.projects p&lt;br&gt;
FULL JOIN sales_data.employees e ON p.employee_id = e.employee_id&lt;br&gt;
WHERE e.employee_id &amp;lt; 4&lt;br&gt;
ORDER BY e.employee_id ASC NULLS LAST,&lt;br&gt;
         p.project_name ASC;&lt;/p&gt;

&lt;h2&gt;
  
  
  Window Functions in PostgreSQL
&lt;/h2&gt;

&lt;p&gt;Window functions compute values over a "window" of rows related to the current row — without collapsing rows like GROUP BY does.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ranking Functions&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;ROW_NUMBER() — assigns unique, consecutive numbers (1,2,3,… no ties)&lt;br&gt;
RANK() — same values get the same rank, but skips numbers after ties (1,1,3,…)&lt;br&gt;
DENSE_RANK() — same values get the same rank, no skips (1,1,2,…)&lt;br&gt;
NTILE(n) — divides rows into n roughly equal buckets (good for quartiles, percentiles)&lt;/p&gt;

&lt;p&gt;SQLSELECT *,&lt;br&gt;
       RANK()       OVER (ORDER BY salary DESC NULLS FIRST) AS rank_col,&lt;br&gt;
       DENSE_RANK() OVER (ORDER BY salary DESC NULLS FIRST) AS dense_rank_col,&lt;br&gt;
       ROW_NUMBER() OVER (ORDER BY salary DESC NULLS FIRST) AS row_num&lt;br&gt;
FROM sales_data.working_hub;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Aggregate Functions in Windows&lt;br&gt;
Run aggregates (SUM, AVG, COUNT, MIN, MAX…) across the window without grouping.&lt;br&gt;
SQLSELECT *,&lt;br&gt;
   SUM(e.salary) OVER () AS total_salary_company_wide&lt;br&gt;
FROM sales_data.projects p&lt;br&gt;
FULL JOIN sales_data.employees e ON p.employee_id = e.employee_id;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Navigation / Value Functions&lt;br&gt;
Compare rows within the ordered window:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;LAG(col) — value from previous row&lt;br&gt;
LEAD(col) — value from next row&lt;br&gt;
FIRST_VALUE(col) — first value in window&lt;br&gt;
LAST_VALUE(col) — last value in window&lt;/p&gt;

&lt;p&gt;SQLSELECT *,&lt;br&gt;
       LAG(salary)  OVER (ORDER BY salary DESC) AS prev_salary,&lt;br&gt;
       LEAD(salary) OVER (ORDER BY salary DESC) AS next_salary&lt;br&gt;
FROM sales_data.working_hub;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;PARTITION BY
Splits data into groups (like GROUP BY), but keeps all rows intact.
SQLSELECT *,
   SUM(e.salary) OVER (PARTITION BY p.project_name) AS salary_per_project
FROM sales_data.projects p
FULL JOIN sales_data.employees e ON p.employee_id = e.employee_id;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>database</category>
      <category>postgres</category>
      <category>sql</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How Analysts Turn Messy Data into Action with Power BI</title>
      <dc:creator>Ajani luke Kariuki</dc:creator>
      <pubDate>Mon, 09 Feb 2026 05:53:16 +0000</pubDate>
      <link>https://dev.to/ajani_lukekariuki_79255c/how-analysts-turn-messy-data-into-action-with-power-bi-37eb</link>
      <guid>https://dev.to/ajani_lukekariuki_79255c/how-analysts-turn-messy-data-into-action-with-power-bi-37eb</guid>
      <description>&lt;h2&gt;
  
  
  The Analyst’s Everyday Challenge
&lt;/h2&gt;

&lt;p&gt;Data analysts are constantly tasked with converting chaotic, unstructured data into insights that decision-makers can actually use. The real value of business intelligence lies in this translation—moving from raw data, to clear visuals, and finally to actions that improve business outcomes. Power BI plays a key role in enabling this end-to-end journey.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Reality of Real-World Data
&lt;/h2&gt;

&lt;p&gt;In most organizations, data is far from perfect. Analysts often deal with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data coming from multiple, unconnected systems (CRMs, ERPs, Excel files)&lt;/li&gt;
&lt;li&gt;Inconsistent naming conventions and formats&lt;/li&gt;
&lt;li&gt;Missing values and duplicate entries&lt;/li&gt;
&lt;li&gt;Uneven or irregular time-based data&lt;/li&gt;
&lt;li&gt;Semi-structured or unstructured sources&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before analysis can begin, this data must be cleaned and aligned.&lt;/p&gt;




&lt;h2&gt;
  
  
  Phase 1: Data Preparation with Power Query
&lt;/h2&gt;

&lt;p&gt;Power Query acts as Power BI’s ETL engine, allowing analysts to connect to external data sources and reshape them into analysis-ready datasets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Typical workflow:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Get Data → Choose source → Connect&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;At this stage, analysts profile the data to understand its quality and structure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Common Transformation Techniques
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Standardization:&lt;/strong&gt; Making dates, currencies, and categories consistent&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pivoting / Unpivoting:&lt;/strong&gt; Reshaping data for better analysis&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fuzzy Matching:&lt;/strong&gt; Merging datasets with imperfect keys&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom Columns:&lt;/strong&gt; Creating calculated fields during import&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parameters:&lt;/strong&gt; Building flexible, refreshable data connections&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Phase 2: Answering Business Questions with DAX
&lt;/h2&gt;

&lt;p&gt;DAX (Data Analysis Expressions) is what turns prepared data into meaningful insights. Without DAX, reports remain descriptive; with it, they become analytical and actionable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key DAX Concepts
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Measures:&lt;/strong&gt; Calculations evaluated dynamically (e.g., Total Profit)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Calculated Columns:&lt;/strong&gt; Values computed and stored at the row level&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;DAX shifts analysis from &lt;em&gt;what happened&lt;/em&gt; to &lt;em&gt;why it happened&lt;/em&gt; and &lt;em&gt;what should happen next&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Context Matters
&lt;/h3&gt;

&lt;p&gt;DAX automatically adapts calculations based on filters and selections:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Viewing a specific category recalculates metrics for that category only&lt;/li&gt;
&lt;li&gt;Drilling into a specific month updates results accordingly&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Time Intelligence
&lt;/h3&gt;

&lt;p&gt;One of DAX’s strongest capabilities includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Year-over-year comparisons&lt;/li&gt;
&lt;li&gt;Cumulative totals&lt;/li&gt;
&lt;li&gt;Moving averages (e.g., 30-day sales trends)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Phase 3: Designing Dashboards People Actually Understand
&lt;/h2&gt;

&lt;p&gt;This phase focuses on clarity. A good dashboard should communicate insights in under half a minute.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Pyramid Layout
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Top:&lt;/strong&gt; Core KPIs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Middle:&lt;/strong&gt; Trends and comparisons&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bottom:&lt;/strong&gt; Detailed data for deeper analysis&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Slicers are added to allow users to filter data easily, and every visual should answer a specific business question.&lt;/p&gt;




&lt;h2&gt;
  
  
  Phase 4: Turning Insights into Action
&lt;/h2&gt;

&lt;p&gt;The final step is where dashboards create real impact. Power BI can trigger actions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sending alerts when KPIs cross thresholds&lt;/li&gt;
&lt;li&gt;Creating tasks in Teams or Outlook&lt;/li&gt;
&lt;li&gt;Updating CRM systems&lt;/li&gt;
&lt;li&gt;Exporting data to downstream tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Success is no longer measured by report views, but by decisions made and actions taken.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion: Analysts as Decision Enablers
&lt;/h2&gt;

&lt;p&gt;The true purpose of analytics is not advanced formulas or polished visuals. Decision-makers care about outcomes, not the technical steps behind them. An analyst’s job is complete only when a stakeholder can confidently say:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“I know what action to take next.”&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>data</category>
      <category>dataengineering</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Schemas and Data modeling in Power bi</title>
      <dc:creator>Ajani luke Kariuki</dc:creator>
      <pubDate>Mon, 02 Feb 2026 07:32:29 +0000</pubDate>
      <link>https://dev.to/ajani_lukekariuki_79255c/schemas-and-data-modeling-in-power-bi-4p1b</link>
      <guid>https://dev.to/ajani_lukekariuki_79255c/schemas-and-data-modeling-in-power-bi-4p1b</guid>
      <description>&lt;h2&gt;
  
  
  Table of contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Star schema&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Snowflake schema&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Relationships&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Facts&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dimention Tables&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  star schema vs snowflake schema
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;A star schema&lt;/em&gt;&lt;/strong&gt; is defined as the simplest data warehouse schema where one or more fact tables reference any number of dimension tables in a star-like structure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;snowflake schema&lt;/em&gt;&lt;/strong&gt;Is a more normalized version of the star schema where dimension tables are broken down into further tables.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Fact Tables:&lt;/strong&gt;&lt;/em&gt; Tall and narrow, containing measurable, quantitative data (e.g., unit price, quantity).&lt;/p&gt;

&lt;p&gt;_*&lt;em&gt;Dimension Tables: *&lt;/em&gt;_Short and wide, containing descriptive attributes used for filtering and grouping (e.g., product name, location).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Relationships&lt;/strong&gt;&lt;/em&gt;: Power BI typically uses 1-to-many relationships, where dimension tables connect to the fact table, ensuring data integrity. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Schemas&lt;/strong&gt;&lt;/em&gt; organize data into a central, narrow fact table (containing measures/keys) connected to surrounding dimension tables (describing entities) using one-to-many relationships. &lt;/p&gt;

&lt;h1&gt;
  
  
  Power BI: Beginner’s Guide to Data Modeling and Schemas — Summary
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;Modern organisations rely heavily on insights derived from raw data to guide decision-making and remain competitive. Business Intelligence (BI) tools play a crucial role in transforming this data into meaningful insights, and &lt;strong&gt;Power BI&lt;/strong&gt; stands out as a powerful, visualisation-friendly solution.&lt;/p&gt;

&lt;p&gt;Power BI enables both technical and non-technical users to understand data through intuitive visuals such as charts, graphs, and dashboards. Central to its effectiveness are &lt;strong&gt;data models&lt;/strong&gt; and &lt;strong&gt;schemas&lt;/strong&gt;, which structure data for efficient analysis.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is Business Intelligence (BI)?
&lt;/h2&gt;

&lt;p&gt;Business Intelligence refers to tools, techniques, and processes used to analyse organisational data and support strategic and operational decisions.&lt;/p&gt;

&lt;p&gt;Power BI supports BI by providing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Descriptive analytics&lt;/li&gt;
&lt;li&gt;Interactive reports&lt;/li&gt;
&lt;li&gt;Dashboards for decision-makers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Well-designed data models ensure that insights are accurate, timely, and cost-effective.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is a Schema in Power BI?
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;schema&lt;/strong&gt; defines how data is structured and how tables relate to each other within a data model.&lt;/p&gt;

&lt;p&gt;Schemas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improve query performance&lt;/li&gt;
&lt;li&gt;Enhance reporting efficiency&lt;/li&gt;
&lt;li&gt;Enable better data analysis&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The two main schemas used in Power BI are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Star Schema&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Snowflake Schema&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Star Schema
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Star Schema&lt;/strong&gt; is the most common and beginner-friendly schema in Power BI. It consists of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One central &lt;strong&gt;fact table&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Multiple surrounding &lt;strong&gt;dimension tables&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The structure resembles a star.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Simplicity&lt;/strong&gt;: Easy to understand and use&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexibility&lt;/strong&gt;: New dimensions or facts can be added easily&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance&lt;/strong&gt;: Fewer table joins result in faster queries&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Dimension Tables vs Fact Tables
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Dimension Tables
&lt;/h3&gt;

&lt;p&gt;Dimension tables store &lt;strong&gt;descriptive attributes&lt;/strong&gt; that provide context to data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Characteristics:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Contain primary keys&lt;/li&gt;
&lt;li&gt;Include descriptive fields (e.g., product name, category)&lt;/li&gt;
&lt;li&gt;Used for filtering and grouping data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example attributes:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Product Name&lt;/li&gt;
&lt;li&gt;Category&lt;/li&gt;
&lt;li&gt;Price&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Fact Tables
&lt;/h3&gt;

&lt;p&gt;Fact tables store &lt;strong&gt;quantitative, measurable data&lt;/strong&gt; related to business activities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Characteristics:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Contain foreign keys linking to dimension tables&lt;/li&gt;
&lt;li&gt;Store numerical measures (e.g., sales amount, quantity sold)&lt;/li&gt;
&lt;li&gt;Each row represents a transaction or event&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Key Differences
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Aspect&lt;/th&gt;
&lt;th&gt;Dimension Table&lt;/th&gt;
&lt;th&gt;Fact Table&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Purpose&lt;/td&gt;
&lt;td&gt;Provides context&lt;/td&gt;
&lt;td&gt;Records transactions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Structure&lt;/td&gt;
&lt;td&gt;Fewer rows, more attributes&lt;/td&gt;
&lt;td&gt;Many rows, fewer attributes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data Type&lt;/td&gt;
&lt;td&gt;Descriptive&lt;/td&gt;
&lt;td&gt;Numerical&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Snowflake Schema
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Snowflake Schema&lt;/strong&gt; is an extension of the star schema where dimension tables are further divided into sub-dimensions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Strengths
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Faster data retrieval in some cases&lt;/li&gt;
&lt;li&gt;Improved data integrity&lt;/li&gt;
&lt;li&gt;Better data normalization&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Weaknesses
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Higher initial setup cost&lt;/li&gt;
&lt;li&gt;More complex structure&lt;/li&gt;
&lt;li&gt;Less flexible for future changes&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Importance of Good Data Models
&lt;/h2&gt;

&lt;p&gt;Well-designed data models are critical for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Accurate reporting&lt;/li&gt;
&lt;li&gt;High-performance dashboards&lt;/li&gt;
&lt;li&gt;Reliable KPI tracking&lt;/li&gt;
&lt;li&gt;Effective decision-making&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without proper data modeling, organisations risk inaccurate insights and poor strategic execution.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Power BI leverages strong data modeling principles—particularly star and snowflake schemas—to make data analysis accessible, efficient, and impactful. Creating good data models is essential for building reliable dashboards and enabling organisations to make informed, data-driven decisions.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Ms.Excel for beginners</title>
      <dc:creator>Ajani luke Kariuki</dc:creator>
      <pubDate>Sun, 25 Jan 2026 16:51:41 +0000</pubDate>
      <link>https://dev.to/ajani_lukekariuki_79255c/msexcel-for-beginners-4d4m</link>
      <guid>https://dev.to/ajani_lukekariuki_79255c/msexcel-for-beginners-4d4m</guid>
      <description>&lt;p&gt;Microsoft Excel is a spreadsheet program made by Microsoft that helps you store, organize, calculate, and analyze data in a clear, structured way.&lt;/p&gt;

&lt;h1&gt;
  
  
  Uses of Excel
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Data entry &amp;amp; organization
&lt;/h2&gt;

&lt;p&gt;You enter information in rows and columns &lt;/p&gt;

&lt;h2&gt;
  
  
  Calculations
&lt;/h2&gt;

&lt;p&gt;Excel can automatically do math using formulas and functions (e.g. add totals, calculate averages, percentages).&lt;/p&gt;

&lt;h2&gt;
  
  
  Data analysis
&lt;/h2&gt;

&lt;p&gt;You can sort, filter, and summarize large amounts of data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Charts &amp;amp; graphs
&lt;/h2&gt;

&lt;p&gt;Excel turns numbers into visual charts like bar charts, pie charts, and line graphs.&lt;/p&gt;

&lt;h1&gt;
  
  
  COMMON FEATURES OF EXCEL
&lt;/h1&gt;

&lt;p&gt;Excel has many featuers,used to make it easier to get output from the spreadsheets.&lt;br&gt;
&lt;em&gt;##Common features include##&lt;/em&gt;&lt;br&gt;
 Formulas (e.g. =A1+A2)&lt;/p&gt;

&lt;p&gt;Functions (e.g. SUM, AVERAGE, IF)&lt;/p&gt;

&lt;p&gt;Formatting (colors, borders, fonts)&lt;/p&gt;

&lt;p&gt;Sorting &amp;amp; filtering data&lt;/p&gt;

&lt;p&gt;PivotTables for advanced analysis&lt;/p&gt;

&lt;h2&gt;
  
  
  Decisions with Logical Functions
&lt;/h2&gt;

&lt;p&gt;Logical functions help you categorise data automatically based on rules.&lt;/p&gt;

&lt;p&gt;The IF Function The IF function performs a test: it returns one value if the test is true, and a different value if it is false.&lt;/p&gt;

&lt;p&gt;Example: Imagine you want to categorise salaries. If the salary in cell E2 exceeds 12040, it is "High"; otherwise, it is "Low".&lt;/p&gt;

&lt;p&gt;Formula: =IF(E2 &amp;gt; 12040, "High", "Low").&lt;/p&gt;

&lt;p&gt;Nested IFs. If you have more than two categories (e.g., Old, Middle-aged, Young), you can use a Nested IF, which places a second IF function inside the first one.&lt;/p&gt;

&lt;p&gt;AND / OR Logic You can combine IF with AND (where both conditions must be met) or OR (where at least one condition must be met).&lt;/p&gt;

&lt;p&gt;AND Example: Assign a bonus only if experience &amp;gt; 30 years AND projects &amp;gt; 10.&lt;/p&gt;

&lt;p&gt;Formula: =IF(AND(P2 &amp;gt; 30, D2 &amp;gt; 10), "Assign Bonus", "Do not Assign Bonus").&lt;/p&gt;

&lt;p&gt;##Pivot Tables##&lt;br&gt;
Pivot tables are the ultimate tool for summarising data. They allow you to aggregate thousands of rows into a clear summary table without writing complex formulas.&lt;/p&gt;

&lt;p&gt;How to create one:&lt;/p&gt;

&lt;p&gt;Click a single cell inside your data range (avoid selecting the whole sheet).&lt;/p&gt;

&lt;p&gt;Go to Insert &amp;gt; Pivot Table.&lt;/p&gt;

&lt;p&gt;Drag and Drop fields:&lt;/p&gt;

&lt;p&gt;Rows: For categories (e.g., Department).&lt;/p&gt;

&lt;p&gt;Values: For numbers to calculate (e.g., Sum of Salary, Count of Employees).&lt;/p&gt;

&lt;p&gt;Interactive Slicers: To make your report interactive, insert a Slicer. This is a visual button menu that filters your Pivot Table instantly when clicked.&lt;/p&gt;

&lt;p&gt;A Pivot Table with a Slicer for 'Department' next to it.&lt;/p&gt;

</description>
      <category>database</category>
    </item>
    <item>
      <title>Use of Git to push/pull code, track changes and version control</title>
      <dc:creator>Ajani luke Kariuki</dc:creator>
      <pubDate>Sat, 17 Jan 2026 06:58:01 +0000</pubDate>
      <link>https://dev.to/ajani_lukekariuki_79255c/use-of-git-to-pushpull-code-track-changes-and-version-control-1e1b</link>
      <guid>https://dev.to/ajani_lukekariuki_79255c/use-of-git-to-pushpull-code-track-changes-and-version-control-1e1b</guid>
      <description>&lt;p&gt;Setting up Git and using it for version control involves a few key steps, including installing Git, creating a repository, making commits, and using push and pull commands to sync your work with a remote repository. Here's a detailed guide to help you get started:&lt;br&gt;
&lt;strong&gt;Firstly&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Push and pull
&lt;/h1&gt;

&lt;p&gt;Push-Refers to sending your local changes(&lt;strong&gt;code or data&lt;/strong&gt;) to a remote system or_ repository_(&lt;strong&gt;git hub&lt;/strong&gt;) &lt;br&gt;
Pull -Refers to fetching and intergrating changes from the remote system back to your local environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Set Up Git
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;After installing Git, you need to configure it with your usre information.
Using comands like: Git config --global user.name"y/n"&lt;/li&gt;
&lt;/ul&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%2Fnniw1sp305xpxkpplcqs.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%2Fnniw1sp305xpxkpplcqs.png" alt=" " width="433" height="82"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;git config --global user.email "your email"&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%2F1khqa7iydxub7o3f51zp.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%2F1khqa7iydxub7o3f51zp.png" alt=" " width="631" height="69"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next are the linus commands.&lt;br&gt;
 ###First we make a directory###&lt;br&gt;
with this comand: mkdir project1&lt;br&gt;
(project1 being the name of the directory)&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%2F95afv20euedp5nz379dh.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%2F95afv20euedp5nz379dh.png" alt=" " width="393" height="48"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next change directory&lt;br&gt;
with: cd project1&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%2Fleynzbsitkdo8hurowz7.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%2Fleynzbsitkdo8hurowz7.png" alt=" " width="457" height="111"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating repository
&lt;/h2&gt;

&lt;p&gt;After jumping into the project1 or test1, initialise a repository&lt;br&gt;
:git init&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%2F6frr3mcko07dd24po628.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%2F6frr3mcko07dd24po628.png" alt=" " width="736" height="112"&gt;&lt;/a&gt;&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%2Faeo8hfweou9isbdzghya.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%2Faeo8hfweou9isbdzghya.png" alt=" " width="800" height="114"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Making commits
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Add files to the repository
&lt;/h2&gt;

&lt;p&gt;Use the (git add .) command to prepare the file for commitment&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%2Fnh7zhu5bjcjzijf2pa0e.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%2Fnh7zhu5bjcjzijf2pa0e.png" alt=" " width="800" height="296"&gt;&lt;/a&gt;&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%2Ffmtz1i7nqorlg7ygspa9.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%2Ffmtz1i7nqorlg7ygspa9.png" alt=" " width="535" height="73"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Next commit&lt;/em&gt;&lt;br&gt;
using: git commit -m "Add readme.md"&lt;/p&gt;

&lt;h2&gt;
  
  
  Pushing changes
&lt;/h2&gt;

&lt;p&gt;To push commits to a remote repository, one must first create a repository and link it to your local repostory&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%2F18evrmp0kac7e7wyzn2y.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%2F18evrmp0kac7e7wyzn2y.png" alt=" " width="364" height="103"&gt;&lt;/a&gt;&lt;br&gt;
 ##pulling  changes##&lt;br&gt;
To update your local repository with new chaneges from the reote repository:&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%2F6ixm6pdzv6ly7suvdvvm.webp" 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%2F6ixm6pdzv6ly7suvdvvm.webp" alt=" " width="800" height="427"&gt;&lt;/a&gt;&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%2F5x3ffk12ix7cv0sp489t.webp" 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%2F5x3ffk12ix7cv0sp489t.webp" alt=" " width="800" height="220"&gt;&lt;/a&gt;&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%2Fvur0y48fbuv4yxeoy6kp.webp" 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%2Fvur0y48fbuv4yxeoy6kp.webp" alt=" " width="800" height="205"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>git</category>
      <category>github</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Write a clear, beginner-friendly article on Dev.to explaining how to push and pull code, track changes, and understand version control using Git.</title>
      <dc:creator>Ajani luke Kariuki</dc:creator>
      <pubDate>Tue, 13 Jan 2026 16:47:36 +0000</pubDate>
      <link>https://dev.to/ajani_lukekariuki_79255c/write-a-clear-beginner-friendly-article-on-devto-explaining-how-to-push-and-pull-code-track-13o6</link>
      <guid>https://dev.to/ajani_lukekariuki_79255c/write-a-clear-beginner-friendly-article-on-devto-explaining-how-to-push-and-pull-code-track-13o6</guid>
      <description></description>
    </item>
    <item>
      <title>luxdev Markdown Language Class</title>
      <dc:creator>Ajani luke Kariuki</dc:creator>
      <pubDate>Tue, 13 Jan 2026 11:01:00 +0000</pubDate>
      <link>https://dev.to/ajani_lukekariuki_79255c/luxdev-markdown-language-class-3304</link>
      <guid>https://dev.to/ajani_lukekariuki_79255c/luxdev-markdown-language-class-3304</guid>
      <description>&lt;h1&gt;
  
  
  How to write a markdown language
&lt;/h1&gt;

&lt;p&gt;This is the first markdown language the students have learned and they can now write an article on dev.to&lt;/p&gt;

&lt;h2&gt;
  
  
  The first thing that students learned
&lt;/h2&gt;

&lt;p&gt;The students learned about the heading&lt;/p&gt;

&lt;h3&gt;
  
  
  lastly  but not least
&lt;/h3&gt;

&lt;p&gt;she told me &lt;strong&gt;she loves tech&lt;/strong&gt; and i told her &lt;em&gt;i enjoy it&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Morning class&lt;/li&gt;
&lt;li&gt;Evining class
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name= "Aj"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;here is where you will find me&lt;a href="https://github.com/Aj-4201" rel="noopener noreferrer"&gt;visit my git hub acc on&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
    </item>
  </channel>
</rss>
